From 23a8300012cd20ef1daada1ec54d72d473aabf04 Mon Sep 17 00:00:00 2001 From: Tero Paloheimo Date: Fri, 9 Jan 2026 20:04:30 +0200 Subject: [PATCH] Add Ruuvi IAQS to Ruuvi BLE (#160529) --- .../components/ruuvitag_ble/sensor.py | 6 ++ .../components/ruuvitag_ble/strings.json | 3 + .../ruuvitag_ble/snapshots/test_sensor.ambr | 102 ++++++++++++++++++ 3 files changed, 111 insertions(+) diff --git a/homeassistant/components/ruuvitag_ble/sensor.py b/homeassistant/components/ruuvitag_ble/sensor.py index 7873878818ae..0b359a570eb7 100644 --- a/homeassistant/components/ruuvitag_ble/sensor.py +++ b/homeassistant/components/ruuvitag_ble/sensor.py @@ -151,6 +151,12 @@ SENSOR_DESCRIPTIONS = { translation_key="nox_index", state_class=SensorStateClass.MEASUREMENT, ), + "iaqs": SensorEntityDescription( + key="iaqs", + translation_key="iaqs", + state_class=SensorStateClass.MEASUREMENT, + entity_registry_enabled_default=False, + ), } diff --git a/homeassistant/components/ruuvitag_ble/strings.json b/homeassistant/components/ruuvitag_ble/strings.json index f0a5210d1558..825dc363888b 100644 --- a/homeassistant/components/ruuvitag_ble/strings.json +++ b/homeassistant/components/ruuvitag_ble/strings.json @@ -33,6 +33,9 @@ "acceleration_z": { "name": "Acceleration Z" }, + "iaqs": { + "name": "Indoor air quality score" + }, "movement_counter": { "name": "Movement counter" }, diff --git a/tests/components/ruuvitag_ble/snapshots/test_sensor.ambr b/tests/components/ruuvitag_ble/snapshots/test_sensor.ambr index 0600e8d17c28..194aa9777124 100644 --- a/tests/components/ruuvitag_ble/snapshots/test_sensor.ambr +++ b/tests/components/ruuvitag_ble/snapshots/test_sensor.ambr @@ -158,6 +158,57 @@ 'state': '13027.0', }) # --- +# name: test_sensors[e1][sensor.ruuvi_air_884f_indoor_air_quality_score-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': None, + 'entity_id': 'sensor.ruuvi_air_884f_indoor_air_quality_score', + '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': 'Indoor air quality score', + 'platform': 'ruuvitag_ble', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'iaqs', + 'unique_id': '01:03:05:07:12:34-iaqs', + 'unit_of_measurement': None, + }) +# --- +# name: test_sensors[e1][sensor.ruuvi_air_884f_indoor_air_quality_score-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'Ruuvi Air 884F Indoor air quality score', + 'state_class': , + }), + 'context': , + 'entity_id': 'sensor.ruuvi_air_884f_indoor_air_quality_score', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '81', + }) +# --- # name: test_sensors[e1][sensor.ruuvi_air_884f_nox_index-entry] EntityRegistryEntrySnapshot({ 'aliases': set({ @@ -1329,6 +1380,57 @@ 'state': '13027', }) # --- +# name: test_sensors[v6][sensor.ruuvitag_884f_indoor_air_quality_score-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': None, + 'entity_id': 'sensor.ruuvitag_884f_indoor_air_quality_score', + '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': 'Indoor air quality score', + 'platform': 'ruuvitag_ble', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'iaqs', + 'unique_id': '01:03:05:07:12:34-iaqs', + 'unit_of_measurement': None, + }) +# --- +# name: test_sensors[v6][sensor.ruuvitag_884f_indoor_air_quality_score-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'RuuviTag 884F Indoor air quality score', + 'state_class': , + }), + 'context': , + 'entity_id': 'sensor.ruuvitag_884f_indoor_air_quality_score', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '81', + }) +# --- # name: test_sensors[v6][sensor.ruuvitag_884f_nox_index-entry] EntityRegistryEntrySnapshot({ 'aliases': set({