From db63e0c829c7c1815e483c76e7649cc36791a866 Mon Sep 17 00:00:00 2001 From: Jan Bouwhuis Date: Mon, 3 Nov 2025 18:03:46 +0100 Subject: [PATCH] Add RSSI signal strength sensor to incomfort boiler (#155688) Co-authored-by: Shay Levy --- homeassistant/components/incomfort/icons.json | 5 ++ homeassistant/components/incomfort/sensor.py | 10 ++++ .../components/incomfort/strings.json | 3 ++ .../incomfort/snapshots/test_sensor.ambr | 52 +++++++++++++++++++ 4 files changed, 70 insertions(+) diff --git a/homeassistant/components/incomfort/icons.json b/homeassistant/components/incomfort/icons.json index c0c844b7f3d..53b42116fa0 100644 --- a/homeassistant/components/incomfort/icons.json +++ b/homeassistant/components/incomfort/icons.json @@ -20,6 +20,11 @@ } } }, + "sensor": { + "rf_message_rssi": { + "default": "mdi:signal" + } + }, "water_heater": { "boiler": { "state": { diff --git a/homeassistant/components/incomfort/sensor.py b/homeassistant/components/incomfort/sensor.py index e344fb01aae..21db7125c30 100644 --- a/homeassistant/components/incomfort/sensor.py +++ b/homeassistant/components/incomfort/sensor.py @@ -61,6 +61,16 @@ SENSOR_TYPES: tuple[IncomfortSensorEntityDescription, ...] = ( value_key="tap_temp", entity_registry_enabled_default=False, ), + # A lower RSSI value is better + # A typical RSSI value is 28 for connection just in range + IncomfortSensorEntityDescription( + key="rf_message_rssi", + translation_key="rf_message_rssi", + state_class=SensorStateClass.MEASUREMENT, + value_key="rf_message_rssi", + extra_key="rfstatus_cntr", + entity_registry_enabled_default=False, + ), ) diff --git a/homeassistant/components/incomfort/strings.json b/homeassistant/components/incomfort/strings.json index 4f8ec308e7d..50cd85d40bf 100644 --- a/homeassistant/components/incomfort/strings.json +++ b/homeassistant/components/incomfort/strings.json @@ -76,6 +76,9 @@ } }, "sensor": { + "rf_message_rssi": { + "name": "RSSI" + }, "tap_temperature": { "name": "Tap temperature" } diff --git a/tests/components/incomfort/snapshots/test_sensor.ambr b/tests/components/incomfort/snapshots/test_sensor.ambr index 80dd945d7bf..07a5253028d 100644 --- a/tests/components/incomfort/snapshots/test_sensor.ambr +++ b/tests/components/incomfort/snapshots/test_sensor.ambr @@ -55,6 +55,58 @@ 'state': '1.86', }) # --- +# name: test_setup_platform[sensor.boiler_rssi-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'state_class': , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.boiler_rssi', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'RSSI', + 'platform': 'incomfort', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'rf_message_rssi', + 'unique_id': 'c0ffeec0ffee_rf_message_rssi', + 'unit_of_measurement': None, + }) +# --- +# name: test_setup_platform[sensor.boiler_rssi-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'Boiler RSSI', + 'rfstatus_cntr': 0, + 'state_class': , + }), + 'context': , + 'entity_id': 'sensor.boiler_rssi', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '30', + }) +# --- # name: test_setup_platform[sensor.boiler_tap_temperature-entry] EntityRegistryEntrySnapshot({ 'aliases': set({