From d1ca2506e3ba155a8b5960c2a42c36dfb0cdcd2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20BOU=C3=89?= Date: Thu, 17 Sep 2026 13:58:19 +0200 Subject: [PATCH] Add Matter mock_closure_covering_lift fixture for Closure/ClosurePanel devices (#182133) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Ludovic BOUÉ <938089+lboue@users.noreply.github.com> --- tests/components/matter/common.py | 1 + .../nodes/mock_closure_covering_lift.json | 355 ++++++++++++++++++ .../matter/snapshots/test_button.ambr | 51 +++ .../matter/snapshots/test_sensor.ambr | 346 +++++++++++++++++ 4 files changed, 753 insertions(+) create mode 100644 tests/components/matter/fixtures/nodes/mock_closure_covering_lift.json diff --git a/tests/components/matter/common.py b/tests/components/matter/common.py index e2c0d5b4c84b..c9021567e031 100644 --- a/tests/components/matter/common.py +++ b/tests/components/matter/common.py @@ -54,6 +54,7 @@ FIXTURES = [ "mock_air_purifier", "mock_battery_storage", "mock_chime", + "mock_closure_covering_lift", "mock_closure_roof_window", "mock_cooktop", "mock_dimmable_light", diff --git a/tests/components/matter/fixtures/nodes/mock_closure_covering_lift.json b/tests/components/matter/fixtures/nodes/mock_closure_covering_lift.json new file mode 100644 index 000000000000..a00a7d44f041 --- /dev/null +++ b/tests/components/matter/fixtures/nodes/mock_closure_covering_lift.json @@ -0,0 +1,355 @@ +{ + "node_id": 72, + "date_commissioned": "2026-09-10T13:10:12.756000", + "last_interview": "2026-09-10T13:10:22.351000", + "interview_version": 6, + "available": true, + "is_bridge": false, + "attributes": { + "0/70/65533": 3, + "0/70/65532": 0, + "0/70/0": 300, + "0/70/1": 300, + "0/70/2": 5000, + "0/70/65531": [0, 1, 2, 65532, 65533, 65528, 65529, 65531], + "0/70/65529": [], + "0/70/65528": [], + "0/65/0": [], + "0/65/65533": 1, + "0/65/65532": 0, + "0/65/65531": [0, 65532, 65533, 65528, 65529, 65531], + "0/65/65529": [], + "0/65/65528": [], + "0/63/65533": 3, + "0/63/65532": 0, + "0/63/0": [], + "0/63/1": [], + "0/63/2": 4, + "0/63/3": 4, + "0/63/65531": [0, 1, 2, 3, 65532, 65533, 65528, 65529, 65531], + "0/63/65529": [0, 1, 3, 4], + "0/63/65528": [5, 2], + "0/62/65533": 2, + "0/62/0": [ + { + "1": "FTABAQIkAgE3AyQUABgmBMMXVDAmBUNOAUU3BiQVAiQRARgkBwEkCAEwCUEEBvUu2GoclkSBNg3FSKorIU5cWzMiLpRyMzOUtZYXgDoXXQu+3tJp9ZllqjAJz9DZp+LPrbGn9nj3dWv3rkVGZjcKNQEoARgkAgE2AwQCBAEYMAQUGVh/XVvHe/Mo2TUl5uFQU907fo8wBRQyTqkgyHXfU9Ncr9MYiNhxkpT0CxgwC0AlYrpbAMq/NTmaWiOlDM8tp4njE4h8G5iQMlcqH7dPhxFULMkrDcrO2ExXBUGfGRs6mvWOCdcH59IGRj7fBb0YGA==", + "2": null, + "254": 2 + } + ], + "0/62/1": [ + { + "1": "BD2uRGL3xKajROZ9KVGqW2ds+lbSVbtjvX0aHuaAN1QAzpniyczSzQpEu9DmkCbVQrY7jXSETUv4MMWg/DYczrw=", + "2": 4939, + "3": 2, + "4": 1, + "5": "Hjem", + "254": 2 + } + ], + "0/62/2": 5, + "0/62/3": 2, + "0/62/4": [ + "FTABAQAkAgE3AycUDbJd2YHO7k4mFSbP/UsYJgSkmJwwJAUANwYnFA2yXdmBzu5OJhUmz/1LGCQHASQIATAJQQTl1FmKi3U1rKyQ5A9OlbeNxa5ZoUUfjBDNcrk9lJKkfqM9Q/LIJkdeRY4LSLJXI6Rjj04+25lnWy6SWmjhXXf0Nwo1ASkBGCQCYDAEFMhYWae/iYZmAZjH1Plowy3ae0G2MAUUyFhZp7+JhmYBmMfU+WjDLdp7QbYYMAtAfWipMkcKWZoLPV99btttVsbzyeHGYJDWTMoGJxVJaRneOtGoz7vzPuC8w9IWf+CJBuqZRtPwMtNkWh0SlgAGphg=", + "FTABAQAkAgE3AyQUABgmBBIJVDAmBZI/AUU3BiQUABgkBwEkCAEwCUEEPa5EYvfEpqNE5n0pUapbZ2z6VtJVu2O9fRoe5oA3VADOmeLJzNLNCkS70OaQJtVCtjuNdIRNS/gwxaD8NhzOvDcKNQEpARgkAmAwBBQyTqkgyHXfU9Ncr9MYiNhxkpT0CzAFFDJOqSDIdd9T01yv0xiI2HGSlPQLGDALQE7gI3I/bjNb6y4aAHKYTyZvNI0ZhYr+MN3Al8qrhRpLgd++Jg6FUZHHtkUmZfabZ53jWC0xr6wyTGG/D5junkcY" + ], + "0/62/5": 2, + "0/62/65532": 0, + "0/62/65531": [0, 1, 2, 3, 4, 5, 65532, 65533, 65528, 65529, 65531], + "0/62/65529": [0, 2, 4, 6, 7, 9, 10, 11, 12, 13], + "0/62/65528": [1, 3, 5, 8, 14], + "0/60/65533": 1, + "0/60/65532": 0, + "0/60/0": 0, + "0/60/1": null, + "0/60/2": null, + "0/60/65531": [0, 1, 2, 65532, 65533, 65528, 65529, 65531], + "0/60/65529": [0, 2], + "0/60/65528": [], + "0/53/65532": 15, + "0/53/6": 0, + "0/53/14": 1, + "0/53/15": 1, + "0/53/16": 0, + "0/53/17": 0, + "0/53/18": 1, + "0/53/19": 1, + "0/53/20": 0, + "0/53/21": 0, + "0/53/22": 149, + "0/53/23": 132, + "0/53/24": 17, + "0/53/25": 132, + "0/53/26": 132, + "0/53/27": 17, + "0/53/28": 150, + "0/53/29": 0, + "0/53/30": 0, + "0/53/31": 0, + "0/53/32": 0, + "0/53/33": 44, + "0/53/34": 1, + "0/53/35": 0, + "0/53/36": 2, + "0/53/37": 0, + "0/53/38": 0, + "0/53/39": 121, + "0/53/40": 118, + "0/53/41": 3, + "0/53/42": 116, + "0/53/43": 0, + "0/53/44": 0, + "0/53/45": 0, + "0/53/46": 0, + "0/53/47": 0, + "0/53/48": 0, + "0/53/49": 5, + "0/53/50": 0, + "0/53/51": 0, + "0/53/52": 0, + "0/53/53": 0, + "0/53/54": 0, + "0/53/55": 0, + "0/53/56": 65536, + "0/53/57": 0, + "0/53/58": 0, + "0/53/65533": 3, + "0/53/0": 15, + "0/53/1": 4, + "0/53/2": "ha-thread-1234", + "0/53/3": 32971, + "0/53/4": 99798922824493142, + "0/53/5": "QP0sY46pEwFN", + "0/53/7": [], + "0/53/8": [ + { + "0": 0, + "1": 12288, + "2": 12, + "3": 63, + "4": 0, + "5": 0, + "6": 0, + "7": 172, + "8": true, + "9": false + } + ], + "0/53/9": 1579515898, + "0/53/10": 65, + "0/53/11": 101, + "0/53/12": 106, + "0/53/13": 12, + "0/53/59": { "0": 672, "1": 143 }, + "0/53/60": "AB//4A==", + "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/63": 8278950144563218229, + "0/53/64": 12289, + "0/53/65531": [ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65532, 65533, 65528, 65529, 65531 + ], + "0/53/65529": [0], + "0/53/65528": [], + "0/52/65532": 1, + "0/52/0": [ + { "0": 10, "1": "Bluetoot", "3": 1192 }, + { "0": 9, "1": "Bluetoot", "3": 608 }, + { "0": 8, "1": "Bluetoot", "3": 376 }, + { "0": 7, "1": "shell", "3": 1372 }, + { "0": 6, "1": "UART", "3": 528 }, + { "0": 5, "1": "OT Seria", "3": 3664 }, + { "0": 4, "1": "Closure", "3": 2964 }, + { "0": 3, "1": "Tmr Svc", "3": 1076 }, + { "0": 2, "1": "IDLE", "3": 1160 }, + { "0": 1, "1": "OT Stack", "3": 3016 }, + { "0": 0, "1": "CHIP", "3": 2896 } + ], + "0/52/1": 364512, + "0/52/2": 26904, + "0/52/3": 36520, + "0/52/65533": 1, + "0/52/65531": [0, 1, 2, 3, 65532, 65533, 65528, 65529, 65531], + "0/52/65529": [0], + "0/52/65528": [], + "0/51/3": 0, + "0/51/4": 6, + "0/51/10": { "0": 0, "1": 0, "2": 0, "3": 46, "4": 47 }, + "0/51/65533": 3, + "0/51/65532": 0, + "0/51/0": [ + { + "0": "ha-thread-1234", + "1": true, + "2": null, + "3": null, + "4": "cuS9Su/cBzU=", + "5": [], + "6": [ + "/TYvgjAZAAFvi/ppkIrBjg==", + "/SxjjqkTAU0AAAD//gAwAQ==", + "/SxjjqkTAU1JctxNckcLeA==", + "/oAAAAAAAABw5L1K79wHNQ==" + ], + "7": 4 + } + ], + "0/51/1": 1, + "0/51/2": 173, + "0/51/8": true, + "0/51/65531": [0, 1, 8, 3, 4, 2, 10, 65532, 65533, 65528, 65529, 65531], + "0/51/65529": [0, 1], + "0/51/65528": [2], + "0/48/65533": 2, + "0/48/65532": 0, + "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/65531": [0, 1, 2, 3, 4, 65532, 65533, 65528, 65529, 65531], + "0/48/65529": [0, 2, 4], + "0/48/65528": [1, 3, 5], + "0/42/65533": 1, + "0/42/0": [], + "0/42/1": true, + "0/42/2": 1, + "0/42/3": null, + "0/42/65532": 0, + "0/42/65531": [0, 1, 2, 3, 65532, 65533, 65528, 65529, 65531], + "0/42/65529": [0], + "0/42/65528": [], + "0/40/11": "20200101", + "0/40/12": "", + "0/40/13": "", + "0/40/14": "", + "0/40/15": "", + "0/40/16": false, + "0/40/18": "EE3DA648DF937129", + "0/40/21": 17170432, + "0/40/22": 1, + "0/40/24": 1, + "0/40/65533": 6, + "0/40/0": 19, + "0/40/1": "Mock", + "0/40/2": 65521, + "0/40/3": "Mock Closure Covering Lift", + "0/40/4": 32768, + "0/40/5": "", + "0/40/6": "**REDACTED**", + "0/40/7": 1, + "0/40/8": "TEST_VERSION", + "0/40/9": 1, + "0/40/10": "1", + "0/40/19": { "0": 3, "1": 3, "2": 4, "3": 4, "4": 45, "5": 45 }, + "0/40/65532": 0, + "0/40/65531": [ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 19, 21, 22, 24, 11, 12, 13, 14, 15, 16, + 18, 65532, 65533, 65528, 65529, 65531 + ], + "0/40/65529": [], + "0/40/65528": [], + "0/31/65533": 3, + "0/31/65532": 0, + "0/31/0": [{ "1": 5, "2": 2, "3": [112233], "4": null, "254": 2 }], + "0/31/2": 4, + "0/31/3": 3, + "0/31/4": 4, + "0/31/65531": [0, 2, 3, 4, 65532, 65533, 65528, 65529, 65531], + "0/31/65529": [], + "0/31/65528": [], + "0/29/65533": 3, + "0/29/65532": 0, + "0/29/0": [{ "0": 22, "1": 4 }], + "0/29/1": [70, 65, 63, 62, 60, 53, 52, 51, 48, 42, 40, 31, 29, 49], + "0/29/2": [41], + "0/29/3": [1, 2], + "0/29/65531": [0, 1, 2, 3, 65532, 65533, 65528, 65529, 65531], + "0/29/65529": [], + "0/29/65528": [], + "0/49/65532": 2, + "0/49/2": 10, + "0/49/3": 20, + "0/49/9": 10, + "0/49/10": 5, + "0/49/65533": 2, + "0/49/0": 1, + "0/49/1": [{ "0": "AWKOl2/rqFY=", "1": true }], + "0/49/4": true, + "0/49/5": 0, + "0/49/6": "AWKOl2/rqFY=", + "0/49/7": null, + "0/49/65531": [ + 0, 1, 4, 5, 6, 7, 2, 3, 9, 10, 65532, 65533, 65528, 65529, 65531 + ], + "0/49/65529": [0, 3, 4, 6, 8], + "0/49/65528": [1, 5, 7], + "1/3/65533": 6, + "1/3/0": 0, + "1/3/1": 5, + "1/3/65532": 0, + "1/3/65531": [0, 1, 65532, 65533, 65528, 65529, 65531], + "1/3/65529": [0, 64], + "1/3/65528": [], + "1/260/65532": 9, + "1/260/0": null, + "1/260/65533": 1, + "1/260/1": 0, + "1/260/2": [], + "1/260/3": { "0": 2, "2": 0, "3": true }, + "1/260/4": { "0": null, "2": 0 }, + "1/260/65531": [1, 2, 3, 4, 0, 65532, 65533, 65528, 65529, 65531], + "1/260/65529": [0, 1], + "1/260/65528": [], + "1/29/65532": 1, + "1/29/4": [ + { "0": null, "1": 68, "2": 0, "3": "Closure.Covering" }, + { "0": null, "1": 70, "2": 0, "3": "Covering.Blind" } + ], + "1/29/65533": 3, + "1/29/0": [{ "0": 560, "1": 1 }], + "1/29/1": [3, 260, 29], + "1/29/2": [], + "1/29/3": [2], + "1/29/65531": [0, 1, 2, 3, 4, 65532, 65533, 65528, 65529, 65531], + "1/29/65529": [], + "1/29/65528": [], + "2/261/65532": 33, + "2/261/2": 100, + "2/261/3": 100, + "2/261/7": 0, + "2/261/65533": 1, + "2/261/0": { "0": 5000 }, + "2/261/1": { "0": 5000 }, + "2/261/65531": [0, 1, 2, 3, 7, 65532, 65533, 65528, 65529, 65531], + "2/261/65529": [0, 1], + "2/261/65528": [], + "2/29/65532": 1, + "2/29/4": [{ "0": null, "1": 69, "2": 0, "3": "ClosurePanel.Lift" }], + "2/29/65533": 3, + "2/29/0": [{ "0": 561, "1": 1 }], + "2/29/1": [261, 29], + "2/29/2": [], + "2/29/3": [], + "2/29/65531": [0, 1, 2, 3, 4, 65532, 65533, 65528, 65529, 65531], + "2/29/65529": [], + "2/29/65528": [] + }, + "attribute_subscriptions": [] +} diff --git a/tests/components/matter/snapshots/test_button.ambr b/tests/components/matter/snapshots/test_button.ambr index a30f42b5bbbb..2e2f74c6d852 100644 --- a/tests/components/matter/snapshots/test_button.ambr +++ b/tests/components/matter/snapshots/test_button.ambr @@ -2748,6 +2748,57 @@ 'state': 'unknown', }) # --- +# name: test_buttons[mock_closure_covering_lift][button.mock_closure_covering_lift_identify-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + '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.mock_closure_covering_lift_identify', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'Identify', + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Identify', + 'platform': 'matter', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': None, + 'unique_id': '00000000000004D2-0000000000000048-MatterNodeDevice-1-IdentifyButton-3-1', + 'unit_of_measurement': None, + }) +# --- +# name: test_buttons[mock_closure_covering_lift][button.mock_closure_covering_lift_identify-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + : 'identify', + : 'Mock Closure Covering Lift Identify', + }), + 'context': , + 'entity_id': 'button.mock_closure_covering_lift_identify', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# --- # name: test_buttons[mock_closure_roof_window][button.mock_closure_roof_window_identify-entry] EntityRegistryEntrySnapshot({ 'aliases': list([ diff --git a/tests/components/matter/snapshots/test_sensor.ambr b/tests/components/matter/snapshots/test_sensor.ambr index 6866c601889e..4722f49ed2e1 100644 --- a/tests/components/matter/snapshots/test_sensor.ambr +++ b/tests/components/matter/snapshots/test_sensor.ambr @@ -18601,6 +18601,352 @@ 'state': '2025-01-01T13:59:48+00:00', }) # --- +# name: test_sensors[mock_closure_covering_lift][sensor.mock_closure_covering_lift_boot_reason-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + 'area_id': None, + 'capabilities': dict({ + : list([ + 'unspecified', + 'power_on_reboot', + 'brown_out_reset', + 'software_watchdog_reset', + 'hardware_watchdog_reset', + 'software_update_completed', + 'software_reset', + ]), + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.mock_closure_covering_lift_boot_reason', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'Boot reason', + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Boot reason', + 'platform': 'matter', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'boot_reason', + 'unique_id': '00000000000004D2-0000000000000048-MatterNodeDevice-0-GeneralDiagnosticsBootReason-51-4', + 'unit_of_measurement': None, + }) +# --- +# name: test_sensors[mock_closure_covering_lift][sensor.mock_closure_covering_lift_boot_reason-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + : 'enum', + : 'Mock Closure Covering Lift Boot reason', + : list([ + 'unspecified', + 'power_on_reboot', + 'brown_out_reset', + 'software_watchdog_reset', + 'hardware_watchdog_reset', + 'software_update_completed', + 'software_reset', + ]), + }), + 'context': , + 'entity_id': 'sensor.mock_closure_covering_lift_boot_reason', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'software_reset', + }) +# --- +# name: test_sensors[mock_closure_covering_lift][sensor.mock_closure_covering_lift_reboot_count-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + 'area_id': None, + 'capabilities': dict({ + : , + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.mock_closure_covering_lift_reboot_count', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'Reboot count', + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Reboot count', + 'platform': 'matter', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'reboot_count', + 'unique_id': '00000000000004D2-0000000000000048-MatterNodeDevice-0-GeneralDiagnosticsRebootCount-51-1', + 'unit_of_measurement': None, + }) +# --- +# name: test_sensors[mock_closure_covering_lift][sensor.mock_closure_covering_lift_reboot_count-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + : 'Mock Closure Covering Lift Reboot count', + : , + }), + 'context': , + 'entity_id': 'sensor.mock_closure_covering_lift_reboot_count', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '1', + }) +# --- +# name: test_sensors[mock_closure_covering_lift][sensor.mock_closure_covering_lift_thread_channel-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + '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.mock_closure_covering_lift_thread_channel', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'Thread channel', + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Thread channel', + 'platform': 'matter', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'thread_channel', + 'unique_id': '00000000000004D2-0000000000000048-MatterNodeDevice-0-ThreadDiagnosticsChannel-53-0', + 'unit_of_measurement': None, + }) +# --- +# name: test_sensors[mock_closure_covering_lift][sensor.mock_closure_covering_lift_thread_channel-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + : 'Mock Closure Covering Lift Thread channel', + }), + 'context': , + 'entity_id': 'sensor.mock_closure_covering_lift_thread_channel', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '15', + }) +# --- +# name: test_sensors[mock_closure_covering_lift][sensor.mock_closure_covering_lift_thread_network_name-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + '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.mock_closure_covering_lift_thread_network_name', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'Thread network name', + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Thread network name', + 'platform': 'matter', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'thread_network_name', + 'unique_id': '00000000000004D2-0000000000000048-MatterNodeDevice-0-ThreadDiagnosticsNetworkName-53-2', + 'unit_of_measurement': None, + }) +# --- +# name: test_sensors[mock_closure_covering_lift][sensor.mock_closure_covering_lift_thread_network_name-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + : 'Mock Closure Covering Lift Thread network name', + }), + 'context': , + 'entity_id': 'sensor.mock_closure_covering_lift_thread_network_name', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'ha-thread-1234', + }) +# --- +# name: test_sensors[mock_closure_covering_lift][sensor.mock_closure_covering_lift_thread_routing_role-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + 'area_id': None, + 'capabilities': dict({ + : list([ + 'unspecified', + 'unassigned', + 'sleepy_end_device', + 'end_device', + 'reed', + 'router', + 'leader', + 'unknown', + ]), + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'sensor', + 'entity_category': , + 'entity_id': 'sensor.mock_closure_covering_lift_thread_routing_role', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'Thread routing role', + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Thread routing role', + 'platform': 'matter', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'thread_routing_role', + 'unique_id': '00000000000004D2-0000000000000048-MatterNodeDevice-0-ThreadDiagnosticsRoutingRole-53-1', + 'unit_of_measurement': None, + }) +# --- +# name: test_sensors[mock_closure_covering_lift][sensor.mock_closure_covering_lift_thread_routing_role-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + : 'enum', + : 'Mock Closure Covering Lift Thread routing role', + : list([ + 'unspecified', + 'unassigned', + 'sleepy_end_device', + 'end_device', + 'reed', + 'router', + 'leader', + 'unknown', + ]), + }), + 'context': , + 'entity_id': 'sensor.mock_closure_covering_lift_thread_routing_role', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'reed', + }) +# --- +# name: test_sensors[mock_closure_covering_lift][sensor.mock_closure_covering_lift_uptime-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + '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.mock_closure_covering_lift_uptime', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'Uptime', + 'options': dict({ + }), + 'original_device_class': , + 'original_icon': None, + 'original_name': 'Uptime', + 'platform': 'matter', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'uptime', + 'unique_id': '00000000000004D2-0000000000000048-MatterNodeDevice-0-GeneralDiagnosticsUpTime-51-2', + 'unit_of_measurement': None, + }) +# --- +# name: test_sensors[mock_closure_covering_lift][sensor.mock_closure_covering_lift_uptime-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + : 'uptime', + : 'Mock Closure Covering Lift Uptime', + }), + 'context': , + 'entity_id': 'sensor.mock_closure_covering_lift_uptime', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': '2025-01-01T13:57:07+00:00', + }) +# --- # name: test_sensors[mock_closure_roof_window][sensor.mock_closure_roof_window_boot_reason-entry] EntityRegistryEntrySnapshot({ 'aliases': list([