From c72f2fd5465fe1f0c01532c3183fe4923227cd28 Mon Sep 17 00:00:00 2001 From: WardZhou <33411000+wardmatter@users.noreply.github.com> Date: Mon, 3 Nov 2025 20:47:12 +0800 Subject: [PATCH] Add Matter CurrentSensitivityLevel for Heiman and Aqara Occupancy/PIR (#155715) --- homeassistant/components/matter/select.py | 53 +++ tests/components/matter/conftest.py | 1 + .../nodes/heiman_motion_sensor_m1.json | 423 ++++++++++++++++++ .../matter/snapshots/test_binary_sensor.ambr | 49 ++ .../matter/snapshots/test_button.ambr | 49 ++ .../matter/snapshots/test_number.ambr | 58 +++ .../matter/snapshots/test_select.ambr | 177 ++++++++ .../matter/snapshots/test_sensor.ambr | 272 +++++++++++ 8 files changed, 1082 insertions(+) create mode 100644 tests/components/matter/fixtures/nodes/heiman_motion_sensor_m1.json diff --git a/homeassistant/components/matter/select.py b/homeassistant/components/matter/select.py index 12e228dfd0a..7969d685ac3 100644 --- a/homeassistant/components/matter/select.py +++ b/homeassistant/components/matter/select.py @@ -527,4 +527,57 @@ DISCOVERY_SCHEMAS = [ vendor_id=(4447,), product_id=(8194,), ), + MatterDiscoverySchema( + platform=Platform.SELECT, + entity_description=MatterSelectEntityDescription( + key="AqaraOccupancySensorBooleanStateConfigurationCurrentSensitivityLevel", + entity_category=EntityCategory.CONFIG, + translation_key="sensitivity_level", + options=["low", "standard", "high"], + device_to_ha={ + 0: "low", + 1: "standard", + 2: "high", + }.get, + ha_to_device={ + "low": 0, + "standard": 1, + "high": 2, + }.get, + ), + entity_class=MatterAttributeSelectEntity, + required_attributes=( + clusters.BooleanStateConfiguration.Attributes.CurrentSensitivityLevel, + ), + vendor_id=(4447,), + product_id=( + 8197, + 8195, + ), + ), + MatterDiscoverySchema( + platform=Platform.SELECT, + entity_description=MatterSelectEntityDescription( + key="HeimanOccupancySensorBooleanStateConfigurationCurrentSensitivityLevel", + entity_category=EntityCategory.CONFIG, + translation_key="sensitivity_level", + options=["low", "standard", "high"], + device_to_ha={ + 0: "low", + 1: "standard", + 2: "high", + }.get, + ha_to_device={ + "low": 0, + "standard": 1, + "high": 2, + }.get, + ), + entity_class=MatterAttributeSelectEntity, + required_attributes=( + clusters.BooleanStateConfiguration.Attributes.CurrentSensitivityLevel, + ), + vendor_id=(4619,), + product_id=(4097,), + ), ] diff --git a/tests/components/matter/conftest.py b/tests/components/matter/conftest.py index ba5559280fa..3afe12f30fe 100644 --- a/tests/components/matter/conftest.py +++ b/tests/components/matter/conftest.py @@ -103,6 +103,7 @@ async def integration_fixture( "generic_switch", "generic_switch_multi", "haojai_switch", + "heiman_motion_sensor_m1", "humidity_sensor", "inovelli_vtm30", "laundry_dryer", diff --git a/tests/components/matter/fixtures/nodes/heiman_motion_sensor_m1.json b/tests/components/matter/fixtures/nodes/heiman_motion_sensor_m1.json new file mode 100644 index 00000000000..029dc3935c1 --- /dev/null +++ b/tests/components/matter/fixtures/nodes/heiman_motion_sensor_m1.json @@ -0,0 +1,423 @@ +{ + "node_id": 88, + "date_commissioned": "2025-10-17T04:07:36.029285", + "last_interview": "2025-10-17T09:19:29.511220", + "interview_version": 6, + "available": true, + "is_bridge": false, + "attributes": { + "0/29/0": [ + { + "0": 18, + "1": 1 + }, + { + "0": 22, + "1": 3 + } + ], + "0/29/1": [29, 31, 40, 42, 43, 48, 49, 51, 53, 60, 62, 63, 64, 65, 70], + "0/29/2": [41], + "0/29/3": [1, 2], + "0/29/65532": 0, + "0/29/65533": 2, + "0/29/65528": [], + "0/29/65529": [], + "0/29/65531": [0, 1, 2, 3, 65528, 65529, 65531, 65532, 65533], + "0/31/0": [ + { + "1": 5, + "2": 2, + "3": [112233], + "4": null, + "254": 1 + } + ], + "0/31/1": [], + "0/31/2": 4, + "0/31/3": 3, + "0/31/4": 4, + "0/31/65532": 1, + "0/31/65533": 2, + "0/31/65528": [], + "0/31/65529": [], + "0/31/65531": [0, 1, 2, 3, 4, 65528, 65529, 65531, 65532, 65533], + "0/40/0": 18, + "0/40/1": "HEIMAN", + "0/40/2": 4619, + "0/40/3": "Smart motion sensor", + "0/40/4": 4097, + "0/40/5": "", + "0/40/6": "**REDACTED**", + "0/40/7": 0, + "0/40/8": "0X00", + "0/40/9": 16, + "0/40/10": "0X10", + "0/40/11": "20251017", + "0/40/12": "", + "0/40/14": "", + "0/40/15": "2403124097000004", + "0/40/16": false, + "0/40/18": "13F9DE3C978B9D96", + "0/40/19": { + "0": 3, + "1": 3 + }, + "0/40/21": 17039360, + "0/40/22": 1, + "0/40/65532": 0, + "0/40/65533": 4, + "0/40/65528": [], + "0/40/65529": [], + "0/40/65531": [ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 18, 19, 21, 22, + 65528, 65529, 65531, 65532, 65533 + ], + "0/42/0": [], + "0/42/1": true, + "0/42/2": 1, + "0/42/3": null, + "0/42/65532": 0, + "0/42/65533": 1, + "0/42/65528": [], + "0/42/65529": [0], + "0/42/65531": [0, 1, 2, 3, 65528, 65529, 65531, 65532, 65533], + "0/43/0": "en-US", + "0/43/1": [ + "en-US", + "de-DE", + "fr-FR", + "en-GB", + "es-ES", + "zh-CN", + "it-IT", + "ja-JP" + ], + "0/43/65532": 0, + "0/43/65533": 1, + "0/43/65528": [], + "0/43/65529": [], + "0/43/65531": [0, 1, 65528, 65529, 65531, 65532, 65533], + "0/48/0": 0, + "0/48/1": { + "0": 60, + "1": 900 + }, + "0/48/2": 0, + "0/48/3": 0, + "0/48/4": true, + "0/48/65532": 0, + "0/48/65533": 2, + "0/48/65528": [1, 3, 5], + "0/48/65529": [0, 2, 4], + "0/48/65531": [0, 1, 2, 3, 4, 65528, 65529, 65531, 65532, 65533], + "0/49/0": 1, + "0/49/1": [ + { + "0": "YQyEcie3RcQ=", + "1": true + } + ], + "0/49/2": 10, + "0/49/3": 20, + "0/49/4": true, + "0/49/5": 0, + "0/49/6": "YQyEcie3RcQ=", + "0/49/7": null, + "0/49/9": 4, + "0/49/10": 4, + "0/49/65532": 2, + "0/49/65533": 2, + "0/49/65528": [1, 5, 7], + "0/49/65529": [0, 3, 4, 6, 8], + "0/49/65531": [ + 0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 65528, 65529, 65531, 65532, 65533 + ], + "0/51/0": [ + { + "0": "MyHome1632128124", + "1": true, + "2": null, + "3": null, + "4": "Fu49dsKVyno=", + "5": [], + "6": [ + "/ZK5FVDqAAEcZ41FWT3bZw==", + "/UDhFw6GGBwAAAD//gCoAw==", + "/UDhFw6GGBzJ0XUa3VLmzw==", + "/oAAAAAAAAAU7j12wpXKeg==" + ], + "7": 4 + } + ], + "0/51/1": 28, + "0/51/2": 7, + "0/51/8": true, + "0/51/65532": 0, + "0/51/65533": 2, + "0/51/65528": [2], + "0/51/65529": [0, 1], + "0/51/65531": [0, 1, 2, 8, 65528, 65529, 65531, 65532, 65533], + "0/53/0": 25, + "0/53/1": 2, + "0/53/2": "MyHome1632128124", + "0/53/3": 18863, + "0/53/4": 6993109947226998212, + "0/53/5": "QP1A4RcOhhgc", + "0/53/7": [ + { + "0": 17167139804816671203, + "1": 6, + "2": 43008, + "3": 237023, + "4": 32617, + "5": 3, + "6": -71, + "7": -70, + "8": 2, + "9": 0, + "10": true, + "11": true, + "12": true, + "13": false + } + ], + "0/53/8": [ + { + "0": 17167139804816671203, + "1": 43008, + "2": 42, + "3": 0, + "4": 0, + "5": 3, + "6": 3, + "7": 6, + "8": true, + "9": true + } + ], + "0/53/9": 77424152, + "0/53/10": 64, + "0/53/11": 38, + "0/53/12": 59, + "0/53/13": 48, + "0/53/59": { + "0": 672, + "1": 8335 + }, + "0/53/60": "AB//wA==", + "0/53/61": { + "0": true, + "1": false, + "2": true, + "3": true, + "4": true, + "5": true, + "6": false, + "7": true, + "8": true, + "9": true, + "10": true, + "11": true + }, + "0/53/62": [], + "0/53/65532": 0, + "0/53/65533": 3, + "0/53/65528": [], + "0/53/65529": [], + "0/53/65531": [ + 0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 59, 60, 61, 62, 65528, 65529, + 65531, 65532, 65533 + ], + "0/60/0": 0, + "0/60/1": null, + "0/60/2": null, + "0/60/65532": 0, + "0/60/65533": 1, + "0/60/65528": [], + "0/60/65529": [0, 2], + "0/60/65531": [0, 1, 2, 65528, 65529, 65531, 65532, 65533], + "0/62/0": [ + { + "1": "FTABAQEkAgE3AyQTAhgmBIAigScmBYAlTTo3BiQVAiQRWBgkBwEkCAEwCUEEYmb3OWaCFZsf6qKhYBiLtS7nthXIMuBzitqO+YxdQt9mXkRNQMngH7FZx4XXmSUVklauvXQcFTuG3+ymRR2hIDcKNQEoARgkAgE2AwQCBAEYMAQUqSR5c+7smDGW8KsbChU4HyALpOowBRRTj+doj5Fw1Yc9qtp0WykEBe1J+RgwC0AAtpHefXni/cHk4aZZR9osDwQ7L8HnEIx13l8E3SLt8KK6FE7QzFF7hSFqV2QlrzXGokHwwfyJFOM8+zcgNAUIGA==", + "2": "FTABAQEkAgE3AyQUARgmBIAigScmBYAlTTo3BiQTAhgkBwEkCAEwCUEE7wD1Oy+FBhe0X0wRsbGu+6IYQ4E43T0VRX/W3XWnFgdX11JeWteHYSa6La6P9pBskcnPg0X0FUBVTW4e4y658zcKNQEpARgkAmAwBBRTj+doj5Fw1Yc9qtp0WykEBe1J+TAFFHp9o5mYxLtCV/naF+TucRjYpikFGDALQGl/PboEwMoFJFSIioKMCY941P194WVN8vtwgIy45ARX07J6mN6Gm5RhztxJlI5FgT3sIs1z+bk9PBHeUEuFziwY", + "254": 1 + } + ], + "0/62/1": [ + { + "1": "BJ+eWskO4THGu0dAuz1uHBH5tvPx250sfVwD5p6s8SMx+9ffuT3hoR24OFeMARMk/+2ByzRkfyLW0wErZo61UG8=", + "2": 4939, + "3": 2, + "4": 88, + "5": "Home", + "254": 1 + } + ], + "0/62/2": 5, + "0/62/3": 1, + "0/62/4": [ + "FTABAQEkAgE3AyQUARgmBIAigScmBYAlTTo3BiQUARgkBwEkCAEwCUEEn55ayQ7hMca7R0C7PW4cEfm28/HbnSx9XAPmnqzxIzH719+5PeGhHbg4V4wBEyT/7YHLNGR/ItbTAStmjrVQbzcKNQEpARgkAmAwBBR6faOZmMS7Qlf52hfk7nEY2KYpBTAFFHp9o5mYxLtCV/naF+TucRjYpikFGDALQDKxtBIVhxFIis7P2FStjkUDSm58ng9n6rnRH4xUh8eCay3Wo+bbpN1oHu4/mJu1e+I1THbThvRVHc0nFXYSRNoY" + ], + "0/62/5": 1, + "0/62/65532": 0, + "0/62/65533": 1, + "0/62/65528": [1, 3, 5, 8], + "0/62/65529": [0, 2, 4, 6, 7, 9, 10, 11], + "0/62/65531": [0, 1, 2, 3, 4, 5, 65528, 65529, 65531, 65532, 65533], + "0/63/0": [], + "0/63/1": [], + "0/63/2": 4, + "0/63/3": 3, + "0/63/65532": 0, + "0/63/65533": 2, + "0/63/65528": [2, 5], + "0/63/65529": [0, 1, 3, 4], + "0/63/65531": [0, 1, 2, 3, 65528, 65529, 65531, 65532, 65533], + "0/64/0": [ + { + "0": "room", + "1": "bedroom 2" + }, + { + "0": "orientation", + "1": "North" + }, + { + "0": "floor", + "1": "2" + }, + { + "0": "direction", + "1": "up" + } + ], + "0/64/65532": 0, + "0/64/65533": 1, + "0/64/65528": [], + "0/64/65529": [], + "0/64/65531": [0, 65528, 65529, 65531, 65532, 65533], + "0/65/0": [], + "0/65/65532": 0, + "0/65/65533": 1, + "0/65/65528": [], + "0/65/65529": [], + "0/65/65531": [0, 65528, 65529, 65531, 65532, 65533], + "0/70/0": 60, + "0/70/1": 0, + "0/70/2": 5000, + "0/70/3": [], + "0/70/4": 3145050909, + "0/70/5": 2, + "0/70/6": 4381, + "0/70/7": "Restart the application", + "0/70/8": 0, + "0/70/9": 60, + "0/70/65532": 15, + "0/70/65533": 3, + "0/70/65528": [1, 4], + "0/70/65529": [0, 2, 3], + "0/70/65531": [ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 65528, 65529, 65531, 65532, 65533 + ], + "1/3/0": 0, + "1/3/1": 2, + "1/3/65532": 0, + "1/3/65533": 5, + "1/3/65528": [], + "1/3/65529": [0, 64], + "1/3/65531": [0, 1, 65528, 65529, 65531, 65532, 65533], + "1/29/0": [ + { + "0": 263, + "1": 1 + }, + { + "0": 17, + "1": 1 + } + ], + "1/29/1": [3, 29, 47, 128, 1030], + "1/29/2": [], + "1/29/3": [], + "1/29/65532": 0, + "1/29/65533": 2, + "1/29/65528": [], + "1/29/65529": [], + "1/29/65531": [0, 1, 2, 3, 65528, 65529, 65531, 65532, 65533], + "1/47/0": 0, + "1/47/1": 0, + "1/47/2": "", + "1/47/11": 3000, + "1/47/12": 200, + "1/47/13": 0, + "1/47/14": 0, + "1/47/15": false, + "1/47/16": 0, + "1/47/19": "CR2", + "1/47/24": 0, + "1/47/25": 0, + "1/47/31": [], + "1/47/65532": 10, + "1/47/65533": 3, + "1/47/65528": [], + "1/47/65529": [], + "1/47/65531": [ + 0, 1, 2, 11, 12, 13, 14, 15, 16, 19, 24, 25, 31, 65528, 65529, 65531, + 65532, 65533 + ], + "1/128/0": 2, + "1/128/1": 3, + "1/128/2": 2, + "1/128/65532": 8, + "1/128/65533": 1, + "1/128/65528": [], + "1/128/65529": [], + "1/128/65531": [0, 1, 2, 65528, 65529, 65531, 65532, 65533], + "1/1030/0": 0, + "1/1030/1": 0, + "1/1030/2": 1, + "1/1030/3": 70, + "1/1030/4": { + "0": 6, + "1": 3600, + "2": 60 + }, + "1/1030/16": 70, + "1/1030/65532": 2, + "1/1030/65533": 5, + "1/1030/65528": [], + "1/1030/65529": [], + "1/1030/65531": [0, 1, 2, 3, 4, 16, 65528, 65529, 65531, 65532, 65533], + "2/3/0": 0, + "2/3/1": 0, + "2/3/65532": 0, + "2/3/65533": 4, + "2/3/65528": [], + "2/3/65529": [0, 64], + "2/3/65531": [0, 1, 65528, 65529, 65531, 65532, 65533], + "2/29/0": [ + { + "0": 262, + "1": 1 + } + ], + "2/29/1": [3, 29, 1024], + "2/29/2": [], + "2/29/3": [], + "2/29/65532": 0, + "2/29/65533": 2, + "2/29/65528": [], + "2/29/65529": [], + "2/29/65531": [0, 1, 2, 3, 65528, 65529, 65531, 65532, 65533], + "2/1024/0": 20212, + "2/1024/1": 0, + "2/1024/2": 0, + "2/1024/65532": 0, + "2/1024/65533": 3, + "2/1024/65528": [], + "2/1024/65529": [], + "2/1024/65531": [0, 1, 2, 65528, 65529, 65531, 65532, 65533] + }, + "attribute_subscriptions": [] +} diff --git a/tests/components/matter/snapshots/test_binary_sensor.ambr b/tests/components/matter/snapshots/test_binary_sensor.ambr index d55ebc96fe8..eb1235c54ef 100644 --- a/tests/components/matter/snapshots/test_binary_sensor.ambr +++ b/tests/components/matter/snapshots/test_binary_sensor.ambr @@ -342,6 +342,55 @@ 'state': 'on', }) # --- +# name: test_binary_sensors[heiman_motion_sensor_m1][binary_sensor.smart_motion_sensor_occupancy-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'binary_sensor', + 'entity_category': None, + 'entity_id': 'binary_sensor.smart_motion_sensor_occupancy', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Occupancy', + 'platform': 'matter', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00000000000004D2-0000000000000058-MatterNodeDevice-1-OccupancySensor-1030-0', + 'unit_of_measurement': None, + }) +# --- +# name: test_binary_sensors[heiman_motion_sensor_m1][binary_sensor.smart_motion_sensor_occupancy-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'occupancy', + 'friendly_name': 'Smart motion sensor Occupancy', + }), + 'context': , + 'entity_id': 'binary_sensor.smart_motion_sensor_occupancy', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'off', + }) +# --- # name: test_binary_sensors[leak_sensor][binary_sensor.water_leak_detector_water_leak-entry] EntityRegistryEntrySnapshot({ 'aliases': set({ diff --git a/tests/components/matter/snapshots/test_button.ambr b/tests/components/matter/snapshots/test_button.ambr index 8f19e08142d..e4868eae519 100644 --- a/tests/components/matter/snapshots/test_button.ambr +++ b/tests/components/matter/snapshots/test_button.ambr @@ -1416,6 +1416,55 @@ 'state': 'unknown', }) # --- +# name: test_buttons[heiman_motion_sensor_m1][button.smart_motion_sensor_identify_1-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.smart_motion_sensor_identify_1', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Identify (1)', + 'platform': 'matter', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00000000000004D2-0000000000000058-MatterNodeDevice-1-IdentifyButton-3-1', + 'unit_of_measurement': None, + }) +# --- +# name: test_buttons[heiman_motion_sensor_m1][button.smart_motion_sensor_identify_1-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'identify', + 'friendly_name': 'Smart motion sensor Identify (1)', + }), + 'context': , + 'entity_id': 'button.smart_motion_sensor_identify_1', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- # name: test_buttons[inovelli_vtm30][button.white_series_onoff_switch_identify_load_control-entry] EntityRegistryEntrySnapshot({ 'aliases': set({ diff --git a/tests/components/matter/snapshots/test_number.ambr b/tests/components/matter/snapshots/test_number.ambr index 97e5caf487d..598ca5bbea9 100644 --- a/tests/components/matter/snapshots/test_number.ambr +++ b/tests/components/matter/snapshots/test_number.ambr @@ -1154,6 +1154,64 @@ 'state': '255', }) # --- +# name: test_numbers[heiman_motion_sensor_m1][number.smart_motion_sensor_hold_time-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'max': 65534, + 'min': 1, + 'mode': , + 'step': 1.0, + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'number', + 'entity_category': , + 'entity_id': 'number.smart_motion_sensor_hold_time', + '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': 'Hold time', + 'platform': 'matter', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'hold_time', + 'unique_id': '00000000000004D2-0000000000000058-MatterNodeDevice-1-OccupancySensingHoldTime-1030-3', + 'unit_of_measurement': , + }) +# --- +# name: test_numbers[heiman_motion_sensor_m1][number.smart_motion_sensor_hold_time-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'Smart motion sensor Hold time', + 'max': 65534, + 'min': 1, + 'mode': , + 'step': 1.0, + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'number.smart_motion_sensor_hold_time', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '70', + }) +# --- # name: test_numbers[inovelli_vtm30][number.white_series_onoff_switch_led_off_intensity_load_control-entry] EntityRegistryEntrySnapshot({ 'aliases': set({ diff --git a/tests/components/matter/snapshots/test_select.ambr b/tests/components/matter/snapshots/test_select.ambr index 041b348ebe0..fef1a1b5209 100644 --- a/tests/components/matter/snapshots/test_select.ambr +++ b/tests/components/matter/snapshots/test_select.ambr @@ -58,6 +58,124 @@ 'state': '30 mm', }) # --- +# name: test_selects[aqara_motion_p2][select.aqara_motion_and_light_sensor_p2_sensitivity-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'options': list([ + 'low', + 'standard', + 'high', + ]), + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'select', + 'entity_category': , + 'entity_id': 'select.aqara_motion_and_light_sensor_p2_sensitivity', + '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': 'Sensitivity', + 'platform': 'matter', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'sensitivity_level', + 'unique_id': '00000000000004D2-0000000000000053-MatterNodeDevice-1-AqaraOccupancySensorBooleanStateConfigurationCurrentSensitivityLevel-128-0', + 'unit_of_measurement': None, + }) +# --- +# name: test_selects[aqara_motion_p2][select.aqara_motion_and_light_sensor_p2_sensitivity-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'Aqara Motion and Light Sensor P2 Sensitivity', + 'options': list([ + 'low', + 'standard', + 'high', + ]), + }), + 'context': , + 'entity_id': 'select.aqara_motion_and_light_sensor_p2_sensitivity', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'standard', + }) +# --- +# name: test_selects[aqara_presence_fp300][select.presence_multi_sensor_fp300_1_sensitivity-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'options': list([ + 'low', + 'standard', + 'high', + ]), + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'select', + 'entity_category': , + 'entity_id': 'select.presence_multi_sensor_fp300_1_sensitivity', + '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': 'Sensitivity', + 'platform': 'matter', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'sensitivity_level', + 'unique_id': '00000000000004D2-00000000000000CD-MatterNodeDevice-1-AqaraOccupancySensorBooleanStateConfigurationCurrentSensitivityLevel-128-0', + 'unit_of_measurement': None, + }) +# --- +# name: test_selects[aqara_presence_fp300][select.presence_multi_sensor_fp300_1_sensitivity-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'Presence Multi-Sensor FP300 1 Sensitivity', + 'options': list([ + 'low', + 'standard', + 'high', + ]), + }), + 'context': , + 'entity_id': 'select.presence_multi_sensor_fp300_1_sensitivity', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'low', + }) +# --- # name: test_selects[aqara_thermostat_w500][select.floor_heating_thermostat_temperature_display_mode-entry] EntityRegistryEntrySnapshot({ 'aliases': set({ @@ -1219,6 +1337,65 @@ 'state': 'previous', }) # --- +# name: test_selects[heiman_motion_sensor_m1][select.smart_motion_sensor_sensitivity-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'options': list([ + 'low', + 'standard', + 'high', + ]), + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'select', + 'entity_category': , + 'entity_id': 'select.smart_motion_sensor_sensitivity', + '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': 'Sensitivity', + 'platform': 'matter', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'sensitivity_level', + 'unique_id': '00000000000004D2-0000000000000058-MatterNodeDevice-1-HeimanOccupancySensorBooleanStateConfigurationCurrentSensitivityLevel-128-0', + 'unit_of_measurement': None, + }) +# --- +# name: test_selects[heiman_motion_sensor_m1][select.smart_motion_sensor_sensitivity-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'Smart motion sensor Sensitivity', + 'options': list([ + 'low', + 'standard', + 'high', + ]), + }), + 'context': , + 'entity_id': 'select.smart_motion_sensor_sensitivity', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'high', + }) +# --- # name: test_selects[inovelli_vtm30][select.white_series_onoff_switch_button_press_delay-entry] EntityRegistryEntrySnapshot({ 'aliases': set({ diff --git a/tests/components/matter/snapshots/test_sensor.ambr b/tests/components/matter/snapshots/test_sensor.ambr index 523640bb1f9..5204a2e098c 100644 --- a/tests/components/matter/snapshots/test_sensor.ambr +++ b/tests/components/matter/snapshots/test_sensor.ambr @@ -5443,6 +5443,278 @@ 'state': '0', }) # --- +# name: test_sensors[heiman_motion_sensor_m1][sensor.smart_motion_sensor_battery-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.smart_motion_sensor_battery', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Battery', + 'platform': 'matter', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00000000000004D2-0000000000000058-MatterNodeDevice-1-PowerSource-47-12', + 'unit_of_measurement': '%', + }) +# --- +# name: test_sensors[heiman_motion_sensor_m1][sensor.smart_motion_sensor_battery-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'battery', + 'friendly_name': 'Smart motion sensor Battery', + 'state_class': , + 'unit_of_measurement': '%', + }), + 'context': , + 'entity_id': 'sensor.smart_motion_sensor_battery', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '100', + }) +# --- +# name: test_sensors[heiman_motion_sensor_m1][sensor.smart_motion_sensor_battery_type-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.smart_motion_sensor_battery_type', + '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': 'Battery type', + 'platform': 'matter', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'battery_replacement_description', + 'unique_id': '00000000000004D2-0000000000000058-MatterNodeDevice-1-PowerSourceBatReplacementDescription-47-19', + 'unit_of_measurement': None, + }) +# --- +# name: test_sensors[heiman_motion_sensor_m1][sensor.smart_motion_sensor_battery_type-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'Smart motion sensor Battery type', + }), + 'context': , + 'entity_id': 'sensor.smart_motion_sensor_battery_type', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'CR2', + }) +# --- +# name: test_sensors[heiman_motion_sensor_m1][sensor.smart_motion_sensor_battery_voltage-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.smart_motion_sensor_battery_voltage', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 0, + }), + 'sensor.private': dict({ + 'suggested_unit_of_measurement': , + }), + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Battery voltage', + 'platform': 'matter', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'battery_voltage', + 'unique_id': '00000000000004D2-0000000000000058-MatterNodeDevice-1-PowerSourceBatVoltage-47-11', + 'unit_of_measurement': , + }) +# --- +# name: test_sensors[heiman_motion_sensor_m1][sensor.smart_motion_sensor_battery_voltage-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'voltage', + 'friendly_name': 'Smart motion sensor Battery voltage', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.smart_motion_sensor_battery_voltage', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '3.0', + }) +# --- +# name: test_sensors[heiman_motion_sensor_m1][sensor.smart_motion_sensor_illuminance-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.smart_motion_sensor_illuminance', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Illuminance', + 'platform': 'matter', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00000000000004D2-0000000000000058-MatterNodeDevice-2-LightSensor-1024-0', + 'unit_of_measurement': 'lx', + }) +# --- +# name: test_sensors[heiman_motion_sensor_m1][sensor.smart_motion_sensor_illuminance-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'illuminance', + 'friendly_name': 'Smart motion sensor Illuminance', + 'state_class': , + 'unit_of_measurement': 'lx', + }), + 'context': , + 'entity_id': 'sensor.smart_motion_sensor_illuminance', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '105.0', + }) +# --- +# name: test_sensors[heiman_motion_sensor_m1][sensor.smart_motion_sensor_time_remaining-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.smart_motion_sensor_time_remaining', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'options': dict({ + 'sensor': dict({ + 'suggested_display_precision': 2, + }), + 'sensor.private': dict({ + 'suggested_unit_of_measurement': , + }), + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Time remaining', + 'platform': 'matter', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'battery_time_remaining', + 'unique_id': '00000000000004D2-0000000000000058-MatterNodeDevice-1-PowerSourceBatTimeRemaining-47-13', + 'unit_of_measurement': , + }) +# --- +# name: test_sensors[heiman_motion_sensor_m1][sensor.smart_motion_sensor_time_remaining-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'device_class': 'duration', + 'friendly_name': 'Smart motion sensor Time remaining', + 'state_class': , + 'unit_of_measurement': , + }), + 'context': , + 'entity_id': 'sensor.smart_motion_sensor_time_remaining', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '0.0', + }) +# --- # name: test_sensors[humidity_sensor][sensor.mock_humidity_sensor_humidity-entry] EntityRegistryEntrySnapshot({ 'aliases': set({