From 161d0b0dca037eece9d7d1f1c0dd69ec4e395785 Mon Sep 17 00:00:00 2001 From: staticdev Date: Wed, 26 Aug 2026 21:40:43 +0200 Subject: [PATCH] Reclassify Matter IKEA air quality sensor switch as config entity (#179546) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Ludovic BOUÉ Co-authored-by: Simon Lamon <32477463+silamon@users.noreply.github.com> Co-authored-by: Franck Nijhof --- homeassistant/components/matter/strings.json | 3 +++ homeassistant/components/matter/switch.py | 12 +++++++++++ .../matter/snapshots/test_switch.ambr | 21 +++++++++---------- 3 files changed, 25 insertions(+), 11 deletions(-) diff --git a/homeassistant/components/matter/strings.json b/homeassistant/components/matter/strings.json index 0e3a421cb869..1cc1da3bf60c 100644 --- a/homeassistant/components/matter/strings.json +++ b/homeassistant/components/matter/strings.json @@ -685,6 +685,9 @@ "child_lock": { "name": "Child lock" }, + "display": { + "name": "Display" + }, "evse_charging_switch": { "name": "Enable charging" }, diff --git a/homeassistant/components/matter/switch.py b/homeassistant/components/matter/switch.py index a0625c64bf84..2fe5982e4a7c 100644 --- a/homeassistant/components/matter/switch.py +++ b/homeassistant/components/matter/switch.py @@ -223,6 +223,18 @@ DISCOVERY_SCHEMAS = [ device_types.RoomAirConditioner, ), ), + MatterDiscoverySchema( + platform=Platform.SWITCH, + entity_description=MatterSwitchEntityDescription( + key="MatterSwitch", + entity_category=EntityCategory.CONFIG, + translation_key="display", + ), + entity_class=MatterSwitch, + required_attributes=(clusters.OnOff.Attributes.OnOff,), + vendor_id=(4476,), # IKEA of Sweden + product_id=(12289,), # ALPSTUGA air quality monitor + ), MatterDiscoverySchema( platform=Platform.SWITCH, entity_description=MatterSwitchEntityDescription( diff --git a/tests/components/matter/snapshots/test_switch.ambr b/tests/components/matter/snapshots/test_switch.ambr index b0fe8eb97086..68d98a37a6ce 100644 --- a/tests/components/matter/snapshots/test_switch.ambr +++ b/tests/components/matter/snapshots/test_switch.ambr @@ -503,7 +503,7 @@ 'state': 'off', }) # --- -# name: test_switches[ikea_air_quality_monitor][switch.alpstuga_air_quality_monitor-entry] +# name: test_switches[ikea_air_quality_monitor][switch.alpstuga_air_quality_monitor_display-entry] EntityRegistryEntrySnapshot({ 'aliases': list([ None, @@ -516,8 +516,8 @@ 'device_id': , 'disabled_by': None, 'domain': 'switch', - 'entity_category': None, - 'entity_id': 'switch.alpstuga_air_quality_monitor', + 'entity_category': , + 'entity_id': 'switch.alpstuga_air_quality_monitor_display', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -525,29 +525,28 @@ 'labels': set({ }), 'name': None, - 'object_id_base': None, + 'object_id_base': 'Display', 'options': dict({ }), - 'original_device_class': , + 'original_device_class': None, 'original_icon': None, - 'original_name': None, + 'original_name': 'Display', 'platform': 'matter', 'previous_unique_id': None, 'suggested_object_id': None, 'supported_features': 0, - 'translation_key': 'switch', + 'translation_key': 'display', 'unique_id': '00000000000004D2-0000000000000025-MatterNodeDevice-1-MatterSwitch-6-0', 'unit_of_measurement': None, }) # --- -# name: test_switches[ikea_air_quality_monitor][switch.alpstuga_air_quality_monitor-state] +# name: test_switches[ikea_air_quality_monitor][switch.alpstuga_air_quality_monitor_display-state] StateSnapshot({ 'attributes': ReadOnlyDict({ - : 'outlet', - : 'ALPSTUGA air quality monitor', + : 'ALPSTUGA air quality monitor Display', }), 'context': , - 'entity_id': 'switch.alpstuga_air_quality_monitor', + 'entity_id': 'switch.alpstuga_air_quality_monitor_display', 'last_changed': , 'last_reported': , 'last_updated': ,