From 0b27fb5c28a624cc0760c2874c0c804bfb89db54 Mon Sep 17 00:00:00 2001 From: puddly <32534428+puddly@users.noreply.github.com> Date: Wed, 24 Jun 2026 16:22:55 -0400 Subject: [PATCH 1/9] Keep track of known legacy attributes --- tools/const.py | 632 ++++++++++++++++++++++++++++++++++++ tools/import_diagnostics.py | 39 ++- 2 files changed, 662 insertions(+), 9 deletions(-) create mode 100644 tools/const.py diff --git a/tools/const.py b/tools/const.py new file mode 100644 index 000000000..b11d45035 --- /dev/null +++ b/tools/const.py @@ -0,0 +1,632 @@ +"""Constants for tools.""" + +# Known legacy attributes: (model, manufacturer, cluster_id, cluster_type, attribute, value) +KNOWN_LEGACY_ATTRIBUTES = [ + (" Contactor", " Legrand", 0xFC01, "server", 0x0000, [3, 0]), + ("3RSNL02043Z", "Third Reality, Inc", 0xFC00, "server", 0x0003, 20), + ("3RSNL02043Z", "Third Reality, Inc", 0xFC00, "server", 0x0004, 120), + ("3RSNL02043Z", "Third Reality, Inc", 0xFC00, "server", 0x0005, 5), + ("lumi.airrtc.agl001", "LUMI", 0xFCC0, "server", 0x0271, 1), + ("lumi.airrtc.agl001", "LUMI", 0xFCC0, "server", 0x0272, 0), + ("lumi.airrtc.agl001", "LUMI", 0xFCC0, "server", 0x0273, 1), + ("lumi.airrtc.agl001", "LUMI", 0xFCC0, "server", 0x0274, 1), + ("lumi.airrtc.agl001", "LUMI", 0xFCC0, "server", 0x0275, 1), + ("lumi.airrtc.agl001", "LUMI", 0xFCC0, "server", 0x0277, 0), + ("lumi.airrtc.agl001", "LUMI", 0xFCC0, "server", 0x0279, 0), + ("lumi.airrtc.agl001", "LUMI", 0xFCC0, "server", 0x027A, 0), + ("lumi.airrtc.agl001", "LUMI", 0xFCC0, "server", 0x027B, 0), + ("lumi.airrtc.agl001", "LUMI", 0xFCC0, "server", 0x027D, 0), + ("lumi.airrtc.agl001", "LUMI", 0xFCC0, "server", 0x027E, 0), + ( + "lumi.curtain.acn002", + "LUMI", + 0xFCC0, + "server", + 0x00F7, + b"\x03(\x17\x05!\x01\x00\t!\x00\x01\n!\x0c\x0e\x0b \x00\x0c \x01\r#\x1e\x0f\x00\x00\x11#\x01\x00\x00\x00d \x00e ,f \x80g (i \x02j!2\x1ck \x00", + ), + ("lumi.curtain.acn003", "LUMI", 0xFCC0, "server", 0x0401, 0), + ("lumi.curtain.acn003", "LUMI", 0xFCC0, "server", 0x0402, 1), + ("lumi.curtain.acn003", "LUMI", 0xFCC0, "server", 0x0407, 0), + ("lumi.curtain.acn003", "LUMI", 0xFCC0, "server", 0x0429, 2), + ("lumi.motion.ac01", "aqara", 0xFCC0, "server", 0x010C, 3), + ("lumi.motion.ac01", "aqara", 0xFCC0, "server", 0x0142, 1), + ("lumi.motion.ac01", "aqara", 0xFCC0, "server", 0x0144, 0), + ("lumi.motion.ac01", "aqara", 0xFCC0, "server", 0x0146, 0), + ("lumi.motion.ac01", "aqara", 0xFCC0, "server", 0x0157, 1), + ("lumi.motion.agl04", "LUMI", 0xFCC0, "server", 0x0102, 30), + ("lumi.motion.agl04", "LUMI", 0xFCC0, "server", 0x010C, 2), + ("lumi.plug.maeu01", "LUMI", 0xFCC0, "server", 0x0009, 1), + ("lumi.plug.maeu01", "LUMI", 0xFCC0, "server", 0x0201, 0), + ("lumi.plug.maeu01", "LUMI", 0xFCC0, "server", 0x0207, 1), + ("lumi.switch.acn047", "Aqara", 0xFCC0, "server", 0x000A, 2), + ("lumi.switch.acn047", "Aqara", 0xFCC0, "server", 0x00EB, 200), + ("lumi.switch.acn047", "Aqara", 0xFCC0, "server", 0x0200, 0), + ("lumi.switch.acn047", "Aqara", 0xFCC0, "server", 0x0289, 3), + ("lumi.switch.acn047", "Aqara", 0xFCC0, "server", 0x02D0, 0), + ("lumi.switch.acn047", "Aqara", 0xFCC0, "server", 0x0517, 2), + ("lumi.switch.b2naus01", "LUMI", 0xFCC0, "server", 0x0009, 1), + ("lumi.switch.n1aeu1", "LUMI", 0xFCC0, "server", 0x00F0, 0), + ("lumi.switch.n1aeu1", "LUMI", 0xFCC0, "server", 0x0200, 0), + ("lumi.switch.n1aeu1", "LUMI", 0xFCC0, "server", 0x0203, 0), + ("RBSH-MMS-ZB-EU", "Bosch", 0xFCA0, "server", 0x0000, 1), + ("RBSH-MMS-ZB-EU", "Bosch", 0xFCA0, "server", 0x0001, 2), + ("RBSH-MMS-ZB-EU", "Bosch", 0xFCA0, "server", 0x0002, 200), + ("RBSH-MMS-ZB-EU", "Bosch", 0xFCA0, "server", 0x0003, 200), + ("RBSH-TRV0-ZB-EU", "BOSCH", 0x0201, "server", 0x4007, 1), + ("RBSH-TRV0-ZB-EU", "BOSCH", 0x0204, "server", 0x400B, 0), + ("RBSH-TRV0-ZB-EU", "BOSCH", 0x0201, "server", 0x4020, 0), + ("RBSH-TRV0-ZB-EU", "BOSCH", 0x0204, "server", 0x4039, 0), + ("RBSH-TRV0-ZB-EU", "BOSCH", 0x0204, "server", 0x403A, 10), + ("RBSH-TRV0-ZB-EU", "BOSCH", 0x0204, "server", 0x403B, 7), + ("RBSH-TRV0-ZB-EU", "BOSCH", 0x0201, "server", 0x4040, 0), + ("RBSH-TRV0-ZB-EU", "BOSCH", 0x0201, "server", 0x4042, 0), + ("RBSH-TRV0-ZB-EU", "BOSCH", 0x0201, "server", 0x4043, 0), + ("TRVZB", "SONOFF", 0xFC11, "server", 0x6002, 1000), + ("TRVZB", "SONOFF", 0xFC11, "server", 0x6007, 1414), + ("TS0001", "_TZ3000_e2uieqop", 0x0006, "server", 0x8001, 0), + ("TS0001", "_TZ3000_e2uieqop", 0x0006, "server", 0x8002, 0), + ("TS0001", "_TZ3000_e2uieqop", 0xE001, "server", 0xD030, 1), + ("TS0001", "_TZ3000_gjrubzje", 0x0006, "server", 0x8001, 0), + ("TS0001", "_TZ3000_gjrubzje", 0x0006, "server", 0x8001, 1), + ("TS0001", "_TZ3000_gjrubzje", 0x0006, "server", 0x8002, 2), + ("TS0001", "_TZ3000_gjrubzje", 0xE001, "server", 0xD030, 0), + ("TS0001", "_TZ3000_mkhkxx1p", 0x0006, "server", 0x8001, 0), + ("TS0001", "_TZ3000_mkhkxx1p", 0x0006, "server", 0x8002, 2), + ("TS0001", "_TZ3000_mkhkxx1p", 0xE001, "server", 0xD030, 0), + ("TS0001", "_TZ3000_npzfdcof", 0x0006, "server", 0x8001, 0), + ("TS0001", "_TZ3000_npzfdcof", 0x0006, "server", 0x8002, 0), + ("TS0001", "_TZ3000_npzfdcof", 0xE001, "server", 0xD030, 0), + ("TS0001", "_TZ3000_zw7yf6yk", 0x0006, "server", 0x8001, 1), + ("TS0001", "_TZ3000_zw7yf6yk", 0x0006, "server", 0x8002, 2), + ("TS0001", "_TZ3210_dse8ogfy", 0xEF00, "server", 0x0065, 0), + ("TS0001", "_TZ3210_dse8ogfy", 0xEF00, "server", 0x0066, 85), + ("TS0001", "_TZ3210_dse8ogfy", 0xEF00, "server", 0x0067, 0), + ("TS0001", "_TZ3210_dse8ogfy", 0xEF00, "server", 0x0068, 1), + ("TS0001", "_TZ3210_dse8ogfy", 0xEF00, "server", 0x006A, 0), + ("TS0001", "_TZ3210_j4pdtz9v", 0xEF00, "server", 0xEF65, 0), + ("TS0001", "_TZ3210_j4pdtz9v", 0xEF00, "server", 0xEF65, 1), + ("TS0004", "_TZ3000_xxacnuab", 0x0006, "server", 0x5000, 1), + ("TS0004", "_TZ3000_xxacnuab", 0xE001, "server", 0xD010, 0), + ("TS0011", "_TZ3000_hafsqare", 0x0006, "server", 0x8001, 1), + ("TS0011", "_TZ3000_hafsqare", 0x0006, "server", 0x8002, 0), + ("TS0013", "_TZ3000_09gto2zn", 0x0006, "server", 0x8001, 1), + ("TS0013", "_TZ3000_09gto2zn", 0x0006, "server", 0x8002, 0), + ("TS0049", "_TZ3210_0jxeoadc", 0xEF00, "server", 0xEF6F, 1), + ("TS0049", "_TZ3210_0jxeoadc", 0xEF00, "server", 0xEF6F, 5), + ("TS0049", "_TZ3210_ru41azca", 0xEF00, "server", 0xEF01, 5), + ("TS0049", "_TZ3210_ru41azca", 0xEF00, "server", 0xEF02, b"\x00\x00"), + ("TS004F", "_TZ3000_xabckq1v", 0x0006, "client", 0x8004, 0), + ("TS011F", "_TYZB01_mtunwanm", 0x0006, "server", 0x8000, 1), + ("TS011F", "_TYZB01_mtunwanm", 0x0006, "server", 0x8002, 2), + ("TS011F", "_TZ3000_2putqrmw", 0x0006, "server", 0x8000, 0), + ("TS011F", "_TZ3000_2putqrmw", 0x0006, "server", 0x8001, 1), + ("TS011F", "_TZ3000_2putqrmw", 0x0006, "server", 0x8002, 1), + ("TS011F", "_TZ3000_2putqrmw", 0x0006, "server", 0x8002, 2), + ("TS011F", "_TZ3000_2putqrmw", 0xE001, "server", 0xD030, 0), + ("TS011F", "_TZ3000_3ias4w4o", 0x0006, "server", 0x8000, 0), + ("TS011F", "_TZ3000_3ias4w4o", 0x0006, "server", 0x8001, 1), + ("TS011F", "_TZ3000_3ias4w4o", 0x0006, "server", 0x8002, 2), + ("TS011F", "_TZ3000_3ias4w4o", 0xE001, "server", 0xD030, 0), + ("TS011F", "_TZ3000_cehuw1lw", 0x0006, "server", 0x8000, 0), + ("TS011F", "_TZ3000_cehuw1lw", 0x0006, "server", 0x8000, 1), + ("TS011F", "_TZ3000_cehuw1lw", 0x0006, "server", 0x8001, 0), + ("TS011F", "_TZ3000_cehuw1lw", 0x0006, "server", 0x8001, 1), + ("TS011F", "_TZ3000_cehuw1lw", 0x0006, "server", 0x8002, 0), + ("TS011F", "_TZ3000_cehuw1lw", 0x0006, "server", 0x8002, 1), + ("TS011F", "_TZ3000_cehuw1lw", 0xE001, "server", 0xD030, 0), + ("TS011F", "_TZ3000_cicwjqth", 0x0006, "server", 0x8000, 0), + ("TS011F", "_TZ3000_cicwjqth", 0x0006, "server", 0x8002, 2), + ("TS011F", "_TZ3000_lotmgthb", 0x0006, "server", 0x8000, 1), + ("TS011F", "_TZ3000_lotmgthb", 0x0006, "server", 0x8001, 0), + ("TS011F", "_TZ3000_lotmgthb", 0x0006, "server", 0x8002, 2), + ("TS011F", "_TZ3000_lotmgthb", 0xE001, "server", 0xD030, 0), + ("TS011F", "_TZ3000_ynmowqk2", 0x0006, "server", 0x8000, 0), + ("TS011F", "_TZ3000_ynmowqk2", 0x0006, "server", 0x8001, 1), + ("TS011F", "_TZ3000_ynmowqk2", 0x0006, "server", 0x8002, 2), + ("TS011F", "_TZ3000_ynmowqk2", 0xE001, "server", 0xD030, 0), + ("TS0202", "_TZ3000_o4mkahkc", 0x0500, "server", 0xF001, 1), + ("TS0207", "_TZ3210_tgvtvdoc", 0xEF00, "server", 0xEF66, 4588), + ("TS0207", "_TZ3210_tgvtvdoc", 0xEF00, "server", 0xEF66, 91), + ("TS0207", "_TZ3210_tgvtvdoc", 0xEF00, "server", 0xEF67, 4901), + ("TS0207", "_TZ3210_tgvtvdoc", 0xEF00, "server", 0xEF67, 5262), + ("TS0207", "_TZ3210_tgvtvdoc", 0xEF00, "server", 0xEF68, 0), + ("TS0207", "_TZ3210_tgvtvdoc", 0xEF00, "server", 0xEF69, 0), + ("TS0207", "_TZ3210_tgvtvdoc", 0xEF00, "server", 0xEF69, 3104), + ("TS0601", "_TZE200_3towulqd", 0xEF00, "server", 0xEF09, 1), + ("TS0601", "_TZE200_3towulqd", 0xEF00, "server", 0xEF0A, 0), + ("TS0601", "_TZE200_68nvbio9", 0x0102, "server", 0x8001, 0), + ("TS0601", "_TZE200_7ytb3h8u", 0xEF00, "server", 0xEF00, "1.0.0"), + ("TS0601", "_TZE200_7ytb3h8u", 0xEF00, "server", 0xEF01, 0), + ("TS0601", "_TZE200_7ytb3h8u", 0xEF00, "server", 0xEF65, "05:36:38"), + ("TS0601", "_TZE200_7ytb3h8u", 0xEF00, "server", 0xEF66, "05:36:38"), + ("TS0601", "_TZE200_7ytb3h8u", 0xEF00, "server", 0xEF67, 0), + ("TS0601", "_TZE200_7ytb3h8u", 0xEF00, "server", 0xEF68, 0), + ("TS0601", "_TZE200_7ytb3h8u", 0xEF00, "server", 0xEF69, 0), + ("TS0601", "_TZE200_7ytb3h8u", 0xEF00, "server", 0xEF72, "00:00:00,0"), + ("TS0601", "_TZE200_81isopgh", 0xEF00, "server", 0xEF00, "1.0.0"), + ("TS0601", "_TZE200_81isopgh", 0xEF00, "server", 0xEF01, 600), + ("TS0601", "_TZE200_81isopgh", 0xEF00, "server", 0xEF02, 2), + ("TS0601", "_TZE200_81isopgh", 0xEF00, "server", 0xEF03, 0), + ("TS0601", "_TZE200_81isopgh", 0xEF00, "server", 0xEF04, 0), + ("TS0601", "_TZE200_a0syesf5", 0xEF00, "server", 0xEF00, "1.0.0"), + ("TS0601", "_TZE200_a0syesf5", 0x0008, "server", 0xEF01, 2), + ("TS0601", "_TZE200_a7sghmms", 0xEF00, "server", 0xEF00, "1.0.0"), + ("TS0601", "_TZE200_a7sghmms", 0xEF00, "server", 0xEF01, 0), + ("TS0601", "_TZE200_a7sghmms", 0xEF00, "server", 0xEF65, "03:59:06"), + ("TS0601", "_TZE200_a7sghmms", 0xEF00, "server", 0xEF66, "04:00:56"), + ("TS0601", "_TZE200_a7sghmms", 0xEF00, "server", 0xEF67, 0), + ("TS0601", "_TZE200_a7sghmms", 0xEF00, "server", 0xEF68, 0), + ("TS0601", "_TZE200_a7sghmms", 0xEF00, "server", 0xEF69, 0), + ("TS0601", "_TZE200_a7sghmms", 0xEF00, "server", 0xEF72, "00:01:50,0"), + ("TS0601", "_TZE200_akjefhj5", 0xEF00, "server", 0xEF00, "1.0.0"), + ("TS0601", "_TZE200_aoclfnxz", 0xEF00, "server", 0x0101, 1), + ("TS0601", "_TZE200_aoclfnxz", 0xEF00, "server", 0x0128, 0), + ("TS0601", "_TZE200_aoclfnxz", 0xEF00, "server", 0x0128, 1), + ("TS0601", "_TZE200_aoclfnxz", 0xEF00, "server", 0x0210, 16), + ("TS0601", "_TZE200_aoclfnxz", 0xEF00, "server", 0x0210, 18), + ("TS0601", "_TZE200_aoclfnxz", 0xEF00, "server", 0x0210, 20), + ("TS0601", "_TZE200_aoclfnxz", 0xEF00, "server", 0x0218, 195), + ("TS0601", "_TZE200_aoclfnxz", 0xEF00, "server", 0x0218, 210), + ("TS0601", "_TZE200_aoclfnxz", 0xEF00, "server", 0x0218, 215), + ("TS0601", "_TZE200_aoclfnxz", 0xEF00, "server", 0x0402, 0), + ("TS0601", "_TZE200_aoclfnxz", 0xEF00, "server", 0x0402, 1), + ("TS0601", "_TZE200_aoclfnxz", 0xEF00, "server", 0x0403, 1), + ("TS0601", "_TZE200_aoclfnxz", 0xEF00, "server", 0x0424, 1), + ( + "TS0601", + "_TZE200_b6wax7g0", + 0xEF00, + "server", + 0x0065, + [ + 40, + 30, + 18, + 42, + 30, + 14, + 40, + 30, + 12, + 38, + 0, + 6, + 42, + 30, + 17, + 44, + 30, + 14, + 46, + 0, + 12, + 48, + 0, + 6, + 46, + 30, + 16, + 44, + 30, + 13, + 42, + 30, + 11, + 40, + 0, + 6, + ], + ), + ("TS0601", "_TZE200_b6wax7g0", 0xEF00, "server", 0x0104, 0), + ("TS0601", "_TZE200_b6wax7g0", 0xEF00, "server", 0x0108, 0), + ("TS0601", "_TZE200_b6wax7g0", 0xEF00, "server", 0x010D, 0), + ("TS0601", "_TZE200_b6wax7g0", 0xEF00, "server", 0x016A, 0), + ("TS0601", "_TZE200_b6wax7g0", 0xEF00, "server", 0x0202, 5), + ("TS0601", "_TZE200_b6wax7g0", 0xEF00, "server", 0x0203, 215), + ("TS0601", "_TZE200_b6wax7g0", 0xEF00, "server", 0x0205, 0), + ("TS0601", "_TZE200_b6wax7g0", 0xEF00, "server", 0x020E, 91), + ("TS0601", "_TZE200_b6wax7g0", 0xEF00, "server", 0x0267, 300), + ("TS0601", "_TZE200_b6wax7g0", 0xEF00, "server", 0x0268, 100), + ("TS0601", "_TZE200_b6wax7g0", 0xEF00, "server", 0x0269, 0), + ("TS0601", "_TZE200_b6wax7g0", 0xEF00, "server", 0x026B, 12), + ("TS0601", "_TZE200_b6wax7g0", 0xEF00, "server", 0x026C, 30), + ("TS0601", "_TZE200_b6wax7g0", 0xEF00, "server", 0x026D, 5), + ("TS0601", "_TZE200_b6wax7g0", 0xEF00, "server", 0x0401, 2), + ("TS0601", "_TZE200_b6wax7g0", 0xEF00, "server", 0x0407, 0), + ("TS0601", "_TZE200_b6wax7g0", 0xEF00, "server", 0x0409, 1), + ("TS0601", "_TZE200_b6wax7g0", 0x0201, "server", 0x4002, 7), + ("TS0601", "_TZE200_b6wax7g0", 0x0201, "server", 0x4110, 6), + ("TS0601", "_TZE200_b6wax7g0", 0x0201, "server", 0x4111, 0), + ("TS0601", "_TZE200_b6wax7g0", 0x0201, "server", 0x4112, 20.0), + ("TS0601", "_TZE200_b6wax7g0", 0x0201, "server", 0x4113, 11), + ("TS0601", "_TZE200_b6wax7g0", 0x0201, "server", 0x4114, 30), + ("TS0601", "_TZE200_b6wax7g0", 0x0201, "server", 0x4115, 21.0), + ("TS0601", "_TZE200_b6wax7g0", 0x0201, "server", 0x4116, 13), + ("TS0601", "_TZE200_b6wax7g0", 0x0201, "server", 0x4117, 30), + ("TS0601", "_TZE200_b6wax7g0", 0x0201, "server", 0x4118, 22.0), + ("TS0601", "_TZE200_b6wax7g0", 0x0201, "server", 0x4119, 16), + ("TS0601", "_TZE200_b6wax7g0", 0x0201, "server", 0x4120, 30), + ("TS0601", "_TZE200_b6wax7g0", 0x0201, "server", 0x4121, 23.0), + ("TS0601", "_TZE200_b6wax7g0", 0x0201, "server", 0x4122, 6), + ("TS0601", "_TZE200_b6wax7g0", 0x0201, "server", 0x4123, 0), + ("TS0601", "_TZE200_b6wax7g0", 0x0201, "server", 0x4124, 24.0), + ("TS0601", "_TZE200_b6wax7g0", 0x0201, "server", 0x4125, 12), + ("TS0601", "_TZE200_b6wax7g0", 0x0201, "server", 0x4126, 0), + ("TS0601", "_TZE200_b6wax7g0", 0x0201, "server", 0x4127, 23.0), + ("TS0601", "_TZE200_b6wax7g0", 0x0201, "server", 0x4128, 14), + ("TS0601", "_TZE200_b6wax7g0", 0x0201, "server", 0x4129, 30), + ("TS0601", "_TZE200_b6wax7g0", 0x0201, "server", 0x4130, 22.0), + ("TS0601", "_TZE200_b6wax7g0", 0x0201, "server", 0x4131, 17), + ("TS0601", "_TZE200_b6wax7g0", 0x0201, "server", 0x4132, 30), + ("TS0601", "_TZE200_b6wax7g0", 0x0201, "server", 0x4133, 21.0), + ("TS0601", "_TZE200_b6wax7g0", 0x0201, "server", 0x4134, 6), + ("TS0601", "_TZE200_b6wax7g0", 0x0201, "server", 0x4135, 0), + ("TS0601", "_TZE200_b6wax7g0", 0x0201, "server", 0x4136, 19.0), + ("TS0601", "_TZE200_b6wax7g0", 0x0201, "server", 0x4137, 12), + ("TS0601", "_TZE200_b6wax7g0", 0x0201, "server", 0x4138, 30), + ("TS0601", "_TZE200_b6wax7g0", 0x0201, "server", 0x4139, 20.0), + ("TS0601", "_TZE200_b6wax7g0", 0x0201, "server", 0x4140, 14), + ("TS0601", "_TZE200_b6wax7g0", 0x0201, "server", 0x4141, 30), + ("TS0601", "_TZE200_b6wax7g0", 0x0201, "server", 0x4142, 21.0), + ("TS0601", "_TZE200_b6wax7g0", 0x0201, "server", 0x4143, 18), + ("TS0601", "_TZE200_b6wax7g0", 0x0201, "server", 0x4144, 30), + ("TS0601", "_TZE200_b6wax7g0", 0x0201, "server", 0x4145, 20.0), + ("TS0601", "_TZE200_byzdayie", 0xEF00, "server", 0x0101, 1), + ("TS0601", "_TZE200_byzdayie", 0xEF00, "server", 0x0211, 899484), + ("TS0601", "_TZE200_byzdayie", 0xEF00, "server", 0x0212, 1499), + ("TS0601", "_TZE200_byzdayie", 0xEF00, "server", 0x0213, 1848), + ("TS0601", "_TZE200_byzdayie", 0xEF00, "server", 0x0214, 2297), + ("TS0601", "_TZE200_c88teujp", 0xEF00, "server", 0xEF00, "1.0.0"), + ("TS0601", "_TZE200_c88teujp", 0xEF00, "server", 0xEF08, 0), + ("TS0601", "_TZE200_c88teujp", 0xEF00, "server", 0xEF08, 1), + ("TS0601", "_TZE200_c88teujp", 0xEF00, "server", 0xEF0A, 1), + ("TS0601", "_TZE200_c88teujp", 0xEF00, "server", 0xEF1B, 0), + ("TS0601", "_TZE200_c88teujp", 0xEF00, "server", 0xEF28, 0), + ("TS0601", "_TZE200_c88teujp", 0xEF00, "server", 0xEF28, 1), + ("TS0601", "_TZE200_c88teujp", 0xEF00, "server", 0xEF69, 0), + ("TS0601", "_TZE200_c88teujp", 0xEF00, "server", 0xEF6A, 0), + ("TS0601", "_TZE200_c88teujp", 0xEF00, "server", 0xEF6C, 0), + ("TS0601", "_TZE200_c88teujp", 0xEF00, "server", 0xEF6C, 1), + ("TS0601", "_TZE200_c88teujp", 0xEF00, "server", 0xEF82, 0), + ("TS0601", "_TZE200_c88teujp", 0xEF00, "server", 0xEF82, 1), + ("TS0601", "_TZE200_cirvgep4", 0xEF00, "server", 0xEF00, "1.0.0"), + ("TS0601", "_TZE200_cpmgn2cf", 0xEF00, "server", 0x0068, [10, 5, 0]), + ( + "TS0601", + "_TZE200_cpmgn2cf", + 0xEF00, + "server", + 0x0070, + [15, 0, 22, 20, 30, 17, 15, 30, 12, 15, 30, 11, 15, 0, 8, 20, 0, 5], + ), + ( + "TS0601", + "_TZE200_cpmgn2cf", + 0xEF00, + "server", + 0x0071, + [15, 0, 22, 20, 30, 17, 15, 30, 12, 15, 30, 11, 15, 0, 8, 20, 0, 6], + ), + ("TS0601", "_TZE200_cpmgn2cf", 0xEF00, "server", 0x0107, 0), + ("TS0601", "_TZE200_cpmgn2cf", 0xEF00, "server", 0x016E, 0), + ("TS0601", "_TZE200_cpmgn2cf", 0xEF00, "server", 0x0174, 0), + ("TS0601", "_TZE200_cpmgn2cf", 0xEF00, "server", 0x0202, 50), + ("TS0601", "_TZE200_cpmgn2cf", 0xEF00, "server", 0x0203, 285), + ("TS0601", "_TZE200_cpmgn2cf", 0xEF00, "server", 0x022C, 35), + ("TS0601", "_TZE200_cpmgn2cf", 0xEF00, "server", 0x0266, 5), + ("TS0601", "_TZE200_cpmgn2cf", 0xEF00, "server", 0x0267, 35), + ("TS0601", "_TZE200_cpmgn2cf", 0xEF00, "server", 0x0269, 300), + ("TS0601", "_TZE200_cpmgn2cf", 0xEF00, "server", 0x026B, 20), + ("TS0601", "_TZE200_cpmgn2cf", 0xEF00, "server", 0x026C, 15), + ("TS0601", "_TZE200_cpmgn2cf", 0xEF00, "server", 0x026D, 0), + ("TS0601", "_TZE200_cpmgn2cf", 0xEF00, "server", 0x0272, 15), + ("TS0601", "_TZE200_cpmgn2cf", 0xEF00, "server", 0x0275, 1), + ("TS0601", "_TZE200_cpmgn2cf", 0xEF00, "server", 0x0404, 2), + ("TS0601", "_TZE200_cpmgn2cf", 0xEF00, "server", 0x046A, 0), + ("TS0601", "_TZE200_cpmgn2cf", 0xEF00, "server", 0x046F, 0), + ("TS0601", "_TZE200_cpmgn2cf", 0x0201, "server", 0x4000, 2000), + ("TS0601", "_TZE200_cpmgn2cf", 0x0201, "server", 0x4001, 1500), + ("TS0601", "_TZE200_cpmgn2cf", 0x0201, "server", 0x4002, 2), + ("TS0601", "_TZE200_cpmgn2cf", 0x0201, "server", 0x4003, 0), + ("TS0601", "_TZE200_cpmgn2cf", 0x0201, "server", 0x4004, 0), + ("TS0601", "_TZE200_cpmgn2cf", 0x0201, "server", 0x4005, 300), + ("TS0601", "_TZE200_cpmgn2cf", 0x0201, "server", 0x4006, 0), + ("TS0601", "_TZE200_cpmgn2cf", 0x0201, "server", 0x4007, 1), + ("TS0601", "_TZE200_cpmgn2cf", 0x0201, "server", 0x4110, 5), + ("TS0601", "_TZE200_cpmgn2cf", 0x0201, "server", 0x4111, 0), + ("TS0601", "_TZE200_cpmgn2cf", 0x0201, "server", 0x4112, 2000), + ("TS0601", "_TZE200_cpmgn2cf", 0x0201, "server", 0x4120, 8), + ("TS0601", "_TZE200_cpmgn2cf", 0x0201, "server", 0x4121, 0), + ("TS0601", "_TZE200_cpmgn2cf", 0x0201, "server", 0x4122, 1500), + ("TS0601", "_TZE200_cpmgn2cf", 0x0201, "server", 0x4130, 11), + ("TS0601", "_TZE200_cpmgn2cf", 0x0201, "server", 0x4131, 30), + ("TS0601", "_TZE200_cpmgn2cf", 0x0201, "server", 0x4132, 1500), + ("TS0601", "_TZE200_cpmgn2cf", 0x0201, "server", 0x4140, 12), + ("TS0601", "_TZE200_cpmgn2cf", 0x0201, "server", 0x4141, 30), + ("TS0601", "_TZE200_cpmgn2cf", 0x0201, "server", 0x4142, 1500), + ("TS0601", "_TZE200_cpmgn2cf", 0x0201, "server", 0x4150, 17), + ("TS0601", "_TZE200_cpmgn2cf", 0x0201, "server", 0x4151, 30), + ("TS0601", "_TZE200_cpmgn2cf", 0x0201, "server", 0x4152, 2000), + ("TS0601", "_TZE200_cpmgn2cf", 0x0201, "server", 0x4160, 22), + ("TS0601", "_TZE200_cpmgn2cf", 0x0201, "server", 0x4161, 0), + ("TS0601", "_TZE200_cpmgn2cf", 0x0201, "server", 0x4162, 1500), + ("TS0601", "_TZE200_cpmgn2cf", 0x0201, "server", 0x4210, 6), + ("TS0601", "_TZE200_cpmgn2cf", 0x0201, "server", 0x4211, 0), + ("TS0601", "_TZE200_cpmgn2cf", 0x0201, "server", 0x4212, 2000), + ("TS0601", "_TZE200_cpmgn2cf", 0x0201, "server", 0x4220, 8), + ("TS0601", "_TZE200_cpmgn2cf", 0x0201, "server", 0x4221, 0), + ("TS0601", "_TZE200_cpmgn2cf", 0x0201, "server", 0x4222, 1500), + ("TS0601", "_TZE200_cpmgn2cf", 0x0201, "server", 0x4230, 11), + ("TS0601", "_TZE200_cpmgn2cf", 0x0201, "server", 0x4231, 30), + ("TS0601", "_TZE200_cpmgn2cf", 0x0201, "server", 0x4232, 1500), + ("TS0601", "_TZE200_cpmgn2cf", 0x0201, "server", 0x4240, 12), + ("TS0601", "_TZE200_cpmgn2cf", 0x0201, "server", 0x4241, 30), + ("TS0601", "_TZE200_cpmgn2cf", 0x0201, "server", 0x4242, 1500), + ("TS0601", "_TZE200_cpmgn2cf", 0x0201, "server", 0x4250, 17), + ("TS0601", "_TZE200_cpmgn2cf", 0x0201, "server", 0x4251, 30), + ("TS0601", "_TZE200_cpmgn2cf", 0x0201, "server", 0x4252, 2000), + ("TS0601", "_TZE200_cpmgn2cf", 0x0201, "server", 0x4260, 22), + ("TS0601", "_TZE200_cpmgn2cf", 0x0201, "server", 0x4261, 0), + ("TS0601", "_TZE200_cpmgn2cf", 0x0201, "server", 0x4262, 1500), + ("TS0601", "_TZE200_cpmgn2cf", 0x0204, "server", 0x5000, 0), + ("TS0601", "_TZE200_cpmgn2cf", 0x0006, "server", 0x6000, 500), + ("TS0601", "_TZE200_cpmgn2cf", 0x0006, "server", 0x6001, 10), + ("TS0601", "_TZE200_dwcarsat", 0x042E, "server", 0x0000, 0.0006799999999999999), + ("TS0601", "_TZE200_dwcarsat", 0x0402, "server", 0xEF12, b"\x00\x00\x00\xea"), + ("TS0601", "_TZE200_ewxhg6o9", 0xEF00, "server", 0x0101, 1), + ("TS0601", "_TZE200_ewxhg6o9", 0xEF00, "server", 0x0211, 43385), + ("TS0601", "_TZE200_ewxhg6o9", 0xEF00, "server", 0x0212, 466), + ("TS0601", "_TZE200_ewxhg6o9", 0xEF00, "server", 0x0213, 528), + ("TS0601", "_TZE200_ewxhg6o9", 0xEF00, "server", 0x0214, 2381), + ("TS0601", "_TZE200_g9a3awaj", 0xEF00, "server", 0x0101, 1), + ("TS0601", "_TZE200_g9a3awaj", 0xEF00, "server", 0x0128, 0), + ("TS0601", "_TZE200_g9a3awaj", 0xEF00, "server", 0x0210, 270), + ("TS0601", "_TZE200_g9a3awaj", 0xEF00, "server", 0x0218, 264), + ("TS0601", "_TZE200_g9a3awaj", 0xEF00, "server", 0x0402, 0), + ("TS0601", "_TZE200_g9a3awaj", 0xEF00, "server", 0x0424, 0), + ("TS0601", "_TZE200_gubdgai2", 0x0102, "server", 0x8001, 0), + ("TS0601", "_TZE200_h4cgnbzg", 0xEF00, "server", 0xEF00, "1.0.0"), + ("TS0601", "_TZE200_h4cgnbzg", 0xEF00, "server", 0xEF08, 1), + ("TS0601", "_TZE200_h4cgnbzg", 0xEF00, "server", 0xEF0A, 1), + ("TS0601", "_TZE200_h4cgnbzg", 0xEF00, "server", 0xEF1B, -4), + ("TS0601", "_TZE200_h4cgnbzg", 0xEF00, "server", 0xEF28, 1), + ("TS0601", "_TZE200_h4cgnbzg", 0xEF00, "server", 0xEF69, 0), + ("TS0601", "_TZE200_h4cgnbzg", 0xEF00, "server", 0xEF6A, 0), + ("TS0601", "_TZE200_h4cgnbzg", 0xEF00, "server", 0xEF6C, 0), + ("TS0601", "_TZE200_h4cgnbzg", 0xEF00, "server", 0xEF82, 1), + ("TS0601", "_TZE200_hhrtiq0x", 0xEF00, "server", 0x0107, 0), + ("TS0601", "_TZE200_hhrtiq0x", 0xEF00, "server", 0x0112, 0), + ("TS0601", "_TZE200_hhrtiq0x", 0xEF00, "server", 0x0114, 1), + ("TS0601", "_TZE200_hhrtiq0x", 0xEF00, "server", 0x0202, 70), + ("TS0601", "_TZE200_hhrtiq0x", 0xEF00, "server", 0x0203, 237), + ("TS0601", "_TZE200_hhrtiq0x", 0xEF00, "server", 0x0215, 5), + ("TS0601", "_TZE200_hhrtiq0x", 0xEF00, "server", 0x0404, 2), + ("TS0601", "_TZE200_jva8ink8", 0xEF00, "server", 0xEF00, "2.0.9"), + ("TS0601", "_TZE200_jva8ink8", 0xEF00, "server", 0xEF02, 7), + ("TS0601", "_TZE200_jva8ink8", 0xEF00, "server", 0xEF03, 60), + ("TS0601", "_TZE200_jva8ink8", 0xEF00, "server", 0xEF04, 600), + ("TS0601", "_TZE200_jva8ink8", 0xEF00, "server", 0xEF06, 1), + ("TS0601", "_TZE200_jva8ink8", 0xEF00, "server", 0xEF65, 1), + ("TS0601", "_TZE200_jva8ink8", 0xEF00, "server", 0xEF66, 10), + ("TS0601", "_TZE200_jva8ink8", 0xEF00, "server", 0xEF67, " "), + ("TS0601", "_TZE200_la2c2uo9", 0xEF00, "server", 0xEF00, "2.0.2"), + ("TS0601", "_TZE200_la2c2uo9", 0x0008, "server", 0xEF01, 0), + ("TS0601", "_TZE200_la2c2uo9", 0x0008, "server", 0xEF02, 0), + ("TS0601", "_TZE200_laqjm8qd", 0xEF00, "server", 0xEF00, "1.0.15"), + ("TS0601", "_TZE200_laqjm8qd", 0xEF00, "server", 0xEF01, 0), + ("TS0601", "_TZE200_laqjm8qd", 0xEF00, "server", 0xEF02, 0), + ("TS0601", "_TZE200_laqjm8qd", 0xEF00, "server", 0xEF03, 0), + ("TS0601", "_TZE200_laqjm8qd", 0xEF00, "server", 0xEF04, 0), + ("TS0601", "_TZE200_laqjm8qd", 0xEF00, "server", 0xEF05, 0), + ("TS0601", "_TZE200_locansqn", 0xEF00, "server", 0xEF00, "1.0.0"), + ("TS0601", "_TZE200_locansqn", 0xEF00, "server", 0xEF09, 0), + ("TS0601", "_TZE200_locansqn", 0xEF00, "server", 0xEF0A, 390), + ("TS0601", "_TZE200_locansqn", 0xEF00, "server", 0xEF0B, 0), + ("TS0601", "_TZE200_locansqn", 0xEF00, "server", 0xEF0C, 60), + ("TS0601", "_TZE200_locansqn", 0xEF00, "server", 0xEF0D, 20), + ("TS0601", "_TZE200_locansqn", 0xEF00, "server", 0xEF0E, 2), + ("TS0601", "_TZE200_locansqn", 0xEF00, "server", 0xEF0F, 2), + ("TS0601", "_TZE200_locansqn", 0xEF00, "server", 0xEF11, 120), + ("TS0601", "_TZE200_locansqn", 0xEF00, "server", 0xEF12, 120), + ("TS0601", "_TZE200_locansqn", 0xEF00, "server", 0xEF13, 2), + ("TS0601", "_TZE200_locansqn", 0xEF00, "server", 0xEF14, 2), + ("TS0601", "_TZE200_m9skfctm", 0xEF00, "server", 0x0401, 1), + ("TS0601", "_TZE200_mz5y07w2", 0xEF00, "server", 0x0165, 0), + ("TS0601", "_TZE200_mz5y07w2", 0xEF00, "server", 0x016C, 0), + ("TS0601", "_TZE200_mz5y07w2", 0xEF00, "server", 0x021B, 0), + ("TS0601", "_TZE200_mz5y07w2", 0xEF00, "server", 0x0266, 288), + ("TS0601", "_TZE200_mz5y07w2", 0xEF00, "server", 0x0267, 50), + ("TS0601", "_TZE200_mz5y07w2", 0xEF00, "server", 0x0569, 0), + ("TS0601", "_TZE200_nklqjk62", 0xEF00, "server", 0xEF00, "1.0.0"), + ("TS0601", "_TZE200_nklqjk62", 0xEF00, "server", 0xEF02, 0), + ("TS0601", "_TZE200_nklqjk62", 0xEF00, "server", 0xEF03, 0), + ("TS0601", "_TZE200_nklqjk62", 0xEF00, "server", 0xEF04, 10), + ("TS0601", "_TZE200_nklqjk62", 0xEF00, "server", 0xEF05, 3600), + ("TS0601", "_TZE200_nklqjk62", 0xEF00, "server", 0xEF0B, 0), + ("TS0601", "_TZE200_nklqjk62", 0xEF00, "server", 0xEF0C, 2), + ("TS0601", "_TZE200_ntcy3xu1", 0xEF00, "server", 0xEF00, "1.0.0"), + ( + "TS0601", + "_TZE200_ny94onlb", + 0xEF00, + "server", + 0x0006, + [42, 1, 0, 100, 5, 0, 190, 8], + ), + ( + "TS0601", + "_TZE200_ny94onlb", + 0xEF00, + "server", + 0x0007, + [10, 1, 0, 40, 6, 0, 111, 8], + ), + ( + "TS0601", + "_TZE200_ny94onlb", + 0xEF00, + "server", + 0x0008, + [70, 0, 0, 157, 1, 0, 224, 8], + ), + ("TS0601", "_TZE200_ny94onlb", 0xEF00, "server", 0x0201, 26), + ("TS0601", "_TZE200_pay2byax", 0xEF00, "server", 0xEF01, 0), + ("TS0601", "_TZE200_pay2byax", 0xEF00, "server", 0xEF65, 481), + ("TS0601", "_TZE200_qyflbnbj", 0xEF00, "server", 0xEF00, "1.0.0"), + ("TS0601", "_TZE200_r32ctezx", 0xEF00, "server", 0xEF00, "1.0.0"), + ("TS0601", "_TZE200_r32ctezx", 0x0008, "server", 0xEF01, 0), + ("TS0601", "_TZE200_rccxox8p", 0xEF00, "server", 0x0401, 1), + ( + "TS0601", + "_TZE200_v9hkz2yn", + 0xEF00, + "server", + 0x0006, + [35, 0, 0, 112, 1, 0, 127, 9], + ), + ("TS0601", "_TZE200_v9hkz2yn", 0xEF00, "server", 0x0201, 2164), + ("TS0601", "_TZE200_v9hkz2yn", 0xEF00, "server", 0x0202, 0), + ("TS0601", "_TZE200_vvmbj46n", 0xEF00, "server", 0xEF00, "1.0.0"), + ("TS0601", "_TZE200_wfxuhoea", 0xEF00, "server", 0xEF00, "1.0.0"), + ("TS0601", "_TZE200_wfxuhoea", 0xEF00, "server", 0xEF02, 0), + ("TS0601", "_TZE200_wfxuhoea", 0xEF00, "server", 0xEF03, 1), + ("TS0601", "_TZE200_wfxuhoea", 0xEF00, "server", 0xEF04, 10), + ("TS0601", "_TZE200_wfxuhoea", 0xEF00, "server", 0xEF05, 0), + ("TS0601", "_TZE200_wfxuhoea", 0xEF00, "server", 0xEF0B, 0), + ("TS0601", "_TZE200_wfxuhoea", 0xEF00, "server", 0xEF0C, 2), + ("TS0601", "_TZE200_ya4ft0w4", 0xEF00, "server", 0xEF02, 7), + ("TS0601", "_TZE200_ya4ft0w4", 0xEF00, "server", 0xEF03, 75), + ("TS0601", "_TZE200_ya4ft0w4", 0xEF00, "server", 0xEF04, 900), + ("TS0601", "_TZE200_ya4ft0w4", 0xEF00, "server", 0xEF09, 0), + ("TS0601", "_TZE200_ya4ft0w4", 0xEF00, "server", 0xEF65, 1), + ("TS0601", "_TZE200_ya4ft0w4", 0xEF00, "server", 0xEF66, 0), + ("TS0601", "_TZE200_ya4ft0w4", 0xEF00, "server", 0xEF69, 2), + ("TS0601", "_TZE200_yjjdcqsq", 0xEF00, "server", 0xEF00, "1.0.0"), + ("TS0601", "_TZE200_yw7cahqs", 0xEF00, "server", 0xEF00, "1.0.0"), + ("TS0601", "_TZE200_yw7cahqs", 0xEF00, "server", 0xEF08, 0), + ("TS0601", "_TZE200_yw7cahqs", 0xEF00, "server", 0xEF0A, 0), + ("TS0601", "_TZE200_yw7cahqs", 0xEF00, "server", 0xEF28, 0), + ("TS0601", "_TZE200_yw7cahqs", 0xEF00, "server", 0xEF69, 0), + ("TS0601", "_TZE200_yw7cahqs", 0xEF00, "server", 0xEF6A, 0), + ("TS0601", "_TZE200_yw7cahqs", 0xEF00, "server", 0xEF6C, 0), + ("TS0601", "_TZE200_yw7cahqs", 0xEF00, "server", 0xEF82, 0), + ("TS0601", "_TZE204_4fblxpma", 0xEF00, "server", 0xEF00, "1.0.14"), + ("TS0601", "_TZE204_4fblxpma", 0xEF00, "server", 0xEF01, 66), + ("TS0601", "_TZE204_7ytb3h8u", 0xEF00, "server", 0xEF00, "1.0.0"), + ("TS0601", "_TZE204_7ytb3h8u", 0xEF00, "server", 0xEF01, 0), + ("TS0601", "_TZE204_7ytb3h8u", 0xEF00, "server", 0xEF65, "13:53:13"), + ("TS0601", "_TZE204_7ytb3h8u", 0xEF00, "server", 0xEF66, "13:53:19"), + ("TS0601", "_TZE204_7ytb3h8u", 0xEF00, "server", 0xEF67, 0), + ("TS0601", "_TZE204_7ytb3h8u", 0xEF00, "server", 0xEF68, 0), + ("TS0601", "_TZE204_7ytb3h8u", 0xEF00, "server", 0xEF69, 0), + ("TS0601", "_TZE204_7ytb3h8u", 0xEF00, "server", 0xEF72, "00:00:06,0"), + ("TS0601", "_TZE204_81yrt3lo", 0xEF00, "server", 0x0268, 0), + ("TS0601", "_TZE204_81yrt3lo", 0xEF00, "server", 0x0274, 1000), + ("TS0601", "_TZE204_81yrt3lo", 0xEF00, "server", 0x0275, 1000), + ("TS0601", "_TZE204_81yrt3lo", 0xEF00, "server", 0x0276, 1000), + ("TS0601", "_TZE204_81yrt3lo", 0xEF00, "server", 0x0277, 1000), + ("TS0601", "_TZE204_81yrt3lo", 0xEF00, "server", 0x027A, 1000), + ("TS0601", "_TZE204_81yrt3lo", 0xEF00, "server", 0x027B, 1000), + ("TS0601", "_TZE204_81yrt3lo", 0xEF00, "server", 0x027C, 1000), + ("TS0601", "_TZE204_81yrt3lo", 0xEF00, "server", 0x027D, 1000), + ("TS0601", "_TZE204_81yrt3lo", 0xEF00, "server", 0x027F, 1000), + ("TS0601", "_TZE204_81yrt3lo", 0xEF00, "server", 0x0280, 1000), + ("TS0601", "_TZE204_81yrt3lo", 0xEF00, "server", 0x0281, 10), + ("TS0601", "_TZE204_81yrt3lo", 0xEF00, "server", 0x5000, 3), + ("TS0601", "_TZE204_81yrt3lo", 0xEF00, "server", 0x5020, True), + ("TS0601", "_TZE204_81yrt3lo", 0xEF00, "server", 0xEF00, "1.1.1"), + ("TS0601", "_TZE204_c2fmom5z", 0x042E, "server", 0x0000, 1.2e-05), + ("TS0601", "_TZE204_c2fmom5z", 0x042E, "server", 0x0000, 2e-06), + ("TS0601", "_TZE204_c2fmom5z", 0x042E, "server", 0x0000, 3e-06), + ("TS0601", "_TZE204_c2fmom5z", 0xEF00, "server", 0xEF00, "1.0.0"), + ("TS0601", "_TZE204_c2fmom5z", 0x0402, "server", 0xEF12, b"\x00\x00\x00\xa9"), + ("TS0601", "_TZE204_c2fmom5z", 0x0402, "server", 0xEF12, b"\x00\x00\x00\xb9"), + ("TS0601", "_TZE204_cjbofhxw", 0xEF00, "server", 0xEF00, "1.0.0"), + ("TS0601", "_TZE204_dtzziy1e", 0xEF00, "server", 0xEF00, "1.0.0"), + ("TS0601", "_TZE204_dtzziy1e", 0xEF00, "server", 0xEF02, 7), + ("TS0601", "_TZE204_dtzziy1e", 0xEF00, "server", 0xEF03, 60), + ("TS0601", "_TZE204_dtzziy1e", 0xEF00, "server", 0xEF04, 600), + ("TS0601", "_TZE204_dtzziy1e", 0xEF00, "server", 0xEF06, 1), + ("TS0601", "_TZE204_dtzziy1e", 0xEF00, "server", 0xEF65, 10), + ("TS0601", "_TZE204_dtzziy1e", 0xEF00, "server", 0xEF66, 30), + ("TS0601", "_TZE204_dtzziy1e", 0xEF00, "server", 0xEF67, ""), + ("TS0601", "_TZE204_dtzziy1e", 0xEF00, "server", 0xEF69, 5), + ("TS0601", "_TZE204_dtzziy1e", 0xEF00, "server", 0xEF6A, 60), + ("TS0601", "_TZE204_dtzziy1e", 0xEF00, "server", 0xEF6B, 0), + ("TS0601", "_TZE204_dtzziy1e", 0xEF00, "server", 0xEF6C, 0), + ("TS0601", "_TZE204_dwcarsat", 0x042E, "server", 0x0000, 0.000126), + ("TS0601", "_TZE204_dwcarsat", 0x0402, "server", 0xEF12, b"\x00\x00\x00\xeb"), + ("TS0601", "_TZE204_ex3rcdha", 0xEF00, "server", 0xEF00, "1.0.2"), + ("TS0601", "_TZE204_guvc7pdy", 0x0102, "server", 0xF000, 1), + ("TS0601", "_TZE204_hlx9tnzb", 0x0008, "server", 0xEF01, 2), + ("TS0601", "_TZE204_hlx9tnzb", 0x0008, "server", 0xEF02, 0), + ("TS0601", "_TZE204_iaeejhvf", 0xEF00, "server", 0xEF00, "1.0.4"), + ("TS0601", "_TZE204_iaeejhvf", 0xEF00, "server", 0xEF06, 1), + ("TS0601", "_TZE204_iaeejhvf", 0xEF00, "server", 0xEF67, ""), + ("TS0601", "_TZE204_kyhbrfyl", 0xEF00, "server", 0xEF00, "1.0.10"), + ("TS0601", "_TZE204_lpedvtvr", 0xEF00, "server", 0x0101, 1), + ("TS0601", "_TZE204_lpedvtvr", 0xEF00, "server", 0x0127, 0), + ("TS0601", "_TZE204_lpedvtvr", 0xEF00, "server", 0x0210, 215), + ("TS0601", "_TZE204_lpedvtvr", 0xEF00, "server", 0x0232, 200), + ("TS0601", "_TZE204_lpedvtvr", 0xEF00, "server", 0x0402, 2), + ("TS0601", "_TZE204_lpedvtvr", 0xEF00, "server", 0x042F, 1), + ("TS0601", "_TZE204_ltwbm23f", 0xEF00, "server", 0xEF2F, 0), + ("TS0601", "_TZE204_ltwbm23f", 0xEF00, "server", 0xEF72, 0), + ("TS0601", "_TZE204_ltwbm23f", 0xEF00, "server", 0xEF77, 170), + ("TS0601", "_TZE204_ltwbm23f", 0xEF00, "server", 0xEF78, 200), + ("TS0601", "_TZE204_nklqjk62", 0xEF00, "server", 0xEF00, "1.0.0"), + ("TS0601", "_TZE204_nklqjk62", 0xEF00, "server", 0xEF02, 0), + ("TS0601", "_TZE204_nklqjk62", 0xEF00, "server", 0xEF03, 0), + ("TS0601", "_TZE204_nklqjk62", 0xEF00, "server", 0xEF03, 1), + ("TS0601", "_TZE204_nklqjk62", 0xEF00, "server", 0xEF04, 10), + ("TS0601", "_TZE204_nklqjk62", 0xEF00, "server", 0xEF05, 3600), + ("TS0601", "_TZE204_nklqjk62", 0xEF00, "server", 0xEF0B, 0), + ("TS0601", "_TZE204_nklqjk62", 0xEF00, "server", 0xEF0C, 1), + ("TS0601", "_TZE204_nklqjk62", 0xEF00, "server", 0xEF0C, 2), + ("TS0601", "_TZE204_nlrfgpny", 0xEF00, "server", 0xEF00, "1.1.1"), + ("TS0601", "_TZE204_qasjif9e", 0xEF00, "server", 0xEF00, "1.0.2"), + ("TS0601", "_TZE204_qasjif9e", 0xEF00, "server", 0xEF02, 0), + ("TS0601", "_TZE204_qasjif9e", 0xEF00, "server", 0xEF03, 0), + ("TS0601", "_TZE204_qasjif9e", 0xEF00, "server", 0xEF04, 9), + ("TS0601", "_TZE204_qasjif9e", 0xEF00, "server", 0xEF09, 0), + ("TS0601", "_TZE204_qasjif9e", 0xEF00, "server", 0xEF65, 1), + ("TS0601", "_TZE204_qasjif9e", 0xEF00, "server", 0xEF66, 20), + ("TS0601", "_TZE204_upagmta9", 0xEF00, "server", 0xEF00, "1.0.0"), + ("TS0601", "_TZE204_upagmta9", 0xEF00, "server", 0xEF09, 0), + ("TS0601", "_TZE204_wbhaespm", 0xEF00, "server", 0x0201, 1003), + ("TS0601", "_TZE204_xalsoe3m", 0xEF00, "server", 0x0101, 1), + ("TS0601", "_TZE204_xalsoe3m", 0xEF00, "server", 0x0128, 0), + ("TS0601", "_TZE204_xalsoe3m", 0xEF00, "server", 0x0210, 235), + ("TS0601", "_TZE204_xalsoe3m", 0xEF00, "server", 0x0402, 1), + ("TS0601", "_TZE204_xalsoe3m", 0x0201, "server", 0x4002, 1), + ("TS0601", "_TZE204_xlppj4f5", 0xEF00, "server", 0xEF00, "1.0.0"), + ("TS0601", "_TZE204_xu4a5rhj", 0x0102, "server", 0x8001, 1), + ("TS0601", "_TZE204_yjjdcqsq", 0xEF00, "server", 0xEF00, "1.0.0"), + ("TS0601", "_TZE204_zenj4lxv", 0xEF00, "server", 0xEF00, "1.0.0"), + ("TS0601", "_TZE204_zenj4lxv", 0x0008, "server", 0xEF01, 12), + ("TS0601", "_TZE204_zenj4lxv", 0x0008, "server", 0xEF01, 2), + ("TS0601", "_TZE204_zenj4lxv", 0x0008, "server", 0xEF02, 0), + ("TS0601", "_TZE284_0zaf1cr8", 0xEF00, "server", 0x0401, 1), + ("TS0601", "_TZE284_ne4pikwm", 0xEF00, "server", 0xEF00, "1.0.0"), + ("TS0601", "_TZE284_ne4pikwm", 0xEF00, "server", 0xEF08, 1), + ("TS0601", "_TZE284_ne4pikwm", 0xEF00, "server", 0xEF0A, 1), + ("TS0601", "_TZE284_ne4pikwm", 0xEF00, "server", 0xEF1B, 0), + ("TS0601", "_TZE284_ne4pikwm", 0xEF00, "server", 0xEF28, 0), + ("TS0601", "_TZE284_ne4pikwm", 0xEF00, "server", 0xEF69, 0), + ("TS0601", "_TZE284_ne4pikwm", 0xEF00, "server", 0xEF6A, 0), + ("TS0601", "_TZE284_ne4pikwm", 0xEF00, "server", 0xEF6C, 0), + ("TS0601", "_TZE284_ne4pikwm", 0xEF00, "server", 0xEF6C, 1), + ("TS0601", "_TZE284_ne4pikwm", 0xEF00, "server", 0xEF82, 1), + ("TS130F", "_TZ3000_qa8s8vca", 0x0102, "server", 0x8000, 0), + ("TS130F", "_TZ3000_qa8s8vca", 0x0006, "server", 0x8001, 0), + ("TS130F", "_TZ3000_qa8s8vca", 0x0102, "server", 0xF000, 0), + ("TS130F", "_TZ3000_qa8s8vca", 0x0102, "server", 0xF001, 1), + ("TS130F", "_TZ3000_qa8s8vca", 0x0102, "server", 0xF002, 0), + ("TS130F", "_TZ3000_qa8s8vca", 0x0102, "server", 0xF003, 210), + ("zk78ptr", "_TYST11_czk78ptr", 0xEF00, "server", 0x0107, 0), + ("zk78ptr", "_TYST11_czk78ptr", 0xEF00, "server", 0x0112, 1), + ("zk78ptr", "_TYST11_czk78ptr", 0xEF00, "server", 0x0202, 135), + ("zk78ptr", "_TYST11_czk78ptr", 0xEF00, "server", 0x0203, 176), + ("zk78ptr", "_TYST11_czk78ptr", 0xEF00, "server", 0x0404, 2), +] diff --git a/tools/import_diagnostics.py b/tools/import_diagnostics.py index a1197b990..de62ebec6 100644 --- a/tools/import_diagnostics.py +++ b/tools/import_diagnostics.py @@ -33,6 +33,8 @@ ) from tests.conftest import TestGateway, make_zha_data, make_zigpy_app_controller +from .const import KNOWN_LEGACY_ATTRIBUTES + _LOGGER = logging.getLogger(__name__) REPO_ROOT = pathlib.Path(__file__).parent.parent @@ -227,12 +229,18 @@ def zigpy_device_from_legacy_diagnostics( # noqa: C901 if attr_id_int in real_cluster.attributes: real_cluster._attr_cache[attr_id_int] = parsed else: - _LOGGER.warning( - "Setting legacy value for unknown attribute %s on server cluster %s: %r", - attr_id, - cluster_id, + key = ( + device.model, + device.manufacturer, + int(cluster_id, 16), + "server", + attr_id_int, parsed, ) + if key not in KNOWN_LEGACY_ATTRIBUTES: + raise RuntimeError( + f"Unexpected legacy attribute write: {key!r}" + ) real_cluster._attr_cache.set_legacy_value(attr_id_int, parsed) real_cluster.PLUGGED_ATTR_READS[attr_id_int] = parsed @@ -277,12 +285,18 @@ def zigpy_device_from_legacy_diagnostics( # noqa: C901 if attr_id_int in real_cluster.attributes: real_cluster._attr_cache[attr_id_int] = parsed else: - _LOGGER.warning( - "Setting legacy value for unknown attribute %s on client cluster %s: %r", - attr_id, - cluster_id, + key = ( + device.model, + device.manufacturer, + int(cluster_id, 16), + "client", + attr_id_int, parsed, ) + if key not in KNOWN_LEGACY_ATTRIBUTES: + raise RuntimeError( + f"Unexpected legacy attribute write: {key!r}" + ) real_cluster._attr_cache.set_legacy_value(attr_id_int, parsed) real_cluster.PLUGGED_ATTR_READS[attr_id_int] = parsed @@ -362,7 +376,14 @@ async def main(paths: list[str]): _LOGGER.debug("Skipping, not valid JSON") continue - if "version" in data and "node_descriptor" in data and "endpoints" in data: + if ( + "version" in data + and "node_descriptor" in data + and "endpoints" in data + # Manually-redacted JSON needs to be parsed with the lenient importer. + # It will create a fake but stable IEEE address for the device. + and "**REDACTED**" not in data["ieee"] + ): # Directly parse the diagnostics JSON zigpy_device = zigpy_device_from_device_data( app=zha_gateway.application_controller, From 93eb29d684a10ae0d249de98862217d11b6fb268 Mon Sep 17 00:00:00 2001 From: puddly <32534428+puddly@users.noreply.github.com> Date: Thu, 25 Jun 2026 16:39:25 -0400 Subject: [PATCH 2/9] Binary sensor entities do not crash before being marked unsupported --- zha/application/platforms/binary_sensor/__init__.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/zha/application/platforms/binary_sensor/__init__.py b/zha/application/platforms/binary_sensor/__init__.py index 688cb706c..53de60f14 100644 --- a/zha/application/platforms/binary_sensor/__init__.py +++ b/zha/application/platforms/binary_sensor/__init__.py @@ -111,7 +111,13 @@ def __init__( ) super().__init__(endpoint=endpoint, device=device, **kwargs) - self._state: bool = self.is_on + + if not self.is_supported(): + # `self.is_on` can raise if an attribute is missing + self._state = False + else: + self._state = self.is_on + self.recompute_capabilities() def _is_supported(self) -> bool: From 908595a33f432ec747f5e9dd8196a57432a3810d Mon Sep 17 00:00:00 2001 From: puddly <32534428+puddly@users.noreply.github.com> Date: Thu, 25 Jun 2026 16:42:26 -0400 Subject: [PATCH 3/9] Separate out diagnostics for devices without `original_signature` --- tests/common.py | 162 ++++++++++++++++++-------------- tests/test_discover.py | 4 +- tools/import_diagnostics.py | 53 ++++++----- tools/regenerate_diagnostics.py | 5 +- 4 files changed, 132 insertions(+), 92 deletions(-) diff --git a/tests/common.py b/tests/common.py index cf8f499cd..f7a3a31b5 100644 --- a/tests/common.py +++ b/tests/common.py @@ -358,6 +358,80 @@ async def group_entity_availability_test( assert entity.state["available"] is True +def _load_attribute_cache( + device: zigpy.device.Device, + device_data: dict, + *, + patch_cluster: bool, +) -> None: + """Populate the attribute cache from diagnostics data, mirroring zigpy `appdb`.""" + for epid, ep in device_data["endpoints"].items(): + try: + endpoint = device.endpoints[int(epid)] + except KeyError: + _LOGGER.warning("Endpoint %d not found on device %s", int(epid), device) + continue + + endpoint.request = AsyncMock(return_value=[0]) + + for cluster_type in ("in_clusters", "out_clusters"): + clusters = getattr(endpoint, cluster_type) + + for cluster in ep[cluster_type]: + cluster_id = int(cluster["cluster_id"], 16) + + try: + real_cluster = clusters[cluster_id] + except KeyError: + _LOGGER.warning( + "Cluster %0#06x not found on endpoint %r of device %s", + cluster_id, + endpoint, + device, + ) + continue + + if patch_cluster: + patch_cluster_for_testing(real_cluster) + + for attr in cluster["attributes"]: + attrid = int(attr["id"], 16) + attr_name = attr.get("name") + value = attr.get("value") + + try: + attr_def = real_cluster.find_attribute(attrid) + except KeyError: + # Multiple definitions share this id (a manufacturer-specific + # attribute): the name disambiguates it like `manufacturer_code` + # does for the database load. Only accept it if the id matches, + # so a quirk-moved name still falls through to a legacy value. + attr_def = None + if attr_name is not None: + try: + by_name = real_cluster.find_attribute(attr_name) + except KeyError: + by_name = None + if by_name is not None and by_name.id == attrid: + attr_def = by_name + + # Unknown attribute, or an ambiguous manufacturer-specific id: cache + # it as a legacy value so the device still loads. + if attr_def is None: + if value is not None: + real_cluster._attr_cache.set_legacy_value(attrid, value) + if patch_cluster: + real_cluster.PLUGGED_ATTR_READS[attrid] = value + continue + + if value is not None: + real_cluster._attr_cache.set_value(attr_def, value) + if patch_cluster: + real_cluster.PLUGGED_ATTR_READS[attrid] = value + elif attr.get("unsupported", False): + real_cluster.add_unsupported_attribute(attr_def) + + def zigpy_device_from_device_data( # noqa: C901 app: ControllerApplication, device_data: dict, @@ -398,6 +472,9 @@ def zigpy_device_from_device_data( # noqa: C901 for cluster_id in ep.get("output_clusters", []): endpoint.add_output_cluster(int(cluster_id, 16)) + + # Record the raw pre-quirk signature from the source diagnostic. + device.original_signature = device.get_signature() else: for epid, ep in device_data["endpoints"].items(): endpoint = device.add_endpoint(int(epid)) @@ -419,81 +496,23 @@ def zigpy_device_from_device_data( # noqa: C901 for cluster in ep["out_clusters"]: endpoint.add_output_cluster(int(cluster["cluster_id"], 16)) - device.original_signature = device.get_signature() + # First pass: populate the attribute cache on the bare clusters for quirks + _load_attribute_cache(device, device_data, patch_cluster=False) if quirk: device = quirk(app, device.ieee, device.nwk, device) else: device = registry.resolve(device) - for epid, ep in device_data["endpoints"].items(): - try: - endpoint = device.endpoints[int(epid)] - except KeyError: - _LOGGER.warning( - "Endpoint %d not found on device %s", - int(epid), - device, - ) - continue - - endpoint.request = AsyncMock(return_value=[0]) - - for cluster_type in ("in_clusters", "out_clusters"): - clusters = getattr(endpoint, cluster_type) + # Second pass: clear the cache so the quirked state is rebuilt cleanly, then + # repopulate against the final quirked clusters + for endpoint in device.non_zdo_endpoints: + for cluster in itertools.chain( + endpoint.in_clusters.values(), endpoint.out_clusters.values() + ): + cluster._attr_cache.clear() - for cluster in ep[cluster_type]: - cluster_id = int(cluster["cluster_id"], 16) - - try: - real_cluster = clusters[cluster_id] - except KeyError: - _LOGGER.warning( - "Cluster %0#04x not found on endpoint %r of device %s", - cluster_id, - endpoint, - device, - ) - continue - - if patch_cluster: - patch_cluster_for_testing(real_cluster) - - for attr in cluster["attributes"]: - attrid = int(attr["id"], 16) - attr_name = attr.get("name") - - # Look up by name to avoid ambiguity with manufacturer-specific attrs - try: - if attr_name is not None: - attr_def = real_cluster.find_attribute(attr_name) - else: - attr_def = real_cluster.find_attribute(attrid) - except KeyError: - attr_def = None - - # The attribute may not be defined on the cluster, or a quirk may - # have moved its name to a different id. Cache it as a legacy value - # so the device still loads. - if attr_def is None or attr_def.id != attrid: - if attr.get("value", None) is not None: - real_cluster._attr_cache.set_legacy_value( - attrid, attr["value"] - ) - real_cluster.PLUGGED_ATTR_READS[attrid] = attr["value"] - continue - - # Quirks can mark attributes as unsupported during cluster init so - # the attribute both has a cached value and is unsupported. We need - # to preserve the "unsupported" state. - was_unsupported = real_cluster.is_attribute_unsupported(attr_def) - - if attr.get("value", None) is not None: - real_cluster._attr_cache.set_value(attr_def, attr["value"]) - real_cluster.PLUGGED_ATTR_READS[attrid] = attr["value"] - - if attr.get("unsupported", False) or was_unsupported: - real_cluster.add_unsupported_attribute(attr_def) + _load_attribute_cache(device, device_data, patch_cluster=patch_cluster) for obj in device_data["neighbors"]: app.topology.neighbors[device.ieee].append( @@ -639,11 +658,16 @@ def create_mock_zigpy_device( class ZhaJsonEncoder(json.JSONEncoder): - """JSON encoder to handle common Python data types, currently just `set`.""" + """JSON encoder to handle common Python data types.""" def default(self, obj): """Convert non-JSON types.""" if isinstance(obj, set): return sorted(obj, key=repr) + # Bytes-valued attributes (e.g. Aqara aggregate blobs) are encoded the same way + # Home Assistant diagnostics encode them, which `parse_legacy_value` reads back. + if isinstance(obj, (bytes, bytearray)): + return {"__type": str(bytes), "repr": repr(bytes(obj))} + return super().default(obj) diff --git a/tests/test_discover.py b/tests/test_discover.py index edd36fb19..a1b2f1eb5 100644 --- a/tests/test_discover.py +++ b/tests/test_discover.py @@ -763,7 +763,9 @@ def pytest_generate_tests(metafunc): """Generate tests for all device files.""" if "file_path" in metafunc.fixturenames: # use the filename as ID for better test names - file_paths = sorted(pathlib.Path("tests/data/devices").glob("**/*.json")) + file_paths = sorted( + pathlib.Path("tests/data/devices").glob("**/*.json") + ) + sorted(pathlib.Path("tests/data/legacy_devices").glob("**/*.json")) file_paths = [ f for f in file_paths if f.name != "lumi-lumi-motion-agl04.json" ] # TODO: fix lingering timer for `_Motion._turn_off` in quirks diff --git a/tools/import_diagnostics.py b/tools/import_diagnostics.py index de62ebec6..3e0ac19c0 100644 --- a/tools/import_diagnostics.py +++ b/tools/import_diagnostics.py @@ -20,8 +20,6 @@ from unittest.mock import AsyncMock, patch from slugify import slugify -from zigpy.application import ControllerApplication -from zigpy.quirks import get_device as quirks_get_device import zigpy.zcl import zigpy.zdo.types as zdo_t @@ -32,6 +30,7 @@ zigpy_device_from_device_data, ) from tests.conftest import TestGateway, make_zha_data, make_zigpy_app_controller +from zha.quirks import DEVICE_REGISTRY from .const import KNOWN_LEGACY_ATTRIBUTES @@ -80,7 +79,7 @@ def parse_legacy_value(value: Any) -> Any: def zigpy_device_from_legacy_diagnostics( # noqa: C901 - app: ControllerApplication, + gateway: TestGateway, data: dict, patch_cluster: bool = True, ) -> zigpy.device.Device | None: @@ -157,7 +156,7 @@ def zigpy_device_from_legacy_diagnostics( # noqa: C901 # real (unique) IEEE is redacted ieee = ieee_from_manufacturer_model(manufacturer, model) - device = zigpy.device.Device(app, ieee, nwk) + device = zigpy.device.Device(gateway.application_controller, ieee, nwk) device.manufacturer = manufacturer device.model = model @@ -195,7 +194,8 @@ def zigpy_device_from_legacy_diagnostics( # noqa: C901 for cluster_id in ep["output_clusters"]: endpoint.add_output_cluster(int(cluster_id, 16)) - device = quirks_get_device(device) + if device.original_signature is None: + device = DEVICE_REGISTRY.resolve(device) for epid, ep in cluster_data.items(): endpoint.request = AsyncMock(return_value=[0]) @@ -318,7 +318,7 @@ def zigpy_device_from_legacy_diagnostics( # noqa: C901 def zigpy_device_from_diagnostics( - app: ControllerApplication, + gateway: TestGateway, data: dict, patch_cluster: bool = True, ) -> zigpy.device.Device | None: @@ -329,7 +329,7 @@ def zigpy_device_from_diagnostics( zha_data = data["data"] if "version" not in zha_data: - return zigpy_device_from_legacy_diagnostics(app, data, patch_cluster) + return zigpy_device_from_legacy_diagnostics(gateway, data, patch_cluster) # Some diagnostics are hand-redacted (e.g. nwk "0xREDACTED"), fake a NWK instead if "REDACTED" in zha_data["nwk"]: @@ -348,7 +348,9 @@ def zigpy_device_from_diagnostics( zha_data["routes"] = [] # Use our normal testing function to load the data - return zigpy_device_from_device_data(app, zha_data, patch_cluster) + return zigpy_device_from_device_data( + gateway.application_controller, zha_data, patch_cluster + ) @contextlib.asynccontextmanager @@ -405,9 +407,7 @@ async def main(paths: list[str]): _LOGGER.debug("Skipping known-bad DIY device") continue - zigpy_device = zigpy_device_from_diagnostics( - zha_gateway.application_controller, data - ) + zigpy_device = zigpy_device_from_diagnostics(zha_gateway, data) if zigpy_device is None: _LOGGER.debug("Skipping, diagnostics are not valid") @@ -448,21 +448,32 @@ async def main(paths: list[str]): ) continue suffix = f"-{fw_version}" if fw_version is not None else "" - output_path = ( - REPO_ROOT - / "tests" - / "data" - / "devices" - / ( - slugify(f"{zigpy_device.manufacturer}-{zigpy_device.model}{suffix}") - + ".json" - ) + filename = ( + slugify(f"{zigpy_device.manufacturer}-{zigpy_device.model}{suffix}") + + ".json" ) + devices_path = REPO_ROOT / "tests" / "data" / "devices" / filename + legacy_path = REPO_ROOT / "tests" / "data" / "legacy_devices" / filename + + # Diagnostics with a recorded `original_signature` faithfully reconstruct + # the raw pre-quirk device. Prefer them over legacy diagnostics, whose + # signature may be polluted by runtime quirk modification and so cannot + # re-match. + if "original_signature" in initial_json: + output_path = devices_path + # A preferred version supersedes any legacy import of the same device. + legacy_path.unlink(missing_ok=True) + elif devices_path.is_file(): + # A preferred version already exists; skip the legacy diagnostic. + continue + else: + output_path = legacy_path if output_path.is_file(): continue - _LOGGER.info("Importing %s as %s", path, output_path.name) + output_path.parent.mkdir(parents=True, exist_ok=True) + _LOGGER.info("Importing %s as %s", path, output_path) new_json = json.dumps(initial_json, indent=2, cls=ZhaJsonEncoder) output_path.write_text(new_json) diff --git a/tools/regenerate_diagnostics.py b/tools/regenerate_diagnostics.py index 86857926b..79139ec38 100644 --- a/tools/regenerate_diagnostics.py +++ b/tools/regenerate_diagnostics.py @@ -37,7 +37,10 @@ async def create_zha_gateway(): async def main(files: list[str] | None = None) -> None: """Entry point.""" if files is None: - paths = list((REPO_ROOT / "tests" / "data" / "devices").glob("**/*.json")) + data_root = REPO_ROOT / "tests" / "data" + paths = sorted((data_root / "devices").glob("**/*.json")) + sorted( + (data_root / "legacy_devices").glob("**/*.json") + ) else: paths = [pathlib.Path(f) for f in files] From 2caea087c764d596bcb684c0159b7ef50d72123e Mon Sep 17 00:00:00 2001 From: puddly <32534428+puddly@users.noreply.github.com> Date: Thu, 25 Jun 2026 17:24:48 -0400 Subject: [PATCH 4/9] Regenerate 1: rename existing legacy diagnostics --- pyproject.toml | 2 +- .../data/{devices => legacy_devices}/adeo-sin-4-fp-21-equ.json | 0 .../adeo-zb-watersensor-d0001-0x21120002.json | 0 .../adurosmart-eria-adurolight-csc.json | 0 tests/data/{devices => legacy_devices}/aeotec-zga004.json | 0 tests/data/{devices => legacy_devices}/alab-alab-co2-1-1.json | 0 .../aqara-lumi-airrtc-aeu001-0x00000a1a.json | 0 .../aqara-lumi-airrtc-aeu005-0x00001227.json | 0 .../{devices => legacy_devices}/aqara-lumi-curtain-acn04.json | 0 .../aqara-lumi-light-acn132-0x00001a1a.json | 0 .../aqara-lumi-light-agl003-0x0000001b.json | 0 .../aqara-lumi-light-agl005-0x0000001b.json | 0 .../aqara-lumi-sensor-occupy-agl1-0x0000001a.json | 0 .../aqara-lumi-sensor-occupy-agl8-0x00003422.json | 0 .../aqara-lumi-switch-aeu003-0x00000e14.json | 0 .../aqara-lumi-switch-agl010-0x00001315.json | 0 .../atlantic-group-adapter-zigbee-fujitsu.json | 0 .../{devices => legacy_devices}/aurora-doublesocket50au.json | 0 tests/data/{devices => legacy_devices}/awox-ercu-ws-zm.json | 0 .../data/{devices => legacy_devices}/awox-esmlfzm-w6-dimm.json | 0 .../{devices => legacy_devices}/bitron-video-902010-24a.json | 0 .../{devices => legacy_devices}/bituo-technik-spm01x001.json | 0 .../bosch-rbsh-mms-zb-eu-0x11136760.json | 0 .../bosch-rbsh-rth0-bat-zb-eu-0x02086a30.json | 0 .../bosch-rbsh-rth0-zb-eu-0x03036a30.json | 0 .../bosch-rbsh-trv0-zb-eu-0x32051514.json | 0 .../bosch-rbsh-us4btn-zb-eu-0x100d6a30.json | 0 tests/data/{devices => legacy_devices}/busch-jaeger-rb01.json | 0 .../candeo-c-zb-lc20-dim-0x29013001.json | 0 .../candeo-c-zb-lc20-rgb-0x31013001.json | 0 .../{devices => legacy_devices}/centralite-3300-0x1f075310.json | 0 tests/data/{devices => legacy_devices}/computime-slr2b.json | 0 tests/data/{devices => legacy_devices}/d5x84yu-et093wrg.json | 0 tests/data/{devices => legacy_devices}/danfoss-0x8040.json | 0 .../danfoss-etrv0103-0x00000014.json | 0 tests/data/{devices => legacy_devices}/datek-pop.json | 0 tests/data/{devices => legacy_devices}/datek-ssds.json | 0 ...elco-products-a-s-zhemi-zigbee-external-meter-interface.json | 0 .../ecodim-bv-eco-dim-05-zigbee-0x00000001.json | 0 .../ecodim-bv-ecodim-zigbee-3-0.json | 0 tests/data/{devices => legacy_devices}/enktro-acmidea.json | 0 .../espressif-zigbeeanalogdevice.json | 0 .../eurotronic-spzb0001-0x4501001f.json | 0 .../ewelink-ck-bl702-al-01-7009-z102lg03-1-0x00001203.json | 0 .../ewelink-ck-tlsr8656-ss5-01-7000-0x00001102.json | 0 tests/data/{devices => legacy_devices}/ewelink-ds01.json | 0 tests/data/{devices => legacy_devices}/ewelink-ms01.json | 0 .../ewelink-snzb-01p-0x00002200.json | 0 .../ewelink-snzb-03p-0x00002201.json | 0 .../ewelink-snzb-04p-0x00002200.json | 0 tests/data/{devices => legacy_devices}/ewelink-th01.json | 0 tests/data/{devices => legacy_devices}/ewelink-wb01.json | 0 tests/data/{devices => legacy_devices}/ewelink-zb-sw01.json | 0 .../ezviz-cs-t55-r100-g-0x00000002.json | 0 .../frient-a-s-aqszb-110-0x00040001.json | 0 .../frient-a-s-emizb-141-0x00030102.json | 0 .../frient-a-s-kepzb-110-0x0001060a.json | 0 .../frient-a-s-kepzb-110-0x00020005.json | 0 .../frient-a-s-moszb-140-0x00040006.json | 0 .../data/{devices => legacy_devices}/frient-a-s-smszb-120.json | 0 .../generic-zigbee-coordinator-ezsp.json | 0 tests/data/{devices => legacy_devices}/gledopto-gl-b-008z.json | 0 .../gledopto-gl-c-009p-0x29013001.json | 0 tests/data/{devices => legacy_devices}/gledpopto-gl-c-007p.json | 0 ...hake-finland-agge-zigbee-smart-rotary-dimmer-0x00000002.json | 0 .../data/{devices => legacy_devices}/hive-mbr1-0x01047320.json | 0 tests/data/{devices => legacy_devices}/hobeian-zg-101zl.json | 0 tests/data/{devices => legacy_devices}/hobeian-zg-102zm.json | 0 tests/data/{devices => legacy_devices}/hobeian-zg-204zv.json | 0 .../horn-zone-haier-hs-22zw-0000011216.json | 0 .../ikea-of-sweden-badring-water-leakage-sensor-0x01000007.json | 0 .../ikea-of-sweden-ormanas-led-strip-0x01010010.json | 0 .../ikea-of-sweden-parasoll-door-window-sensor-0x01000019.json | 0 .../ikea-of-sweden-remote-control-n2.json | 0 ...ea-of-sweden-tradfri-bulb-e14-ws-globe-470lm-0x01010020.json | 0 ...a-of-sweden-tradfri-bulb-e27-ws-globe-1055lm-0x02040005.json | 0 ...a-of-sweden-tradfri-bulb-e27-ww-g95-cl-470lm-0x00011006.json | 0 .../ikea-of-sweden-tradfri-bulb-gu10-ww-345lm8.json | 0 .../ikea-of-sweden-tradfri-motion-sensor.json | 0 .../ikea-of-sweden-tradfri-shortcut-button.json | 0 .../{devices => legacy_devices}/imagic-by-greatstar-1112-s.json | 0 .../{devices => legacy_devices}/innr-rs-232-c-0x22151511.json | 0 .../{devices => legacy_devices}/innr-sp-240-0x191e3685.json | 0 .../{devices => legacy_devices}/innr-sp-242-0x17173685.json | 0 .../lds-zb-onoffplug-d0005-0x21186230.json | 0 .../ledvance-a60s-rgbw-0x02146550.json | 0 tests/data/{devices => legacy_devices}/legrand-contactor.json | 0 .../legrand-double-gangs-remote-switch.json | 0 .../legrand-light-switch-with-neutral-0x001c4203.json | 0 .../legrand-light-switch-with-neutral.json | 0 .../legrand-mobile-outlet-0x006545ff.json | 0 .../lumi-lumi-airrtc-agl001-0x0000001e.json | 0 .../{devices => legacy_devices}/lumi-lumi-ctrl-neutral2.json | 0 .../lumi-lumi-curtain-acn002-0x00000e1f.json | 0 .../{devices => legacy_devices}/lumi-lumi-curtain-acn003.json | 0 .../{devices => legacy_devices}/lumi-lumi-curtain-hagl04.json | 0 .../lumi-lumi-motion-agl04-0x00000019.json | 0 .../data/{devices => legacy_devices}/lumi-lumi-plug-maeu01.json | 0 .../{devices => legacy_devices}/lumi-lumi-remote-cagl02.json | 0 .../lumi-lumi-sensor-switch-aq2.json | 0 .../{devices => legacy_devices}/lumi-lumi-switch-b1lacn02.json | 0 .../{devices => legacy_devices}/lumi-lumi-switch-b2naus01.json | 0 .../{devices => legacy_devices}/lumi-lumi-switch-b2nc01.json | 0 .../lumi-lumi-switch-l1aeu1-0x00000e0b.json | 0 .../lumi-lumi-switch-l2aeu1-0x00000e0b.json | 0 .../{devices => legacy_devices}/lumi-lumi-switch-n1aeu1.json | 0 .../mli-tint-extendedcolor-0x10012001.json | 0 .../{devices => legacy_devices}/nabu-casa-ha-connect-zbt-1.json | 0 tests/data/{devices => legacy_devices}/namron-as-1402790.json | 0 .../namron-as-4512785-0x0000000e.json | 0 .../neuhaus-lighting-group-nlg-remote.json | 0 .../niko-nv-battery-switch-2-button.json | 0 .../niko-nv-battery-switch-4-button-0x21046760.json | 0 .../niko-nv-connectable-motor-control-3a-0x21160006.json | 0 tests/data/{devices => legacy_devices}/nodon-sin-4-fp-21.json | 0 .../occam-temp-sensor-v1-2-jan-19-2026.json | 0 .../orvibo-250bccf66c41421b91b5e3242942c164.json | 0 .../ou-rui-bo-cf31218e11c547179c9c9ade6a492799.json | 0 .../{devices => legacy_devices}/paulmann-licht-gmbh-501-34.json | 0 tests/data/{devices => legacy_devices}/philips-lct026.json | 0 .../{devices => legacy_devices}/philips-lst002-0x01001700.json | 0 .../data/{devices => legacy_devices}/ptvo-info-ptvo-switch.json | 0 tests/data/{devices => legacy_devices}/samjin-water.json | 0 .../schneider-electric-eko07259-0x01001d00.json | 0 .../schneider-electric-evsckt-outlet-1-0x020a00ff.json | 0 .../schneider-electric-lk-dimmer.json | 0 .../schneider-electric-nhmotion-unidim-1-0x020b0fff.json | 0 .../schneider-electric-puck-dimmer-1.json | 0 .../schneider-electric-puck-shutter-1-0x020c02ff.json | 0 .../schneider-electric-s520619-0x01003500.json | 0 .../{devices => legacy_devices}/sercomm-corp-sz-esw01-au.json | 0 tests/data/{devices => legacy_devices}/shelly-2pm.json | 0 tests/data/{devices => legacy_devices}/shelly-ecowitt-ws90.json | 0 tests/data/{devices => legacy_devices}/shelly-mini1pm.json | 0 .../{devices => legacy_devices}/shyugj-dimmer-switch-zb3-0.json | 0 .../signify-netherlands-b-v-lca001-0x01002802.json | 0 .../signify-netherlands-b-v-rdm004.json | 0 .../sinope-technologies-va4220zb.json | 0 .../smarthjemmet-dk-quad-zig-sw.json | 0 .../smarthjemmet-dk-quad-zig-sw2.json | 0 .../smartthings-multiv4-0x0000001b.json | 0 .../somfy-sonesse-28-wf-li-ion-roller-0x4100e158.json | 0 tests/data/{devices => legacy_devices}/sonoff-basiczbr3.json | 0 tests/data/{devices => legacy_devices}/sonoff-dongle-e-r.json | 0 .../sonoff-mini-zbrbs-0x00001005.json | 0 .../{devices => legacy_devices}/sonoff-s26r2zb-0x00002000.json | 0 .../{devices => legacy_devices}/sonoff-s60zbtpg-0x00001002.json | 0 .../data/{devices => legacy_devices}/sonoff-swv-0x00001002.json | 0 .../data/{devices => legacy_devices}/sonoff-swv-0x00001003.json | 0 .../{devices => legacy_devices}/sonoff-trvzb-0x00001201.json | 0 .../{devices => legacy_devices}/sonoff-trvzb-0x00001400.json | 0 .../{devices => legacy_devices}/sonoff-trvzb-0x00001401.json | 0 .../{devices => legacy_devices}/sonoff-zbminil2-0x0000100e.json | 0 .../{devices => legacy_devices}/sonoff-zbminir2-0x00001004.json | 0 .../sunricher-on-off-2ch-0x00000004.json | 0 .../{devices => legacy_devices}/texas-instruments-cc2652.json | 0 .../texas-instruments-coordinator.json | 0 .../{devices => legacy_devices}/tyst11-czk78ptr-zk78ptr.json | 0 .../{devices => legacy_devices}/tyzb01-8scntis1-ts0216.json | 0 .../{devices => legacy_devices}/tyzb01-mtunwanm-ts011f.json | 0 .../tyzb01-qm6djpta-ts0215-0x00000046.json | 0 .../{devices => legacy_devices}/tz2000-k4yr34vv-sm0301.json | 0 .../{devices => legacy_devices}/tz3000-09gto2zn-ts0013.json | 0 .../tz3000-1o6x1bl0-ts0201-0x00000041.json | 0 .../{devices => legacy_devices}/tz3000-2putqrmw-ts011f.json | 0 .../{devices => legacy_devices}/tz3000-2xlvlnez-ts011f.json | 0 .../tz3000-3ias4w4o-ts011f-0x0000004e.json | 0 .../{devices => legacy_devices}/tz3000-5e235jpa-ts0042.json | 0 .../{devices => legacy_devices}/tz3000-5fkufhn1-ts0502a.json | 0 .../{devices => legacy_devices}/tz3000-5ity3zyu-ts0121.json | 0 .../{devices => legacy_devices}/tz3000-8nyaanzb-ts011f.json | 0 .../{devices => legacy_devices}/tz3000-a37eix1s-ts0004.json | 0 .../{devices => legacy_devices}/tz3000-a9buwvb7-ts0726.json | 0 .../{devices => legacy_devices}/tz3000-adkvzooy-ts0042.json | 0 .../{devices => legacy_devices}/tz3000-aghwaexm-ts0001.json | 0 .../tz3000-bgsigers-ts0201-0x00000040.json | 0 .../{devices => legacy_devices}/tz3000-bjawzodf-ty0201.json | 0 .../tz3000-cehuw1lw-ts011f-0x0000004d.json | 0 .../tz3000-cicwjqth-ts011f-0x74013001.json | 0 .../{devices => legacy_devices}/tz3000-dbou1ap4-ts0505a.json | 0 .../{devices => legacy_devices}/tz3000-dowj6gyi-ts0201.json | 0 .../{devices => legacy_devices}/tz3000-e2uieqop-ts0001.json | 0 .../tz3000-eamtuojw-ts0201-0x00000041.json | 0 .../{devices => legacy_devices}/tz3000-empogkya-ts0003.json | 0 .../{devices => legacy_devices}/tz3000-fdxihpp7-ts0001.json | 0 .../tz3000-gbm10jnj-ts0043-0x00000042.json | 0 .../tz3000-gjpgagal-ts0049-0x00000049.json | 0 .../{devices => legacy_devices}/tz3000-gjrubzje-ts0001.json | 0 .../tz3000-hafsqare-ts0011-0x00000050.json | 0 .../tz3000-isw9u95y-ts0201-0x00000040.json | 0 .../tz3000-j1xl73iw-ts130f-0x00000046.json | 0 .../{devices => legacy_devices}/tz3000-kmsbwdol-ts130f.json | 0 .../tz3000-kqvb5akv-ts0001-0x0000004a.json | 0 .../{devices => legacy_devices}/tz3000-lf56vpxj-ts0202.json | 0 .../{devices => legacy_devices}/tz3000-llfaquvp-ts0012.json | 0 .../{devices => legacy_devices}/tz3000-lotmgthb-ts011f.json | 0 .../{devices => legacy_devices}/tz3000-lrgccsxm-ts0013.json | 0 .../{devices => legacy_devices}/tz3000-ltiqubue-ts130f.json | 0 .../{devices => legacy_devices}/tz3000-mg4dy6z6-ts0202.json | 0 .../tz3000-mgusv51k-ts0052-0x00000044.json | 0 .../tz3000-mkhkxx1p-ts0001-0x00000048.json | 0 .../tz3000-mugyhz0q-ts0207-0x00000041.json | 0 .../{devices => legacy_devices}/tz3000-npzfdcof-ts0001.json | 0 .../tz3000-o4mkahkc-ts0202-0x00000046.json | 0 .../tz3000-pl5v1yyy-ts011f-0x00000050.json | 0 .../{devices => legacy_devices}/tz3000-qa8s8vca-ts130f.json | 0 .../{devices => legacy_devices}/tz3000-qqdbccb3-ts130f.json | 0 .../{devices => legacy_devices}/tz3000-rbl8c85w-ts0012.json | 0 .../{devices => legacy_devices}/tz3000-snq47izk-ts0013.json | 0 .../{devices => legacy_devices}/tz3000-tgddllx4-ts0001.json | 0 .../tz3000-u3oupgdy-ts0004-0x00000050.json | 0 .../tz3000-u4kojtqz-ts0002-0x10013607.json | 0 .../tz3000-vw8pawxa-ts130f-0x00000048.json | 0 .../{devices => legacy_devices}/tz3000-w0qqde0g-ts011f.json | 0 .../tz3000-wcgyhnp3-ts0222-0x00000045.json | 0 .../{devices => legacy_devices}/tz3000-wkai4ga5-ts0044.json | 0 .../{devices => legacy_devices}/tz3000-wkr3jqmr-ts0004.json | 0 .../{devices => legacy_devices}/tz3000-xa9g7rxs-ts1002.json | 0 .../{devices => legacy_devices}/tz3000-xabckq1v-ts004f.json | 0 .../{devices => legacy_devices}/tz3000-xkap8wtb-ts000f.json | 0 .../{devices => legacy_devices}/tz3000-xr3htd96-ts0201.json | 0 .../{devices => legacy_devices}/tz3000-xxacnuab-ts0004.json | 0 .../{devices => legacy_devices}/tz3000-ynmowqk2-ts011f.json | 0 .../{devices => legacy_devices}/tz3000-zl1kmjqx-0x10013001.json | 0 .../{devices => legacy_devices}/tz3000-zl1kmjqx-ty0201.json | 0 .../tz3000-zw7yf6yk-ts0001-0x00000048.json | 0 .../tz3002-vaq2bfcu-ts0726-0x00000051.json | 0 .../tz3040-bb6xaihh-ts0202-0x00000048.json | 0 .../tz3210-09hzmirw-ts0502b-0x0000005b.json | 0 .../{devices => legacy_devices}/tz3210-0jxeoadc-ts0049.json | 0 .../tz3210-3mpwqzuu-ts110e-0x00000040.json | 0 .../{devices => legacy_devices}/tz3210-3ulg9kpo-ts0021.json | 0 .../{devices => legacy_devices}/tz3210-5rta89nj-ts0601.json | 0 .../{devices => legacy_devices}/tz3210-bfwvfyx1-ts0505b.json | 0 .../tz3210-comkuwws-ts0502b-0x00000065.json | 0 .../tz3210-dwytrmda-ts130f-0x00000042.json | 0 .../tz3210-ehcanwyc-ts0502b-0x00000065.json | 0 .../{devices => legacy_devices}/tz3210-ekjc2rzh-ts0225.json | 0 .../{devices => legacy_devices}/tz3210-hxtfthp5-ts0505b.json | 0 .../tz3210-j4pdtz9v-ts0001-0x00000062.json | 0 .../tz3210-k1msuvg6-ts110e-0x00000040.json | 0 .../tz3210-kjafhwd2-ts0210-0x00000044.json | 0 .../tz3210-klv2wul0-ts0505b-0x00000065.json | 0 .../tz3210-ncw88jfq-ts0201-0x00000083.json | 0 .../tz3210-qkj7rujp-ts0201-0x00000043.json | 0 .../tz3210-r5afgmkl-ts0505b-0x10013607.json | 0 .../tz3210-ru41azca-ts0049-0x00000040.json | 0 .../tz3210-sb8x2xci-ts0001-0x00000047.json | 0 .../{devices => legacy_devices}/tz3210-sixywxvy-ts0505b.json | 0 .../tz3210-tgvtvdoc-ts0207-0x00000043.json | 0 .../tz3210-u1dreag7-ts0502b-0x00000065.json | 0 .../tz3210-ue9kyjnj-ts0502b-0x00000059.json | 0 .../{devices => legacy_devices}/tz3210-umi6vbsz-ts0505b.json | 0 .../{devices => legacy_devices}/tz3210-up3pngle-ts0205.json | 0 .../tz3210-wuhzzfqg-ts0202-0x000000a1.json | 0 .../tz3218-7fiyo3kv-ts000f-0x00000051.json | 0 .../{devices => legacy_devices}/tz3218-awarhusb-ts0225.json | 0 .../tz3218-ya5d6wth-ts000f-0x00000064.json | 0 .../tz3290-7v1k4vufotpowp9z-ts1201.json | 0 .../tz6210-duv6fhwt-ts0601-0x00000042.json | 0 .../tzb210-417ikxay-ts0505b-0x00000040.json | 0 .../{devices => legacy_devices}/tze200-1n2zev06-ts0601.json | 0 .../{devices => legacy_devices}/tze200-2aaelwxk-ts0225.json | 0 .../{devices => legacy_devices}/tze200-2ekuz3dz-ts0601.json | 0 .../{devices => legacy_devices}/tze200-2gtsuokt-ts0601.json | 0 .../tze200-2se8efxh-ts0601-0x00000048.json | 0 .../tze200-3t91nb6k-ts0601-0x00000046.json | 0 .../tze200-3towulqd-ts0601-0x00000046.json | 0 .../{devices => legacy_devices}/tze200-3ylew7b4-ts0601.json | 0 .../tze200-4utwozi2-ts0601-0x00000043.json | 0 .../{devices => legacy_devices}/tze200-4wxtg5y9-ts0601.json | 0 .../{devices => legacy_devices}/tze200-68nvbio9-ts0601.json | 0 .../{devices => legacy_devices}/tze200-6rdj8dzm-ts0601.json | 0 .../tze200-7bztmfm1-ts0601-0x00000046.json | 0 .../tze200-7ytb3h8u-ts0601-0x00000048.json | 0 .../tze200-81isopgh-ts0601-0x00000048.json | 0 .../{devices => legacy_devices}/tze200-86nbew0j-ts0601.json | 0 .../tze200-8whfphjv-ts0601-0x00000048.json | 0 .../tze200-9xfjixap-ts0601-0x00000043.json | 0 .../{devices => legacy_devices}/tze200-a0syesf5-ts0601.json | 0 .../{devices => legacy_devices}/tze200-a1dia7ml-ts0601.json | 0 .../tze200-a7sghmms-ts0601-0x00000048.json | 0 .../{devices => legacy_devices}/tze200-a7sghmms-ts0601.json | 0 .../tze200-abatw3kj-ts0601-0x00000046.json | 0 .../{devices => legacy_devices}/tze200-agumlajc-ts0601.json | 0 .../{devices => legacy_devices}/tze200-akjefhj5-ts0601.json | 0 .../{devices => legacy_devices}/tze200-aoclfnxz-ts0601.json | 0 .../{devices => legacy_devices}/tze200-bcusnqt8-ts0601.json | 0 .../{devices => legacy_devices}/tze200-bvrlmajk-ts0601.json | 0 .../{devices => legacy_devices}/tze200-byzdayie-ts0601.json | 0 .../tze200-c88teujp-ts0601-0x00000055.json | 0 .../tze200-cirvgep4-ts0601-0x00000048.json | 0 .../{devices => legacy_devices}/tze200-cpbo62rn-ts0601.json | 0 .../{devices => legacy_devices}/tze200-cpmgn2cf-ts0601.json | 0 .../tze200-crq3r3la-ck-bl702-mws-01-7016.json | 0 .../{devices => legacy_devices}/tze200-dwcarsat-ts0601.json | 0 .../{devices => legacy_devices}/tze200-e5hpkc6d-ts0601.json | 0 .../{devices => legacy_devices}/tze200-eevqq1uv-ts0601.json | 0 .../{devices => legacy_devices}/tze200-ewxhg6o9-ts0601.json | 0 .../{devices => legacy_devices}/tze200-f1pvdgoh-ts0601.json | 0 .../{devices => legacy_devices}/tze200-fvldku9h-ts0601.json | 0 .../tze200-g9a3awaj-ts0601-0x00000048.json | 0 .../tze200-gjldowol-ts0601-0x00000050.json | 0 .../{devices => legacy_devices}/tze200-gkfbdvyx-ts0601.json | 0 .../{devices => legacy_devices}/tze200-gubdgai2-ts0601.json | 0 .../tze200-guvc7pdy-ts0601-0x00000046.json | 0 .../{devices => legacy_devices}/tze200-h4cgnbzg-ts0601.json | 0 .../tze200-hhrtiq0x-ts0601-0x00000055.json | 0 .../{devices => legacy_devices}/tze200-hl0ss9oa-ts0225.json | 0 .../tze200-hr0tdd47-ts0601-0x00000048.json | 0 .../{devices => legacy_devices}/tze200-iba1ckek-ts0601.json | 0 .../{devices => legacy_devices}/tze200-ijey4q29-ts0601.json | 0 .../{devices => legacy_devices}/tze200-iuk8kupi-ts0601.json | 0 .../tze200-js3mgbjb-ts0601-0x00000044.json | 0 .../{devices => legacy_devices}/tze200-jva8ink8-ts0601.json | 0 .../{devices => legacy_devices}/tze200-kb5noeto-ts0601.json | 0 .../{devices => legacy_devices}/tze200-khozatfx-ts0601.json | 0 .../{devices => legacy_devices}/tze200-la2c2uo9-ts0601.json | 0 .../{devices => legacy_devices}/tze200-laqjm8qd-ts0601.json | 0 .../{devices => legacy_devices}/tze200-libht6ua-ts0601.json | 0 .../tze200-locansqn-ts0601-0x00000048.json | 0 .../{devices => legacy_devices}/tze200-m9skfctm-ts0601.json | 0 .../tze200-mgxy2d9f-ts0601-0x00000043.json | 0 .../{devices => legacy_devices}/tze200-mja3fuja-ts0601.json | 0 .../tze200-moycceze-ts0601-0x00000043.json | 0 .../{devices => legacy_devices}/tze200-mz5y07w2-ts0601.json | 0 .../{devices => legacy_devices}/tze200-mzik0ov2-ts0601.json | 0 .../{devices => legacy_devices}/tze200-nklqjk62-ts0601.json | 0 .../{devices => legacy_devices}/tze200-nojsjtj2-ts0601.json | 0 .../{devices => legacy_devices}/tze200-npj9bug3-ts0601.json | 0 .../{devices => legacy_devices}/tze200-ntcy3xu1-ts0601.json | 0 .../{devices => legacy_devices}/tze200-ny94onlb-ts0601.json | 0 .../{devices => legacy_devices}/tze200-nyvavzbj-ts0601.json | 0 .../{devices => legacy_devices}/tze200-pay2byax-ts0601.json | 0 .../tze200-pl31aqf5-ts0601-0x00000046.json | 0 .../{devices => legacy_devices}/tze200-pw7mji0l-ts0601.json | 0 .../{devices => legacy_devices}/tze200-qhlxve78-ts0601.json | 0 .../{devices => legacy_devices}/tze200-qrztc3ev-ts0601.json | 0 .../tze200-qyflbnbj-ts0601-0x00000046.json | 0 .../tze200-r32ctezx-ts0601-0x00000046.json | 0 .../{devices => legacy_devices}/tze200-rccxox8p-ts0601.json | 0 .../{devices => legacy_devices}/tze200-rk1wojce-ts0601.json | 0 .../{devices => legacy_devices}/tze200-rks0sgb7-ts0601.json | 0 .../tze200-rmymn92d-ts0601-0x00000046.json | 0 .../{devices => legacy_devices}/tze200-rtrmfadk-ts0601.json | 0 .../{devices => legacy_devices}/tze200-rxq4iti9-ts0601.json | 0 .../{devices => legacy_devices}/tze200-s6hzw8g2-ts0601.json | 0 .../{devices => legacy_devices}/tze200-t1blo2bj-ts0601.json | 0 .../{devices => legacy_devices}/tze200-t6gq6nju-ts0601.json | 0 .../{devices => legacy_devices}/tze200-udank5zs-ts0601.json | 0 .../tze200-uf1qujxj-ts0601-0x00000048.json | 0 .../{devices => legacy_devices}/tze200-v1jqz5cy-ts0601.json | 0 .../{devices => legacy_devices}/tze200-v9hkz2yn-ts0601.json | 0 .../{devices => legacy_devices}/tze200-viy9ihs7-ts0601.json | 0 .../{devices => legacy_devices}/tze200-vuqzj1ej-ts0601.json | 0 .../tze200-vvmbj46n-ts0601-0x00000048.json | 0 .../tze200-wdfurkoa-ts0601-0x00000041.json | 0 .../tze200-wfxuhoea-ts0601-0x00000046.json | 0 .../{devices => legacy_devices}/tze200-wktrysab-ts0601.json | 0 .../{devices => legacy_devices}/tze200-wqashyqo-ts0601.json | 0 .../{devices => legacy_devices}/tze200-xu4a5rhj-ts0601.json | 0 .../{devices => legacy_devices}/tze200-ya4ft0w4-ts0601.json | 0 .../tze200-yia0p3tr-ts0601-0x00000046.json | 0 .../{devices => legacy_devices}/tze200-yjjdcqsq-ts0601.json | 0 .../{devices => legacy_devices}/tze200-yojqa8xn-ts0601.json | 0 .../{devices => legacy_devices}/tze200-yvx5lh6k-ts0601.json | 0 .../tze200-yw7cahqs-ts0601-0x00000055.json | 0 .../{devices => legacy_devices}/tze200-ztvwu4nk-ts0601.json | 0 .../{devices => legacy_devices}/tze204-1fuxihti-ts0601.json | 0 .../tze204-1youk3hj-ts0601-0x0000004a.json | 0 .../tze204-4fblxpma-ts0601-0x00000049.json | 0 .../tze204-5slehgeo-ts0601-0x0000004a.json | 0 .../{devices => legacy_devices}/tze204-5toc8efa-ts0601.json | 0 .../{devices => legacy_devices}/tze204-7ytb3h8u-ts0601.json | 0 .../tze204-81yrt3lo-ts0601-0x0000004a.json | 0 .../{devices => legacy_devices}/tze204-9yapgbuv-ts0601.json | 0 .../tze204-a2jcoyuk-ts0601-0x0000004a.json | 0 .../tze204-ai4rqhky-ts0601-0x00000049.json | 0 .../tze204-aoclfnxz-ts0601-0x0000004a.json | 0 .../{devices => legacy_devices}/tze204-bkkmqmyo-ts0601.json | 0 .../tze204-c2fmom5z-ts0601-0x0000004a.json | 0 .../{devices => legacy_devices}/tze204-chbyv06x-ts0601.json | 0 .../tze204-cirvgep4-ts0601-0x00000049.json | 0 .../{devices => legacy_devices}/tze204-cjbofhxw-ts0601.json | 0 .../tze204-d6i25bwg-ts0601-0x0000004a.json | 0 .../{devices => legacy_devices}/tze204-dtzziy1e-ts0601.json | 0 .../tze204-dwcarsat-ts0601-0x0000004a.json | 0 .../tze204-ex3rcdha-ts0601-0x0000004a.json | 0 .../tze204-fhvdgeuh-ts0601-0x0000004a.json | 0 .../{devices => legacy_devices}/tze204-g2ki0ejr-ts0601.json | 0 .../tze204-goecjd1t-ts0601-0x0000004a.json | 0 .../tze204-gops3slb-ts0601-0x0000004a.json | 0 .../tze204-guvc7pdy-ts0601-0x0000004a.json | 0 .../{devices => legacy_devices}/tze204-hlx9tnzb-ts0601.json | 0 .../tze204-iaeejhvf-ts0601-0x0000004a.json | 0 .../{devices => legacy_devices}/tze204-ijxvkhd0-ts0601.json | 0 .../tze204-jrcfsaa3-ts0601-0x0000004a.json | 0 .../{devices => legacy_devices}/tze204-k7mfgaen-ts0601.json | 0 .../{devices => legacy_devices}/tze204-kobbcyum-ts0601.json | 0 .../{devices => legacy_devices}/tze204-kyhbrfyl-ts0601.json | 0 .../{devices => legacy_devices}/tze204-l8xiyymq-ts0601.json | 0 .../tze204-lb0fsvba-ts0601-0x0000004a.json | 0 .../tze204-lbbg34rj-ts0601-0x0000004a.json | 0 .../tze204-lsanae15-ts0601-0x0000004a.json | 0 .../tze204-ltwbm23f-ts0601-0x0000004e.json | 0 .../{devices => legacy_devices}/tze204-lzriup1j-ts0601.json | 0 .../tze204-m64smti7-ts0601-0x0000004a.json | 0 .../tze204-m9dzckna-ts0601-0x0000004a.json | 0 .../{devices => legacy_devices}/tze204-mpbki2zm-ts0601.json | 0 .../tze204-mtoaryre-ts0601-0x0000004a.json | 0 .../{devices => legacy_devices}/tze204-muvkrjr5-ts0601.json | 0 .../tze204-mwomyz5n-ts0601-0x0000004a.json | 0 .../tze204-nbkshs6k-ts0601-0x0000004a.json | 0 .../tze204-nklqjk62-ts0601-0x0000004a.json | 0 .../tze204-nlrfgpny-ts0601-0x00000049.json | 0 .../tze204-nvxorhcj-ts0601-0x0000004a.json | 0 .../tze204-ogx8u5z6-ts0601-0x0000004a.json | 0 .../{devices => legacy_devices}/tze204-p3lqqy2r-ts0601.json | 0 .../tze204-pcdmj88b-ts0601-0x00000049.json | 0 .../tze204-pxbjch8m-ts0601-0x0000004a.json | 0 .../tze204-qasjif9e-ts0601-0x0000004a.json | 0 .../tze204-qtnjuoae-ts0601-0x00000049.json | 0 .../tze204-qyr2m29i-ts0601-0x0000004a.json | 0 .../tze204-r32ctezx-ts0601-0x0000004a.json | 0 .../{devices => legacy_devices}/tze204-rhblgy0z-ts0601.json | 0 .../tze204-rtrmfadk-ts0601-0x00000049.json | 0 .../{devices => legacy_devices}/tze204-rtrmfadk-ts0601.json | 0 .../{devices => legacy_devices}/tze204-sooucan5-ts0601.json | 0 .../{devices => legacy_devices}/tze204-srmahpwl-ts0601.json | 0 .../{devices => legacy_devices}/tze204-sxm7l9xa-ts0601.json | 0 .../tze204-tdhnhhiy-ts0601-0x0000004a.json | 0 .../{devices => legacy_devices}/tze204-ue3rzddr-ts0601.json | 0 .../{devices => legacy_devices}/tze204-upagmta9-ts0601.json | 0 .../tze204-uxllnywp-ts0601-0x0000004a.json | 0 .../tze204-w1wwxoja-ts0601-0x0000004a.json | 0 .../tze204-wbhaespm-ts0601-0x0000004a.json | 0 .../tze204-x8fp01wi-ts0601-0x0000004a.json | 0 .../tze204-x9usygq1-ts0601-0x0000004a.json | 0 .../tze204-xalsoe3m-ts0601-0x0000004a.json | 0 .../tze204-xlppj4f5-ts0601-0x0000004a.json | 0 .../tze204-xnbkhhdr-ts0601-0x0000004a.json | 0 .../tze204-ya4ft0w4-ts0601-0x0000004a.json | 0 .../{devices => legacy_devices}/tze204-yjjdcqsq-ts0601.json | 0 .../tze204-yvx5lh6k-ts0601-0x0000004a.json | 0 .../{devices => legacy_devices}/tze204-zenj4lxv-ts0601.json | 0 .../tze204-ztqnh5cg-ts0601-0x0000004a.json | 0 .../{devices => legacy_devices}/tze204-zxkwaztm-ts0601.json | 0 .../tze20c-xbexmf8h-ts130f-0x00000040.json | 0 .../tze20c-zka46xbw-ts0601-0x00000051.json | 0 .../{devices => legacy_devices}/tze284-0zaf1cr8-ts0601.json | 0 .../tze284-2gi1hy8s-ts0601-0x00000050.json | 0 .../tze284-6ycgarab-ts0601-0x00000050.json | 0 .../tze284-a2xewxoo-ts0601-0x0000004e.json | 0 .../tze284-aao3yzhs-ts0601-0x0000004d.json | 0 .../{devices => legacy_devices}/tze284-aao3yzhs-ts0601.json | 0 .../tze284-c6wv4xyo-ts0601-0x0000004d.json | 0 .../{devices => legacy_devices}/tze284-cjbofhxw-ts0601.json | 0 .../tze284-dmckrsxg-ts0601-0x0000004e.json | 0 .../tze284-f5efvtbv-ts0601-0x0000004e.json | 0 .../{devices => legacy_devices}/tze284-fhvpaltk-ts0601.json | 0 .../{devices => legacy_devices}/tze284-fzo2pocs-ts0601.json | 0 .../tze284-g2e6cpnw-ts0601-0x0000004d.json | 0 .../tze284-iadro9bf-ts0601-0x0000004e.json | 0 .../tze284-idvyees9-ts0601-0x0000004e.json | 0 .../tze284-kyyu8rbj-ts0601-0x0000004d.json | 0 .../tze284-l8xiyymq-ts0601-0x0000004a.json | 0 .../tze284-ltwbm23f-ts0601-0x0000004d.json | 0 .../tze284-myd45weu-ts0601-0x0000004d.json | 0 .../{devices => legacy_devices}/tze284-ne4pikwm-ts0601.json | 0 .../tze284-nklqjk62-ts0601-0x0000004e.json | 0 .../tze284-nnhwcvbk-ts0601-0x0000004d.json | 0 .../tze284-o3x45p96-ts0601-0x0000004d.json | 0 .../tze284-o9ofysmo-ts0601-0x00000050.json | 0 .../tze284-ogx8u5z6-ts0601-0x0000004d.json | 0 .../tze284-oitavov2-ts0601-0x00000050.json | 0 .../tze284-pcdmj88b-ts0601-0x0000004d.json | 0 .../tze284-qyflbnbj-ts0601-0x0000004d.json | 0 .../tze284-rjxqso4a-ts0601-0x0000004d.json | 0 .../tze284-rlytpmij-ts0601-0x00000051.json | 0 .../{devices => legacy_devices}/tze284-rqcuwlsa-ts0601.json | 0 .../tze284-sgabhwa6-ts0601-0x0000004d.json | 0 .../tze284-upagmta9-ts0601-0x0000004d.json | 0 .../tze284-vawy74yh-ts0601-0x0000004d.json | 0 .../tze284-vuwtqx0t-ts0601-0x00000050.json | 0 .../tze284-wtikaxzs-ts0601-0x0000004d.json | 0 .../tze284-zjhoqbrd-ts0601-0x0000004d.json | 0 .../tze284-zm8zpwas-ts0601-0x00000050.json | 0 .../{devices => legacy_devices}/tze600-iypcp4py-ts0105.json | 0 .../tze608-c75zqghm-ts0603-0x00000040.json | 0 .../uiot-uiot-windowcovring2-0402.json | 0 .../{devices => legacy_devices}/unk-manufacturer-unk-model.json | 0 tests/data/{devices => legacy_devices}/visonic-mct-340-sma.json | 0 .../data/{devices => legacy_devices}/xyzroe-diy-zintercom.json | 0 tests/data/{devices => legacy_devices}/zbeacon-ts0001.json | 0 tests/data/{devices => legacy_devices}/zbeacon-ts0505.json | 0 .../zehnder-group-vaux-andigny-alcantara2-d1-00p1-02z1-00.json | 0 .../zemismart-spm02-3z3-0x0000000e.json | 0 .../zen-within-zen-01-0x0000021f.json | 0 498 files changed, 1 insertion(+), 1 deletion(-) rename tests/data/{devices => legacy_devices}/adeo-sin-4-fp-21-equ.json (100%) rename tests/data/{devices => legacy_devices}/adeo-zb-watersensor-d0001-0x21120002.json (100%) rename tests/data/{devices => legacy_devices}/adurosmart-eria-adurolight-csc.json (100%) rename tests/data/{devices => legacy_devices}/aeotec-zga004.json (100%) rename tests/data/{devices => legacy_devices}/alab-alab-co2-1-1.json (100%) rename tests/data/{devices => legacy_devices}/aqara-lumi-airrtc-aeu001-0x00000a1a.json (100%) rename tests/data/{devices => legacy_devices}/aqara-lumi-airrtc-aeu005-0x00001227.json (100%) rename tests/data/{devices => legacy_devices}/aqara-lumi-curtain-acn04.json (100%) rename tests/data/{devices => legacy_devices}/aqara-lumi-light-acn132-0x00001a1a.json (100%) rename tests/data/{devices => legacy_devices}/aqara-lumi-light-agl003-0x0000001b.json (100%) rename tests/data/{devices => legacy_devices}/aqara-lumi-light-agl005-0x0000001b.json (100%) rename tests/data/{devices => legacy_devices}/aqara-lumi-sensor-occupy-agl1-0x0000001a.json (100%) rename tests/data/{devices => legacy_devices}/aqara-lumi-sensor-occupy-agl8-0x00003422.json (100%) rename tests/data/{devices => legacy_devices}/aqara-lumi-switch-aeu003-0x00000e14.json (100%) rename tests/data/{devices => legacy_devices}/aqara-lumi-switch-agl010-0x00001315.json (100%) rename tests/data/{devices => legacy_devices}/atlantic-group-adapter-zigbee-fujitsu.json (100%) rename tests/data/{devices => legacy_devices}/aurora-doublesocket50au.json (100%) rename tests/data/{devices => legacy_devices}/awox-ercu-ws-zm.json (100%) rename tests/data/{devices => legacy_devices}/awox-esmlfzm-w6-dimm.json (100%) rename tests/data/{devices => legacy_devices}/bitron-video-902010-24a.json (100%) rename tests/data/{devices => legacy_devices}/bituo-technik-spm01x001.json (100%) rename tests/data/{devices => legacy_devices}/bosch-rbsh-mms-zb-eu-0x11136760.json (100%) rename tests/data/{devices => legacy_devices}/bosch-rbsh-rth0-bat-zb-eu-0x02086a30.json (100%) rename tests/data/{devices => legacy_devices}/bosch-rbsh-rth0-zb-eu-0x03036a30.json (100%) rename tests/data/{devices => legacy_devices}/bosch-rbsh-trv0-zb-eu-0x32051514.json (100%) rename tests/data/{devices => legacy_devices}/bosch-rbsh-us4btn-zb-eu-0x100d6a30.json (100%) rename tests/data/{devices => legacy_devices}/busch-jaeger-rb01.json (100%) rename tests/data/{devices => legacy_devices}/candeo-c-zb-lc20-dim-0x29013001.json (100%) rename tests/data/{devices => legacy_devices}/candeo-c-zb-lc20-rgb-0x31013001.json (100%) rename tests/data/{devices => legacy_devices}/centralite-3300-0x1f075310.json (100%) rename tests/data/{devices => legacy_devices}/computime-slr2b.json (100%) rename tests/data/{devices => legacy_devices}/d5x84yu-et093wrg.json (100%) rename tests/data/{devices => legacy_devices}/danfoss-0x8040.json (100%) rename tests/data/{devices => legacy_devices}/danfoss-etrv0103-0x00000014.json (100%) rename tests/data/{devices => legacy_devices}/datek-pop.json (100%) rename tests/data/{devices => legacy_devices}/datek-ssds.json (100%) rename tests/data/{devices => legacy_devices}/develco-products-a-s-zhemi-zigbee-external-meter-interface.json (100%) rename tests/data/{devices => legacy_devices}/ecodim-bv-eco-dim-05-zigbee-0x00000001.json (100%) rename tests/data/{devices => legacy_devices}/ecodim-bv-ecodim-zigbee-3-0.json (100%) rename tests/data/{devices => legacy_devices}/enktro-acmidea.json (100%) rename tests/data/{devices => legacy_devices}/espressif-zigbeeanalogdevice.json (100%) rename tests/data/{devices => legacy_devices}/eurotronic-spzb0001-0x4501001f.json (100%) rename tests/data/{devices => legacy_devices}/ewelink-ck-bl702-al-01-7009-z102lg03-1-0x00001203.json (100%) rename tests/data/{devices => legacy_devices}/ewelink-ck-tlsr8656-ss5-01-7000-0x00001102.json (100%) rename tests/data/{devices => legacy_devices}/ewelink-ds01.json (100%) rename tests/data/{devices => legacy_devices}/ewelink-ms01.json (100%) rename tests/data/{devices => legacy_devices}/ewelink-snzb-01p-0x00002200.json (100%) rename tests/data/{devices => legacy_devices}/ewelink-snzb-03p-0x00002201.json (100%) rename tests/data/{devices => legacy_devices}/ewelink-snzb-04p-0x00002200.json (100%) rename tests/data/{devices => legacy_devices}/ewelink-th01.json (100%) rename tests/data/{devices => legacy_devices}/ewelink-wb01.json (100%) rename tests/data/{devices => legacy_devices}/ewelink-zb-sw01.json (100%) rename tests/data/{devices => legacy_devices}/ezviz-cs-t55-r100-g-0x00000002.json (100%) rename tests/data/{devices => legacy_devices}/frient-a-s-aqszb-110-0x00040001.json (100%) rename tests/data/{devices => legacy_devices}/frient-a-s-emizb-141-0x00030102.json (100%) rename tests/data/{devices => legacy_devices}/frient-a-s-kepzb-110-0x0001060a.json (100%) rename tests/data/{devices => legacy_devices}/frient-a-s-kepzb-110-0x00020005.json (100%) rename tests/data/{devices => legacy_devices}/frient-a-s-moszb-140-0x00040006.json (100%) rename tests/data/{devices => legacy_devices}/frient-a-s-smszb-120.json (100%) rename tests/data/{devices => legacy_devices}/generic-zigbee-coordinator-ezsp.json (100%) rename tests/data/{devices => legacy_devices}/gledopto-gl-b-008z.json (100%) rename tests/data/{devices => legacy_devices}/gledopto-gl-c-009p-0x29013001.json (100%) rename tests/data/{devices => legacy_devices}/gledpopto-gl-c-007p.json (100%) rename tests/data/{devices => legacy_devices}/handshake-finland-agge-zigbee-smart-rotary-dimmer-0x00000002.json (100%) rename tests/data/{devices => legacy_devices}/hive-mbr1-0x01047320.json (100%) rename tests/data/{devices => legacy_devices}/hobeian-zg-101zl.json (100%) rename tests/data/{devices => legacy_devices}/hobeian-zg-102zm.json (100%) rename tests/data/{devices => legacy_devices}/hobeian-zg-204zv.json (100%) rename tests/data/{devices => legacy_devices}/horn-zone-haier-hs-22zw-0000011216.json (100%) rename tests/data/{devices => legacy_devices}/ikea-of-sweden-badring-water-leakage-sensor-0x01000007.json (100%) rename tests/data/{devices => legacy_devices}/ikea-of-sweden-ormanas-led-strip-0x01010010.json (100%) rename tests/data/{devices => legacy_devices}/ikea-of-sweden-parasoll-door-window-sensor-0x01000019.json (100%) rename tests/data/{devices => legacy_devices}/ikea-of-sweden-remote-control-n2.json (100%) rename tests/data/{devices => legacy_devices}/ikea-of-sweden-tradfri-bulb-e14-ws-globe-470lm-0x01010020.json (100%) rename tests/data/{devices => legacy_devices}/ikea-of-sweden-tradfri-bulb-e27-ws-globe-1055lm-0x02040005.json (100%) rename tests/data/{devices => legacy_devices}/ikea-of-sweden-tradfri-bulb-e27-ww-g95-cl-470lm-0x00011006.json (100%) rename tests/data/{devices => legacy_devices}/ikea-of-sweden-tradfri-bulb-gu10-ww-345lm8.json (100%) rename tests/data/{devices => legacy_devices}/ikea-of-sweden-tradfri-motion-sensor.json (100%) rename tests/data/{devices => legacy_devices}/ikea-of-sweden-tradfri-shortcut-button.json (100%) rename tests/data/{devices => legacy_devices}/imagic-by-greatstar-1112-s.json (100%) rename tests/data/{devices => legacy_devices}/innr-rs-232-c-0x22151511.json (100%) rename tests/data/{devices => legacy_devices}/innr-sp-240-0x191e3685.json (100%) rename tests/data/{devices => legacy_devices}/innr-sp-242-0x17173685.json (100%) rename tests/data/{devices => legacy_devices}/lds-zb-onoffplug-d0005-0x21186230.json (100%) rename tests/data/{devices => legacy_devices}/ledvance-a60s-rgbw-0x02146550.json (100%) rename tests/data/{devices => legacy_devices}/legrand-contactor.json (100%) rename tests/data/{devices => legacy_devices}/legrand-double-gangs-remote-switch.json (100%) rename tests/data/{devices => legacy_devices}/legrand-light-switch-with-neutral-0x001c4203.json (100%) rename tests/data/{devices => legacy_devices}/legrand-light-switch-with-neutral.json (100%) rename tests/data/{devices => legacy_devices}/legrand-mobile-outlet-0x006545ff.json (100%) rename tests/data/{devices => legacy_devices}/lumi-lumi-airrtc-agl001-0x0000001e.json (100%) rename tests/data/{devices => legacy_devices}/lumi-lumi-ctrl-neutral2.json (100%) rename tests/data/{devices => legacy_devices}/lumi-lumi-curtain-acn002-0x00000e1f.json (100%) rename tests/data/{devices => legacy_devices}/lumi-lumi-curtain-acn003.json (100%) rename tests/data/{devices => legacy_devices}/lumi-lumi-curtain-hagl04.json (100%) rename tests/data/{devices => legacy_devices}/lumi-lumi-motion-agl04-0x00000019.json (100%) rename tests/data/{devices => legacy_devices}/lumi-lumi-plug-maeu01.json (100%) rename tests/data/{devices => legacy_devices}/lumi-lumi-remote-cagl02.json (100%) rename tests/data/{devices => legacy_devices}/lumi-lumi-sensor-switch-aq2.json (100%) rename tests/data/{devices => legacy_devices}/lumi-lumi-switch-b1lacn02.json (100%) rename tests/data/{devices => legacy_devices}/lumi-lumi-switch-b2naus01.json (100%) rename tests/data/{devices => legacy_devices}/lumi-lumi-switch-b2nc01.json (100%) rename tests/data/{devices => legacy_devices}/lumi-lumi-switch-l1aeu1-0x00000e0b.json (100%) rename tests/data/{devices => legacy_devices}/lumi-lumi-switch-l2aeu1-0x00000e0b.json (100%) rename tests/data/{devices => legacy_devices}/lumi-lumi-switch-n1aeu1.json (100%) rename tests/data/{devices => legacy_devices}/mli-tint-extendedcolor-0x10012001.json (100%) rename tests/data/{devices => legacy_devices}/nabu-casa-ha-connect-zbt-1.json (100%) rename tests/data/{devices => legacy_devices}/namron-as-1402790.json (100%) rename tests/data/{devices => legacy_devices}/namron-as-4512785-0x0000000e.json (100%) rename tests/data/{devices => legacy_devices}/neuhaus-lighting-group-nlg-remote.json (100%) rename tests/data/{devices => legacy_devices}/niko-nv-battery-switch-2-button.json (100%) rename tests/data/{devices => legacy_devices}/niko-nv-battery-switch-4-button-0x21046760.json (100%) rename tests/data/{devices => legacy_devices}/niko-nv-connectable-motor-control-3a-0x21160006.json (100%) rename tests/data/{devices => legacy_devices}/nodon-sin-4-fp-21.json (100%) rename tests/data/{devices => legacy_devices}/occam-temp-sensor-v1-2-jan-19-2026.json (100%) rename tests/data/{devices => legacy_devices}/orvibo-250bccf66c41421b91b5e3242942c164.json (100%) rename tests/data/{devices => legacy_devices}/ou-rui-bo-cf31218e11c547179c9c9ade6a492799.json (100%) rename tests/data/{devices => legacy_devices}/paulmann-licht-gmbh-501-34.json (100%) rename tests/data/{devices => legacy_devices}/philips-lct026.json (100%) rename tests/data/{devices => legacy_devices}/philips-lst002-0x01001700.json (100%) rename tests/data/{devices => legacy_devices}/ptvo-info-ptvo-switch.json (100%) rename tests/data/{devices => legacy_devices}/samjin-water.json (100%) rename tests/data/{devices => legacy_devices}/schneider-electric-eko07259-0x01001d00.json (100%) rename tests/data/{devices => legacy_devices}/schneider-electric-evsckt-outlet-1-0x020a00ff.json (100%) rename tests/data/{devices => legacy_devices}/schneider-electric-lk-dimmer.json (100%) rename tests/data/{devices => legacy_devices}/schneider-electric-nhmotion-unidim-1-0x020b0fff.json (100%) rename tests/data/{devices => legacy_devices}/schneider-electric-puck-dimmer-1.json (100%) rename tests/data/{devices => legacy_devices}/schneider-electric-puck-shutter-1-0x020c02ff.json (100%) rename tests/data/{devices => legacy_devices}/schneider-electric-s520619-0x01003500.json (100%) rename tests/data/{devices => legacy_devices}/sercomm-corp-sz-esw01-au.json (100%) rename tests/data/{devices => legacy_devices}/shelly-2pm.json (100%) rename tests/data/{devices => legacy_devices}/shelly-ecowitt-ws90.json (100%) rename tests/data/{devices => legacy_devices}/shelly-mini1pm.json (100%) rename tests/data/{devices => legacy_devices}/shyugj-dimmer-switch-zb3-0.json (100%) rename tests/data/{devices => legacy_devices}/signify-netherlands-b-v-lca001-0x01002802.json (100%) rename tests/data/{devices => legacy_devices}/signify-netherlands-b-v-rdm004.json (100%) rename tests/data/{devices => legacy_devices}/sinope-technologies-va4220zb.json (100%) rename tests/data/{devices => legacy_devices}/smarthjemmet-dk-quad-zig-sw.json (100%) rename tests/data/{devices => legacy_devices}/smarthjemmet-dk-quad-zig-sw2.json (100%) rename tests/data/{devices => legacy_devices}/smartthings-multiv4-0x0000001b.json (100%) rename tests/data/{devices => legacy_devices}/somfy-sonesse-28-wf-li-ion-roller-0x4100e158.json (100%) rename tests/data/{devices => legacy_devices}/sonoff-basiczbr3.json (100%) rename tests/data/{devices => legacy_devices}/sonoff-dongle-e-r.json (100%) rename tests/data/{devices => legacy_devices}/sonoff-mini-zbrbs-0x00001005.json (100%) rename tests/data/{devices => legacy_devices}/sonoff-s26r2zb-0x00002000.json (100%) rename tests/data/{devices => legacy_devices}/sonoff-s60zbtpg-0x00001002.json (100%) rename tests/data/{devices => legacy_devices}/sonoff-swv-0x00001002.json (100%) rename tests/data/{devices => legacy_devices}/sonoff-swv-0x00001003.json (100%) rename tests/data/{devices => legacy_devices}/sonoff-trvzb-0x00001201.json (100%) rename tests/data/{devices => legacy_devices}/sonoff-trvzb-0x00001400.json (100%) rename tests/data/{devices => legacy_devices}/sonoff-trvzb-0x00001401.json (100%) rename tests/data/{devices => legacy_devices}/sonoff-zbminil2-0x0000100e.json (100%) rename tests/data/{devices => legacy_devices}/sonoff-zbminir2-0x00001004.json (100%) rename tests/data/{devices => legacy_devices}/sunricher-on-off-2ch-0x00000004.json (100%) rename tests/data/{devices => legacy_devices}/texas-instruments-cc2652.json (100%) rename tests/data/{devices => legacy_devices}/texas-instruments-coordinator.json (100%) rename tests/data/{devices => legacy_devices}/tyst11-czk78ptr-zk78ptr.json (100%) rename tests/data/{devices => legacy_devices}/tyzb01-8scntis1-ts0216.json (100%) rename tests/data/{devices => legacy_devices}/tyzb01-mtunwanm-ts011f.json (100%) rename tests/data/{devices => legacy_devices}/tyzb01-qm6djpta-ts0215-0x00000046.json (100%) rename tests/data/{devices => legacy_devices}/tz2000-k4yr34vv-sm0301.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-09gto2zn-ts0013.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-1o6x1bl0-ts0201-0x00000041.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-2putqrmw-ts011f.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-2xlvlnez-ts011f.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-3ias4w4o-ts011f-0x0000004e.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-5e235jpa-ts0042.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-5fkufhn1-ts0502a.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-5ity3zyu-ts0121.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-8nyaanzb-ts011f.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-a37eix1s-ts0004.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-a9buwvb7-ts0726.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-adkvzooy-ts0042.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-aghwaexm-ts0001.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-bgsigers-ts0201-0x00000040.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-bjawzodf-ty0201.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-cehuw1lw-ts011f-0x0000004d.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-cicwjqth-ts011f-0x74013001.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-dbou1ap4-ts0505a.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-dowj6gyi-ts0201.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-e2uieqop-ts0001.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-eamtuojw-ts0201-0x00000041.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-empogkya-ts0003.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-fdxihpp7-ts0001.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-gbm10jnj-ts0043-0x00000042.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-gjpgagal-ts0049-0x00000049.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-gjrubzje-ts0001.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-hafsqare-ts0011-0x00000050.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-isw9u95y-ts0201-0x00000040.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-j1xl73iw-ts130f-0x00000046.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-kmsbwdol-ts130f.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-kqvb5akv-ts0001-0x0000004a.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-lf56vpxj-ts0202.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-llfaquvp-ts0012.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-lotmgthb-ts011f.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-lrgccsxm-ts0013.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-ltiqubue-ts130f.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-mg4dy6z6-ts0202.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-mgusv51k-ts0052-0x00000044.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-mkhkxx1p-ts0001-0x00000048.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-mugyhz0q-ts0207-0x00000041.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-npzfdcof-ts0001.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-o4mkahkc-ts0202-0x00000046.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-pl5v1yyy-ts011f-0x00000050.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-qa8s8vca-ts130f.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-qqdbccb3-ts130f.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-rbl8c85w-ts0012.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-snq47izk-ts0013.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-tgddllx4-ts0001.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-u3oupgdy-ts0004-0x00000050.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-u4kojtqz-ts0002-0x10013607.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-vw8pawxa-ts130f-0x00000048.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-w0qqde0g-ts011f.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-wcgyhnp3-ts0222-0x00000045.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-wkai4ga5-ts0044.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-wkr3jqmr-ts0004.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-xa9g7rxs-ts1002.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-xabckq1v-ts004f.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-xkap8wtb-ts000f.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-xr3htd96-ts0201.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-xxacnuab-ts0004.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-ynmowqk2-ts011f.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-zl1kmjqx-0x10013001.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-zl1kmjqx-ty0201.json (100%) rename tests/data/{devices => legacy_devices}/tz3000-zw7yf6yk-ts0001-0x00000048.json (100%) rename tests/data/{devices => legacy_devices}/tz3002-vaq2bfcu-ts0726-0x00000051.json (100%) rename tests/data/{devices => legacy_devices}/tz3040-bb6xaihh-ts0202-0x00000048.json (100%) rename tests/data/{devices => legacy_devices}/tz3210-09hzmirw-ts0502b-0x0000005b.json (100%) rename tests/data/{devices => legacy_devices}/tz3210-0jxeoadc-ts0049.json (100%) rename tests/data/{devices => legacy_devices}/tz3210-3mpwqzuu-ts110e-0x00000040.json (100%) rename tests/data/{devices => legacy_devices}/tz3210-3ulg9kpo-ts0021.json (100%) rename tests/data/{devices => legacy_devices}/tz3210-5rta89nj-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tz3210-bfwvfyx1-ts0505b.json (100%) rename tests/data/{devices => legacy_devices}/tz3210-comkuwws-ts0502b-0x00000065.json (100%) rename tests/data/{devices => legacy_devices}/tz3210-dwytrmda-ts130f-0x00000042.json (100%) rename tests/data/{devices => legacy_devices}/tz3210-ehcanwyc-ts0502b-0x00000065.json (100%) rename tests/data/{devices => legacy_devices}/tz3210-ekjc2rzh-ts0225.json (100%) rename tests/data/{devices => legacy_devices}/tz3210-hxtfthp5-ts0505b.json (100%) rename tests/data/{devices => legacy_devices}/tz3210-j4pdtz9v-ts0001-0x00000062.json (100%) rename tests/data/{devices => legacy_devices}/tz3210-k1msuvg6-ts110e-0x00000040.json (100%) rename tests/data/{devices => legacy_devices}/tz3210-kjafhwd2-ts0210-0x00000044.json (100%) rename tests/data/{devices => legacy_devices}/tz3210-klv2wul0-ts0505b-0x00000065.json (100%) rename tests/data/{devices => legacy_devices}/tz3210-ncw88jfq-ts0201-0x00000083.json (100%) rename tests/data/{devices => legacy_devices}/tz3210-qkj7rujp-ts0201-0x00000043.json (100%) rename tests/data/{devices => legacy_devices}/tz3210-r5afgmkl-ts0505b-0x10013607.json (100%) rename tests/data/{devices => legacy_devices}/tz3210-ru41azca-ts0049-0x00000040.json (100%) rename tests/data/{devices => legacy_devices}/tz3210-sb8x2xci-ts0001-0x00000047.json (100%) rename tests/data/{devices => legacy_devices}/tz3210-sixywxvy-ts0505b.json (100%) rename tests/data/{devices => legacy_devices}/tz3210-tgvtvdoc-ts0207-0x00000043.json (100%) rename tests/data/{devices => legacy_devices}/tz3210-u1dreag7-ts0502b-0x00000065.json (100%) rename tests/data/{devices => legacy_devices}/tz3210-ue9kyjnj-ts0502b-0x00000059.json (100%) rename tests/data/{devices => legacy_devices}/tz3210-umi6vbsz-ts0505b.json (100%) rename tests/data/{devices => legacy_devices}/tz3210-up3pngle-ts0205.json (100%) rename tests/data/{devices => legacy_devices}/tz3210-wuhzzfqg-ts0202-0x000000a1.json (100%) rename tests/data/{devices => legacy_devices}/tz3218-7fiyo3kv-ts000f-0x00000051.json (100%) rename tests/data/{devices => legacy_devices}/tz3218-awarhusb-ts0225.json (100%) rename tests/data/{devices => legacy_devices}/tz3218-ya5d6wth-ts000f-0x00000064.json (100%) rename tests/data/{devices => legacy_devices}/tz3290-7v1k4vufotpowp9z-ts1201.json (100%) rename tests/data/{devices => legacy_devices}/tz6210-duv6fhwt-ts0601-0x00000042.json (100%) rename tests/data/{devices => legacy_devices}/tzb210-417ikxay-ts0505b-0x00000040.json (100%) rename tests/data/{devices => legacy_devices}/tze200-1n2zev06-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-2aaelwxk-ts0225.json (100%) rename tests/data/{devices => legacy_devices}/tze200-2ekuz3dz-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-2gtsuokt-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-2se8efxh-ts0601-0x00000048.json (100%) rename tests/data/{devices => legacy_devices}/tze200-3t91nb6k-ts0601-0x00000046.json (100%) rename tests/data/{devices => legacy_devices}/tze200-3towulqd-ts0601-0x00000046.json (100%) rename tests/data/{devices => legacy_devices}/tze200-3ylew7b4-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-4utwozi2-ts0601-0x00000043.json (100%) rename tests/data/{devices => legacy_devices}/tze200-4wxtg5y9-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-68nvbio9-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-6rdj8dzm-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-7bztmfm1-ts0601-0x00000046.json (100%) rename tests/data/{devices => legacy_devices}/tze200-7ytb3h8u-ts0601-0x00000048.json (100%) rename tests/data/{devices => legacy_devices}/tze200-81isopgh-ts0601-0x00000048.json (100%) rename tests/data/{devices => legacy_devices}/tze200-86nbew0j-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-8whfphjv-ts0601-0x00000048.json (100%) rename tests/data/{devices => legacy_devices}/tze200-9xfjixap-ts0601-0x00000043.json (100%) rename tests/data/{devices => legacy_devices}/tze200-a0syesf5-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-a1dia7ml-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-a7sghmms-ts0601-0x00000048.json (100%) rename tests/data/{devices => legacy_devices}/tze200-a7sghmms-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-abatw3kj-ts0601-0x00000046.json (100%) rename tests/data/{devices => legacy_devices}/tze200-agumlajc-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-akjefhj5-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-aoclfnxz-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-bcusnqt8-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-bvrlmajk-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-byzdayie-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-c88teujp-ts0601-0x00000055.json (100%) rename tests/data/{devices => legacy_devices}/tze200-cirvgep4-ts0601-0x00000048.json (100%) rename tests/data/{devices => legacy_devices}/tze200-cpbo62rn-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-cpmgn2cf-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-crq3r3la-ck-bl702-mws-01-7016.json (100%) rename tests/data/{devices => legacy_devices}/tze200-dwcarsat-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-e5hpkc6d-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-eevqq1uv-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-ewxhg6o9-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-f1pvdgoh-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-fvldku9h-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-g9a3awaj-ts0601-0x00000048.json (100%) rename tests/data/{devices => legacy_devices}/tze200-gjldowol-ts0601-0x00000050.json (100%) rename tests/data/{devices => legacy_devices}/tze200-gkfbdvyx-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-gubdgai2-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-guvc7pdy-ts0601-0x00000046.json (100%) rename tests/data/{devices => legacy_devices}/tze200-h4cgnbzg-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-hhrtiq0x-ts0601-0x00000055.json (100%) rename tests/data/{devices => legacy_devices}/tze200-hl0ss9oa-ts0225.json (100%) rename tests/data/{devices => legacy_devices}/tze200-hr0tdd47-ts0601-0x00000048.json (100%) rename tests/data/{devices => legacy_devices}/tze200-iba1ckek-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-ijey4q29-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-iuk8kupi-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-js3mgbjb-ts0601-0x00000044.json (100%) rename tests/data/{devices => legacy_devices}/tze200-jva8ink8-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-kb5noeto-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-khozatfx-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-la2c2uo9-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-laqjm8qd-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-libht6ua-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-locansqn-ts0601-0x00000048.json (100%) rename tests/data/{devices => legacy_devices}/tze200-m9skfctm-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-mgxy2d9f-ts0601-0x00000043.json (100%) rename tests/data/{devices => legacy_devices}/tze200-mja3fuja-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-moycceze-ts0601-0x00000043.json (100%) rename tests/data/{devices => legacy_devices}/tze200-mz5y07w2-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-mzik0ov2-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-nklqjk62-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-nojsjtj2-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-npj9bug3-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-ntcy3xu1-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-ny94onlb-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-nyvavzbj-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-pay2byax-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-pl31aqf5-ts0601-0x00000046.json (100%) rename tests/data/{devices => legacy_devices}/tze200-pw7mji0l-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-qhlxve78-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-qrztc3ev-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-qyflbnbj-ts0601-0x00000046.json (100%) rename tests/data/{devices => legacy_devices}/tze200-r32ctezx-ts0601-0x00000046.json (100%) rename tests/data/{devices => legacy_devices}/tze200-rccxox8p-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-rk1wojce-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-rks0sgb7-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-rmymn92d-ts0601-0x00000046.json (100%) rename tests/data/{devices => legacy_devices}/tze200-rtrmfadk-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-rxq4iti9-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-s6hzw8g2-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-t1blo2bj-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-t6gq6nju-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-udank5zs-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-uf1qujxj-ts0601-0x00000048.json (100%) rename tests/data/{devices => legacy_devices}/tze200-v1jqz5cy-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-v9hkz2yn-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-viy9ihs7-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-vuqzj1ej-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-vvmbj46n-ts0601-0x00000048.json (100%) rename tests/data/{devices => legacy_devices}/tze200-wdfurkoa-ts0601-0x00000041.json (100%) rename tests/data/{devices => legacy_devices}/tze200-wfxuhoea-ts0601-0x00000046.json (100%) rename tests/data/{devices => legacy_devices}/tze200-wktrysab-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-wqashyqo-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-xu4a5rhj-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-ya4ft0w4-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-yia0p3tr-ts0601-0x00000046.json (100%) rename tests/data/{devices => legacy_devices}/tze200-yjjdcqsq-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-yojqa8xn-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-yvx5lh6k-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze200-yw7cahqs-ts0601-0x00000055.json (100%) rename tests/data/{devices => legacy_devices}/tze200-ztvwu4nk-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze204-1fuxihti-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze204-1youk3hj-ts0601-0x0000004a.json (100%) rename tests/data/{devices => legacy_devices}/tze204-4fblxpma-ts0601-0x00000049.json (100%) rename tests/data/{devices => legacy_devices}/tze204-5slehgeo-ts0601-0x0000004a.json (100%) rename tests/data/{devices => legacy_devices}/tze204-5toc8efa-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze204-7ytb3h8u-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze204-81yrt3lo-ts0601-0x0000004a.json (100%) rename tests/data/{devices => legacy_devices}/tze204-9yapgbuv-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze204-a2jcoyuk-ts0601-0x0000004a.json (100%) rename tests/data/{devices => legacy_devices}/tze204-ai4rqhky-ts0601-0x00000049.json (100%) rename tests/data/{devices => legacy_devices}/tze204-aoclfnxz-ts0601-0x0000004a.json (100%) rename tests/data/{devices => legacy_devices}/tze204-bkkmqmyo-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze204-c2fmom5z-ts0601-0x0000004a.json (100%) rename tests/data/{devices => legacy_devices}/tze204-chbyv06x-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze204-cirvgep4-ts0601-0x00000049.json (100%) rename tests/data/{devices => legacy_devices}/tze204-cjbofhxw-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze204-d6i25bwg-ts0601-0x0000004a.json (100%) rename tests/data/{devices => legacy_devices}/tze204-dtzziy1e-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze204-dwcarsat-ts0601-0x0000004a.json (100%) rename tests/data/{devices => legacy_devices}/tze204-ex3rcdha-ts0601-0x0000004a.json (100%) rename tests/data/{devices => legacy_devices}/tze204-fhvdgeuh-ts0601-0x0000004a.json (100%) rename tests/data/{devices => legacy_devices}/tze204-g2ki0ejr-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze204-goecjd1t-ts0601-0x0000004a.json (100%) rename tests/data/{devices => legacy_devices}/tze204-gops3slb-ts0601-0x0000004a.json (100%) rename tests/data/{devices => legacy_devices}/tze204-guvc7pdy-ts0601-0x0000004a.json (100%) rename tests/data/{devices => legacy_devices}/tze204-hlx9tnzb-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze204-iaeejhvf-ts0601-0x0000004a.json (100%) rename tests/data/{devices => legacy_devices}/tze204-ijxvkhd0-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze204-jrcfsaa3-ts0601-0x0000004a.json (100%) rename tests/data/{devices => legacy_devices}/tze204-k7mfgaen-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze204-kobbcyum-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze204-kyhbrfyl-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze204-l8xiyymq-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze204-lb0fsvba-ts0601-0x0000004a.json (100%) rename tests/data/{devices => legacy_devices}/tze204-lbbg34rj-ts0601-0x0000004a.json (100%) rename tests/data/{devices => legacy_devices}/tze204-lsanae15-ts0601-0x0000004a.json (100%) rename tests/data/{devices => legacy_devices}/tze204-ltwbm23f-ts0601-0x0000004e.json (100%) rename tests/data/{devices => legacy_devices}/tze204-lzriup1j-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze204-m64smti7-ts0601-0x0000004a.json (100%) rename tests/data/{devices => legacy_devices}/tze204-m9dzckna-ts0601-0x0000004a.json (100%) rename tests/data/{devices => legacy_devices}/tze204-mpbki2zm-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze204-mtoaryre-ts0601-0x0000004a.json (100%) rename tests/data/{devices => legacy_devices}/tze204-muvkrjr5-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze204-mwomyz5n-ts0601-0x0000004a.json (100%) rename tests/data/{devices => legacy_devices}/tze204-nbkshs6k-ts0601-0x0000004a.json (100%) rename tests/data/{devices => legacy_devices}/tze204-nklqjk62-ts0601-0x0000004a.json (100%) rename tests/data/{devices => legacy_devices}/tze204-nlrfgpny-ts0601-0x00000049.json (100%) rename tests/data/{devices => legacy_devices}/tze204-nvxorhcj-ts0601-0x0000004a.json (100%) rename tests/data/{devices => legacy_devices}/tze204-ogx8u5z6-ts0601-0x0000004a.json (100%) rename tests/data/{devices => legacy_devices}/tze204-p3lqqy2r-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze204-pcdmj88b-ts0601-0x00000049.json (100%) rename tests/data/{devices => legacy_devices}/tze204-pxbjch8m-ts0601-0x0000004a.json (100%) rename tests/data/{devices => legacy_devices}/tze204-qasjif9e-ts0601-0x0000004a.json (100%) rename tests/data/{devices => legacy_devices}/tze204-qtnjuoae-ts0601-0x00000049.json (100%) rename tests/data/{devices => legacy_devices}/tze204-qyr2m29i-ts0601-0x0000004a.json (100%) rename tests/data/{devices => legacy_devices}/tze204-r32ctezx-ts0601-0x0000004a.json (100%) rename tests/data/{devices => legacy_devices}/tze204-rhblgy0z-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze204-rtrmfadk-ts0601-0x00000049.json (100%) rename tests/data/{devices => legacy_devices}/tze204-rtrmfadk-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze204-sooucan5-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze204-srmahpwl-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze204-sxm7l9xa-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze204-tdhnhhiy-ts0601-0x0000004a.json (100%) rename tests/data/{devices => legacy_devices}/tze204-ue3rzddr-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze204-upagmta9-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze204-uxllnywp-ts0601-0x0000004a.json (100%) rename tests/data/{devices => legacy_devices}/tze204-w1wwxoja-ts0601-0x0000004a.json (100%) rename tests/data/{devices => legacy_devices}/tze204-wbhaespm-ts0601-0x0000004a.json (100%) rename tests/data/{devices => legacy_devices}/tze204-x8fp01wi-ts0601-0x0000004a.json (100%) rename tests/data/{devices => legacy_devices}/tze204-x9usygq1-ts0601-0x0000004a.json (100%) rename tests/data/{devices => legacy_devices}/tze204-xalsoe3m-ts0601-0x0000004a.json (100%) rename tests/data/{devices => legacy_devices}/tze204-xlppj4f5-ts0601-0x0000004a.json (100%) rename tests/data/{devices => legacy_devices}/tze204-xnbkhhdr-ts0601-0x0000004a.json (100%) rename tests/data/{devices => legacy_devices}/tze204-ya4ft0w4-ts0601-0x0000004a.json (100%) rename tests/data/{devices => legacy_devices}/tze204-yjjdcqsq-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze204-yvx5lh6k-ts0601-0x0000004a.json (100%) rename tests/data/{devices => legacy_devices}/tze204-zenj4lxv-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze204-ztqnh5cg-ts0601-0x0000004a.json (100%) rename tests/data/{devices => legacy_devices}/tze204-zxkwaztm-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze20c-xbexmf8h-ts130f-0x00000040.json (100%) rename tests/data/{devices => legacy_devices}/tze20c-zka46xbw-ts0601-0x00000051.json (100%) rename tests/data/{devices => legacy_devices}/tze284-0zaf1cr8-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze284-2gi1hy8s-ts0601-0x00000050.json (100%) rename tests/data/{devices => legacy_devices}/tze284-6ycgarab-ts0601-0x00000050.json (100%) rename tests/data/{devices => legacy_devices}/tze284-a2xewxoo-ts0601-0x0000004e.json (100%) rename tests/data/{devices => legacy_devices}/tze284-aao3yzhs-ts0601-0x0000004d.json (100%) rename tests/data/{devices => legacy_devices}/tze284-aao3yzhs-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze284-c6wv4xyo-ts0601-0x0000004d.json (100%) rename tests/data/{devices => legacy_devices}/tze284-cjbofhxw-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze284-dmckrsxg-ts0601-0x0000004e.json (100%) rename tests/data/{devices => legacy_devices}/tze284-f5efvtbv-ts0601-0x0000004e.json (100%) rename tests/data/{devices => legacy_devices}/tze284-fhvpaltk-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze284-fzo2pocs-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze284-g2e6cpnw-ts0601-0x0000004d.json (100%) rename tests/data/{devices => legacy_devices}/tze284-iadro9bf-ts0601-0x0000004e.json (100%) rename tests/data/{devices => legacy_devices}/tze284-idvyees9-ts0601-0x0000004e.json (100%) rename tests/data/{devices => legacy_devices}/tze284-kyyu8rbj-ts0601-0x0000004d.json (100%) rename tests/data/{devices => legacy_devices}/tze284-l8xiyymq-ts0601-0x0000004a.json (100%) rename tests/data/{devices => legacy_devices}/tze284-ltwbm23f-ts0601-0x0000004d.json (100%) rename tests/data/{devices => legacy_devices}/tze284-myd45weu-ts0601-0x0000004d.json (100%) rename tests/data/{devices => legacy_devices}/tze284-ne4pikwm-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze284-nklqjk62-ts0601-0x0000004e.json (100%) rename tests/data/{devices => legacy_devices}/tze284-nnhwcvbk-ts0601-0x0000004d.json (100%) rename tests/data/{devices => legacy_devices}/tze284-o3x45p96-ts0601-0x0000004d.json (100%) rename tests/data/{devices => legacy_devices}/tze284-o9ofysmo-ts0601-0x00000050.json (100%) rename tests/data/{devices => legacy_devices}/tze284-ogx8u5z6-ts0601-0x0000004d.json (100%) rename tests/data/{devices => legacy_devices}/tze284-oitavov2-ts0601-0x00000050.json (100%) rename tests/data/{devices => legacy_devices}/tze284-pcdmj88b-ts0601-0x0000004d.json (100%) rename tests/data/{devices => legacy_devices}/tze284-qyflbnbj-ts0601-0x0000004d.json (100%) rename tests/data/{devices => legacy_devices}/tze284-rjxqso4a-ts0601-0x0000004d.json (100%) rename tests/data/{devices => legacy_devices}/tze284-rlytpmij-ts0601-0x00000051.json (100%) rename tests/data/{devices => legacy_devices}/tze284-rqcuwlsa-ts0601.json (100%) rename tests/data/{devices => legacy_devices}/tze284-sgabhwa6-ts0601-0x0000004d.json (100%) rename tests/data/{devices => legacy_devices}/tze284-upagmta9-ts0601-0x0000004d.json (100%) rename tests/data/{devices => legacy_devices}/tze284-vawy74yh-ts0601-0x0000004d.json (100%) rename tests/data/{devices => legacy_devices}/tze284-vuwtqx0t-ts0601-0x00000050.json (100%) rename tests/data/{devices => legacy_devices}/tze284-wtikaxzs-ts0601-0x0000004d.json (100%) rename tests/data/{devices => legacy_devices}/tze284-zjhoqbrd-ts0601-0x0000004d.json (100%) rename tests/data/{devices => legacy_devices}/tze284-zm8zpwas-ts0601-0x00000050.json (100%) rename tests/data/{devices => legacy_devices}/tze600-iypcp4py-ts0105.json (100%) rename tests/data/{devices => legacy_devices}/tze608-c75zqghm-ts0603-0x00000040.json (100%) rename tests/data/{devices => legacy_devices}/uiot-uiot-windowcovring2-0402.json (100%) rename tests/data/{devices => legacy_devices}/unk-manufacturer-unk-model.json (100%) rename tests/data/{devices => legacy_devices}/visonic-mct-340-sma.json (100%) rename tests/data/{devices => legacy_devices}/xyzroe-diy-zintercom.json (100%) rename tests/data/{devices => legacy_devices}/zbeacon-ts0001.json (100%) rename tests/data/{devices => legacy_devices}/zbeacon-ts0505.json (100%) rename tests/data/{devices => legacy_devices}/zehnder-group-vaux-andigny-alcantara2-d1-00p1-02z1-00.json (100%) rename tests/data/{devices => legacy_devices}/zemismart-spm02-3z3-0x0000000e.json (100%) rename tests/data/{devices => legacy_devices}/zen-within-zen-01-0x0000021f.json (100%) diff --git a/pyproject.toml b/pyproject.toml index c55de25bb..6c3588a30 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -69,7 +69,7 @@ default-groups = ["testing"] enabled = true [tool.codespell] -skip = ["tests/data/devices/*"] +skip = ["tests/data/*"] ignore-words-list = "hass, checkin" [tool.mypy] diff --git a/tests/data/devices/adeo-sin-4-fp-21-equ.json b/tests/data/legacy_devices/adeo-sin-4-fp-21-equ.json similarity index 100% rename from tests/data/devices/adeo-sin-4-fp-21-equ.json rename to tests/data/legacy_devices/adeo-sin-4-fp-21-equ.json diff --git a/tests/data/devices/adeo-zb-watersensor-d0001-0x21120002.json b/tests/data/legacy_devices/adeo-zb-watersensor-d0001-0x21120002.json similarity index 100% rename from tests/data/devices/adeo-zb-watersensor-d0001-0x21120002.json rename to tests/data/legacy_devices/adeo-zb-watersensor-d0001-0x21120002.json diff --git a/tests/data/devices/adurosmart-eria-adurolight-csc.json b/tests/data/legacy_devices/adurosmart-eria-adurolight-csc.json similarity index 100% rename from tests/data/devices/adurosmart-eria-adurolight-csc.json rename to tests/data/legacy_devices/adurosmart-eria-adurolight-csc.json diff --git a/tests/data/devices/aeotec-zga004.json b/tests/data/legacy_devices/aeotec-zga004.json similarity index 100% rename from tests/data/devices/aeotec-zga004.json rename to tests/data/legacy_devices/aeotec-zga004.json diff --git a/tests/data/devices/alab-alab-co2-1-1.json b/tests/data/legacy_devices/alab-alab-co2-1-1.json similarity index 100% rename from tests/data/devices/alab-alab-co2-1-1.json rename to tests/data/legacy_devices/alab-alab-co2-1-1.json diff --git a/tests/data/devices/aqara-lumi-airrtc-aeu001-0x00000a1a.json b/tests/data/legacy_devices/aqara-lumi-airrtc-aeu001-0x00000a1a.json similarity index 100% rename from tests/data/devices/aqara-lumi-airrtc-aeu001-0x00000a1a.json rename to tests/data/legacy_devices/aqara-lumi-airrtc-aeu001-0x00000a1a.json diff --git a/tests/data/devices/aqara-lumi-airrtc-aeu005-0x00001227.json b/tests/data/legacy_devices/aqara-lumi-airrtc-aeu005-0x00001227.json similarity index 100% rename from tests/data/devices/aqara-lumi-airrtc-aeu005-0x00001227.json rename to tests/data/legacy_devices/aqara-lumi-airrtc-aeu005-0x00001227.json diff --git a/tests/data/devices/aqara-lumi-curtain-acn04.json b/tests/data/legacy_devices/aqara-lumi-curtain-acn04.json similarity index 100% rename from tests/data/devices/aqara-lumi-curtain-acn04.json rename to tests/data/legacy_devices/aqara-lumi-curtain-acn04.json diff --git a/tests/data/devices/aqara-lumi-light-acn132-0x00001a1a.json b/tests/data/legacy_devices/aqara-lumi-light-acn132-0x00001a1a.json similarity index 100% rename from tests/data/devices/aqara-lumi-light-acn132-0x00001a1a.json rename to tests/data/legacy_devices/aqara-lumi-light-acn132-0x00001a1a.json diff --git a/tests/data/devices/aqara-lumi-light-agl003-0x0000001b.json b/tests/data/legacy_devices/aqara-lumi-light-agl003-0x0000001b.json similarity index 100% rename from tests/data/devices/aqara-lumi-light-agl003-0x0000001b.json rename to tests/data/legacy_devices/aqara-lumi-light-agl003-0x0000001b.json diff --git a/tests/data/devices/aqara-lumi-light-agl005-0x0000001b.json b/tests/data/legacy_devices/aqara-lumi-light-agl005-0x0000001b.json similarity index 100% rename from tests/data/devices/aqara-lumi-light-agl005-0x0000001b.json rename to tests/data/legacy_devices/aqara-lumi-light-agl005-0x0000001b.json diff --git a/tests/data/devices/aqara-lumi-sensor-occupy-agl1-0x0000001a.json b/tests/data/legacy_devices/aqara-lumi-sensor-occupy-agl1-0x0000001a.json similarity index 100% rename from tests/data/devices/aqara-lumi-sensor-occupy-agl1-0x0000001a.json rename to tests/data/legacy_devices/aqara-lumi-sensor-occupy-agl1-0x0000001a.json diff --git a/tests/data/devices/aqara-lumi-sensor-occupy-agl8-0x00003422.json b/tests/data/legacy_devices/aqara-lumi-sensor-occupy-agl8-0x00003422.json similarity index 100% rename from tests/data/devices/aqara-lumi-sensor-occupy-agl8-0x00003422.json rename to tests/data/legacy_devices/aqara-lumi-sensor-occupy-agl8-0x00003422.json diff --git a/tests/data/devices/aqara-lumi-switch-aeu003-0x00000e14.json b/tests/data/legacy_devices/aqara-lumi-switch-aeu003-0x00000e14.json similarity index 100% rename from tests/data/devices/aqara-lumi-switch-aeu003-0x00000e14.json rename to tests/data/legacy_devices/aqara-lumi-switch-aeu003-0x00000e14.json diff --git a/tests/data/devices/aqara-lumi-switch-agl010-0x00001315.json b/tests/data/legacy_devices/aqara-lumi-switch-agl010-0x00001315.json similarity index 100% rename from tests/data/devices/aqara-lumi-switch-agl010-0x00001315.json rename to tests/data/legacy_devices/aqara-lumi-switch-agl010-0x00001315.json diff --git a/tests/data/devices/atlantic-group-adapter-zigbee-fujitsu.json b/tests/data/legacy_devices/atlantic-group-adapter-zigbee-fujitsu.json similarity index 100% rename from tests/data/devices/atlantic-group-adapter-zigbee-fujitsu.json rename to tests/data/legacy_devices/atlantic-group-adapter-zigbee-fujitsu.json diff --git a/tests/data/devices/aurora-doublesocket50au.json b/tests/data/legacy_devices/aurora-doublesocket50au.json similarity index 100% rename from tests/data/devices/aurora-doublesocket50au.json rename to tests/data/legacy_devices/aurora-doublesocket50au.json diff --git a/tests/data/devices/awox-ercu-ws-zm.json b/tests/data/legacy_devices/awox-ercu-ws-zm.json similarity index 100% rename from tests/data/devices/awox-ercu-ws-zm.json rename to tests/data/legacy_devices/awox-ercu-ws-zm.json diff --git a/tests/data/devices/awox-esmlfzm-w6-dimm.json b/tests/data/legacy_devices/awox-esmlfzm-w6-dimm.json similarity index 100% rename from tests/data/devices/awox-esmlfzm-w6-dimm.json rename to tests/data/legacy_devices/awox-esmlfzm-w6-dimm.json diff --git a/tests/data/devices/bitron-video-902010-24a.json b/tests/data/legacy_devices/bitron-video-902010-24a.json similarity index 100% rename from tests/data/devices/bitron-video-902010-24a.json rename to tests/data/legacy_devices/bitron-video-902010-24a.json diff --git a/tests/data/devices/bituo-technik-spm01x001.json b/tests/data/legacy_devices/bituo-technik-spm01x001.json similarity index 100% rename from tests/data/devices/bituo-technik-spm01x001.json rename to tests/data/legacy_devices/bituo-technik-spm01x001.json diff --git a/tests/data/devices/bosch-rbsh-mms-zb-eu-0x11136760.json b/tests/data/legacy_devices/bosch-rbsh-mms-zb-eu-0x11136760.json similarity index 100% rename from tests/data/devices/bosch-rbsh-mms-zb-eu-0x11136760.json rename to tests/data/legacy_devices/bosch-rbsh-mms-zb-eu-0x11136760.json diff --git a/tests/data/devices/bosch-rbsh-rth0-bat-zb-eu-0x02086a30.json b/tests/data/legacy_devices/bosch-rbsh-rth0-bat-zb-eu-0x02086a30.json similarity index 100% rename from tests/data/devices/bosch-rbsh-rth0-bat-zb-eu-0x02086a30.json rename to tests/data/legacy_devices/bosch-rbsh-rth0-bat-zb-eu-0x02086a30.json diff --git a/tests/data/devices/bosch-rbsh-rth0-zb-eu-0x03036a30.json b/tests/data/legacy_devices/bosch-rbsh-rth0-zb-eu-0x03036a30.json similarity index 100% rename from tests/data/devices/bosch-rbsh-rth0-zb-eu-0x03036a30.json rename to tests/data/legacy_devices/bosch-rbsh-rth0-zb-eu-0x03036a30.json diff --git a/tests/data/devices/bosch-rbsh-trv0-zb-eu-0x32051514.json b/tests/data/legacy_devices/bosch-rbsh-trv0-zb-eu-0x32051514.json similarity index 100% rename from tests/data/devices/bosch-rbsh-trv0-zb-eu-0x32051514.json rename to tests/data/legacy_devices/bosch-rbsh-trv0-zb-eu-0x32051514.json diff --git a/tests/data/devices/bosch-rbsh-us4btn-zb-eu-0x100d6a30.json b/tests/data/legacy_devices/bosch-rbsh-us4btn-zb-eu-0x100d6a30.json similarity index 100% rename from tests/data/devices/bosch-rbsh-us4btn-zb-eu-0x100d6a30.json rename to tests/data/legacy_devices/bosch-rbsh-us4btn-zb-eu-0x100d6a30.json diff --git a/tests/data/devices/busch-jaeger-rb01.json b/tests/data/legacy_devices/busch-jaeger-rb01.json similarity index 100% rename from tests/data/devices/busch-jaeger-rb01.json rename to tests/data/legacy_devices/busch-jaeger-rb01.json diff --git a/tests/data/devices/candeo-c-zb-lc20-dim-0x29013001.json b/tests/data/legacy_devices/candeo-c-zb-lc20-dim-0x29013001.json similarity index 100% rename from tests/data/devices/candeo-c-zb-lc20-dim-0x29013001.json rename to tests/data/legacy_devices/candeo-c-zb-lc20-dim-0x29013001.json diff --git a/tests/data/devices/candeo-c-zb-lc20-rgb-0x31013001.json b/tests/data/legacy_devices/candeo-c-zb-lc20-rgb-0x31013001.json similarity index 100% rename from tests/data/devices/candeo-c-zb-lc20-rgb-0x31013001.json rename to tests/data/legacy_devices/candeo-c-zb-lc20-rgb-0x31013001.json diff --git a/tests/data/devices/centralite-3300-0x1f075310.json b/tests/data/legacy_devices/centralite-3300-0x1f075310.json similarity index 100% rename from tests/data/devices/centralite-3300-0x1f075310.json rename to tests/data/legacy_devices/centralite-3300-0x1f075310.json diff --git a/tests/data/devices/computime-slr2b.json b/tests/data/legacy_devices/computime-slr2b.json similarity index 100% rename from tests/data/devices/computime-slr2b.json rename to tests/data/legacy_devices/computime-slr2b.json diff --git a/tests/data/devices/d5x84yu-et093wrg.json b/tests/data/legacy_devices/d5x84yu-et093wrg.json similarity index 100% rename from tests/data/devices/d5x84yu-et093wrg.json rename to tests/data/legacy_devices/d5x84yu-et093wrg.json diff --git a/tests/data/devices/danfoss-0x8040.json b/tests/data/legacy_devices/danfoss-0x8040.json similarity index 100% rename from tests/data/devices/danfoss-0x8040.json rename to tests/data/legacy_devices/danfoss-0x8040.json diff --git a/tests/data/devices/danfoss-etrv0103-0x00000014.json b/tests/data/legacy_devices/danfoss-etrv0103-0x00000014.json similarity index 100% rename from tests/data/devices/danfoss-etrv0103-0x00000014.json rename to tests/data/legacy_devices/danfoss-etrv0103-0x00000014.json diff --git a/tests/data/devices/datek-pop.json b/tests/data/legacy_devices/datek-pop.json similarity index 100% rename from tests/data/devices/datek-pop.json rename to tests/data/legacy_devices/datek-pop.json diff --git a/tests/data/devices/datek-ssds.json b/tests/data/legacy_devices/datek-ssds.json similarity index 100% rename from tests/data/devices/datek-ssds.json rename to tests/data/legacy_devices/datek-ssds.json diff --git a/tests/data/devices/develco-products-a-s-zhemi-zigbee-external-meter-interface.json b/tests/data/legacy_devices/develco-products-a-s-zhemi-zigbee-external-meter-interface.json similarity index 100% rename from tests/data/devices/develco-products-a-s-zhemi-zigbee-external-meter-interface.json rename to tests/data/legacy_devices/develco-products-a-s-zhemi-zigbee-external-meter-interface.json diff --git a/tests/data/devices/ecodim-bv-eco-dim-05-zigbee-0x00000001.json b/tests/data/legacy_devices/ecodim-bv-eco-dim-05-zigbee-0x00000001.json similarity index 100% rename from tests/data/devices/ecodim-bv-eco-dim-05-zigbee-0x00000001.json rename to tests/data/legacy_devices/ecodim-bv-eco-dim-05-zigbee-0x00000001.json diff --git a/tests/data/devices/ecodim-bv-ecodim-zigbee-3-0.json b/tests/data/legacy_devices/ecodim-bv-ecodim-zigbee-3-0.json similarity index 100% rename from tests/data/devices/ecodim-bv-ecodim-zigbee-3-0.json rename to tests/data/legacy_devices/ecodim-bv-ecodim-zigbee-3-0.json diff --git a/tests/data/devices/enktro-acmidea.json b/tests/data/legacy_devices/enktro-acmidea.json similarity index 100% rename from tests/data/devices/enktro-acmidea.json rename to tests/data/legacy_devices/enktro-acmidea.json diff --git a/tests/data/devices/espressif-zigbeeanalogdevice.json b/tests/data/legacy_devices/espressif-zigbeeanalogdevice.json similarity index 100% rename from tests/data/devices/espressif-zigbeeanalogdevice.json rename to tests/data/legacy_devices/espressif-zigbeeanalogdevice.json diff --git a/tests/data/devices/eurotronic-spzb0001-0x4501001f.json b/tests/data/legacy_devices/eurotronic-spzb0001-0x4501001f.json similarity index 100% rename from tests/data/devices/eurotronic-spzb0001-0x4501001f.json rename to tests/data/legacy_devices/eurotronic-spzb0001-0x4501001f.json diff --git a/tests/data/devices/ewelink-ck-bl702-al-01-7009-z102lg03-1-0x00001203.json b/tests/data/legacy_devices/ewelink-ck-bl702-al-01-7009-z102lg03-1-0x00001203.json similarity index 100% rename from tests/data/devices/ewelink-ck-bl702-al-01-7009-z102lg03-1-0x00001203.json rename to tests/data/legacy_devices/ewelink-ck-bl702-al-01-7009-z102lg03-1-0x00001203.json diff --git a/tests/data/devices/ewelink-ck-tlsr8656-ss5-01-7000-0x00001102.json b/tests/data/legacy_devices/ewelink-ck-tlsr8656-ss5-01-7000-0x00001102.json similarity index 100% rename from tests/data/devices/ewelink-ck-tlsr8656-ss5-01-7000-0x00001102.json rename to tests/data/legacy_devices/ewelink-ck-tlsr8656-ss5-01-7000-0x00001102.json diff --git a/tests/data/devices/ewelink-ds01.json b/tests/data/legacy_devices/ewelink-ds01.json similarity index 100% rename from tests/data/devices/ewelink-ds01.json rename to tests/data/legacy_devices/ewelink-ds01.json diff --git a/tests/data/devices/ewelink-ms01.json b/tests/data/legacy_devices/ewelink-ms01.json similarity index 100% rename from tests/data/devices/ewelink-ms01.json rename to tests/data/legacy_devices/ewelink-ms01.json diff --git a/tests/data/devices/ewelink-snzb-01p-0x00002200.json b/tests/data/legacy_devices/ewelink-snzb-01p-0x00002200.json similarity index 100% rename from tests/data/devices/ewelink-snzb-01p-0x00002200.json rename to tests/data/legacy_devices/ewelink-snzb-01p-0x00002200.json diff --git a/tests/data/devices/ewelink-snzb-03p-0x00002201.json b/tests/data/legacy_devices/ewelink-snzb-03p-0x00002201.json similarity index 100% rename from tests/data/devices/ewelink-snzb-03p-0x00002201.json rename to tests/data/legacy_devices/ewelink-snzb-03p-0x00002201.json diff --git a/tests/data/devices/ewelink-snzb-04p-0x00002200.json b/tests/data/legacy_devices/ewelink-snzb-04p-0x00002200.json similarity index 100% rename from tests/data/devices/ewelink-snzb-04p-0x00002200.json rename to tests/data/legacy_devices/ewelink-snzb-04p-0x00002200.json diff --git a/tests/data/devices/ewelink-th01.json b/tests/data/legacy_devices/ewelink-th01.json similarity index 100% rename from tests/data/devices/ewelink-th01.json rename to tests/data/legacy_devices/ewelink-th01.json diff --git a/tests/data/devices/ewelink-wb01.json b/tests/data/legacy_devices/ewelink-wb01.json similarity index 100% rename from tests/data/devices/ewelink-wb01.json rename to tests/data/legacy_devices/ewelink-wb01.json diff --git a/tests/data/devices/ewelink-zb-sw01.json b/tests/data/legacy_devices/ewelink-zb-sw01.json similarity index 100% rename from tests/data/devices/ewelink-zb-sw01.json rename to tests/data/legacy_devices/ewelink-zb-sw01.json diff --git a/tests/data/devices/ezviz-cs-t55-r100-g-0x00000002.json b/tests/data/legacy_devices/ezviz-cs-t55-r100-g-0x00000002.json similarity index 100% rename from tests/data/devices/ezviz-cs-t55-r100-g-0x00000002.json rename to tests/data/legacy_devices/ezviz-cs-t55-r100-g-0x00000002.json diff --git a/tests/data/devices/frient-a-s-aqszb-110-0x00040001.json b/tests/data/legacy_devices/frient-a-s-aqszb-110-0x00040001.json similarity index 100% rename from tests/data/devices/frient-a-s-aqszb-110-0x00040001.json rename to tests/data/legacy_devices/frient-a-s-aqszb-110-0x00040001.json diff --git a/tests/data/devices/frient-a-s-emizb-141-0x00030102.json b/tests/data/legacy_devices/frient-a-s-emizb-141-0x00030102.json similarity index 100% rename from tests/data/devices/frient-a-s-emizb-141-0x00030102.json rename to tests/data/legacy_devices/frient-a-s-emizb-141-0x00030102.json diff --git a/tests/data/devices/frient-a-s-kepzb-110-0x0001060a.json b/tests/data/legacy_devices/frient-a-s-kepzb-110-0x0001060a.json similarity index 100% rename from tests/data/devices/frient-a-s-kepzb-110-0x0001060a.json rename to tests/data/legacy_devices/frient-a-s-kepzb-110-0x0001060a.json diff --git a/tests/data/devices/frient-a-s-kepzb-110-0x00020005.json b/tests/data/legacy_devices/frient-a-s-kepzb-110-0x00020005.json similarity index 100% rename from tests/data/devices/frient-a-s-kepzb-110-0x00020005.json rename to tests/data/legacy_devices/frient-a-s-kepzb-110-0x00020005.json diff --git a/tests/data/devices/frient-a-s-moszb-140-0x00040006.json b/tests/data/legacy_devices/frient-a-s-moszb-140-0x00040006.json similarity index 100% rename from tests/data/devices/frient-a-s-moszb-140-0x00040006.json rename to tests/data/legacy_devices/frient-a-s-moszb-140-0x00040006.json diff --git a/tests/data/devices/frient-a-s-smszb-120.json b/tests/data/legacy_devices/frient-a-s-smszb-120.json similarity index 100% rename from tests/data/devices/frient-a-s-smszb-120.json rename to tests/data/legacy_devices/frient-a-s-smszb-120.json diff --git a/tests/data/devices/generic-zigbee-coordinator-ezsp.json b/tests/data/legacy_devices/generic-zigbee-coordinator-ezsp.json similarity index 100% rename from tests/data/devices/generic-zigbee-coordinator-ezsp.json rename to tests/data/legacy_devices/generic-zigbee-coordinator-ezsp.json diff --git a/tests/data/devices/gledopto-gl-b-008z.json b/tests/data/legacy_devices/gledopto-gl-b-008z.json similarity index 100% rename from tests/data/devices/gledopto-gl-b-008z.json rename to tests/data/legacy_devices/gledopto-gl-b-008z.json diff --git a/tests/data/devices/gledopto-gl-c-009p-0x29013001.json b/tests/data/legacy_devices/gledopto-gl-c-009p-0x29013001.json similarity index 100% rename from tests/data/devices/gledopto-gl-c-009p-0x29013001.json rename to tests/data/legacy_devices/gledopto-gl-c-009p-0x29013001.json diff --git a/tests/data/devices/gledpopto-gl-c-007p.json b/tests/data/legacy_devices/gledpopto-gl-c-007p.json similarity index 100% rename from tests/data/devices/gledpopto-gl-c-007p.json rename to tests/data/legacy_devices/gledpopto-gl-c-007p.json diff --git a/tests/data/devices/handshake-finland-agge-zigbee-smart-rotary-dimmer-0x00000002.json b/tests/data/legacy_devices/handshake-finland-agge-zigbee-smart-rotary-dimmer-0x00000002.json similarity index 100% rename from tests/data/devices/handshake-finland-agge-zigbee-smart-rotary-dimmer-0x00000002.json rename to tests/data/legacy_devices/handshake-finland-agge-zigbee-smart-rotary-dimmer-0x00000002.json diff --git a/tests/data/devices/hive-mbr1-0x01047320.json b/tests/data/legacy_devices/hive-mbr1-0x01047320.json similarity index 100% rename from tests/data/devices/hive-mbr1-0x01047320.json rename to tests/data/legacy_devices/hive-mbr1-0x01047320.json diff --git a/tests/data/devices/hobeian-zg-101zl.json b/tests/data/legacy_devices/hobeian-zg-101zl.json similarity index 100% rename from tests/data/devices/hobeian-zg-101zl.json rename to tests/data/legacy_devices/hobeian-zg-101zl.json diff --git a/tests/data/devices/hobeian-zg-102zm.json b/tests/data/legacy_devices/hobeian-zg-102zm.json similarity index 100% rename from tests/data/devices/hobeian-zg-102zm.json rename to tests/data/legacy_devices/hobeian-zg-102zm.json diff --git a/tests/data/devices/hobeian-zg-204zv.json b/tests/data/legacy_devices/hobeian-zg-204zv.json similarity index 100% rename from tests/data/devices/hobeian-zg-204zv.json rename to tests/data/legacy_devices/hobeian-zg-204zv.json diff --git a/tests/data/devices/horn-zone-haier-hs-22zw-0000011216.json b/tests/data/legacy_devices/horn-zone-haier-hs-22zw-0000011216.json similarity index 100% rename from tests/data/devices/horn-zone-haier-hs-22zw-0000011216.json rename to tests/data/legacy_devices/horn-zone-haier-hs-22zw-0000011216.json diff --git a/tests/data/devices/ikea-of-sweden-badring-water-leakage-sensor-0x01000007.json b/tests/data/legacy_devices/ikea-of-sweden-badring-water-leakage-sensor-0x01000007.json similarity index 100% rename from tests/data/devices/ikea-of-sweden-badring-water-leakage-sensor-0x01000007.json rename to tests/data/legacy_devices/ikea-of-sweden-badring-water-leakage-sensor-0x01000007.json diff --git a/tests/data/devices/ikea-of-sweden-ormanas-led-strip-0x01010010.json b/tests/data/legacy_devices/ikea-of-sweden-ormanas-led-strip-0x01010010.json similarity index 100% rename from tests/data/devices/ikea-of-sweden-ormanas-led-strip-0x01010010.json rename to tests/data/legacy_devices/ikea-of-sweden-ormanas-led-strip-0x01010010.json diff --git a/tests/data/devices/ikea-of-sweden-parasoll-door-window-sensor-0x01000019.json b/tests/data/legacy_devices/ikea-of-sweden-parasoll-door-window-sensor-0x01000019.json similarity index 100% rename from tests/data/devices/ikea-of-sweden-parasoll-door-window-sensor-0x01000019.json rename to tests/data/legacy_devices/ikea-of-sweden-parasoll-door-window-sensor-0x01000019.json diff --git a/tests/data/devices/ikea-of-sweden-remote-control-n2.json b/tests/data/legacy_devices/ikea-of-sweden-remote-control-n2.json similarity index 100% rename from tests/data/devices/ikea-of-sweden-remote-control-n2.json rename to tests/data/legacy_devices/ikea-of-sweden-remote-control-n2.json diff --git a/tests/data/devices/ikea-of-sweden-tradfri-bulb-e14-ws-globe-470lm-0x01010020.json b/tests/data/legacy_devices/ikea-of-sweden-tradfri-bulb-e14-ws-globe-470lm-0x01010020.json similarity index 100% rename from tests/data/devices/ikea-of-sweden-tradfri-bulb-e14-ws-globe-470lm-0x01010020.json rename to tests/data/legacy_devices/ikea-of-sweden-tradfri-bulb-e14-ws-globe-470lm-0x01010020.json diff --git a/tests/data/devices/ikea-of-sweden-tradfri-bulb-e27-ws-globe-1055lm-0x02040005.json b/tests/data/legacy_devices/ikea-of-sweden-tradfri-bulb-e27-ws-globe-1055lm-0x02040005.json similarity index 100% rename from tests/data/devices/ikea-of-sweden-tradfri-bulb-e27-ws-globe-1055lm-0x02040005.json rename to tests/data/legacy_devices/ikea-of-sweden-tradfri-bulb-e27-ws-globe-1055lm-0x02040005.json diff --git a/tests/data/devices/ikea-of-sweden-tradfri-bulb-e27-ww-g95-cl-470lm-0x00011006.json b/tests/data/legacy_devices/ikea-of-sweden-tradfri-bulb-e27-ww-g95-cl-470lm-0x00011006.json similarity index 100% rename from tests/data/devices/ikea-of-sweden-tradfri-bulb-e27-ww-g95-cl-470lm-0x00011006.json rename to tests/data/legacy_devices/ikea-of-sweden-tradfri-bulb-e27-ww-g95-cl-470lm-0x00011006.json diff --git a/tests/data/devices/ikea-of-sweden-tradfri-bulb-gu10-ww-345lm8.json b/tests/data/legacy_devices/ikea-of-sweden-tradfri-bulb-gu10-ww-345lm8.json similarity index 100% rename from tests/data/devices/ikea-of-sweden-tradfri-bulb-gu10-ww-345lm8.json rename to tests/data/legacy_devices/ikea-of-sweden-tradfri-bulb-gu10-ww-345lm8.json diff --git a/tests/data/devices/ikea-of-sweden-tradfri-motion-sensor.json b/tests/data/legacy_devices/ikea-of-sweden-tradfri-motion-sensor.json similarity index 100% rename from tests/data/devices/ikea-of-sweden-tradfri-motion-sensor.json rename to tests/data/legacy_devices/ikea-of-sweden-tradfri-motion-sensor.json diff --git a/tests/data/devices/ikea-of-sweden-tradfri-shortcut-button.json b/tests/data/legacy_devices/ikea-of-sweden-tradfri-shortcut-button.json similarity index 100% rename from tests/data/devices/ikea-of-sweden-tradfri-shortcut-button.json rename to tests/data/legacy_devices/ikea-of-sweden-tradfri-shortcut-button.json diff --git a/tests/data/devices/imagic-by-greatstar-1112-s.json b/tests/data/legacy_devices/imagic-by-greatstar-1112-s.json similarity index 100% rename from tests/data/devices/imagic-by-greatstar-1112-s.json rename to tests/data/legacy_devices/imagic-by-greatstar-1112-s.json diff --git a/tests/data/devices/innr-rs-232-c-0x22151511.json b/tests/data/legacy_devices/innr-rs-232-c-0x22151511.json similarity index 100% rename from tests/data/devices/innr-rs-232-c-0x22151511.json rename to tests/data/legacy_devices/innr-rs-232-c-0x22151511.json diff --git a/tests/data/devices/innr-sp-240-0x191e3685.json b/tests/data/legacy_devices/innr-sp-240-0x191e3685.json similarity index 100% rename from tests/data/devices/innr-sp-240-0x191e3685.json rename to tests/data/legacy_devices/innr-sp-240-0x191e3685.json diff --git a/tests/data/devices/innr-sp-242-0x17173685.json b/tests/data/legacy_devices/innr-sp-242-0x17173685.json similarity index 100% rename from tests/data/devices/innr-sp-242-0x17173685.json rename to tests/data/legacy_devices/innr-sp-242-0x17173685.json diff --git a/tests/data/devices/lds-zb-onoffplug-d0005-0x21186230.json b/tests/data/legacy_devices/lds-zb-onoffplug-d0005-0x21186230.json similarity index 100% rename from tests/data/devices/lds-zb-onoffplug-d0005-0x21186230.json rename to tests/data/legacy_devices/lds-zb-onoffplug-d0005-0x21186230.json diff --git a/tests/data/devices/ledvance-a60s-rgbw-0x02146550.json b/tests/data/legacy_devices/ledvance-a60s-rgbw-0x02146550.json similarity index 100% rename from tests/data/devices/ledvance-a60s-rgbw-0x02146550.json rename to tests/data/legacy_devices/ledvance-a60s-rgbw-0x02146550.json diff --git a/tests/data/devices/legrand-contactor.json b/tests/data/legacy_devices/legrand-contactor.json similarity index 100% rename from tests/data/devices/legrand-contactor.json rename to tests/data/legacy_devices/legrand-contactor.json diff --git a/tests/data/devices/legrand-double-gangs-remote-switch.json b/tests/data/legacy_devices/legrand-double-gangs-remote-switch.json similarity index 100% rename from tests/data/devices/legrand-double-gangs-remote-switch.json rename to tests/data/legacy_devices/legrand-double-gangs-remote-switch.json diff --git a/tests/data/devices/legrand-light-switch-with-neutral-0x001c4203.json b/tests/data/legacy_devices/legrand-light-switch-with-neutral-0x001c4203.json similarity index 100% rename from tests/data/devices/legrand-light-switch-with-neutral-0x001c4203.json rename to tests/data/legacy_devices/legrand-light-switch-with-neutral-0x001c4203.json diff --git a/tests/data/devices/legrand-light-switch-with-neutral.json b/tests/data/legacy_devices/legrand-light-switch-with-neutral.json similarity index 100% rename from tests/data/devices/legrand-light-switch-with-neutral.json rename to tests/data/legacy_devices/legrand-light-switch-with-neutral.json diff --git a/tests/data/devices/legrand-mobile-outlet-0x006545ff.json b/tests/data/legacy_devices/legrand-mobile-outlet-0x006545ff.json similarity index 100% rename from tests/data/devices/legrand-mobile-outlet-0x006545ff.json rename to tests/data/legacy_devices/legrand-mobile-outlet-0x006545ff.json diff --git a/tests/data/devices/lumi-lumi-airrtc-agl001-0x0000001e.json b/tests/data/legacy_devices/lumi-lumi-airrtc-agl001-0x0000001e.json similarity index 100% rename from tests/data/devices/lumi-lumi-airrtc-agl001-0x0000001e.json rename to tests/data/legacy_devices/lumi-lumi-airrtc-agl001-0x0000001e.json diff --git a/tests/data/devices/lumi-lumi-ctrl-neutral2.json b/tests/data/legacy_devices/lumi-lumi-ctrl-neutral2.json similarity index 100% rename from tests/data/devices/lumi-lumi-ctrl-neutral2.json rename to tests/data/legacy_devices/lumi-lumi-ctrl-neutral2.json diff --git a/tests/data/devices/lumi-lumi-curtain-acn002-0x00000e1f.json b/tests/data/legacy_devices/lumi-lumi-curtain-acn002-0x00000e1f.json similarity index 100% rename from tests/data/devices/lumi-lumi-curtain-acn002-0x00000e1f.json rename to tests/data/legacy_devices/lumi-lumi-curtain-acn002-0x00000e1f.json diff --git a/tests/data/devices/lumi-lumi-curtain-acn003.json b/tests/data/legacy_devices/lumi-lumi-curtain-acn003.json similarity index 100% rename from tests/data/devices/lumi-lumi-curtain-acn003.json rename to tests/data/legacy_devices/lumi-lumi-curtain-acn003.json diff --git a/tests/data/devices/lumi-lumi-curtain-hagl04.json b/tests/data/legacy_devices/lumi-lumi-curtain-hagl04.json similarity index 100% rename from tests/data/devices/lumi-lumi-curtain-hagl04.json rename to tests/data/legacy_devices/lumi-lumi-curtain-hagl04.json diff --git a/tests/data/devices/lumi-lumi-motion-agl04-0x00000019.json b/tests/data/legacy_devices/lumi-lumi-motion-agl04-0x00000019.json similarity index 100% rename from tests/data/devices/lumi-lumi-motion-agl04-0x00000019.json rename to tests/data/legacy_devices/lumi-lumi-motion-agl04-0x00000019.json diff --git a/tests/data/devices/lumi-lumi-plug-maeu01.json b/tests/data/legacy_devices/lumi-lumi-plug-maeu01.json similarity index 100% rename from tests/data/devices/lumi-lumi-plug-maeu01.json rename to tests/data/legacy_devices/lumi-lumi-plug-maeu01.json diff --git a/tests/data/devices/lumi-lumi-remote-cagl02.json b/tests/data/legacy_devices/lumi-lumi-remote-cagl02.json similarity index 100% rename from tests/data/devices/lumi-lumi-remote-cagl02.json rename to tests/data/legacy_devices/lumi-lumi-remote-cagl02.json diff --git a/tests/data/devices/lumi-lumi-sensor-switch-aq2.json b/tests/data/legacy_devices/lumi-lumi-sensor-switch-aq2.json similarity index 100% rename from tests/data/devices/lumi-lumi-sensor-switch-aq2.json rename to tests/data/legacy_devices/lumi-lumi-sensor-switch-aq2.json diff --git a/tests/data/devices/lumi-lumi-switch-b1lacn02.json b/tests/data/legacy_devices/lumi-lumi-switch-b1lacn02.json similarity index 100% rename from tests/data/devices/lumi-lumi-switch-b1lacn02.json rename to tests/data/legacy_devices/lumi-lumi-switch-b1lacn02.json diff --git a/tests/data/devices/lumi-lumi-switch-b2naus01.json b/tests/data/legacy_devices/lumi-lumi-switch-b2naus01.json similarity index 100% rename from tests/data/devices/lumi-lumi-switch-b2naus01.json rename to tests/data/legacy_devices/lumi-lumi-switch-b2naus01.json diff --git a/tests/data/devices/lumi-lumi-switch-b2nc01.json b/tests/data/legacy_devices/lumi-lumi-switch-b2nc01.json similarity index 100% rename from tests/data/devices/lumi-lumi-switch-b2nc01.json rename to tests/data/legacy_devices/lumi-lumi-switch-b2nc01.json diff --git a/tests/data/devices/lumi-lumi-switch-l1aeu1-0x00000e0b.json b/tests/data/legacy_devices/lumi-lumi-switch-l1aeu1-0x00000e0b.json similarity index 100% rename from tests/data/devices/lumi-lumi-switch-l1aeu1-0x00000e0b.json rename to tests/data/legacy_devices/lumi-lumi-switch-l1aeu1-0x00000e0b.json diff --git a/tests/data/devices/lumi-lumi-switch-l2aeu1-0x00000e0b.json b/tests/data/legacy_devices/lumi-lumi-switch-l2aeu1-0x00000e0b.json similarity index 100% rename from tests/data/devices/lumi-lumi-switch-l2aeu1-0x00000e0b.json rename to tests/data/legacy_devices/lumi-lumi-switch-l2aeu1-0x00000e0b.json diff --git a/tests/data/devices/lumi-lumi-switch-n1aeu1.json b/tests/data/legacy_devices/lumi-lumi-switch-n1aeu1.json similarity index 100% rename from tests/data/devices/lumi-lumi-switch-n1aeu1.json rename to tests/data/legacy_devices/lumi-lumi-switch-n1aeu1.json diff --git a/tests/data/devices/mli-tint-extendedcolor-0x10012001.json b/tests/data/legacy_devices/mli-tint-extendedcolor-0x10012001.json similarity index 100% rename from tests/data/devices/mli-tint-extendedcolor-0x10012001.json rename to tests/data/legacy_devices/mli-tint-extendedcolor-0x10012001.json diff --git a/tests/data/devices/nabu-casa-ha-connect-zbt-1.json b/tests/data/legacy_devices/nabu-casa-ha-connect-zbt-1.json similarity index 100% rename from tests/data/devices/nabu-casa-ha-connect-zbt-1.json rename to tests/data/legacy_devices/nabu-casa-ha-connect-zbt-1.json diff --git a/tests/data/devices/namron-as-1402790.json b/tests/data/legacy_devices/namron-as-1402790.json similarity index 100% rename from tests/data/devices/namron-as-1402790.json rename to tests/data/legacy_devices/namron-as-1402790.json diff --git a/tests/data/devices/namron-as-4512785-0x0000000e.json b/tests/data/legacy_devices/namron-as-4512785-0x0000000e.json similarity index 100% rename from tests/data/devices/namron-as-4512785-0x0000000e.json rename to tests/data/legacy_devices/namron-as-4512785-0x0000000e.json diff --git a/tests/data/devices/neuhaus-lighting-group-nlg-remote.json b/tests/data/legacy_devices/neuhaus-lighting-group-nlg-remote.json similarity index 100% rename from tests/data/devices/neuhaus-lighting-group-nlg-remote.json rename to tests/data/legacy_devices/neuhaus-lighting-group-nlg-remote.json diff --git a/tests/data/devices/niko-nv-battery-switch-2-button.json b/tests/data/legacy_devices/niko-nv-battery-switch-2-button.json similarity index 100% rename from tests/data/devices/niko-nv-battery-switch-2-button.json rename to tests/data/legacy_devices/niko-nv-battery-switch-2-button.json diff --git a/tests/data/devices/niko-nv-battery-switch-4-button-0x21046760.json b/tests/data/legacy_devices/niko-nv-battery-switch-4-button-0x21046760.json similarity index 100% rename from tests/data/devices/niko-nv-battery-switch-4-button-0x21046760.json rename to tests/data/legacy_devices/niko-nv-battery-switch-4-button-0x21046760.json diff --git a/tests/data/devices/niko-nv-connectable-motor-control-3a-0x21160006.json b/tests/data/legacy_devices/niko-nv-connectable-motor-control-3a-0x21160006.json similarity index 100% rename from tests/data/devices/niko-nv-connectable-motor-control-3a-0x21160006.json rename to tests/data/legacy_devices/niko-nv-connectable-motor-control-3a-0x21160006.json diff --git a/tests/data/devices/nodon-sin-4-fp-21.json b/tests/data/legacy_devices/nodon-sin-4-fp-21.json similarity index 100% rename from tests/data/devices/nodon-sin-4-fp-21.json rename to tests/data/legacy_devices/nodon-sin-4-fp-21.json diff --git a/tests/data/devices/occam-temp-sensor-v1-2-jan-19-2026.json b/tests/data/legacy_devices/occam-temp-sensor-v1-2-jan-19-2026.json similarity index 100% rename from tests/data/devices/occam-temp-sensor-v1-2-jan-19-2026.json rename to tests/data/legacy_devices/occam-temp-sensor-v1-2-jan-19-2026.json diff --git a/tests/data/devices/orvibo-250bccf66c41421b91b5e3242942c164.json b/tests/data/legacy_devices/orvibo-250bccf66c41421b91b5e3242942c164.json similarity index 100% rename from tests/data/devices/orvibo-250bccf66c41421b91b5e3242942c164.json rename to tests/data/legacy_devices/orvibo-250bccf66c41421b91b5e3242942c164.json diff --git a/tests/data/devices/ou-rui-bo-cf31218e11c547179c9c9ade6a492799.json b/tests/data/legacy_devices/ou-rui-bo-cf31218e11c547179c9c9ade6a492799.json similarity index 100% rename from tests/data/devices/ou-rui-bo-cf31218e11c547179c9c9ade6a492799.json rename to tests/data/legacy_devices/ou-rui-bo-cf31218e11c547179c9c9ade6a492799.json diff --git a/tests/data/devices/paulmann-licht-gmbh-501-34.json b/tests/data/legacy_devices/paulmann-licht-gmbh-501-34.json similarity index 100% rename from tests/data/devices/paulmann-licht-gmbh-501-34.json rename to tests/data/legacy_devices/paulmann-licht-gmbh-501-34.json diff --git a/tests/data/devices/philips-lct026.json b/tests/data/legacy_devices/philips-lct026.json similarity index 100% rename from tests/data/devices/philips-lct026.json rename to tests/data/legacy_devices/philips-lct026.json diff --git a/tests/data/devices/philips-lst002-0x01001700.json b/tests/data/legacy_devices/philips-lst002-0x01001700.json similarity index 100% rename from tests/data/devices/philips-lst002-0x01001700.json rename to tests/data/legacy_devices/philips-lst002-0x01001700.json diff --git a/tests/data/devices/ptvo-info-ptvo-switch.json b/tests/data/legacy_devices/ptvo-info-ptvo-switch.json similarity index 100% rename from tests/data/devices/ptvo-info-ptvo-switch.json rename to tests/data/legacy_devices/ptvo-info-ptvo-switch.json diff --git a/tests/data/devices/samjin-water.json b/tests/data/legacy_devices/samjin-water.json similarity index 100% rename from tests/data/devices/samjin-water.json rename to tests/data/legacy_devices/samjin-water.json diff --git a/tests/data/devices/schneider-electric-eko07259-0x01001d00.json b/tests/data/legacy_devices/schneider-electric-eko07259-0x01001d00.json similarity index 100% rename from tests/data/devices/schneider-electric-eko07259-0x01001d00.json rename to tests/data/legacy_devices/schneider-electric-eko07259-0x01001d00.json diff --git a/tests/data/devices/schneider-electric-evsckt-outlet-1-0x020a00ff.json b/tests/data/legacy_devices/schneider-electric-evsckt-outlet-1-0x020a00ff.json similarity index 100% rename from tests/data/devices/schneider-electric-evsckt-outlet-1-0x020a00ff.json rename to tests/data/legacy_devices/schneider-electric-evsckt-outlet-1-0x020a00ff.json diff --git a/tests/data/devices/schneider-electric-lk-dimmer.json b/tests/data/legacy_devices/schneider-electric-lk-dimmer.json similarity index 100% rename from tests/data/devices/schneider-electric-lk-dimmer.json rename to tests/data/legacy_devices/schneider-electric-lk-dimmer.json diff --git a/tests/data/devices/schneider-electric-nhmotion-unidim-1-0x020b0fff.json b/tests/data/legacy_devices/schneider-electric-nhmotion-unidim-1-0x020b0fff.json similarity index 100% rename from tests/data/devices/schneider-electric-nhmotion-unidim-1-0x020b0fff.json rename to tests/data/legacy_devices/schneider-electric-nhmotion-unidim-1-0x020b0fff.json diff --git a/tests/data/devices/schneider-electric-puck-dimmer-1.json b/tests/data/legacy_devices/schneider-electric-puck-dimmer-1.json similarity index 100% rename from tests/data/devices/schneider-electric-puck-dimmer-1.json rename to tests/data/legacy_devices/schneider-electric-puck-dimmer-1.json diff --git a/tests/data/devices/schneider-electric-puck-shutter-1-0x020c02ff.json b/tests/data/legacy_devices/schneider-electric-puck-shutter-1-0x020c02ff.json similarity index 100% rename from tests/data/devices/schneider-electric-puck-shutter-1-0x020c02ff.json rename to tests/data/legacy_devices/schneider-electric-puck-shutter-1-0x020c02ff.json diff --git a/tests/data/devices/schneider-electric-s520619-0x01003500.json b/tests/data/legacy_devices/schneider-electric-s520619-0x01003500.json similarity index 100% rename from tests/data/devices/schneider-electric-s520619-0x01003500.json rename to tests/data/legacy_devices/schneider-electric-s520619-0x01003500.json diff --git a/tests/data/devices/sercomm-corp-sz-esw01-au.json b/tests/data/legacy_devices/sercomm-corp-sz-esw01-au.json similarity index 100% rename from tests/data/devices/sercomm-corp-sz-esw01-au.json rename to tests/data/legacy_devices/sercomm-corp-sz-esw01-au.json diff --git a/tests/data/devices/shelly-2pm.json b/tests/data/legacy_devices/shelly-2pm.json similarity index 100% rename from tests/data/devices/shelly-2pm.json rename to tests/data/legacy_devices/shelly-2pm.json diff --git a/tests/data/devices/shelly-ecowitt-ws90.json b/tests/data/legacy_devices/shelly-ecowitt-ws90.json similarity index 100% rename from tests/data/devices/shelly-ecowitt-ws90.json rename to tests/data/legacy_devices/shelly-ecowitt-ws90.json diff --git a/tests/data/devices/shelly-mini1pm.json b/tests/data/legacy_devices/shelly-mini1pm.json similarity index 100% rename from tests/data/devices/shelly-mini1pm.json rename to tests/data/legacy_devices/shelly-mini1pm.json diff --git a/tests/data/devices/shyugj-dimmer-switch-zb3-0.json b/tests/data/legacy_devices/shyugj-dimmer-switch-zb3-0.json similarity index 100% rename from tests/data/devices/shyugj-dimmer-switch-zb3-0.json rename to tests/data/legacy_devices/shyugj-dimmer-switch-zb3-0.json diff --git a/tests/data/devices/signify-netherlands-b-v-lca001-0x01002802.json b/tests/data/legacy_devices/signify-netherlands-b-v-lca001-0x01002802.json similarity index 100% rename from tests/data/devices/signify-netherlands-b-v-lca001-0x01002802.json rename to tests/data/legacy_devices/signify-netherlands-b-v-lca001-0x01002802.json diff --git a/tests/data/devices/signify-netherlands-b-v-rdm004.json b/tests/data/legacy_devices/signify-netherlands-b-v-rdm004.json similarity index 100% rename from tests/data/devices/signify-netherlands-b-v-rdm004.json rename to tests/data/legacy_devices/signify-netherlands-b-v-rdm004.json diff --git a/tests/data/devices/sinope-technologies-va4220zb.json b/tests/data/legacy_devices/sinope-technologies-va4220zb.json similarity index 100% rename from tests/data/devices/sinope-technologies-va4220zb.json rename to tests/data/legacy_devices/sinope-technologies-va4220zb.json diff --git a/tests/data/devices/smarthjemmet-dk-quad-zig-sw.json b/tests/data/legacy_devices/smarthjemmet-dk-quad-zig-sw.json similarity index 100% rename from tests/data/devices/smarthjemmet-dk-quad-zig-sw.json rename to tests/data/legacy_devices/smarthjemmet-dk-quad-zig-sw.json diff --git a/tests/data/devices/smarthjemmet-dk-quad-zig-sw2.json b/tests/data/legacy_devices/smarthjemmet-dk-quad-zig-sw2.json similarity index 100% rename from tests/data/devices/smarthjemmet-dk-quad-zig-sw2.json rename to tests/data/legacy_devices/smarthjemmet-dk-quad-zig-sw2.json diff --git a/tests/data/devices/smartthings-multiv4-0x0000001b.json b/tests/data/legacy_devices/smartthings-multiv4-0x0000001b.json similarity index 100% rename from tests/data/devices/smartthings-multiv4-0x0000001b.json rename to tests/data/legacy_devices/smartthings-multiv4-0x0000001b.json diff --git a/tests/data/devices/somfy-sonesse-28-wf-li-ion-roller-0x4100e158.json b/tests/data/legacy_devices/somfy-sonesse-28-wf-li-ion-roller-0x4100e158.json similarity index 100% rename from tests/data/devices/somfy-sonesse-28-wf-li-ion-roller-0x4100e158.json rename to tests/data/legacy_devices/somfy-sonesse-28-wf-li-ion-roller-0x4100e158.json diff --git a/tests/data/devices/sonoff-basiczbr3.json b/tests/data/legacy_devices/sonoff-basiczbr3.json similarity index 100% rename from tests/data/devices/sonoff-basiczbr3.json rename to tests/data/legacy_devices/sonoff-basiczbr3.json diff --git a/tests/data/devices/sonoff-dongle-e-r.json b/tests/data/legacy_devices/sonoff-dongle-e-r.json similarity index 100% rename from tests/data/devices/sonoff-dongle-e-r.json rename to tests/data/legacy_devices/sonoff-dongle-e-r.json diff --git a/tests/data/devices/sonoff-mini-zbrbs-0x00001005.json b/tests/data/legacy_devices/sonoff-mini-zbrbs-0x00001005.json similarity index 100% rename from tests/data/devices/sonoff-mini-zbrbs-0x00001005.json rename to tests/data/legacy_devices/sonoff-mini-zbrbs-0x00001005.json diff --git a/tests/data/devices/sonoff-s26r2zb-0x00002000.json b/tests/data/legacy_devices/sonoff-s26r2zb-0x00002000.json similarity index 100% rename from tests/data/devices/sonoff-s26r2zb-0x00002000.json rename to tests/data/legacy_devices/sonoff-s26r2zb-0x00002000.json diff --git a/tests/data/devices/sonoff-s60zbtpg-0x00001002.json b/tests/data/legacy_devices/sonoff-s60zbtpg-0x00001002.json similarity index 100% rename from tests/data/devices/sonoff-s60zbtpg-0x00001002.json rename to tests/data/legacy_devices/sonoff-s60zbtpg-0x00001002.json diff --git a/tests/data/devices/sonoff-swv-0x00001002.json b/tests/data/legacy_devices/sonoff-swv-0x00001002.json similarity index 100% rename from tests/data/devices/sonoff-swv-0x00001002.json rename to tests/data/legacy_devices/sonoff-swv-0x00001002.json diff --git a/tests/data/devices/sonoff-swv-0x00001003.json b/tests/data/legacy_devices/sonoff-swv-0x00001003.json similarity index 100% rename from tests/data/devices/sonoff-swv-0x00001003.json rename to tests/data/legacy_devices/sonoff-swv-0x00001003.json diff --git a/tests/data/devices/sonoff-trvzb-0x00001201.json b/tests/data/legacy_devices/sonoff-trvzb-0x00001201.json similarity index 100% rename from tests/data/devices/sonoff-trvzb-0x00001201.json rename to tests/data/legacy_devices/sonoff-trvzb-0x00001201.json diff --git a/tests/data/devices/sonoff-trvzb-0x00001400.json b/tests/data/legacy_devices/sonoff-trvzb-0x00001400.json similarity index 100% rename from tests/data/devices/sonoff-trvzb-0x00001400.json rename to tests/data/legacy_devices/sonoff-trvzb-0x00001400.json diff --git a/tests/data/devices/sonoff-trvzb-0x00001401.json b/tests/data/legacy_devices/sonoff-trvzb-0x00001401.json similarity index 100% rename from tests/data/devices/sonoff-trvzb-0x00001401.json rename to tests/data/legacy_devices/sonoff-trvzb-0x00001401.json diff --git a/tests/data/devices/sonoff-zbminil2-0x0000100e.json b/tests/data/legacy_devices/sonoff-zbminil2-0x0000100e.json similarity index 100% rename from tests/data/devices/sonoff-zbminil2-0x0000100e.json rename to tests/data/legacy_devices/sonoff-zbminil2-0x0000100e.json diff --git a/tests/data/devices/sonoff-zbminir2-0x00001004.json b/tests/data/legacy_devices/sonoff-zbminir2-0x00001004.json similarity index 100% rename from tests/data/devices/sonoff-zbminir2-0x00001004.json rename to tests/data/legacy_devices/sonoff-zbminir2-0x00001004.json diff --git a/tests/data/devices/sunricher-on-off-2ch-0x00000004.json b/tests/data/legacy_devices/sunricher-on-off-2ch-0x00000004.json similarity index 100% rename from tests/data/devices/sunricher-on-off-2ch-0x00000004.json rename to tests/data/legacy_devices/sunricher-on-off-2ch-0x00000004.json diff --git a/tests/data/devices/texas-instruments-cc2652.json b/tests/data/legacy_devices/texas-instruments-cc2652.json similarity index 100% rename from tests/data/devices/texas-instruments-cc2652.json rename to tests/data/legacy_devices/texas-instruments-cc2652.json diff --git a/tests/data/devices/texas-instruments-coordinator.json b/tests/data/legacy_devices/texas-instruments-coordinator.json similarity index 100% rename from tests/data/devices/texas-instruments-coordinator.json rename to tests/data/legacy_devices/texas-instruments-coordinator.json diff --git a/tests/data/devices/tyst11-czk78ptr-zk78ptr.json b/tests/data/legacy_devices/tyst11-czk78ptr-zk78ptr.json similarity index 100% rename from tests/data/devices/tyst11-czk78ptr-zk78ptr.json rename to tests/data/legacy_devices/tyst11-czk78ptr-zk78ptr.json diff --git a/tests/data/devices/tyzb01-8scntis1-ts0216.json b/tests/data/legacy_devices/tyzb01-8scntis1-ts0216.json similarity index 100% rename from tests/data/devices/tyzb01-8scntis1-ts0216.json rename to tests/data/legacy_devices/tyzb01-8scntis1-ts0216.json diff --git a/tests/data/devices/tyzb01-mtunwanm-ts011f.json b/tests/data/legacy_devices/tyzb01-mtunwanm-ts011f.json similarity index 100% rename from tests/data/devices/tyzb01-mtunwanm-ts011f.json rename to tests/data/legacy_devices/tyzb01-mtunwanm-ts011f.json diff --git a/tests/data/devices/tyzb01-qm6djpta-ts0215-0x00000046.json b/tests/data/legacy_devices/tyzb01-qm6djpta-ts0215-0x00000046.json similarity index 100% rename from tests/data/devices/tyzb01-qm6djpta-ts0215-0x00000046.json rename to tests/data/legacy_devices/tyzb01-qm6djpta-ts0215-0x00000046.json diff --git a/tests/data/devices/tz2000-k4yr34vv-sm0301.json b/tests/data/legacy_devices/tz2000-k4yr34vv-sm0301.json similarity index 100% rename from tests/data/devices/tz2000-k4yr34vv-sm0301.json rename to tests/data/legacy_devices/tz2000-k4yr34vv-sm0301.json diff --git a/tests/data/devices/tz3000-09gto2zn-ts0013.json b/tests/data/legacy_devices/tz3000-09gto2zn-ts0013.json similarity index 100% rename from tests/data/devices/tz3000-09gto2zn-ts0013.json rename to tests/data/legacy_devices/tz3000-09gto2zn-ts0013.json diff --git a/tests/data/devices/tz3000-1o6x1bl0-ts0201-0x00000041.json b/tests/data/legacy_devices/tz3000-1o6x1bl0-ts0201-0x00000041.json similarity index 100% rename from tests/data/devices/tz3000-1o6x1bl0-ts0201-0x00000041.json rename to tests/data/legacy_devices/tz3000-1o6x1bl0-ts0201-0x00000041.json diff --git a/tests/data/devices/tz3000-2putqrmw-ts011f.json b/tests/data/legacy_devices/tz3000-2putqrmw-ts011f.json similarity index 100% rename from tests/data/devices/tz3000-2putqrmw-ts011f.json rename to tests/data/legacy_devices/tz3000-2putqrmw-ts011f.json diff --git a/tests/data/devices/tz3000-2xlvlnez-ts011f.json b/tests/data/legacy_devices/tz3000-2xlvlnez-ts011f.json similarity index 100% rename from tests/data/devices/tz3000-2xlvlnez-ts011f.json rename to tests/data/legacy_devices/tz3000-2xlvlnez-ts011f.json diff --git a/tests/data/devices/tz3000-3ias4w4o-ts011f-0x0000004e.json b/tests/data/legacy_devices/tz3000-3ias4w4o-ts011f-0x0000004e.json similarity index 100% rename from tests/data/devices/tz3000-3ias4w4o-ts011f-0x0000004e.json rename to tests/data/legacy_devices/tz3000-3ias4w4o-ts011f-0x0000004e.json diff --git a/tests/data/devices/tz3000-5e235jpa-ts0042.json b/tests/data/legacy_devices/tz3000-5e235jpa-ts0042.json similarity index 100% rename from tests/data/devices/tz3000-5e235jpa-ts0042.json rename to tests/data/legacy_devices/tz3000-5e235jpa-ts0042.json diff --git a/tests/data/devices/tz3000-5fkufhn1-ts0502a.json b/tests/data/legacy_devices/tz3000-5fkufhn1-ts0502a.json similarity index 100% rename from tests/data/devices/tz3000-5fkufhn1-ts0502a.json rename to tests/data/legacy_devices/tz3000-5fkufhn1-ts0502a.json diff --git a/tests/data/devices/tz3000-5ity3zyu-ts0121.json b/tests/data/legacy_devices/tz3000-5ity3zyu-ts0121.json similarity index 100% rename from tests/data/devices/tz3000-5ity3zyu-ts0121.json rename to tests/data/legacy_devices/tz3000-5ity3zyu-ts0121.json diff --git a/tests/data/devices/tz3000-8nyaanzb-ts011f.json b/tests/data/legacy_devices/tz3000-8nyaanzb-ts011f.json similarity index 100% rename from tests/data/devices/tz3000-8nyaanzb-ts011f.json rename to tests/data/legacy_devices/tz3000-8nyaanzb-ts011f.json diff --git a/tests/data/devices/tz3000-a37eix1s-ts0004.json b/tests/data/legacy_devices/tz3000-a37eix1s-ts0004.json similarity index 100% rename from tests/data/devices/tz3000-a37eix1s-ts0004.json rename to tests/data/legacy_devices/tz3000-a37eix1s-ts0004.json diff --git a/tests/data/devices/tz3000-a9buwvb7-ts0726.json b/tests/data/legacy_devices/tz3000-a9buwvb7-ts0726.json similarity index 100% rename from tests/data/devices/tz3000-a9buwvb7-ts0726.json rename to tests/data/legacy_devices/tz3000-a9buwvb7-ts0726.json diff --git a/tests/data/devices/tz3000-adkvzooy-ts0042.json b/tests/data/legacy_devices/tz3000-adkvzooy-ts0042.json similarity index 100% rename from tests/data/devices/tz3000-adkvzooy-ts0042.json rename to tests/data/legacy_devices/tz3000-adkvzooy-ts0042.json diff --git a/tests/data/devices/tz3000-aghwaexm-ts0001.json b/tests/data/legacy_devices/tz3000-aghwaexm-ts0001.json similarity index 100% rename from tests/data/devices/tz3000-aghwaexm-ts0001.json rename to tests/data/legacy_devices/tz3000-aghwaexm-ts0001.json diff --git a/tests/data/devices/tz3000-bgsigers-ts0201-0x00000040.json b/tests/data/legacy_devices/tz3000-bgsigers-ts0201-0x00000040.json similarity index 100% rename from tests/data/devices/tz3000-bgsigers-ts0201-0x00000040.json rename to tests/data/legacy_devices/tz3000-bgsigers-ts0201-0x00000040.json diff --git a/tests/data/devices/tz3000-bjawzodf-ty0201.json b/tests/data/legacy_devices/tz3000-bjawzodf-ty0201.json similarity index 100% rename from tests/data/devices/tz3000-bjawzodf-ty0201.json rename to tests/data/legacy_devices/tz3000-bjawzodf-ty0201.json diff --git a/tests/data/devices/tz3000-cehuw1lw-ts011f-0x0000004d.json b/tests/data/legacy_devices/tz3000-cehuw1lw-ts011f-0x0000004d.json similarity index 100% rename from tests/data/devices/tz3000-cehuw1lw-ts011f-0x0000004d.json rename to tests/data/legacy_devices/tz3000-cehuw1lw-ts011f-0x0000004d.json diff --git a/tests/data/devices/tz3000-cicwjqth-ts011f-0x74013001.json b/tests/data/legacy_devices/tz3000-cicwjqth-ts011f-0x74013001.json similarity index 100% rename from tests/data/devices/tz3000-cicwjqth-ts011f-0x74013001.json rename to tests/data/legacy_devices/tz3000-cicwjqth-ts011f-0x74013001.json diff --git a/tests/data/devices/tz3000-dbou1ap4-ts0505a.json b/tests/data/legacy_devices/tz3000-dbou1ap4-ts0505a.json similarity index 100% rename from tests/data/devices/tz3000-dbou1ap4-ts0505a.json rename to tests/data/legacy_devices/tz3000-dbou1ap4-ts0505a.json diff --git a/tests/data/devices/tz3000-dowj6gyi-ts0201.json b/tests/data/legacy_devices/tz3000-dowj6gyi-ts0201.json similarity index 100% rename from tests/data/devices/tz3000-dowj6gyi-ts0201.json rename to tests/data/legacy_devices/tz3000-dowj6gyi-ts0201.json diff --git a/tests/data/devices/tz3000-e2uieqop-ts0001.json b/tests/data/legacy_devices/tz3000-e2uieqop-ts0001.json similarity index 100% rename from tests/data/devices/tz3000-e2uieqop-ts0001.json rename to tests/data/legacy_devices/tz3000-e2uieqop-ts0001.json diff --git a/tests/data/devices/tz3000-eamtuojw-ts0201-0x00000041.json b/tests/data/legacy_devices/tz3000-eamtuojw-ts0201-0x00000041.json similarity index 100% rename from tests/data/devices/tz3000-eamtuojw-ts0201-0x00000041.json rename to tests/data/legacy_devices/tz3000-eamtuojw-ts0201-0x00000041.json diff --git a/tests/data/devices/tz3000-empogkya-ts0003.json b/tests/data/legacy_devices/tz3000-empogkya-ts0003.json similarity index 100% rename from tests/data/devices/tz3000-empogkya-ts0003.json rename to tests/data/legacy_devices/tz3000-empogkya-ts0003.json diff --git a/tests/data/devices/tz3000-fdxihpp7-ts0001.json b/tests/data/legacy_devices/tz3000-fdxihpp7-ts0001.json similarity index 100% rename from tests/data/devices/tz3000-fdxihpp7-ts0001.json rename to tests/data/legacy_devices/tz3000-fdxihpp7-ts0001.json diff --git a/tests/data/devices/tz3000-gbm10jnj-ts0043-0x00000042.json b/tests/data/legacy_devices/tz3000-gbm10jnj-ts0043-0x00000042.json similarity index 100% rename from tests/data/devices/tz3000-gbm10jnj-ts0043-0x00000042.json rename to tests/data/legacy_devices/tz3000-gbm10jnj-ts0043-0x00000042.json diff --git a/tests/data/devices/tz3000-gjpgagal-ts0049-0x00000049.json b/tests/data/legacy_devices/tz3000-gjpgagal-ts0049-0x00000049.json similarity index 100% rename from tests/data/devices/tz3000-gjpgagal-ts0049-0x00000049.json rename to tests/data/legacy_devices/tz3000-gjpgagal-ts0049-0x00000049.json diff --git a/tests/data/devices/tz3000-gjrubzje-ts0001.json b/tests/data/legacy_devices/tz3000-gjrubzje-ts0001.json similarity index 100% rename from tests/data/devices/tz3000-gjrubzje-ts0001.json rename to tests/data/legacy_devices/tz3000-gjrubzje-ts0001.json diff --git a/tests/data/devices/tz3000-hafsqare-ts0011-0x00000050.json b/tests/data/legacy_devices/tz3000-hafsqare-ts0011-0x00000050.json similarity index 100% rename from tests/data/devices/tz3000-hafsqare-ts0011-0x00000050.json rename to tests/data/legacy_devices/tz3000-hafsqare-ts0011-0x00000050.json diff --git a/tests/data/devices/tz3000-isw9u95y-ts0201-0x00000040.json b/tests/data/legacy_devices/tz3000-isw9u95y-ts0201-0x00000040.json similarity index 100% rename from tests/data/devices/tz3000-isw9u95y-ts0201-0x00000040.json rename to tests/data/legacy_devices/tz3000-isw9u95y-ts0201-0x00000040.json diff --git a/tests/data/devices/tz3000-j1xl73iw-ts130f-0x00000046.json b/tests/data/legacy_devices/tz3000-j1xl73iw-ts130f-0x00000046.json similarity index 100% rename from tests/data/devices/tz3000-j1xl73iw-ts130f-0x00000046.json rename to tests/data/legacy_devices/tz3000-j1xl73iw-ts130f-0x00000046.json diff --git a/tests/data/devices/tz3000-kmsbwdol-ts130f.json b/tests/data/legacy_devices/tz3000-kmsbwdol-ts130f.json similarity index 100% rename from tests/data/devices/tz3000-kmsbwdol-ts130f.json rename to tests/data/legacy_devices/tz3000-kmsbwdol-ts130f.json diff --git a/tests/data/devices/tz3000-kqvb5akv-ts0001-0x0000004a.json b/tests/data/legacy_devices/tz3000-kqvb5akv-ts0001-0x0000004a.json similarity index 100% rename from tests/data/devices/tz3000-kqvb5akv-ts0001-0x0000004a.json rename to tests/data/legacy_devices/tz3000-kqvb5akv-ts0001-0x0000004a.json diff --git a/tests/data/devices/tz3000-lf56vpxj-ts0202.json b/tests/data/legacy_devices/tz3000-lf56vpxj-ts0202.json similarity index 100% rename from tests/data/devices/tz3000-lf56vpxj-ts0202.json rename to tests/data/legacy_devices/tz3000-lf56vpxj-ts0202.json diff --git a/tests/data/devices/tz3000-llfaquvp-ts0012.json b/tests/data/legacy_devices/tz3000-llfaquvp-ts0012.json similarity index 100% rename from tests/data/devices/tz3000-llfaquvp-ts0012.json rename to tests/data/legacy_devices/tz3000-llfaquvp-ts0012.json diff --git a/tests/data/devices/tz3000-lotmgthb-ts011f.json b/tests/data/legacy_devices/tz3000-lotmgthb-ts011f.json similarity index 100% rename from tests/data/devices/tz3000-lotmgthb-ts011f.json rename to tests/data/legacy_devices/tz3000-lotmgthb-ts011f.json diff --git a/tests/data/devices/tz3000-lrgccsxm-ts0013.json b/tests/data/legacy_devices/tz3000-lrgccsxm-ts0013.json similarity index 100% rename from tests/data/devices/tz3000-lrgccsxm-ts0013.json rename to tests/data/legacy_devices/tz3000-lrgccsxm-ts0013.json diff --git a/tests/data/devices/tz3000-ltiqubue-ts130f.json b/tests/data/legacy_devices/tz3000-ltiqubue-ts130f.json similarity index 100% rename from tests/data/devices/tz3000-ltiqubue-ts130f.json rename to tests/data/legacy_devices/tz3000-ltiqubue-ts130f.json diff --git a/tests/data/devices/tz3000-mg4dy6z6-ts0202.json b/tests/data/legacy_devices/tz3000-mg4dy6z6-ts0202.json similarity index 100% rename from tests/data/devices/tz3000-mg4dy6z6-ts0202.json rename to tests/data/legacy_devices/tz3000-mg4dy6z6-ts0202.json diff --git a/tests/data/devices/tz3000-mgusv51k-ts0052-0x00000044.json b/tests/data/legacy_devices/tz3000-mgusv51k-ts0052-0x00000044.json similarity index 100% rename from tests/data/devices/tz3000-mgusv51k-ts0052-0x00000044.json rename to tests/data/legacy_devices/tz3000-mgusv51k-ts0052-0x00000044.json diff --git a/tests/data/devices/tz3000-mkhkxx1p-ts0001-0x00000048.json b/tests/data/legacy_devices/tz3000-mkhkxx1p-ts0001-0x00000048.json similarity index 100% rename from tests/data/devices/tz3000-mkhkxx1p-ts0001-0x00000048.json rename to tests/data/legacy_devices/tz3000-mkhkxx1p-ts0001-0x00000048.json diff --git a/tests/data/devices/tz3000-mugyhz0q-ts0207-0x00000041.json b/tests/data/legacy_devices/tz3000-mugyhz0q-ts0207-0x00000041.json similarity index 100% rename from tests/data/devices/tz3000-mugyhz0q-ts0207-0x00000041.json rename to tests/data/legacy_devices/tz3000-mugyhz0q-ts0207-0x00000041.json diff --git a/tests/data/devices/tz3000-npzfdcof-ts0001.json b/tests/data/legacy_devices/tz3000-npzfdcof-ts0001.json similarity index 100% rename from tests/data/devices/tz3000-npzfdcof-ts0001.json rename to tests/data/legacy_devices/tz3000-npzfdcof-ts0001.json diff --git a/tests/data/devices/tz3000-o4mkahkc-ts0202-0x00000046.json b/tests/data/legacy_devices/tz3000-o4mkahkc-ts0202-0x00000046.json similarity index 100% rename from tests/data/devices/tz3000-o4mkahkc-ts0202-0x00000046.json rename to tests/data/legacy_devices/tz3000-o4mkahkc-ts0202-0x00000046.json diff --git a/tests/data/devices/tz3000-pl5v1yyy-ts011f-0x00000050.json b/tests/data/legacy_devices/tz3000-pl5v1yyy-ts011f-0x00000050.json similarity index 100% rename from tests/data/devices/tz3000-pl5v1yyy-ts011f-0x00000050.json rename to tests/data/legacy_devices/tz3000-pl5v1yyy-ts011f-0x00000050.json diff --git a/tests/data/devices/tz3000-qa8s8vca-ts130f.json b/tests/data/legacy_devices/tz3000-qa8s8vca-ts130f.json similarity index 100% rename from tests/data/devices/tz3000-qa8s8vca-ts130f.json rename to tests/data/legacy_devices/tz3000-qa8s8vca-ts130f.json diff --git a/tests/data/devices/tz3000-qqdbccb3-ts130f.json b/tests/data/legacy_devices/tz3000-qqdbccb3-ts130f.json similarity index 100% rename from tests/data/devices/tz3000-qqdbccb3-ts130f.json rename to tests/data/legacy_devices/tz3000-qqdbccb3-ts130f.json diff --git a/tests/data/devices/tz3000-rbl8c85w-ts0012.json b/tests/data/legacy_devices/tz3000-rbl8c85w-ts0012.json similarity index 100% rename from tests/data/devices/tz3000-rbl8c85w-ts0012.json rename to tests/data/legacy_devices/tz3000-rbl8c85w-ts0012.json diff --git a/tests/data/devices/tz3000-snq47izk-ts0013.json b/tests/data/legacy_devices/tz3000-snq47izk-ts0013.json similarity index 100% rename from tests/data/devices/tz3000-snq47izk-ts0013.json rename to tests/data/legacy_devices/tz3000-snq47izk-ts0013.json diff --git a/tests/data/devices/tz3000-tgddllx4-ts0001.json b/tests/data/legacy_devices/tz3000-tgddllx4-ts0001.json similarity index 100% rename from tests/data/devices/tz3000-tgddllx4-ts0001.json rename to tests/data/legacy_devices/tz3000-tgddllx4-ts0001.json diff --git a/tests/data/devices/tz3000-u3oupgdy-ts0004-0x00000050.json b/tests/data/legacy_devices/tz3000-u3oupgdy-ts0004-0x00000050.json similarity index 100% rename from tests/data/devices/tz3000-u3oupgdy-ts0004-0x00000050.json rename to tests/data/legacy_devices/tz3000-u3oupgdy-ts0004-0x00000050.json diff --git a/tests/data/devices/tz3000-u4kojtqz-ts0002-0x10013607.json b/tests/data/legacy_devices/tz3000-u4kojtqz-ts0002-0x10013607.json similarity index 100% rename from tests/data/devices/tz3000-u4kojtqz-ts0002-0x10013607.json rename to tests/data/legacy_devices/tz3000-u4kojtqz-ts0002-0x10013607.json diff --git a/tests/data/devices/tz3000-vw8pawxa-ts130f-0x00000048.json b/tests/data/legacy_devices/tz3000-vw8pawxa-ts130f-0x00000048.json similarity index 100% rename from tests/data/devices/tz3000-vw8pawxa-ts130f-0x00000048.json rename to tests/data/legacy_devices/tz3000-vw8pawxa-ts130f-0x00000048.json diff --git a/tests/data/devices/tz3000-w0qqde0g-ts011f.json b/tests/data/legacy_devices/tz3000-w0qqde0g-ts011f.json similarity index 100% rename from tests/data/devices/tz3000-w0qqde0g-ts011f.json rename to tests/data/legacy_devices/tz3000-w0qqde0g-ts011f.json diff --git a/tests/data/devices/tz3000-wcgyhnp3-ts0222-0x00000045.json b/tests/data/legacy_devices/tz3000-wcgyhnp3-ts0222-0x00000045.json similarity index 100% rename from tests/data/devices/tz3000-wcgyhnp3-ts0222-0x00000045.json rename to tests/data/legacy_devices/tz3000-wcgyhnp3-ts0222-0x00000045.json diff --git a/tests/data/devices/tz3000-wkai4ga5-ts0044.json b/tests/data/legacy_devices/tz3000-wkai4ga5-ts0044.json similarity index 100% rename from tests/data/devices/tz3000-wkai4ga5-ts0044.json rename to tests/data/legacy_devices/tz3000-wkai4ga5-ts0044.json diff --git a/tests/data/devices/tz3000-wkr3jqmr-ts0004.json b/tests/data/legacy_devices/tz3000-wkr3jqmr-ts0004.json similarity index 100% rename from tests/data/devices/tz3000-wkr3jqmr-ts0004.json rename to tests/data/legacy_devices/tz3000-wkr3jqmr-ts0004.json diff --git a/tests/data/devices/tz3000-xa9g7rxs-ts1002.json b/tests/data/legacy_devices/tz3000-xa9g7rxs-ts1002.json similarity index 100% rename from tests/data/devices/tz3000-xa9g7rxs-ts1002.json rename to tests/data/legacy_devices/tz3000-xa9g7rxs-ts1002.json diff --git a/tests/data/devices/tz3000-xabckq1v-ts004f.json b/tests/data/legacy_devices/tz3000-xabckq1v-ts004f.json similarity index 100% rename from tests/data/devices/tz3000-xabckq1v-ts004f.json rename to tests/data/legacy_devices/tz3000-xabckq1v-ts004f.json diff --git a/tests/data/devices/tz3000-xkap8wtb-ts000f.json b/tests/data/legacy_devices/tz3000-xkap8wtb-ts000f.json similarity index 100% rename from tests/data/devices/tz3000-xkap8wtb-ts000f.json rename to tests/data/legacy_devices/tz3000-xkap8wtb-ts000f.json diff --git a/tests/data/devices/tz3000-xr3htd96-ts0201.json b/tests/data/legacy_devices/tz3000-xr3htd96-ts0201.json similarity index 100% rename from tests/data/devices/tz3000-xr3htd96-ts0201.json rename to tests/data/legacy_devices/tz3000-xr3htd96-ts0201.json diff --git a/tests/data/devices/tz3000-xxacnuab-ts0004.json b/tests/data/legacy_devices/tz3000-xxacnuab-ts0004.json similarity index 100% rename from tests/data/devices/tz3000-xxacnuab-ts0004.json rename to tests/data/legacy_devices/tz3000-xxacnuab-ts0004.json diff --git a/tests/data/devices/tz3000-ynmowqk2-ts011f.json b/tests/data/legacy_devices/tz3000-ynmowqk2-ts011f.json similarity index 100% rename from tests/data/devices/tz3000-ynmowqk2-ts011f.json rename to tests/data/legacy_devices/tz3000-ynmowqk2-ts011f.json diff --git a/tests/data/devices/tz3000-zl1kmjqx-0x10013001.json b/tests/data/legacy_devices/tz3000-zl1kmjqx-0x10013001.json similarity index 100% rename from tests/data/devices/tz3000-zl1kmjqx-0x10013001.json rename to tests/data/legacy_devices/tz3000-zl1kmjqx-0x10013001.json diff --git a/tests/data/devices/tz3000-zl1kmjqx-ty0201.json b/tests/data/legacy_devices/tz3000-zl1kmjqx-ty0201.json similarity index 100% rename from tests/data/devices/tz3000-zl1kmjqx-ty0201.json rename to tests/data/legacy_devices/tz3000-zl1kmjqx-ty0201.json diff --git a/tests/data/devices/tz3000-zw7yf6yk-ts0001-0x00000048.json b/tests/data/legacy_devices/tz3000-zw7yf6yk-ts0001-0x00000048.json similarity index 100% rename from tests/data/devices/tz3000-zw7yf6yk-ts0001-0x00000048.json rename to tests/data/legacy_devices/tz3000-zw7yf6yk-ts0001-0x00000048.json diff --git a/tests/data/devices/tz3002-vaq2bfcu-ts0726-0x00000051.json b/tests/data/legacy_devices/tz3002-vaq2bfcu-ts0726-0x00000051.json similarity index 100% rename from tests/data/devices/tz3002-vaq2bfcu-ts0726-0x00000051.json rename to tests/data/legacy_devices/tz3002-vaq2bfcu-ts0726-0x00000051.json diff --git a/tests/data/devices/tz3040-bb6xaihh-ts0202-0x00000048.json b/tests/data/legacy_devices/tz3040-bb6xaihh-ts0202-0x00000048.json similarity index 100% rename from tests/data/devices/tz3040-bb6xaihh-ts0202-0x00000048.json rename to tests/data/legacy_devices/tz3040-bb6xaihh-ts0202-0x00000048.json diff --git a/tests/data/devices/tz3210-09hzmirw-ts0502b-0x0000005b.json b/tests/data/legacy_devices/tz3210-09hzmirw-ts0502b-0x0000005b.json similarity index 100% rename from tests/data/devices/tz3210-09hzmirw-ts0502b-0x0000005b.json rename to tests/data/legacy_devices/tz3210-09hzmirw-ts0502b-0x0000005b.json diff --git a/tests/data/devices/tz3210-0jxeoadc-ts0049.json b/tests/data/legacy_devices/tz3210-0jxeoadc-ts0049.json similarity index 100% rename from tests/data/devices/tz3210-0jxeoadc-ts0049.json rename to tests/data/legacy_devices/tz3210-0jxeoadc-ts0049.json diff --git a/tests/data/devices/tz3210-3mpwqzuu-ts110e-0x00000040.json b/tests/data/legacy_devices/tz3210-3mpwqzuu-ts110e-0x00000040.json similarity index 100% rename from tests/data/devices/tz3210-3mpwqzuu-ts110e-0x00000040.json rename to tests/data/legacy_devices/tz3210-3mpwqzuu-ts110e-0x00000040.json diff --git a/tests/data/devices/tz3210-3ulg9kpo-ts0021.json b/tests/data/legacy_devices/tz3210-3ulg9kpo-ts0021.json similarity index 100% rename from tests/data/devices/tz3210-3ulg9kpo-ts0021.json rename to tests/data/legacy_devices/tz3210-3ulg9kpo-ts0021.json diff --git a/tests/data/devices/tz3210-5rta89nj-ts0601.json b/tests/data/legacy_devices/tz3210-5rta89nj-ts0601.json similarity index 100% rename from tests/data/devices/tz3210-5rta89nj-ts0601.json rename to tests/data/legacy_devices/tz3210-5rta89nj-ts0601.json diff --git a/tests/data/devices/tz3210-bfwvfyx1-ts0505b.json b/tests/data/legacy_devices/tz3210-bfwvfyx1-ts0505b.json similarity index 100% rename from tests/data/devices/tz3210-bfwvfyx1-ts0505b.json rename to tests/data/legacy_devices/tz3210-bfwvfyx1-ts0505b.json diff --git a/tests/data/devices/tz3210-comkuwws-ts0502b-0x00000065.json b/tests/data/legacy_devices/tz3210-comkuwws-ts0502b-0x00000065.json similarity index 100% rename from tests/data/devices/tz3210-comkuwws-ts0502b-0x00000065.json rename to tests/data/legacy_devices/tz3210-comkuwws-ts0502b-0x00000065.json diff --git a/tests/data/devices/tz3210-dwytrmda-ts130f-0x00000042.json b/tests/data/legacy_devices/tz3210-dwytrmda-ts130f-0x00000042.json similarity index 100% rename from tests/data/devices/tz3210-dwytrmda-ts130f-0x00000042.json rename to tests/data/legacy_devices/tz3210-dwytrmda-ts130f-0x00000042.json diff --git a/tests/data/devices/tz3210-ehcanwyc-ts0502b-0x00000065.json b/tests/data/legacy_devices/tz3210-ehcanwyc-ts0502b-0x00000065.json similarity index 100% rename from tests/data/devices/tz3210-ehcanwyc-ts0502b-0x00000065.json rename to tests/data/legacy_devices/tz3210-ehcanwyc-ts0502b-0x00000065.json diff --git a/tests/data/devices/tz3210-ekjc2rzh-ts0225.json b/tests/data/legacy_devices/tz3210-ekjc2rzh-ts0225.json similarity index 100% rename from tests/data/devices/tz3210-ekjc2rzh-ts0225.json rename to tests/data/legacy_devices/tz3210-ekjc2rzh-ts0225.json diff --git a/tests/data/devices/tz3210-hxtfthp5-ts0505b.json b/tests/data/legacy_devices/tz3210-hxtfthp5-ts0505b.json similarity index 100% rename from tests/data/devices/tz3210-hxtfthp5-ts0505b.json rename to tests/data/legacy_devices/tz3210-hxtfthp5-ts0505b.json diff --git a/tests/data/devices/tz3210-j4pdtz9v-ts0001-0x00000062.json b/tests/data/legacy_devices/tz3210-j4pdtz9v-ts0001-0x00000062.json similarity index 100% rename from tests/data/devices/tz3210-j4pdtz9v-ts0001-0x00000062.json rename to tests/data/legacy_devices/tz3210-j4pdtz9v-ts0001-0x00000062.json diff --git a/tests/data/devices/tz3210-k1msuvg6-ts110e-0x00000040.json b/tests/data/legacy_devices/tz3210-k1msuvg6-ts110e-0x00000040.json similarity index 100% rename from tests/data/devices/tz3210-k1msuvg6-ts110e-0x00000040.json rename to tests/data/legacy_devices/tz3210-k1msuvg6-ts110e-0x00000040.json diff --git a/tests/data/devices/tz3210-kjafhwd2-ts0210-0x00000044.json b/tests/data/legacy_devices/tz3210-kjafhwd2-ts0210-0x00000044.json similarity index 100% rename from tests/data/devices/tz3210-kjafhwd2-ts0210-0x00000044.json rename to tests/data/legacy_devices/tz3210-kjafhwd2-ts0210-0x00000044.json diff --git a/tests/data/devices/tz3210-klv2wul0-ts0505b-0x00000065.json b/tests/data/legacy_devices/tz3210-klv2wul0-ts0505b-0x00000065.json similarity index 100% rename from tests/data/devices/tz3210-klv2wul0-ts0505b-0x00000065.json rename to tests/data/legacy_devices/tz3210-klv2wul0-ts0505b-0x00000065.json diff --git a/tests/data/devices/tz3210-ncw88jfq-ts0201-0x00000083.json b/tests/data/legacy_devices/tz3210-ncw88jfq-ts0201-0x00000083.json similarity index 100% rename from tests/data/devices/tz3210-ncw88jfq-ts0201-0x00000083.json rename to tests/data/legacy_devices/tz3210-ncw88jfq-ts0201-0x00000083.json diff --git a/tests/data/devices/tz3210-qkj7rujp-ts0201-0x00000043.json b/tests/data/legacy_devices/tz3210-qkj7rujp-ts0201-0x00000043.json similarity index 100% rename from tests/data/devices/tz3210-qkj7rujp-ts0201-0x00000043.json rename to tests/data/legacy_devices/tz3210-qkj7rujp-ts0201-0x00000043.json diff --git a/tests/data/devices/tz3210-r5afgmkl-ts0505b-0x10013607.json b/tests/data/legacy_devices/tz3210-r5afgmkl-ts0505b-0x10013607.json similarity index 100% rename from tests/data/devices/tz3210-r5afgmkl-ts0505b-0x10013607.json rename to tests/data/legacy_devices/tz3210-r5afgmkl-ts0505b-0x10013607.json diff --git a/tests/data/devices/tz3210-ru41azca-ts0049-0x00000040.json b/tests/data/legacy_devices/tz3210-ru41azca-ts0049-0x00000040.json similarity index 100% rename from tests/data/devices/tz3210-ru41azca-ts0049-0x00000040.json rename to tests/data/legacy_devices/tz3210-ru41azca-ts0049-0x00000040.json diff --git a/tests/data/devices/tz3210-sb8x2xci-ts0001-0x00000047.json b/tests/data/legacy_devices/tz3210-sb8x2xci-ts0001-0x00000047.json similarity index 100% rename from tests/data/devices/tz3210-sb8x2xci-ts0001-0x00000047.json rename to tests/data/legacy_devices/tz3210-sb8x2xci-ts0001-0x00000047.json diff --git a/tests/data/devices/tz3210-sixywxvy-ts0505b.json b/tests/data/legacy_devices/tz3210-sixywxvy-ts0505b.json similarity index 100% rename from tests/data/devices/tz3210-sixywxvy-ts0505b.json rename to tests/data/legacy_devices/tz3210-sixywxvy-ts0505b.json diff --git a/tests/data/devices/tz3210-tgvtvdoc-ts0207-0x00000043.json b/tests/data/legacy_devices/tz3210-tgvtvdoc-ts0207-0x00000043.json similarity index 100% rename from tests/data/devices/tz3210-tgvtvdoc-ts0207-0x00000043.json rename to tests/data/legacy_devices/tz3210-tgvtvdoc-ts0207-0x00000043.json diff --git a/tests/data/devices/tz3210-u1dreag7-ts0502b-0x00000065.json b/tests/data/legacy_devices/tz3210-u1dreag7-ts0502b-0x00000065.json similarity index 100% rename from tests/data/devices/tz3210-u1dreag7-ts0502b-0x00000065.json rename to tests/data/legacy_devices/tz3210-u1dreag7-ts0502b-0x00000065.json diff --git a/tests/data/devices/tz3210-ue9kyjnj-ts0502b-0x00000059.json b/tests/data/legacy_devices/tz3210-ue9kyjnj-ts0502b-0x00000059.json similarity index 100% rename from tests/data/devices/tz3210-ue9kyjnj-ts0502b-0x00000059.json rename to tests/data/legacy_devices/tz3210-ue9kyjnj-ts0502b-0x00000059.json diff --git a/tests/data/devices/tz3210-umi6vbsz-ts0505b.json b/tests/data/legacy_devices/tz3210-umi6vbsz-ts0505b.json similarity index 100% rename from tests/data/devices/tz3210-umi6vbsz-ts0505b.json rename to tests/data/legacy_devices/tz3210-umi6vbsz-ts0505b.json diff --git a/tests/data/devices/tz3210-up3pngle-ts0205.json b/tests/data/legacy_devices/tz3210-up3pngle-ts0205.json similarity index 100% rename from tests/data/devices/tz3210-up3pngle-ts0205.json rename to tests/data/legacy_devices/tz3210-up3pngle-ts0205.json diff --git a/tests/data/devices/tz3210-wuhzzfqg-ts0202-0x000000a1.json b/tests/data/legacy_devices/tz3210-wuhzzfqg-ts0202-0x000000a1.json similarity index 100% rename from tests/data/devices/tz3210-wuhzzfqg-ts0202-0x000000a1.json rename to tests/data/legacy_devices/tz3210-wuhzzfqg-ts0202-0x000000a1.json diff --git a/tests/data/devices/tz3218-7fiyo3kv-ts000f-0x00000051.json b/tests/data/legacy_devices/tz3218-7fiyo3kv-ts000f-0x00000051.json similarity index 100% rename from tests/data/devices/tz3218-7fiyo3kv-ts000f-0x00000051.json rename to tests/data/legacy_devices/tz3218-7fiyo3kv-ts000f-0x00000051.json diff --git a/tests/data/devices/tz3218-awarhusb-ts0225.json b/tests/data/legacy_devices/tz3218-awarhusb-ts0225.json similarity index 100% rename from tests/data/devices/tz3218-awarhusb-ts0225.json rename to tests/data/legacy_devices/tz3218-awarhusb-ts0225.json diff --git a/tests/data/devices/tz3218-ya5d6wth-ts000f-0x00000064.json b/tests/data/legacy_devices/tz3218-ya5d6wth-ts000f-0x00000064.json similarity index 100% rename from tests/data/devices/tz3218-ya5d6wth-ts000f-0x00000064.json rename to tests/data/legacy_devices/tz3218-ya5d6wth-ts000f-0x00000064.json diff --git a/tests/data/devices/tz3290-7v1k4vufotpowp9z-ts1201.json b/tests/data/legacy_devices/tz3290-7v1k4vufotpowp9z-ts1201.json similarity index 100% rename from tests/data/devices/tz3290-7v1k4vufotpowp9z-ts1201.json rename to tests/data/legacy_devices/tz3290-7v1k4vufotpowp9z-ts1201.json diff --git a/tests/data/devices/tz6210-duv6fhwt-ts0601-0x00000042.json b/tests/data/legacy_devices/tz6210-duv6fhwt-ts0601-0x00000042.json similarity index 100% rename from tests/data/devices/tz6210-duv6fhwt-ts0601-0x00000042.json rename to tests/data/legacy_devices/tz6210-duv6fhwt-ts0601-0x00000042.json diff --git a/tests/data/devices/tzb210-417ikxay-ts0505b-0x00000040.json b/tests/data/legacy_devices/tzb210-417ikxay-ts0505b-0x00000040.json similarity index 100% rename from tests/data/devices/tzb210-417ikxay-ts0505b-0x00000040.json rename to tests/data/legacy_devices/tzb210-417ikxay-ts0505b-0x00000040.json diff --git a/tests/data/devices/tze200-1n2zev06-ts0601.json b/tests/data/legacy_devices/tze200-1n2zev06-ts0601.json similarity index 100% rename from tests/data/devices/tze200-1n2zev06-ts0601.json rename to tests/data/legacy_devices/tze200-1n2zev06-ts0601.json diff --git a/tests/data/devices/tze200-2aaelwxk-ts0225.json b/tests/data/legacy_devices/tze200-2aaelwxk-ts0225.json similarity index 100% rename from tests/data/devices/tze200-2aaelwxk-ts0225.json rename to tests/data/legacy_devices/tze200-2aaelwxk-ts0225.json diff --git a/tests/data/devices/tze200-2ekuz3dz-ts0601.json b/tests/data/legacy_devices/tze200-2ekuz3dz-ts0601.json similarity index 100% rename from tests/data/devices/tze200-2ekuz3dz-ts0601.json rename to tests/data/legacy_devices/tze200-2ekuz3dz-ts0601.json diff --git a/tests/data/devices/tze200-2gtsuokt-ts0601.json b/tests/data/legacy_devices/tze200-2gtsuokt-ts0601.json similarity index 100% rename from tests/data/devices/tze200-2gtsuokt-ts0601.json rename to tests/data/legacy_devices/tze200-2gtsuokt-ts0601.json diff --git a/tests/data/devices/tze200-2se8efxh-ts0601-0x00000048.json b/tests/data/legacy_devices/tze200-2se8efxh-ts0601-0x00000048.json similarity index 100% rename from tests/data/devices/tze200-2se8efxh-ts0601-0x00000048.json rename to tests/data/legacy_devices/tze200-2se8efxh-ts0601-0x00000048.json diff --git a/tests/data/devices/tze200-3t91nb6k-ts0601-0x00000046.json b/tests/data/legacy_devices/tze200-3t91nb6k-ts0601-0x00000046.json similarity index 100% rename from tests/data/devices/tze200-3t91nb6k-ts0601-0x00000046.json rename to tests/data/legacy_devices/tze200-3t91nb6k-ts0601-0x00000046.json diff --git a/tests/data/devices/tze200-3towulqd-ts0601-0x00000046.json b/tests/data/legacy_devices/tze200-3towulqd-ts0601-0x00000046.json similarity index 100% rename from tests/data/devices/tze200-3towulqd-ts0601-0x00000046.json rename to tests/data/legacy_devices/tze200-3towulqd-ts0601-0x00000046.json diff --git a/tests/data/devices/tze200-3ylew7b4-ts0601.json b/tests/data/legacy_devices/tze200-3ylew7b4-ts0601.json similarity index 100% rename from tests/data/devices/tze200-3ylew7b4-ts0601.json rename to tests/data/legacy_devices/tze200-3ylew7b4-ts0601.json diff --git a/tests/data/devices/tze200-4utwozi2-ts0601-0x00000043.json b/tests/data/legacy_devices/tze200-4utwozi2-ts0601-0x00000043.json similarity index 100% rename from tests/data/devices/tze200-4utwozi2-ts0601-0x00000043.json rename to tests/data/legacy_devices/tze200-4utwozi2-ts0601-0x00000043.json diff --git a/tests/data/devices/tze200-4wxtg5y9-ts0601.json b/tests/data/legacy_devices/tze200-4wxtg5y9-ts0601.json similarity index 100% rename from tests/data/devices/tze200-4wxtg5y9-ts0601.json rename to tests/data/legacy_devices/tze200-4wxtg5y9-ts0601.json diff --git a/tests/data/devices/tze200-68nvbio9-ts0601.json b/tests/data/legacy_devices/tze200-68nvbio9-ts0601.json similarity index 100% rename from tests/data/devices/tze200-68nvbio9-ts0601.json rename to tests/data/legacy_devices/tze200-68nvbio9-ts0601.json diff --git a/tests/data/devices/tze200-6rdj8dzm-ts0601.json b/tests/data/legacy_devices/tze200-6rdj8dzm-ts0601.json similarity index 100% rename from tests/data/devices/tze200-6rdj8dzm-ts0601.json rename to tests/data/legacy_devices/tze200-6rdj8dzm-ts0601.json diff --git a/tests/data/devices/tze200-7bztmfm1-ts0601-0x00000046.json b/tests/data/legacy_devices/tze200-7bztmfm1-ts0601-0x00000046.json similarity index 100% rename from tests/data/devices/tze200-7bztmfm1-ts0601-0x00000046.json rename to tests/data/legacy_devices/tze200-7bztmfm1-ts0601-0x00000046.json diff --git a/tests/data/devices/tze200-7ytb3h8u-ts0601-0x00000048.json b/tests/data/legacy_devices/tze200-7ytb3h8u-ts0601-0x00000048.json similarity index 100% rename from tests/data/devices/tze200-7ytb3h8u-ts0601-0x00000048.json rename to tests/data/legacy_devices/tze200-7ytb3h8u-ts0601-0x00000048.json diff --git a/tests/data/devices/tze200-81isopgh-ts0601-0x00000048.json b/tests/data/legacy_devices/tze200-81isopgh-ts0601-0x00000048.json similarity index 100% rename from tests/data/devices/tze200-81isopgh-ts0601-0x00000048.json rename to tests/data/legacy_devices/tze200-81isopgh-ts0601-0x00000048.json diff --git a/tests/data/devices/tze200-86nbew0j-ts0601.json b/tests/data/legacy_devices/tze200-86nbew0j-ts0601.json similarity index 100% rename from tests/data/devices/tze200-86nbew0j-ts0601.json rename to tests/data/legacy_devices/tze200-86nbew0j-ts0601.json diff --git a/tests/data/devices/tze200-8whfphjv-ts0601-0x00000048.json b/tests/data/legacy_devices/tze200-8whfphjv-ts0601-0x00000048.json similarity index 100% rename from tests/data/devices/tze200-8whfphjv-ts0601-0x00000048.json rename to tests/data/legacy_devices/tze200-8whfphjv-ts0601-0x00000048.json diff --git a/tests/data/devices/tze200-9xfjixap-ts0601-0x00000043.json b/tests/data/legacy_devices/tze200-9xfjixap-ts0601-0x00000043.json similarity index 100% rename from tests/data/devices/tze200-9xfjixap-ts0601-0x00000043.json rename to tests/data/legacy_devices/tze200-9xfjixap-ts0601-0x00000043.json diff --git a/tests/data/devices/tze200-a0syesf5-ts0601.json b/tests/data/legacy_devices/tze200-a0syesf5-ts0601.json similarity index 100% rename from tests/data/devices/tze200-a0syesf5-ts0601.json rename to tests/data/legacy_devices/tze200-a0syesf5-ts0601.json diff --git a/tests/data/devices/tze200-a1dia7ml-ts0601.json b/tests/data/legacy_devices/tze200-a1dia7ml-ts0601.json similarity index 100% rename from tests/data/devices/tze200-a1dia7ml-ts0601.json rename to tests/data/legacy_devices/tze200-a1dia7ml-ts0601.json diff --git a/tests/data/devices/tze200-a7sghmms-ts0601-0x00000048.json b/tests/data/legacy_devices/tze200-a7sghmms-ts0601-0x00000048.json similarity index 100% rename from tests/data/devices/tze200-a7sghmms-ts0601-0x00000048.json rename to tests/data/legacy_devices/tze200-a7sghmms-ts0601-0x00000048.json diff --git a/tests/data/devices/tze200-a7sghmms-ts0601.json b/tests/data/legacy_devices/tze200-a7sghmms-ts0601.json similarity index 100% rename from tests/data/devices/tze200-a7sghmms-ts0601.json rename to tests/data/legacy_devices/tze200-a7sghmms-ts0601.json diff --git a/tests/data/devices/tze200-abatw3kj-ts0601-0x00000046.json b/tests/data/legacy_devices/tze200-abatw3kj-ts0601-0x00000046.json similarity index 100% rename from tests/data/devices/tze200-abatw3kj-ts0601-0x00000046.json rename to tests/data/legacy_devices/tze200-abatw3kj-ts0601-0x00000046.json diff --git a/tests/data/devices/tze200-agumlajc-ts0601.json b/tests/data/legacy_devices/tze200-agumlajc-ts0601.json similarity index 100% rename from tests/data/devices/tze200-agumlajc-ts0601.json rename to tests/data/legacy_devices/tze200-agumlajc-ts0601.json diff --git a/tests/data/devices/tze200-akjefhj5-ts0601.json b/tests/data/legacy_devices/tze200-akjefhj5-ts0601.json similarity index 100% rename from tests/data/devices/tze200-akjefhj5-ts0601.json rename to tests/data/legacy_devices/tze200-akjefhj5-ts0601.json diff --git a/tests/data/devices/tze200-aoclfnxz-ts0601.json b/tests/data/legacy_devices/tze200-aoclfnxz-ts0601.json similarity index 100% rename from tests/data/devices/tze200-aoclfnxz-ts0601.json rename to tests/data/legacy_devices/tze200-aoclfnxz-ts0601.json diff --git a/tests/data/devices/tze200-bcusnqt8-ts0601.json b/tests/data/legacy_devices/tze200-bcusnqt8-ts0601.json similarity index 100% rename from tests/data/devices/tze200-bcusnqt8-ts0601.json rename to tests/data/legacy_devices/tze200-bcusnqt8-ts0601.json diff --git a/tests/data/devices/tze200-bvrlmajk-ts0601.json b/tests/data/legacy_devices/tze200-bvrlmajk-ts0601.json similarity index 100% rename from tests/data/devices/tze200-bvrlmajk-ts0601.json rename to tests/data/legacy_devices/tze200-bvrlmajk-ts0601.json diff --git a/tests/data/devices/tze200-byzdayie-ts0601.json b/tests/data/legacy_devices/tze200-byzdayie-ts0601.json similarity index 100% rename from tests/data/devices/tze200-byzdayie-ts0601.json rename to tests/data/legacy_devices/tze200-byzdayie-ts0601.json diff --git a/tests/data/devices/tze200-c88teujp-ts0601-0x00000055.json b/tests/data/legacy_devices/tze200-c88teujp-ts0601-0x00000055.json similarity index 100% rename from tests/data/devices/tze200-c88teujp-ts0601-0x00000055.json rename to tests/data/legacy_devices/tze200-c88teujp-ts0601-0x00000055.json diff --git a/tests/data/devices/tze200-cirvgep4-ts0601-0x00000048.json b/tests/data/legacy_devices/tze200-cirvgep4-ts0601-0x00000048.json similarity index 100% rename from tests/data/devices/tze200-cirvgep4-ts0601-0x00000048.json rename to tests/data/legacy_devices/tze200-cirvgep4-ts0601-0x00000048.json diff --git a/tests/data/devices/tze200-cpbo62rn-ts0601.json b/tests/data/legacy_devices/tze200-cpbo62rn-ts0601.json similarity index 100% rename from tests/data/devices/tze200-cpbo62rn-ts0601.json rename to tests/data/legacy_devices/tze200-cpbo62rn-ts0601.json diff --git a/tests/data/devices/tze200-cpmgn2cf-ts0601.json b/tests/data/legacy_devices/tze200-cpmgn2cf-ts0601.json similarity index 100% rename from tests/data/devices/tze200-cpmgn2cf-ts0601.json rename to tests/data/legacy_devices/tze200-cpmgn2cf-ts0601.json diff --git a/tests/data/devices/tze200-crq3r3la-ck-bl702-mws-01-7016.json b/tests/data/legacy_devices/tze200-crq3r3la-ck-bl702-mws-01-7016.json similarity index 100% rename from tests/data/devices/tze200-crq3r3la-ck-bl702-mws-01-7016.json rename to tests/data/legacy_devices/tze200-crq3r3la-ck-bl702-mws-01-7016.json diff --git a/tests/data/devices/tze200-dwcarsat-ts0601.json b/tests/data/legacy_devices/tze200-dwcarsat-ts0601.json similarity index 100% rename from tests/data/devices/tze200-dwcarsat-ts0601.json rename to tests/data/legacy_devices/tze200-dwcarsat-ts0601.json diff --git a/tests/data/devices/tze200-e5hpkc6d-ts0601.json b/tests/data/legacy_devices/tze200-e5hpkc6d-ts0601.json similarity index 100% rename from tests/data/devices/tze200-e5hpkc6d-ts0601.json rename to tests/data/legacy_devices/tze200-e5hpkc6d-ts0601.json diff --git a/tests/data/devices/tze200-eevqq1uv-ts0601.json b/tests/data/legacy_devices/tze200-eevqq1uv-ts0601.json similarity index 100% rename from tests/data/devices/tze200-eevqq1uv-ts0601.json rename to tests/data/legacy_devices/tze200-eevqq1uv-ts0601.json diff --git a/tests/data/devices/tze200-ewxhg6o9-ts0601.json b/tests/data/legacy_devices/tze200-ewxhg6o9-ts0601.json similarity index 100% rename from tests/data/devices/tze200-ewxhg6o9-ts0601.json rename to tests/data/legacy_devices/tze200-ewxhg6o9-ts0601.json diff --git a/tests/data/devices/tze200-f1pvdgoh-ts0601.json b/tests/data/legacy_devices/tze200-f1pvdgoh-ts0601.json similarity index 100% rename from tests/data/devices/tze200-f1pvdgoh-ts0601.json rename to tests/data/legacy_devices/tze200-f1pvdgoh-ts0601.json diff --git a/tests/data/devices/tze200-fvldku9h-ts0601.json b/tests/data/legacy_devices/tze200-fvldku9h-ts0601.json similarity index 100% rename from tests/data/devices/tze200-fvldku9h-ts0601.json rename to tests/data/legacy_devices/tze200-fvldku9h-ts0601.json diff --git a/tests/data/devices/tze200-g9a3awaj-ts0601-0x00000048.json b/tests/data/legacy_devices/tze200-g9a3awaj-ts0601-0x00000048.json similarity index 100% rename from tests/data/devices/tze200-g9a3awaj-ts0601-0x00000048.json rename to tests/data/legacy_devices/tze200-g9a3awaj-ts0601-0x00000048.json diff --git a/tests/data/devices/tze200-gjldowol-ts0601-0x00000050.json b/tests/data/legacy_devices/tze200-gjldowol-ts0601-0x00000050.json similarity index 100% rename from tests/data/devices/tze200-gjldowol-ts0601-0x00000050.json rename to tests/data/legacy_devices/tze200-gjldowol-ts0601-0x00000050.json diff --git a/tests/data/devices/tze200-gkfbdvyx-ts0601.json b/tests/data/legacy_devices/tze200-gkfbdvyx-ts0601.json similarity index 100% rename from tests/data/devices/tze200-gkfbdvyx-ts0601.json rename to tests/data/legacy_devices/tze200-gkfbdvyx-ts0601.json diff --git a/tests/data/devices/tze200-gubdgai2-ts0601.json b/tests/data/legacy_devices/tze200-gubdgai2-ts0601.json similarity index 100% rename from tests/data/devices/tze200-gubdgai2-ts0601.json rename to tests/data/legacy_devices/tze200-gubdgai2-ts0601.json diff --git a/tests/data/devices/tze200-guvc7pdy-ts0601-0x00000046.json b/tests/data/legacy_devices/tze200-guvc7pdy-ts0601-0x00000046.json similarity index 100% rename from tests/data/devices/tze200-guvc7pdy-ts0601-0x00000046.json rename to tests/data/legacy_devices/tze200-guvc7pdy-ts0601-0x00000046.json diff --git a/tests/data/devices/tze200-h4cgnbzg-ts0601.json b/tests/data/legacy_devices/tze200-h4cgnbzg-ts0601.json similarity index 100% rename from tests/data/devices/tze200-h4cgnbzg-ts0601.json rename to tests/data/legacy_devices/tze200-h4cgnbzg-ts0601.json diff --git a/tests/data/devices/tze200-hhrtiq0x-ts0601-0x00000055.json b/tests/data/legacy_devices/tze200-hhrtiq0x-ts0601-0x00000055.json similarity index 100% rename from tests/data/devices/tze200-hhrtiq0x-ts0601-0x00000055.json rename to tests/data/legacy_devices/tze200-hhrtiq0x-ts0601-0x00000055.json diff --git a/tests/data/devices/tze200-hl0ss9oa-ts0225.json b/tests/data/legacy_devices/tze200-hl0ss9oa-ts0225.json similarity index 100% rename from tests/data/devices/tze200-hl0ss9oa-ts0225.json rename to tests/data/legacy_devices/tze200-hl0ss9oa-ts0225.json diff --git a/tests/data/devices/tze200-hr0tdd47-ts0601-0x00000048.json b/tests/data/legacy_devices/tze200-hr0tdd47-ts0601-0x00000048.json similarity index 100% rename from tests/data/devices/tze200-hr0tdd47-ts0601-0x00000048.json rename to tests/data/legacy_devices/tze200-hr0tdd47-ts0601-0x00000048.json diff --git a/tests/data/devices/tze200-iba1ckek-ts0601.json b/tests/data/legacy_devices/tze200-iba1ckek-ts0601.json similarity index 100% rename from tests/data/devices/tze200-iba1ckek-ts0601.json rename to tests/data/legacy_devices/tze200-iba1ckek-ts0601.json diff --git a/tests/data/devices/tze200-ijey4q29-ts0601.json b/tests/data/legacy_devices/tze200-ijey4q29-ts0601.json similarity index 100% rename from tests/data/devices/tze200-ijey4q29-ts0601.json rename to tests/data/legacy_devices/tze200-ijey4q29-ts0601.json diff --git a/tests/data/devices/tze200-iuk8kupi-ts0601.json b/tests/data/legacy_devices/tze200-iuk8kupi-ts0601.json similarity index 100% rename from tests/data/devices/tze200-iuk8kupi-ts0601.json rename to tests/data/legacy_devices/tze200-iuk8kupi-ts0601.json diff --git a/tests/data/devices/tze200-js3mgbjb-ts0601-0x00000044.json b/tests/data/legacy_devices/tze200-js3mgbjb-ts0601-0x00000044.json similarity index 100% rename from tests/data/devices/tze200-js3mgbjb-ts0601-0x00000044.json rename to tests/data/legacy_devices/tze200-js3mgbjb-ts0601-0x00000044.json diff --git a/tests/data/devices/tze200-jva8ink8-ts0601.json b/tests/data/legacy_devices/tze200-jva8ink8-ts0601.json similarity index 100% rename from tests/data/devices/tze200-jva8ink8-ts0601.json rename to tests/data/legacy_devices/tze200-jva8ink8-ts0601.json diff --git a/tests/data/devices/tze200-kb5noeto-ts0601.json b/tests/data/legacy_devices/tze200-kb5noeto-ts0601.json similarity index 100% rename from tests/data/devices/tze200-kb5noeto-ts0601.json rename to tests/data/legacy_devices/tze200-kb5noeto-ts0601.json diff --git a/tests/data/devices/tze200-khozatfx-ts0601.json b/tests/data/legacy_devices/tze200-khozatfx-ts0601.json similarity index 100% rename from tests/data/devices/tze200-khozatfx-ts0601.json rename to tests/data/legacy_devices/tze200-khozatfx-ts0601.json diff --git a/tests/data/devices/tze200-la2c2uo9-ts0601.json b/tests/data/legacy_devices/tze200-la2c2uo9-ts0601.json similarity index 100% rename from tests/data/devices/tze200-la2c2uo9-ts0601.json rename to tests/data/legacy_devices/tze200-la2c2uo9-ts0601.json diff --git a/tests/data/devices/tze200-laqjm8qd-ts0601.json b/tests/data/legacy_devices/tze200-laqjm8qd-ts0601.json similarity index 100% rename from tests/data/devices/tze200-laqjm8qd-ts0601.json rename to tests/data/legacy_devices/tze200-laqjm8qd-ts0601.json diff --git a/tests/data/devices/tze200-libht6ua-ts0601.json b/tests/data/legacy_devices/tze200-libht6ua-ts0601.json similarity index 100% rename from tests/data/devices/tze200-libht6ua-ts0601.json rename to tests/data/legacy_devices/tze200-libht6ua-ts0601.json diff --git a/tests/data/devices/tze200-locansqn-ts0601-0x00000048.json b/tests/data/legacy_devices/tze200-locansqn-ts0601-0x00000048.json similarity index 100% rename from tests/data/devices/tze200-locansqn-ts0601-0x00000048.json rename to tests/data/legacy_devices/tze200-locansqn-ts0601-0x00000048.json diff --git a/tests/data/devices/tze200-m9skfctm-ts0601.json b/tests/data/legacy_devices/tze200-m9skfctm-ts0601.json similarity index 100% rename from tests/data/devices/tze200-m9skfctm-ts0601.json rename to tests/data/legacy_devices/tze200-m9skfctm-ts0601.json diff --git a/tests/data/devices/tze200-mgxy2d9f-ts0601-0x00000043.json b/tests/data/legacy_devices/tze200-mgxy2d9f-ts0601-0x00000043.json similarity index 100% rename from tests/data/devices/tze200-mgxy2d9f-ts0601-0x00000043.json rename to tests/data/legacy_devices/tze200-mgxy2d9f-ts0601-0x00000043.json diff --git a/tests/data/devices/tze200-mja3fuja-ts0601.json b/tests/data/legacy_devices/tze200-mja3fuja-ts0601.json similarity index 100% rename from tests/data/devices/tze200-mja3fuja-ts0601.json rename to tests/data/legacy_devices/tze200-mja3fuja-ts0601.json diff --git a/tests/data/devices/tze200-moycceze-ts0601-0x00000043.json b/tests/data/legacy_devices/tze200-moycceze-ts0601-0x00000043.json similarity index 100% rename from tests/data/devices/tze200-moycceze-ts0601-0x00000043.json rename to tests/data/legacy_devices/tze200-moycceze-ts0601-0x00000043.json diff --git a/tests/data/devices/tze200-mz5y07w2-ts0601.json b/tests/data/legacy_devices/tze200-mz5y07w2-ts0601.json similarity index 100% rename from tests/data/devices/tze200-mz5y07w2-ts0601.json rename to tests/data/legacy_devices/tze200-mz5y07w2-ts0601.json diff --git a/tests/data/devices/tze200-mzik0ov2-ts0601.json b/tests/data/legacy_devices/tze200-mzik0ov2-ts0601.json similarity index 100% rename from tests/data/devices/tze200-mzik0ov2-ts0601.json rename to tests/data/legacy_devices/tze200-mzik0ov2-ts0601.json diff --git a/tests/data/devices/tze200-nklqjk62-ts0601.json b/tests/data/legacy_devices/tze200-nklqjk62-ts0601.json similarity index 100% rename from tests/data/devices/tze200-nklqjk62-ts0601.json rename to tests/data/legacy_devices/tze200-nklqjk62-ts0601.json diff --git a/tests/data/devices/tze200-nojsjtj2-ts0601.json b/tests/data/legacy_devices/tze200-nojsjtj2-ts0601.json similarity index 100% rename from tests/data/devices/tze200-nojsjtj2-ts0601.json rename to tests/data/legacy_devices/tze200-nojsjtj2-ts0601.json diff --git a/tests/data/devices/tze200-npj9bug3-ts0601.json b/tests/data/legacy_devices/tze200-npj9bug3-ts0601.json similarity index 100% rename from tests/data/devices/tze200-npj9bug3-ts0601.json rename to tests/data/legacy_devices/tze200-npj9bug3-ts0601.json diff --git a/tests/data/devices/tze200-ntcy3xu1-ts0601.json b/tests/data/legacy_devices/tze200-ntcy3xu1-ts0601.json similarity index 100% rename from tests/data/devices/tze200-ntcy3xu1-ts0601.json rename to tests/data/legacy_devices/tze200-ntcy3xu1-ts0601.json diff --git a/tests/data/devices/tze200-ny94onlb-ts0601.json b/tests/data/legacy_devices/tze200-ny94onlb-ts0601.json similarity index 100% rename from tests/data/devices/tze200-ny94onlb-ts0601.json rename to tests/data/legacy_devices/tze200-ny94onlb-ts0601.json diff --git a/tests/data/devices/tze200-nyvavzbj-ts0601.json b/tests/data/legacy_devices/tze200-nyvavzbj-ts0601.json similarity index 100% rename from tests/data/devices/tze200-nyvavzbj-ts0601.json rename to tests/data/legacy_devices/tze200-nyvavzbj-ts0601.json diff --git a/tests/data/devices/tze200-pay2byax-ts0601.json b/tests/data/legacy_devices/tze200-pay2byax-ts0601.json similarity index 100% rename from tests/data/devices/tze200-pay2byax-ts0601.json rename to tests/data/legacy_devices/tze200-pay2byax-ts0601.json diff --git a/tests/data/devices/tze200-pl31aqf5-ts0601-0x00000046.json b/tests/data/legacy_devices/tze200-pl31aqf5-ts0601-0x00000046.json similarity index 100% rename from tests/data/devices/tze200-pl31aqf5-ts0601-0x00000046.json rename to tests/data/legacy_devices/tze200-pl31aqf5-ts0601-0x00000046.json diff --git a/tests/data/devices/tze200-pw7mji0l-ts0601.json b/tests/data/legacy_devices/tze200-pw7mji0l-ts0601.json similarity index 100% rename from tests/data/devices/tze200-pw7mji0l-ts0601.json rename to tests/data/legacy_devices/tze200-pw7mji0l-ts0601.json diff --git a/tests/data/devices/tze200-qhlxve78-ts0601.json b/tests/data/legacy_devices/tze200-qhlxve78-ts0601.json similarity index 100% rename from tests/data/devices/tze200-qhlxve78-ts0601.json rename to tests/data/legacy_devices/tze200-qhlxve78-ts0601.json diff --git a/tests/data/devices/tze200-qrztc3ev-ts0601.json b/tests/data/legacy_devices/tze200-qrztc3ev-ts0601.json similarity index 100% rename from tests/data/devices/tze200-qrztc3ev-ts0601.json rename to tests/data/legacy_devices/tze200-qrztc3ev-ts0601.json diff --git a/tests/data/devices/tze200-qyflbnbj-ts0601-0x00000046.json b/tests/data/legacy_devices/tze200-qyflbnbj-ts0601-0x00000046.json similarity index 100% rename from tests/data/devices/tze200-qyflbnbj-ts0601-0x00000046.json rename to tests/data/legacy_devices/tze200-qyflbnbj-ts0601-0x00000046.json diff --git a/tests/data/devices/tze200-r32ctezx-ts0601-0x00000046.json b/tests/data/legacy_devices/tze200-r32ctezx-ts0601-0x00000046.json similarity index 100% rename from tests/data/devices/tze200-r32ctezx-ts0601-0x00000046.json rename to tests/data/legacy_devices/tze200-r32ctezx-ts0601-0x00000046.json diff --git a/tests/data/devices/tze200-rccxox8p-ts0601.json b/tests/data/legacy_devices/tze200-rccxox8p-ts0601.json similarity index 100% rename from tests/data/devices/tze200-rccxox8p-ts0601.json rename to tests/data/legacy_devices/tze200-rccxox8p-ts0601.json diff --git a/tests/data/devices/tze200-rk1wojce-ts0601.json b/tests/data/legacy_devices/tze200-rk1wojce-ts0601.json similarity index 100% rename from tests/data/devices/tze200-rk1wojce-ts0601.json rename to tests/data/legacy_devices/tze200-rk1wojce-ts0601.json diff --git a/tests/data/devices/tze200-rks0sgb7-ts0601.json b/tests/data/legacy_devices/tze200-rks0sgb7-ts0601.json similarity index 100% rename from tests/data/devices/tze200-rks0sgb7-ts0601.json rename to tests/data/legacy_devices/tze200-rks0sgb7-ts0601.json diff --git a/tests/data/devices/tze200-rmymn92d-ts0601-0x00000046.json b/tests/data/legacy_devices/tze200-rmymn92d-ts0601-0x00000046.json similarity index 100% rename from tests/data/devices/tze200-rmymn92d-ts0601-0x00000046.json rename to tests/data/legacy_devices/tze200-rmymn92d-ts0601-0x00000046.json diff --git a/tests/data/devices/tze200-rtrmfadk-ts0601.json b/tests/data/legacy_devices/tze200-rtrmfadk-ts0601.json similarity index 100% rename from tests/data/devices/tze200-rtrmfadk-ts0601.json rename to tests/data/legacy_devices/tze200-rtrmfadk-ts0601.json diff --git a/tests/data/devices/tze200-rxq4iti9-ts0601.json b/tests/data/legacy_devices/tze200-rxq4iti9-ts0601.json similarity index 100% rename from tests/data/devices/tze200-rxq4iti9-ts0601.json rename to tests/data/legacy_devices/tze200-rxq4iti9-ts0601.json diff --git a/tests/data/devices/tze200-s6hzw8g2-ts0601.json b/tests/data/legacy_devices/tze200-s6hzw8g2-ts0601.json similarity index 100% rename from tests/data/devices/tze200-s6hzw8g2-ts0601.json rename to tests/data/legacy_devices/tze200-s6hzw8g2-ts0601.json diff --git a/tests/data/devices/tze200-t1blo2bj-ts0601.json b/tests/data/legacy_devices/tze200-t1blo2bj-ts0601.json similarity index 100% rename from tests/data/devices/tze200-t1blo2bj-ts0601.json rename to tests/data/legacy_devices/tze200-t1blo2bj-ts0601.json diff --git a/tests/data/devices/tze200-t6gq6nju-ts0601.json b/tests/data/legacy_devices/tze200-t6gq6nju-ts0601.json similarity index 100% rename from tests/data/devices/tze200-t6gq6nju-ts0601.json rename to tests/data/legacy_devices/tze200-t6gq6nju-ts0601.json diff --git a/tests/data/devices/tze200-udank5zs-ts0601.json b/tests/data/legacy_devices/tze200-udank5zs-ts0601.json similarity index 100% rename from tests/data/devices/tze200-udank5zs-ts0601.json rename to tests/data/legacy_devices/tze200-udank5zs-ts0601.json diff --git a/tests/data/devices/tze200-uf1qujxj-ts0601-0x00000048.json b/tests/data/legacy_devices/tze200-uf1qujxj-ts0601-0x00000048.json similarity index 100% rename from tests/data/devices/tze200-uf1qujxj-ts0601-0x00000048.json rename to tests/data/legacy_devices/tze200-uf1qujxj-ts0601-0x00000048.json diff --git a/tests/data/devices/tze200-v1jqz5cy-ts0601.json b/tests/data/legacy_devices/tze200-v1jqz5cy-ts0601.json similarity index 100% rename from tests/data/devices/tze200-v1jqz5cy-ts0601.json rename to tests/data/legacy_devices/tze200-v1jqz5cy-ts0601.json diff --git a/tests/data/devices/tze200-v9hkz2yn-ts0601.json b/tests/data/legacy_devices/tze200-v9hkz2yn-ts0601.json similarity index 100% rename from tests/data/devices/tze200-v9hkz2yn-ts0601.json rename to tests/data/legacy_devices/tze200-v9hkz2yn-ts0601.json diff --git a/tests/data/devices/tze200-viy9ihs7-ts0601.json b/tests/data/legacy_devices/tze200-viy9ihs7-ts0601.json similarity index 100% rename from tests/data/devices/tze200-viy9ihs7-ts0601.json rename to tests/data/legacy_devices/tze200-viy9ihs7-ts0601.json diff --git a/tests/data/devices/tze200-vuqzj1ej-ts0601.json b/tests/data/legacy_devices/tze200-vuqzj1ej-ts0601.json similarity index 100% rename from tests/data/devices/tze200-vuqzj1ej-ts0601.json rename to tests/data/legacy_devices/tze200-vuqzj1ej-ts0601.json diff --git a/tests/data/devices/tze200-vvmbj46n-ts0601-0x00000048.json b/tests/data/legacy_devices/tze200-vvmbj46n-ts0601-0x00000048.json similarity index 100% rename from tests/data/devices/tze200-vvmbj46n-ts0601-0x00000048.json rename to tests/data/legacy_devices/tze200-vvmbj46n-ts0601-0x00000048.json diff --git a/tests/data/devices/tze200-wdfurkoa-ts0601-0x00000041.json b/tests/data/legacy_devices/tze200-wdfurkoa-ts0601-0x00000041.json similarity index 100% rename from tests/data/devices/tze200-wdfurkoa-ts0601-0x00000041.json rename to tests/data/legacy_devices/tze200-wdfurkoa-ts0601-0x00000041.json diff --git a/tests/data/devices/tze200-wfxuhoea-ts0601-0x00000046.json b/tests/data/legacy_devices/tze200-wfxuhoea-ts0601-0x00000046.json similarity index 100% rename from tests/data/devices/tze200-wfxuhoea-ts0601-0x00000046.json rename to tests/data/legacy_devices/tze200-wfxuhoea-ts0601-0x00000046.json diff --git a/tests/data/devices/tze200-wktrysab-ts0601.json b/tests/data/legacy_devices/tze200-wktrysab-ts0601.json similarity index 100% rename from tests/data/devices/tze200-wktrysab-ts0601.json rename to tests/data/legacy_devices/tze200-wktrysab-ts0601.json diff --git a/tests/data/devices/tze200-wqashyqo-ts0601.json b/tests/data/legacy_devices/tze200-wqashyqo-ts0601.json similarity index 100% rename from tests/data/devices/tze200-wqashyqo-ts0601.json rename to tests/data/legacy_devices/tze200-wqashyqo-ts0601.json diff --git a/tests/data/devices/tze200-xu4a5rhj-ts0601.json b/tests/data/legacy_devices/tze200-xu4a5rhj-ts0601.json similarity index 100% rename from tests/data/devices/tze200-xu4a5rhj-ts0601.json rename to tests/data/legacy_devices/tze200-xu4a5rhj-ts0601.json diff --git a/tests/data/devices/tze200-ya4ft0w4-ts0601.json b/tests/data/legacy_devices/tze200-ya4ft0w4-ts0601.json similarity index 100% rename from tests/data/devices/tze200-ya4ft0w4-ts0601.json rename to tests/data/legacy_devices/tze200-ya4ft0w4-ts0601.json diff --git a/tests/data/devices/tze200-yia0p3tr-ts0601-0x00000046.json b/tests/data/legacy_devices/tze200-yia0p3tr-ts0601-0x00000046.json similarity index 100% rename from tests/data/devices/tze200-yia0p3tr-ts0601-0x00000046.json rename to tests/data/legacy_devices/tze200-yia0p3tr-ts0601-0x00000046.json diff --git a/tests/data/devices/tze200-yjjdcqsq-ts0601.json b/tests/data/legacy_devices/tze200-yjjdcqsq-ts0601.json similarity index 100% rename from tests/data/devices/tze200-yjjdcqsq-ts0601.json rename to tests/data/legacy_devices/tze200-yjjdcqsq-ts0601.json diff --git a/tests/data/devices/tze200-yojqa8xn-ts0601.json b/tests/data/legacy_devices/tze200-yojqa8xn-ts0601.json similarity index 100% rename from tests/data/devices/tze200-yojqa8xn-ts0601.json rename to tests/data/legacy_devices/tze200-yojqa8xn-ts0601.json diff --git a/tests/data/devices/tze200-yvx5lh6k-ts0601.json b/tests/data/legacy_devices/tze200-yvx5lh6k-ts0601.json similarity index 100% rename from tests/data/devices/tze200-yvx5lh6k-ts0601.json rename to tests/data/legacy_devices/tze200-yvx5lh6k-ts0601.json diff --git a/tests/data/devices/tze200-yw7cahqs-ts0601-0x00000055.json b/tests/data/legacy_devices/tze200-yw7cahqs-ts0601-0x00000055.json similarity index 100% rename from tests/data/devices/tze200-yw7cahqs-ts0601-0x00000055.json rename to tests/data/legacy_devices/tze200-yw7cahqs-ts0601-0x00000055.json diff --git a/tests/data/devices/tze200-ztvwu4nk-ts0601.json b/tests/data/legacy_devices/tze200-ztvwu4nk-ts0601.json similarity index 100% rename from tests/data/devices/tze200-ztvwu4nk-ts0601.json rename to tests/data/legacy_devices/tze200-ztvwu4nk-ts0601.json diff --git a/tests/data/devices/tze204-1fuxihti-ts0601.json b/tests/data/legacy_devices/tze204-1fuxihti-ts0601.json similarity index 100% rename from tests/data/devices/tze204-1fuxihti-ts0601.json rename to tests/data/legacy_devices/tze204-1fuxihti-ts0601.json diff --git a/tests/data/devices/tze204-1youk3hj-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-1youk3hj-ts0601-0x0000004a.json similarity index 100% rename from tests/data/devices/tze204-1youk3hj-ts0601-0x0000004a.json rename to tests/data/legacy_devices/tze204-1youk3hj-ts0601-0x0000004a.json diff --git a/tests/data/devices/tze204-4fblxpma-ts0601-0x00000049.json b/tests/data/legacy_devices/tze204-4fblxpma-ts0601-0x00000049.json similarity index 100% rename from tests/data/devices/tze204-4fblxpma-ts0601-0x00000049.json rename to tests/data/legacy_devices/tze204-4fblxpma-ts0601-0x00000049.json diff --git a/tests/data/devices/tze204-5slehgeo-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-5slehgeo-ts0601-0x0000004a.json similarity index 100% rename from tests/data/devices/tze204-5slehgeo-ts0601-0x0000004a.json rename to tests/data/legacy_devices/tze204-5slehgeo-ts0601-0x0000004a.json diff --git a/tests/data/devices/tze204-5toc8efa-ts0601.json b/tests/data/legacy_devices/tze204-5toc8efa-ts0601.json similarity index 100% rename from tests/data/devices/tze204-5toc8efa-ts0601.json rename to tests/data/legacy_devices/tze204-5toc8efa-ts0601.json diff --git a/tests/data/devices/tze204-7ytb3h8u-ts0601.json b/tests/data/legacy_devices/tze204-7ytb3h8u-ts0601.json similarity index 100% rename from tests/data/devices/tze204-7ytb3h8u-ts0601.json rename to tests/data/legacy_devices/tze204-7ytb3h8u-ts0601.json diff --git a/tests/data/devices/tze204-81yrt3lo-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-81yrt3lo-ts0601-0x0000004a.json similarity index 100% rename from tests/data/devices/tze204-81yrt3lo-ts0601-0x0000004a.json rename to tests/data/legacy_devices/tze204-81yrt3lo-ts0601-0x0000004a.json diff --git a/tests/data/devices/tze204-9yapgbuv-ts0601.json b/tests/data/legacy_devices/tze204-9yapgbuv-ts0601.json similarity index 100% rename from tests/data/devices/tze204-9yapgbuv-ts0601.json rename to tests/data/legacy_devices/tze204-9yapgbuv-ts0601.json diff --git a/tests/data/devices/tze204-a2jcoyuk-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-a2jcoyuk-ts0601-0x0000004a.json similarity index 100% rename from tests/data/devices/tze204-a2jcoyuk-ts0601-0x0000004a.json rename to tests/data/legacy_devices/tze204-a2jcoyuk-ts0601-0x0000004a.json diff --git a/tests/data/devices/tze204-ai4rqhky-ts0601-0x00000049.json b/tests/data/legacy_devices/tze204-ai4rqhky-ts0601-0x00000049.json similarity index 100% rename from tests/data/devices/tze204-ai4rqhky-ts0601-0x00000049.json rename to tests/data/legacy_devices/tze204-ai4rqhky-ts0601-0x00000049.json diff --git a/tests/data/devices/tze204-aoclfnxz-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-aoclfnxz-ts0601-0x0000004a.json similarity index 100% rename from tests/data/devices/tze204-aoclfnxz-ts0601-0x0000004a.json rename to tests/data/legacy_devices/tze204-aoclfnxz-ts0601-0x0000004a.json diff --git a/tests/data/devices/tze204-bkkmqmyo-ts0601.json b/tests/data/legacy_devices/tze204-bkkmqmyo-ts0601.json similarity index 100% rename from tests/data/devices/tze204-bkkmqmyo-ts0601.json rename to tests/data/legacy_devices/tze204-bkkmqmyo-ts0601.json diff --git a/tests/data/devices/tze204-c2fmom5z-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-c2fmom5z-ts0601-0x0000004a.json similarity index 100% rename from tests/data/devices/tze204-c2fmom5z-ts0601-0x0000004a.json rename to tests/data/legacy_devices/tze204-c2fmom5z-ts0601-0x0000004a.json diff --git a/tests/data/devices/tze204-chbyv06x-ts0601.json b/tests/data/legacy_devices/tze204-chbyv06x-ts0601.json similarity index 100% rename from tests/data/devices/tze204-chbyv06x-ts0601.json rename to tests/data/legacy_devices/tze204-chbyv06x-ts0601.json diff --git a/tests/data/devices/tze204-cirvgep4-ts0601-0x00000049.json b/tests/data/legacy_devices/tze204-cirvgep4-ts0601-0x00000049.json similarity index 100% rename from tests/data/devices/tze204-cirvgep4-ts0601-0x00000049.json rename to tests/data/legacy_devices/tze204-cirvgep4-ts0601-0x00000049.json diff --git a/tests/data/devices/tze204-cjbofhxw-ts0601.json b/tests/data/legacy_devices/tze204-cjbofhxw-ts0601.json similarity index 100% rename from tests/data/devices/tze204-cjbofhxw-ts0601.json rename to tests/data/legacy_devices/tze204-cjbofhxw-ts0601.json diff --git a/tests/data/devices/tze204-d6i25bwg-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-d6i25bwg-ts0601-0x0000004a.json similarity index 100% rename from tests/data/devices/tze204-d6i25bwg-ts0601-0x0000004a.json rename to tests/data/legacy_devices/tze204-d6i25bwg-ts0601-0x0000004a.json diff --git a/tests/data/devices/tze204-dtzziy1e-ts0601.json b/tests/data/legacy_devices/tze204-dtzziy1e-ts0601.json similarity index 100% rename from tests/data/devices/tze204-dtzziy1e-ts0601.json rename to tests/data/legacy_devices/tze204-dtzziy1e-ts0601.json diff --git a/tests/data/devices/tze204-dwcarsat-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-dwcarsat-ts0601-0x0000004a.json similarity index 100% rename from tests/data/devices/tze204-dwcarsat-ts0601-0x0000004a.json rename to tests/data/legacy_devices/tze204-dwcarsat-ts0601-0x0000004a.json diff --git a/tests/data/devices/tze204-ex3rcdha-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-ex3rcdha-ts0601-0x0000004a.json similarity index 100% rename from tests/data/devices/tze204-ex3rcdha-ts0601-0x0000004a.json rename to tests/data/legacy_devices/tze204-ex3rcdha-ts0601-0x0000004a.json diff --git a/tests/data/devices/tze204-fhvdgeuh-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-fhvdgeuh-ts0601-0x0000004a.json similarity index 100% rename from tests/data/devices/tze204-fhvdgeuh-ts0601-0x0000004a.json rename to tests/data/legacy_devices/tze204-fhvdgeuh-ts0601-0x0000004a.json diff --git a/tests/data/devices/tze204-g2ki0ejr-ts0601.json b/tests/data/legacy_devices/tze204-g2ki0ejr-ts0601.json similarity index 100% rename from tests/data/devices/tze204-g2ki0ejr-ts0601.json rename to tests/data/legacy_devices/tze204-g2ki0ejr-ts0601.json diff --git a/tests/data/devices/tze204-goecjd1t-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-goecjd1t-ts0601-0x0000004a.json similarity index 100% rename from tests/data/devices/tze204-goecjd1t-ts0601-0x0000004a.json rename to tests/data/legacy_devices/tze204-goecjd1t-ts0601-0x0000004a.json diff --git a/tests/data/devices/tze204-gops3slb-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-gops3slb-ts0601-0x0000004a.json similarity index 100% rename from tests/data/devices/tze204-gops3slb-ts0601-0x0000004a.json rename to tests/data/legacy_devices/tze204-gops3slb-ts0601-0x0000004a.json diff --git a/tests/data/devices/tze204-guvc7pdy-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-guvc7pdy-ts0601-0x0000004a.json similarity index 100% rename from tests/data/devices/tze204-guvc7pdy-ts0601-0x0000004a.json rename to tests/data/legacy_devices/tze204-guvc7pdy-ts0601-0x0000004a.json diff --git a/tests/data/devices/tze204-hlx9tnzb-ts0601.json b/tests/data/legacy_devices/tze204-hlx9tnzb-ts0601.json similarity index 100% rename from tests/data/devices/tze204-hlx9tnzb-ts0601.json rename to tests/data/legacy_devices/tze204-hlx9tnzb-ts0601.json diff --git a/tests/data/devices/tze204-iaeejhvf-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-iaeejhvf-ts0601-0x0000004a.json similarity index 100% rename from tests/data/devices/tze204-iaeejhvf-ts0601-0x0000004a.json rename to tests/data/legacy_devices/tze204-iaeejhvf-ts0601-0x0000004a.json diff --git a/tests/data/devices/tze204-ijxvkhd0-ts0601.json b/tests/data/legacy_devices/tze204-ijxvkhd0-ts0601.json similarity index 100% rename from tests/data/devices/tze204-ijxvkhd0-ts0601.json rename to tests/data/legacy_devices/tze204-ijxvkhd0-ts0601.json diff --git a/tests/data/devices/tze204-jrcfsaa3-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-jrcfsaa3-ts0601-0x0000004a.json similarity index 100% rename from tests/data/devices/tze204-jrcfsaa3-ts0601-0x0000004a.json rename to tests/data/legacy_devices/tze204-jrcfsaa3-ts0601-0x0000004a.json diff --git a/tests/data/devices/tze204-k7mfgaen-ts0601.json b/tests/data/legacy_devices/tze204-k7mfgaen-ts0601.json similarity index 100% rename from tests/data/devices/tze204-k7mfgaen-ts0601.json rename to tests/data/legacy_devices/tze204-k7mfgaen-ts0601.json diff --git a/tests/data/devices/tze204-kobbcyum-ts0601.json b/tests/data/legacy_devices/tze204-kobbcyum-ts0601.json similarity index 100% rename from tests/data/devices/tze204-kobbcyum-ts0601.json rename to tests/data/legacy_devices/tze204-kobbcyum-ts0601.json diff --git a/tests/data/devices/tze204-kyhbrfyl-ts0601.json b/tests/data/legacy_devices/tze204-kyhbrfyl-ts0601.json similarity index 100% rename from tests/data/devices/tze204-kyhbrfyl-ts0601.json rename to tests/data/legacy_devices/tze204-kyhbrfyl-ts0601.json diff --git a/tests/data/devices/tze204-l8xiyymq-ts0601.json b/tests/data/legacy_devices/tze204-l8xiyymq-ts0601.json similarity index 100% rename from tests/data/devices/tze204-l8xiyymq-ts0601.json rename to tests/data/legacy_devices/tze204-l8xiyymq-ts0601.json diff --git a/tests/data/devices/tze204-lb0fsvba-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-lb0fsvba-ts0601-0x0000004a.json similarity index 100% rename from tests/data/devices/tze204-lb0fsvba-ts0601-0x0000004a.json rename to tests/data/legacy_devices/tze204-lb0fsvba-ts0601-0x0000004a.json diff --git a/tests/data/devices/tze204-lbbg34rj-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-lbbg34rj-ts0601-0x0000004a.json similarity index 100% rename from tests/data/devices/tze204-lbbg34rj-ts0601-0x0000004a.json rename to tests/data/legacy_devices/tze204-lbbg34rj-ts0601-0x0000004a.json diff --git a/tests/data/devices/tze204-lsanae15-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-lsanae15-ts0601-0x0000004a.json similarity index 100% rename from tests/data/devices/tze204-lsanae15-ts0601-0x0000004a.json rename to tests/data/legacy_devices/tze204-lsanae15-ts0601-0x0000004a.json diff --git a/tests/data/devices/tze204-ltwbm23f-ts0601-0x0000004e.json b/tests/data/legacy_devices/tze204-ltwbm23f-ts0601-0x0000004e.json similarity index 100% rename from tests/data/devices/tze204-ltwbm23f-ts0601-0x0000004e.json rename to tests/data/legacy_devices/tze204-ltwbm23f-ts0601-0x0000004e.json diff --git a/tests/data/devices/tze204-lzriup1j-ts0601.json b/tests/data/legacy_devices/tze204-lzriup1j-ts0601.json similarity index 100% rename from tests/data/devices/tze204-lzriup1j-ts0601.json rename to tests/data/legacy_devices/tze204-lzriup1j-ts0601.json diff --git a/tests/data/devices/tze204-m64smti7-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-m64smti7-ts0601-0x0000004a.json similarity index 100% rename from tests/data/devices/tze204-m64smti7-ts0601-0x0000004a.json rename to tests/data/legacy_devices/tze204-m64smti7-ts0601-0x0000004a.json diff --git a/tests/data/devices/tze204-m9dzckna-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-m9dzckna-ts0601-0x0000004a.json similarity index 100% rename from tests/data/devices/tze204-m9dzckna-ts0601-0x0000004a.json rename to tests/data/legacy_devices/tze204-m9dzckna-ts0601-0x0000004a.json diff --git a/tests/data/devices/tze204-mpbki2zm-ts0601.json b/tests/data/legacy_devices/tze204-mpbki2zm-ts0601.json similarity index 100% rename from tests/data/devices/tze204-mpbki2zm-ts0601.json rename to tests/data/legacy_devices/tze204-mpbki2zm-ts0601.json diff --git a/tests/data/devices/tze204-mtoaryre-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-mtoaryre-ts0601-0x0000004a.json similarity index 100% rename from tests/data/devices/tze204-mtoaryre-ts0601-0x0000004a.json rename to tests/data/legacy_devices/tze204-mtoaryre-ts0601-0x0000004a.json diff --git a/tests/data/devices/tze204-muvkrjr5-ts0601.json b/tests/data/legacy_devices/tze204-muvkrjr5-ts0601.json similarity index 100% rename from tests/data/devices/tze204-muvkrjr5-ts0601.json rename to tests/data/legacy_devices/tze204-muvkrjr5-ts0601.json diff --git a/tests/data/devices/tze204-mwomyz5n-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-mwomyz5n-ts0601-0x0000004a.json similarity index 100% rename from tests/data/devices/tze204-mwomyz5n-ts0601-0x0000004a.json rename to tests/data/legacy_devices/tze204-mwomyz5n-ts0601-0x0000004a.json diff --git a/tests/data/devices/tze204-nbkshs6k-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-nbkshs6k-ts0601-0x0000004a.json similarity index 100% rename from tests/data/devices/tze204-nbkshs6k-ts0601-0x0000004a.json rename to tests/data/legacy_devices/tze204-nbkshs6k-ts0601-0x0000004a.json diff --git a/tests/data/devices/tze204-nklqjk62-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-nklqjk62-ts0601-0x0000004a.json similarity index 100% rename from tests/data/devices/tze204-nklqjk62-ts0601-0x0000004a.json rename to tests/data/legacy_devices/tze204-nklqjk62-ts0601-0x0000004a.json diff --git a/tests/data/devices/tze204-nlrfgpny-ts0601-0x00000049.json b/tests/data/legacy_devices/tze204-nlrfgpny-ts0601-0x00000049.json similarity index 100% rename from tests/data/devices/tze204-nlrfgpny-ts0601-0x00000049.json rename to tests/data/legacy_devices/tze204-nlrfgpny-ts0601-0x00000049.json diff --git a/tests/data/devices/tze204-nvxorhcj-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-nvxorhcj-ts0601-0x0000004a.json similarity index 100% rename from tests/data/devices/tze204-nvxorhcj-ts0601-0x0000004a.json rename to tests/data/legacy_devices/tze204-nvxorhcj-ts0601-0x0000004a.json diff --git a/tests/data/devices/tze204-ogx8u5z6-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-ogx8u5z6-ts0601-0x0000004a.json similarity index 100% rename from tests/data/devices/tze204-ogx8u5z6-ts0601-0x0000004a.json rename to tests/data/legacy_devices/tze204-ogx8u5z6-ts0601-0x0000004a.json diff --git a/tests/data/devices/tze204-p3lqqy2r-ts0601.json b/tests/data/legacy_devices/tze204-p3lqqy2r-ts0601.json similarity index 100% rename from tests/data/devices/tze204-p3lqqy2r-ts0601.json rename to tests/data/legacy_devices/tze204-p3lqqy2r-ts0601.json diff --git a/tests/data/devices/tze204-pcdmj88b-ts0601-0x00000049.json b/tests/data/legacy_devices/tze204-pcdmj88b-ts0601-0x00000049.json similarity index 100% rename from tests/data/devices/tze204-pcdmj88b-ts0601-0x00000049.json rename to tests/data/legacy_devices/tze204-pcdmj88b-ts0601-0x00000049.json diff --git a/tests/data/devices/tze204-pxbjch8m-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-pxbjch8m-ts0601-0x0000004a.json similarity index 100% rename from tests/data/devices/tze204-pxbjch8m-ts0601-0x0000004a.json rename to tests/data/legacy_devices/tze204-pxbjch8m-ts0601-0x0000004a.json diff --git a/tests/data/devices/tze204-qasjif9e-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-qasjif9e-ts0601-0x0000004a.json similarity index 100% rename from tests/data/devices/tze204-qasjif9e-ts0601-0x0000004a.json rename to tests/data/legacy_devices/tze204-qasjif9e-ts0601-0x0000004a.json diff --git a/tests/data/devices/tze204-qtnjuoae-ts0601-0x00000049.json b/tests/data/legacy_devices/tze204-qtnjuoae-ts0601-0x00000049.json similarity index 100% rename from tests/data/devices/tze204-qtnjuoae-ts0601-0x00000049.json rename to tests/data/legacy_devices/tze204-qtnjuoae-ts0601-0x00000049.json diff --git a/tests/data/devices/tze204-qyr2m29i-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-qyr2m29i-ts0601-0x0000004a.json similarity index 100% rename from tests/data/devices/tze204-qyr2m29i-ts0601-0x0000004a.json rename to tests/data/legacy_devices/tze204-qyr2m29i-ts0601-0x0000004a.json diff --git a/tests/data/devices/tze204-r32ctezx-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-r32ctezx-ts0601-0x0000004a.json similarity index 100% rename from tests/data/devices/tze204-r32ctezx-ts0601-0x0000004a.json rename to tests/data/legacy_devices/tze204-r32ctezx-ts0601-0x0000004a.json diff --git a/tests/data/devices/tze204-rhblgy0z-ts0601.json b/tests/data/legacy_devices/tze204-rhblgy0z-ts0601.json similarity index 100% rename from tests/data/devices/tze204-rhblgy0z-ts0601.json rename to tests/data/legacy_devices/tze204-rhblgy0z-ts0601.json diff --git a/tests/data/devices/tze204-rtrmfadk-ts0601-0x00000049.json b/tests/data/legacy_devices/tze204-rtrmfadk-ts0601-0x00000049.json similarity index 100% rename from tests/data/devices/tze204-rtrmfadk-ts0601-0x00000049.json rename to tests/data/legacy_devices/tze204-rtrmfadk-ts0601-0x00000049.json diff --git a/tests/data/devices/tze204-rtrmfadk-ts0601.json b/tests/data/legacy_devices/tze204-rtrmfadk-ts0601.json similarity index 100% rename from tests/data/devices/tze204-rtrmfadk-ts0601.json rename to tests/data/legacy_devices/tze204-rtrmfadk-ts0601.json diff --git a/tests/data/devices/tze204-sooucan5-ts0601.json b/tests/data/legacy_devices/tze204-sooucan5-ts0601.json similarity index 100% rename from tests/data/devices/tze204-sooucan5-ts0601.json rename to tests/data/legacy_devices/tze204-sooucan5-ts0601.json diff --git a/tests/data/devices/tze204-srmahpwl-ts0601.json b/tests/data/legacy_devices/tze204-srmahpwl-ts0601.json similarity index 100% rename from tests/data/devices/tze204-srmahpwl-ts0601.json rename to tests/data/legacy_devices/tze204-srmahpwl-ts0601.json diff --git a/tests/data/devices/tze204-sxm7l9xa-ts0601.json b/tests/data/legacy_devices/tze204-sxm7l9xa-ts0601.json similarity index 100% rename from tests/data/devices/tze204-sxm7l9xa-ts0601.json rename to tests/data/legacy_devices/tze204-sxm7l9xa-ts0601.json diff --git a/tests/data/devices/tze204-tdhnhhiy-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-tdhnhhiy-ts0601-0x0000004a.json similarity index 100% rename from tests/data/devices/tze204-tdhnhhiy-ts0601-0x0000004a.json rename to tests/data/legacy_devices/tze204-tdhnhhiy-ts0601-0x0000004a.json diff --git a/tests/data/devices/tze204-ue3rzddr-ts0601.json b/tests/data/legacy_devices/tze204-ue3rzddr-ts0601.json similarity index 100% rename from tests/data/devices/tze204-ue3rzddr-ts0601.json rename to tests/data/legacy_devices/tze204-ue3rzddr-ts0601.json diff --git a/tests/data/devices/tze204-upagmta9-ts0601.json b/tests/data/legacy_devices/tze204-upagmta9-ts0601.json similarity index 100% rename from tests/data/devices/tze204-upagmta9-ts0601.json rename to tests/data/legacy_devices/tze204-upagmta9-ts0601.json diff --git a/tests/data/devices/tze204-uxllnywp-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-uxllnywp-ts0601-0x0000004a.json similarity index 100% rename from tests/data/devices/tze204-uxllnywp-ts0601-0x0000004a.json rename to tests/data/legacy_devices/tze204-uxllnywp-ts0601-0x0000004a.json diff --git a/tests/data/devices/tze204-w1wwxoja-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-w1wwxoja-ts0601-0x0000004a.json similarity index 100% rename from tests/data/devices/tze204-w1wwxoja-ts0601-0x0000004a.json rename to tests/data/legacy_devices/tze204-w1wwxoja-ts0601-0x0000004a.json diff --git a/tests/data/devices/tze204-wbhaespm-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-wbhaespm-ts0601-0x0000004a.json similarity index 100% rename from tests/data/devices/tze204-wbhaespm-ts0601-0x0000004a.json rename to tests/data/legacy_devices/tze204-wbhaespm-ts0601-0x0000004a.json diff --git a/tests/data/devices/tze204-x8fp01wi-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-x8fp01wi-ts0601-0x0000004a.json similarity index 100% rename from tests/data/devices/tze204-x8fp01wi-ts0601-0x0000004a.json rename to tests/data/legacy_devices/tze204-x8fp01wi-ts0601-0x0000004a.json diff --git a/tests/data/devices/tze204-x9usygq1-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-x9usygq1-ts0601-0x0000004a.json similarity index 100% rename from tests/data/devices/tze204-x9usygq1-ts0601-0x0000004a.json rename to tests/data/legacy_devices/tze204-x9usygq1-ts0601-0x0000004a.json diff --git a/tests/data/devices/tze204-xalsoe3m-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-xalsoe3m-ts0601-0x0000004a.json similarity index 100% rename from tests/data/devices/tze204-xalsoe3m-ts0601-0x0000004a.json rename to tests/data/legacy_devices/tze204-xalsoe3m-ts0601-0x0000004a.json diff --git a/tests/data/devices/tze204-xlppj4f5-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-xlppj4f5-ts0601-0x0000004a.json similarity index 100% rename from tests/data/devices/tze204-xlppj4f5-ts0601-0x0000004a.json rename to tests/data/legacy_devices/tze204-xlppj4f5-ts0601-0x0000004a.json diff --git a/tests/data/devices/tze204-xnbkhhdr-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-xnbkhhdr-ts0601-0x0000004a.json similarity index 100% rename from tests/data/devices/tze204-xnbkhhdr-ts0601-0x0000004a.json rename to tests/data/legacy_devices/tze204-xnbkhhdr-ts0601-0x0000004a.json diff --git a/tests/data/devices/tze204-ya4ft0w4-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-ya4ft0w4-ts0601-0x0000004a.json similarity index 100% rename from tests/data/devices/tze204-ya4ft0w4-ts0601-0x0000004a.json rename to tests/data/legacy_devices/tze204-ya4ft0w4-ts0601-0x0000004a.json diff --git a/tests/data/devices/tze204-yjjdcqsq-ts0601.json b/tests/data/legacy_devices/tze204-yjjdcqsq-ts0601.json similarity index 100% rename from tests/data/devices/tze204-yjjdcqsq-ts0601.json rename to tests/data/legacy_devices/tze204-yjjdcqsq-ts0601.json diff --git a/tests/data/devices/tze204-yvx5lh6k-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-yvx5lh6k-ts0601-0x0000004a.json similarity index 100% rename from tests/data/devices/tze204-yvx5lh6k-ts0601-0x0000004a.json rename to tests/data/legacy_devices/tze204-yvx5lh6k-ts0601-0x0000004a.json diff --git a/tests/data/devices/tze204-zenj4lxv-ts0601.json b/tests/data/legacy_devices/tze204-zenj4lxv-ts0601.json similarity index 100% rename from tests/data/devices/tze204-zenj4lxv-ts0601.json rename to tests/data/legacy_devices/tze204-zenj4lxv-ts0601.json diff --git a/tests/data/devices/tze204-ztqnh5cg-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-ztqnh5cg-ts0601-0x0000004a.json similarity index 100% rename from tests/data/devices/tze204-ztqnh5cg-ts0601-0x0000004a.json rename to tests/data/legacy_devices/tze204-ztqnh5cg-ts0601-0x0000004a.json diff --git a/tests/data/devices/tze204-zxkwaztm-ts0601.json b/tests/data/legacy_devices/tze204-zxkwaztm-ts0601.json similarity index 100% rename from tests/data/devices/tze204-zxkwaztm-ts0601.json rename to tests/data/legacy_devices/tze204-zxkwaztm-ts0601.json diff --git a/tests/data/devices/tze20c-xbexmf8h-ts130f-0x00000040.json b/tests/data/legacy_devices/tze20c-xbexmf8h-ts130f-0x00000040.json similarity index 100% rename from tests/data/devices/tze20c-xbexmf8h-ts130f-0x00000040.json rename to tests/data/legacy_devices/tze20c-xbexmf8h-ts130f-0x00000040.json diff --git a/tests/data/devices/tze20c-zka46xbw-ts0601-0x00000051.json b/tests/data/legacy_devices/tze20c-zka46xbw-ts0601-0x00000051.json similarity index 100% rename from tests/data/devices/tze20c-zka46xbw-ts0601-0x00000051.json rename to tests/data/legacy_devices/tze20c-zka46xbw-ts0601-0x00000051.json diff --git a/tests/data/devices/tze284-0zaf1cr8-ts0601.json b/tests/data/legacy_devices/tze284-0zaf1cr8-ts0601.json similarity index 100% rename from tests/data/devices/tze284-0zaf1cr8-ts0601.json rename to tests/data/legacy_devices/tze284-0zaf1cr8-ts0601.json diff --git a/tests/data/devices/tze284-2gi1hy8s-ts0601-0x00000050.json b/tests/data/legacy_devices/tze284-2gi1hy8s-ts0601-0x00000050.json similarity index 100% rename from tests/data/devices/tze284-2gi1hy8s-ts0601-0x00000050.json rename to tests/data/legacy_devices/tze284-2gi1hy8s-ts0601-0x00000050.json diff --git a/tests/data/devices/tze284-6ycgarab-ts0601-0x00000050.json b/tests/data/legacy_devices/tze284-6ycgarab-ts0601-0x00000050.json similarity index 100% rename from tests/data/devices/tze284-6ycgarab-ts0601-0x00000050.json rename to tests/data/legacy_devices/tze284-6ycgarab-ts0601-0x00000050.json diff --git a/tests/data/devices/tze284-a2xewxoo-ts0601-0x0000004e.json b/tests/data/legacy_devices/tze284-a2xewxoo-ts0601-0x0000004e.json similarity index 100% rename from tests/data/devices/tze284-a2xewxoo-ts0601-0x0000004e.json rename to tests/data/legacy_devices/tze284-a2xewxoo-ts0601-0x0000004e.json diff --git a/tests/data/devices/tze284-aao3yzhs-ts0601-0x0000004d.json b/tests/data/legacy_devices/tze284-aao3yzhs-ts0601-0x0000004d.json similarity index 100% rename from tests/data/devices/tze284-aao3yzhs-ts0601-0x0000004d.json rename to tests/data/legacy_devices/tze284-aao3yzhs-ts0601-0x0000004d.json diff --git a/tests/data/devices/tze284-aao3yzhs-ts0601.json b/tests/data/legacy_devices/tze284-aao3yzhs-ts0601.json similarity index 100% rename from tests/data/devices/tze284-aao3yzhs-ts0601.json rename to tests/data/legacy_devices/tze284-aao3yzhs-ts0601.json diff --git a/tests/data/devices/tze284-c6wv4xyo-ts0601-0x0000004d.json b/tests/data/legacy_devices/tze284-c6wv4xyo-ts0601-0x0000004d.json similarity index 100% rename from tests/data/devices/tze284-c6wv4xyo-ts0601-0x0000004d.json rename to tests/data/legacy_devices/tze284-c6wv4xyo-ts0601-0x0000004d.json diff --git a/tests/data/devices/tze284-cjbofhxw-ts0601.json b/tests/data/legacy_devices/tze284-cjbofhxw-ts0601.json similarity index 100% rename from tests/data/devices/tze284-cjbofhxw-ts0601.json rename to tests/data/legacy_devices/tze284-cjbofhxw-ts0601.json diff --git a/tests/data/devices/tze284-dmckrsxg-ts0601-0x0000004e.json b/tests/data/legacy_devices/tze284-dmckrsxg-ts0601-0x0000004e.json similarity index 100% rename from tests/data/devices/tze284-dmckrsxg-ts0601-0x0000004e.json rename to tests/data/legacy_devices/tze284-dmckrsxg-ts0601-0x0000004e.json diff --git a/tests/data/devices/tze284-f5efvtbv-ts0601-0x0000004e.json b/tests/data/legacy_devices/tze284-f5efvtbv-ts0601-0x0000004e.json similarity index 100% rename from tests/data/devices/tze284-f5efvtbv-ts0601-0x0000004e.json rename to tests/data/legacy_devices/tze284-f5efvtbv-ts0601-0x0000004e.json diff --git a/tests/data/devices/tze284-fhvpaltk-ts0601.json b/tests/data/legacy_devices/tze284-fhvpaltk-ts0601.json similarity index 100% rename from tests/data/devices/tze284-fhvpaltk-ts0601.json rename to tests/data/legacy_devices/tze284-fhvpaltk-ts0601.json diff --git a/tests/data/devices/tze284-fzo2pocs-ts0601.json b/tests/data/legacy_devices/tze284-fzo2pocs-ts0601.json similarity index 100% rename from tests/data/devices/tze284-fzo2pocs-ts0601.json rename to tests/data/legacy_devices/tze284-fzo2pocs-ts0601.json diff --git a/tests/data/devices/tze284-g2e6cpnw-ts0601-0x0000004d.json b/tests/data/legacy_devices/tze284-g2e6cpnw-ts0601-0x0000004d.json similarity index 100% rename from tests/data/devices/tze284-g2e6cpnw-ts0601-0x0000004d.json rename to tests/data/legacy_devices/tze284-g2e6cpnw-ts0601-0x0000004d.json diff --git a/tests/data/devices/tze284-iadro9bf-ts0601-0x0000004e.json b/tests/data/legacy_devices/tze284-iadro9bf-ts0601-0x0000004e.json similarity index 100% rename from tests/data/devices/tze284-iadro9bf-ts0601-0x0000004e.json rename to tests/data/legacy_devices/tze284-iadro9bf-ts0601-0x0000004e.json diff --git a/tests/data/devices/tze284-idvyees9-ts0601-0x0000004e.json b/tests/data/legacy_devices/tze284-idvyees9-ts0601-0x0000004e.json similarity index 100% rename from tests/data/devices/tze284-idvyees9-ts0601-0x0000004e.json rename to tests/data/legacy_devices/tze284-idvyees9-ts0601-0x0000004e.json diff --git a/tests/data/devices/tze284-kyyu8rbj-ts0601-0x0000004d.json b/tests/data/legacy_devices/tze284-kyyu8rbj-ts0601-0x0000004d.json similarity index 100% rename from tests/data/devices/tze284-kyyu8rbj-ts0601-0x0000004d.json rename to tests/data/legacy_devices/tze284-kyyu8rbj-ts0601-0x0000004d.json diff --git a/tests/data/devices/tze284-l8xiyymq-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze284-l8xiyymq-ts0601-0x0000004a.json similarity index 100% rename from tests/data/devices/tze284-l8xiyymq-ts0601-0x0000004a.json rename to tests/data/legacy_devices/tze284-l8xiyymq-ts0601-0x0000004a.json diff --git a/tests/data/devices/tze284-ltwbm23f-ts0601-0x0000004d.json b/tests/data/legacy_devices/tze284-ltwbm23f-ts0601-0x0000004d.json similarity index 100% rename from tests/data/devices/tze284-ltwbm23f-ts0601-0x0000004d.json rename to tests/data/legacy_devices/tze284-ltwbm23f-ts0601-0x0000004d.json diff --git a/tests/data/devices/tze284-myd45weu-ts0601-0x0000004d.json b/tests/data/legacy_devices/tze284-myd45weu-ts0601-0x0000004d.json similarity index 100% rename from tests/data/devices/tze284-myd45weu-ts0601-0x0000004d.json rename to tests/data/legacy_devices/tze284-myd45weu-ts0601-0x0000004d.json diff --git a/tests/data/devices/tze284-ne4pikwm-ts0601.json b/tests/data/legacy_devices/tze284-ne4pikwm-ts0601.json similarity index 100% rename from tests/data/devices/tze284-ne4pikwm-ts0601.json rename to tests/data/legacy_devices/tze284-ne4pikwm-ts0601.json diff --git a/tests/data/devices/tze284-nklqjk62-ts0601-0x0000004e.json b/tests/data/legacy_devices/tze284-nklqjk62-ts0601-0x0000004e.json similarity index 100% rename from tests/data/devices/tze284-nklqjk62-ts0601-0x0000004e.json rename to tests/data/legacy_devices/tze284-nklqjk62-ts0601-0x0000004e.json diff --git a/tests/data/devices/tze284-nnhwcvbk-ts0601-0x0000004d.json b/tests/data/legacy_devices/tze284-nnhwcvbk-ts0601-0x0000004d.json similarity index 100% rename from tests/data/devices/tze284-nnhwcvbk-ts0601-0x0000004d.json rename to tests/data/legacy_devices/tze284-nnhwcvbk-ts0601-0x0000004d.json diff --git a/tests/data/devices/tze284-o3x45p96-ts0601-0x0000004d.json b/tests/data/legacy_devices/tze284-o3x45p96-ts0601-0x0000004d.json similarity index 100% rename from tests/data/devices/tze284-o3x45p96-ts0601-0x0000004d.json rename to tests/data/legacy_devices/tze284-o3x45p96-ts0601-0x0000004d.json diff --git a/tests/data/devices/tze284-o9ofysmo-ts0601-0x00000050.json b/tests/data/legacy_devices/tze284-o9ofysmo-ts0601-0x00000050.json similarity index 100% rename from tests/data/devices/tze284-o9ofysmo-ts0601-0x00000050.json rename to tests/data/legacy_devices/tze284-o9ofysmo-ts0601-0x00000050.json diff --git a/tests/data/devices/tze284-ogx8u5z6-ts0601-0x0000004d.json b/tests/data/legacy_devices/tze284-ogx8u5z6-ts0601-0x0000004d.json similarity index 100% rename from tests/data/devices/tze284-ogx8u5z6-ts0601-0x0000004d.json rename to tests/data/legacy_devices/tze284-ogx8u5z6-ts0601-0x0000004d.json diff --git a/tests/data/devices/tze284-oitavov2-ts0601-0x00000050.json b/tests/data/legacy_devices/tze284-oitavov2-ts0601-0x00000050.json similarity index 100% rename from tests/data/devices/tze284-oitavov2-ts0601-0x00000050.json rename to tests/data/legacy_devices/tze284-oitavov2-ts0601-0x00000050.json diff --git a/tests/data/devices/tze284-pcdmj88b-ts0601-0x0000004d.json b/tests/data/legacy_devices/tze284-pcdmj88b-ts0601-0x0000004d.json similarity index 100% rename from tests/data/devices/tze284-pcdmj88b-ts0601-0x0000004d.json rename to tests/data/legacy_devices/tze284-pcdmj88b-ts0601-0x0000004d.json diff --git a/tests/data/devices/tze284-qyflbnbj-ts0601-0x0000004d.json b/tests/data/legacy_devices/tze284-qyflbnbj-ts0601-0x0000004d.json similarity index 100% rename from tests/data/devices/tze284-qyflbnbj-ts0601-0x0000004d.json rename to tests/data/legacy_devices/tze284-qyflbnbj-ts0601-0x0000004d.json diff --git a/tests/data/devices/tze284-rjxqso4a-ts0601-0x0000004d.json b/tests/data/legacy_devices/tze284-rjxqso4a-ts0601-0x0000004d.json similarity index 100% rename from tests/data/devices/tze284-rjxqso4a-ts0601-0x0000004d.json rename to tests/data/legacy_devices/tze284-rjxqso4a-ts0601-0x0000004d.json diff --git a/tests/data/devices/tze284-rlytpmij-ts0601-0x00000051.json b/tests/data/legacy_devices/tze284-rlytpmij-ts0601-0x00000051.json similarity index 100% rename from tests/data/devices/tze284-rlytpmij-ts0601-0x00000051.json rename to tests/data/legacy_devices/tze284-rlytpmij-ts0601-0x00000051.json diff --git a/tests/data/devices/tze284-rqcuwlsa-ts0601.json b/tests/data/legacy_devices/tze284-rqcuwlsa-ts0601.json similarity index 100% rename from tests/data/devices/tze284-rqcuwlsa-ts0601.json rename to tests/data/legacy_devices/tze284-rqcuwlsa-ts0601.json diff --git a/tests/data/devices/tze284-sgabhwa6-ts0601-0x0000004d.json b/tests/data/legacy_devices/tze284-sgabhwa6-ts0601-0x0000004d.json similarity index 100% rename from tests/data/devices/tze284-sgabhwa6-ts0601-0x0000004d.json rename to tests/data/legacy_devices/tze284-sgabhwa6-ts0601-0x0000004d.json diff --git a/tests/data/devices/tze284-upagmta9-ts0601-0x0000004d.json b/tests/data/legacy_devices/tze284-upagmta9-ts0601-0x0000004d.json similarity index 100% rename from tests/data/devices/tze284-upagmta9-ts0601-0x0000004d.json rename to tests/data/legacy_devices/tze284-upagmta9-ts0601-0x0000004d.json diff --git a/tests/data/devices/tze284-vawy74yh-ts0601-0x0000004d.json b/tests/data/legacy_devices/tze284-vawy74yh-ts0601-0x0000004d.json similarity index 100% rename from tests/data/devices/tze284-vawy74yh-ts0601-0x0000004d.json rename to tests/data/legacy_devices/tze284-vawy74yh-ts0601-0x0000004d.json diff --git a/tests/data/devices/tze284-vuwtqx0t-ts0601-0x00000050.json b/tests/data/legacy_devices/tze284-vuwtqx0t-ts0601-0x00000050.json similarity index 100% rename from tests/data/devices/tze284-vuwtqx0t-ts0601-0x00000050.json rename to tests/data/legacy_devices/tze284-vuwtqx0t-ts0601-0x00000050.json diff --git a/tests/data/devices/tze284-wtikaxzs-ts0601-0x0000004d.json b/tests/data/legacy_devices/tze284-wtikaxzs-ts0601-0x0000004d.json similarity index 100% rename from tests/data/devices/tze284-wtikaxzs-ts0601-0x0000004d.json rename to tests/data/legacy_devices/tze284-wtikaxzs-ts0601-0x0000004d.json diff --git a/tests/data/devices/tze284-zjhoqbrd-ts0601-0x0000004d.json b/tests/data/legacy_devices/tze284-zjhoqbrd-ts0601-0x0000004d.json similarity index 100% rename from tests/data/devices/tze284-zjhoqbrd-ts0601-0x0000004d.json rename to tests/data/legacy_devices/tze284-zjhoqbrd-ts0601-0x0000004d.json diff --git a/tests/data/devices/tze284-zm8zpwas-ts0601-0x00000050.json b/tests/data/legacy_devices/tze284-zm8zpwas-ts0601-0x00000050.json similarity index 100% rename from tests/data/devices/tze284-zm8zpwas-ts0601-0x00000050.json rename to tests/data/legacy_devices/tze284-zm8zpwas-ts0601-0x00000050.json diff --git a/tests/data/devices/tze600-iypcp4py-ts0105.json b/tests/data/legacy_devices/tze600-iypcp4py-ts0105.json similarity index 100% rename from tests/data/devices/tze600-iypcp4py-ts0105.json rename to tests/data/legacy_devices/tze600-iypcp4py-ts0105.json diff --git a/tests/data/devices/tze608-c75zqghm-ts0603-0x00000040.json b/tests/data/legacy_devices/tze608-c75zqghm-ts0603-0x00000040.json similarity index 100% rename from tests/data/devices/tze608-c75zqghm-ts0603-0x00000040.json rename to tests/data/legacy_devices/tze608-c75zqghm-ts0603-0x00000040.json diff --git a/tests/data/devices/uiot-uiot-windowcovring2-0402.json b/tests/data/legacy_devices/uiot-uiot-windowcovring2-0402.json similarity index 100% rename from tests/data/devices/uiot-uiot-windowcovring2-0402.json rename to tests/data/legacy_devices/uiot-uiot-windowcovring2-0402.json diff --git a/tests/data/devices/unk-manufacturer-unk-model.json b/tests/data/legacy_devices/unk-manufacturer-unk-model.json similarity index 100% rename from tests/data/devices/unk-manufacturer-unk-model.json rename to tests/data/legacy_devices/unk-manufacturer-unk-model.json diff --git a/tests/data/devices/visonic-mct-340-sma.json b/tests/data/legacy_devices/visonic-mct-340-sma.json similarity index 100% rename from tests/data/devices/visonic-mct-340-sma.json rename to tests/data/legacy_devices/visonic-mct-340-sma.json diff --git a/tests/data/devices/xyzroe-diy-zintercom.json b/tests/data/legacy_devices/xyzroe-diy-zintercom.json similarity index 100% rename from tests/data/devices/xyzroe-diy-zintercom.json rename to tests/data/legacy_devices/xyzroe-diy-zintercom.json diff --git a/tests/data/devices/zbeacon-ts0001.json b/tests/data/legacy_devices/zbeacon-ts0001.json similarity index 100% rename from tests/data/devices/zbeacon-ts0001.json rename to tests/data/legacy_devices/zbeacon-ts0001.json diff --git a/tests/data/devices/zbeacon-ts0505.json b/tests/data/legacy_devices/zbeacon-ts0505.json similarity index 100% rename from tests/data/devices/zbeacon-ts0505.json rename to tests/data/legacy_devices/zbeacon-ts0505.json diff --git a/tests/data/devices/zehnder-group-vaux-andigny-alcantara2-d1-00p1-02z1-00.json b/tests/data/legacy_devices/zehnder-group-vaux-andigny-alcantara2-d1-00p1-02z1-00.json similarity index 100% rename from tests/data/devices/zehnder-group-vaux-andigny-alcantara2-d1-00p1-02z1-00.json rename to tests/data/legacy_devices/zehnder-group-vaux-andigny-alcantara2-d1-00p1-02z1-00.json diff --git a/tests/data/devices/zemismart-spm02-3z3-0x0000000e.json b/tests/data/legacy_devices/zemismart-spm02-3z3-0x0000000e.json similarity index 100% rename from tests/data/devices/zemismart-spm02-3z3-0x0000000e.json rename to tests/data/legacy_devices/zemismart-spm02-3z3-0x0000000e.json diff --git a/tests/data/devices/zen-within-zen-01-0x0000021f.json b/tests/data/legacy_devices/zen-within-zen-01-0x0000021f.json similarity index 100% rename from tests/data/devices/zen-within-zen-01-0x0000021f.json rename to tests/data/legacy_devices/zen-within-zen-01-0x0000021f.json From f16e3edb94ee705cf4cffaf6ec33f87cfd0d24f9 Mon Sep 17 00:00:00 2001 From: puddly <32534428+puddly@users.noreply.github.com> Date: Thu, 25 Jun 2026 17:35:02 -0400 Subject: [PATCH 5/9] Regenerate 2: strip unreliable `original_signature` from legacy devices --- .../data/devices/innr-rc-250-0x21086500.json | 29 +- .../data/devices/innr-sp-120-0x11040002.json | 38 +- .../devices/inovelli-vzm35-sn-0x02020107.json | 11 +- .../devices/lixee-zlinky-tic-0x00000011.json | 48 + .../lumi-lumi-light-aqcn02-0x00000017.json | 67 +- .../data/devices/lumi-lumi-remote-b28ac1.json | 105 ++- .../lumi-lumi-vibration-agl01-0x0000001c.json | 49 +- tests/data/devices/lumi-lumi-weather.json | 95 +- tests/data/devices/sonoff-01minizb.json | 128 ++- .../devices/sonoff-snzb-06p-0x00001006.json | 102 +-- ...third-reality-inc-3rms16bz-0x0000004f.json | 52 +- .../data/devices/tz3000-1dd0d5yi-ts130f.json | 184 +--- .../data/devices/tz3000-cfnprab5-ts011f.json | 366 ++++++-- .../tz3000-o1jzcxou-ts011f-0x00000043.json | 125 ++- .../data/devices/tz3000-okaz9tjs-ts011f.json | 283 ++++-- ...90-ot6ewjvmejq5ekhl-ts1201-0x00000043.json | 26 +- .../tze200-sur6q7ko-ts0601-0x00000045.json | 76 +- .../tze204-lpedvtvr-ts0601-0x0000004a.json | 335 +------ .../tze204-ltwbm23f-ts0601-0x0000004a.json | 351 ++++++- .../tze204-qvxrkeif-ts0601-0x0000004a.json | 55 +- .../tze204-tagezcph-ts0601-0x0000004a.json | 12 +- .../tze204-vjpaih9f-ts0601-0x0000004a.json | 24 +- .../tze284-78ioiaml-ts0601-0x0000004a.json | 16 +- .../tze284-81yrt3lo-ts0601-0x0000004e.json | 122 ++- .../tze284-hodyryli-ts0601-0x00000050.json | 22 +- .../tze284-xnbkhhdr-ts0601-0x0000004d.json | 108 ++- .../legacy_devices/adeo-sin-4-fp-21-equ.json | 50 +- .../adeo-zb-watersensor-d0001-0x21120002.json | 36 - .../adurosmart-eria-adurolight-csc.json | 60 +- tests/data/legacy_devices/aeotec-zga004.json | 110 +-- .../legacy_devices/alab-alab-co2-1-1.json | 44 +- .../aqara-lumi-airrtc-aeu001-0x00000a1a.json | 43 - .../aqara-lumi-airrtc-aeu005-0x00001227.json | 35 - .../aqara-lumi-curtain-acn04.json | 39 +- .../aqara-lumi-light-acn132-0x00001a1a.json | 39 - .../aqara-lumi-light-agl003-0x0000001b.json | 49 - .../aqara-lumi-light-agl005-0x0000001b.json | 49 - ...ra-lumi-sensor-occupy-agl1-0x0000001a.json | 54 +- ...ra-lumi-sensor-occupy-agl8-0x00003422.json | 39 - .../aqara-lumi-switch-aeu003-0x00000e14.json | 117 +-- .../aqara-lumi-switch-agl010-0x00001315.json | 86 -- ...atlantic-group-adapter-zigbee-fujitsu.json | 59 +- .../aurora-doublesocket50au.json | 52 +- .../data/legacy_devices/awox-ercu-ws-zm.json | 53 -- .../legacy_devices/awox-esmlfzm-w6-dimm.json | 63 +- .../bitron-video-902010-24a.json | 44 +- .../bituo-technik-spm01x001.json | 38 +- .../bosch-rbsh-mms-zb-eu-0x11136760.json | 101 +-- .../bosch-rbsh-rth0-bat-zb-eu-0x02086a30.json | 39 - .../bosch-rbsh-rth0-zb-eu-0x03036a30.json | 45 +- .../bosch-rbsh-trv0-zb-eu-0x32051514.json | 41 +- .../bosch-rbsh-us4btn-zb-eu-0x100d6a30.json | 39 +- .../legacy_devices/busch-jaeger-rb01.json | 41 +- .../candeo-c-zb-lc20-dim-0x29013001.json | 39 +- .../candeo-c-zb-lc20-rgb-0x31013001.json | 38 - .../centralite-3300-0x1f075310.json | 39 +- .../data/legacy_devices/computime-slr2b.json | 66 +- .../data/legacy_devices/d5x84yu-et093wrg.json | 41 +- tests/data/legacy_devices/danfoss-0x8040.json | 42 +- .../danfoss-etrv0103-0x00000014.json | 41 +- tests/data/legacy_devices/datek-pop.json | 55 +- tests/data/legacy_devices/datek-ssds.json | 44 +- ...zhemi-zigbee-external-meter-interface.json | 45 - ...codim-bv-eco-dim-05-zigbee-0x00000001.json | 61 -- .../ecodim-bv-ecodim-zigbee-3-0.json | 63 +- tests/data/legacy_devices/enktro-acmidea.json | 36 +- .../espressif-zigbeeanalogdevice.json | 133 +-- .../eurotronic-spzb0001-0x4501001f.json | 37 +- ...l702-al-01-7009-z102lg03-1-0x00001203.json | 41 - ...nk-ck-tlsr8656-ss5-01-7000-0x00001102.json | 36 - tests/data/legacy_devices/ewelink-ds01.json | 34 - tests/data/legacy_devices/ewelink-ms01.json | 36 +- .../ewelink-snzb-01p-0x00002200.json | 37 - .../ewelink-snzb-03p-0x00002201.json | 40 +- .../ewelink-snzb-04p-0x00002200.json | 41 +- tests/data/legacy_devices/ewelink-th01.json | 55 +- tests/data/legacy_devices/ewelink-wb01.json | 65 +- .../data/legacy_devices/ewelink-zb-sw01.json | 37 +- .../ezviz-cs-t55-r100-g-0x00000002.json | 42 - .../frient-a-s-aqszb-110-0x00040001.json | 138 +-- .../frient-a-s-emizb-141-0x00030102.json | 170 ++-- .../frient-a-s-kepzb-110-0x0001060a.json | 47 - .../frient-a-s-kepzb-110-0x00020005.json | 103 +-- .../frient-a-s-moszb-140-0x00040006.json | 98 -- .../legacy_devices/frient-a-s-smszb-120.json | 60 -- .../generic-zigbee-coordinator-ezsp.json | 48 +- .../legacy_devices/gledopto-gl-b-008z.json | 37 +- .../gledopto-gl-c-009p-0x29013001.json | 38 - .../legacy_devices/gledpopto-gl-c-007p.json | 48 +- ...zigbee-smart-rotary-dimmer-0x00000002.json | 46 - .../legacy_devices/hive-mbr1-0x01047320.json | 96 +- .../data/legacy_devices/hobeian-zg-101zl.json | 43 - .../data/legacy_devices/hobeian-zg-102zm.json | 33 - .../data/legacy_devices/hobeian-zg-204zv.json | 234 +++-- .../horn-zone-haier-hs-22zw-0000011216.json | 34 +- ...dring-water-leakage-sensor-0x01000007.json | 42 +- ...f-sweden-ormanas-led-strip-0x01010010.json | 49 - ...arasoll-door-window-sensor-0x01000019.json | 122 +-- .../ikea-of-sweden-remote-control-n2.json | 43 +- ...ri-bulb-e14-ws-globe-470lm-0x01010020.json | 49 - ...i-bulb-e27-ws-globe-1055lm-0x02040005.json | 50 +- ...i-bulb-e27-ww-g95-cl-470lm-0x00011006.json | 49 +- ...of-sweden-tradfri-bulb-gu10-ww-345lm8.json | 50 +- .../ikea-of-sweden-tradfri-motion-sensor.json | 44 +- ...kea-of-sweden-tradfri-shortcut-button.json | 43 +- .../imagic-by-greatstar-1112-s.json | 45 +- .../innr-rs-232-c-0x22151511.json | 48 - .../innr-sp-240-0x191e3685.json | 51 +- .../innr-sp-242-0x17173685.json | 49 - .../lds-zb-onoffplug-d0005-0x21186230.json | 50 +- .../ledvance-a60s-rgbw-0x02146550.json | 49 +- .../legacy_devices/legrand-contactor.json | 55 +- .../legrand-double-gangs-remote-switch.json | 56 +- ...-light-switch-with-neutral-0x001c4203.json | 52 -- .../legrand-light-switch-with-neutral.json | 52 -- .../legrand-mobile-outlet-0x006545ff.json | 52 -- .../lumi-lumi-airrtc-agl001-0x0000001e.json | 507 ++--------- .../lumi-lumi-ctrl-neutral2.json | 80 +- .../lumi-lumi-curtain-acn002-0x00000e1f.json | 51 -- .../lumi-lumi-curtain-acn003.json | 41 +- .../lumi-lumi-curtain-hagl04.json | 39 +- .../lumi-lumi-motion-agl04-0x00000019.json | 194 +--- .../legacy_devices/lumi-lumi-plug-maeu01.json | 59 +- .../lumi-lumi-remote-cagl02.json | 117 +-- .../lumi-lumi-sensor-switch-aq2.json | 79 +- .../lumi-lumi-switch-b1lacn02.json | 71 +- .../lumi-lumi-switch-b2naus01.json | 114 +-- .../lumi-lumi-switch-b2nc01.json | 87 +- .../lumi-lumi-switch-l1aeu1-0x00000e0b.json | 55 -- .../lumi-lumi-switch-l2aeu1-0x00000e0b.json | 60 -- .../lumi-lumi-switch-n1aeu1.json | 60 +- .../mli-tint-extendedcolor-0x10012001.json | 49 +- .../nabu-casa-ha-connect-zbt-1.json | 48 +- .../legacy_devices/namron-as-1402790.json | 49 +- .../namron-as-4512785-0x0000000e.json | 50 - .../neuhaus-lighting-group-nlg-remote.json | 41 +- .../niko-nv-battery-switch-2-button.json | 54 +- ...nv-battery-switch-4-button-0x21046760.json | 74 +- ...nnectable-motor-control-3a-0x21160006.json | 48 +- .../legacy_devices/nodon-sin-4-fp-21.json | 50 +- .../occam-temp-sensor-v1-2-jan-19-2026.json | 35 - ...vibo-250bccf66c41421b91b5e3242942c164.json | 40 +- ...i-bo-cf31218e11c547179c9c9ade6a492799.json | 38 +- .../paulmann-licht-gmbh-501-34.json | 65 +- tests/data/legacy_devices/philips-lct026.json | 49 +- .../philips-lst002-0x01001700.json | 50 +- .../legacy_devices/ptvo-info-ptvo-switch.json | 107 +-- tests/data/legacy_devices/samjin-water.json | 40 +- ...chneider-electric-eko07259-0x01001d00.json | 86 -- ...r-electric-evsckt-outlet-1-0x020a00ff.json | 50 +- .../schneider-electric-lk-dimmer.json | 116 +-- ...electric-nhmotion-unidim-1-0x020b0fff.json | 64 -- .../schneider-electric-puck-dimmer-1.json | 48 +- ...er-electric-puck-shutter-1-0x020c02ff.json | 46 +- ...schneider-electric-s520619-0x01003500.json | 88 +- .../sercomm-corp-sz-esw01-au.json | 57 +- tests/data/legacy_devices/shelly-2pm.json | 86 +- .../legacy_devices/shelly-ecowitt-ws90.json | 40 - tests/data/legacy_devices/shelly-mini1pm.json | 52 -- .../shyugj-dimmer-switch-zb3-0.json | 48 +- ...ify-netherlands-b-v-lca001-0x01002802.json | 51 +- .../signify-netherlands-b-v-rdm004.json | 41 +- .../sinope-technologies-va4220zb.json | 47 +- .../smarthjemmet-dk-quad-zig-sw.json | 73 +- .../smarthjemmet-dk-quad-zig-sw2.json | 82 +- .../smartthings-multiv4-0x0000001b.json | 40 +- ...onesse-28-wf-li-ion-roller-0x4100e158.json | 47 - .../data/legacy_devices/sonoff-basiczbr3.json | 35 - .../legacy_devices/sonoff-dongle-e-r.json | 103 +-- .../sonoff-mini-zbrbs-0x00001005.json | 48 - .../sonoff-s26r2zb-0x00002000.json | 54 -- .../sonoff-s60zbtpg-0x00001002.json | 49 - .../legacy_devices/sonoff-swv-0x00001002.json | 42 +- .../legacy_devices/sonoff-swv-0x00001003.json | 40 - .../sonoff-trvzb-0x00001201.json | 45 +- .../sonoff-trvzb-0x00001400.json | 39 - .../sonoff-trvzb-0x00001401.json | 39 - .../sonoff-zbminil2-0x0000100e.json | 37 - .../sonoff-zbminir2-0x00001004.json | 47 - .../sunricher-on-off-2ch-0x00000004.json | 69 -- .../texas-instruments-cc2652.json | 48 +- .../texas-instruments-coordinator.json | 48 +- .../tyst11-czk78ptr-zk78ptr.json | 39 +- .../tyzb01-8scntis1-ts0216.json | 47 +- .../tyzb01-mtunwanm-ts011f.json | 37 +- .../tyzb01-qm6djpta-ts0215-0x00000046.json | 40 +- .../tz2000-k4yr34vv-sm0301.json | 50 +- .../tz3000-09gto2zn-ts0013.json | 57 +- .../tz3000-1o6x1bl0-ts0201-0x00000041.json | 37 - .../tz3000-2putqrmw-ts011f.json | 42 +- .../tz3000-2xlvlnez-ts011f.json | 49 - .../tz3000-3ias4w4o-ts011f-0x0000004e.json | 42 +- .../tz3000-5e235jpa-ts0042.json | 45 +- .../tz3000-5fkufhn1-ts0502a.json | 49 +- .../tz3000-5ity3zyu-ts0121.json | 41 +- .../tz3000-8nyaanzb-ts011f.json | 59 +- .../tz3000-a37eix1s-ts0004.json | 87 +- .../tz3000-a9buwvb7-ts0726.json | 105 +-- .../tz3000-adkvzooy-ts0042.json | 45 +- .../tz3000-aghwaexm-ts0001.json | 38 +- .../tz3000-bgsigers-ts0201-0x00000040.json | 37 - .../tz3000-bjawzodf-ty0201.json | 37 +- .../tz3000-cehuw1lw-ts011f-0x0000004d.json | 42 +- .../tz3000-cicwjqth-ts011f-0x74013001.json | 42 +- .../tz3000-dbou1ap4-ts0505a.json | 49 +- .../tz3000-dowj6gyi-ts0201.json | 39 +- .../tz3000-e2uieqop-ts0001.json | 40 +- .../tz3000-eamtuojw-ts0201-0x00000041.json | 37 +- .../tz3000-empogkya-ts0003.json | 74 +- .../tz3000-fdxihpp7-ts0001.json | 36 - .../tz3000-gbm10jnj-ts0043-0x00000042.json | 54 +- .../tz3000-gjpgagal-ts0049-0x00000049.json | 40 +- .../tz3000-gjrubzje-ts0001.json | 42 +- .../tz3000-hafsqare-ts0011-0x00000050.json | 37 +- .../tz3000-isw9u95y-ts0201-0x00000040.json | 39 - .../tz3000-j1xl73iw-ts130f-0x00000046.json | 59 +- .../tz3000-kmsbwdol-ts130f.json | 59 +- .../tz3000-kqvb5akv-ts0001-0x0000004a.json | 48 - .../tz3000-lf56vpxj-ts0202.json | 39 +- .../tz3000-llfaquvp-ts0012.json | 51 +- .../tz3000-lotmgthb-ts011f.json | 42 +- .../tz3000-lrgccsxm-ts0013.json | 60 +- .../tz3000-ltiqubue-ts130f.json | 38 +- .../tz3000-mg4dy6z6-ts0202.json | 39 +- .../tz3000-mgusv51k-ts0052-0x00000044.json | 47 - .../tz3000-mkhkxx1p-ts0001-0x00000048.json | 42 +- .../tz3000-mugyhz0q-ts0207-0x00000041.json | 37 +- .../tz3000-npzfdcof-ts0001.json | 42 +- .../tz3000-o4mkahkc-ts0202-0x00000046.json | 39 +- .../tz3000-pl5v1yyy-ts011f-0x00000050.json | 92 -- .../tz3000-qa8s8vca-ts130f.json | 47 +- .../tz3000-qqdbccb3-ts130f.json | 37 +- .../tz3000-rbl8c85w-ts0012.json | 47 - .../tz3000-snq47izk-ts0013.json | 60 +- .../tz3000-tgddllx4-ts0001.json | 38 +- .../tz3000-u3oupgdy-ts0004-0x00000050.json | 81 +- .../tz3000-u4kojtqz-ts0002-0x10013607.json | 57 +- .../tz3000-vw8pawxa-ts130f-0x00000048.json | 39 +- .../tz3000-w0qqde0g-ts011f.json | 38 +- .../tz3000-wcgyhnp3-ts0222-0x00000045.json | 41 +- .../tz3000-wkai4ga5-ts0044.json | 63 +- .../tz3000-wkr3jqmr-ts0004.json | 81 +- .../tz3000-xa9g7rxs-ts1002.json | 46 +- .../tz3000-xabckq1v-ts004f.json | 69 +- .../tz3000-xkap8wtb-ts000f.json | 51 +- .../tz3000-xr3htd96-ts0201.json | 39 +- .../tz3000-xxacnuab-ts0004.json | 81 +- .../tz3000-ynmowqk2-ts011f.json | 42 +- .../tz3000-zl1kmjqx-0x10013001.json | 37 +- .../tz3000-zl1kmjqx-ty0201.json | 37 +- .../tz3000-zw7yf6yk-ts0001-0x00000048.json | 42 +- .../tz3002-vaq2bfcu-ts0726-0x00000051.json | 103 +-- .../tz3040-bb6xaihh-ts0202-0x00000048.json | 55 +- .../tz3210-09hzmirw-ts0502b-0x0000005b.json | 50 +- .../tz3210-0jxeoadc-ts0049.json | 37 +- .../tz3210-3mpwqzuu-ts110e-0x00000040.json | 121 +-- .../tz3210-3ulg9kpo-ts0021.json | 37 +- .../tz3210-5rta89nj-ts0601.json | 38 +- .../tz3210-bfwvfyx1-ts0505b.json | 48 - .../tz3210-comkuwws-ts0502b-0x00000065.json | 50 +- .../tz3210-dwytrmda-ts130f-0x00000042.json | 45 +- .../tz3210-ehcanwyc-ts0502b-0x00000065.json | 48 - .../tz3210-ekjc2rzh-ts0225.json | 37 +- .../tz3210-hxtfthp5-ts0505b.json | 50 +- .../tz3210-j4pdtz9v-ts0001-0x00000062.json | 55 +- .../tz3210-k1msuvg6-ts110e-0x00000040.json | 46 - .../tz3210-kjafhwd2-ts0210-0x00000044.json | 41 - .../tz3210-klv2wul0-ts0505b-0x00000065.json | 48 - .../tz3210-ncw88jfq-ts0201-0x00000083.json | 38 +- .../tz3210-qkj7rujp-ts0201-0x00000043.json | 40 +- .../tz3210-r5afgmkl-ts0505b-0x10013607.json | 43 +- .../tz3210-ru41azca-ts0049-0x00000040.json | 37 +- .../tz3210-sb8x2xci-ts0001-0x00000047.json | 46 +- .../tz3210-sixywxvy-ts0505b.json | 50 +- .../tz3210-tgvtvdoc-ts0207-0x00000043.json | 183 ++-- .../tz3210-u1dreag7-ts0502b-0x00000065.json | 48 - .../tz3210-ue9kyjnj-ts0502b-0x00000059.json | 48 - .../tz3210-umi6vbsz-ts0505b.json | 50 +- .../tz3210-up3pngle-ts0205.json | 43 +- .../tz3210-wuhzzfqg-ts0202-0x000000a1.json | 56 +- .../tz3218-7fiyo3kv-ts000f-0x00000051.json | 49 +- .../tz3218-awarhusb-ts0225.json | 41 +- .../tz3218-ya5d6wth-ts000f-0x00000064.json | 85 +- .../tz3290-7v1k4vufotpowp9z-ts1201.json | 48 +- .../tz6210-duv6fhwt-ts0601-0x00000042.json | 40 +- .../tzb210-417ikxay-ts0505b-0x00000040.json | 50 +- .../tze200-1n2zev06-ts0601.json | 40 +- .../tze200-2aaelwxk-ts0225.json | 109 +-- .../tze200-2ekuz3dz-ts0601.json | 45 +- .../tze200-2gtsuokt-ts0601.json | 37 +- .../tze200-2se8efxh-ts0601-0x00000048.json | 40 +- .../tze200-3t91nb6k-ts0601-0x00000046.json | 45 +- .../tze200-3towulqd-ts0601-0x00000046.json | 39 +- .../tze200-3ylew7b4-ts0601.json | 35 - .../tze200-4utwozi2-ts0601-0x00000043.json | 156 ++-- .../tze200-4wxtg5y9-ts0601.json | 45 +- .../tze200-68nvbio9-ts0601.json | 38 +- .../tze200-6rdj8dzm-ts0601.json | 38 +- .../tze200-7bztmfm1-ts0601-0x00000046.json | 51 +- .../tze200-7ytb3h8u-ts0601-0x00000048.json | 40 +- .../tze200-81isopgh-ts0601-0x00000048.json | 40 +- .../tze200-86nbew0j-ts0601.json | 37 +- .../tze200-8whfphjv-ts0601-0x00000048.json | 37 +- .../tze200-9xfjixap-ts0601-0x00000043.json | 38 +- .../tze200-a0syesf5-ts0601.json | 39 +- .../tze200-a1dia7ml-ts0601.json | 37 +- .../tze200-a7sghmms-ts0601-0x00000048.json | 38 - .../tze200-a7sghmms-ts0601.json | 38 - .../tze200-abatw3kj-ts0601-0x00000046.json | 45 +- .../tze200-agumlajc-ts0601.json | 37 +- .../tze200-akjefhj5-ts0601.json | 37 +- .../tze200-aoclfnxz-ts0601.json | 39 +- .../tze200-bcusnqt8-ts0601.json | 37 +- .../tze200-bvrlmajk-ts0601.json | 37 +- .../tze200-byzdayie-ts0601.json | 40 +- .../tze200-c88teujp-ts0601-0x00000055.json | 174 ++-- .../tze200-cirvgep4-ts0601-0x00000048.json | 38 +- .../tze200-cpbo62rn-ts0601.json | 38 +- .../tze200-cpmgn2cf-ts0601.json | 121 +-- .../tze200-crq3r3la-ck-bl702-mws-01-7016.json | 53 +- .../tze200-dwcarsat-ts0601.json | 51 +- .../tze200-e5hpkc6d-ts0601.json | 48 +- .../tze200-eevqq1uv-ts0601.json | 37 +- .../tze200-ewxhg6o9-ts0601.json | 40 +- .../tze200-f1pvdgoh-ts0601.json | 37 +- .../tze200-fvldku9h-ts0601.json | 37 +- .../tze200-g9a3awaj-ts0601-0x00000048.json | 39 +- .../tze200-gjldowol-ts0601-0x00000050.json | 38 +- .../tze200-gkfbdvyx-ts0601.json | 34 - .../tze200-gubdgai2-ts0601.json | 38 +- .../tze200-guvc7pdy-ts0601-0x00000046.json | 43 - .../tze200-h4cgnbzg-ts0601.json | 131 ++- .../tze200-hhrtiq0x-ts0601-0x00000055.json | 40 +- .../tze200-hl0ss9oa-ts0225.json | 46 +- .../tze200-hr0tdd47-ts0601-0x00000048.json | 39 +- .../tze200-iba1ckek-ts0601.json | 34 +- .../tze200-ijey4q29-ts0601.json | 37 +- .../tze200-iuk8kupi-ts0601.json | 45 +- .../tze200-js3mgbjb-ts0601-0x00000044.json | 45 +- .../tze200-jva8ink8-ts0601.json | 40 +- .../tze200-kb5noeto-ts0601.json | 37 +- .../tze200-khozatfx-ts0601.json | 37 +- .../tze200-la2c2uo9-ts0601.json | 39 +- .../tze200-laqjm8qd-ts0601.json | 45 +- .../tze200-libht6ua-ts0601.json | 37 +- .../tze200-locansqn-ts0601-0x00000048.json | 40 +- .../tze200-m9skfctm-ts0601.json | 38 +- .../tze200-mgxy2d9f-ts0601-0x00000043.json | 37 +- .../tze200-mja3fuja-ts0601.json | 50 +- .../tze200-moycceze-ts0601-0x00000043.json | 37 +- .../tze200-mz5y07w2-ts0601.json | 40 +- .../tze200-mzik0ov2-ts0601.json | 37 +- .../tze200-nklqjk62-ts0601.json | 45 +- .../tze200-nojsjtj2-ts0601.json | 34 +- .../tze200-npj9bug3-ts0601.json | 35 - .../tze200-ntcy3xu1-ts0601.json | 39 +- .../tze200-ny94onlb-ts0601.json | 63 +- .../tze200-nyvavzbj-ts0601.json | 37 +- .../tze200-pay2byax-ts0601.json | 76 +- .../tze200-pl31aqf5-ts0601-0x00000046.json | 45 +- .../tze200-pw7mji0l-ts0601.json | 37 +- .../tze200-qhlxve78-ts0601.json | 37 +- .../tze200-qrztc3ev-ts0601.json | 40 +- .../tze200-qyflbnbj-ts0601-0x00000046.json | 40 +- .../tze200-r32ctezx-ts0601-0x00000046.json | 47 +- .../tze200-rccxox8p-ts0601.json | 38 +- .../tze200-rk1wojce-ts0601.json | 37 +- .../tze200-rks0sgb7-ts0601.json | 38 +- .../tze200-rmymn92d-ts0601-0x00000046.json | 45 +- .../tze200-rtrmfadk-ts0601.json | 37 +- .../tze200-rxq4iti9-ts0601.json | 106 ++- .../tze200-s6hzw8g2-ts0601.json | 37 +- .../tze200-t1blo2bj-ts0601.json | 47 +- .../tze200-t6gq6nju-ts0601.json | 45 +- .../tze200-udank5zs-ts0601.json | 48 +- .../tze200-uf1qujxj-ts0601-0x00000048.json | 37 +- .../tze200-v1jqz5cy-ts0601.json | 37 +- .../tze200-v9hkz2yn-ts0601.json | 39 +- .../tze200-viy9ihs7-ts0601.json | 38 +- .../tze200-vuqzj1ej-ts0601.json | 38 - .../tze200-vvmbj46n-ts0601-0x00000048.json | 40 +- .../tze200-wdfurkoa-ts0601-0x00000041.json | 35 - .../tze200-wfxuhoea-ts0601-0x00000046.json | 45 +- .../tze200-wktrysab-ts0601.json | 102 +-- .../tze200-wqashyqo-ts0601.json | 35 - .../tze200-xu4a5rhj-ts0601.json | 45 +- .../tze200-ya4ft0w4-ts0601.json | 36 +- .../tze200-yia0p3tr-ts0601-0x00000046.json | 45 +- .../tze200-yjjdcqsq-ts0601.json | 40 +- .../tze200-yojqa8xn-ts0601.json | 46 +- .../tze200-yvx5lh6k-ts0601.json | 51 +- .../tze200-yw7cahqs-ts0601-0x00000055.json | 137 ++- .../tze200-ztvwu4nk-ts0601.json | 37 +- .../tze204-1fuxihti-ts0601.json | 46 +- .../tze204-1youk3hj-ts0601-0x0000004a.json | 47 +- .../tze204-4fblxpma-ts0601-0x00000049.json | 40 +- .../tze204-5slehgeo-ts0601-0x0000004a.json | 43 - .../tze204-5toc8efa-ts0601.json | 45 +- .../tze204-7ytb3h8u-ts0601.json | 40 +- .../tze204-81yrt3lo-ts0601-0x0000004a.json | 854 +----------------- .../tze204-9yapgbuv-ts0601.json | 40 +- .../tze204-a2jcoyuk-ts0601-0x0000004a.json | 45 +- .../tze204-ai4rqhky-ts0601-0x00000049.json | 37 +- .../tze204-aoclfnxz-ts0601-0x0000004a.json | 45 +- .../tze204-bkkmqmyo-ts0601.json | 40 +- .../tze204-c2fmom5z-ts0601-0x0000004a.json | 171 +--- .../tze204-chbyv06x-ts0601.json | 46 +- .../tze204-cirvgep4-ts0601-0x00000049.json | 40 +- .../tze204-cjbofhxw-ts0601.json | 39 +- .../tze204-d6i25bwg-ts0601-0x0000004a.json | 45 - .../tze204-dtzziy1e-ts0601.json | 39 +- .../tze204-dwcarsat-ts0601-0x0000004a.json | 51 +- .../tze204-ex3rcdha-ts0601-0x0000004a.json | 81 +- .../tze204-fhvdgeuh-ts0601-0x0000004a.json | 45 +- .../tze204-g2ki0ejr-ts0601.json | 37 +- .../tze204-goecjd1t-ts0601-0x0000004a.json | 45 +- .../tze204-gops3slb-ts0601-0x0000004a.json | 119 +-- .../tze204-guvc7pdy-ts0601-0x0000004a.json | 46 +- .../tze204-hlx9tnzb-ts0601.json | 47 +- .../tze204-iaeejhvf-ts0601-0x0000004a.json | 81 +- .../tze204-ijxvkhd0-ts0601.json | 45 +- .../tze204-jrcfsaa3-ts0601-0x0000004a.json | 45 +- .../tze204-k7mfgaen-ts0601.json | 46 +- .../tze204-kobbcyum-ts0601.json | 37 +- .../tze204-kyhbrfyl-ts0601.json | 39 +- .../tze204-l8xiyymq-ts0601.json | 37 +- .../tze204-lb0fsvba-ts0601-0x0000004a.json | 43 - .../tze204-lbbg34rj-ts0601-0x0000004a.json | 45 +- .../tze204-lsanae15-ts0601-0x0000004a.json | 45 +- .../tze204-ltwbm23f-ts0601-0x0000004e.json | 38 - .../tze204-lzriup1j-ts0601.json | 46 +- .../tze204-m64smti7-ts0601-0x0000004a.json | 45 +- .../tze204-m9dzckna-ts0601-0x0000004a.json | 43 - .../tze204-mpbki2zm-ts0601.json | 45 +- .../tze204-mtoaryre-ts0601-0x0000004a.json | 47 +- .../tze204-muvkrjr5-ts0601.json | 46 +- .../tze204-mwomyz5n-ts0601-0x0000004a.json | 45 +- .../tze204-nbkshs6k-ts0601-0x0000004a.json | 45 +- .../tze204-nklqjk62-ts0601-0x0000004a.json | 45 +- .../tze204-nlrfgpny-ts0601-0x00000049.json | 47 +- .../tze204-nvxorhcj-ts0601-0x0000004a.json | 43 - .../tze204-ogx8u5z6-ts0601-0x0000004a.json | 38 +- .../tze204-p3lqqy2r-ts0601.json | 38 +- .../tze204-pcdmj88b-ts0601-0x00000049.json | 37 +- .../tze204-pxbjch8m-ts0601-0x0000004a.json | 45 +- .../tze204-qasjif9e-ts0601-0x0000004a.json | 153 ++-- .../tze204-qtnjuoae-ts0601-0x00000049.json | 45 +- .../tze204-qyr2m29i-ts0601-0x0000004a.json | 39 +- .../tze204-r32ctezx-ts0601-0x0000004a.json | 45 +- .../tze204-rhblgy0z-ts0601.json | 45 +- .../tze204-rtrmfadk-ts0601-0x00000049.json | 39 +- .../tze204-rtrmfadk-ts0601.json | 37 - .../tze204-sooucan5-ts0601.json | 47 +- .../tze204-srmahpwl-ts0601.json | 45 +- .../tze204-sxm7l9xa-ts0601.json | 47 +- .../tze204-tdhnhhiy-ts0601-0x0000004a.json | 43 - .../tze204-ue3rzddr-ts0601.json | 45 +- .../tze204-upagmta9-ts0601.json | 40 +- .../tze204-uxllnywp-ts0601-0x0000004a.json | 47 +- .../tze204-w1wwxoja-ts0601-0x0000004a.json | 45 +- .../tze204-wbhaespm-ts0601-0x0000004a.json | 400 +++++--- .../tze204-x8fp01wi-ts0601-0x0000004a.json | 45 +- .../tze204-x9usygq1-ts0601-0x0000004a.json | 37 +- .../tze204-xalsoe3m-ts0601-0x0000004a.json | 737 +-------------- .../tze204-xlppj4f5-ts0601-0x0000004a.json | 40 +- .../tze204-xnbkhhdr-ts0601-0x0000004a.json | 38 +- .../tze204-ya4ft0w4-ts0601-0x0000004a.json | 47 +- .../tze204-yjjdcqsq-ts0601.json | 40 +- .../tze204-yvx5lh6k-ts0601-0x0000004a.json | 51 +- .../tze204-zenj4lxv-ts0601.json | 344 +++++-- .../tze204-ztqnh5cg-ts0601-0x0000004a.json | 47 +- .../tze204-zxkwaztm-ts0601.json | 36 - .../tze20c-xbexmf8h-ts130f-0x00000040.json | 44 - .../tze20c-zka46xbw-ts0601-0x00000051.json | 51 +- .../tze284-0zaf1cr8-ts0601.json | 39 +- .../tze284-2gi1hy8s-ts0601-0x00000050.json | 38 +- .../tze284-6ycgarab-ts0601-0x00000050.json | 36 - .../tze284-a2xewxoo-ts0601-0x0000004e.json | 44 - .../tze284-aao3yzhs-ts0601-0x0000004d.json | 39 - .../tze284-aao3yzhs-ts0601.json | 41 +- .../tze284-c6wv4xyo-ts0601-0x0000004d.json | 39 +- .../tze284-cjbofhxw-ts0601.json | 38 +- .../tze284-dmckrsxg-ts0601-0x0000004e.json | 44 - .../tze284-f5efvtbv-ts0601-0x0000004e.json | 44 - .../tze284-fhvpaltk-ts0601.json | 37 - .../tze284-fzo2pocs-ts0601.json | 38 +- .../tze284-g2e6cpnw-ts0601-0x0000004d.json | 38 +- .../tze284-iadro9bf-ts0601-0x0000004e.json | 46 +- .../tze284-idvyees9-ts0601-0x0000004e.json | 44 - .../tze284-kyyu8rbj-ts0601-0x0000004d.json | 38 +- .../tze284-l8xiyymq-ts0601-0x0000004a.json | 36 - .../tze284-ltwbm23f-ts0601-0x0000004d.json | 38 +- .../tze284-myd45weu-ts0601-0x0000004d.json | 41 +- .../tze284-ne4pikwm-ts0601.json | 39 +- .../tze284-nklqjk62-ts0601-0x0000004e.json | 44 - .../tze284-nnhwcvbk-ts0601-0x0000004d.json | 36 - .../tze284-o3x45p96-ts0601-0x0000004d.json | 39 +- .../tze284-o9ofysmo-ts0601-0x00000050.json | 36 - .../tze284-ogx8u5z6-ts0601-0x0000004d.json | 39 +- .../tze284-oitavov2-ts0601-0x00000050.json | 39 - .../tze284-pcdmj88b-ts0601-0x0000004d.json | 36 - .../tze284-qyflbnbj-ts0601-0x0000004d.json | 101 +-- .../tze284-rjxqso4a-ts0601-0x0000004d.json | 40 +- .../tze284-rlytpmij-ts0601-0x00000051.json | 44 - .../tze284-rqcuwlsa-ts0601.json | 42 +- .../tze284-sgabhwa6-ts0601-0x0000004d.json | 41 +- .../tze284-upagmta9-ts0601-0x0000004d.json | 39 - .../tze284-vawy74yh-ts0601-0x0000004d.json | 36 - .../tze284-vuwtqx0t-ts0601-0x00000050.json | 36 - .../tze284-wtikaxzs-ts0601-0x0000004d.json | 38 +- .../tze284-zjhoqbrd-ts0601-0x0000004d.json | 36 - .../tze284-zm8zpwas-ts0601-0x00000050.json | 36 - .../tze600-iypcp4py-ts0105.json | 44 +- .../tze608-c75zqghm-ts0603-0x00000040.json | 46 +- .../uiot-uiot-windowcovring2-0402.json | 75 +- .../unk-manufacturer-unk-model.json | 44 +- .../legacy_devices/visonic-mct-340-sma.json | 39 +- .../legacy_devices/xyzroe-diy-zintercom.json | 36 +- tests/data/legacy_devices/zbeacon-ts0001.json | 38 - tests/data/legacy_devices/zbeacon-ts0505.json | 43 +- ...ux-andigny-alcantara2-d1-00p1-02z1-00.json | 67 +- .../zemismart-spm02-3z3-0x0000000e.json | 40 - .../zen-within-zen-01-0x0000021f.json | 42 - 523 files changed, 3973 insertions(+), 26793 deletions(-) diff --git a/tests/data/devices/innr-rc-250-0x21086500.json b/tests/data/devices/innr-rc-250-0x21086500.json index 2e6001033..6c642b428 100644 --- a/tests/data/devices/innr-rc-250-0x21086500.json +++ b/tests/data/devices/innr-rc-250-0x21086500.json @@ -1,7 +1,7 @@ { "version": 2, "ieee": "ab:cd:ef:12:25:3a:b6:6f", - "nwk": "0xDD91", + "nwk": "0xA400", "manufacturer": "innr", "model": "RC 250", "friendly_manufacturer": "innr", @@ -12,9 +12,9 @@ "exposes_features": [], "manufacturer_code": 4454, "power_source": "Battery or Unknown", - "lqi": 204, - "rssi": -60, - "last_seen": "2025-11-29T13:02:15.439930+00:00", + "lqi": 176, + "rssi": -56, + "last_seen": "2026-03-01T21:40:42.133756+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -67,7 +67,7 @@ "id": "0x0021", "name": "battery_percentage_remaining", "zcl_type": "uint8", - "value": 20 + "value": 200 }, { "id": "0x0033", @@ -85,7 +85,7 @@ "id": "0x0020", "name": "battery_voltage", "zcl_type": "uint8", - "value": 25 + "value": 29 } ] }, @@ -124,7 +124,14 @@ { "cluster_id": "0x0006", "endpoint_attribute": "on_off", - "attributes": [] + "attributes": [ + { + "id": "0x0000", + "name": "on_off", + "zcl_type": "bool", + "value": 0 + } + ] }, { "cluster_id": "0x0008", @@ -257,7 +264,7 @@ "state": { "class_name": "LQISensor", "available": true, - "state": 204 + "state": 176 } }, { @@ -285,7 +292,7 @@ "state": { "class_name": "RSSISensor", "available": true, - "state": -60 + "state": -56 } }, { @@ -313,10 +320,10 @@ "state": { "class_name": "Battery", "available": true, - "state": 10.0, + "state": 100.0, "battery_size": "Other", "battery_quantity": 1, - "battery_voltage": 2.5 + "battery_voltage": 2.9 }, "extra_state_attributes": [ "battery_quantity", diff --git a/tests/data/devices/innr-sp-120-0x11040002.json b/tests/data/devices/innr-sp-120-0x11040002.json index e4ef8d331..180d684f1 100644 --- a/tests/data/devices/innr-sp-120-0x11040002.json +++ b/tests/data/devices/innr-sp-120-0x11040002.json @@ -1,7 +1,7 @@ { "version": 2, "ieee": "ab:cd:ef:12:76:d3:fb:4b", - "nwk": "0x66C3", + "nwk": "0x6A6F", "manufacturer": "innr", "model": "SP 120", "friendly_manufacturer": "innr", @@ -12,9 +12,9 @@ "exposes_features": [], "manufacturer_code": 4454, "power_source": "Mains", - "lqi": null, + "lqi": 33, "rssi": null, - "last_seen": "2025-04-29T19:12:44.489403+00:00", + "last_seen": "2026-01-14T12:21:39.200435+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -56,12 +56,6 @@ "name": "model", "zcl_type": "string", "value": "SP 120" - }, - { - "id": "0x0007", - "name": "power_source", - "zcl_type": "enum8", - "value": 1 } ] }, @@ -88,7 +82,7 @@ "id": "0x0000", "name": "on_off", "zcl_type": "bool", - "value": 1 + "value": 0 }, { "id": "0x4003", @@ -159,7 +153,7 @@ "id": "0x0000", "name": "current_summ_delivered", "zcl_type": "uint48", - "value": 14526 + "value": 76 }, { "id": "0x0001", @@ -233,12 +227,6 @@ "zcl_type": "uint24", "value": 1 }, - { - "id": "0x0205", - "name": "remaining_battery_life_days", - "zcl_type": "uint16", - "unsupported": true - }, { "id": "0x0200", "name": "status", @@ -441,7 +429,7 @@ "id": "0x0505", "name": "rms_voltage", "zcl_type": "uint16", - "value": 238 + "value": 235 }, { "id": "0x0507", @@ -472,6 +460,12 @@ "name": "rms_voltage_ph_c", "zcl_type": "uint16", "unsupported": true + }, + { + "id": "0x0304", + "name": "total_active_power", + "zcl_type": "int32", + "unsupported": true } ] } @@ -658,7 +652,7 @@ "state": { "class_name": "LQISensor", "available": true, - "state": null + "state": 33 } }, { @@ -714,7 +708,7 @@ "state": { "class_name": "SmartEnergySummation", "available": true, - "state": 145.26, + "state": 0.76, "device_type": "Electric Metering", "status": "NO_ALARMS", "zcl_unit_of_measurement": 0 @@ -816,7 +810,7 @@ "state": { "class_name": "ElectricalMeasurementRMSVoltage", "available": true, - "state": 238.0, + "state": 235.0, "measurement_type": "" }, "extra_state_attributes": [ @@ -848,7 +842,7 @@ }, "state": { "class_name": "Switch", - "state": 1, + "state": 0, "available": true } } diff --git a/tests/data/devices/inovelli-vzm35-sn-0x02020107.json b/tests/data/devices/inovelli-vzm35-sn-0x02020107.json index 701127f07..5220f0919 100644 --- a/tests/data/devices/inovelli-vzm35-sn-0x02020107.json +++ b/tests/data/devices/inovelli-vzm35-sn-0x02020107.json @@ -531,16 +531,7 @@ "output_clusters": [ "0x0003", "0x0006", - "0x0008", - "0xfc31" - ] - }, - "3": { - "profile_id": "0x0104", - "device_type": "0x0104", - "input_clusters": [], - "output_clusters": [ - "0xfc31" + "0x0008" ] }, "242": { diff --git a/tests/data/devices/lixee-zlinky-tic-0x00000011.json b/tests/data/devices/lixee-zlinky-tic-0x00000011.json index 89bc97771..8a85b5f4e 100644 --- a/tests/data/devices/lixee-zlinky-tic-0x00000011.json +++ b/tests/data/devices/lixee-zlinky-tic-0x00000011.json @@ -147,6 +147,12 @@ "cluster_id": "0x0702", "endpoint_attribute": "smartenergy_metering", "attributes": [ + { + "id": "0x0020", + "name": "active_register_tier_delivered", + "zcl_type": "enum8", + "value": "" + }, { "id": "0x0021", "name": "active_register_tier_received", @@ -201,6 +207,12 @@ "zcl_type": "uint48", "value": 42837076 }, + { + "id": "0x0001", + "name": "current_summ_received", + "zcl_type": "uint48", + "value": 6031394 + }, { "id": "0x0100", "name": "current_tier1_summ_delivered", @@ -1022,6 +1034,42 @@ "zcl_unit_of_measurement" ] }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:b9:db:c0:ae-1-1794-summation_received", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "SmartEnergySummationReceived", + "translation_key": "summation_received", + "translation_placeholders": null, + "device_class": "energy", + "state_class": "total_increasing", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:b9:db:c0:ae", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 3, + "unit": "kWh" + }, + "state": { + "class_name": "SmartEnergySummationReceived", + "available": true, + "state": 6031.394, + "device_type": "Electric Metering", + "status": "NO_ALARMS", + "zcl_unit_of_measurement": 0 + }, + "extra_state_attributes": [ + "device_type", + "status", + "zcl_unit_of_measurement" + ] + }, { "info_object": { "fallback_name": null, diff --git a/tests/data/devices/lumi-lumi-light-aqcn02-0x00000017.json b/tests/data/devices/lumi-lumi-light-aqcn02-0x00000017.json index 15cebc3e3..0475390f9 100644 --- a/tests/data/devices/lumi-lumi-light-aqcn02-0x00000017.json +++ b/tests/data/devices/lumi-lumi-light-aqcn02-0x00000017.json @@ -1,20 +1,20 @@ { "version": 2, "ieee": "ab:cd:ef:12:d2:16:bb:90", - "nwk": "0x6340", + "nwk": "0x2B45", "manufacturer": "LUMI", "model": "lumi.light.aqcn02", "friendly_manufacturer": "LUMI", "friendly_model": "lumi.light.aqcn02", "name": "LUMI lumi.light.aqcn02", - "quirk_applied": false, - "quirk_class": "zigpy.device.Device", + "quirk_applied": true, + "quirk_class": "zhaquirks.xiaomi.aqara.light_aqcn2:LightAqcn02", "exposes_features": [], "manufacturer_code": 4447, "power_source": "Mains", - "lqi": null, + "lqi": 42, "rssi": null, - "last_seen": "2025-04-29T19:02:49.115676+00:00", + "last_seen": "2026-03-12T05:32:01.276747+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -136,7 +136,7 @@ "id": "0x0000", "name": "current_level", "zcl_type": "uint8", - "value": 178 + "value": 204 }, { "id": "0x0014", @@ -214,37 +214,19 @@ "id": "0x0007", "name": "color_temperature", "zcl_type": "uint16", - "value": 190 - }, - { - "id": "0x0000", - "name": "current_hue", - "zcl_type": "uint8", - "unsupported": true - }, - { - "id": "0x0001", - "name": "current_saturation", - "zcl_type": "uint8", - "unsupported": true + "value": 251 }, { "id": "0x0003", "name": "current_x", "zcl_type": "uint16", - "value": 22362 + "value": 25139 }, { "id": "0x0004", "name": "current_y", "zcl_type": "uint16", - "value": 22981 - }, - { - "id": "0x4000", - "name": "enhanced_current_hue", - "zcl_type": "uint16", - "unsupported": true + "value": 25063 }, { "id": "0x000f", @@ -311,18 +293,33 @@ "device_type": "0x0102", "input_clusters": [ "0x0000", - "0x0001", - "0x0003", "0x0004", + "0x0003", "0x0005", + "0x000a", + "0x0102", + "0x000d", + "0x0013", "0x0006", + "0x0001", + "0x0406", "0x0008", - "0x0300" + "0x0300", + "0x0403", + "0x0405", + "0x0402" ], "output_clusters": [ - "0x000a", "0x0019", - "0x0406" + "0x000a", + "0x000d", + "0x0102", + "0x0013", + "0x0006", + "0x0001", + "0x0406", + "0x0008", + "0x0300" ] } } @@ -391,9 +388,9 @@ "class_name": "Light", "available": true, "on": false, - "brightness": 178, + "brightness": 204, "xy_color": null, - "color_temp": 190, + "color_temp": 251, "effect_list": [ "off" ], @@ -473,7 +470,7 @@ "state": { "class_name": "LQISensor", "available": true, - "state": null + "state": 42 } }, { diff --git a/tests/data/devices/lumi-lumi-remote-b28ac1.json b/tests/data/devices/lumi-lumi-remote-b28ac1.json index 045c47ff5..f4a4b0892 100644 --- a/tests/data/devices/lumi-lumi-remote-b28ac1.json +++ b/tests/data/devices/lumi-lumi-remote-b28ac1.json @@ -1,7 +1,7 @@ { "version": 2, "ieee": "ab:cd:ef:12:b2:f6:6e:7d", - "nwk": "0x9CFA", + "nwk": "0x1392", "manufacturer": "LUMI", "model": "lumi.remote.b28ac1", "friendly_manufacturer": "LUMI", @@ -12,9 +12,9 @@ "exposes_features": [], "manufacturer_code": 4447, "power_source": "Battery or Unknown", - "lqi": null, + "lqi": 96, "rssi": null, - "last_seen": "2025-12-11T01:40:27.506951+00:00", + "last_seen": "2026-02-07T22:24:34.601602+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -44,7 +44,20 @@ { "cluster_id": "0x0000", "endpoint_attribute": "basic", - "attributes": [] + "attributes": [ + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "LUMI" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "lumi.remote.b28ac1" + } + ] }, { "cluster_id": "0x0001", @@ -54,7 +67,7 @@ "id": "0x0021", "name": "battery_percentage_remaining", "zcl_type": "uint8", - "unsupported": true + "value": 200 }, { "id": "0x0033", @@ -72,7 +85,7 @@ "id": "0x0020", "name": "battery_voltage", "zcl_type": "uint8", - "value": 30 + "value": 31 } ] }, @@ -84,12 +97,32 @@ { "cluster_id": "0x0012", "endpoint_attribute": "multistate_input", - "attributes": [] + "attributes": [ + { + "id": "0x0055", + "name": "present_value", + "zcl_type": "uint16", + "value": 1 + } + ] }, { "cluster_id": "0xfcc0", "endpoint_attribute": "opple_cluster", - "attributes": [] + "attributes": [ + { + "id": "0x0125", + "name": "click_mode", + "zcl_type": "uint8", + "value": 2 + }, + { + "id": "0x0009", + "name": "operation_mode", + "zcl_type": "uint8", + "value": 1 + } + ] } ], "out_clusters": [ @@ -101,7 +134,14 @@ { "cluster_id": "0x0006", "endpoint_attribute": "on_off", - "attributes": [] + "attributes": [ + { + "id": "0x0000", + "name": "on_off", + "zcl_type": "bool", + "value": false + } + ] } ] }, @@ -112,11 +152,6 @@ "id": 259 }, "in_clusters": [ - { - "cluster_id": "0x0003", - "endpoint_attribute": "identify", - "attributes": [] - }, { "cluster_id": "0x0012", "endpoint_attribute": "multistate_input", @@ -125,17 +160,12 @@ "id": "0x0055", "name": "present_value", "zcl_type": "uint16", - "value": 1.0 + "value": 1 } ] } ], "out_clusters": [ - { - "cluster_id": "0x0003", - "endpoint_attribute": "identify", - "attributes": [] - }, { "cluster_id": "0x0006", "endpoint_attribute": "on_off", @@ -162,11 +192,6 @@ } ], "out_clusters": [ - { - "cluster_id": "0x0003", - "endpoint_attribute": "identify", - "attributes": [] - }, { "cluster_id": "0x0006", "endpoint_attribute": "on_off", @@ -199,22 +224,8 @@ "device_type": "0x0103", "input_clusters": [ "0x0000", - "0x0001", "0x0003", - "0x0012", - "0xfcc0" - ], - "output_clusters": [ - "0x0003", - "0x0006" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0103", - "input_clusters": [ - "0x0003", - "0x0012" + "0x0001" ], "output_clusters": [ "0x0003", @@ -225,11 +236,9 @@ "profile_id": "0x0104", "device_type": "0x0103", "input_clusters": [ - "0x0003", - "0x0012" + "0x0003" ], "output_clusters": [ - "0x0003", "0x0006" ] } @@ -297,7 +306,7 @@ "state": { "class_name": "ZCLEnumSelectEntity", "available": true, - "state": null + "state": "Multiple" } }, { @@ -328,7 +337,7 @@ "state": { "class_name": "ZCLEnumSelectEntity", "available": true, - "state": null + "state": "Event" } } ], @@ -358,7 +367,7 @@ "state": { "class_name": "LQISensor", "available": true, - "state": null + "state": 96 } }, { @@ -414,10 +423,10 @@ "state": { "class_name": "Battery", "available": true, - "state": null, + "state": 100.0, "battery_size": "Unknown", "battery_quantity": 1, - "battery_voltage": 3.0 + "battery_voltage": 3.1 }, "extra_state_attributes": [ "battery_quantity", diff --git a/tests/data/devices/lumi-lumi-vibration-agl01-0x0000001c.json b/tests/data/devices/lumi-lumi-vibration-agl01-0x0000001c.json index 08f5bbfd4..8b690d907 100644 --- a/tests/data/devices/lumi-lumi-vibration-agl01-0x0000001c.json +++ b/tests/data/devices/lumi-lumi-vibration-agl01-0x0000001c.json @@ -1,7 +1,7 @@ { "version": 2, "ieee": "ab:cd:ef:12:7d:e2:f1:42", - "nwk": "0x6827", + "nwk": "0xDFC8", "manufacturer": "LUMI", "model": "lumi.vibration.agl01", "friendly_manufacturer": "LUMI", @@ -12,9 +12,9 @@ "exposes_features": [], "manufacturer_code": 4447, "power_source": "Battery or Unknown", - "lqi": 108, - "rssi": -84, - "last_seen": "2025-10-27T14:31:15.191577+00:00", + "lqi": 192, + "rssi": -52, + "last_seen": "2026-03-08T19:34:46.786502+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -75,11 +75,23 @@ "zcl_type": "uint8", "unsupported": true }, + { + "id": "0x0033", + "name": "battery_quantity", + "zcl_type": "uint8", + "value": 1 + }, + { + "id": "0x0031", + "name": "battery_size", + "zcl_type": "enum8", + "value": 7 + }, { "id": "0x0020", "name": "battery_voltage", "zcl_type": "uint8", - "value": 30 + "value": 31 } ] }, @@ -111,7 +123,13 @@ "id": "0x0000", "name": "zone_state", "zcl_type": "enum8", - "value": 1 + "value": 0 + }, + { + "id": "0x0002", + "name": "zone_status", + "zcl_type": "map16", + "value": 0 }, { "id": "0x0001", @@ -152,14 +170,7 @@ { "cluster_id": "0x0012", "endpoint_attribute": "multistate_input", - "attributes": [ - { - "id": "0x0055", - "name": "present_value", - "zcl_type": "uint16", - "value": 1 - } - ] + "attributes": [] }, { "cluster_id": "0x0500", @@ -210,8 +221,8 @@ "device_type": "0x0402", "input_clusters": [ "0x0000", - "0x0001", "0x0003", + "0x0001", "0x0500" ], "output_clusters": [ @@ -345,7 +356,7 @@ "state": { "class_name": "LQISensor", "available": true, - "state": 108 + "state": 192 } }, { @@ -373,7 +384,7 @@ "state": { "class_name": "RSSISensor", "available": true, - "state": -84 + "state": -52 } }, { @@ -402,7 +413,9 @@ "class_name": "Battery", "available": true, "state": null, - "battery_voltage": 3.0 + "battery_size": "CR2", + "battery_quantity": 1, + "battery_voltage": 3.1 }, "extra_state_attributes": [ "battery_quantity", diff --git a/tests/data/devices/lumi-lumi-weather.json b/tests/data/devices/lumi-lumi-weather.json index d27e16621..723bebba8 100644 --- a/tests/data/devices/lumi-lumi-weather.json +++ b/tests/data/devices/lumi-lumi-weather.json @@ -1,20 +1,20 @@ { "version": 2, - "ieee": "00:15:8d:00:05:4b:9d:1f", - "nwk": "0xFF23", + "ieee": "ab:cd:ef:12:23:cc:44:33", + "nwk": "0xC7C3", "manufacturer": "LUMI", "model": "lumi.weather", "friendly_manufacturer": "LUMI", "friendly_model": "lumi.weather", "name": "LUMI lumi.weather", "quirk_applied": true, - "quirk_class": "zhaquirks.xiaomi.aqara.weather:Weather", + "quirk_class": "zhaquirks.xiaomi.aqara.weather:Weather2", "exposes_features": [], "manufacturer_code": 4151, "power_source": "Battery or Unknown", - "lqi": null, - "rssi": null, - "last_seen": "2025-04-24T17:34:08.835738+00:00", + "lqi": 56, + "rssi": -97, + "last_seen": "2025-10-04T15:27:39.898234+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -37,33 +37,14 @@ "1": { "profile_id": 260, "device_type": { - "name": "undefined_0x5f01", - "id": 24321 + "name": "TEMPERATURE_SENSOR", + "id": 770 }, "in_clusters": [ { "cluster_id": "0x0000", "endpoint_attribute": "basic", - "attributes": [ - { - "id": "0x0001", - "name": "app_version", - "zcl_type": "uint8", - "value": 5 - }, - { - "id": "0x0004", - "name": "manufacturer", - "zcl_type": "string", - "value": "LUMI" - }, - { - "id": "0x0005", - "name": "model", - "zcl_type": "string", - "value": "lumi.weather" - } - ] + "attributes": [] }, { "cluster_id": "0x0001", @@ -73,7 +54,7 @@ "id": "0x0021", "name": "battery_percentage_remaining", "zcl_type": "uint8", - "value": 118 + "value": 139 }, { "id": "0x0033", @@ -91,7 +72,7 @@ "id": "0x0020", "name": "battery_voltage", "zcl_type": "uint8", - "value": 29.9 + "value": 30.1 } ] }, @@ -108,7 +89,7 @@ "id": "0x0000", "name": "measured_value", "zcl_type": "int16", - "value": 2173 + "value": 2602 } ] }, @@ -120,7 +101,7 @@ "id": "0x0000", "name": "measured_value", "zcl_type": "int16", - "value": 1009 + "value": 992 } ] }, @@ -132,7 +113,7 @@ "id": "0x0000", "name": "measured_value", "zcl_type": "uint16", - "value": 5799 + "value": 3778 } ] }, @@ -182,14 +163,14 @@ "endpoints": { "1": { "profile_id": "0x0104", - "device_type": "0x5f01", + "device_type": "0x0302", "input_clusters": [ "0x0000", "0x0003", - "0xffff", "0x0402", "0x0403", - "0x0405" + "0x0405", + "0xffff" ], "output_clusters": [ "0x0000", @@ -204,7 +185,7 @@ { "info_object": { "fallback_name": null, - "unique_id": "00:15:8d:00:05:4b:9d:1f-1-3", + "unique_id": "ab:cd:ef:12:23:cc:44:33-1-3", "migrate_unique_ids": [], "platform": "button", "class_name": "IdentifyButton", @@ -216,7 +197,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "00:15:8d:00:05:4b:9d:1f", + "device_ieee": "ab:cd:ef:12:23:cc:44:33", "endpoint_id": 1, "available": true, "group_id": null, @@ -236,7 +217,7 @@ { "info_object": { "fallback_name": null, - "unique_id": "00:15:8d:00:05:4b:9d:1f-1-0-lqi", + "unique_id": "ab:cd:ef:12:23:cc:44:33-1-0-lqi", "migrate_unique_ids": [], "platform": "sensor", "class_name": "LQISensor", @@ -248,7 +229,7 @@ "entity_registry_enabled_default": false, "enabled": true, "primary": false, - "device_ieee": "00:15:8d:00:05:4b:9d:1f", + "device_ieee": "ab:cd:ef:12:23:cc:44:33", "endpoint_id": 1, "available": true, "group_id": null, @@ -258,13 +239,13 @@ "state": { "class_name": "LQISensor", "available": true, - "state": null + "state": 56 } }, { "info_object": { "fallback_name": null, - "unique_id": "00:15:8d:00:05:4b:9d:1f-1-0-rssi", + "unique_id": "ab:cd:ef:12:23:cc:44:33-1-0-rssi", "migrate_unique_ids": [], "platform": "sensor", "class_name": "RSSISensor", @@ -276,7 +257,7 @@ "entity_registry_enabled_default": false, "enabled": true, "primary": false, - "device_ieee": "00:15:8d:00:05:4b:9d:1f", + "device_ieee": "ab:cd:ef:12:23:cc:44:33", "endpoint_id": 1, "available": true, "group_id": null, @@ -286,13 +267,13 @@ "state": { "class_name": "RSSISensor", "available": true, - "state": null + "state": -97 } }, { "info_object": { "fallback_name": null, - "unique_id": "00:15:8d:00:05:4b:9d:1f-1-1", + "unique_id": "ab:cd:ef:12:23:cc:44:33-1-1", "migrate_unique_ids": [], "platform": "sensor", "class_name": "Battery", @@ -304,7 +285,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "00:15:8d:00:05:4b:9d:1f", + "device_ieee": "ab:cd:ef:12:23:cc:44:33", "endpoint_id": 1, "available": true, "group_id": null, @@ -314,10 +295,10 @@ "state": { "class_name": "Battery", "available": true, - "state": 59.0, + "state": 69.5, "battery_size": "CR2032", "battery_quantity": 1, - "battery_voltage": 2.99 + "battery_voltage": 3.01 }, "extra_state_attributes": [ "battery_quantity", @@ -328,7 +309,7 @@ { "info_object": { "fallback_name": null, - "unique_id": "00:15:8d:00:05:4b:9d:1f-1-1026", + "unique_id": "ab:cd:ef:12:23:cc:44:33-1-1026", "migrate_unique_ids": [], "platform": "sensor", "class_name": "Temperature", @@ -340,7 +321,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "00:15:8d:00:05:4b:9d:1f", + "device_ieee": "ab:cd:ef:12:23:cc:44:33", "endpoint_id": 1, "available": true, "group_id": null, @@ -350,13 +331,13 @@ "state": { "class_name": "Temperature", "available": true, - "state": 21.73 + "state": 26.02 } }, { "info_object": { "fallback_name": null, - "unique_id": "00:15:8d:00:05:4b:9d:1f-1-1027", + "unique_id": "ab:cd:ef:12:23:cc:44:33-1-1027", "migrate_unique_ids": [], "platform": "sensor", "class_name": "Pressure", @@ -368,7 +349,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "00:15:8d:00:05:4b:9d:1f", + "device_ieee": "ab:cd:ef:12:23:cc:44:33", "endpoint_id": 1, "available": true, "group_id": null, @@ -378,13 +359,13 @@ "state": { "class_name": "Pressure", "available": true, - "state": 1009 + "state": 992 } }, { "info_object": { "fallback_name": null, - "unique_id": "00:15:8d:00:05:4b:9d:1f-1-1029", + "unique_id": "ab:cd:ef:12:23:cc:44:33-1-1029", "migrate_unique_ids": [], "platform": "sensor", "class_name": "Humidity", @@ -396,7 +377,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "00:15:8d:00:05:4b:9d:1f", + "device_ieee": "ab:cd:ef:12:23:cc:44:33", "endpoint_id": 1, "available": true, "group_id": null, @@ -406,7 +387,7 @@ "state": { "class_name": "Humidity", "available": true, - "state": 57.99 + "state": 37.78 } } ] diff --git a/tests/data/devices/sonoff-01minizb.json b/tests/data/devices/sonoff-01minizb.json index 28bda0e60..b00c5b318 100644 --- a/tests/data/devices/sonoff-01minizb.json +++ b/tests/data/devices/sonoff-01minizb.json @@ -1,7 +1,7 @@ { "version": 2, - "ieee": "00:12:4b:00:26:b7:de:4f", - "nwk": "0x8893", + "ieee": "ab:cd:ef:12:f0:1f:8d:43", + "nwk": "0x4BB3", "manufacturer": "SONOFF", "model": "01MINIZB", "friendly_manufacturer": "SONOFF", @@ -10,11 +10,11 @@ "quirk_applied": false, "quirk_class": "zigpy.device.Device", "exposes_features": [], - "manufacturer_code": 4742, + "manufacturer_code": 4098, "power_source": "Mains", - "lqi": null, - "rssi": null, - "last_seen": "2025-04-24T17:34:07.003153+00:00", + "lqi": 120, + "rssi": -81, + "last_seen": "2026-02-15T13:28:26.830547+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -26,11 +26,11 @@ "aps_flags": 0, "frequency_band": 8, "mac_capability_flags": 142, - "manufacturer_code": 4742, - "maximum_buffer_size": 80, - "maximum_incoming_transfer_size": 160, + "manufacturer_code": 4098, + "maximum_buffer_size": 82, + "maximum_incoming_transfer_size": 82, "server_mask": 11264, - "maximum_outgoing_transfer_size": 160, + "maximum_outgoing_transfer_size": 82, "descriptor_capability_field": 0 }, "endpoints": { @@ -72,7 +72,32 @@ { "cluster_id": "0x0005", "endpoint_attribute": "scenes", - "attributes": [] + "attributes": [ + { + "id": "0xfffd", + "name": "cluster_revision", + "zcl_type": "uint16", + "value": 1 + }, + { + "id": "0x0001", + "name": "current_scene", + "zcl_type": "uint8", + "value": 0 + }, + { + "id": "0x0005", + "name": "last_configured_by", + "zcl_type": "EUI64", + "unsupported": true + }, + { + "id": "0x0004", + "name": "name_support", + "zcl_type": "map8", + "value": 0 + } + ] }, { "cluster_id": "0x0006", @@ -84,6 +109,12 @@ "zcl_type": "bool", "value": 0 }, + { + "id": "0x4001", + "name": "on_time", + "zcl_type": "uint16", + "value": 0 + }, { "id": "0x4003", "name": "start_up_on_off", @@ -93,15 +124,15 @@ ] }, { - "cluster_id": "0xfc57", - "endpoint_attribute": "works_with_all_hubs", + "cluster_id": "0x1000", + "endpoint_attribute": "lightlink", "attributes": [] } ], "out_clusters": [ { - "cluster_id": "0x0019", - "endpoint_attribute": "ota", + "cluster_id": "0x1000", + "endpoint_attribute": "lightlink", "attributes": [] } ] @@ -133,11 +164,11 @@ "aps_flags": 0, "frequency_band": 8, "mac_capability_flags": 142, - "manufacturer_code": 4742, - "maximum_buffer_size": 80, - "maximum_incoming_transfer_size": 160, + "manufacturer_code": 4098, + "maximum_buffer_size": 82, + "maximum_incoming_transfer_size": 82, "server_mask": 11264, - "maximum_outgoing_transfer_size": 160, + "maximum_outgoing_transfer_size": 82, "descriptor_capability_field": 0 }, "endpoints": { @@ -150,10 +181,10 @@ "0x0004", "0x0005", "0x0006", - "0xfc57" + "0x1000" ], "output_clusters": [ - "0x0019" + "0x1000" ] }, "242": { @@ -171,7 +202,7 @@ { "info_object": { "fallback_name": null, - "unique_id": "00:12:4b:00:26:b7:de:4f-1-3", + "unique_id": "ab:cd:ef:12:f0:1f:8d:43-1-3", "migrate_unique_ids": [], "platform": "button", "class_name": "IdentifyButton", @@ -183,7 +214,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "00:12:4b:00:26:b7:de:4f", + "device_ieee": "ab:cd:ef:12:f0:1f:8d:43", "endpoint_id": 1, "available": true, "group_id": null, @@ -203,7 +234,7 @@ { "info_object": { "fallback_name": null, - "unique_id": "00:12:4b:00:26:b7:de:4f-1", + "unique_id": "ab:cd:ef:12:f0:1f:8d:43-1", "migrate_unique_ids": [], "platform": "light", "class_name": "Light", @@ -215,7 +246,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": true, - "device_ieee": "00:12:4b:00:26:b7:de:4f", + "device_ieee": "ab:cd:ef:12:f0:1f:8d:43", "endpoint_id": 1, "available": true, "group_id": null, @@ -255,7 +286,7 @@ { "info_object": { "fallback_name": null, - "unique_id": "00:12:4b:00:26:b7:de:4f-1-0-lqi", + "unique_id": "ab:cd:ef:12:f0:1f:8d:43-1-0-lqi", "migrate_unique_ids": [], "platform": "sensor", "class_name": "LQISensor", @@ -267,7 +298,7 @@ "entity_registry_enabled_default": false, "enabled": true, "primary": false, - "device_ieee": "00:12:4b:00:26:b7:de:4f", + "device_ieee": "ab:cd:ef:12:f0:1f:8d:43", "endpoint_id": 1, "available": true, "group_id": null, @@ -277,13 +308,13 @@ "state": { "class_name": "LQISensor", "available": true, - "state": null + "state": 120 } }, { "info_object": { "fallback_name": null, - "unique_id": "00:12:4b:00:26:b7:de:4f-1-0-rssi", + "unique_id": "ab:cd:ef:12:f0:1f:8d:43-1-0-rssi", "migrate_unique_ids": [], "platform": "sensor", "class_name": "RSSISensor", @@ -295,7 +326,7 @@ "entity_registry_enabled_default": false, "enabled": true, "primary": false, - "device_ieee": "00:12:4b:00:26:b7:de:4f", + "device_ieee": "ab:cd:ef:12:f0:1f:8d:43", "endpoint_id": 1, "available": true, "group_id": null, @@ -305,42 +336,7 @@ "state": { "class_name": "RSSISensor", "available": true, - "state": null - } - } - ], - "update": [ - { - "info_object": { - "fallback_name": null, - "unique_id": "00:12:4b:00:26:b7:de:4f-1-25-firmware_update", - "migrate_unique_ids": [], - "platform": "update", - "class_name": "FirmwareUpdateEntity", - "translation_key": null, - "translation_placeholders": null, - "device_class": "firmware", - "state_class": null, - "entity_category": "config", - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "00:12:4b:00:26:b7:de:4f", - "endpoint_id": 1, - "available": true, - "group_id": null, - "supported_features": 7 - }, - "state": { - "class_name": "FirmwareUpdateEntity", - "available": true, - "installed_version": null, - "in_progress": false, - "update_percentage": null, - "latest_version": null, - "release_summary": null, - "release_notes": null, - "release_url": null + "state": -81 } } ] diff --git a/tests/data/devices/sonoff-snzb-06p-0x00001006.json b/tests/data/devices/sonoff-snzb-06p-0x00001006.json index e676d5c5d..fb3d6bb0c 100644 --- a/tests/data/devices/sonoff-snzb-06p-0x00001006.json +++ b/tests/data/devices/sonoff-snzb-06p-0x00001006.json @@ -1,7 +1,7 @@ { "version": 2, "ieee": "ab:cd:ef:12:dd:23:ca:15", - "nwk": "0xB334", + "nwk": "0x3CE1", "manufacturer": "SONOFF", "model": "SNZB-06P", "friendly_manufacturer": "SONOFF", @@ -12,9 +12,9 @@ "exposes_features": [], "manufacturer_code": 4742, "power_source": "Mains", - "lqi": 240, - "rssi": -51, - "last_seen": "2025-09-18T10:27:28.172559+00:00", + "lqi": 80, + "rssi": -80, + "last_seen": "2026-06-10T11:07:43.311139+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -75,16 +75,22 @@ "value": 0 }, { - "id": "0x0020", - "name": "ultrasonic_o_to_u_delay", + "id": "0x0010", + "name": "pir_o_to_u_delay", "zcl_type": "uint16", - "value": 15 + "unsupported": true }, { - "id": "0x0022", - "name": "ultrasonic_u_to_o_threshold", - "zcl_type": "uint8", - "value": 1 + "id": "0x0011", + "name": "pir_u_to_o_delay", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0020", + "name": "ultrasonic_o_to_u_delay", + "zcl_type": "uint16", + "value": 30 } ] }, @@ -96,7 +102,7 @@ "id": "0x2001", "name": "last_illumination_state", "zcl_type": "enum8", - "value": 1 + "unsupported": true } ] }, @@ -154,8 +160,8 @@ "0x0003", "0x0406", "0x0500", - "0xfc11", - "0xfc57" + "0xfc57", + "0xfc11" ], "output_clusters": [ "0x0003", @@ -255,41 +261,7 @@ "state": { "class_name": "SonoffPresenceSenorTimeout", "available": true, - "state": 15 - } - } - ], - "select": [ - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:dd:23:ca:15-1-1030-detection_sensitivity", - "migrate_unique_ids": [], - "platform": "select", - "class_name": "SonoffPresenceDetectionSensitivity", - "translation_key": "detection_sensitivity", - "translation_placeholders": null, - "device_class": null, - "state_class": null, - "entity_category": "config", - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:dd:23:ca:15", - "endpoint_id": 1, - "available": true, - "group_id": null, - "enum": "SonoffPresenceDetectionSensitivityEnum", - "options": [ - "Low", - "Medium", - "High" - ] - }, - "state": { - "class_name": "SonoffPresenceDetectionSensitivity", - "available": true, - "state": "Low" + "state": 30 } } ], @@ -319,7 +291,7 @@ "state": { "class_name": "LQISensor", "available": true, - "state": 240 + "state": 80 } }, { @@ -347,35 +319,7 @@ "state": { "class_name": "RSSISensor", "available": true, - "state": -51 - } - }, - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:dd:23:ca:15-1-64529-last_illumination", - "migrate_unique_ids": [], - "platform": "sensor", - "class_name": "SonoffPresenceSenorIlluminationStatus", - "translation_key": "last_illumination_state", - "translation_placeholders": null, - "device_class": "enum", - "state_class": null, - "entity_category": null, - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:dd:23:ca:15", - "endpoint_id": 1, - "available": true, - "group_id": null, - "suggested_display_precision": null, - "unit": null - }, - "state": { - "class_name": "SonoffPresenceSenorIlluminationStatus", - "available": true, - "state": "Light" + "state": -80 } } ], diff --git a/tests/data/devices/third-reality-inc-3rms16bz-0x0000004f.json b/tests/data/devices/third-reality-inc-3rms16bz-0x0000004f.json index 145902625..9bcbc4371 100644 --- a/tests/data/devices/third-reality-inc-3rms16bz-0x0000004f.json +++ b/tests/data/devices/third-reality-inc-3rms16bz-0x0000004f.json @@ -1,7 +1,7 @@ { "version": 2, - "ieee": "28:2c:02:bf:ff:e7:ba:8c", - "nwk": "0xED4B", + "ieee": "ab:cd:ef:12:a4:64:ee:6a", + "nwk": "0x8235", "manufacturer": "Third Reality, Inc", "model": "3RMS16BZ", "friendly_manufacturer": "Third Reality, Inc", @@ -12,9 +12,9 @@ "exposes_features": [], "manufacturer_code": 4659, "power_source": "Battery or Unknown", - "lqi": null, - "rssi": null, - "last_seen": "2025-04-24T17:34:07.865864+00:00", + "lqi": 255, + "rssi": -84, + "last_seen": "2026-02-09T12:50:55.609567+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -79,7 +79,7 @@ "id": "0x0021", "name": "battery_percentage_remaining", "zcl_type": "uint8", - "value": 101 + "value": 105 }, { "id": "0x0033", @@ -140,6 +140,11 @@ } ] }, + { + "cluster_id": "0xff00", + "endpoint_attribute": "manufacturer_specific", + "attributes": [] + }, { "cluster_id": "0xff01", "endpoint_attribute": null, @@ -193,9 +198,10 @@ "device_type": "0x0402", "input_clusters": [ "0x0000", + "0xff01", + "0xff00", "0x0001", - "0x0500", - "0xff01" + "0x0500" ], "output_clusters": [ "0x0019" @@ -208,7 +214,7 @@ { "info_object": { "fallback_name": null, - "unique_id": "28:2c:02:bf:ff:e7:ba:8c-1-1280", + "unique_id": "ab:cd:ef:12:a4:64:ee:6a-1-1280", "migrate_unique_ids": [], "platform": "binary_sensor", "class_name": "IASZone", @@ -220,7 +226,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": true, - "device_ieee": "28:2c:02:bf:ff:e7:ba:8c", + "device_ieee": "ab:cd:ef:12:a4:64:ee:6a", "endpoint_id": 1, "available": true, "group_id": null, @@ -237,7 +243,7 @@ { "info_object": { "fallback_name": "Detection interval", - "unique_id": "28:2c:02:bf:ff:e7:ba:8c-1-detection_interval", + "unique_id": "ab:cd:ef:12:a4:64:ee:6a-1-detection_interval", "migrate_unique_ids": [], "platform": "number", "class_name": "NumberConfigurationEntity", @@ -249,7 +255,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "28:2c:02:bf:ff:e7:ba:8c", + "device_ieee": "ab:cd:ef:12:a4:64:ee:6a", "endpoint_id": 1, "available": true, "group_id": null, @@ -270,7 +276,7 @@ { "info_object": { "fallback_name": null, - "unique_id": "28:2c:02:bf:ff:e7:ba:8c-1-0-lqi", + "unique_id": "ab:cd:ef:12:a4:64:ee:6a-1-0-lqi", "migrate_unique_ids": [], "platform": "sensor", "class_name": "LQISensor", @@ -282,7 +288,7 @@ "entity_registry_enabled_default": false, "enabled": true, "primary": false, - "device_ieee": "28:2c:02:bf:ff:e7:ba:8c", + "device_ieee": "ab:cd:ef:12:a4:64:ee:6a", "endpoint_id": 1, "available": true, "group_id": null, @@ -292,13 +298,13 @@ "state": { "class_name": "LQISensor", "available": true, - "state": null + "state": 255 } }, { "info_object": { "fallback_name": null, - "unique_id": "28:2c:02:bf:ff:e7:ba:8c-1-0-rssi", + "unique_id": "ab:cd:ef:12:a4:64:ee:6a-1-0-rssi", "migrate_unique_ids": [], "platform": "sensor", "class_name": "RSSISensor", @@ -310,7 +316,7 @@ "entity_registry_enabled_default": false, "enabled": true, "primary": false, - "device_ieee": "28:2c:02:bf:ff:e7:ba:8c", + "device_ieee": "ab:cd:ef:12:a4:64:ee:6a", "endpoint_id": 1, "available": true, "group_id": null, @@ -320,13 +326,13 @@ "state": { "class_name": "RSSISensor", "available": true, - "state": null + "state": -84 } }, { "info_object": { "fallback_name": null, - "unique_id": "28:2c:02:bf:ff:e7:ba:8c-1-1", + "unique_id": "ab:cd:ef:12:a4:64:ee:6a-1-1", "migrate_unique_ids": [], "platform": "sensor", "class_name": "Battery", @@ -338,7 +344,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "28:2c:02:bf:ff:e7:ba:8c", + "device_ieee": "ab:cd:ef:12:a4:64:ee:6a", "endpoint_id": 1, "available": true, "group_id": null, @@ -348,7 +354,7 @@ "state": { "class_name": "Battery", "available": true, - "state": 50.5, + "state": 52.5, "battery_voltage": 2.6 }, "extra_state_attributes": [ @@ -362,7 +368,7 @@ { "info_object": { "fallback_name": null, - "unique_id": "28:2c:02:bf:ff:e7:ba:8c-1-25-firmware_update", + "unique_id": "ab:cd:ef:12:a4:64:ee:6a-1-25-firmware_update", "migrate_unique_ids": [], "platform": "update", "class_name": "FirmwareUpdateEntity", @@ -374,7 +380,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "28:2c:02:bf:ff:e7:ba:8c", + "device_ieee": "ab:cd:ef:12:a4:64:ee:6a", "endpoint_id": 1, "available": true, "group_id": null, diff --git a/tests/data/devices/tz3000-1dd0d5yi-ts130f.json b/tests/data/devices/tz3000-1dd0d5yi-ts130f.json index e0cb54539..33c5b0aaa 100644 --- a/tests/data/devices/tz3000-1dd0d5yi-ts130f.json +++ b/tests/data/devices/tz3000-1dd0d5yi-ts130f.json @@ -1,7 +1,7 @@ { "version": 2, "ieee": "ab:cd:ef:12:15:80:89:33", - "nwk": "0xB0E7", + "nwk": "0x27A5", "manufacturer": "_TZ3000_1dd0d5yi", "model": "TS130F", "friendly_manufacturer": "_TZ3000_1dd0d5yi", @@ -12,9 +12,9 @@ "exposes_features": [], "manufacturer_code": 4098, "power_source": "Mains", - "lqi": 255, - "rssi": -73, - "last_seen": "2025-07-08T17:00:04.111016+00:00", + "lqi": 176, + "rssi": -56, + "last_seen": "2025-09-06T16:43:09.499765+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -45,78 +45,12 @@ "cluster_id": "0x0000", "endpoint_attribute": "basic", "attributes": [ - { - "id": "0x0013", - "name": "alarm_mask", - "zcl_type": "map8", - "unsupported": true - }, - { - "id": "0x0001", - "name": "app_version", - "zcl_type": "uint8", - "value": 71 - }, - { - "id": "0xfffd", - "name": "cluster_revision", - "zcl_type": "uint16", - "value": 2 - }, - { - "id": "0x0006", - "name": "date_code", - "zcl_type": "string", - "value": "" - }, - { - "id": "0x0012", - "name": "device_enabled", - "zcl_type": "bool", - "unsupported": true - }, - { - "id": "0x0014", - "name": "disable_local_config", - "zcl_type": "map8", - "unsupported": true - }, - { - "id": "0x0008", - "name": "generic_device_class", - "zcl_type": "enum8", - "unsupported": true - }, - { - "id": "0x0009", - "name": "generic_device_type", - "zcl_type": "enum8", - "unsupported": true - }, - { - "id": "0x0003", - "name": "hw_version", - "zcl_type": "uint8", - "value": 1 - }, - { - "id": "0x0010", - "name": "location_desc", - "zcl_type": "string", - "unsupported": true - }, { "id": "0x0004", "name": "manufacturer", "zcl_type": "string", "value": "_TZ3000_1dd0d5yi" }, - { - "id": "0x000c", - "name": "manufacturer_version_details", - "zcl_type": "string", - "unsupported": true - }, { "id": "0x0005", "name": "model", @@ -133,43 +67,18 @@ { "cluster_id": "0x0005", "endpoint_attribute": "scenes", - "attributes": [ - { - "id": "0x0004", - "name": "name_support", - "zcl_type": "map8", - "value": 0 - }, - { - "id": "0x0003", - "name": "scene_valid", - "zcl_type": "bool", - "value": 0 - } - ] + "attributes": [] }, { "cluster_id": "0x0006", "endpoint_attribute": "on_off", "attributes": [ - { - "id": "0x8001", - "name": "backlight_mode", - "zcl_type": "enum8", - "unsupported": true - }, { "id": "0x0000", "name": "on_off", "zcl_type": "bool", "unsupported": true }, - { - "id": "0xfffe", - "name": "reporting_status", - "zcl_type": "enum8", - "unsupported": true - }, { "id": "0x4003", "name": "start_up_on_off", @@ -182,12 +91,6 @@ "cluster_id": "0x0102", "endpoint_attribute": "window_covering", "attributes": [ - { - "id": "0x0015", - "name": "acceleration_time_lift", - "zcl_type": "uint16", - "unsupported": true - }, { "id": "0xf001", "name": "calibration", @@ -198,7 +101,7 @@ "id": "0xf003", "name": "calibration_time", "zcl_type": "uint16", - "value": 300 + "value": 230 }, { "id": "0x0007", @@ -206,17 +109,11 @@ "zcl_type": "map8", "unsupported": true }, - { - "id": "0x0003", - "name": "current_position_lift", - "zcl_type": "uint16", - "unsupported": true - }, { "id": "0x0008", "name": "current_position_lift_percentage", "zcl_type": "uint8", - "value": 100 + "value": 0 }, { "id": "0x0009", @@ -248,24 +145,12 @@ "zcl_type": "uint16", "unsupported": true }, - { - "id": "0x8000", - "name": "motor_mode", - "zcl_type": "enum8", - "unsupported": true - }, { "id": "0xf002", "name": "motor_reversal", "zcl_type": "enum8", "value": 0 }, - { - "id": "0x0005", - "name": "number_of_actuations_lift", - "zcl_type": "uint16", - "unsupported": true - }, { "id": "0xf000", "name": "tuya_moving_state", @@ -291,26 +176,7 @@ { "cluster_id": "0x000a", "endpoint_attribute": "time", - "attributes": [ - { - "id": "0xfffd", - "name": "cluster_revision", - "zcl_type": "uint16", - "value": 1 - }, - { - "id": "0x0007", - "name": "local_time", - "zcl_type": "uint32", - "unsupported": true - }, - { - "id": "0x0002", - "name": "time_zone", - "zcl_type": "int32", - "unsupported": true - } - ] + "attributes": [] }, { "cluster_id": "0x0019", @@ -321,30 +187,6 @@ "name": "current_file_version", "zcl_type": "uint32", "unsupported": true - }, - { - "id": "0x0004", - "name": "downloaded_file_version", - "zcl_type": "uint32", - "unsupported": true - }, - { - "id": "0x0005", - "name": "downloaded_zigbee_stack_version", - "zcl_type": "uint16", - "unsupported": true - }, - { - "id": "0x000a", - "name": "image_stamp", - "zcl_type": "uint32", - "unsupported": true - }, - { - "id": "0x0007", - "name": "manufacturer_id", - "zcl_type": "uint16", - "unsupported": true } ] } @@ -412,12 +254,12 @@ "state": { "class_name": "Cover", "available": true, - "current_position": 0, + "current_position": 100, "current_tilt_position": null, - "state": "closed", + "state": "open", "is_opening": false, "is_closing": false, - "is_closed": true, + "is_closed": false, "supported_features": 15 } } @@ -448,7 +290,7 @@ "state": { "class_name": "LQISensor", "available": true, - "state": 255 + "state": 176 } }, { @@ -476,7 +318,7 @@ "state": { "class_name": "RSSISensor", "available": true, - "state": -73 + "state": -56 } } ], diff --git a/tests/data/devices/tz3000-cfnprab5-ts011f.json b/tests/data/devices/tz3000-cfnprab5-ts011f.json index abfad584c..5d0786faa 100644 --- a/tests/data/devices/tz3000-cfnprab5-ts011f.json +++ b/tests/data/devices/tz3000-cfnprab5-ts011f.json @@ -1,7 +1,7 @@ { "version": 2, "ieee": "ab:cd:ef:12:86:cf:95:48", - "nwk": "0x329B", + "nwk": "0xC6A4", "manufacturer": "_TZ3000_cfnprab5", "model": "TS011F", "friendly_manufacturer": "_TZ3000_cfnprab5", @@ -10,11 +10,11 @@ "quirk_applied": false, "quirk_class": "zigpy.device.Device", "exposes_features": [], - "manufacturer_code": 4660, + "manufacturer_code": 4417, "power_source": "Mains", - "lqi": null, - "rssi": null, - "last_seen": "2025-12-11T01:25:35.022468+00:00", + "lqi": 204, + "rssi": -49, + "last_seen": "2026-02-17T09:18:23.050814+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -26,11 +26,11 @@ "aps_flags": 0, "frequency_band": 8, "mac_capability_flags": 142, - "manufacturer_code": 4660, - "maximum_buffer_size": 108, - "maximum_incoming_transfer_size": 0, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 0, + "manufacturer_code": 4417, + "maximum_buffer_size": 66, + "maximum_incoming_transfer_size": 66, + "server_mask": 10752, + "maximum_outgoing_transfer_size": 66, "descriptor_capability_field": 0 }, "endpoints": { @@ -45,42 +45,6 @@ "cluster_id": "0x0000", "endpoint_attribute": "basic", "attributes": [ - { - "id": "0x0013", - "name": "alarm_mask", - "zcl_type": "map8", - "unsupported": true - }, - { - "id": "0x0001", - "name": "app_version", - "zcl_type": "uint8", - "value": 100 - }, - { - "id": "0xfffd", - "name": "cluster_revision", - "zcl_type": "uint16", - "value": 1 - }, - { - "id": "0x0008", - "name": "generic_device_class", - "zcl_type": "enum8", - "unsupported": true - }, - { - "id": "0x0009", - "name": "generic_device_type", - "zcl_type": "enum8", - "unsupported": true - }, - { - "id": "0x0003", - "name": "hw_version", - "zcl_type": "uint8", - "value": 3 - }, { "id": "0x0004", "name": "manufacturer", @@ -92,12 +56,6 @@ "name": "model", "zcl_type": "string", "value": "TS011F" - }, - { - "id": "0x0007", - "name": "power_source", - "zcl_type": "enum8", - "value": 1 } ] }, @@ -124,17 +82,29 @@ "id": "0x0000", "name": "on_off", "zcl_type": "bool", + "value": 0 + }, + { + "id": "0x4003", + "name": "start_up_on_off", + "zcl_type": "enum8", "value": 1 } ] }, { - "cluster_id": "0xe001", + "cluster_id": "0xe000", "endpoint_attribute": null, "attributes": [] } ], - "out_clusters": [] + "out_clusters": [ + { + "cluster_id": "0x000a", + "endpoint_attribute": "time", + "attributes": [] + } + ] }, "2": { "profile_id": 260, @@ -171,12 +141,18 @@ "id": "0x0000", "name": "on_off", "zcl_type": "bool", + "value": 0 + }, + { + "id": "0x4003", + "name": "start_up_on_off", + "zcl_type": "enum8", "value": 1 } ] }, { - "cluster_id": "0xe001", + "cluster_id": "0xe000", "endpoint_attribute": null, "attributes": [] } @@ -218,12 +194,18 @@ "id": "0x0000", "name": "on_off", "zcl_type": "bool", + "value": 0 + }, + { + "id": "0x4003", + "name": "start_up_on_off", + "zcl_type": "enum8", "value": 1 } ] }, { - "cluster_id": "0xe001", + "cluster_id": "0xe000", "endpoint_attribute": null, "attributes": [] } @@ -240,7 +222,50 @@ { "cluster_id": "0x0000", "endpoint_attribute": "basic", - "attributes": [] + "attributes": [ + { + "id": "0x0012", + "name": "device_enabled", + "zcl_type": "bool", + "value": 1 + }, + { + "id": "0x0014", + "name": "disable_local_config", + "zcl_type": "map8", + "unsupported": true + }, + { + "id": "0x0008", + "name": "generic_device_class", + "zcl_type": "enum8", + "unsupported": true + }, + { + "id": "0x0009", + "name": "generic_device_type", + "zcl_type": "enum8", + "unsupported": true + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "TS011F" + }, + { + "id": "0x0007", + "name": "power_source", + "zcl_type": "enum8", + "value": 1 + }, + { + "id": "0x000a", + "name": "product_code", + "zcl_type": "octstr", + "unsupported": true + } + ] }, { "cluster_id": "0x0003", @@ -261,16 +286,28 @@ "cluster_id": "0x0006", "endpoint_attribute": "on_off", "attributes": [ + { + "id": "0xfffd", + "name": "cluster_revision", + "zcl_type": "uint16", + "value": 1 + }, { "id": "0x0000", "name": "on_off", "zcl_type": "bool", + "value": 0 + }, + { + "id": "0x4003", + "name": "start_up_on_off", + "zcl_type": "enum8", "value": 1 } ] }, { - "cluster_id": "0xe001", + "cluster_id": "0xe000", "endpoint_attribute": null, "attributes": [] } @@ -312,12 +349,18 @@ "id": "0x0000", "name": "on_off", "zcl_type": "bool", + "value": 0 + }, + { + "id": "0x4003", + "name": "start_up_on_off", + "zcl_type": "enum8", "value": 1 } ] }, { - "cluster_id": "0xe001", + "cluster_id": "0xe000", "endpoint_attribute": null, "attributes": [] } @@ -336,11 +379,11 @@ "aps_flags": 0, "frequency_band": 8, "mac_capability_flags": 142, - "manufacturer_code": 4660, - "maximum_buffer_size": 108, - "maximum_incoming_transfer_size": 0, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 0, + "manufacturer_code": 4417, + "maximum_buffer_size": 66, + "maximum_incoming_transfer_size": 66, + "server_mask": 10752, + "maximum_outgoing_transfer_size": 66, "descriptor_capability_field": 0 }, "endpoints": { @@ -353,9 +396,11 @@ "0x0004", "0x0005", "0x0006", - "0xe001" + "0xe000" ], - "output_clusters": [] + "output_clusters": [ + "0x000a" + ] }, "2": { "profile_id": "0x0104", @@ -366,7 +411,7 @@ "0x0004", "0x0005", "0x0006", - "0xe001" + "0xe000" ], "output_clusters": [] }, @@ -379,7 +424,7 @@ "0x0004", "0x0005", "0x0006", - "0xe001" + "0xe000" ], "output_clusters": [] }, @@ -392,7 +437,7 @@ "0x0004", "0x0005", "0x0006", - "0xe001" + "0xe000" ], "output_clusters": [] }, @@ -405,7 +450,7 @@ "0x0004", "0x0005", "0x0006", - "0xe001" + "0xe000" ], "output_clusters": [] } @@ -474,7 +519,7 @@ "state": { "class_name": "Light", "available": true, - "on": true, + "on": false, "brightness": null, "xy_color": null, "color_temp": null, @@ -524,7 +569,7 @@ "state": { "class_name": "Light", "available": true, - "on": true, + "on": false, "brightness": null, "xy_color": null, "color_temp": null, @@ -574,7 +619,7 @@ "state": { "class_name": "Light", "available": true, - "on": true, + "on": false, "brightness": null, "xy_color": null, "color_temp": null, @@ -624,7 +669,7 @@ "state": { "class_name": "Light", "available": true, - "on": true, + "on": false, "brightness": null, "xy_color": null, "color_temp": null, @@ -674,7 +719,7 @@ "state": { "class_name": "Light", "available": true, - "on": true, + "on": false, "brightness": null, "xy_color": null, "color_temp": null, @@ -696,6 +741,173 @@ ] } ], + "select": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:86:cf:95:48-1-6-StartUpOnOff", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "StartupOnOffSelectEntity", + "translation_key": "start_up_on_off", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:86:cf:95:48", + "endpoint_id": 1, + "available": true, + "group_id": null, + "enum": "StartUpOnOff", + "options": [ + "Off", + "On", + "Toggle", + "PreviousValue" + ] + }, + "state": { + "class_name": "StartupOnOffSelectEntity", + "available": true, + "state": "On" + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:86:cf:95:48-2-6-StartUpOnOff", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "StartupOnOffSelectEntity", + "translation_key": "start_up_on_off", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:86:cf:95:48", + "endpoint_id": 2, + "available": true, + "group_id": null, + "enum": "StartUpOnOff", + "options": [ + "Off", + "On", + "Toggle", + "PreviousValue" + ] + }, + "state": { + "class_name": "StartupOnOffSelectEntity", + "available": true, + "state": "On" + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:86:cf:95:48-3-6-StartUpOnOff", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "StartupOnOffSelectEntity", + "translation_key": "start_up_on_off", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:86:cf:95:48", + "endpoint_id": 3, + "available": true, + "group_id": null, + "enum": "StartUpOnOff", + "options": [ + "Off", + "On", + "Toggle", + "PreviousValue" + ] + }, + "state": { + "class_name": "StartupOnOffSelectEntity", + "available": true, + "state": "On" + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:86:cf:95:48-4-6-StartUpOnOff", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "StartupOnOffSelectEntity", + "translation_key": "start_up_on_off", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:86:cf:95:48", + "endpoint_id": 4, + "available": true, + "group_id": null, + "enum": "StartUpOnOff", + "options": [ + "Off", + "On", + "Toggle", + "PreviousValue" + ] + }, + "state": { + "class_name": "StartupOnOffSelectEntity", + "available": true, + "state": "On" + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:86:cf:95:48-5-6-StartUpOnOff", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "StartupOnOffSelectEntity", + "translation_key": "start_up_on_off", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:86:cf:95:48", + "endpoint_id": 5, + "available": true, + "group_id": null, + "enum": "StartUpOnOff", + "options": [ + "Off", + "On", + "Toggle", + "PreviousValue" + ] + }, + "state": { + "class_name": "StartupOnOffSelectEntity", + "available": true, + "state": "On" + } + } + ], "sensor": [ { "info_object": { @@ -722,7 +934,7 @@ "state": { "class_name": "LQISensor", "available": true, - "state": null + "state": 204 } }, { @@ -750,7 +962,7 @@ "state": { "class_name": "RSSISensor", "available": true, - "state": null + "state": -49 } } ] diff --git a/tests/data/devices/tz3000-o1jzcxou-ts011f-0x00000043.json b/tests/data/devices/tz3000-o1jzcxou-ts011f-0x00000043.json index c7df3088d..198aec37b 100644 --- a/tests/data/devices/tz3000-o1jzcxou-ts011f-0x00000043.json +++ b/tests/data/devices/tz3000-o1jzcxou-ts011f-0x00000043.json @@ -104,6 +104,18 @@ "cluster_id": "0x0006", "endpoint_attribute": "on_off", "attributes": [ + { + "id": "0x8001", + "name": "backlight_mode", + "zcl_type": "enum8", + "value": 1 + }, + { + "id": "0x8000", + "name": "child_lock", + "zcl_type": "bool", + "value": 0 + }, { "id": "0x4002", "name": "off_wait_time", @@ -122,6 +134,12 @@ "zcl_type": "uint16", "value": 0 }, + { + "id": "0x8002", + "name": "power_on_state", + "zcl_type": "enum8", + "value": 2 + }, { "id": "0x4003", "name": "start_up_on_off", @@ -138,7 +156,14 @@ { "cluster_id": "0xe001", "endpoint_attribute": "tuya_external_switch_type", - "attributes": [] + "attributes": [ + { + "id": "0xd030", + "name": "external_switch_type", + "zcl_type": "enum8", + "value": 0 + } + ] } ], "out_clusters": [ @@ -241,6 +266,72 @@ } } ], + "select": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:8f:94:54:69-1-6-backlight_mode", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "TuyaBacklightModeSelectEntity", + "translation_key": "backlight_mode", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:8f:94:54:69", + "endpoint_id": 1, + "available": true, + "group_id": null, + "enum": "TuyaBacklightMode", + "options": [ + "Off", + "LightWhenOn", + "LightWhenOff" + ] + }, + "state": { + "class_name": "TuyaBacklightModeSelectEntity", + "available": true, + "state": "LightWhenOn" + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:8f:94:54:69-1-6-power_on_state", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "TuyaPowerOnStateSelectEntity", + "translation_key": "power_on_state", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:8f:94:54:69", + "endpoint_id": 1, + "available": true, + "group_id": null, + "enum": "TuyaPowerOnState", + "options": [ + "Off", + "On", + "LastState" + ] + }, + "state": { + "class_name": "TuyaPowerOnStateSelectEntity", + "available": true, + "state": "LastState" + } + } + ], "sensor": [ { "info_object": { @@ -325,6 +416,38 @@ "state": 0, "available": true } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:8f:94:54:69-1-child_lock", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "TuyaChildLockSwitch", + "translation_key": "child_lock", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:8f:94:54:69", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "child_lock", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 0, + "on_value": 1 + }, + "state": { + "class_name": "TuyaChildLockSwitch", + "available": true, + "state": false, + "inverted": false + } } ], "update": [ diff --git a/tests/data/devices/tz3000-okaz9tjs-ts011f.json b/tests/data/devices/tz3000-okaz9tjs-ts011f.json index 3f2e5cb49..dddc04e82 100644 --- a/tests/data/devices/tz3000-okaz9tjs-ts011f.json +++ b/tests/data/devices/tz3000-okaz9tjs-ts011f.json @@ -1,22 +1,22 @@ { "version": 2, "ieee": "ab:cd:ef:12:44:63:a9:95", - "nwk": "0x12C0", + "nwk": "0x1835", "manufacturer": "_TZ3000_okaz9tjs", "model": "TS011F", "friendly_manufacturer": "_TZ3000_okaz9tjs", "friendly_model": "TS011F", "name": "_TZ3000_okaz9tjs TS011F", "quirk_applied": true, - "quirk_class": "zhaquirks.tuya.ts011f_plug:Plug_v5", + "quirk_class": "zhaquirks.tuya.ts011f_plug:Plug_v2_var_fc11", "exposes_features": [ "tuya.plug_on_off_attributes" ], "manufacturer_code": 4660, "power_source": "Mains", - "lqi": null, - "rssi": null, - "last_seen": "2025-12-11T00:56:57.358054+00:00", + "lqi": 56, + "rssi": -97, + "last_seen": "2026-02-09T15:13:01.260309+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -47,6 +47,12 @@ "cluster_id": "0x0000", "endpoint_attribute": "basic", "attributes": [ + { + "id": "0x0001", + "name": "app_version", + "zcl_type": "uint8", + "value": 100 + }, { "id": "0x0004", "name": "manufacturer", @@ -80,37 +86,20 @@ "cluster_id": "0x0006", "endpoint_attribute": "on_off", "attributes": [ - { - "id": "0x4002", - "name": "off_wait_time", - "zcl_type": "uint16", - "value": 0 - }, { "id": "0x0000", "name": "on_off", "zcl_type": "bool", - "value": 0 - }, - { - "id": "0x4001", - "name": "on_time", - "zcl_type": "uint16", - "value": 0 + "value": 1 }, { "id": "0x4003", "name": "start_up_on_off", "zcl_type": "enum8", - "value": 255 + "unsupported": true } ] }, - { - "cluster_id": "0x000a", - "endpoint_attribute": "time", - "attributes": [] - }, { "cluster_id": "0x0702", "endpoint_attribute": "smartenergy_metering", @@ -119,7 +108,13 @@ "id": "0x0000", "name": "current_summ_delivered", "zcl_type": "uint48", - "value": 0 + "value": 302 + }, + { + "id": "0x0001", + "name": "current_summ_received", + "zcl_type": "uint48", + "unsupported": true }, { "id": "0x0100", @@ -179,7 +174,7 @@ "id": "0x0306", "name": "metering_device_type", "zcl_type": "map8", - "value": 0 + "unsupported": true }, { "id": "0x0301", @@ -191,13 +186,13 @@ "id": "0x0200", "name": "status", "zcl_type": "map8", - "value": 0 + "unsupported": true }, { "id": "0x0303", "name": "summation_formatting", "zcl_type": "map8", - "value": 0 + "unsupported": true }, { "id": "0x0300", @@ -211,6 +206,12 @@ "cluster_id": "0x0b04", "endpoint_attribute": "electrical_measurement", "attributes": [ + { + "id": "0x0803", + "name": "ac_active_power_overload", + "zcl_type": "int16", + "unsupported": true + }, { "id": "0x0603", "name": "ac_current_divisor", @@ -251,25 +252,25 @@ "id": "0x0605", "name": "ac_power_divisor", "zcl_type": "uint16", - "value": 1 + "unsupported": true }, { "id": "0x0604", "name": "ac_power_multiplier", "zcl_type": "uint16", - "value": 1 + "unsupported": true }, { "id": "0x0601", "name": "ac_voltage_divisor", "zcl_type": "uint16", - "value": 1 + "unsupported": true }, { "id": "0x0600", "name": "ac_voltage_multiplier", "zcl_type": "uint16", - "value": 1 + "unsupported": true }, { "id": "0x050b", @@ -283,12 +284,90 @@ "zcl_type": "int16", "unsupported": true }, + { + "id": "0x090d", + "name": "active_power_max_ph_b", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x0a0d", + "name": "active_power_max_ph_c", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x090b", + "name": "active_power_ph_b", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x0a0b", + "name": "active_power_ph_c", + "zcl_type": "int16", + "unsupported": true + }, { "id": "0x050f", "name": "apparent_power", "zcl_type": "uint16", "unsupported": true }, + { + "id": "0x0103", + "name": "dc_current", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x0203", + "name": "dc_current_divisor", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0202", + "name": "dc_current_multiplier", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0106", + "name": "dc_power", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x0205", + "name": "dc_power_divisor", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0204", + "name": "dc_power_multiplier", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0100", + "name": "dc_voltage", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x0201", + "name": "dc_voltage_divisor", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0200", + "name": "dc_voltage_multiplier", + "zcl_type": "uint16", + "unsupported": true + }, { "id": "0x0000", "name": "measurement_type", @@ -307,6 +386,18 @@ "zcl_type": "int8", "unsupported": true }, + { + "id": "0x0910", + "name": "power_factor_ph_b", + "zcl_type": "int8", + "unsupported": true + }, + { + "id": "0x0a10", + "name": "power_factor_ph_c", + "zcl_type": "int8", + "unsupported": true + }, { "id": "0x0402", "name": "power_multiplier", @@ -325,33 +416,82 @@ "zcl_type": "uint16", "unsupported": true }, + { + "id": "0x090a", + "name": "rms_current_max_ph_b", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0a0a", + "name": "rms_current_max_ph_c", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0908", + "name": "rms_current_ph_b", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0a08", + "name": "rms_current_ph_c", + "zcl_type": "uint16", + "unsupported": true + }, { "id": "0x0505", "name": "rms_voltage", "zcl_type": "uint16", - "value": 239 + "value": 240 }, { "id": "0x0507", "name": "rms_voltage_max", "zcl_type": "uint16", "unsupported": true + }, + { + "id": "0x0907", + "name": "rms_voltage_max_ph_b", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0a07", + "name": "rms_voltage_max_ph_c", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0905", + "name": "rms_voltage_ph_b", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0a05", + "name": "rms_voltage_ph_c", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0304", + "name": "total_active_power", + "zcl_type": "int32", + "unsupported": true } ] }, { - "cluster_id": "0x1000", - "endpoint_attribute": "lightlink", - "attributes": [] - }, - { - "cluster_id": "0xe000", - "endpoint_attribute": "tuya_manufacturer_specific_57344", + "cluster_id": "0xe001", + "endpoint_attribute": "tuya_external_switch_type", "attributes": [] }, { - "cluster_id": "0xe001", - "endpoint_attribute": "tuya_external_switch_type", + "cluster_id": "0xfc11", + "endpoint_attribute": "manufacturer_specific", "attributes": [] } ], @@ -379,19 +519,17 @@ "endpoints": { "1": { "profile_id": "0x0104", - "device_type": "0x0100", + "device_type": "0x0051", "input_clusters": [ "0x0000", + "0x0006", "0x0003", "0x0004", "0x0005", - "0x0006", - "0x000a", - "0x0702", + "0xe001", "0x0b04", - "0x1000", - "0xe000", - "0xe001" + "0x0702", + "0xfc11" ], "output_clusters": [] } @@ -430,41 +568,6 @@ } } ], - "select": [ - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:44:63:a9:95-1-6-StartUpOnOff", - "migrate_unique_ids": [], - "platform": "select", - "class_name": "StartupOnOffSelectEntity", - "translation_key": "start_up_on_off", - "translation_placeholders": null, - "device_class": null, - "state_class": null, - "entity_category": "config", - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:44:63:a9:95", - "endpoint_id": 1, - "available": true, - "group_id": null, - "enum": "StartUpOnOff", - "options": [ - "Off", - "On", - "Toggle", - "PreviousValue" - ] - }, - "state": { - "class_name": "StartupOnOffSelectEntity", - "available": true, - "state": "PreviousValue" - } - } - ], "sensor": [ { "info_object": { @@ -491,7 +594,7 @@ "state": { "class_name": "LQISensor", "available": true, - "state": null + "state": 56 } }, { @@ -519,7 +622,7 @@ "state": { "class_name": "RSSISensor", "available": true, - "state": null + "state": -97 } }, { @@ -547,9 +650,7 @@ "state": { "class_name": "SmartEnergySummation", "available": true, - "state": 0.0, - "device_type": "Electric Metering", - "status": "NO_ALARMS", + "state": 3.02, "zcl_unit_of_measurement": 0 }, "extra_state_attributes": [ @@ -647,7 +748,7 @@ "state": { "class_name": "ElectricalMeasurementRMSVoltage", "available": true, - "state": 239.0 + "state": 240.0 }, "extra_state_attributes": [ "measurement_type", @@ -678,7 +779,7 @@ }, "state": { "class_name": "Switch", - "state": 0, + "state": 1, "available": true } } diff --git a/tests/data/devices/tz3290-ot6ewjvmejq5ekhl-ts1201-0x00000043.json b/tests/data/devices/tz3290-ot6ewjvmejq5ekhl-ts1201-0x00000043.json index 250611bb3..1067d77b0 100644 --- a/tests/data/devices/tz3290-ot6ewjvmejq5ekhl-ts1201-0x00000043.json +++ b/tests/data/devices/tz3290-ot6ewjvmejq5ekhl-ts1201-0x00000043.json @@ -1,7 +1,7 @@ { "version": 2, "ieee": "ab:cd:ef:12:15:61:a8:f8", - "nwk": "0x8AD7", + "nwk": "0x8BCA", "manufacturer": "_TZ3290_ot6ewjvmejq5ekhl", "model": "TS1201", "friendly_manufacturer": "_TZ3290_ot6ewjvmejq5ekhl", @@ -12,9 +12,9 @@ "exposes_features": [], "manufacturer_code": 4098, "power_source": "Battery or Unknown", - "lqi": 120, - "rssi": null, - "last_seen": "2025-08-05T14:08:34.872297+00:00", + "lqi": 240, + "rssi": -40, + "last_seen": "2026-01-10T22:02:40.374268+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -45,12 +45,6 @@ "cluster_id": "0x0000", "endpoint_attribute": "basic", "attributes": [ - { - "id": "0x0013", - "name": "alarm_mask", - "zcl_type": "map8", - "unsupported": true - }, { "id": "0x0004", "name": "manufacturer", @@ -73,7 +67,7 @@ "id": "0x0021", "name": "battery_percentage_remaining", "zcl_type": "uint8", - "value": 122 + "value": 200 }, { "id": "0x0033", @@ -91,7 +85,7 @@ "id": "0x0020", "name": "battery_voltage", "zcl_type": "uint8", - "value": 13 + "value": 15 } ] }, @@ -258,7 +252,7 @@ "state": { "class_name": "LQISensor", "available": true, - "state": 120 + "state": 240 } }, { @@ -286,7 +280,7 @@ "state": { "class_name": "RSSISensor", "available": true, - "state": null + "state": -40 } }, { @@ -314,8 +308,8 @@ "state": { "class_name": "Battery", "available": true, - "state": 61.0, - "battery_voltage": 1.3 + "state": 100.0, + "battery_voltage": 1.5 }, "extra_state_attributes": [ "battery_quantity", diff --git a/tests/data/devices/tze200-sur6q7ko-ts0601-0x00000045.json b/tests/data/devices/tze200-sur6q7ko-ts0601-0x00000045.json index 41ed04051..941fbf0e6 100644 --- a/tests/data/devices/tze200-sur6q7ko-ts0601-0x00000045.json +++ b/tests/data/devices/tze200-sur6q7ko-ts0601-0x00000045.json @@ -205,18 +205,6 @@ "zcl_type": "int8", "value": 140 }, - { - "id": "0x0016", - "name": "max_heat_setpoint_limit", - "zcl_type": "int16", - "value": 3000 - }, - { - "id": "0x0015", - "name": "min_heat_setpoint_limit", - "zcl_type": "int16", - "value": 500 - }, { "id": "0x0012", "name": "occupied_heating_setpoint", @@ -581,7 +569,7 @@ "available": true, "group_id": null, "max_temp": 30.0, - "min_temp": 5.0, + "min_temp": 7.0, "supported_features": 385, "fan_modes": null, "preset_modes": [], @@ -686,68 +674,6 @@ "state": 14.0 } }, - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:a2:68:cb:79-1-513-max_heat_setpoint_limit", - "migrate_unique_ids": [], - "platform": "number", - "class_name": "MaxHeatSetpointLimit", - "translation_key": "max_heat_setpoint_limit", - "translation_placeholders": null, - "device_class": null, - "state_class": null, - "entity_category": "config", - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:a2:68:cb:79", - "endpoint_id": 1, - "available": true, - "group_id": null, - "mode": "box", - "native_max_value": 327.67, - "native_min_value": 5.0, - "native_step": 0.5, - "native_unit_of_measurement": "\u00b0C" - }, - "state": { - "class_name": "MaxHeatSetpointLimit", - "available": true, - "state": 30.0 - } - }, - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:a2:68:cb:79-1-513-min_heat_setpoint_limit", - "migrate_unique_ids": [], - "platform": "number", - "class_name": "MinHeatSetpointLimit", - "translation_key": "min_heat_setpoint_limit", - "translation_placeholders": null, - "device_class": null, - "state_class": null, - "entity_category": "config", - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:a2:68:cb:79", - "endpoint_id": 1, - "available": true, - "group_id": null, - "mode": "box", - "native_max_value": 30.0, - "native_min_value": -273.15000000000003, - "native_step": 0.5, - "native_unit_of_measurement": "\u00b0C" - }, - "state": { - "class_name": "MinHeatSetpointLimit", - "available": true, - "state": 5.0 - } - }, { "info_object": { "fallback_name": "Opened Window Temperature", diff --git a/tests/data/devices/tze204-lpedvtvr-ts0601-0x0000004a.json b/tests/data/devices/tze204-lpedvtvr-ts0601-0x0000004a.json index 0905755e1..4a6714208 100644 --- a/tests/data/devices/tze204-lpedvtvr-ts0601-0x0000004a.json +++ b/tests/data/devices/tze204-lpedvtvr-ts0601-0x0000004a.json @@ -1,7 +1,7 @@ { "version": 2, "ieee": "ab:cd:ef:12:3b:28:22:86", - "nwk": "0xA88C", + "nwk": "0xF1A0", "manufacturer": "_TZE204_lpedvtvr", "model": "TS0601", "friendly_manufacturer": "_TZE204_lpedvtvr", @@ -12,9 +12,9 @@ "exposes_features": [], "manufacturer_code": 4417, "power_source": "Mains", - "lqi": null, + "lqi": 57, "rssi": null, - "last_seen": "2025-10-28T18:08:50.482185+00:00", + "last_seen": "2026-04-30T09:16:03.886807+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -37,8 +37,8 @@ "1": { "profile_id": 260, "device_type": { - "name": "THERMOSTAT", - "id": 769 + "name": "SMART_PLUG", + "id": 81 }, "in_clusters": [ { @@ -75,162 +75,6 @@ "endpoint_attribute": "scenes", "attributes": [] }, - { - "cluster_id": "0x0201", - "endpoint_attribute": "thermostat", - "attributes": [ - { - "id": "0x0006", - "name": "abs_max_cool_setpoint_limit", - "zcl_type": "int16", - "unsupported": true - }, - { - "id": "0x0004", - "name": "abs_max_heat_setpoint_limit", - "zcl_type": "int16", - "unsupported": true - }, - { - "id": "0x0005", - "name": "abs_min_cool_setpoint_limit", - "zcl_type": "int16", - "unsupported": true - }, - { - "id": "0x0003", - "name": "abs_min_heat_setpoint_limit", - "zcl_type": "int16", - "unsupported": true - }, - { - "id": "0x001b", - "name": "ctrl_sequence_of_oper", - "zcl_type": "enum8", - "value": 2 - }, - { - "id": "0x0000", - "name": "local_temperature", - "zcl_type": "int16", - "value": 2150 - }, - { - "id": "0x0010", - "name": "local_temperature_calibration", - "zcl_type": "int8", - "unsupported": true - }, - { - "id": "0x0018", - "name": "max_cool_setpoint_limit", - "zcl_type": "int16", - "unsupported": true - }, - { - "id": "0x0016", - "name": "max_heat_setpoint_limit", - "zcl_type": "int16", - "unsupported": true - }, - { - "id": "0x0017", - "name": "min_cool_setpoint_limit", - "zcl_type": "int16", - "unsupported": true - }, - { - "id": "0x0015", - "name": "min_heat_setpoint_limit", - "zcl_type": "int16", - "unsupported": true - }, - { - "id": "0x0002", - "name": "occupancy", - "zcl_type": "map8", - "unsupported": true - }, - { - "id": "0x0011", - "name": "occupied_cooling_setpoint", - "zcl_type": "int16", - "unsupported": true - }, - { - "id": "0x0012", - "name": "occupied_heating_setpoint", - "zcl_type": "int16", - "value": 2000 - }, - { - "id": "0x0007", - "name": "pi_cooling_demand", - "zcl_type": "uint8", - "unsupported": true - }, - { - "id": "0x0008", - "name": "pi_heating_demand", - "zcl_type": "uint8", - "unsupported": true - }, - { - "id": "0x0025", - "name": "programing_oper_mode", - "zcl_type": "map8", - "value": 2 - }, - { - "id": "0x001e", - "name": "running_mode", - "zcl_type": "enum8", - "value": 0 - }, - { - "id": "0x0029", - "name": "running_state", - "zcl_type": "map16", - "value": 0 - }, - { - "id": "0x0030", - "name": "setpoint_change_source", - "zcl_type": "enum8", - "unsupported": true - }, - { - "id": "0x001c", - "name": "system_mode", - "zcl_type": "enum8", - "value": 1 - }, - { - "id": "0x0013", - "name": "unoccupied_cooling_setpoint", - "zcl_type": "int16", - "unsupported": true - }, - { - "id": "0x0014", - "name": "unoccupied_heating_setpoint", - "zcl_type": "int16", - "unsupported": true - } - ] - }, - { - "cluster_id": "0x0204", - "endpoint_attribute": "thermostat_ui", - "attributes": [ - { - "id": "0x0001", - "name": "keypad_lockout", - "zcl_type": "enum8", - "value": 0 - } - ] - }, { "cluster_id": "0xef00", "endpoint_attribute": null, @@ -294,18 +138,16 @@ "endpoints": { "1": { "profile_id": "0x0104", - "device_type": "0x0301", + "device_type": "0x0051", "input_clusters": [ - "0x0000", "0x0004", "0x0005", - "0x0201", - "0x0204", - "0xef00" + "0xef00", + "0x0000" ], "output_clusters": [ - "0x000a", - "0x0019" + "0x0019", + "0x000a" ] }, "242": { @@ -319,105 +161,6 @@ } }, "zha_lib_entities": { - "climate": [ - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:3b:28:22:86-1", - "migrate_unique_ids": [], - "platform": "climate", - "class_name": "Thermostat", - "translation_key": "thermostat", - "translation_placeholders": null, - "device_class": null, - "state_class": null, - "entity_category": null, - "entity_registry_enabled_default": true, - "enabled": true, - "primary": true, - "device_ieee": "ab:cd:ef:12:3b:28:22:86", - "endpoint_id": 1, - "available": true, - "group_id": null, - "max_temp": 30.0, - "min_temp": 7.0, - "supported_features": 385, - "fan_modes": null, - "preset_modes": [], - "hvac_modes": [ - "off", - "heat" - ] - }, - "state": { - "class_name": "Thermostat", - "available": true, - "current_temperature": 21.5, - "outdoor_temperature": null, - "target_temperature": null, - "target_temperature_high": null, - "target_temperature_low": 20.0, - "hvac_action": "idle", - "hvac_mode": "heat_cool", - "preset_mode": "none", - "fan_mode": "auto", - "system_mode": "[1]/heat_cool", - "occupancy": null, - "occupied_cooling_setpoint": null, - "occupied_heating_setpoint": 2000, - "pi_heating_demand": null, - "pi_cooling_demand": null, - "unoccupied_cooling_setpoint": null, - "unoccupied_heating_setpoint": null - }, - "extra_state_attributes": [ - "occupancy", - "occupied_cooling_setpoint", - "occupied_heating_setpoint", - "pi_cooling_demand", - "pi_heating_demand", - "system_mode", - "unoccupied_cooling_setpoint", - "unoccupied_heating_setpoint" - ] - } - ], - "select": [ - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:3b:28:22:86-1-516-keypad_lockout", - "migrate_unique_ids": [], - "platform": "select", - "class_name": "KeypadLockout", - "translation_key": "keypad_lockout", - "translation_placeholders": null, - "device_class": null, - "state_class": null, - "entity_category": "config", - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:3b:28:22:86", - "endpoint_id": 1, - "available": true, - "group_id": null, - "enum": "KeypadLockoutEnum", - "options": [ - "Unlock", - "Lock1", - "Lock2", - "Lock3", - "Lock4" - ] - }, - "state": { - "class_name": "KeypadLockout", - "available": true, - "state": "Unlock" - } - } - ], "sensor": [ { "info_object": { @@ -444,7 +187,7 @@ "state": { "class_name": "LQISensor", "available": true, - "state": null + "state": 57 } }, { @@ -474,62 +217,6 @@ "available": true, "state": null } - }, - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:3b:28:22:86-1-513-hvac_action", - "migrate_unique_ids": [], - "platform": "sensor", - "class_name": "ThermostatHVACAction", - "translation_key": "hvac_action", - "translation_placeholders": null, - "device_class": null, - "state_class": null, - "entity_category": null, - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:3b:28:22:86", - "endpoint_id": 1, - "available": true, - "group_id": null, - "suggested_display_precision": null, - "unit": null - }, - "state": { - "class_name": "ThermostatHVACAction", - "available": true, - "state": "idle" - } - }, - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:3b:28:22:86-1-513-setpoint_change_source_timestamp", - "migrate_unique_ids": [], - "platform": "sensor", - "class_name": "SetpointChangeSourceTimestamp", - "translation_key": "setpoint_change_source_timestamp", - "translation_placeholders": null, - "device_class": "timestamp", - "state_class": null, - "entity_category": "diagnostic", - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:3b:28:22:86", - "endpoint_id": 1, - "available": true, - "group_id": null, - "suggested_display_precision": null, - "unit": null - }, - "state": { - "class_name": "SetpointChangeSourceTimestamp", - "available": true, - "state": null - } } ], "update": [ diff --git a/tests/data/devices/tze204-ltwbm23f-ts0601-0x0000004a.json b/tests/data/devices/tze204-ltwbm23f-ts0601-0x0000004a.json index 0c36cc247..14dbb1867 100644 --- a/tests/data/devices/tze204-ltwbm23f-ts0601-0x0000004a.json +++ b/tests/data/devices/tze204-ltwbm23f-ts0601-0x0000004a.json @@ -1,7 +1,7 @@ { "version": 2, "ieee": "ab:cd:ef:12:1b:1e:95:0a", - "nwk": "0x616B", + "nwk": "0x90BC", "manufacturer": "_TZE204_ltwbm23f", "model": "TS0601", "friendly_manufacturer": "_TZE204_ltwbm23f", @@ -12,9 +12,9 @@ "exposes_features": [], "manufacturer_code": 4417, "power_source": "Battery or Unknown", - "lqi": null, - "rssi": null, - "last_seen": "2025-10-28T18:05:41.596767+00:00", + "lqi": 188, + "rssi": -53, + "last_seen": "2026-02-09T20:37:30.290352+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -51,6 +51,18 @@ "zcl_type": "uint8", "value": 74 }, + { + "id": "0x0006", + "name": "date_code", + "zcl_type": "string", + "value": "" + }, + { + "id": "0x0003", + "name": "hw_version", + "zcl_type": "uint8", + "value": 1 + }, { "id": "0x0004", "name": "manufacturer", @@ -62,6 +74,24 @@ "name": "model", "zcl_type": "string", "value": "TS0601" + }, + { + "id": "0x0007", + "name": "power_source", + "zcl_type": "enum8", + "value": 3 + }, + { + "id": "0x0002", + "name": "stack_version", + "zcl_type": "uint8", + "value": 0 + }, + { + "id": "0x0000", + "name": "zcl_version", + "zcl_type": "uint8", + "value": 3 } ] }, @@ -69,6 +99,48 @@ "cluster_id": "0x0001", "endpoint_attribute": "power", "attributes": [ + { + "id": "0x0052", + "name": "battery_2_a_hr_rating", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0040", + "name": "battery_2_voltage", + "zcl_type": "uint8", + "unsupported": true + }, + { + "id": "0x0072", + "name": "battery_3_a_hr_rating", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x007e", + "name": "battery_3_alarm_state", + "zcl_type": "map32", + "unsupported": true + }, + { + "id": "0x0070", + "name": "battery_3_manufacturer", + "zcl_type": "string", + "unsupported": true + }, + { + "id": "0x0061", + "name": "battery_3_percentage_remaining", + "zcl_type": "uint8", + "unsupported": true + }, + { + "id": "0x0021", + "name": "battery_percentage_remaining", + "zcl_type": "uint8", + "value": 162 + }, { "id": "0x0033", "name": "battery_quantity", @@ -86,18 +158,80 @@ "name": "battery_size", "zcl_type": "enum8", "value": 3 + }, + { + "id": "0x0036", + "name": "battery_volt_min_thres", + "zcl_type": "uint8", + "unsupported": true + }, + { + "id": "0x0020", + "name": "battery_voltage", + "zcl_type": "uint8", + "unsupported": true } ] }, { "cluster_id": "0x0004", "endpoint_attribute": "groups", - "attributes": [] + "attributes": [ + { + "id": "0xfffd", + "name": "cluster_revision", + "zcl_type": "uint16", + "value": 2 + }, + { + "id": "0x0000", + "name": "name_support", + "zcl_type": "map8", + "value": 0 + } + ] }, { "cluster_id": "0x0005", "endpoint_attribute": "scenes", - "attributes": [] + "attributes": [ + { + "id": "0xfffd", + "name": "cluster_revision", + "zcl_type": "uint16", + "value": 2 + }, + { + "id": "0x0000", + "name": "count", + "zcl_type": "uint8", + "value": 0 + }, + { + "id": "0x0002", + "name": "current_group", + "zcl_type": "uint16", + "value": 0 + }, + { + "id": "0x0001", + "name": "current_scene", + "zcl_type": "uint8", + "value": 0 + }, + { + "id": "0x0004", + "name": "name_support", + "zcl_type": "map8", + "value": 0 + }, + { + "id": "0x0003", + "name": "scene_valid", + "zcl_type": "bool", + "value": 0 + } + ] }, { "cluster_id": "0x0201", @@ -125,7 +259,7 @@ "id": "0x0000", "name": "local_temperature", "zcl_type": "int16", - "value": 1970 + "value": 1740 }, { "id": "0x0010", @@ -149,7 +283,7 @@ "id": "0x0012", "name": "occupied_heating_setpoint", "zcl_type": "int16", - "value": 1800 + "value": 1550 }, { "id": "0x0008", @@ -174,6 +308,12 @@ "name": "setpoint_change_source_timestamp", "zcl_type": "UTC", "unsupported": true + }, + { + "id": "0x001c", + "name": "system_mode", + "zcl_type": "enum8", + "value": 4 } ] }, @@ -181,28 +321,100 @@ "cluster_id": "0xef00", "endpoint_attribute": "tuya_manufacturer", "attributes": [ + { + "id": "0xef07", + "name": "child_lock", + "zcl_type": "bool", + "value": 0 + }, { "id": "0xef77", "name": "comfort_temperature", "zcl_type": "uint16", - "value": 170 + "value": 160 + }, + { + "id": "0xef6f", + "name": "display_brightness", + "zcl_type": "enum8", + "value": 1 + }, + { + "id": "0xef71", + "name": "display_orientation", + "zcl_type": "enum8", + "value": 0 }, { "id": "0xef78", "name": "eco_temperature", "zcl_type": "uint16", - "value": 200 + "value": 155 + }, + { + "id": "0xef79", + "name": "holiday_temperature", + "zcl_type": "uint16", + "value": 80 + }, + { + "id": "0xef7f", + "name": "hysteresis_mode", + "zcl_type": "enum8", + "value": 0 }, { "id": "0xef2f", "name": "local_temperature_calibration", "zcl_type": "int32", - "value": 0 + "value": -10 + }, + { + "id": "0xef09", + "name": "max_temperature", + "zcl_type": "uint16", + "value": 300 + }, + { + "id": "0xef00", + "name": "mcu_version", + "zcl_type": "uint48", + "value": "1.0.7" + }, + { + "id": "0xef0a", + "name": "min_temperature", + "zcl_type": "uint16", + "value": 50 + }, + { + "id": "0xef6e", + "name": "motor_thrust", + "zcl_type": "enum8", + "value": 1 + }, + { + "id": "0xef02", + "name": "preset_mode", + "zcl_type": "uint16", + "value": 2 }, { "id": "0xef72", "name": "valve_position", "zcl_type": "int16", + "value": 10 + }, + { + "id": "0xef0e", + "name": "window_detection", + "zcl_type": "bool", + "value": 1 + }, + { + "id": "0xef0f", + "name": "window_open", + "zcl_type": "bool", "value": 0 } ] @@ -212,17 +424,84 @@ { "cluster_id": "0x000a", "endpoint_attribute": "time", - "attributes": [] + "attributes": [ + { + "id": "0xfffd", + "name": "cluster_revision", + "zcl_type": "uint16", + "value": 1 + } + ] }, { "cluster_id": "0x0019", "endpoint_attribute": "ota", "attributes": [ + { + "id": "0xfffd", + "name": "cluster_revision", + "zcl_type": "uint16", + "value": 3 + }, { "id": "0x0002", "name": "current_file_version", "zcl_type": "uint32", "value": 74 + }, + { + "id": "0x0003", + "name": "current_zigbee_stack_version", + "zcl_type": "uint16", + "value": 2 + }, + { + "id": "0x0004", + "name": "downloaded_file_version", + "zcl_type": "uint32", + "value": 4294967295 + }, + { + "id": "0x0005", + "name": "downloaded_zigbee_stack_version", + "zcl_type": "uint16", + "value": 65535 + }, + { + "id": "0x0001", + "name": "file_offset", + "zcl_type": "uint32", + "value": 4294967295 + }, + { + "id": "0x0008", + "name": "image_type_id", + "zcl_type": "uint16", + "value": 65535 + }, + { + "id": "0x0006", + "name": "image_upgrade_status", + "zcl_type": "enum8", + "value": 0 + }, + { + "id": "0x0007", + "name": "manufacturer_id", + "zcl_type": "uint16", + "value": 4417 + }, + { + "id": "0x0009", + "name": "minimum_block_req_delay", + "zcl_type": "uint16", + "value": 0 + }, + { + "id": "0x0000", + "name": "upgrade_server_id", + "zcl_type": "EUI64", + "value": "ff:ff:ff:ff:ff:ff:ff:ff" } ] } @@ -253,15 +532,13 @@ "device_type": "0x0051", "input_clusters": [ "0x0000", - "0x0001", "0x0004", "0x0005", - "0x0201", "0xef00" ], "output_clusters": [ - "0x000a", - "0x0019" + "0x0019", + "0x000a" ] } } @@ -329,19 +606,19 @@ "state": { "class_name": "Thermostat", "available": true, - "current_temperature": 19.7, + "current_temperature": 17.4, "outdoor_temperature": null, - "target_temperature": null, + "target_temperature": 15.5, "target_temperature_high": null, "target_temperature_low": null, "hvac_action": "heating", - "hvac_mode": null, + "hvac_mode": "heat", "preset_mode": "none", "fan_mode": "auto", - "system_mode": null, + "system_mode": "[4]/heat", "occupancy": null, "occupied_cooling_setpoint": null, - "occupied_heating_setpoint": 1800, + "occupied_heating_setpoint": 1550, "pi_heating_demand": null, "pi_cooling_demand": null, "unoccupied_cooling_setpoint": null, @@ -388,7 +665,7 @@ "state": { "class_name": "NumberConfigurationEntity", "available": true, - "state": 17.0 + "state": 16.0 } }, { @@ -419,7 +696,7 @@ "state": { "class_name": "NumberConfigurationEntity", "available": true, - "state": 20.0 + "state": 15.5 } }, { @@ -450,7 +727,7 @@ "state": { "class_name": "NumberConfigurationEntity", "available": true, - "state": null + "state": 8.0 } }, { @@ -481,7 +758,7 @@ "state": { "class_name": "NumberConfigurationEntity", "available": true, - "state": 0.0 + "state": -1.0 } }, { @@ -512,7 +789,7 @@ "state": { "class_name": "NumberConfigurationEntity", "available": true, - "state": null + "state": 30.0 } }, { @@ -543,7 +820,7 @@ "state": { "class_name": "NumberConfigurationEntity", "available": true, - "state": null + "state": 5.0 } } ], @@ -577,7 +854,7 @@ "state": { "class_name": "ZCLEnumSelectEntity", "available": true, - "state": null + "state": "Medium" } }, { @@ -608,7 +885,7 @@ "state": { "class_name": "ZCLEnumSelectEntity", "available": true, - "state": null + "state": "Up" } }, { @@ -639,7 +916,7 @@ "state": { "class_name": "ZCLEnumSelectEntity", "available": true, - "state": null + "state": "Comfort" } }, { @@ -671,7 +948,7 @@ "state": { "class_name": "ZCLEnumSelectEntity", "available": true, - "state": null + "state": "Middle" } }, { @@ -704,7 +981,7 @@ "state": { "class_name": "ZCLEnumSelectEntity", "available": true, - "state": null + "state": "Off" } } ], @@ -734,7 +1011,7 @@ "state": { "class_name": "LQISensor", "available": true, - "state": null + "state": 188 } }, { @@ -762,7 +1039,7 @@ "state": { "class_name": "RSSISensor", "available": true, - "state": null + "state": -53 } }, { @@ -790,7 +1067,7 @@ "state": { "class_name": "Battery", "available": true, - "state": null, + "state": 81.0, "battery_size": "AA", "battery_quantity": 2 }, @@ -853,7 +1130,7 @@ "state": { "class_name": "Sensor", "available": true, - "state": 0.0 + "state": 1.0 } } ], @@ -918,7 +1195,7 @@ "state": { "class_name": "ConfigurableAttributeSwitch", "available": true, - "state": false, + "state": true, "inverted": false } } diff --git a/tests/data/devices/tze204-qvxrkeif-ts0601-0x0000004a.json b/tests/data/devices/tze204-qvxrkeif-ts0601-0x0000004a.json index ae6f8fc58..a0f785a70 100644 --- a/tests/data/devices/tze204-qvxrkeif-ts0601-0x0000004a.json +++ b/tests/data/devices/tze204-qvxrkeif-ts0601-0x0000004a.json @@ -1,7 +1,7 @@ { "version": 2, "ieee": "ab:cd:ef:12:64:8d:3f:7f", - "nwk": "0x83CF", + "nwk": "0x80A2", "manufacturer": "_TZE204_qvxrkeif", "model": "TS0601", "friendly_manufacturer": "_TZE204_qvxrkeif", @@ -12,9 +12,9 @@ "exposes_features": [], "manufacturer_code": 4417, "power_source": "Mains", - "lqi": 255, - "rssi": -26, - "last_seen": "2025-09-28T12:29:47.294061+00:00", + "lqi": 88, + "rssi": -78, + "last_seen": "2026-06-10T10:53:35.795473+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -79,6 +79,12 @@ "cluster_id": "0x0500", "endpoint_attribute": "ias_zone", "attributes": [ + { + "id": "0x0002", + "name": "zone_status", + "zcl_type": "map16", + "value": 0 + }, { "id": "0x0001", "name": "zone_type", @@ -90,7 +96,32 @@ { "cluster_id": "0xef00", "endpoint_attribute": "tuya_manufacturer", - "attributes": [] + "attributes": [ + { + "id": "0xef0b", + "name": "fault_alarm", + "zcl_type": "bool", + "value": 0 + }, + { + "id": "0xef0c", + "name": "lifecycle", + "zcl_type": "bool", + "value": 1 + }, + { + "id": "0xef00", + "name": "mcu_version", + "zcl_type": "uint48", + "value": "1.0.0" + }, + { + "id": "0xef0a", + "name": "preheat", + "zcl_type": "bool", + "value": 0 + } + ] } ], "out_clusters": [ @@ -152,14 +183,14 @@ "profile_id": "0x0104", "device_type": "0x0051", "input_clusters": [ - "0x0000", "0x0004", "0x0005", - "0xef00" + "0xef00", + "0x0000" ], "output_clusters": [ - "0x000a", - "0x0019" + "0x0019", + "0x000a" ] }, "242": { @@ -252,7 +283,7 @@ "state": { "class_name": "BinarySensor", "available": true, - "state": false + "state": true } }, { @@ -309,7 +340,7 @@ "state": { "class_name": "LQISensor", "available": true, - "state": 255 + "state": 88 } }, { @@ -337,7 +368,7 @@ "state": { "class_name": "RSSISensor", "available": true, - "state": -26 + "state": -78 } } ], diff --git a/tests/data/devices/tze204-tagezcph-ts0601-0x0000004a.json b/tests/data/devices/tze204-tagezcph-ts0601-0x0000004a.json index 983cd7530..704d20946 100644 --- a/tests/data/devices/tze204-tagezcph-ts0601-0x0000004a.json +++ b/tests/data/devices/tze204-tagezcph-ts0601-0x0000004a.json @@ -1,7 +1,7 @@ { "version": 2, "ieee": "ab:cd:ef:12:49:f4:f9:87", - "nwk": "0x21D2", + "nwk": "0xAA47", "manufacturer": "_TZE204_tagezcph", "model": "TS0601", "friendly_manufacturer": "_TZE204_tagezcph", @@ -12,9 +12,9 @@ "exposes_features": [], "manufacturer_code": 4417, "power_source": "Mains", - "lqi": 100, - "rssi": -75, - "last_seen": "2025-12-05T20:36:51.504572+00:00", + "lqi": 61, + "rssi": null, + "last_seen": "2026-01-11T20:34:14.761644+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -187,7 +187,7 @@ "state": { "class_name": "LQISensor", "available": true, - "state": 100 + "state": 61 } }, { @@ -215,7 +215,7 @@ "state": { "class_name": "RSSISensor", "available": true, - "state": -75 + "state": null } } ], diff --git a/tests/data/devices/tze204-vjpaih9f-ts0601-0x0000004a.json b/tests/data/devices/tze204-vjpaih9f-ts0601-0x0000004a.json index e5df0a36d..91ea4c0cc 100644 --- a/tests/data/devices/tze204-vjpaih9f-ts0601-0x0000004a.json +++ b/tests/data/devices/tze204-vjpaih9f-ts0601-0x0000004a.json @@ -1,7 +1,7 @@ { "version": 2, "ieee": "ab:cd:ef:12:5c:57:ce:53", - "nwk": "0x3A30", + "nwk": "0xB8B8", "manufacturer": "_TZE204_vjpaih9f", "model": "TS0601", "friendly_manufacturer": "_TZE204_vjpaih9f", @@ -12,9 +12,9 @@ "exposes_features": [], "manufacturer_code": 4417, "power_source": "Battery or Unknown", - "lqi": 168, - "rssi": -69, - "last_seen": "2025-11-07T18:58:07.652627+00:00", + "lqi": 0, + "rssi": null, + "last_seen": "2026-03-02T17:53:41.651203+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -50,18 +50,6 @@ "name": "app_version", "zcl_type": "uint8", "value": 74 - }, - { - "id": "0x0004", - "name": "manufacturer", - "zcl_type": "string", - "value": "_TZE204_vjpaih9f" - }, - { - "id": "0x0005", - "name": "model", - "zcl_type": "string", - "value": "TS0601" } ] }, @@ -164,7 +152,7 @@ "state": { "class_name": "LQISensor", "available": true, - "state": 168 + "state": 0 } }, { @@ -192,7 +180,7 @@ "state": { "class_name": "RSSISensor", "available": true, - "state": -69 + "state": null } } ], diff --git a/tests/data/devices/tze284-78ioiaml-ts0601-0x0000004a.json b/tests/data/devices/tze284-78ioiaml-ts0601-0x0000004a.json index a0222652a..d759b9086 100644 --- a/tests/data/devices/tze284-78ioiaml-ts0601-0x0000004a.json +++ b/tests/data/devices/tze284-78ioiaml-ts0601-0x0000004a.json @@ -1,7 +1,7 @@ { "version": 2, "ieee": "ab:cd:ef:12:50:51:3e:41", - "nwk": "0x96A0", + "nwk": "0x5936", "manufacturer": "_TZE284_78ioiaml", "model": "TS0601", "friendly_manufacturer": "_TZE284_78ioiaml", @@ -12,9 +12,9 @@ "exposes_features": [], "manufacturer_code": 4098, "power_source": "Mains", - "lqi": 117, + "lqi": 80, "rssi": null, - "last_seen": "2026-02-02T19:31:14.694810+00:00", + "last_seen": "2026-04-06T21:46:55.562701+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -133,12 +133,12 @@ "0x0000", "0x0004", "0x0005", - "0xed00", - "0xef00" + "0xef00", + "0xed00" ], "output_clusters": [ - "0x000a", - "0x0019" + "0x0019", + "0x000a" ] } } @@ -170,7 +170,7 @@ "state": { "class_name": "LQISensor", "available": true, - "state": 117 + "state": 80 } }, { diff --git a/tests/data/devices/tze284-81yrt3lo-ts0601-0x0000004e.json b/tests/data/devices/tze284-81yrt3lo-ts0601-0x0000004e.json index 332ff50bc..3ac4acaf7 100644 --- a/tests/data/devices/tze284-81yrt3lo-ts0601-0x0000004e.json +++ b/tests/data/devices/tze284-81yrt3lo-ts0601-0x0000004e.json @@ -1,7 +1,7 @@ { "version": 2, "ieee": "ab:cd:ef:12:71:30:aa:82", - "nwk": "0x3102", + "nwk": "0xFE2F", "manufacturer": "_TZE284_81yrt3lo", "model": "TS0601", "friendly_manufacturer": "_TZE284_81yrt3lo", @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:08:51.717094+00:00", + "last_seen": "2025-09-22T08:04:52.696367+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -45,23 +45,137 @@ "cluster_id": "0x0000", "endpoint_attribute": "basic", "attributes": [ + { + "id": "0x0013", + "name": "alarm_mask", + "zcl_type": "map8", + "unsupported": true + }, { "id": "0x0001", "name": "app_version", "zcl_type": "uint8", "value": 78 }, + { + "id": "0xfffd", + "name": "cluster_revision", + "zcl_type": "uint16", + "value": 2 + }, + { + "id": "0x0006", + "name": "date_code", + "zcl_type": "string", + "value": "" + }, + { + "id": "0x0012", + "name": "device_enabled", + "zcl_type": "bool", + "unsupported": true + }, + { + "id": "0x0014", + "name": "disable_local_config", + "zcl_type": "map8", + "unsupported": true + }, + { + "id": "0x0008", + "name": "generic_device_class", + "zcl_type": "enum8", + "unsupported": true + }, + { + "id": "0x0003", + "name": "hw_version", + "zcl_type": "uint8", + "value": 1 + }, + { + "id": "0x0010", + "name": "location_desc", + "zcl_type": "string", + "unsupported": true + }, { "id": "0x0004", "name": "manufacturer", "zcl_type": "string", "value": "_TZE284_81yrt3lo" }, + { + "id": "0x000c", + "name": "manufacturer_version_details", + "zcl_type": "string", + "unsupported": true + }, { "id": "0x0005", "name": "model", "zcl_type": "string", "value": "TS0601" + }, + { + "id": "0x0011", + "name": "physical_env", + "zcl_type": "enum8", + "unsupported": true + }, + { + "id": "0x0007", + "name": "power_source", + "zcl_type": "enum8", + "value": 1 + }, + { + "id": "0x000a", + "name": "product_code", + "zcl_type": "octstr", + "unsupported": true + }, + { + "id": "0x000e", + "name": "product_label", + "zcl_type": "string", + "unsupported": true + }, + { + "id": "0x000b", + "name": "product_url", + "zcl_type": "string", + "unsupported": true + }, + { + "id": "0xfffe", + "name": "reporting_status", + "zcl_type": "enum8", + "value": 0 + }, + { + "id": "0x000d", + "name": "serial_number", + "zcl_type": "string", + "unsupported": true + }, + { + "id": "0x0002", + "name": "stack_version", + "zcl_type": "uint8", + "value": 0 + }, + { + "id": "0x4000", + "name": "sw_build_id", + "zcl_type": "string", + "unsupported": true + }, + { + "id": "0x0000", + "name": "zcl_version", + "zcl_type": "uint8", + "value": 3 } ] }, @@ -148,8 +262,8 @@ "0x0000", "0x0004", "0x0005", - "0xed00", - "0xef00" + "0xef00", + "0xed00" ], "output_clusters": [ "0x000a", diff --git a/tests/data/devices/tze284-hodyryli-ts0601-0x00000050.json b/tests/data/devices/tze284-hodyryli-ts0601-0x00000050.json index bfb2de1f7..3934f0510 100644 --- a/tests/data/devices/tze284-hodyryli-ts0601-0x00000050.json +++ b/tests/data/devices/tze284-hodyryli-ts0601-0x00000050.json @@ -1,7 +1,7 @@ { "version": 2, "ieee": "ab:cd:ef:12:e6:20:71:50", - "nwk": "0x3C22", + "nwk": "0xBCEE", "manufacturer": "_TZE284_hodyryli", "model": "TS0601", "friendly_manufacturer": "_TZE284_hodyryli", @@ -12,9 +12,9 @@ "exposes_features": [], "manufacturer_code": 4417, "power_source": "Battery or Unknown", - "lqi": 255, - "rssi": -33, - "last_seen": "2025-11-14T01:32:40.846964+00:00", + "lqi": 9, + "rssi": null, + "last_seen": "2026-02-17T09:41:28.781196+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -130,15 +130,15 @@ "profile_id": "0x0104", "device_type": "0x0051", "input_clusters": [ - "0x0000", "0x0004", "0x0005", - "0xed00", - "0xef00" + "0xef00", + "0x0000", + "0xed00" ], "output_clusters": [ - "0x000a", - "0x0019" + "0x0019", + "0x000a" ] } } @@ -170,7 +170,7 @@ "state": { "class_name": "LQISensor", "available": true, - "state": 255 + "state": 9 } }, { @@ -198,7 +198,7 @@ "state": { "class_name": "RSSISensor", "available": true, - "state": -33 + "state": null } } ], diff --git a/tests/data/devices/tze284-xnbkhhdr-ts0601-0x0000004d.json b/tests/data/devices/tze284-xnbkhhdr-ts0601-0x0000004d.json index cd521c34e..31a6149f3 100644 --- a/tests/data/devices/tze284-xnbkhhdr-ts0601-0x0000004d.json +++ b/tests/data/devices/tze284-xnbkhhdr-ts0601-0x0000004d.json @@ -91,12 +91,6 @@ "zcl_type": "int16", "value": 2040 }, - { - "id": "0x0010", - "name": "local_temperature_calibration", - "zcl_type": "int8", - "unsupported": true - }, { "id": "0x0016", "name": "max_heat_setpoint_limit", @@ -109,30 +103,12 @@ "zcl_type": "int16", "value": 1850 }, - { - "id": "0x0008", - "name": "pi_heating_demand", - "zcl_type": "uint8", - "unsupported": true - }, { "id": "0x0029", "name": "running_state", "zcl_type": "map16", "value": 0 }, - { - "id": "0x0030", - "name": "setpoint_change_source", - "zcl_type": "enum8", - "unsupported": true - }, - { - "id": "0x0032", - "name": "setpoint_change_source_timestamp", - "zcl_type": "UTC", - "unsupported": true - }, { "id": "0x001c", "name": "system_mode", @@ -662,6 +638,90 @@ "available": true, "state": "idle" } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:60:04:48:19-1-513-pi_heating_demand", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "PiHeatingDemand", + "translation_key": "pi_heating_demand", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:60:04:48:19", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 0, + "unit": "%" + }, + "state": { + "class_name": "PiHeatingDemand", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:60:04:48:19-1-513-setpoint_change_source", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "SetpointChangeSource", + "translation_key": "setpoint_change_source", + "translation_placeholders": null, + "device_class": "enum", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:60:04:48:19", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "SetpointChangeSource", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:60:04:48:19-1-513-setpoint_change_source_timestamp", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "SetpointChangeSourceTimestamp", + "translation_key": "setpoint_change_source_timestamp", + "translation_placeholders": null, + "device_class": "timestamp", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:60:04:48:19", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "SetpointChangeSourceTimestamp", + "available": true, + "state": null + } } ], "switch": [ diff --git a/tests/data/legacy_devices/adeo-sin-4-fp-21-equ.json b/tests/data/legacy_devices/adeo-sin-4-fp-21-equ.json index 81c8e8c2f..5dbef2fe8 100644 --- a/tests/data/legacy_devices/adeo-sin-4-fp-21-equ.json +++ b/tests/data/legacy_devices/adeo-sin-4-fp-21-equ.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T00:56:57.281545+00:00", + "last_seen": "2023-11-27T21:20:28+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -229,54 +229,6 @@ ] } }, - "original_signature": { - "manufacturer": "Adeo", - "model": "SIN-4-FP-21_EQU", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4727, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 500, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 500, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0702", - "0x1000", - "0xfc00" - ], - "output_clusters": [ - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0066", - "input_clusters": [ - "0x0021" - ], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/adeo-zb-watersensor-d0001-0x21120002.json b/tests/data/legacy_devices/adeo-zb-watersensor-d0001-0x21120002.json index b25eb645b..1d0e7ec63 100644 --- a/tests/data/legacy_devices/adeo-zb-watersensor-d0001-0x21120002.json +++ b/tests/data/legacy_devices/adeo-zb-watersensor-d0001-0x21120002.json @@ -130,42 +130,6 @@ ] } }, - "original_signature": { - "manufacturer": "ADEO", - "model": "ZB-WaterSensor-D0001", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4727, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0402", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0020", - "0x0500", - "0x0b05" - ], - "output_clusters": [ - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/adurosmart-eria-adurolight-csc.json b/tests/data/legacy_devices/adurosmart-eria-adurolight-csc.json index d0673a595..edfe92d92 100644 --- a/tests/data/legacy_devices/adurosmart-eria-adurolight-csc.json +++ b/tests/data/legacy_devices/adurosmart-eria-adurolight-csc.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:33.144924+00:00", + "last_seen": "2023-10-17T19:21:28", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -195,64 +195,6 @@ ] } }, - "original_signature": { - "manufacturer": "AduroSmart Eria", - "model": "ADUROLIGHT_CSC", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4653, - "maximum_buffer_size": 127, - "maximum_incoming_transfer_size": 100, - "server_mask": 0, - "maximum_outgoing_transfer_size": 100, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0xc05e", - "device_type": "0x0810", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0300", - "0x1000", - "0xfccc" - ], - "output_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0300", - "0x1000", - "0xfccc" - ] - }, - "2": { - "profile_id": "0xc05e", - "device_type": "0x03f2", - "input_clusters": [ - "0x1000" - ], - "output_clusters": [ - "0x1000" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/aeotec-zga004.json b/tests/data/legacy_devices/aeotec-zga004.json index 5a3adbf94..b13f49fb3 100644 --- a/tests/data/legacy_devices/aeotec-zga004.json +++ b/tests/data/legacy_devices/aeotec-zga004.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:40:25.965041+00:00", + "last_seen": "2024-04-12T21:21:54", "available": true, "device_type": "Router", "active_coordinator": false, @@ -441,114 +441,6 @@ ] } }, - "original_signature": { - "manufacturer": "AEOTEC", - "model": "ZGA004", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4880, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0202", - "input_clusters": [ - "0x0000", - "0x0002", - "0x0003", - "0x0004", - "0x0005", - "0x0009", - "0x0102", - "0xfd01", - "0xfd03" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0202", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0102" - ], - "output_clusters": [] - }, - "3": { - "profile_id": "0x0104", - "device_type": "0x0203", - "input_clusters": [ - "0x0000", - "0x0003" - ], - "output_clusters": [ - "0x0003", - "0x0004", - "0x0005", - "0x0102" - ] - }, - "4": { - "profile_id": "0x0104", - "device_type": "0x0830", - "input_clusters": [ - "0x0000", - "0x0003", - "0x1000", - "0xfd00" - ], - "output_clusters": [ - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x1000" - ] - }, - "5": { - "profile_id": "0x0104", - "device_type": "0x0830", - "input_clusters": [ - "0x0000", - "0x0003", - "0xfd00" - ], - "output_clusters": [ - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/alab-alab-co2-1-1.json b/tests/data/legacy_devices/alab-alab-co2-1-1.json index da85a7702..6f9a95e30 100644 --- a/tests/data/legacy_devices/alab-alab-co2-1-1.json +++ b/tests/data/legacy_devices/alab-alab-co2-1-1.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:35.199816+00:00", + "last_seen": "2024-01-07T17:55:07", "available": true, "device_type": "Router", "active_coordinator": false, @@ -149,48 +149,6 @@ ] } }, - "original_signature": { - "manufacturer": "Alab", - "model": "Alab-CO2-1.1", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4660, - "maximum_buffer_size": 108, - "maximum_incoming_transfer_size": 1617, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 1617, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0302", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0402", - "0x0405", - "0x040d" - ], - "output_clusters": [] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/aqara-lumi-airrtc-aeu001-0x00000a1a.json b/tests/data/legacy_devices/aqara-lumi-airrtc-aeu001-0x00000a1a.json index d773ad64f..b45edff46 100644 --- a/tests/data/legacy_devices/aqara-lumi-airrtc-aeu001-0x00000a1a.json +++ b/tests/data/legacy_devices/aqara-lumi-airrtc-aeu001-0x00000a1a.json @@ -683,49 +683,6 @@ ] } }, - "original_signature": { - "manufacturer": "Aqara", - "model": "lumi.airrtc.aeu001", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4447, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0301", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x000c", - "0x0201", - "0x0402", - "0x0405", - "0x0702", - "0x0b04", - "0xfcc0" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/aqara-lumi-airrtc-aeu005-0x00001227.json b/tests/data/legacy_devices/aqara-lumi-airrtc-aeu005-0x00001227.json index d25acc4f9..df4bb17f7 100644 --- a/tests/data/legacy_devices/aqara-lumi-airrtc-aeu005-0x00001227.json +++ b/tests/data/legacy_devices/aqara-lumi-airrtc-aeu005-0x00001227.json @@ -393,41 +393,6 @@ ] } }, - "original_signature": { - "manufacturer": "Aqara", - "model": "lumi.airrtc.aeu005", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4447, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0203", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0201", - "0xfcc0" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/aqara-lumi-curtain-acn04.json b/tests/data/legacy_devices/aqara-lumi-curtain-acn04.json index b05426a9a..2451c4ded 100644 --- a/tests/data/legacy_devices/aqara-lumi-curtain-acn04.json +++ b/tests/data/legacy_devices/aqara-lumi-curtain-acn04.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:20.943097+00:00", + "last_seen": "2023-11-11T11:47:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -118,43 +118,6 @@ ] } }, - "original_signature": { - "manufacturer": "Aqara", - "model": "lumi.curtain.acn04", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4447, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0203", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0102", - "0xfcc0" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/aqara-lumi-light-acn132-0x00001a1a.json b/tests/data/legacy_devices/aqara-lumi-light-acn132-0x00001a1a.json index 4154ef790..94f0a5f9e 100644 --- a/tests/data/legacy_devices/aqara-lumi-light-acn132-0x00001a1a.json +++ b/tests/data/legacy_devices/aqara-lumi-light-acn132-0x00001a1a.json @@ -233,45 +233,6 @@ ] } }, - "original_signature": { - "manufacturer": "Aqara", - "model": "lumi.light.acn132", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4447, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0102", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0300", - "0xfcc0" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/aqara-lumi-light-agl003-0x0000001b.json b/tests/data/legacy_devices/aqara-lumi-light-agl003-0x0000001b.json index 3bde2c529..84254eb6b 100644 --- a/tests/data/legacy_devices/aqara-lumi-light-agl003-0x0000001b.json +++ b/tests/data/legacy_devices/aqara-lumi-light-agl003-0x0000001b.json @@ -572,55 +572,6 @@ "out_clusters": [] } }, - "original_signature": { - "manufacturer": "Aqara", - "model": "lumi.light.agl003", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4447, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0102", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0300", - "0x0702", - "0x0b04", - "0xfcc0" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "21": { - "profile_id": "0x0104", - "device_type": "0x0000", - "input_clusters": [ - "0x000c" - ], - "output_clusters": [] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/aqara-lumi-light-agl005-0x0000001b.json b/tests/data/legacy_devices/aqara-lumi-light-agl005-0x0000001b.json index b458d38cd..abbc9a7b1 100644 --- a/tests/data/legacy_devices/aqara-lumi-light-agl005-0x0000001b.json +++ b/tests/data/legacy_devices/aqara-lumi-light-agl005-0x0000001b.json @@ -578,55 +578,6 @@ "out_clusters": [] } }, - "original_signature": { - "manufacturer": "Aqara", - "model": "lumi.light.agl005", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4447, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0102", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0300", - "0x0702", - "0x0b04", - "0xfcc0" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "21": { - "profile_id": "0x0104", - "device_type": "0x0000", - "input_clusters": [ - "0x000c" - ], - "output_clusters": [] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/aqara-lumi-sensor-occupy-agl1-0x0000001a.json b/tests/data/legacy_devices/aqara-lumi-sensor-occupy-agl1-0x0000001a.json index 664a3382e..99a84ee00 100644 --- a/tests/data/legacy_devices/aqara-lumi-sensor-occupy-agl1-0x0000001a.json +++ b/tests/data/legacy_devices/aqara-lumi-sensor-occupy-agl1-0x0000001a.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:40:55.476869+00:00", + "last_seen": "2024-08-13T17:34:04+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -78,7 +78,20 @@ { "cluster_id": "0x0406", "endpoint_attribute": "occupancy", - "attributes": [] + "attributes": [ + { + "id": "0x0010", + "name": "pir_o_to_u_delay", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0011", + "name": "pir_u_to_o_delay", + "zcl_type": "uint16", + "unsupported": true + } + ] }, { "cluster_id": "0x0500", @@ -125,43 +138,6 @@ ] } }, - "original_signature": { - "manufacturer": "aqara", - "model": "lumi.sensor_occupy.agl1", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 140, - "manufacturer_code": 4660, - "maximum_buffer_size": 108, - "maximum_incoming_transfer_size": 127, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 127, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0xfff0", - "input_clusters": [ - "0x0000", - "0x0002", - "0x0003", - "0x0406", - "0x0500", - "0xfcc0" - ], - "output_clusters": [ - "0x0003", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/aqara-lumi-sensor-occupy-agl8-0x00003422.json b/tests/data/legacy_devices/aqara-lumi-sensor-occupy-agl8-0x00003422.json index 161586c7d..2cc9ca2ed 100644 --- a/tests/data/legacy_devices/aqara-lumi-sensor-occupy-agl8-0x00003422.json +++ b/tests/data/legacy_devices/aqara-lumi-sensor-occupy-agl8-0x00003422.json @@ -393,45 +393,6 @@ ] } }, - "original_signature": { - "manufacturer": "Aqara", - "model": "lumi.sensor_occupy.agl8", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4447, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0107", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0012", - "0x0400", - "0x0402", - "0x0405", - "0xfcc0" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/aqara-lumi-switch-aeu003-0x00000e14.json b/tests/data/legacy_devices/aqara-lumi-switch-aeu003-0x00000e14.json index 96170d567..762270c97 100644 --- a/tests/data/legacy_devices/aqara-lumi-switch-aeu003-0x00000e14.json +++ b/tests/data/legacy_devices/aqara-lumi-switch-aeu003-0x00000e14.json @@ -1,7 +1,7 @@ { "version": 2, "ieee": "ab:cd:ef:12:8d:ae:d7:5d", - "nwk": "0xFF3D", + "nwk": "0x642D", "manufacturer": "Aqara", "model": "lumi.switch.aeu003", "friendly_manufacturer": "Aqara", @@ -12,9 +12,9 @@ "exposes_features": [], "manufacturer_code": 4447, "power_source": "Mains", - "lqi": 196, - "rssi": -62, - "last_seen": "2025-10-17T13:19:26.838076+00:00", + "lqi": 136, + "rssi": -77, + "last_seen": "2026-01-14T14:05:28.016299+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -74,6 +74,11 @@ "endpoint_attribute": "scenes", "attributes": [] }, + { + "cluster_id": "0x0012", + "endpoint_attribute": "multistate_input", + "attributes": [] + }, { "cluster_id": "0x0102", "endpoint_attribute": "window_covering", @@ -84,11 +89,17 @@ "zcl_type": "map8", "value": 0 }, + { + "id": "0x0003", + "name": "current_position_lift", + "zcl_type": "uint16", + "value": 0 + }, { "id": "0x0008", "name": "current_position_lift_percentage", "zcl_type": "uint8", - "value": 0 + "value": 100 }, { "id": "0x0009", @@ -124,7 +135,7 @@ "id": "0x0017", "name": "window_covering_mode", "zcl_type": "map8", - "value": 0 + "value": 1 }, { "id": "0x0000", @@ -142,7 +153,7 @@ "id": "0x0000", "name": "current_summ_delivered", "zcl_type": "uint48", - "value": 0 + "value": 20 }, { "id": "0x0001", @@ -491,6 +502,11 @@ "id": 0 }, "in_clusters": [ + { + "cluster_id": "0x0012", + "endpoint_attribute": "multistate_input", + "attributes": [] + }, { "cluster_id": "0xfcc0", "endpoint_attribute": "manufacturer_specific", @@ -514,7 +530,7 @@ "id": "0x0055", "name": "present_value", "zcl_type": "uint16", - "value": 1 + "value": 2 } ] }, @@ -630,79 +646,6 @@ "out_clusters": [] } }, - "original_signature": { - "manufacturer": "Aqara", - "model": "lumi.switch.aeu003", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4447, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0000", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0102", - "0x0702", - "0x0b04", - "0xfcc0" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0000", - "input_clusters": [ - "0xfcc0" - ], - "output_clusters": [] - }, - "3": { - "profile_id": "0x0104", - "device_type": "0x0000", - "input_clusters": [ - "0x0012", - "0xfcc0" - ], - "output_clusters": [] - }, - "4": { - "profile_id": "0x0104", - "device_type": "0x0000", - "input_clusters": [ - "0x0012", - "0xfcc0" - ], - "output_clusters": [] - }, - "21": { - "profile_id": "0x0104", - "device_type": "0x0000", - "input_clusters": [ - "0x000c" - ], - "output_clusters": [] - } - } - }, "zha_lib_entities": { "button": [ { @@ -760,12 +703,12 @@ "state": { "class_name": "Cover", "available": true, - "current_position": 100, + "current_position": 0, "current_tilt_position": null, - "state": "open", + "state": "closed", "is_opening": false, "is_closing": false, - "is_closed": false, + "is_closed": true, "supported_features": 15 } } @@ -796,7 +739,7 @@ "state": { "class_name": "LQISensor", "available": true, - "state": 196 + "state": 136 } }, { @@ -824,7 +767,7 @@ "state": { "class_name": "RSSISensor", "available": true, - "state": -62 + "state": -77 } }, { @@ -852,7 +795,7 @@ "state": { "class_name": "SmartEnergySummation", "available": true, - "state": 0.0, + "state": 0.02, "device_type": "Electric Metering", "zcl_unit_of_measurement": 0 }, diff --git a/tests/data/legacy_devices/aqara-lumi-switch-agl010-0x00001315.json b/tests/data/legacy_devices/aqara-lumi-switch-agl010-0x00001315.json index 2ebe1ffb8..d95bef2a7 100644 --- a/tests/data/legacy_devices/aqara-lumi-switch-agl010-0x00001315.json +++ b/tests/data/legacy_devices/aqara-lumi-switch-agl010-0x00001315.json @@ -635,92 +635,6 @@ "out_clusters": [] } }, - "original_signature": { - "manufacturer": "Aqara", - "model": "lumi.switch.agl010", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4447, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0000", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0012", - "0x0702", - "0x0b04", - "0xfcc0" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0000", - "input_clusters": [ - "0x0004", - "0x0005", - "0x0006", - "0x0012", - "0xfcc0" - ], - "output_clusters": [] - }, - "3": { - "profile_id": "0x0104", - "device_type": "0x0000", - "input_clusters": [ - "0xfcc0" - ], - "output_clusters": [] - }, - "4": { - "profile_id": "0x0104", - "device_type": "0x0000", - "input_clusters": [ - "0x0012", - "0xfcc0" - ], - "output_clusters": [] - }, - "5": { - "profile_id": "0x0104", - "device_type": "0x0000", - "input_clusters": [ - "0x0012", - "0xfcc0" - ], - "output_clusters": [] - }, - "21": { - "profile_id": "0x0104", - "device_type": "0x0000", - "input_clusters": [ - "0x000c" - ], - "output_clusters": [] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/atlantic-group-adapter-zigbee-fujitsu.json b/tests/data/legacy_devices/atlantic-group-adapter-zigbee-fujitsu.json index 50a0157b0..1bc83eef9 100644 --- a/tests/data/legacy_devices/atlantic-group-adapter-zigbee-fujitsu.json +++ b/tests/data/legacy_devices/atlantic-group-adapter-zigbee-fujitsu.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:36.142800+00:00", + "last_seen": "2023-11-22T20:23:27", "available": true, "device_type": "Router", "active_coordinator": false, @@ -275,63 +275,6 @@ ] } }, - "original_signature": { - "manufacturer": "ATLANTIC GROUP", - "model": "Adapter Zigbee FUJITSU", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4699, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0301", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0201", - "0x0202", - "0xfc03" - ], - "output_clusters": [ - "0x0003" - ] - }, - "232": { - "profile_id": "0x0104", - "device_type": "0x0005", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0b05" - ], - "output_clusters": [ - "0x0003" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0060", - "input_clusters": [ - "0x0021" - ], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/aurora-doublesocket50au.json b/tests/data/legacy_devices/aurora-doublesocket50au.json index 6083e6d81..fd41a79f9 100644 --- a/tests/data/legacy_devices/aurora-doublesocket50au.json +++ b/tests/data/legacy_devices/aurora-doublesocket50au.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T00:56:58.183337+00:00", + "last_seen": "2023-10-09T23:59:11", "available": true, "device_type": "Router", "active_coordinator": false, @@ -450,56 +450,6 @@ "out_clusters": [] } }, - "original_signature": { - "manufacturer": "Aurora", - "model": "DoubleSocket50AU", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4636, - "maximum_buffer_size": 127, - "maximum_incoming_transfer_size": 100, - "server_mask": 0, - "maximum_outgoing_transfer_size": 100, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0009", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0b04" - ], - "output_clusters": [ - "0x0019" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0009", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0b04" - ], - "output_clusters": [] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/awox-ercu-ws-zm.json b/tests/data/legacy_devices/awox-ercu-ws-zm.json index 105f8639f..119b46129 100644 --- a/tests/data/legacy_devices/awox-ercu-ws-zm.json +++ b/tests/data/legacy_devices/awox-ercu-ws-zm.json @@ -150,59 +150,6 @@ ] } }, - "original_signature": { - "manufacturer": "AwoX", - "model": "ERCU_WS_Zm", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0800", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x1000" - ], - "output_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0300", - "0x1000" - ] - }, - "3": { - "profile_id": "0x128f", - "device_type": "0x0800", - "input_clusters": [ - "0xff50", - "0xff51" - ], - "output_clusters": [ - "0xff50", - "0xff51" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/awox-esmlfzm-w6-dimm.json b/tests/data/legacy_devices/awox-esmlfzm-w6-dimm.json index dda552e81..f95fce980 100644 --- a/tests/data/legacy_devices/awox-esmlfzm-w6-dimm.json +++ b/tests/data/legacy_devices/awox-esmlfzm-w6-dimm.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:43.771587+00:00", + "last_seen": "2024-10-07T17:07:49", "available": true, "device_type": "Router", "active_coordinator": false, @@ -288,67 +288,6 @@ ] } }, - "original_signature": { - "manufacturer": "AwoX", - "model": "ESMLFzm_w6_Dimm", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0101", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x000a", - "0x0300", - "0x1000", - "0xfc57" - ], - "output_clusters": [ - "0x0006" - ] - }, - "3": { - "profile_id": "0x128f", - "device_type": "0x0101", - "input_clusters": [ - "0x0004", - "0xff50", - "0xff51" - ], - "output_clusters": [ - "0xff50", - "0xff51" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/bitron-video-902010-24a.json b/tests/data/legacy_devices/bitron-video-902010-24a.json index 16b7ac90d..a87284f92 100644 --- a/tests/data/legacy_devices/bitron-video-902010-24a.json +++ b/tests/data/legacy_devices/bitron-video-902010-24a.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:33.809574+00:00", + "last_seen": "2024-01-18T19:44:06", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -133,48 +133,6 @@ ] } }, - "original_signature": { - "manufacturer": "Bitron Video", - "model": "902010/24A", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 0, - "maximum_buffer_size": 80, - "maximum_incoming_transfer_size": 160, - "server_mask": 0, - "maximum_outgoing_transfer_size": 160, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0402", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0500", - "0x0502" - ], - "output_clusters": [ - "0x0000" - ] - }, - "4": { - "profile_id": "0x0104", - "device_type": "0x0402", - "input_clusters": [], - "output_clusters": [ - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/bituo-technik-spm01x001.json b/tests/data/legacy_devices/bituo-technik-spm01x001.json index 66a288e63..a53cf770f 100644 --- a/tests/data/legacy_devices/bituo-technik-spm01x001.json +++ b/tests/data/legacy_devices/bituo-technik-spm01x001.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:40:27.201128+00:00", + "last_seen": "2023-11-25T14:43:13", "available": true, "device_type": "Router", "active_coordinator": false, @@ -264,42 +264,6 @@ ] } }, - "original_signature": { - "manufacturer": "BITUO TECHNIK", - "model": "SPM01X001", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4630, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0501", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0702", - "0x0b04", - "0x0b05" - ], - "output_clusters": [ - "0x0003", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/bosch-rbsh-mms-zb-eu-0x11136760.json b/tests/data/legacy_devices/bosch-rbsh-mms-zb-eu-0x11136760.json index 18191dd34..458cbeb67 100644 --- a/tests/data/legacy_devices/bosch-rbsh-mms-zb-eu-0x11136760.json +++ b/tests/data/legacy_devices/bosch-rbsh-mms-zb-eu-0x11136760.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-04-29T19:02:49.395140+00:00", + "last_seen": "2025-04-29T22:34:08+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -460,7 +460,32 @@ { "cluster_id": "0xfca0", "endpoint_attribute": null, - "attributes": [] + "attributes": [ + { + "id": "0x0003", + "name": "calibration_closing_time", + "zcl_type": "uint32", + "value": 200 + }, + { + "id": "0x0002", + "name": "calibration_opening_time", + "zcl_type": "uint32", + "value": 200 + }, + { + "id": "0x0000", + "name": "device_mode", + "zcl_type": "enum8", + "value": 1 + }, + { + "id": "0x0001", + "name": "switch_type", + "zcl_type": "enum8", + "value": 2 + } + ] } ], "out_clusters": [ @@ -580,70 +605,6 @@ "out_clusters": [] } }, - "original_signature": { - "manufacturer": "Bosch", - "model": "RBSH-MMS-ZB-EU", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4617, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0202", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0102", - "0x0702", - "0x0b04", - "0x0b05", - "0xfca0" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0xfca0" - ], - "output_clusters": [] - }, - "3": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0xfca0" - ], - "output_clusters": [] - } - } - }, "zha_lib_entities": { "button": [ { @@ -873,7 +834,7 @@ "state": { "class_name": "NumberConfigurationEntity", "available": true, - "state": null + "state": 20.0 } }, { @@ -935,7 +896,7 @@ "state": { "class_name": "NumberConfigurationEntity", "available": true, - "state": null + "state": 20.0 } } ], @@ -969,7 +930,7 @@ "state": { "class_name": "ZCLEnumSelectEntity", "available": true, - "state": null + "state": "Cover" } }, { @@ -1002,7 +963,7 @@ "state": { "class_name": "ZCLEnumSelectEntity", "available": true, - "state": null + "state": "Button key change" } }, { diff --git a/tests/data/legacy_devices/bosch-rbsh-rth0-bat-zb-eu-0x02086a30.json b/tests/data/legacy_devices/bosch-rbsh-rth0-bat-zb-eu-0x02086a30.json index 69c057474..a0d9e0ec0 100644 --- a/tests/data/legacy_devices/bosch-rbsh-rth0-bat-zb-eu-0x02086a30.json +++ b/tests/data/legacy_devices/bosch-rbsh-rth0-bat-zb-eu-0x02086a30.json @@ -301,45 +301,6 @@ ] } }, - "original_signature": { - "manufacturer": "Bosch", - "model": "RBSH-RTH0-BAT-ZB-EU", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4617, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 255, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 255, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0301", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0020", - "0x0201", - "0x0204", - "0x0405", - "0x0b05" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/bosch-rbsh-rth0-zb-eu-0x03036a30.json b/tests/data/legacy_devices/bosch-rbsh-rth0-zb-eu-0x03036a30.json index 0e9f05416..c2449cec3 100644 --- a/tests/data/legacy_devices/bosch-rbsh-rth0-zb-eu-0x03036a30.json +++ b/tests/data/legacy_devices/bosch-rbsh-rth0-zb-eu-0x03036a30.json @@ -165,6 +165,12 @@ "zcl_type": "enum8", "value": 6 }, + { + "id": "0x4020", + "name": "heating_demand", + "zcl_type": "uint8", + "value": 100 + }, { "id": "0x0000", "name": "local_temperature", @@ -429,43 +435,6 @@ ] } }, - "original_signature": { - "manufacturer": "Bosch", - "model": "RBSH-RTH0-ZB-EU", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4617, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 255, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 255, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0301", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0201", - "0x0204", - "0x0405", - "0x0b05" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { @@ -1347,7 +1316,7 @@ "state": { "class_name": "Sensor", "available": true, - "state": null + "state": 100 } }, { diff --git a/tests/data/legacy_devices/bosch-rbsh-trv0-zb-eu-0x32051514.json b/tests/data/legacy_devices/bosch-rbsh-trv0-zb-eu-0x32051514.json index 1fadc3bb9..db72a583f 100644 --- a/tests/data/legacy_devices/bosch-rbsh-trv0-zb-eu-0x32051514.json +++ b/tests/data/legacy_devices/bosch-rbsh-trv0-zb-eu-0x32051514.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:44.735956+00:00", + "last_seen": "2024-09-19T01:29:00+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -336,45 +336,6 @@ ] } }, - "original_signature": { - "manufacturer": "BOSCH", - "model": "RBSH-TRV0-ZB-EU", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4617, - "maximum_buffer_size": 127, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0301", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0004", - "0x0020", - "0x0201", - "0x0204", - "0x0b05" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/bosch-rbsh-us4btn-zb-eu-0x100d6a30.json b/tests/data/legacy_devices/bosch-rbsh-us4btn-zb-eu-0x100d6a30.json index 735a1db28..fc330f57a 100644 --- a/tests/data/legacy_devices/bosch-rbsh-us4btn-zb-eu-0x100d6a30.json +++ b/tests/data/legacy_devices/bosch-rbsh-us4btn-zb-eu-0x100d6a30.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:45.479438+00:00", + "last_seen": "2025-03-01T23:35:30", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -309,43 +309,6 @@ ] } }, - "original_signature": { - "manufacturer": "Bosch", - "model": "RBSH-US4BTN-ZB-EU", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4617, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0000", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0020", - "0x0b05", - "0xfca1" - ], - "output_clusters": [ - "0x0003", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/busch-jaeger-rb01.json b/tests/data/legacy_devices/busch-jaeger-rb01.json index bcd39bc72..4484d664b 100644 --- a/tests/data/legacy_devices/busch-jaeger-rb01.json +++ b/tests/data/legacy_devices/busch-jaeger-rb01.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:40:27.366184+00:00", + "last_seen": "2024-03-12T19:50:06", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -116,45 +116,6 @@ ] } }, - "original_signature": { - "manufacturer": "Busch-Jaeger", - "model": "RB01", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 1, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4398, - "maximum_buffer_size": 89, - "maximum_incoming_transfer_size": 61, - "server_mask": 0, - "maximum_outgoing_transfer_size": 61, - "descriptor_capability_field": 0 - }, - "endpoints": { - "10": { - "profile_id": "0xc05e", - "device_type": "0x0810", - "input_clusters": [ - "0x0000", - "0x1000" - ], - "output_clusters": [ - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0019", - "0x0300", - "0x1000" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/candeo-c-zb-lc20-dim-0x29013001.json b/tests/data/legacy_devices/candeo-c-zb-lc20-dim-0x29013001.json index e7a65b84a..b49cdf3e6 100644 --- a/tests/data/legacy_devices/candeo-c-zb-lc20-dim-0x29013001.json +++ b/tests/data/legacy_devices/candeo-c-zb-lc20-dim-0x29013001.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:08:52.811830+00:00", + "last_seen": "2025-05-04T22:00:20+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -162,43 +162,6 @@ ] } }, - "original_signature": { - "manufacturer": "Candeo", - "model": "C-ZB-LC20-Dim", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4687, - "maximum_buffer_size": 74, - "maximum_incoming_transfer_size": 404, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 404, - "descriptor_capability_field": 0 - }, - "endpoints": { - "11": { - "profile_id": "0x0104", - "device_type": "0x0101", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x1000" - ], - "output_clusters": [ - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/candeo-c-zb-lc20-rgb-0x31013001.json b/tests/data/legacy_devices/candeo-c-zb-lc20-rgb-0x31013001.json index 972562297..994490fb7 100644 --- a/tests/data/legacy_devices/candeo-c-zb-lc20-rgb-0x31013001.json +++ b/tests/data/legacy_devices/candeo-c-zb-lc20-rgb-0x31013001.json @@ -216,44 +216,6 @@ ] } }, - "original_signature": { - "manufacturer": "Candeo", - "model": "C-ZB-LC20-RGB", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4687, - "maximum_buffer_size": 74, - "maximum_incoming_transfer_size": 404, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 404, - "descriptor_capability_field": 0 - }, - "endpoints": { - "11": { - "profile_id": "0x0104", - "device_type": "0x0102", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0300", - "0x1000" - ], - "output_clusters": [ - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/centralite-3300-0x1f075310.json b/tests/data/legacy_devices/centralite-3300-0x1f075310.json index 839702e8a..1e0569244 100644 --- a/tests/data/legacy_devices/centralite-3300-0x1f075310.json +++ b/tests/data/legacy_devices/centralite-3300-0x1f075310.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:34.680462+00:00", + "last_seen": "2024-05-17T08:45:49", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -191,43 +191,6 @@ ] } }, - "original_signature": { - "manufacturer": "CentraLite", - "model": "3300", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4174, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 0, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0402", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0020", - "0x0402", - "0x0500", - "0x0b05" - ], - "output_clusters": [ - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/computime-slr2b.json b/tests/data/legacy_devices/computime-slr2b.json index 4bccae7d7..86d191382 100644 --- a/tests/data/legacy_devices/computime-slr2b.json +++ b/tests/data/legacy_devices/computime-slr2b.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T00:56:56.902026+00:00", + "last_seen": "2023-11-27T13:59:14", "available": true, "device_type": "Router", "active_coordinator": false, @@ -507,70 +507,6 @@ "out_clusters": [] } }, - "original_signature": { - "manufacturer": "Computime", - "model": "SLR2b", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4153, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 0, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "5": { - "profile_id": "0x0104", - "device_type": "0x0301", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0009", - "0x000a", - "0x0201", - "0xfd00" - ], - "output_clusters": [ - "0x0000", - "0x000a", - "0x0019", - "0x0402", - "0xfd00" - ] - }, - "6": { - "profile_id": "0x0104", - "device_type": "0x0301", - "input_clusters": [ - "0x0201" - ], - "output_clusters": [] - }, - "7": { - "profile_id": "0x0104", - "device_type": "0x0301", - "input_clusters": [ - "0x0402" - ], - "output_clusters": [] - }, - "8": { - "profile_id": "0x0104", - "device_type": "0x0301", - "input_clusters": [ - "0x0402" - ], - "output_clusters": [] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/d5x84yu-et093wrg.json b/tests/data/legacy_devices/d5x84yu-et093wrg.json index f85abf36e..b5798feb9 100644 --- a/tests/data/legacy_devices/d5x84yu-et093wrg.json +++ b/tests/data/legacy_devices/d5x84yu-et093wrg.json @@ -16,7 +16,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:33.407205+00:00", + "last_seen": "2023-11-08T15:55:03+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -300,45 +300,6 @@ ] } }, - "original_signature": { - "manufacturer": "D5X84YU", - "model": "eT093WRG", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4678, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0301", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x000a", - "0x0020", - "0x0201", - "0x0204", - "0x0b05" - ], - "output_clusters": [ - "0x0000", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/danfoss-0x8040.json b/tests/data/legacy_devices/danfoss-0x8040.json index b0a2a62d6..1af23b441 100644 --- a/tests/data/legacy_devices/danfoss-0x8040.json +++ b/tests/data/legacy_devices/danfoss-0x8040.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:22.030895+00:00", + "last_seen": "2024-01-16T15:05:42", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -287,46 +287,6 @@ ] } }, - "original_signature": { - "manufacturer": "Danfoss", - "model": "0x8040", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4678, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0301", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0020", - "0x0201", - "0x0204", - "0x0402", - "0x0405", - "0x0b05" - ], - "output_clusters": [ - "0x0003", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/danfoss-etrv0103-0x00000014.json b/tests/data/legacy_devices/danfoss-etrv0103-0x00000014.json index e18a71021..18e3d22bf 100644 --- a/tests/data/legacy_devices/danfoss-etrv0103-0x00000014.json +++ b/tests/data/legacy_devices/danfoss-etrv0103-0x00000014.json @@ -16,7 +16,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:40.322980+00:00", + "last_seen": "2024-10-19T18:14:35+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -469,45 +469,6 @@ ] } }, - "original_signature": { - "manufacturer": "Danfoss", - "model": "eTRV0103", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4678, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0301", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x000a", - "0x0020", - "0x0201", - "0x0204", - "0x0b05" - ], - "output_clusters": [ - "0x0000", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/datek-pop.json b/tests/data/legacy_devices/datek-pop.json index 8161ba1a7..b113b883b 100644 --- a/tests/data/legacy_devices/datek-pop.json +++ b/tests/data/legacy_devices/datek-pop.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:40:26.873027+00:00", + "last_seen": "2023-10-03T22:40:49", "available": true, "device_type": "Router", "active_coordinator": false, @@ -298,59 +298,6 @@ ] } }, - "original_signature": { - "manufacturer": "Datek", - "model": "PoP", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4919, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0009", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0009", - "0x0402", - "0x0b04", - "0x1000", - "0xfee1", - "0xfeed" - ], - "output_clusters": [ - "0x0003", - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0066", - "input_clusters": [ - "0x0021" - ], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/datek-ssds.json b/tests/data/legacy_devices/datek-ssds.json index 6b7f60cae..54407e395 100644 --- a/tests/data/legacy_devices/datek-ssds.json +++ b/tests/data/legacy_devices/datek-ssds.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:40:27.025963+00:00", + "last_seen": "2023-09-12T20:10:18", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -156,48 +156,6 @@ ] } }, - "original_signature": { - "manufacturer": "Datek", - "model": "SSDS", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4919, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0004", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0402", - "0xfea7", - "0xfeed" - ], - "output_clusters": [ - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0019", - "0x1000" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/develco-products-a-s-zhemi-zigbee-external-meter-interface.json b/tests/data/legacy_devices/develco-products-a-s-zhemi-zigbee-external-meter-interface.json index c8a827a73..e41af32ae 100644 --- a/tests/data/legacy_devices/develco-products-a-s-zhemi-zigbee-external-meter-interface.json +++ b/tests/data/legacy_devices/develco-products-a-s-zhemi-zigbee-external-meter-interface.json @@ -243,51 +243,6 @@ ] } }, - "original_signature": { - "manufacturer": "Develco Products A/S", - "model": "ZHEMI - ZigBee External Meter Interface", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 0, - "maximum_buffer_size": 80, - "maximum_incoming_transfer_size": 80, - "server_mask": 0, - "maximum_outgoing_transfer_size": 80, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0xc0c9", - "device_type": "0x0001", - "input_clusters": [ - "0x0002", - "0x0003", - "0x0005" - ], - "output_clusters": [ - "0x0001" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0007", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0702" - ], - "output_clusters": [ - "0x000a" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/ecodim-bv-eco-dim-05-zigbee-0x00000001.json b/tests/data/legacy_devices/ecodim-bv-eco-dim-05-zigbee-0x00000001.json index 2c9e40ce8..0d668556e 100644 --- a/tests/data/legacy_devices/ecodim-bv-eco-dim-05-zigbee-0x00000001.json +++ b/tests/data/legacy_devices/ecodim-bv-eco-dim-05-zigbee-0x00000001.json @@ -291,67 +291,6 @@ ] } }, - "original_signature": { - "manufacturer": "EcoDim BV", - "model": "Eco-Dim.05 Zigbee", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0101", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x1000" - ], - "output_clusters": [ - "0x0019" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0101", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x1000" - ], - "output_clusters": [ - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/ecodim-bv-ecodim-zigbee-3-0.json b/tests/data/legacy_devices/ecodim-bv-ecodim-zigbee-3-0.json index 2c178f528..99fabc76f 100644 --- a/tests/data/legacy_devices/ecodim-bv-ecodim-zigbee-3-0.json +++ b/tests/data/legacy_devices/ecodim-bv-ecodim-zigbee-3-0.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:23.653086+00:00", + "last_seen": "2023-12-28T02:24:13+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -301,67 +301,6 @@ ] } }, - "original_signature": { - "manufacturer": "EcoDim BV", - "model": "EcoDim-Zigbee 3.0", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0101", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x1000" - ], - "output_clusters": [ - "0x0019" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0101", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x1000" - ], - "output_clusters": [ - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/enktro-acmidea.json b/tests/data/legacy_devices/enktro-acmidea.json index 877d80c62..93be28a11 100644 --- a/tests/data/legacy_devices/enktro-acmidea.json +++ b/tests/data/legacy_devices/enktro-acmidea.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-04-29T19:02:50.643707+00:00", + "last_seen": "2024-10-24T09:55:21", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -230,40 +230,6 @@ ] } }, - "original_signature": { - "manufacturer": "enktro", - "model": "ACmidea", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 140, - "manufacturer_code": 4660, - "maximum_buffer_size": 108, - "maximum_incoming_transfer_size": 1613, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 1613, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0301", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0201", - "0x0202" - ], - "output_clusters": [ - "0x0003" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/espressif-zigbeeanalogdevice.json b/tests/data/legacy_devices/espressif-zigbeeanalogdevice.json index f118db1bb..ab3c5eade 100644 --- a/tests/data/legacy_devices/espressif-zigbeeanalogdevice.json +++ b/tests/data/legacy_devices/espressif-zigbeeanalogdevice.json @@ -1,7 +1,7 @@ { "version": 2, "ieee": "ab:cd:ef:12:39:a2:73:55", - "nwk": "0xA62B", + "nwk": "0xA137", "manufacturer": "Espressif", "model": "ZigbeeAnalogDevice", "friendly_manufacturer": "Espressif", @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-04-29T19:12:44.332742+00:00", + "last_seen": "2025-03-17T16:09:53", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -67,68 +67,7 @@ { "cluster_id": "0x000c", "endpoint_attribute": "analog_input", - "attributes": [ - { - "id": "0x0100", - "name": "application_type", - "zcl_type": "uint32", - "value": 589824 - }, - { - "id": "0x001c", - "name": "description", - "zcl_type": "string", - "value": "Power Consumption (Watts)" - }, - { - "id": "0x0075", - "name": "engineering_units", - "zcl_type": "enum16", - "unsupported": true - }, - { - "id": "0x0041", - "name": "max_present_value", - "zcl_type": "single", - "unsupported": true - }, - { - "id": "0x0045", - "name": "min_present_value", - "zcl_type": "single", - "unsupported": true - }, - { - "id": "0x0051", - "name": "out_of_service", - "zcl_type": "bool", - "value": 0 - }, - { - "id": "0x0055", - "name": "present_value", - "zcl_type": "single", - "value": 280.0 - }, - { - "id": "0x0067", - "name": "reliability", - "zcl_type": "enum8", - "unsupported": true - }, - { - "id": "0x006a", - "name": "resolution", - "zcl_type": "single", - "unsupported": true - }, - { - "id": "0x006f", - "name": "status_flags", - "zcl_type": "map8", - "value": 0 - } - ] + "attributes": [] }, { "cluster_id": "0x000d", @@ -138,13 +77,13 @@ "id": "0x0100", "name": "application_type", "zcl_type": "uint32", - "value": 17235967 + "unsupported": true }, { "id": "0x001c", "name": "description", "zcl_type": "string", - "value": "Fan Speed (RPM)" + "unsupported": true }, { "id": "0x0075", @@ -188,38 +127,6 @@ "out_clusters": [] } }, - "original_signature": { - "manufacturer": "Espressif", - "model": "ZigbeeAnalogDevice", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 140, - "manufacturer_code": 4660, - "maximum_buffer_size": 108, - "maximum_incoming_transfer_size": 1613, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 1613, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x000c", - "input_clusters": [ - "0x0000", - "0x0003", - "0x000c", - "0x000d" - ], - "output_clusters": [] - } - } - }, "zha_lib_entities": { "button": [ { @@ -256,7 +163,7 @@ "number": [ { "info_object": { - "fallback_name": "Fan Speed (RPM)", + "fallback_name": null, "unique_id": "ab:cd:ef:12:39:a2:73:55-1-13", "migrate_unique_ids": [], "platform": "number", @@ -342,34 +249,6 @@ "available": true, "state": null } - }, - { - "info_object": { - "fallback_name": "Power Consumption (Watts)", - "unique_id": "ab:cd:ef:12:39:a2:73:55-1-12-analog_input", - "migrate_unique_ids": [], - "platform": "sensor", - "class_name": "AnalogInputSensor", - "translation_key": null, - "translation_placeholders": null, - "device_class": "power", - "state_class": "measurement", - "entity_category": null, - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:39:a2:73:55", - "endpoint_id": 1, - "available": true, - "group_id": null, - "suggested_display_precision": null, - "unit": "W" - }, - "state": { - "class_name": "AnalogInputSensor", - "available": true, - "state": 280.0 - } } ] }, diff --git a/tests/data/legacy_devices/eurotronic-spzb0001-0x4501001f.json b/tests/data/legacy_devices/eurotronic-spzb0001-0x4501001f.json index 78ddfccc6..d82c813d9 100644 --- a/tests/data/legacy_devices/eurotronic-spzb0001-0x4501001f.json +++ b/tests/data/legacy_devices/eurotronic-spzb0001-0x4501001f.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:43.692202+00:00", + "last_seen": "2024-11-18T22:44:34", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -254,41 +254,6 @@ ] } }, - "original_signature": { - "manufacturer": "Eurotronic", - "model": "SPZB0001", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4151, - "maximum_buffer_size": 108, - "maximum_incoming_transfer_size": 1617, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 1617, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0301", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x000a", - "0x0201" - ], - "output_clusters": [ - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/ewelink-ck-bl702-al-01-7009-z102lg03-1-0x00001203.json b/tests/data/legacy_devices/ewelink-ck-bl702-al-01-7009-z102lg03-1-0x00001203.json index 67060caf3..04410ac59 100644 --- a/tests/data/legacy_devices/ewelink-ck-bl702-al-01-7009-z102lg03-1-0x00001203.json +++ b/tests/data/legacy_devices/ewelink-ck-bl702-al-01-7009-z102lg03-1-0x00001203.json @@ -255,47 +255,6 @@ ] } }, - "original_signature": { - "manufacturer": "eWeLink", - "model": "CK-BL702-AL-01(7009_Z102LG03-1)", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4742, - "maximum_buffer_size": 127, - "maximum_incoming_transfer_size": 242, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 242, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x010d", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0300", - "0x1000", - "0xef00", - "0xfc11", - "0xfc57" - ], - "output_clusters": [ - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/ewelink-ck-tlsr8656-ss5-01-7000-0x00001102.json b/tests/data/legacy_devices/ewelink-ck-tlsr8656-ss5-01-7000-0x00001102.json index e28a64c2c..24051e589 100644 --- a/tests/data/legacy_devices/ewelink-ck-tlsr8656-ss5-01-7000-0x00001102.json +++ b/tests/data/legacy_devices/ewelink-ck-tlsr8656-ss5-01-7000-0x00001102.json @@ -133,42 +133,6 @@ ] } }, - "original_signature": { - "manufacturer": "eWeLink", - "model": "CK-TLSR8656-SS5-01(7000)", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4742, - "maximum_buffer_size": 74, - "maximum_incoming_transfer_size": 404, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 404, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0000", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0004", - "0x0020" - ], - "output_clusters": [ - "0x0006", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/ewelink-ds01.json b/tests/data/legacy_devices/ewelink-ds01.json index 107e58bd5..6e387b2ac 100644 --- a/tests/data/legacy_devices/ewelink-ds01.json +++ b/tests/data/legacy_devices/ewelink-ds01.json @@ -143,40 +143,6 @@ ] } }, - "original_signature": { - "manufacturer": "eWeLink", - "model": "DS01", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 0, - "maximum_buffer_size": 80, - "maximum_incoming_transfer_size": 160, - "server_mask": 0, - "maximum_outgoing_transfer_size": 160, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0402", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0500" - ], - "output_clusters": [ - "0x0003" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/ewelink-ms01.json b/tests/data/legacy_devices/ewelink-ms01.json index 777aaacb3..ad3283955 100644 --- a/tests/data/legacy_devices/ewelink-ms01.json +++ b/tests/data/legacy_devices/ewelink-ms01.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:40:27.327234+00:00", + "last_seen": "2023-09-29T12:51:09", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -143,40 +143,6 @@ ] } }, - "original_signature": { - "manufacturer": "eWeLink", - "model": "MS01", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 0, - "maximum_buffer_size": 80, - "maximum_incoming_transfer_size": 160, - "server_mask": 0, - "maximum_outgoing_transfer_size": 160, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0402", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0500" - ], - "output_clusters": [ - "0x0003" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/ewelink-snzb-01p-0x00002200.json b/tests/data/legacy_devices/ewelink-snzb-01p-0x00002200.json index e2e88652d..854b5b4b1 100644 --- a/tests/data/legacy_devices/ewelink-snzb-01p-0x00002200.json +++ b/tests/data/legacy_devices/ewelink-snzb-01p-0x00002200.json @@ -138,43 +138,6 @@ ] } }, - "original_signature": { - "manufacturer": "eWeLink", - "model": "SNZB-01P", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4742, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 255, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 255, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0000", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0020", - "0xfc57" - ], - "output_clusters": [ - "0x0003", - "0x0006", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/ewelink-snzb-03p-0x00002201.json b/tests/data/legacy_devices/ewelink-snzb-03p-0x00002201.json index 4f485d526..db7a9813d 100644 --- a/tests/data/legacy_devices/ewelink-snzb-03p-0x00002201.json +++ b/tests/data/legacy_devices/ewelink-snzb-03p-0x00002201.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:39:38.200513+00:00", + "last_seen": "2024-06-04T21:42:38", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -196,44 +196,6 @@ ] } }, - "original_signature": { - "manufacturer": "eWeLink", - "model": "SNZB-03P", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4742, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 255, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 255, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0107", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0020", - "0x0406", - "0x0500", - "0xfc57" - ], - "output_clusters": [ - "0x0003", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/ewelink-snzb-04p-0x00002200.json b/tests/data/legacy_devices/ewelink-snzb-04p-0x00002200.json index 33b34ca0d..b9385fb7a 100644 --- a/tests/data/legacy_devices/ewelink-snzb-04p-0x00002200.json +++ b/tests/data/legacy_devices/ewelink-snzb-04p-0x00002200.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:45.979975+00:00", + "last_seen": "2024-08-21T22:23:26+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -207,45 +207,6 @@ ] } }, - "original_signature": { - "manufacturer": "eWeLink", - "model": "SNZB-04P", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4742, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 255, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 255, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0402", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0020", - "0x0500", - "0xfc11", - "0xfc57" - ], - "output_clusters": [ - "0x0003", - "0x0006", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/ewelink-th01.json b/tests/data/legacy_devices/ewelink-th01.json index 29ecf120f..749ecae67 100644 --- a/tests/data/legacy_devices/ewelink-th01.json +++ b/tests/data/legacy_devices/ewelink-th01.json @@ -1,7 +1,7 @@ { "version": 2, "ieee": "ab:cd:ef:12:62:93:68:a8", - "nwk": "0x6F45", + "nwk": "0x747D", "manufacturer": "eWeLink", "model": "TH01", "friendly_manufacturer": "eWeLink", @@ -12,9 +12,9 @@ "exposes_features": [], "manufacturer_code": 0, "power_source": "Battery or Unknown", - "lqi": 192, - "rssi": -63, - "last_seen": "2025-07-05T16:12:49.487019+00:00", + "lqi": null, + "rssi": null, + "last_seen": "2023-09-16T11:46:10", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -102,7 +102,7 @@ "id": "0x0000", "name": "measured_value", "zcl_type": "int16", - "value": 2660 + "value": 2591 } ] }, @@ -114,7 +114,7 @@ "id": "0x0000", "name": "measured_value", "zcl_type": "uint16", - "value": 5775 + "value": 5175 } ] } @@ -128,41 +128,6 @@ ] } }, - "original_signature": { - "manufacturer": "eWeLink", - "model": "TH01", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 0, - "maximum_buffer_size": 80, - "maximum_incoming_transfer_size": 160, - "server_mask": 0, - "maximum_outgoing_transfer_size": 160, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0302", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0402", - "0x0405" - ], - "output_clusters": [ - "0x0003" - ] - } - } - }, "zha_lib_entities": { "button": [ { @@ -222,7 +187,7 @@ "state": { "class_name": "LQISensor", "available": true, - "state": 192 + "state": null } }, { @@ -250,7 +215,7 @@ "state": { "class_name": "RSSISensor", "available": true, - "state": -63 + "state": null } }, { @@ -312,7 +277,7 @@ "state": { "class_name": "Temperature", "available": true, - "state": 26.6 + "state": 25.91 } }, { @@ -340,7 +305,7 @@ "state": { "class_name": "Humidity", "available": true, - "state": 57.75 + "state": 51.75 } } ] diff --git a/tests/data/legacy_devices/ewelink-wb01.json b/tests/data/legacy_devices/ewelink-wb01.json index b405c6961..30581a798 100644 --- a/tests/data/legacy_devices/ewelink-wb01.json +++ b/tests/data/legacy_devices/ewelink-wb01.json @@ -1,7 +1,7 @@ { "version": 2, - "ieee": "00:12:4b:00:25:12:e0:f9", - "nwk": "0x7D23", + "ieee": "ab:cd:ef:12:db:5f:f2:3a", + "nwk": "0xE18B", "manufacturer": "eWeLink", "model": "WB01", "friendly_manufacturer": "eWeLink", @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-04-24T17:34:09.050882+00:00", + "last_seen": "2023-12-19T23:35:28+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -85,7 +85,7 @@ "id": "0x0020", "name": "battery_voltage", "zcl_type": "uint8", - "value": 30 + "value": 32 } ] }, @@ -96,11 +96,6 @@ } ], "out_clusters": [ - { - "cluster_id": "0x0003", - "endpoint_attribute": "identify", - "attributes": [] - }, { "cluster_id": "0x0006", "endpoint_attribute": "on_off", @@ -109,46 +104,12 @@ ] } }, - "original_signature": { - "manufacturer": "eWeLink", - "model": "WB01", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 0, - "maximum_buffer_size": 80, - "maximum_incoming_transfer_size": 160, - "server_mask": 0, - "maximum_outgoing_transfer_size": 160, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0000", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003" - ], - "output_clusters": [ - "0x0003", - "0x0006" - ] - } - } - }, "zha_lib_entities": { "button": [ { "info_object": { "fallback_name": null, - "unique_id": "00:12:4b:00:25:12:e0:f9-1-3", + "unique_id": "ab:cd:ef:12:db:5f:f2:3a-1-3", "migrate_unique_ids": [], "platform": "button", "class_name": "IdentifyButton", @@ -160,7 +121,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "00:12:4b:00:25:12:e0:f9", + "device_ieee": "ab:cd:ef:12:db:5f:f2:3a", "endpoint_id": 1, "available": true, "group_id": null, @@ -180,7 +141,7 @@ { "info_object": { "fallback_name": null, - "unique_id": "00:12:4b:00:25:12:e0:f9-1-0-lqi", + "unique_id": "ab:cd:ef:12:db:5f:f2:3a-1-0-lqi", "migrate_unique_ids": [], "platform": "sensor", "class_name": "LQISensor", @@ -192,7 +153,7 @@ "entity_registry_enabled_default": false, "enabled": true, "primary": false, - "device_ieee": "00:12:4b:00:25:12:e0:f9", + "device_ieee": "ab:cd:ef:12:db:5f:f2:3a", "endpoint_id": 1, "available": true, "group_id": null, @@ -208,7 +169,7 @@ { "info_object": { "fallback_name": null, - "unique_id": "00:12:4b:00:25:12:e0:f9-1-0-rssi", + "unique_id": "ab:cd:ef:12:db:5f:f2:3a-1-0-rssi", "migrate_unique_ids": [], "platform": "sensor", "class_name": "RSSISensor", @@ -220,7 +181,7 @@ "entity_registry_enabled_default": false, "enabled": true, "primary": false, - "device_ieee": "00:12:4b:00:25:12:e0:f9", + "device_ieee": "ab:cd:ef:12:db:5f:f2:3a", "endpoint_id": 1, "available": true, "group_id": null, @@ -236,7 +197,7 @@ { "info_object": { "fallback_name": null, - "unique_id": "00:12:4b:00:25:12:e0:f9-1-1", + "unique_id": "ab:cd:ef:12:db:5f:f2:3a-1-1", "migrate_unique_ids": [], "platform": "sensor", "class_name": "Battery", @@ -248,7 +209,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "00:12:4b:00:25:12:e0:f9", + "device_ieee": "ab:cd:ef:12:db:5f:f2:3a", "endpoint_id": 1, "available": true, "group_id": null, @@ -259,7 +220,7 @@ "class_name": "Battery", "available": true, "state": 100.0, - "battery_voltage": 3.0 + "battery_voltage": 3.2 }, "extra_state_attributes": [ "battery_quantity", diff --git a/tests/data/legacy_devices/ewelink-zb-sw01.json b/tests/data/legacy_devices/ewelink-zb-sw01.json index 331104b3f..f5b06a576 100644 --- a/tests/data/legacy_devices/ewelink-zb-sw01.json +++ b/tests/data/legacy_devices/ewelink-zb-sw01.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T00:56:56.722063+00:00", + "last_seen": "2023-11-29T00:16:51", "available": true, "device_type": "Router", "active_coordinator": false, @@ -102,41 +102,6 @@ ] } }, - "original_signature": { - "manufacturer": "eWeLink", - "model": "ZB-SW01", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 0, - "maximum_buffer_size": 80, - "maximum_incoming_transfer_size": 160, - "server_mask": 0, - "maximum_outgoing_transfer_size": 160, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006" - ], - "output_clusters": [ - "0x0000" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/ezviz-cs-t55-r100-g-0x00000002.json b/tests/data/legacy_devices/ezviz-cs-t55-r100-g-0x00000002.json index 4708ebcb7..8303aa3ef 100644 --- a/tests/data/legacy_devices/ezviz-cs-t55-r100-g-0x00000002.json +++ b/tests/data/legacy_devices/ezviz-cs-t55-r100-g-0x00000002.json @@ -350,48 +350,6 @@ ] } }, - "original_signature": { - "manufacturer": "EZVIZ", - "model": "CS-T55-R100-G", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4451, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0301", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0006", - "0x0020", - "0x0201", - "0x0402", - "0x0500", - "0x0704", - "0xfe00", - "0xfec0" - ], - "output_clusters": [ - "0x0019", - "0x0704" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/frient-a-s-aqszb-110-0x00040001.json b/tests/data/legacy_devices/frient-a-s-aqszb-110-0x00040001.json index 1e48f4138..6fd6b3355 100644 --- a/tests/data/legacy_devices/frient-a-s-aqszb-110-0x00040001.json +++ b/tests/data/legacy_devices/frient-a-s-aqszb-110-0x00040001.json @@ -1,7 +1,7 @@ { "version": 2, - "ieee": "00:15:bc:00:36:00:1f:ee", - "nwk": "0xCA04", + "ieee": "ab:cd:ef:12:ac:0f:76:a5", + "nwk": "0xB594", "manufacturer": "frient A/S", "model": "AQSZB-110", "friendly_manufacturer": "frient A/S", @@ -12,9 +12,9 @@ "exposes_features": [], "manufacturer_code": 4117, "power_source": "Battery or Unknown", - "lqi": 255, - "rssi": -55, - "last_seen": "2025-04-28T20:52:13.626456+00:00", + "lqi": 128, + "rssi": -79, + "last_seen": "2025-11-04T12:20:51.190422+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -98,7 +98,7 @@ "id": "0x0021", "name": "battery_percentage_remaining", "zcl_type": "uint8", - "value": 150 + "value": 200 }, { "id": "0x0033", @@ -116,7 +116,7 @@ "id": "0x0020", "name": "battery_voltage", "zcl_type": "uint8", - "value": 29 + "value": 32 } ] }, @@ -128,14 +128,7 @@ { "cluster_id": "0x0020", "endpoint_attribute": "poll_control", - "attributes": [ - { - "id": "0x0000", - "name": "checkin_interval", - "zcl_type": "uint32", - "value": 13200 - } - ] + "attributes": [] }, { "cluster_id": "0x0402", @@ -145,7 +138,7 @@ "id": "0x0000", "name": "measured_value", "zcl_type": "int16", - "value": 2060 + "value": 2240 }, { "id": "0x0003", @@ -163,7 +156,7 @@ "id": "0x0000", "name": "measured_value", "zcl_type": "uint16", - "value": 4180 + "value": 6020 }, { "id": "0x0003", @@ -181,7 +174,20 @@ { "cluster_id": "0xfc03", "endpoint_attribute": "develco_voc_level", - "attributes": [] + "attributes": [ + { + "id": "0x0000", + "name": "measured_value", + "zcl_type": "uint16", + "value": 244 + }, + { + "id": "0x0003", + "name": "tolerance", + "zcl_type": "uint16", + "value": 1 + } + ] } ], "out_clusters": [ @@ -210,62 +216,12 @@ ] } }, - "original_signature": { - "manufacturer": "frient A/S", - "model": "AQSZB-110", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 0, - "manufacturer_code": 4117, - "maximum_buffer_size": 80, - "maximum_incoming_transfer_size": 80, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 80, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0xc0c9", - "device_type": "0x0001", - "input_clusters": [ - "0x0003", - "0x0005", - "0x0006" - ], - "output_clusters": [] - }, - "38": { - "profile_id": "0x0104", - "device_type": "0x0302", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0020", - "0x0402", - "0x0405", - "0x042e", - "0xfc03" - ], - "output_clusters": [ - "0x0003", - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { "info_object": { "fallback_name": null, - "unique_id": "00:15:bc:00:36:00:1f:ee-38-3", + "unique_id": "ab:cd:ef:12:ac:0f:76:a5-38-3", "migrate_unique_ids": [], "platform": "button", "class_name": "IdentifyButton", @@ -277,7 +233,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "00:15:bc:00:36:00:1f:ee", + "device_ieee": "ab:cd:ef:12:ac:0f:76:a5", "endpoint_id": 38, "available": true, "group_id": null, @@ -297,7 +253,7 @@ { "info_object": { "fallback_name": null, - "unique_id": "00:15:bc:00:36:00:1f:ee-38-0-lqi", + "unique_id": "ab:cd:ef:12:ac:0f:76:a5-38-0-lqi", "migrate_unique_ids": [], "platform": "sensor", "class_name": "LQISensor", @@ -309,7 +265,7 @@ "entity_registry_enabled_default": false, "enabled": true, "primary": false, - "device_ieee": "00:15:bc:00:36:00:1f:ee", + "device_ieee": "ab:cd:ef:12:ac:0f:76:a5", "endpoint_id": 38, "available": true, "group_id": null, @@ -319,13 +275,13 @@ "state": { "class_name": "LQISensor", "available": true, - "state": 255 + "state": 128 } }, { "info_object": { "fallback_name": null, - "unique_id": "00:15:bc:00:36:00:1f:ee-38-0-rssi", + "unique_id": "ab:cd:ef:12:ac:0f:76:a5-38-0-rssi", "migrate_unique_ids": [], "platform": "sensor", "class_name": "RSSISensor", @@ -337,7 +293,7 @@ "entity_registry_enabled_default": false, "enabled": true, "primary": false, - "device_ieee": "00:15:bc:00:36:00:1f:ee", + "device_ieee": "ab:cd:ef:12:ac:0f:76:a5", "endpoint_id": 38, "available": true, "group_id": null, @@ -347,13 +303,13 @@ "state": { "class_name": "RSSISensor", "available": true, - "state": -55 + "state": -79 } }, { "info_object": { "fallback_name": null, - "unique_id": "00:15:bc:00:36:00:1f:ee-38-1", + "unique_id": "ab:cd:ef:12:ac:0f:76:a5-38-1", "migrate_unique_ids": [], "platform": "sensor", "class_name": "Battery", @@ -365,7 +321,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "00:15:bc:00:36:00:1f:ee", + "device_ieee": "ab:cd:ef:12:ac:0f:76:a5", "endpoint_id": 38, "available": true, "group_id": null, @@ -375,10 +331,10 @@ "state": { "class_name": "Battery", "available": true, - "state": 75.0, + "state": 100.0, "battery_size": "AA", "battery_quantity": 2, - "battery_voltage": 2.9 + "battery_voltage": 3.2 }, "extra_state_attributes": [ "battery_quantity", @@ -389,7 +345,7 @@ { "info_object": { "fallback_name": null, - "unique_id": "00:15:bc:00:36:00:1f:ee-38-1026", + "unique_id": "ab:cd:ef:12:ac:0f:76:a5-38-1026", "migrate_unique_ids": [], "platform": "sensor", "class_name": "Temperature", @@ -401,7 +357,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "00:15:bc:00:36:00:1f:ee", + "device_ieee": "ab:cd:ef:12:ac:0f:76:a5", "endpoint_id": 38, "available": true, "group_id": null, @@ -411,13 +367,13 @@ "state": { "class_name": "Temperature", "available": true, - "state": 20.6 + "state": 22.4 } }, { "info_object": { "fallback_name": null, - "unique_id": "00:15:bc:00:36:00:1f:ee-38-1029", + "unique_id": "ab:cd:ef:12:ac:0f:76:a5-38-1029", "migrate_unique_ids": [], "platform": "sensor", "class_name": "Humidity", @@ -429,7 +385,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "00:15:bc:00:36:00:1f:ee", + "device_ieee": "ab:cd:ef:12:ac:0f:76:a5", "endpoint_id": 38, "available": true, "group_id": null, @@ -439,13 +395,13 @@ "state": { "class_name": "Humidity", "available": true, - "state": 41.8 + "state": 60.2 } }, { "info_object": { "fallback_name": "VOC level", - "unique_id": "00:15:bc:00:36:00:1f:ee-38-voc_level", + "unique_id": "ab:cd:ef:12:ac:0f:76:a5-38-voc_level", "migrate_unique_ids": [], "platform": "sensor", "class_name": "Sensor", @@ -457,7 +413,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "00:15:bc:00:36:00:1f:ee", + "device_ieee": "ab:cd:ef:12:ac:0f:76:a5", "endpoint_id": 38, "available": true, "group_id": null, @@ -467,7 +423,7 @@ "state": { "class_name": "Sensor", "available": true, - "state": null + "state": 244 } } ], @@ -475,7 +431,7 @@ { "info_object": { "fallback_name": null, - "unique_id": "00:15:bc:00:36:00:1f:ee-38-25-firmware_update", + "unique_id": "ab:cd:ef:12:ac:0f:76:a5-38-25-firmware_update", "migrate_unique_ids": [], "platform": "update", "class_name": "FirmwareUpdateEntity", @@ -487,7 +443,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "00:15:bc:00:36:00:1f:ee", + "device_ieee": "ab:cd:ef:12:ac:0f:76:a5", "endpoint_id": 38, "available": true, "group_id": null, diff --git a/tests/data/legacy_devices/frient-a-s-emizb-141-0x00030102.json b/tests/data/legacy_devices/frient-a-s-emizb-141-0x00030102.json index f2b296e8f..31a88d3dd 100644 --- a/tests/data/legacy_devices/frient-a-s-emizb-141-0x00030102.json +++ b/tests/data/legacy_devices/frient-a-s-emizb-141-0x00030102.json @@ -1,7 +1,7 @@ { "version": 2, - "ieee": "00:15:bc:00:1b:10:01:5c", - "nwk": "0x09EF", + "ieee": "ab:cd:ef:12:9e:43:ef:e4", + "nwk": "0x6EF1", "manufacturer": "frient A/S", "model": "EMIZB-141", "friendly_manufacturer": "frient A/S", @@ -12,9 +12,9 @@ "exposes_features": [], "manufacturer_code": 4117, "power_source": "Battery or Unknown", - "lqi": 255, - "rssi": -53, - "last_seen": "2025-04-28T20:49:38.790574+00:00", + "lqi": 112, + "rssi": -83, + "last_seen": "2025-09-10T18:12:35.805148+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -112,6 +112,12 @@ "name": "battery_voltage", "zcl_type": "uint8", "value": 31 + }, + { + "id": "0x0000", + "name": "mains_voltage", + "zcl_type": "uint16", + "unsupported": true } ] }, @@ -123,24 +129,23 @@ { "cluster_id": "0x0020", "endpoint_attribute": "poll_control", - "attributes": [ - { - "id": "0x0000", - "name": "checkin_interval", - "zcl_type": "uint32", - "value": 13200 - } - ] + "attributes": [] }, { "cluster_id": "0x0702", "endpoint_attribute": "smartenergy_metering", "attributes": [ + { + "id": "0x0020", + "name": "active_register_tier_delivered", + "zcl_type": "enum8", + "unsupported": true + }, { "id": "0x0000", "name": "current_summ_delivered", "zcl_type": "uint48", - "value": 0 + "value": 98912 }, { "id": "0x0001", @@ -184,6 +189,12 @@ "zcl_type": "uint48", "unsupported": true }, + { + "id": "0x0401", + "name": "currentday_consumption_delivered", + "zcl_type": "uint24", + "unsupported": true + }, { "id": "0x0304", "name": "demand_formatting", @@ -196,11 +207,17 @@ "zcl_type": "uint24", "value": 1000 }, + { + "id": "0x0202", + "name": "hours_in_operation", + "zcl_type": "uint24", + "unsupported": true + }, { "id": "0x0400", "name": "instantaneous_demand", "zcl_type": "int24", - "value": 0 + "value": 468 }, { "id": "0x0306", @@ -214,6 +231,30 @@ "zcl_type": "uint24", "value": 1 }, + { + "id": "0x0018", + "name": "outlet_temperature", + "zcl_type": "int24", + "unsupported": true + }, + { + "id": "0x0006", + "name": "power_factor", + "zcl_type": "int8", + "unsupported": true + }, + { + "id": "0x0011", + "name": "preset_reading_time", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x000f", + "name": "profile_interval_period", + "zcl_type": "enum8", + "value": 2 + }, { "id": "0x0200", "name": "status", @@ -231,6 +272,12 @@ "name": "unit_of_measure", "zcl_type": "enum8", "value": 0 + }, + { + "id": "0x0012", + "name": "volume_per_report", + "zcl_type": "uint16", + "unsupported": true } ] }, @@ -276,61 +323,12 @@ ] } }, - "original_signature": { - "manufacturer": "frient A/S", - "model": "EMIZB-141", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4117, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 1500, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 1500, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0xc0c9", - "device_type": "0x0001", - "input_clusters": [ - "0x0005", - "0x0006" - ], - "output_clusters": [] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0053", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0020", - "0x0702", - "0x0b01", - "0x0b05", - "0xfd10" - ], - "output_clusters": [ - "0x0003", - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { "info_object": { "fallback_name": null, - "unique_id": "00:15:bc:00:1b:10:01:5c-2-3", + "unique_id": "ab:cd:ef:12:9e:43:ef:e4-2-3", "migrate_unique_ids": [], "platform": "button", "class_name": "IdentifyButton", @@ -342,7 +340,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "00:15:bc:00:1b:10:01:5c", + "device_ieee": "ab:cd:ef:12:9e:43:ef:e4", "endpoint_id": 2, "available": true, "group_id": null, @@ -360,7 +358,7 @@ { "info_object": { "fallback_name": "Reset summation delivered", - "unique_id": "00:15:bc:00:1b:10:01:5c-2-current_summation", + "unique_id": "ab:cd:ef:12:9e:43:ef:e4-2-current_summation", "migrate_unique_ids": [], "platform": "button", "class_name": "WriteAttributeButton", @@ -372,7 +370,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "00:15:bc:00:1b:10:01:5c", + "device_ieee": "ab:cd:ef:12:9e:43:ef:e4", "endpoint_id": 2, "available": true, "group_id": null, @@ -389,7 +387,7 @@ { "info_object": { "fallback_name": "Pulse configuration", - "unique_id": "00:15:bc:00:1b:10:01:5c-2-pulse_configuration", + "unique_id": "ab:cd:ef:12:9e:43:ef:e4-2-pulse_configuration", "migrate_unique_ids": [], "platform": "number", "class_name": "NumberConfigurationEntity", @@ -401,7 +399,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "00:15:bc:00:1b:10:01:5c", + "device_ieee": "ab:cd:ef:12:9e:43:ef:e4", "endpoint_id": 2, "available": true, "group_id": null, @@ -422,7 +420,7 @@ { "info_object": { "fallback_name": null, - "unique_id": "00:15:bc:00:1b:10:01:5c-2-0-lqi", + "unique_id": "ab:cd:ef:12:9e:43:ef:e4-2-0-lqi", "migrate_unique_ids": [], "platform": "sensor", "class_name": "LQISensor", @@ -434,7 +432,7 @@ "entity_registry_enabled_default": false, "enabled": true, "primary": false, - "device_ieee": "00:15:bc:00:1b:10:01:5c", + "device_ieee": "ab:cd:ef:12:9e:43:ef:e4", "endpoint_id": 2, "available": true, "group_id": null, @@ -444,13 +442,13 @@ "state": { "class_name": "LQISensor", "available": true, - "state": 255 + "state": 112 } }, { "info_object": { "fallback_name": null, - "unique_id": "00:15:bc:00:1b:10:01:5c-2-0-rssi", + "unique_id": "ab:cd:ef:12:9e:43:ef:e4-2-0-rssi", "migrate_unique_ids": [], "platform": "sensor", "class_name": "RSSISensor", @@ -462,7 +460,7 @@ "entity_registry_enabled_default": false, "enabled": true, "primary": false, - "device_ieee": "00:15:bc:00:1b:10:01:5c", + "device_ieee": "ab:cd:ef:12:9e:43:ef:e4", "endpoint_id": 2, "available": true, "group_id": null, @@ -472,13 +470,13 @@ "state": { "class_name": "RSSISensor", "available": true, - "state": -53 + "state": -83 } }, { "info_object": { "fallback_name": null, - "unique_id": "00:15:bc:00:1b:10:01:5c-2-1", + "unique_id": "ab:cd:ef:12:9e:43:ef:e4-2-1", "migrate_unique_ids": [], "platform": "sensor", "class_name": "Battery", @@ -490,7 +488,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "00:15:bc:00:1b:10:01:5c", + "device_ieee": "ab:cd:ef:12:9e:43:ef:e4", "endpoint_id": 2, "available": true, "group_id": null, @@ -514,7 +512,7 @@ { "info_object": { "fallback_name": null, - "unique_id": "00:15:bc:00:1b:10:01:5c-2-1794", + "unique_id": "ab:cd:ef:12:9e:43:ef:e4-2-1794", "migrate_unique_ids": [], "platform": "sensor", "class_name": "SmartEnergyMetering", @@ -526,7 +524,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "00:15:bc:00:1b:10:01:5c", + "device_ieee": "ab:cd:ef:12:9e:43:ef:e4", "endpoint_id": 2, "available": true, "group_id": null, @@ -536,7 +534,7 @@ "state": { "class_name": "SmartEnergyMetering", "available": true, - "state": 0.0, + "state": 468, "device_type": "Electric Metering", "status": "NO_ALARMS", "zcl_unit_of_measurement": 0 @@ -550,7 +548,7 @@ { "info_object": { "fallback_name": null, - "unique_id": "00:15:bc:00:1b:10:01:5c-2-1794-summation_delivered", + "unique_id": "ab:cd:ef:12:9e:43:ef:e4-2-1794-summation_delivered", "migrate_unique_ids": [], "platform": "sensor", "class_name": "SmartEnergySummation", @@ -562,7 +560,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "00:15:bc:00:1b:10:01:5c", + "device_ieee": "ab:cd:ef:12:9e:43:ef:e4", "endpoint_id": 2, "available": true, "group_id": null, @@ -572,7 +570,7 @@ "state": { "class_name": "SmartEnergySummation", "available": true, - "state": 0.0, + "state": 98.912, "device_type": "Electric Metering", "status": "NO_ALARMS", "zcl_unit_of_measurement": 0 @@ -588,7 +586,7 @@ { "info_object": { "fallback_name": null, - "unique_id": "00:15:bc:00:1b:10:01:5c-2-25-firmware_update", + "unique_id": "ab:cd:ef:12:9e:43:ef:e4-2-25-firmware_update", "migrate_unique_ids": [], "platform": "update", "class_name": "FirmwareUpdateEntity", @@ -600,7 +598,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "00:15:bc:00:1b:10:01:5c", + "device_ieee": "ab:cd:ef:12:9e:43:ef:e4", "endpoint_id": 2, "available": true, "group_id": null, diff --git a/tests/data/legacy_devices/frient-a-s-kepzb-110-0x0001060a.json b/tests/data/legacy_devices/frient-a-s-kepzb-110-0x0001060a.json index 76904592a..799571a68 100644 --- a/tests/data/legacy_devices/frient-a-s-kepzb-110-0x0001060a.json +++ b/tests/data/legacy_devices/frient-a-s-kepzb-110-0x0001060a.json @@ -190,53 +190,6 @@ ] } }, - "original_signature": { - "manufacturer": "frient A/S", - "model": "KEPZB-110", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4117, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 1500, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 1500, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0xc0c9", - "device_type": "0x0001", - "input_clusters": [ - "0x0005", - "0x0006" - ], - "output_clusters": [] - }, - "44": { - "profile_id": "0x0104", - "device_type": "0x0401", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0020", - "0x0500" - ], - "output_clusters": [ - "0x0003", - "0x000a", - "0x0019", - "0x0501" - ] - } - } - }, "zha_lib_entities": { "alarm_control_panel": [ { diff --git a/tests/data/legacy_devices/frient-a-s-kepzb-110-0x00020005.json b/tests/data/legacy_devices/frient-a-s-kepzb-110-0x00020005.json index eeb16c654..a6ba931ae 100644 --- a/tests/data/legacy_devices/frient-a-s-kepzb-110-0x00020005.json +++ b/tests/data/legacy_devices/frient-a-s-kepzb-110-0x00020005.json @@ -1,7 +1,7 @@ { "version": 2, - "ieee": "00:15:bc:00:43:00:4a:39", - "nwk": "0x0422", + "ieee": "ab:cd:ef:12:44:6d:00:26", + "nwk": "0xF401", "manufacturer": "frient A/S", "model": "KEPZB-110", "friendly_manufacturer": "frient A/S", @@ -12,9 +12,9 @@ "exposes_features": [], "manufacturer_code": 4117, "power_source": "Battery or Unknown", - "lqi": null, - "rssi": null, - "last_seen": "2025-04-21T22:41:56.580469+00:00", + "lqi": 208, + "rssi": -59, + "last_seen": "2025-10-05T15:29:45.556070+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -123,14 +123,7 @@ { "cluster_id": "0x0020", "endpoint_attribute": "poll_control", - "attributes": [ - { - "id": "0x0000", - "name": "checkin_interval", - "zcl_type": "uint32", - "value": 13200 - } - ] + "attributes": [] }, { "cluster_id": "0x0500", @@ -161,7 +154,7 @@ "id": "0x0002", "name": "zone_status", "zcl_type": "map16", - "value": 20 + "value": 16 }, { "id": "0x0001", @@ -208,60 +201,12 @@ ] } }, - "original_signature": { - "manufacturer": "frient A/S", - "model": "KEPZB-110", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4117, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 1500, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 1500, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0xc0c9", - "device_type": "0x0001", - "input_clusters": [ - "0x0005", - "0x0006" - ], - "output_clusters": [] - }, - "44": { - "profile_id": "0x0104", - "device_type": "0x0401", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0020", - "0x0500", - "0x0b05" - ], - "output_clusters": [ - "0x0003", - "0x000a", - "0x0019", - "0x0501" - ] - } - } - }, "zha_lib_entities": { "alarm_control_panel": [ { "info_object": { "fallback_name": null, - "unique_id": "00:15:bc:00:43:00:4a:39-44-1281", + "unique_id": "ab:cd:ef:12:44:6d:00:26-44-1281", "migrate_unique_ids": [], "platform": "alarm_control_panel", "class_name": "AlarmControlPanel", @@ -273,7 +218,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "00:15:bc:00:43:00:4a:39", + "device_ieee": "ab:cd:ef:12:44:6d:00:26", "endpoint_id": 44, "available": true, "group_id": null, @@ -292,7 +237,7 @@ { "info_object": { "fallback_name": "Tamper", - "unique_id": "00:15:bc:00:43:00:4a:39-44-tamper", + "unique_id": "ab:cd:ef:12:44:6d:00:26-44-tamper", "migrate_unique_ids": [], "platform": "binary_sensor", "class_name": "BinarySensor", @@ -304,7 +249,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "00:15:bc:00:43:00:4a:39", + "device_ieee": "ab:cd:ef:12:44:6d:00:26", "endpoint_id": 44, "available": true, "group_id": null, @@ -313,7 +258,7 @@ "state": { "class_name": "BinarySensor", "available": true, - "state": true + "state": false } } ], @@ -321,7 +266,7 @@ { "info_object": { "fallback_name": null, - "unique_id": "00:15:bc:00:43:00:4a:39-44-3", + "unique_id": "ab:cd:ef:12:44:6d:00:26-44-3", "migrate_unique_ids": [], "platform": "button", "class_name": "IdentifyButton", @@ -333,7 +278,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "00:15:bc:00:43:00:4a:39", + "device_ieee": "ab:cd:ef:12:44:6d:00:26", "endpoint_id": 44, "available": true, "group_id": null, @@ -353,7 +298,7 @@ { "info_object": { "fallback_name": null, - "unique_id": "00:15:bc:00:43:00:4a:39-44-0-lqi", + "unique_id": "ab:cd:ef:12:44:6d:00:26-44-0-lqi", "migrate_unique_ids": [], "platform": "sensor", "class_name": "LQISensor", @@ -365,7 +310,7 @@ "entity_registry_enabled_default": false, "enabled": true, "primary": false, - "device_ieee": "00:15:bc:00:43:00:4a:39", + "device_ieee": "ab:cd:ef:12:44:6d:00:26", "endpoint_id": 44, "available": true, "group_id": null, @@ -375,13 +320,13 @@ "state": { "class_name": "LQISensor", "available": true, - "state": null + "state": 208 } }, { "info_object": { "fallback_name": null, - "unique_id": "00:15:bc:00:43:00:4a:39-44-0-rssi", + "unique_id": "ab:cd:ef:12:44:6d:00:26-44-0-rssi", "migrate_unique_ids": [], "platform": "sensor", "class_name": "RSSISensor", @@ -393,7 +338,7 @@ "entity_registry_enabled_default": false, "enabled": true, "primary": false, - "device_ieee": "00:15:bc:00:43:00:4a:39", + "device_ieee": "ab:cd:ef:12:44:6d:00:26", "endpoint_id": 44, "available": true, "group_id": null, @@ -403,13 +348,13 @@ "state": { "class_name": "RSSISensor", "available": true, - "state": null + "state": -59 } }, { "info_object": { "fallback_name": null, - "unique_id": "00:15:bc:00:43:00:4a:39-44-1", + "unique_id": "ab:cd:ef:12:44:6d:00:26-44-1", "migrate_unique_ids": [], "platform": "sensor", "class_name": "Battery", @@ -421,7 +366,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "00:15:bc:00:43:00:4a:39", + "device_ieee": "ab:cd:ef:12:44:6d:00:26", "endpoint_id": 44, "available": true, "group_id": null, @@ -447,7 +392,7 @@ { "info_object": { "fallback_name": null, - "unique_id": "00:15:bc:00:43:00:4a:39-44-25-firmware_update", + "unique_id": "ab:cd:ef:12:44:6d:00:26-44-25-firmware_update", "migrate_unique_ids": [], "platform": "update", "class_name": "FirmwareUpdateEntity", @@ -459,7 +404,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "00:15:bc:00:43:00:4a:39", + "device_ieee": "ab:cd:ef:12:44:6d:00:26", "endpoint_id": 44, "available": true, "group_id": null, diff --git a/tests/data/legacy_devices/frient-a-s-moszb-140-0x00040006.json b/tests/data/legacy_devices/frient-a-s-moszb-140-0x00040006.json index 91b84af22..8a3483c4f 100644 --- a/tests/data/legacy_devices/frient-a-s-moszb-140-0x00040006.json +++ b/tests/data/legacy_devices/frient-a-s-moszb-140-0x00040006.json @@ -380,104 +380,6 @@ "out_clusters": [] } }, - "original_signature": { - "manufacturer": "frient A/S", - "model": "MOSZB-140", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 0, - "manufacturer_code": 4117, - "maximum_buffer_size": 80, - "maximum_incoming_transfer_size": 80, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 80, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0xc0c9", - "device_type": "0x0001", - "input_clusters": [ - "0x0003", - "0x0005", - "0x0006" - ], - "output_clusters": [] - }, - "34": { - "profile_id": "0x0104", - "device_type": "0x0107", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0406" - ], - "output_clusters": [] - }, - "35": { - "profile_id": "0x0104", - "device_type": "0x0402", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x000f", - "0x0020", - "0x0500" - ], - "output_clusters": [ - "0x0003", - "0x000a", - "0x0019" - ] - }, - "38": { - "profile_id": "0x0104", - "device_type": "0x0302", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0402" - ], - "output_clusters": [] - }, - "39": { - "profile_id": "0x0104", - "device_type": "0x0106", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0400" - ], - "output_clusters": [] - }, - "40": { - "profile_id": "0x0104", - "device_type": "0x0107", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0406" - ], - "output_clusters": [] - }, - "41": { - "profile_id": "0x0104", - "device_type": "0x0107", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0406" - ], - "output_clusters": [] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/frient-a-s-smszb-120.json b/tests/data/legacy_devices/frient-a-s-smszb-120.json index fd87f5f8a..a9803d717 100644 --- a/tests/data/legacy_devices/frient-a-s-smszb-120.json +++ b/tests/data/legacy_devices/frient-a-s-smszb-120.json @@ -243,66 +243,6 @@ ] } }, - "original_signature": { - "manufacturer": "frient A/S", - "model": "SMSZB-120", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 0, - "manufacturer_code": 4117, - "maximum_buffer_size": 80, - "maximum_incoming_transfer_size": 80, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 80, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0xc0c9", - "device_type": "0x0001", - "input_clusters": [ - "0x0003", - "0x0005", - "0x0006" - ], - "output_clusters": [] - }, - "35": { - "profile_id": "0x0104", - "device_type": "0x0402", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x000f", - "0x0020", - "0x0500", - "0x0502" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "38": { - "profile_id": "0x0104", - "device_type": "0x0302", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0402" - ], - "output_clusters": [ - "0x0003" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/generic-zigbee-coordinator-ezsp.json b/tests/data/legacy_devices/generic-zigbee-coordinator-ezsp.json index 9ec198e16..0167c6620 100644 --- a/tests/data/legacy_devices/generic-zigbee-coordinator-ezsp.json +++ b/tests/data/legacy_devices/generic-zigbee-coordinator-ezsp.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T00:48:19.945695+00:00", + "last_seen": "2025-04-08T07:34:48", "available": true, "device_type": "Coordinator", "active_coordinator": false, @@ -119,52 +119,6 @@ "out_clusters": [] } }, - "original_signature": { - "manufacturer": "", - "model": "Generic Zigbee Coordinator (EZSP)", - "node_desc": { - "logical_type": 0, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 143, - "manufacturer_code": 43981, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 128, - "server_mask": 11329, - "maximum_outgoing_transfer_size": 128, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0400", - "input_clusters": [ - "0x0000", - "0x0006", - "0x000a", - "0x0019", - "0x0501" - ], - "output_clusters": [ - "0x0001", - "0x0020", - "0x0500", - "0x0502" - ] - }, - "2": { - "profile_id": "0xc05e", - "device_type": "0x0820", - "input_clusters": [ - "0x0000" - ], - "output_clusters": [] - } - } - }, "zha_lib_entities": {}, "neighbors": [], "routes": [] diff --git a/tests/data/legacy_devices/gledopto-gl-b-008z.json b/tests/data/legacy_devices/gledopto-gl-b-008z.json index a58e2a38d..90192e44a 100644 --- a/tests/data/legacy_devices/gledopto-gl-b-008z.json +++ b/tests/data/legacy_devices/gledopto-gl-b-008z.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:39:40.052747+00:00", + "last_seen": "2024-02-01T15:17:05", "available": true, "device_type": "Router", "active_coordinator": false, @@ -215,41 +215,6 @@ "out_clusters": [] } }, - "original_signature": { - "manufacturer": "GLEDOPTO", - "model": "GL-B-008Z", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 0, - "maximum_buffer_size": 80, - "maximum_incoming_transfer_size": 160, - "server_mask": 0, - "maximum_outgoing_transfer_size": 160, - "descriptor_capability_field": 0 - }, - "endpoints": { - "11": { - "profile_id": "0xc05e", - "device_type": "0x0210", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0300" - ], - "output_clusters": [] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/gledopto-gl-c-009p-0x29013001.json b/tests/data/legacy_devices/gledopto-gl-c-009p-0x29013001.json index 7879d3cc2..f890b0604 100644 --- a/tests/data/legacy_devices/gledopto-gl-c-009p-0x29013001.json +++ b/tests/data/legacy_devices/gledopto-gl-c-009p-0x29013001.json @@ -162,44 +162,6 @@ ] } }, - "original_signature": { - "manufacturer": "GLEDOPTO", - "model": "GL-C-009P", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4687, - "maximum_buffer_size": 74, - "maximum_incoming_transfer_size": 404, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 404, - "descriptor_capability_field": 0 - }, - "endpoints": { - "11": { - "profile_id": "0x0104", - "device_type": "0x0101", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0300", - "0x1000" - ], - "output_clusters": [ - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/gledpopto-gl-c-007p.json b/tests/data/legacy_devices/gledpopto-gl-c-007p.json index 764270c7e..a0c6bc8cb 100644 --- a/tests/data/legacy_devices/gledpopto-gl-c-007p.json +++ b/tests/data/legacy_devices/gledpopto-gl-c-007p.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:59.876608+00:00", + "last_seen": "2023-05-14T14:02:37", "available": true, "device_type": "Router", "active_coordinator": false, @@ -303,52 +303,6 @@ ] } }, - "original_signature": { - "manufacturer": "GLEDPOPTO", - "model": "GL-C-007P", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "11": { - "profile_id": "0x0104", - "device_type": "0x010d", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0300", - "0x1000" - ], - "output_clusters": [ - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/handshake-finland-agge-zigbee-smart-rotary-dimmer-0x00000002.json b/tests/data/legacy_devices/handshake-finland-agge-zigbee-smart-rotary-dimmer-0x00000002.json index e1898f823..aca6b2f92 100644 --- a/tests/data/legacy_devices/handshake-finland-agge-zigbee-smart-rotary-dimmer-0x00000002.json +++ b/tests/data/legacy_devices/handshake-finland-agge-zigbee-smart-rotary-dimmer-0x00000002.json @@ -188,52 +188,6 @@ ] } }, - "original_signature": { - "manufacturer": "Handshake Finland", - "model": "AGGE Zigbee smart rotary dimmer", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4714, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0101", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0b05", - "0x1000" - ], - "output_clusters": [ - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/hive-mbr1-0x01047320.json b/tests/data/legacy_devices/hive-mbr1-0x01047320.json index 3c3184bf0..065a2e489 100644 --- a/tests/data/legacy_devices/hive-mbr1-0x01047320.json +++ b/tests/data/legacy_devices/hive-mbr1-0x01047320.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:08:54.259333+00:00", + "last_seen": "2024-11-04T23:31:25", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -369,100 +369,6 @@ "out_clusters": [] } }, - "original_signature": { - "manufacturer": "Hive", - "model": "MBR1", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 140, - "manufacturer_code": 4153, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0005", - "input_clusters": [ - "0x0000", - "0x0003", - "0xfe00" - ], - "output_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0015", - "0x0019" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0005", - "input_clusters": [ - "0xfe01", - "0xfe02", - "0xfe03", - "0xfe04", - "0xfe05", - "0xfe06", - "0xfe07" - ], - "output_clusters": [] - }, - "3": { - "profile_id": "0x0104", - "device_type": "0x0005", - "input_clusters": [ - "0xfe01", - "0xfe02", - "0xfe03", - "0xfe04", - "0xfe05", - "0xfe06", - "0xfe07" - ], - "output_clusters": [] - }, - "4": { - "profile_id": "0x0104", - "device_type": "0x0005", - "input_clusters": [ - "0xfe01", - "0xfe02", - "0xfe03", - "0xfe04", - "0xfe05", - "0xfe06", - "0xfe07" - ], - "output_clusters": [] - }, - "5": { - "profile_id": "0x0104", - "device_type": "0x0005", - "input_clusters": [ - "0xfe01", - "0xfe02", - "0xfe03", - "0xfe04", - "0xfe05", - "0xfe06", - "0xfe07" - ], - "output_clusters": [] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/hobeian-zg-101zl.json b/tests/data/legacy_devices/hobeian-zg-101zl.json index 8f14a7ec7..4ad38be92 100644 --- a/tests/data/legacy_devices/hobeian-zg-101zl.json +++ b/tests/data/legacy_devices/hobeian-zg-101zl.json @@ -341,49 +341,6 @@ ] } }, - "original_signature": { - "manufacturer": "HOBEIAN", - "model": "ZG-101ZL", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4742, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0000", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0004", - "0x0006", - "0x1000", - "0xe001" - ], - "output_clusters": [ - "0x0003", - "0x0004", - "0x0006", - "0x0008", - "0x000a", - "0x0019", - "0x1000" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/hobeian-zg-102zm.json b/tests/data/legacy_devices/hobeian-zg-102zm.json index 72bb7bfe0..9a347037e 100644 --- a/tests/data/legacy_devices/hobeian-zg-102zm.json +++ b/tests/data/legacy_devices/hobeian-zg-102zm.json @@ -142,39 +142,6 @@ "out_clusters": [] } }, - "original_signature": { - "manufacturer": "HOBEIAN", - "model": "ZG-102ZM", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4742, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0402", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0500", - "0xef00" - ], - "output_clusters": [] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/hobeian-zg-204zv.json b/tests/data/legacy_devices/hobeian-zg-204zv.json index d05a81cd9..e01e2a5b6 100644 --- a/tests/data/legacy_devices/hobeian-zg-204zv.json +++ b/tests/data/legacy_devices/hobeian-zg-204zv.json @@ -1,7 +1,7 @@ { "version": 2, "ieee": "ab:cd:ef:12:d9:4b:d8:42", - "nwk": "0xAF28", + "nwk": "0x4C86", "manufacturer": "HOBEIAN", "model": "ZG-204ZV", "friendly_manufacturer": "HOBEIAN", @@ -12,9 +12,9 @@ "exposes_features": [], "manufacturer_code": 4742, "power_source": "Battery or Unknown", - "lqi": 184, - "rssi": -54, - "last_seen": "2025-08-15T18:06:45.853422+00:00", + "lqi": 255, + "rssi": -34, + "last_seen": "2025-11-23T21:24:49.671903+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -45,6 +45,36 @@ "cluster_id": "0x0000", "endpoint_attribute": "basic", "attributes": [ + { + "id": "0x0001", + "name": "app_version", + "zcl_type": "uint8", + "value": 147 + }, + { + "id": "0xfffd", + "name": "cluster_revision", + "zcl_type": "uint16", + "value": 1 + }, + { + "id": "0x0006", + "name": "date_code", + "zcl_type": "string", + "value": "30082025" + }, + { + "id": "0x0012", + "name": "device_enabled", + "zcl_type": "bool", + "value": 1 + }, + { + "id": "0x0003", + "name": "hw_version", + "zcl_type": "uint8", + "value": 1 + }, { "id": "0x0004", "name": "manufacturer", @@ -56,6 +86,30 @@ "name": "model", "zcl_type": "string", "value": "ZG-204ZV" + }, + { + "id": "0x0007", + "name": "power_source", + "zcl_type": "enum8", + "value": 3 + }, + { + "id": "0x0002", + "name": "stack_version", + "zcl_type": "uint8", + "value": 2 + }, + { + "id": "0x4000", + "name": "sw_build_id", + "zcl_type": "string", + "value": "0130082025" + }, + { + "id": "0x0000", + "name": "zcl_version", + "zcl_type": "uint8", + "value": 3 } ] }, @@ -85,24 +139,61 @@ "id": "0x0020", "name": "battery_voltage", "zcl_type": "uint8", - "value": 30 + "value": 27 + }, + { + "id": "0xfffd", + "name": "cluster_revision", + "zcl_type": "uint16", + "value": 1 } ] }, { "cluster_id": "0x0003", "endpoint_attribute": "identify", - "attributes": [] + "attributes": [ + { + "id": "0xfffd", + "name": "cluster_revision", + "zcl_type": "uint16", + "value": 1 + }, + { + "id": "0x0000", + "name": "identify_time", + "zcl_type": "uint16", + "value": 0 + } + ] }, { "cluster_id": "0x0400", "endpoint_attribute": "illuminance", "attributes": [ + { + "id": "0xfffd", + "name": "cluster_revision", + "zcl_type": "uint16", + "value": 1 + }, + { + "id": "0x0002", + "name": "max_measured_value", + "zcl_type": "uint16", + "value": 4000 + }, { "id": "0x0000", "name": "measured_value", "zcl_type": "uint16", - "value": 31688 + "value": 27531 + }, + { + "id": "0x0001", + "name": "min_measured_value", + "zcl_type": "uint16", + "value": 0 } ] }, @@ -110,11 +201,35 @@ "cluster_id": "0x0402", "endpoint_attribute": "temperature", "attributes": [ + { + "id": "0xfffd", + "name": "cluster_revision", + "zcl_type": "uint16", + "value": 1 + }, + { + "id": "0x0002", + "name": "max_measured_value", + "zcl_type": "int16", + "value": -32768 + }, { "id": "0x0000", "name": "measured_value", "zcl_type": "int16", - "value": 2330 + "value": 2220 + }, + { + "id": "0x0001", + "name": "min_measured_value", + "zcl_type": "int16", + "value": -32768 + }, + { + "id": "0x0003", + "name": "tolerance", + "zcl_type": "uint16", + "value": 0 } ] }, @@ -122,11 +237,35 @@ "cluster_id": "0x0405", "endpoint_attribute": "humidity", "attributes": [ + { + "id": "0xfffd", + "name": "cluster_revision", + "zcl_type": "uint16", + "value": 1 + }, + { + "id": "0x0002", + "name": "max_measured_value", + "zcl_type": "uint16", + "value": 32768 + }, { "id": "0x0000", "name": "measured_value", "zcl_type": "uint16", - "value": 4130 + "value": 3340 + }, + { + "id": "0x0001", + "name": "min_measured_value", + "zcl_type": "uint16", + "value": 32768 + }, + { + "id": "0x0003", + "name": "tolerance", + "zcl_type": "uint16", + "value": 0 } ] }, @@ -149,6 +288,18 @@ 0 ] }, + { + "id": "0x0013", + "name": "current_zone_sensitivity_level", + "zcl_type": "uint8", + "value": 200 + }, + { + "id": "0x0011", + "name": "zone_id", + "zcl_type": "uint8", + "value": 0 + }, { "id": "0x0000", "name": "zone_state", @@ -179,49 +330,24 @@ { "cluster_id": "0x0003", "endpoint_attribute": "identify", - "attributes": [] + "attributes": [ + { + "id": "0xfffd", + "name": "cluster_revision", + "zcl_type": "uint16", + "value": 1 + }, + { + "id": "0x0000", + "name": "identify_time", + "zcl_type": "uint16", + "value": 0 + } + ] } ] } }, - "original_signature": { - "manufacturer": "HOBEIAN", - "model": "ZG-204ZV", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4742, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0402", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0400", - "0x0402", - "0x0405", - "0x0500", - "0xef00" - ], - "output_clusters": [ - "0x0003" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { @@ -310,7 +436,7 @@ "state": { "class_name": "LQISensor", "available": true, - "state": 184 + "state": 255 } }, { @@ -338,7 +464,7 @@ "state": { "class_name": "RSSISensor", "available": true, - "state": -54 + "state": -34 } }, { @@ -367,7 +493,7 @@ "class_name": "Battery", "available": true, "state": 100.0, - "battery_voltage": 3.0 + "battery_voltage": 2.7 }, "extra_state_attributes": [ "battery_quantity", @@ -400,7 +526,7 @@ "state": { "class_name": "Illuminance", "available": true, - "state": 1475 + "state": 566 } }, { @@ -428,7 +554,7 @@ "state": { "class_name": "Temperature", "available": true, - "state": 23.3 + "state": 22.2 } }, { @@ -456,7 +582,7 @@ "state": { "class_name": "Humidity", "available": true, - "state": 41.3 + "state": 33.4 } } ] diff --git a/tests/data/legacy_devices/horn-zone-haier-hs-22zw-0000011216.json b/tests/data/legacy_devices/horn-zone-haier-hs-22zw-0000011216.json index 473c98318..b4d22b7e4 100644 --- a/tests/data/legacy_devices/horn-zone-haier-hs-22zw-0000011216.json +++ b/tests/data/legacy_devices/horn-zone-haier-hs-22zw-0000011216.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:32.592814+00:00", + "last_seen": "2025-03-09T18:52:45", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -87,38 +87,6 @@ ] } }, - "original_signature": { - "manufacturer": "HORN-ZONE-HAIER ", - "model": "HS-22ZW 0000011216", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 0, - "maximum_buffer_size": 80, - "maximum_incoming_transfer_size": 160, - "server_mask": 0, - "maximum_outgoing_transfer_size": 160, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0402", - "input_clusters": [ - "0x0000", - "0x0003" - ], - "output_clusters": [ - "0x0006" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/ikea-of-sweden-badring-water-leakage-sensor-0x01000007.json b/tests/data/legacy_devices/ikea-of-sweden-badring-water-leakage-sensor-0x01000007.json index 5ea4f4e6e..fd5ecaaa7 100644 --- a/tests/data/legacy_devices/ikea-of-sweden-badring-water-leakage-sensor-0x01000007.json +++ b/tests/data/legacy_devices/ikea-of-sweden-badring-water-leakage-sensor-0x01000007.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:42.249935+00:00", + "last_seen": "2024-10-14T22:45:45", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -187,46 +187,6 @@ ] } }, - "original_signature": { - "manufacturer": "IKEA of Sweden", - "model": "BADRING Water Leakage Sensor", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4476, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0402", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0020", - "0x0500", - "0x0b05", - "0xfc7c", - "0xfc81" - ], - "output_clusters": [ - "0x0003", - "0x0004", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/ikea-of-sweden-ormanas-led-strip-0x01010010.json b/tests/data/legacy_devices/ikea-of-sweden-ormanas-led-strip-0x01010010.json index b0aa0bfc7..9c3635e8e 100644 --- a/tests/data/legacy_devices/ikea-of-sweden-ormanas-led-strip-0x01010010.json +++ b/tests/data/legacy_devices/ikea-of-sweden-ormanas-led-strip-0x01010010.json @@ -381,55 +381,6 @@ ] } }, - "original_signature": { - "manufacturer": "IKEA of Sweden", - "model": "ORMANAS LED Strip", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4476, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x010d", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0300", - "0x1000", - "0xfc57" - ], - "output_clusters": [ - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [ - "0x0021" - ], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/ikea-of-sweden-parasoll-door-window-sensor-0x01000019.json b/tests/data/legacy_devices/ikea-of-sweden-parasoll-door-window-sensor-0x01000019.json index b91202680..b01bdcc41 100644 --- a/tests/data/legacy_devices/ikea-of-sweden-parasoll-door-window-sensor-0x01000019.json +++ b/tests/data/legacy_devices/ikea-of-sweden-parasoll-door-window-sensor-0x01000019.json @@ -1,7 +1,7 @@ { "version": 2, - "ieee": "04:87:27:ff:fe:4a:b3:25", - "nwk": "0xD4C9", + "ieee": "ab:cd:ef:12:43:1a:e3:7a", + "nwk": "0x0189", "manufacturer": "IKEA of Sweden", "model": "PARASOLL Door/Window Sensor", "friendly_manufacturer": "IKEA of Sweden", @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-04-24T17:34:07.615603+00:00", + "last_seen": "2025-02-12T13:20:41", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -62,32 +62,7 @@ { "cluster_id": "0x0001", "endpoint_attribute": "power", - "attributes": [ - { - "id": "0x0021", - "name": "battery_percentage_remaining", - "zcl_type": "uint8", - "value": 200 - }, - { - "id": "0x0033", - "name": "battery_quantity", - "zcl_type": "uint8", - "value": 1 - }, - { - "id": "0x0031", - "name": "battery_size", - "zcl_type": "enum8", - "value": 4 - }, - { - "id": "0x0020", - "name": "battery_voltage", - "zcl_type": "uint8", - "value": 16 - } - ] + "attributes": [] }, { "cluster_id": "0x0003", @@ -198,12 +173,6 @@ 0 ] }, - { - "id": "0x0000", - "name": "zone_state", - "zcl_type": "enum8", - "value": 1 - }, { "id": "0x0002", "name": "zone_status", @@ -228,66 +197,12 @@ ] } }, - "original_signature": { - "manufacturer": "IKEA of Sweden", - "model": "PARASOLL Door/Window Sensor", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4476, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0103", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0020", - "0x0b05", - "0x1000", - "0xfc7c", - "0xfc81" - ], - "output_clusters": [ - "0x0003", - "0x0004", - "0x0006", - "0x0019", - "0x1000" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0402", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0500" - ], - "output_clusters": [ - "0x0003" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { "info_object": { "fallback_name": null, - "unique_id": "04:87:27:ff:fe:4a:b3:25-2-1280", + "unique_id": "ab:cd:ef:12:43:1a:e3:7a-2-1280", "migrate_unique_ids": [], "platform": "binary_sensor", "class_name": "IASZone", @@ -299,7 +214,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": true, - "device_ieee": "04:87:27:ff:fe:4a:b3:25", + "device_ieee": "ab:cd:ef:12:43:1a:e3:7a", "endpoint_id": 2, "available": true, "group_id": null, @@ -316,7 +231,7 @@ { "info_object": { "fallback_name": null, - "unique_id": "04:87:27:ff:fe:4a:b3:25-1-3", + "unique_id": "ab:cd:ef:12:43:1a:e3:7a-1-3", "migrate_unique_ids": [], "platform": "button", "class_name": "IdentifyButton", @@ -328,7 +243,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "04:87:27:ff:fe:4a:b3:25", + "device_ieee": "ab:cd:ef:12:43:1a:e3:7a", "endpoint_id": 1, "available": true, "group_id": null, @@ -348,7 +263,7 @@ { "info_object": { "fallback_name": null, - "unique_id": "04:87:27:ff:fe:4a:b3:25-1-0-lqi", + "unique_id": "ab:cd:ef:12:43:1a:e3:7a-1-0-lqi", "migrate_unique_ids": [], "platform": "sensor", "class_name": "LQISensor", @@ -360,7 +275,7 @@ "entity_registry_enabled_default": false, "enabled": true, "primary": false, - "device_ieee": "04:87:27:ff:fe:4a:b3:25", + "device_ieee": "ab:cd:ef:12:43:1a:e3:7a", "endpoint_id": 1, "available": true, "group_id": null, @@ -376,7 +291,7 @@ { "info_object": { "fallback_name": null, - "unique_id": "04:87:27:ff:fe:4a:b3:25-1-0-rssi", + "unique_id": "ab:cd:ef:12:43:1a:e3:7a-1-0-rssi", "migrate_unique_ids": [], "platform": "sensor", "class_name": "RSSISensor", @@ -388,7 +303,7 @@ "entity_registry_enabled_default": false, "enabled": true, "primary": false, - "device_ieee": "04:87:27:ff:fe:4a:b3:25", + "device_ieee": "ab:cd:ef:12:43:1a:e3:7a", "endpoint_id": 1, "available": true, "group_id": null, @@ -404,7 +319,7 @@ { "info_object": { "fallback_name": null, - "unique_id": "04:87:27:ff:fe:4a:b3:25-1-1", + "unique_id": "ab:cd:ef:12:43:1a:e3:7a-1-1", "migrate_unique_ids": [], "platform": "sensor", "class_name": "Battery", @@ -416,7 +331,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "04:87:27:ff:fe:4a:b3:25", + "device_ieee": "ab:cd:ef:12:43:1a:e3:7a", "endpoint_id": 1, "available": true, "group_id": null, @@ -426,10 +341,7 @@ "state": { "class_name": "Battery", "available": true, - "state": 100.0, - "battery_size": "AAA", - "battery_quantity": 1, - "battery_voltage": 1.6 + "state": null }, "extra_state_attributes": [ "battery_quantity", @@ -442,7 +354,7 @@ { "info_object": { "fallback_name": null, - "unique_id": "04:87:27:ff:fe:4a:b3:25-1-25-firmware_update", + "unique_id": "ab:cd:ef:12:43:1a:e3:7a-1-25-firmware_update", "migrate_unique_ids": [], "platform": "update", "class_name": "FirmwareUpdateEntity", @@ -454,7 +366,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "04:87:27:ff:fe:4a:b3:25", + "device_ieee": "ab:cd:ef:12:43:1a:e3:7a", "endpoint_id": 1, "available": true, "group_id": null, diff --git a/tests/data/legacy_devices/ikea-of-sweden-remote-control-n2.json b/tests/data/legacy_devices/ikea-of-sweden-remote-control-n2.json index 29f69c73a..4082451d1 100644 --- a/tests/data/legacy_devices/ikea-of-sweden-remote-control-n2.json +++ b/tests/data/legacy_devices/ikea-of-sweden-remote-control-n2.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:40.750920+00:00", + "last_seen": "2024-08-27T01:21:30+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -144,47 +144,6 @@ ] } }, - "original_signature": { - "manufacturer": "IKEA of Sweden", - "model": "Remote Control N2", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4476, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0820", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0020", - "0x1000", - "0xfc57" - ], - "output_clusters": [ - "0x0003", - "0x0005", - "0x0006", - "0x0008", - "0x0019", - "0x1000" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/ikea-of-sweden-tradfri-bulb-e14-ws-globe-470lm-0x01010020.json b/tests/data/legacy_devices/ikea-of-sweden-tradfri-bulb-e14-ws-globe-470lm-0x01010020.json index 0b92b343c..2bf13a239 100644 --- a/tests/data/legacy_devices/ikea-of-sweden-tradfri-bulb-e14-ws-globe-470lm-0x01010020.json +++ b/tests/data/legacy_devices/ikea-of-sweden-tradfri-bulb-e14-ws-globe-470lm-0x01010020.json @@ -254,55 +254,6 @@ ] } }, - "original_signature": { - "manufacturer": "IKEA of Sweden", - "model": "TRADFRI bulb E14 WS globe 470lm", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4476, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x010c", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0300", - "0x1000", - "0xfc7c" - ], - "output_clusters": [ - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [ - "0x0021" - ], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/ikea-of-sweden-tradfri-bulb-e27-ws-globe-1055lm-0x02040005.json b/tests/data/legacy_devices/ikea-of-sweden-tradfri-bulb-e27-ws-globe-1055lm-0x02040005.json index eaae510f3..fb3c39868 100644 --- a/tests/data/legacy_devices/ikea-of-sweden-tradfri-bulb-e27-ws-globe-1055lm-0x02040005.json +++ b/tests/data/legacy_devices/ikea-of-sweden-tradfri-bulb-e27-ws-globe-1055lm-0x02040005.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:23.771779+00:00", + "last_seen": "2024-06-08T17:00:16", "available": true, "device_type": "Router", "active_coordinator": false, @@ -271,54 +271,6 @@ ] } }, - "original_signature": { - "manufacturer": "IKEA of Sweden", - "model": "TRADFRI bulb E27 WS globe 1055lm", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4476, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x010c", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0300", - "0x1000", - "0xfc57", - "0xfc7c" - ], - "output_clusters": [ - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/ikea-of-sweden-tradfri-bulb-e27-ww-g95-cl-470lm-0x00011006.json b/tests/data/legacy_devices/ikea-of-sweden-tradfri-bulb-e27-ww-g95-cl-470lm-0x00011006.json index e876bd3c2..5a995fd64 100644 --- a/tests/data/legacy_devices/ikea-of-sweden-tradfri-bulb-e27-ww-g95-cl-470lm-0x00011006.json +++ b/tests/data/legacy_devices/ikea-of-sweden-tradfri-bulb-e27-ww-g95-cl-470lm-0x00011006.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:44.605639+00:00", + "last_seen": "2024-11-10T00:59:32", "available": true, "device_type": "Router", "active_coordinator": false, @@ -187,53 +187,6 @@ ] } }, - "original_signature": { - "manufacturer": "IKEA of Sweden", - "model": "TRADFRI bulb E27 WW G95 CL 470lm", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4476, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0101", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x1000", - "0xfc57", - "0xfc7c" - ], - "output_clusters": [ - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/ikea-of-sweden-tradfri-bulb-gu10-ww-345lm8.json b/tests/data/legacy_devices/ikea-of-sweden-tradfri-bulb-gu10-ww-345lm8.json index aaaafdefe..c166ec664 100644 --- a/tests/data/legacy_devices/ikea-of-sweden-tradfri-bulb-gu10-ww-345lm8.json +++ b/tests/data/legacy_devices/ikea-of-sweden-tradfri-bulb-gu10-ww-345lm8.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:20.983681+00:00", + "last_seen": "2023-11-21T17:47:37", "available": true, "device_type": "Router", "active_coordinator": false, @@ -181,54 +181,6 @@ ] } }, - "original_signature": { - "manufacturer": "IKEA of Sweden", - "model": "\u001aTRADFRI bulb GU10 WW 345lm8", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4476, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0101", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x1000", - "0xfc7c" - ], - "output_clusters": [ - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [ - "0x0021" - ], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/ikea-of-sweden-tradfri-motion-sensor.json b/tests/data/legacy_devices/ikea-of-sweden-tradfri-motion-sensor.json index 1c5b09502..3cff0b0fa 100644 --- a/tests/data/legacy_devices/ikea-of-sweden-tradfri-motion-sensor.json +++ b/tests/data/legacy_devices/ikea-of-sweden-tradfri-motion-sensor.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-04-29T19:02:49.078223+00:00", + "last_seen": "2023-05-06T15:31:30+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -162,48 +162,6 @@ ] } }, - "original_signature": { - "manufacturer": "IKEA of Sweden", - "model": "TRADFRI motion sensor", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4476, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0850", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0009", - "0x0020", - "0x1000", - "0xfc7c" - ], - "output_clusters": [ - "0x0003", - "0x0004", - "0x0006", - "0x0008", - "0x0019", - "0x1000" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/ikea-of-sweden-tradfri-shortcut-button.json b/tests/data/legacy_devices/ikea-of-sweden-tradfri-shortcut-button.json index 707b5eadb..d60bf7ec6 100644 --- a/tests/data/legacy_devices/ikea-of-sweden-tradfri-shortcut-button.json +++ b/tests/data/legacy_devices/ikea-of-sweden-tradfri-shortcut-button.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:59.202151+00:00", + "last_seen": "2023-11-07T07:18:55", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -157,47 +157,6 @@ ] } }, - "original_signature": { - "manufacturer": "IKEA of Sweden", - "model": "TRADFRI SHORTCUT Button", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4476, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0820", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0009", - "0x0020", - "0x1000" - ], - "output_clusters": [ - "0x0003", - "0x0004", - "0x0006", - "0x0008", - "0x0019", - "0x1000" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/imagic-by-greatstar-1112-s.json b/tests/data/legacy_devices/imagic-by-greatstar-1112-s.json index 518afe582..301bb1ed2 100644 --- a/tests/data/legacy_devices/imagic-by-greatstar-1112-s.json +++ b/tests/data/legacy_devices/imagic-by-greatstar-1112-s.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:32.777259+00:00", + "last_seen": "2024-01-22T16:11:48", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -209,49 +209,6 @@ ] } }, - "original_signature": { - "manufacturer": "iMagic by GreatStar", - "model": "1112-S", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4667, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0402", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0020", - "0x0402", - "0x0405", - "0x0500", - "0x0501", - "0x0b05", - "0xfc01", - "0xfc02" - ], - "output_clusters": [ - "0x0003", - "0x0019", - "0x0501" - ] - } - } - }, "zha_lib_entities": { "alarm_control_panel": [ { diff --git a/tests/data/legacy_devices/innr-rs-232-c-0x22151511.json b/tests/data/legacy_devices/innr-rs-232-c-0x22151511.json index 6834a9aa9..ec20f6489 100644 --- a/tests/data/legacy_devices/innr-rs-232-c-0x22151511.json +++ b/tests/data/legacy_devices/innr-rs-232-c-0x22151511.json @@ -253,54 +253,6 @@ ] } }, - "original_signature": { - "manufacturer": "innr", - "model": "RS 232 C", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4454, - "maximum_buffer_size": 127, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x010d", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0300", - "0x1000", - "0xfc57", - "0xfc82" - ], - "output_clusters": [ - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/innr-sp-240-0x191e3685.json b/tests/data/legacy_devices/innr-sp-240-0x191e3685.json index 47989dd36..74be55bc3 100644 --- a/tests/data/legacy_devices/innr-sp-240-0x191e3685.json +++ b/tests/data/legacy_devices/innr-sp-240-0x191e3685.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:08:52.940544+00:00", + "last_seen": "2025-02-13T03:56:00+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -523,55 +523,6 @@ ] } }, - "original_signature": { - "manufacturer": "innr", - "model": "SP 240", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4454, - "maximum_buffer_size": 74, - "maximum_incoming_transfer_size": 80, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 80, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x010a", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0702", - "0x0b04", - "0x1000", - "0xe001" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/innr-sp-242-0x17173685.json b/tests/data/legacy_devices/innr-sp-242-0x17173685.json index 15626e143..0d11697ca 100644 --- a/tests/data/legacy_devices/innr-sp-242-0x17173685.json +++ b/tests/data/legacy_devices/innr-sp-242-0x17173685.json @@ -511,55 +511,6 @@ ] } }, - "original_signature": { - "manufacturer": "innr", - "model": "SP 242", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4454, - "maximum_buffer_size": 74, - "maximum_incoming_transfer_size": 80, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 80, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x010a", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0702", - "0x0b04", - "0x1000", - "0xe001" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/lds-zb-onoffplug-d0005-0x21186230.json b/tests/data/legacy_devices/lds-zb-onoffplug-d0005-0x21186230.json index d8d945965..4574438ac 100644 --- a/tests/data/legacy_devices/lds-zb-onoffplug-d0005-0x21186230.json +++ b/tests/data/legacy_devices/lds-zb-onoffplug-d0005-0x21186230.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-04-29T19:02:50.190712+00:00", + "last_seen": "2024-09-08T11:14:50", "available": true, "device_type": "Router", "active_coordinator": false, @@ -337,54 +337,6 @@ ] } }, - "original_signature": { - "manufacturer": "LDS", - "model": "ZB-ONOFFPlug-D0005", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4456, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0702", - "0x0b04", - "0xfc82" - ], - "output_clusters": [ - "0x0003", - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/ledvance-a60s-rgbw-0x02146550.json b/tests/data/legacy_devices/ledvance-a60s-rgbw-0x02146550.json index 459520f37..d8f980f93 100644 --- a/tests/data/legacy_devices/ledvance-a60s-rgbw-0x02146550.json +++ b/tests/data/legacy_devices/ledvance-a60s-rgbw-0x02146550.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:58.989436+00:00", + "last_seen": "2024-06-16T18:22:09", "available": true, "device_type": "Router", "active_coordinator": false, @@ -630,53 +630,6 @@ ] } }, - "original_signature": { - "manufacturer": "LEDVANCE", - "model": "A60S RGBW", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4489, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x010d", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0300", - "0x0b05", - "0x1000" - ], - "output_clusters": [ - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/legrand-contactor.json b/tests/data/legacy_devices/legrand-contactor.json index 76377372d..c54c4d213 100644 --- a/tests/data/legacy_devices/legrand-contactor.json +++ b/tests/data/legacy_devices/legrand-contactor.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:39.056228+00:00", + "last_seen": "2024-08-31T18:45:11", "available": true, "device_type": "Router", "active_coordinator": false, @@ -467,59 +467,6 @@ ] } }, - "original_signature": { - "manufacturer": " Legrand", - "model": " Contactor", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 1, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4129, - "maximum_buffer_size": 89, - "maximum_incoming_transfer_size": 63, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 63, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x010a", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x000f", - "0x0b04", - "0xfc01", - "0xfc41" - ], - "output_clusters": [ - "0x0000", - "0x0005", - "0x0006", - "0x0019", - "0xfc01" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0066", - "input_clusters": [ - "0x0021" - ], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/legrand-double-gangs-remote-switch.json b/tests/data/legacy_devices/legrand-double-gangs-remote-switch.json index 8688f9caa..b3d5b8982 100644 --- a/tests/data/legacy_devices/legrand-double-gangs-remote-switch.json +++ b/tests/data/legacy_devices/legrand-double-gangs-remote-switch.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:43.398527+00:00", + "last_seen": "2024-09-28T14:44:47+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -202,60 +202,6 @@ ] } }, - "original_signature": { - "manufacturer": " Legrand", - "model": " Double gangs remote switch", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 1, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4129, - "maximum_buffer_size": 89, - "maximum_incoming_transfer_size": 63, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 63, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0104", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x000f", - "0x0020", - "0xfc01" - ], - "output_clusters": [ - "0x0000", - "0x0003", - "0x0006", - "0x0008", - "0x0019", - "0xfc01" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0104", - "input_clusters": [ - "0x0003", - "0x000f" - ], - "output_clusters": [ - "0x0003", - "0x0006", - "0x0008" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/legrand-light-switch-with-neutral-0x001c4203.json b/tests/data/legacy_devices/legrand-light-switch-with-neutral-0x001c4203.json index 4a90c7089..fffded6af 100644 --- a/tests/data/legacy_devices/legrand-light-switch-with-neutral-0x001c4203.json +++ b/tests/data/legacy_devices/legrand-light-switch-with-neutral-0x001c4203.json @@ -178,58 +178,6 @@ ] } }, - "original_signature": { - "manufacturer": " Legrand", - "model": " Light switch with neutral", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 1, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4129, - "maximum_buffer_size": 89, - "maximum_incoming_transfer_size": 63, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 63, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x000f", - "0xfc01" - ], - "output_clusters": [ - "0x0000", - "0x0005", - "0x0006", - "0x0019", - "0x0102", - "0xfc01" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0066", - "input_clusters": [ - "0x0021" - ], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/legrand-light-switch-with-neutral.json b/tests/data/legacy_devices/legrand-light-switch-with-neutral.json index 8e2c9808c..a3dc7cc3e 100644 --- a/tests/data/legacy_devices/legrand-light-switch-with-neutral.json +++ b/tests/data/legacy_devices/legrand-light-switch-with-neutral.json @@ -249,58 +249,6 @@ ] } }, - "original_signature": { - "manufacturer": " Legrand", - "model": " Light switch with neutral", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 1, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4129, - "maximum_buffer_size": 89, - "maximum_incoming_transfer_size": 63, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 63, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x000f", - "0xfc01" - ], - "output_clusters": [ - "0x0000", - "0x0005", - "0x0006", - "0x0019", - "0x0102", - "0xfc01" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0066", - "input_clusters": [ - "0x0021" - ], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/legrand-mobile-outlet-0x006545ff.json b/tests/data/legacy_devices/legrand-mobile-outlet-0x006545ff.json index b44c140e7..febedf529 100644 --- a/tests/data/legacy_devices/legrand-mobile-outlet-0x006545ff.json +++ b/tests/data/legacy_devices/legrand-mobile-outlet-0x006545ff.json @@ -560,58 +560,6 @@ ] } }, - "original_signature": { - "manufacturer": " Legrand", - "model": " Mobile outlet", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 1, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4129, - "maximum_buffer_size": 89, - "maximum_incoming_transfer_size": 63, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 63, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x010a", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x000f", - "0x0b04", - "0xfc01" - ], - "output_clusters": [ - "0x0000", - "0x0005", - "0x0006", - "0x0019", - "0xfc01" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0066", - "input_clusters": [ - "0x0021" - ], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/lumi-lumi-airrtc-agl001-0x0000001e.json b/tests/data/legacy_devices/lumi-lumi-airrtc-agl001-0x0000001e.json index b56583389..2d8274603 100644 --- a/tests/data/legacy_devices/lumi-lumi-airrtc-agl001-0x0000001e.json +++ b/tests/data/legacy_devices/lumi-lumi-airrtc-agl001-0x0000001e.json @@ -1,20 +1,20 @@ { "version": 2, "ieee": "ab:cd:ef:12:ce:61:df:4c", - "nwk": "0xF049", + "nwk": "0x7E61", "manufacturer": "LUMI", "model": "lumi.airrtc.agl001", "friendly_manufacturer": "LUMI", "friendly_model": "lumi.airrtc.agl001", "name": "LUMI lumi.airrtc.agl001", - "quirk_applied": true, - "quirk_class": "zhaquirks.xiaomi.aqara.thermostat_agl001:AGL001", + "quirk_applied": false, + "quirk_class": "zigpy.device.Device", "exposes_features": [], "manufacturer_code": 4447, "power_source": "Battery or Unknown", - "lqi": 140, - "rssi": -65, - "last_seen": "2026-01-14T04:37:29.927773+00:00", + "lqi": null, + "rssi": null, + "last_seen": "2024-09-19T07:47:33", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -45,12 +45,6 @@ "cluster_id": "0x0000", "endpoint_attribute": "basic", "attributes": [ - { - "id": "0x0006", - "name": "date_code", - "zcl_type": "string", - "value": "Feb 20 2023" - }, { "id": "0x0004", "name": "manufacturer", @@ -62,12 +56,6 @@ "name": "model", "zcl_type": "string", "value": "lumi.airrtc.agl001" - }, - { - "id": "0x4000", - "name": "sw_build_id", - "zcl_type": "string", - "value": "0.0.0_0030" } ] }, @@ -79,7 +67,7 @@ "id": "0x0021", "name": "battery_percentage_remaining", "zcl_type": "uint8", - "value": 200 + "unsupported": true }, { "id": "0x0033", @@ -92,6 +80,12 @@ "name": "battery_size", "zcl_type": "enum8", "value": 10 + }, + { + "id": "0x0020", + "name": "battery_voltage", + "zcl_type": "uint8", + "unsupported": true } ] }, @@ -143,7 +137,7 @@ "id": "0x0000", "name": "local_temperature", "zcl_type": "int16", - "value": 2090 + "value": 2170 }, { "id": "0x0010", @@ -175,6 +169,12 @@ "zcl_type": "int16", "unsupported": true }, + { + "id": "0x0002", + "name": "occupancy", + "zcl_type": "map8", + "unsupported": true + }, { "id": "0x0011", "name": "occupied_cooling_setpoint", @@ -185,7 +185,31 @@ "id": "0x0012", "name": "occupied_heating_setpoint", "zcl_type": "int16", - "value": 2300 + "value": 2000 + }, + { + "id": "0x0007", + "name": "pi_cooling_demand", + "zcl_type": "uint8", + "unsupported": true + }, + { + "id": "0x0008", + "name": "pi_heating_demand", + "zcl_type": "uint8", + "unsupported": true + }, + { + "id": "0x001e", + "name": "running_mode", + "zcl_type": "enum8", + "unsupported": true + }, + { + "id": "0x0029", + "name": "running_state", + "zcl_type": "map16", + "unsupported": true }, { "id": "0x0030", @@ -215,90 +239,8 @@ }, { "cluster_id": "0xfcc0", - "endpoint_attribute": "opple_cluster", - "attributes": [ - { - "id": "0x0279", - "name": "away_preset_temperature", - "zcl_type": "uint32", - "value": 1500 - }, - { - "id": "0x040a", - "name": "battery_percentage", - "zcl_type": "uint8", - "value": 100 - }, - { - "id": "0x027b", - "name": "calibrated", - "zcl_type": "uint8", - "value": 1 - }, - { - "id": "0x0277", - "name": "child_lock", - "zcl_type": "uint8", - "value": 0 - }, - { - "id": "0x0272", - "name": "preset", - "zcl_type": "uint8", - "value": 0 - }, - { - "id": "0x027d", - "name": "schedule", - "zcl_type": "uint8", - "value": 0 - }, - { - "id": "0x0276", - "name": "schedule_settings", - "zcl_type": "octstr", - "value": { - "__type": "", - "repr": "b'\\x04>\\x01\\xe0\\x00\\x00\\t`\\x048\\x00\\x00\\x06\\xa4\\x05d\\x00\\x00\\x08\\x98\\x81\\xe0\\x00\\x00\\x08\\x98'" - } - }, - { - "id": "0x027e", - "name": "sensor", - "zcl_type": "uint8", - "value": 0 - }, - { - "id": "0x0271", - "name": "system_mode", - "zcl_type": "uint8", - "value": 1 - }, - { - "id": "0x0275", - "name": "valve_alarm", - "zcl_type": "uint8", - "value": 0 - }, - { - "id": "0x0274", - "name": "valve_detection", - "zcl_type": "uint8", - "value": 0 - }, - { - "id": "0x0273", - "name": "window_detection", - "zcl_type": "uint8", - "value": 1 - }, - { - "id": "0x027a", - "name": "window_open", - "zcl_type": "uint8", - "value": 0 - } - ] + "endpoint_attribute": "manufacturer_specific", + "attributes": [] } ], "out_clusters": [ @@ -333,161 +275,13 @@ }, { "cluster_id": "0xfcc0", - "endpoint_attribute": "opple_cluster", + "endpoint_attribute": "manufacturer_specific", "attributes": [] } ] } }, - "original_signature": { - "manufacturer": "LUMI", - "model": "lumi.airrtc.agl001", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4447, - "maximum_buffer_size": 127, - "maximum_incoming_transfer_size": 100, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 100, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0301", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0201", - "0x000a", - "0x0001", - "0xfcc0" - ], - "output_clusters": [ - "0x0003", - "0x0201", - "0xfcc0" - ] - } - } - }, "zha_lib_entities": { - "binary_sensor": [ - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:ce:61:df:4c-1-64704-calibrated", - "migrate_unique_ids": [], - "platform": "binary_sensor", - "class_name": "AqaraThermostatCalibrated", - "translation_key": "calibrated", - "translation_placeholders": null, - "device_class": null, - "state_class": null, - "entity_category": "diagnostic", - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:ce:61:df:4c", - "endpoint_id": 1, - "available": true, - "group_id": null, - "attribute_name": "calibrated" - }, - "state": { - "class_name": "AqaraThermostatCalibrated", - "available": true, - "state": true - } - }, - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:ce:61:df:4c-1-64704-sensor", - "migrate_unique_ids": [], - "platform": "binary_sensor", - "class_name": "AqaraThermostatExternalSensor", - "translation_key": "external_sensor", - "translation_placeholders": null, - "device_class": null, - "state_class": null, - "entity_category": "diagnostic", - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:ce:61:df:4c", - "endpoint_id": 1, - "available": true, - "group_id": null, - "attribute_name": "sensor" - }, - "state": { - "class_name": "AqaraThermostatExternalSensor", - "available": true, - "state": false - } - }, - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:ce:61:df:4c-1-64704-valve_alarm", - "migrate_unique_ids": [], - "platform": "binary_sensor", - "class_name": "AqaraThermostatValveAlarm", - "translation_key": "valve_alarm", - "translation_placeholders": null, - "device_class": "problem", - "state_class": null, - "entity_category": null, - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:ce:61:df:4c", - "endpoint_id": 1, - "available": true, - "group_id": null, - "attribute_name": "valve_alarm" - }, - "state": { - "class_name": "AqaraThermostatValveAlarm", - "available": true, - "state": false - } - }, - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:ce:61:df:4c-1-64704-window_open", - "migrate_unique_ids": [], - "platform": "binary_sensor", - "class_name": "AqaraThermostatWindowOpen", - "translation_key": null, - "translation_placeholders": null, - "device_class": "window", - "state_class": null, - "entity_category": null, - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:ce:61:df:4c", - "endpoint_id": 1, - "available": true, - "group_id": null, - "attribute_name": "window_open" - }, - "state": { - "class_name": "AqaraThermostatWindowOpen", - "available": true, - "state": false - } - } - ], "button": [ { "info_object": { @@ -553,9 +347,9 @@ "state": { "class_name": "Thermostat", "available": true, - "current_temperature": 20.9, + "current_temperature": 21.7, "outdoor_temperature": null, - "target_temperature": 23.0, + "target_temperature": 20.0, "target_temperature_high": null, "target_temperature_low": null, "hvac_action": null, @@ -565,7 +359,7 @@ "system_mode": "[4]/heat", "occupancy": null, "occupied_cooling_setpoint": 2600, - "occupied_heating_setpoint": 2300, + "occupied_heating_setpoint": 2000, "pi_heating_demand": null, "pi_cooling_demand": null, "unoccupied_cooling_setpoint": null, @@ -583,73 +377,6 @@ ] } ], - "number": [ - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:ce:61:df:4c-1-64704-away_preset_temperature", - "migrate_unique_ids": [], - "platform": "number", - "class_name": "AqaraThermostatAwayTemp", - "translation_key": "away_preset_temperature", - "translation_placeholders": null, - "device_class": null, - "state_class": null, - "entity_category": "config", - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:ce:61:df:4c", - "endpoint_id": 1, - "available": true, - "group_id": null, - "mode": "slider", - "native_max_value": 30, - "native_min_value": 5, - "native_step": 1.0, - "native_unit_of_measurement": "\u00b0C" - }, - "state": { - "class_name": "AqaraThermostatAwayTemp", - "available": true, - "state": 15.0 - } - } - ], - "select": [ - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:ce:61:df:4c-1-64704-preset", - "migrate_unique_ids": [], - "platform": "select", - "class_name": "AqaraThermostatPreset", - "translation_key": "preset", - "translation_placeholders": null, - "device_class": null, - "state_class": null, - "entity_category": "config", - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:ce:61:df:4c", - "endpoint_id": 1, - "available": true, - "group_id": null, - "enum": "AqaraThermostatPresetMode", - "options": [ - "Manual", - "Auto", - "Away" - ] - }, - "state": { - "class_name": "AqaraThermostatPreset", - "available": true, - "state": "Manual" - } - } - ], "sensor": [ { "info_object": { @@ -676,7 +403,7 @@ "state": { "class_name": "LQISensor", "available": true, - "state": 140 + "state": null } }, { @@ -704,7 +431,7 @@ "state": { "class_name": "RSSISensor", "available": true, - "state": -65 + "state": null } }, { @@ -732,7 +459,7 @@ "state": { "class_name": "Battery", "available": true, - "state": 100.0, + "state": null, "battery_size": "CR2032", "battery_quantity": 1 }, @@ -770,34 +497,6 @@ "state": null } }, - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:ce:61:df:4c-1-513-pi_heating_demand", - "migrate_unique_ids": [], - "platform": "sensor", - "class_name": "PiHeatingDemand", - "translation_key": "pi_heating_demand", - "translation_placeholders": null, - "device_class": null, - "state_class": "measurement", - "entity_category": "diagnostic", - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:ce:61:df:4c", - "endpoint_id": 1, - "available": true, - "group_id": null, - "suggested_display_precision": 0, - "unit": "%" - }, - "state": { - "class_name": "PiHeatingDemand", - "available": true, - "state": null - } - }, { "info_object": { "fallback_name": null, @@ -827,104 +526,6 @@ } } ], - "switch": [ - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:ce:61:df:4c-1-64704-child_lock", - "migrate_unique_ids": [], - "platform": "switch", - "class_name": "AqaraThermostatChildLock", - "translation_key": "child_lock", - "translation_placeholders": null, - "device_class": null, - "state_class": null, - "entity_category": "config", - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:ce:61:df:4c", - "endpoint_id": 1, - "available": true, - "group_id": null, - "attribute_name": "child_lock", - "invert_attribute_name": null, - "force_inverted": false, - "off_value": 0, - "on_value": 1 - }, - "state": { - "class_name": "AqaraThermostatChildLock", - "available": true, - "state": false, - "inverted": false - } - }, - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:ce:61:df:4c-1-64704-valve_detection", - "migrate_unique_ids": [], - "platform": "switch", - "class_name": "AqaraThermostatValveDetection", - "translation_key": "valve_detection", - "translation_placeholders": null, - "device_class": null, - "state_class": null, - "entity_category": "config", - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:ce:61:df:4c", - "endpoint_id": 1, - "available": true, - "group_id": null, - "attribute_name": "valve_detection", - "invert_attribute_name": null, - "force_inverted": false, - "off_value": 0, - "on_value": 1 - }, - "state": { - "class_name": "AqaraThermostatValveDetection", - "available": true, - "state": false, - "inverted": false - } - }, - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:ce:61:df:4c-1-64704-window_detection", - "migrate_unique_ids": [], - "platform": "switch", - "class_name": "AqaraThermostatWindowDetection", - "translation_key": "window_detection", - "translation_placeholders": null, - "device_class": null, - "state_class": null, - "entity_category": "config", - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:ce:61:df:4c", - "endpoint_id": 1, - "available": true, - "group_id": null, - "attribute_name": "window_detection", - "invert_attribute_name": null, - "force_inverted": false, - "off_value": 0, - "on_value": 1 - }, - "state": { - "class_name": "AqaraThermostatWindowDetection", - "available": true, - "state": true, - "inverted": false - } - } - ], "update": [ { "info_object": { diff --git a/tests/data/legacy_devices/lumi-lumi-ctrl-neutral2.json b/tests/data/legacy_devices/lumi-lumi-ctrl-neutral2.json index 0aa494542..391451117 100644 --- a/tests/data/legacy_devices/lumi-lumi-ctrl-neutral2.json +++ b/tests/data/legacy_devices/lumi-lumi-ctrl-neutral2.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:20.881630+00:00", + "last_seen": "2024-12-02T20:53:52", "available": true, "device_type": "Router", "active_coordinator": false, @@ -245,84 +245,6 @@ "out_clusters": [] } }, - "original_signature": { - "manufacturer": "LUMI", - "model": "lumi.ctrl_neutral2", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 132, - "manufacturer_code": 4151, - "maximum_buffer_size": 127, - "maximum_incoming_transfer_size": 100, - "server_mask": 1, - "maximum_outgoing_transfer_size": 100, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0006", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0002", - "0x0003", - "0x000a", - "0x0019" - ], - "output_clusters": [ - "0x0000", - "0x000a", - "0x0019" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0000", - "input_clusters": [ - "0x0004", - "0x0005", - "0x0006", - "0x0010" - ], - "output_clusters": [] - }, - "3": { - "profile_id": "0x0104", - "device_type": "0x0000", - "input_clusters": [ - "0x0004", - "0x0005", - "0x0006", - "0x0010" - ], - "output_clusters": [] - }, - "4": { - "profile_id": "0x0104", - "device_type": "0x0000", - "input_clusters": [ - "0x0006", - "0x0012" - ], - "output_clusters": [] - }, - "5": { - "profile_id": "0x0104", - "device_type": "0x0000", - "input_clusters": [ - "0x0006", - "0x0012" - ], - "output_clusters": [] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/lumi-lumi-curtain-acn002-0x00000e1f.json b/tests/data/legacy_devices/lumi-lumi-curtain-acn002-0x00000e1f.json index 7f995e71d..3eec5cc51 100644 --- a/tests/data/legacy_devices/lumi-lumi-curtain-acn002-0x00000e1f.json +++ b/tests/data/legacy_devices/lumi-lumi-curtain-acn002-0x00000e1f.json @@ -334,57 +334,6 @@ ] } }, - "original_signature": { - "manufacturer": "LUMI", - "model": "lumi.curtain.acn002", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4447, - "maximum_buffer_size": 127, - "maximum_incoming_transfer_size": 100, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 100, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0002", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0009", - "0x000d", - "0x0013", - "0x0102", - "0xfcc0" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/lumi-lumi-curtain-acn003.json b/tests/data/legacy_devices/lumi-lumi-curtain-acn003.json index 83a9fba42..3b6abf60a 100644 --- a/tests/data/legacy_devices/lumi-lumi-curtain-acn003.json +++ b/tests/data/legacy_devices/lumi-lumi-curtain-acn003.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T00:56:57.659138+00:00", + "last_seen": "2023-12-24T12:25:21", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -147,45 +147,6 @@ ] } }, - "original_signature": { - "manufacturer": "LUMI", - "model": "lumi.curtain.acn003", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4447, - "maximum_buffer_size": 127, - "maximum_incoming_transfer_size": 100, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 100, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0202", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x000a", - "0x0102", - "0x0400", - "0xfcc0" - ], - "output_clusters": [ - "0x0003", - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/lumi-lumi-curtain-hagl04.json b/tests/data/legacy_devices/lumi-lumi-curtain-hagl04.json index 9bb233268..77326d227 100644 --- a/tests/data/legacy_devices/lumi-lumi-curtain-hagl04.json +++ b/tests/data/legacy_devices/lumi-lumi-curtain-hagl04.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:59.278837+00:00", + "last_seen": "2023-07-16T22:45:33", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -223,43 +223,6 @@ ] } }, - "original_signature": { - "manufacturer": "LUMI", - "model": "lumi.curtain.hagl04", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 132, - "manufacturer_code": 4447, - "maximum_buffer_size": 127, - "maximum_incoming_transfer_size": 100, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 100, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0202", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x000d", - "0x0013", - "0x0102" - ], - "output_clusters": [ - "0x0003", - "0x000a" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/lumi-lumi-motion-agl04-0x00000019.json b/tests/data/legacy_devices/lumi-lumi-motion-agl04-0x00000019.json index 331a95bcf..7d169dae4 100644 --- a/tests/data/legacy_devices/lumi-lumi-motion-agl04-0x00000019.json +++ b/tests/data/legacy_devices/lumi-lumi-motion-agl04-0x00000019.json @@ -1,20 +1,20 @@ { "version": 2, - "ieee": "54:ef:44:10:00:40:a2:bb", - "nwk": "0x82FC", + "ieee": "ab:cd:ef:12:33:10:e2:d2", + "nwk": "0x4696", "manufacturer": "LUMI", "model": "lumi.motion.agl04", "friendly_manufacturer": "LUMI", "friendly_model": "lumi.motion.agl04", "name": "LUMI lumi.motion.agl04", - "quirk_applied": true, - "quirk_class": "zhaquirks.xiaomi.aqara.motion_agl04:LumiLumiMotionAgl04", + "quirk_applied": false, + "quirk_class": "zigpy.device.Device", "exposes_features": [], "manufacturer_code": 4447, "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-04-24T17:34:09.281146+00:00", + "last_seen": "2025-03-29T18:27:46", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -45,6 +45,12 @@ "cluster_id": "0x0000", "endpoint_attribute": "basic", "attributes": [ + { + "id": "0x0001", + "name": "app_version", + "zcl_type": "uint8", + "value": 25 + }, { "id": "0x0004", "name": "manufacturer", @@ -67,7 +73,7 @@ "id": "0x0021", "name": "battery_percentage_remaining", "zcl_type": "uint8", - "value": 200 + "value": 131 }, { "id": "0x0033", @@ -85,7 +91,7 @@ "id": "0x0020", "name": "battery_voltage", "zcl_type": "uint8", - "value": 31.3 + "value": 30.0 } ] }, @@ -122,11 +128,26 @@ "cluster_id": "0x0500", "endpoint_attribute": "ias_zone", "attributes": [ + { + "id": "0x0010", + "name": "cie_addr", + "zcl_type": "EUI64", + "value": [ + 50, + 79, + 50, + 2, + 0, + 141, + 21, + 0 + ] + }, { "id": "0x0002", "name": "zone_status", "zcl_type": "map16", - "value": 0 + "value": 1 }, { "id": "0x0001", @@ -138,21 +159,8 @@ }, { "cluster_id": "0xfcc0", - "endpoint_attribute": "opple_cluster", - "attributes": [ - { - "id": "0x0102", - "name": "detection_interval", - "zcl_type": "uint8", - "value": 10 - }, - { - "id": "0x010c", - "name": "motion_sensitivity", - "zcl_type": "uint8", - "value": 3 - } - ] + "endpoint_attribute": "manufacturer_specific", + "attributes": [] } ], "out_clusters": [ @@ -176,47 +184,12 @@ ] } }, - "original_signature": { - "manufacturer": "LUMI", - "model": "lumi.motion.agl04", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4447, - "maximum_buffer_size": 127, - "maximum_incoming_transfer_size": 100, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 100, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0107", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0406" - ], - "output_clusters": [ - "0x0003", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { "info_object": { "fallback_name": null, - "unique_id": "54:ef:44:10:00:40:a2:bb-1-1030", + "unique_id": "ab:cd:ef:12:33:10:e2:d2-1-1030", "migrate_unique_ids": [], "platform": "binary_sensor", "class_name": "Occupancy", @@ -228,7 +201,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "54:ef:44:10:00:40:a2:bb", + "device_ieee": "ab:cd:ef:12:33:10:e2:d2", "endpoint_id": 1, "available": true, "group_id": null, @@ -243,7 +216,7 @@ { "info_object": { "fallback_name": null, - "unique_id": "54:ef:44:10:00:40:a2:bb-1-1280", + "unique_id": "ab:cd:ef:12:33:10:e2:d2-1-1280", "migrate_unique_ids": [], "platform": "binary_sensor", "class_name": "IASZone", @@ -255,7 +228,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": true, - "device_ieee": "54:ef:44:10:00:40:a2:bb", + "device_ieee": "ab:cd:ef:12:33:10:e2:d2", "endpoint_id": 1, "available": true, "group_id": null, @@ -264,7 +237,7 @@ "state": { "class_name": "IASZone", "available": true, - "state": false + "state": true } } ], @@ -272,7 +245,7 @@ { "info_object": { "fallback_name": null, - "unique_id": "54:ef:44:10:00:40:a2:bb-1-3", + "unique_id": "ab:cd:ef:12:33:10:e2:d2-1-3", "migrate_unique_ids": [], "platform": "button", "class_name": "IdentifyButton", @@ -284,7 +257,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "54:ef:44:10:00:40:a2:bb", + "device_ieee": "ab:cd:ef:12:33:10:e2:d2", "endpoint_id": 1, "available": true, "group_id": null, @@ -300,78 +273,11 @@ } } ], - "number": [ - { - "info_object": { - "fallback_name": null, - "unique_id": "54:ef:44:10:00:40:a2:bb-1-64704-detection_interval", - "migrate_unique_ids": [], - "platform": "number", - "class_name": "AqaraMotionDetectionInterval", - "translation_key": "detection_interval", - "translation_placeholders": null, - "device_class": null, - "state_class": null, - "entity_category": "config", - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "54:ef:44:10:00:40:a2:bb", - "endpoint_id": 1, - "available": true, - "group_id": null, - "mode": "auto", - "native_max_value": 65535, - "native_min_value": 2, - "native_step": 1.0, - "native_unit_of_measurement": null - }, - "state": { - "class_name": "AqaraMotionDetectionInterval", - "available": true, - "state": 10 - } - } - ], - "select": [ - { - "info_object": { - "fallback_name": null, - "unique_id": "54:ef:44:10:00:40:a2:bb-1-64704-motion_sensitivity", - "migrate_unique_ids": [], - "platform": "select", - "class_name": "AqaraMotionSensitivity", - "translation_key": "motion_sensitivity", - "translation_placeholders": null, - "device_class": null, - "state_class": null, - "entity_category": "config", - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "54:ef:44:10:00:40:a2:bb", - "endpoint_id": 1, - "available": true, - "group_id": null, - "enum": "AqaraMotionSensitivities", - "options": [ - "Low", - "Medium", - "High" - ] - }, - "state": { - "class_name": "AqaraMotionSensitivity", - "available": true, - "state": "High" - } - } - ], "sensor": [ { "info_object": { "fallback_name": null, - "unique_id": "54:ef:44:10:00:40:a2:bb-1-0-lqi", + "unique_id": "ab:cd:ef:12:33:10:e2:d2-1-0-lqi", "migrate_unique_ids": [], "platform": "sensor", "class_name": "LQISensor", @@ -383,7 +289,7 @@ "entity_registry_enabled_default": false, "enabled": true, "primary": false, - "device_ieee": "54:ef:44:10:00:40:a2:bb", + "device_ieee": "ab:cd:ef:12:33:10:e2:d2", "endpoint_id": 1, "available": true, "group_id": null, @@ -399,7 +305,7 @@ { "info_object": { "fallback_name": null, - "unique_id": "54:ef:44:10:00:40:a2:bb-1-0-rssi", + "unique_id": "ab:cd:ef:12:33:10:e2:d2-1-0-rssi", "migrate_unique_ids": [], "platform": "sensor", "class_name": "RSSISensor", @@ -411,7 +317,7 @@ "entity_registry_enabled_default": false, "enabled": true, "primary": false, - "device_ieee": "54:ef:44:10:00:40:a2:bb", + "device_ieee": "ab:cd:ef:12:33:10:e2:d2", "endpoint_id": 1, "available": true, "group_id": null, @@ -427,7 +333,7 @@ { "info_object": { "fallback_name": null, - "unique_id": "54:ef:44:10:00:40:a2:bb-1-1", + "unique_id": "ab:cd:ef:12:33:10:e2:d2-1-1", "migrate_unique_ids": [], "platform": "sensor", "class_name": "Battery", @@ -439,7 +345,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "54:ef:44:10:00:40:a2:bb", + "device_ieee": "ab:cd:ef:12:33:10:e2:d2", "endpoint_id": 1, "available": true, "group_id": null, @@ -449,10 +355,10 @@ "state": { "class_name": "Battery", "available": true, - "state": 100.0, + "state": 65.5, "battery_size": "CR1632", "battery_quantity": 1, - "battery_voltage": 3.13 + "battery_voltage": 3.0 }, "extra_state_attributes": [ "battery_quantity", @@ -463,7 +369,7 @@ { "info_object": { "fallback_name": null, - "unique_id": "54:ef:44:10:00:40:a2:bb-1-2", + "unique_id": "ab:cd:ef:12:33:10:e2:d2-1-2", "migrate_unique_ids": [], "platform": "sensor", "class_name": "DeviceTemperature", @@ -475,7 +381,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "54:ef:44:10:00:40:a2:bb", + "device_ieee": "ab:cd:ef:12:33:10:e2:d2", "endpoint_id": 1, "available": true, "group_id": null, @@ -493,7 +399,7 @@ { "info_object": { "fallback_name": null, - "unique_id": "54:ef:44:10:00:40:a2:bb-1-25-firmware_update", + "unique_id": "ab:cd:ef:12:33:10:e2:d2-1-25-firmware_update", "migrate_unique_ids": [], "platform": "update", "class_name": "FirmwareUpdateEntity", @@ -505,7 +411,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "54:ef:44:10:00:40:a2:bb", + "device_ieee": "ab:cd:ef:12:33:10:e2:d2", "endpoint_id": 1, "available": true, "group_id": null, diff --git a/tests/data/legacy_devices/lumi-lumi-plug-maeu01.json b/tests/data/legacy_devices/lumi-lumi-plug-maeu01.json index 2ddca4d8d..629103ea8 100644 --- a/tests/data/legacy_devices/lumi-lumi-plug-maeu01.json +++ b/tests/data/legacy_devices/lumi-lumi-plug-maeu01.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:39:39.348703+00:00", + "last_seen": "2023-08-18T13:22:01", "available": true, "device_type": "Router", "active_coordinator": false, @@ -326,63 +326,6 @@ ] } }, - "original_signature": { - "manufacturer": "LUMI", - "model": "lumi.plug.maeu01", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4447, - "maximum_buffer_size": 127, - "maximum_incoming_transfer_size": 100, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 100, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0002", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0009", - "0x0702", - "0x0b04", - "0xfcc0" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "21": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x000c" - ], - "output_clusters": [] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/lumi-lumi-remote-cagl02.json b/tests/data/legacy_devices/lumi-lumi-remote-cagl02.json index 1362872eb..4265d32f2 100644 --- a/tests/data/legacy_devices/lumi-lumi-remote-cagl02.json +++ b/tests/data/legacy_devices/lumi-lumi-remote-cagl02.json @@ -1,20 +1,20 @@ { "version": 2, - "ieee": "54:ef:44:10:00:14:f3:e7", - "nwk": "0x67CE", + "ieee": "ab:cd:ef:12:6c:02:d4:c2", + "nwk": "0x63F2", "manufacturer": "LUMI", "model": "lumi.remote.cagl02", "friendly_manufacturer": "LUMI", "friendly_model": "lumi.remote.cagl02", "name": "LUMI lumi.remote.cagl02", - "quirk_applied": true, - "quirk_class": "zhaquirks.xiaomi.aqara.cube_aqgl01:CubeCAGL02", + "quirk_applied": false, + "quirk_class": "zigpy.device.Device", "exposes_features": [], "manufacturer_code": 4447, "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-04-24T17:34:08.355505+00:00", + "last_seen": "2023-06-26T19:29:14", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -44,26 +44,7 @@ { "cluster_id": "0x0000", "endpoint_attribute": "basic", - "attributes": [ - { - "id": "0x0001", - "name": "app_version", - "zcl_type": "uint8", - "value": 22 - }, - { - "id": "0x0004", - "name": "manufacturer", - "zcl_type": "string", - "value": "LUMI" - }, - { - "id": "0x0005", - "name": "model", - "zcl_type": "string", - "value": "lumi.remote.cagl02" - } - ] + "attributes": [] }, { "cluster_id": "0x0001", @@ -91,7 +72,7 @@ "id": "0x0020", "name": "battery_voltage", "zcl_type": "uint8", - "value": 28 + "unsupported": true } ] }, @@ -144,7 +125,7 @@ "id": "0x0055", "name": "present_value", "zcl_type": "uint16", - "value": 0.0 + "value": 2.0 } ] } @@ -172,7 +153,7 @@ "id": "0x0055", "name": "present_value", "zcl_type": "single", - "value": 24.570003509521484 + "value": 4.000000476837158 } ] } @@ -186,69 +167,12 @@ ] } }, - "original_signature": { - "manufacturer": "LUMI", - "model": "lumi.remote.cagl02", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4447, - "maximum_buffer_size": 127, - "maximum_incoming_transfer_size": 100, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 100, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0103", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0006", - "0x0012" - ], - "output_clusters": [ - "0x0000", - "0x0003", - "0x0019" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0103", - "input_clusters": [ - "0x0012" - ], - "output_clusters": [ - "0x0012" - ] - }, - "3": { - "profile_id": "0x0104", - "device_type": "0x0103", - "input_clusters": [ - "0x000c" - ], - "output_clusters": [ - "0x000c" - ] - } - } - }, "zha_lib_entities": { "button": [ { "info_object": { "fallback_name": null, - "unique_id": "54:ef:44:10:00:14:f3:e7-1-3", + "unique_id": "ab:cd:ef:12:6c:02:d4:c2-1-3", "migrate_unique_ids": [], "platform": "button", "class_name": "IdentifyButton", @@ -260,7 +184,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "54:ef:44:10:00:14:f3:e7", + "device_ieee": "ab:cd:ef:12:6c:02:d4:c2", "endpoint_id": 1, "available": true, "group_id": null, @@ -280,7 +204,7 @@ { "info_object": { "fallback_name": null, - "unique_id": "54:ef:44:10:00:14:f3:e7-1-0-lqi", + "unique_id": "ab:cd:ef:12:6c:02:d4:c2-1-0-lqi", "migrate_unique_ids": [], "platform": "sensor", "class_name": "LQISensor", @@ -292,7 +216,7 @@ "entity_registry_enabled_default": false, "enabled": true, "primary": false, - "device_ieee": "54:ef:44:10:00:14:f3:e7", + "device_ieee": "ab:cd:ef:12:6c:02:d4:c2", "endpoint_id": 1, "available": true, "group_id": null, @@ -308,7 +232,7 @@ { "info_object": { "fallback_name": null, - "unique_id": "54:ef:44:10:00:14:f3:e7-1-0-rssi", + "unique_id": "ab:cd:ef:12:6c:02:d4:c2-1-0-rssi", "migrate_unique_ids": [], "platform": "sensor", "class_name": "RSSISensor", @@ -320,7 +244,7 @@ "entity_registry_enabled_default": false, "enabled": true, "primary": false, - "device_ieee": "54:ef:44:10:00:14:f3:e7", + "device_ieee": "ab:cd:ef:12:6c:02:d4:c2", "endpoint_id": 1, "available": true, "group_id": null, @@ -336,7 +260,7 @@ { "info_object": { "fallback_name": null, - "unique_id": "54:ef:44:10:00:14:f3:e7-1-1", + "unique_id": "ab:cd:ef:12:6c:02:d4:c2-1-1", "migrate_unique_ids": [], "platform": "sensor", "class_name": "Battery", @@ -348,7 +272,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "54:ef:44:10:00:14:f3:e7", + "device_ieee": "ab:cd:ef:12:6c:02:d4:c2", "endpoint_id": 1, "available": true, "group_id": null, @@ -360,8 +284,7 @@ "available": true, "state": null, "battery_size": "CR2450", - "battery_quantity": 1, - "battery_voltage": 2.8 + "battery_quantity": 1 }, "extra_state_attributes": [ "battery_quantity", @@ -374,7 +297,7 @@ { "info_object": { "fallback_name": null, - "unique_id": "54:ef:44:10:00:14:f3:e7-1-25-firmware_update", + "unique_id": "ab:cd:ef:12:6c:02:d4:c2-1-25-firmware_update", "migrate_unique_ids": [], "platform": "update", "class_name": "FirmwareUpdateEntity", @@ -386,7 +309,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "54:ef:44:10:00:14:f3:e7", + "device_ieee": "ab:cd:ef:12:6c:02:d4:c2", "endpoint_id": 1, "available": true, "group_id": null, diff --git a/tests/data/legacy_devices/lumi-lumi-sensor-switch-aq2.json b/tests/data/legacy_devices/lumi-lumi-sensor-switch-aq2.json index 704165b82..98e7158cf 100644 --- a/tests/data/legacy_devices/lumi-lumi-sensor-switch-aq2.json +++ b/tests/data/legacy_devices/lumi-lumi-sensor-switch-aq2.json @@ -1,20 +1,20 @@ { "version": 2, - "ieee": "00:15:8d:00:02:13:91:38", - "nwk": "0xE14A", + "ieee": "ab:cd:ef:12:3c:52:e5:df", + "nwk": "0x98D7", "manufacturer": "LUMI", "model": "lumi.sensor_switch.aq2", "friendly_manufacturer": "LUMI", "friendly_model": "lumi.sensor_switch.aq2", "name": "LUMI lumi.sensor_switch.aq2", - "quirk_applied": true, - "quirk_class": "zhaquirks.xiaomi.aqara.switch_aq2:SwitchAQ2", + "quirk_applied": false, + "quirk_class": "zigpy.device.Device", "exposes_features": [], "manufacturer_code": 4151, "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-04-24T17:34:08.445260+00:00", + "last_seen": "2024-08-18T08:42:20", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -45,12 +45,6 @@ "cluster_id": "0x0000", "endpoint_attribute": "basic", "attributes": [ - { - "id": "0x0001", - "name": "app_version", - "zcl_type": "uint8", - "value": 3 - }, { "id": "0x0004", "name": "manufacturer", @@ -73,7 +67,7 @@ "id": "0x0021", "name": "battery_percentage_remaining", "zcl_type": "uint8", - "value": 154 + "value": 146 }, { "id": "0x0033", @@ -91,7 +85,7 @@ "id": "0x0020", "name": "battery_voltage", "zcl_type": "uint8", - "value": 30.4 + "value": 30.2 } ] }, @@ -103,7 +97,7 @@ "id": "0x0000", "name": "current_temperature", "zcl_type": "int16", - "value": 2900 + "value": 2800 } ] }, @@ -144,47 +138,12 @@ ] } }, - "original_signature": { - "manufacturer": "LUMI", - "model": "lumi.sensor_switch.aq2", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4151, - "maximum_buffer_size": 127, - "maximum_incoming_transfer_size": 100, - "server_mask": 0, - "maximum_outgoing_transfer_size": 100, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x5f01", - "input_clusters": [ - "0x0000", - "0x0006", - "0xffff" - ], - "output_clusters": [ - "0x0000", - "0x0004", - "0xffff" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { "info_object": { "fallback_name": null, - "unique_id": "00:15:8d:00:02:13:91:38-1-0-lqi", + "unique_id": "ab:cd:ef:12:3c:52:e5:df-1-0-lqi", "migrate_unique_ids": [], "platform": "sensor", "class_name": "LQISensor", @@ -196,7 +155,7 @@ "entity_registry_enabled_default": false, "enabled": true, "primary": false, - "device_ieee": "00:15:8d:00:02:13:91:38", + "device_ieee": "ab:cd:ef:12:3c:52:e5:df", "endpoint_id": 1, "available": true, "group_id": null, @@ -212,7 +171,7 @@ { "info_object": { "fallback_name": null, - "unique_id": "00:15:8d:00:02:13:91:38-1-0-rssi", + "unique_id": "ab:cd:ef:12:3c:52:e5:df-1-0-rssi", "migrate_unique_ids": [], "platform": "sensor", "class_name": "RSSISensor", @@ -224,7 +183,7 @@ "entity_registry_enabled_default": false, "enabled": true, "primary": false, - "device_ieee": "00:15:8d:00:02:13:91:38", + "device_ieee": "ab:cd:ef:12:3c:52:e5:df", "endpoint_id": 1, "available": true, "group_id": null, @@ -240,7 +199,7 @@ { "info_object": { "fallback_name": null, - "unique_id": "00:15:8d:00:02:13:91:38-1-1", + "unique_id": "ab:cd:ef:12:3c:52:e5:df-1-1", "migrate_unique_ids": [], "platform": "sensor", "class_name": "Battery", @@ -252,7 +211,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "00:15:8d:00:02:13:91:38", + "device_ieee": "ab:cd:ef:12:3c:52:e5:df", "endpoint_id": 1, "available": true, "group_id": null, @@ -262,10 +221,10 @@ "state": { "class_name": "Battery", "available": true, - "state": 77.0, + "state": 73.0, "battery_size": "CR2032", "battery_quantity": 1, - "battery_voltage": 3.04 + "battery_voltage": 3.02 }, "extra_state_attributes": [ "battery_quantity", @@ -276,7 +235,7 @@ { "info_object": { "fallback_name": null, - "unique_id": "00:15:8d:00:02:13:91:38-1-2", + "unique_id": "ab:cd:ef:12:3c:52:e5:df-1-2", "migrate_unique_ids": [], "platform": "sensor", "class_name": "DeviceTemperature", @@ -288,7 +247,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": true, - "device_ieee": "00:15:8d:00:02:13:91:38", + "device_ieee": "ab:cd:ef:12:3c:52:e5:df", "endpoint_id": 1, "available": true, "group_id": null, @@ -298,7 +257,7 @@ "state": { "class_name": "DeviceTemperature", "available": true, - "state": 29.0 + "state": 28.0 } } ] diff --git a/tests/data/legacy_devices/lumi-lumi-switch-b1lacn02.json b/tests/data/legacy_devices/lumi-lumi-switch-b1lacn02.json index e3146dec6..8a39d9e0b 100644 --- a/tests/data/legacy_devices/lumi-lumi-switch-b1lacn02.json +++ b/tests/data/legacy_devices/lumi-lumi-switch-b1lacn02.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:39:38.149757+00:00", + "last_seen": "2024-02-27T11:18:50", "available": true, "device_type": "Router", "active_coordinator": false, @@ -225,75 +225,6 @@ "out_clusters": [] } }, - "original_signature": { - "manufacturer": "LUMI", - "model": "lumi.switch.b1lacn02", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 132, - "manufacturer_code": 4151, - "maximum_buffer_size": 127, - "maximum_incoming_transfer_size": 100, - "server_mask": 1, - "maximum_outgoing_transfer_size": 100, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0006", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0002", - "0x0003", - "0x000a", - "0x0019" - ], - "output_clusters": [ - "0x0000", - "0x000a", - "0x0019" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0000", - "input_clusters": [ - "0x0004", - "0x0005", - "0x0006", - "0x0010" - ], - "output_clusters": [] - }, - "3": { - "profile_id": "0x0104", - "device_type": "0x0000", - "input_clusters": [ - "0x0004", - "0x0005", - "0x0006", - "0x0010" - ], - "output_clusters": [] - }, - "4": { - "profile_id": "0x0104", - "device_type": "0x0000", - "input_clusters": [ - "0x0006", - "0x0012" - ], - "output_clusters": [] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/lumi-lumi-switch-b2naus01.json b/tests/data/legacy_devices/lumi-lumi-switch-b2naus01.json index 9a2eb60b3..af2d87142 100644 --- a/tests/data/legacy_devices/lumi-lumi-switch-b2naus01.json +++ b/tests/data/legacy_devices/lumi-lumi-switch-b2naus01.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:34.136724+00:00", + "last_seen": "2023-12-09T11:26:57", "available": true, "device_type": "Router", "active_coordinator": false, @@ -565,118 +565,6 @@ ] } }, - "original_signature": { - "manufacturer": "LUMI", - "model": "lumi.switch.b2naus01", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4447, - "maximum_buffer_size": 127, - "maximum_incoming_transfer_size": 100, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 100, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0000", - "input_clusters": [ - "0x0000", - "0x0002", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0009", - "0x0012", - "0x0702", - "0x0b04", - "0xfcc0" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0000", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0012", - "0xfcc0" - ], - "output_clusters": [] - }, - "21": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x000c" - ], - "output_clusters": [] - }, - "31": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x000c" - ], - "output_clusters": [] - }, - "41": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0012" - ], - "output_clusters": [] - }, - "42": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0012" - ], - "output_clusters": [] - }, - "51": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0012" - ], - "output_clusters": [] - }, - "61": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0012" - ], - "output_clusters": [] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/lumi-lumi-switch-b2nc01.json b/tests/data/legacy_devices/lumi-lumi-switch-b2nc01.json index d755c4709..8cd697b2e 100644 --- a/tests/data/legacy_devices/lumi-lumi-switch-b2nc01.json +++ b/tests/data/legacy_devices/lumi-lumi-switch-b2nc01.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:39:39.935657+00:00", + "last_seen": "2023-10-17T12:16:44", "available": true, "device_type": "Router", "active_coordinator": false, @@ -637,91 +637,6 @@ ] } }, - "original_signature": { - "manufacturer": "LUMI", - "model": "lumi.switch.b2nc01", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4447, - "maximum_buffer_size": 127, - "maximum_incoming_transfer_size": 100, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 100, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0002", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0012", - "0xfcc0" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0012", - "0xfcc0" - ], - "output_clusters": [] - }, - "41": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0012" - ], - "output_clusters": [] - }, - "42": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0012" - ], - "output_clusters": [] - }, - "51": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0012" - ], - "output_clusters": [] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/lumi-lumi-switch-l1aeu1-0x00000e0b.json b/tests/data/legacy_devices/lumi-lumi-switch-l1aeu1-0x00000e0b.json index 77ebe87f6..a52ae5b31 100644 --- a/tests/data/legacy_devices/lumi-lumi-switch-l1aeu1-0x00000e0b.json +++ b/tests/data/legacy_devices/lumi-lumi-switch-l1aeu1-0x00000e0b.json @@ -166,61 +166,6 @@ ] } }, - "original_signature": { - "manufacturer": "LUMI", - "model": "lumi.switch.l1aeu1", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4447, - "maximum_buffer_size": 127, - "maximum_incoming_transfer_size": 100, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 100, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0002", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0012", - "0xfcc0" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "41": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0012" - ], - "output_clusters": [] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/lumi-lumi-switch-l2aeu1-0x00000e0b.json b/tests/data/legacy_devices/lumi-lumi-switch-l2aeu1-0x00000e0b.json index 566771a2f..1580d76fb 100644 --- a/tests/data/legacy_devices/lumi-lumi-switch-l2aeu1-0x00000e0b.json +++ b/tests/data/legacy_devices/lumi-lumi-switch-l2aeu1-0x00000e0b.json @@ -204,66 +204,6 @@ ] } }, - "original_signature": { - "manufacturer": "LUMI", - "model": "lumi.switch.l2aeu1", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4447, - "maximum_buffer_size": 127, - "maximum_incoming_transfer_size": 100, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 100, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0002", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0009" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0012", - "0xfcc0" - ], - "output_clusters": [] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/lumi-lumi-switch-n1aeu1.json b/tests/data/legacy_devices/lumi-lumi-switch-n1aeu1.json index 25cd4eabf..1e82ae2fd 100644 --- a/tests/data/legacy_devices/lumi-lumi-switch-n1aeu1.json +++ b/tests/data/legacy_devices/lumi-lumi-switch-n1aeu1.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:34.260822+00:00", + "last_seen": "2023-10-08T10:55:08", "available": true, "device_type": "Router", "active_coordinator": false, @@ -428,64 +428,6 @@ ] } }, - "original_signature": { - "manufacturer": "LUMI", - "model": "lumi.switch.n1aeu1", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4447, - "maximum_buffer_size": 127, - "maximum_incoming_transfer_size": 100, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 100, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0000", - "input_clusters": [ - "0x0000", - "0x0002", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0009", - "0x0012", - "0x0702", - "0x0b04", - "0xfcc0" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "41": { - "profile_id": "0x0104", - "device_type": "0x0000", - "input_clusters": [ - "0x0012" - ], - "output_clusters": [] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/mli-tint-extendedcolor-0x10012001.json b/tests/data/legacy_devices/mli-tint-extendedcolor-0x10012001.json index ed23f007d..ef09756e7 100644 --- a/tests/data/legacy_devices/mli-tint-extendedcolor-0x10012001.json +++ b/tests/data/legacy_devices/mli-tint-extendedcolor-0x10012001.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:08:51.757582+00:00", + "last_seen": "2025-02-07T03:07:09+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -242,53 +242,6 @@ ] } }, - "original_signature": { - "manufacturer": "MLI", - "model": "tint-ExtendedColor", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4635, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x010d", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0300", - "0x1000", - "0x100f" - ], - "output_clusters": [ - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/nabu-casa-ha-connect-zbt-1.json b/tests/data/legacy_devices/nabu-casa-ha-connect-zbt-1.json index 65903050e..62ddfea0c 100644 --- a/tests/data/legacy_devices/nabu-casa-ha-connect-zbt-1.json +++ b/tests/data/legacy_devices/nabu-casa-ha-connect-zbt-1.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:41.166543+00:00", + "last_seen": "2025-04-09T15:01:44", "available": true, "device_type": "Coordinator", "active_coordinator": false, @@ -119,52 +119,6 @@ "out_clusters": [] } }, - "original_signature": { - "manufacturer": "Nabu Casa", - "model": "HA Connect ZBT-1", - "node_desc": { - "logical_type": 0, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 143, - "manufacturer_code": 43981, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 128, - "server_mask": 11329, - "maximum_outgoing_transfer_size": 128, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0400", - "input_clusters": [ - "0x0000", - "0x0006", - "0x000a", - "0x0019", - "0x0501" - ], - "output_clusters": [ - "0x0001", - "0x0020", - "0x0500", - "0x0502" - ] - }, - "2": { - "profile_id": "0xc05e", - "device_type": "0x0820", - "input_clusters": [ - "0x0000" - ], - "output_clusters": [] - } - } - }, "zha_lib_entities": {}, "neighbors": [], "routes": [] diff --git a/tests/data/legacy_devices/namron-as-1402790.json b/tests/data/legacy_devices/namron-as-1402790.json index ea4e51bc2..ab270d810 100644 --- a/tests/data/legacy_devices/namron-as-1402790.json +++ b/tests/data/legacy_devices/namron-as-1402790.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T00:56:58.502689+00:00", + "last_seen": "2023-08-09T15:34:26", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -401,53 +401,6 @@ ] } }, - "original_signature": { - "manufacturer": "NAMRON AS", - "model": "1402790", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 140, - "manufacturer_code": 4660, - "maximum_buffer_size": 108, - "maximum_incoming_transfer_size": 0, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 0, - "descriptor_capability_field": 80 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0006", - "0x0402", - "0x0702", - "0x0b04" - ], - "output_clusters": [ - "0x0003" - ] - }, - "10": { - "profile_id": "0x0104", - "device_type": "0xfff0", - "input_clusters": [ - "0x0000" - ], - "output_clusters": [ - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/namron-as-4512785-0x0000000e.json b/tests/data/legacy_devices/namron-as-4512785-0x0000000e.json index 182457059..9d9614bed 100644 --- a/tests/data/legacy_devices/namron-as-4512785-0x0000000e.json +++ b/tests/data/legacy_devices/namron-as-4512785-0x0000000e.json @@ -553,56 +553,6 @@ ] } }, - "original_signature": { - "manufacturer": "Namron AS", - "model": "4512785", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4714, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0002", - "input_clusters": [ - "0x0000", - "0x0002", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0402", - "0x04e0", - "0x0702", - "0x0b04", - "0x1000" - ], - "output_clusters": [ - "0x0003", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/neuhaus-lighting-group-nlg-remote.json b/tests/data/legacy_devices/neuhaus-lighting-group-nlg-remote.json index 6c83c0169..727037a6f 100644 --- a/tests/data/legacy_devices/neuhaus-lighting-group-nlg-remote.json +++ b/tests/data/legacy_devices/neuhaus-lighting-group-nlg-remote.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:38.981225+00:00", + "last_seen": "2024-12-07T19:21:47", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -109,45 +109,6 @@ ] } }, - "original_signature": { - "manufacturer": "Neuhaus Lighting Group", - "model": "NLG-remote", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4151, - "maximum_buffer_size": 127, - "maximum_incoming_transfer_size": 100, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 100, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0810", - "input_clusters": [ - "0x0000", - "0x0003", - "0x1000" - ], - "output_clusters": [ - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0300", - "0x1000" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/niko-nv-battery-switch-2-button.json b/tests/data/legacy_devices/niko-nv-battery-switch-2-button.json index 25200ce82..64ac62307 100644 --- a/tests/data/legacy_devices/niko-nv-battery-switch-2-button.json +++ b/tests/data/legacy_devices/niko-nv-battery-switch-2-button.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:33.369935+00:00", + "last_seen": "2023-07-10T15:19:48", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -180,58 +180,6 @@ ] } }, - "original_signature": { - "manufacturer": "NIKO NV", - "model": "Battery switch, 2 button", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4703, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0006", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0b05", - "0x1000", - "0xfc00", - "0xfc01" - ], - "output_clusters": [ - "0x0003", - "0x0004", - "0x0006", - "0x0008", - "0x0019", - "0x1000" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0006", - "input_clusters": [], - "output_clusters": [ - "0x0003", - "0x0006", - "0x0008" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/niko-nv-battery-switch-4-button-0x21046760.json b/tests/data/legacy_devices/niko-nv-battery-switch-4-button-0x21046760.json index 10676b58b..127d1cadb 100644 --- a/tests/data/legacy_devices/niko-nv-battery-switch-4-button-0x21046760.json +++ b/tests/data/legacy_devices/niko-nv-battery-switch-4-button-0x21046760.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T00:56:57.795174+00:00", + "last_seen": "2024-07-18T12:37:22", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -237,78 +237,6 @@ ] } }, - "original_signature": { - "manufacturer": "NIKO NV", - "model": "Battery switch, 4 button", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4703, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0006", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0b05", - "0x1000", - "0xfc00", - "0xfc01" - ], - "output_clusters": [ - "0x0003", - "0x0004", - "0x0006", - "0x0008", - "0x0019", - "0x1000" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0006", - "input_clusters": [], - "output_clusters": [ - "0x0003", - "0x0006", - "0x0008" - ] - }, - "3": { - "profile_id": "0x0104", - "device_type": "0x0006", - "input_clusters": [], - "output_clusters": [ - "0x0003", - "0x0006", - "0x0008" - ] - }, - "4": { - "profile_id": "0x0104", - "device_type": "0x0006", - "input_clusters": [], - "output_clusters": [ - "0x0003", - "0x0006", - "0x0008" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/niko-nv-connectable-motor-control-3a-0x21160006.json b/tests/data/legacy_devices/niko-nv-connectable-motor-control-3a-0x21160006.json index d0b7270ab..2904003e1 100644 --- a/tests/data/legacy_devices/niko-nv-connectable-motor-control-3a-0x21160006.json +++ b/tests/data/legacy_devices/niko-nv-connectable-motor-control-3a-0x21160006.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:59.841767+00:00", + "last_seen": "2024-06-12T10:15:58", "available": true, "device_type": "Router", "active_coordinator": false, @@ -345,52 +345,6 @@ ] } }, - "original_signature": { - "manufacturer": "NIKO NV", - "model": "Connectable motor control,3A", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4703, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0202", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0102", - "0x0b05", - "0xfc00", - "0xfc01" - ], - "output_clusters": [ - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/nodon-sin-4-fp-21.json b/tests/data/legacy_devices/nodon-sin-4-fp-21.json index cfe3814e8..18259c5d5 100644 --- a/tests/data/legacy_devices/nodon-sin-4-fp-21.json +++ b/tests/data/legacy_devices/nodon-sin-4-fp-21.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:59.107276+00:00", + "last_seen": "2024-03-13T23:30:27+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -402,54 +402,6 @@ ] } }, - "original_signature": { - "manufacturer": "NodOn", - "model": "SIN-4-FP-21", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4747, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 500, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 500, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0702", - "0x1000", - "0xfc00" - ], - "output_clusters": [ - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0066", - "input_clusters": [ - "0x0021" - ], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/occam-temp-sensor-v1-2-jan-19-2026.json b/tests/data/legacy_devices/occam-temp-sensor-v1-2-jan-19-2026.json index dea20dac8..4f108da1d 100644 --- a/tests/data/legacy_devices/occam-temp-sensor-v1-2-jan-19-2026.json +++ b/tests/data/legacy_devices/occam-temp-sensor-v1-2-jan-19-2026.json @@ -128,41 +128,6 @@ ] } }, - "original_signature": { - "manufacturer": "Occam", - "model": "Temp Sensor V1.2 Jan 19 2026", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 136, - "manufacturer_code": 4660, - "maximum_buffer_size": 108, - "maximum_incoming_transfer_size": 1613, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 1613, - "descriptor_capability_field": 0 - }, - "endpoints": { - "10": { - "profile_id": "0x0104", - "device_type": "0x0302", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0402", - "0x0405" - ], - "output_clusters": [ - "0x0003" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/orvibo-250bccf66c41421b91b5e3242942c164.json b/tests/data/legacy_devices/orvibo-250bccf66c41421b91b5e3242942c164.json index fdd7ecfb1..f271c0316 100644 --- a/tests/data/legacy_devices/orvibo-250bccf66c41421b91b5e3242942c164.json +++ b/tests/data/legacy_devices/orvibo-250bccf66c41421b91b5e3242942c164.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:40:25.809438+00:00", + "last_seen": "2023-10-11T23:31:40", "available": true, "device_type": "Router", "active_coordinator": false, @@ -251,44 +251,6 @@ ] } }, - "original_signature": { - "manufacturer": "ORVIBO", - "model": "250bccf66c41421b91b5e3242942c164", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0102", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0300", - "0xff00" - ], - "output_clusters": [ - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/ou-rui-bo-cf31218e11c547179c9c9ade6a492799.json b/tests/data/legacy_devices/ou-rui-bo-cf31218e11c547179c9c9ade6a492799.json index 26985e91b..04c570b3b 100644 --- a/tests/data/legacy_devices/ou-rui-bo-cf31218e11c547179c9c9ade6a492799.json +++ b/tests/data/legacy_devices/ou-rui-bo-cf31218e11c547179c9c9ade6a492799.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:08:50.907287+00:00", + "last_seen": "2024-11-08T14:58:41", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -132,42 +132,6 @@ ] } }, - "original_signature": { - "manufacturer": "\u6b27\u745e\u535a", - "model": "cf31218e11c547179c9c9ade6a492799", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 0, - "maximum_buffer_size": 80, - "maximum_incoming_transfer_size": 160, - "server_mask": 0, - "maximum_outgoing_transfer_size": 160, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x00fe", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0005", - "0x000a", - "0x0101" - ], - "output_clusters": [ - "0x000a" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/paulmann-licht-gmbh-501-34.json b/tests/data/legacy_devices/paulmann-licht-gmbh-501-34.json index 2e78378aa..409f1be75 100644 --- a/tests/data/legacy_devices/paulmann-licht-gmbh-501-34.json +++ b/tests/data/legacy_devices/paulmann-licht-gmbh-501-34.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:34.079595+00:00", + "last_seen": "2023-10-20T13:18:09+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -256,69 +256,6 @@ ] } }, - "original_signature": { - "manufacturer": "Paulmann Licht GmbH", - "model": "501.34", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4644, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0001", - "input_clusters": [ - "0x0000", - "0x0b05", - "0x0003", - "0x1000", - "0x0001" - ], - "output_clusters": [ - "0x0300", - "0x0004", - "0x0003", - "0x0008", - "0x1000", - "0x0006", - "0x0019", - "0x0005" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0001", - "input_clusters": [ - "0x0000", - "0x0b05", - "0x0003", - "0x1000", - "0x0001" - ], - "output_clusters": [ - "0x0300", - "0x0004", - "0x0003", - "0x0008", - "0x1000", - "0x0006", - "0x0019", - "0x0005" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/philips-lct026.json b/tests/data/legacy_devices/philips-lct026.json index 49a4c4a28..9766177e1 100644 --- a/tests/data/legacy_devices/philips-lct026.json +++ b/tests/data/legacy_devices/philips-lct026.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:39:38.587726+00:00", + "last_seen": "2023-08-09T10:44:37", "available": true, "device_type": "Router", "active_coordinator": false, @@ -278,53 +278,6 @@ ] } }, - "original_signature": { - "manufacturer": "Philips", - "model": "LCT026", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4107, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 128, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 128, - "descriptor_capability_field": 0 - }, - "endpoints": { - "11": { - "profile_id": "0x0104", - "device_type": "0x010d", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0300", - "0x1000", - "0xfc01" - ], - "output_clusters": [ - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/philips-lst002-0x01001700.json b/tests/data/legacy_devices/philips-lst002-0x01001700.json index 8696b0f75..06e045ae9 100644 --- a/tests/data/legacy_devices/philips-lst002-0x01001700.json +++ b/tests/data/legacy_devices/philips-lst002-0x01001700.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-04-29T19:02:49.243925+00:00", + "last_seen": "2025-03-02T06:33:57", "available": true, "device_type": "Router", "active_coordinator": false, @@ -298,54 +298,6 @@ ] } }, - "original_signature": { - "manufacturer": "Philips", - "model": "LST002", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4107, - "maximum_buffer_size": 71, - "maximum_incoming_transfer_size": 45, - "server_mask": 0, - "maximum_outgoing_transfer_size": 45, - "descriptor_capability_field": 0 - }, - "endpoints": { - "11": { - "profile_id": "0xc05e", - "device_type": "0x0210", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0300", - "0x1000" - ], - "output_clusters": [ - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [ - "0x0021" - ], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/ptvo-info-ptvo-switch.json b/tests/data/legacy_devices/ptvo-info-ptvo-switch.json index 3b1d762ec..59657879a 100644 --- a/tests/data/legacy_devices/ptvo-info-ptvo-switch.json +++ b/tests/data/legacy_devices/ptvo-info-ptvo-switch.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:40:55.656359+00:00", + "last_seen": "2024-08-11T09:49:30", "available": true, "device_type": "Router", "active_coordinator": false, @@ -378,111 +378,6 @@ "out_clusters": [] } }, - "original_signature": { - "manufacturer": "ptvo.info", - "model": "ptvo.switch", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 64447, - "maximum_buffer_size": 80, - "maximum_incoming_transfer_size": 160, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 160, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0xfffe", - "input_clusters": [ - "0x0000", - "0x0006", - "0x0007" - ], - "output_clusters": [ - "0x0000", - "0x0006" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0xfffe", - "input_clusters": [ - "0x0006", - "0x0007" - ], - "output_clusters": [ - "0x0006" - ] - }, - "3": { - "profile_id": "0x0104", - "device_type": "0xfffe", - "input_clusters": [ - "0x0006", - "0x0007" - ], - "output_clusters": [ - "0x0006" - ] - }, - "4": { - "profile_id": "0x0104", - "device_type": "0xfffe", - "input_clusters": [ - "0x0006", - "0x0007" - ], - "output_clusters": [ - "0x0006" - ] - }, - "5": { - "profile_id": "0x0104", - "device_type": "0xfffe", - "input_clusters": [ - "0x0006", - "0x0007" - ], - "output_clusters": [ - "0x0006" - ] - }, - "6": { - "profile_id": "0x0104", - "device_type": "0xfffe", - "input_clusters": [ - "0x0006", - "0x0007" - ], - "output_clusters": [ - "0x0006" - ] - }, - "7": { - "profile_id": "0x0104", - "device_type": "0xfffe", - "input_clusters": [ - "0x0402" - ], - "output_clusters": [] - }, - "8": { - "profile_id": "0x0104", - "device_type": "0xfffe", - "input_clusters": [ - "0x0402" - ], - "output_clusters": [] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/samjin-water.json b/tests/data/legacy_devices/samjin-water.json index b48383453..af2e12e3b 100644 --- a/tests/data/legacy_devices/samjin-water.json +++ b/tests/data/legacy_devices/samjin-water.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:23.366957+00:00", + "last_seen": "2024-02-23T22:28:52", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -177,44 +177,6 @@ ] } }, - "original_signature": { - "manufacturer": "Samjin", - "model": "water", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4673, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0402", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0020", - "0x0402", - "0x0500", - "0x0b05" - ], - "output_clusters": [ - "0x0003", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/schneider-electric-eko07259-0x01001d00.json b/tests/data/legacy_devices/schneider-electric-eko07259-0x01001d00.json index f01046dee..9b9eb5b69 100644 --- a/tests/data/legacy_devices/schneider-electric-eko07259-0x01001d00.json +++ b/tests/data/legacy_devices/schneider-electric-eko07259-0x01001d00.json @@ -1412,92 +1412,6 @@ ] } }, - "original_signature": { - "manufacturer": "Schneider Electric", - "model": "EKO07259", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4190, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0301", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0201", - "0x0204", - "0x0b05", - "0xfe03", - "0xff16", - "0xff23" - ], - "output_clusters": [ - "0x0003", - "0x000a", - "0x0019", - "0x0402", - "0x0406" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0302", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0402" - ], - "output_clusters": [ - "0x0003" - ] - }, - "3": { - "profile_id": "0x0104", - "device_type": "0x0302", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0402" - ], - "output_clusters": [ - "0x0003" - ] - }, - "5": { - "profile_id": "0x0104", - "device_type": "0x000d", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0702" - ], - "output_clusters": [] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/schneider-electric-evsckt-outlet-1-0x020a00ff.json b/tests/data/legacy_devices/schneider-electric-evsckt-outlet-1-0x020a00ff.json index 2d23b2d10..9849ff9cc 100644 --- a/tests/data/legacy_devices/schneider-electric-evsckt-outlet-1-0x020a00ff.json +++ b/tests/data/legacy_devices/schneider-electric-evsckt-outlet-1-0x020a00ff.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:41.093348+00:00", + "last_seen": "2025-01-10T11:52:33", "available": true, "device_type": "Router", "active_coordinator": false, @@ -385,54 +385,6 @@ ] } }, - "original_signature": { - "manufacturer": "Schneider Electric", - "model": "EVSCKT/OUTLET/1", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4190, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "6": { - "profile_id": "0x0104", - "device_type": "0x0009", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0702", - "0x0708", - "0x0b04", - "0x0b05", - "0xfc04" - ], - "output_clusters": [ - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/schneider-electric-lk-dimmer.json b/tests/data/legacy_devices/schneider-electric-lk-dimmer.json index 045267f81..6e34a0c5b 100644 --- a/tests/data/legacy_devices/schneider-electric-lk-dimmer.json +++ b/tests/data/legacy_devices/schneider-electric-lk-dimmer.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:23.084331+00:00", + "last_seen": "2023-05-28T21:18:40", "available": true, "device_type": "Router", "active_coordinator": false, @@ -405,120 +405,6 @@ ] } }, - "original_signature": { - "manufacturer": "Schneider Electric", - "model": "LK Dimmer", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4190, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "3": { - "profile_id": "0x0104", - "device_type": "0x0101", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0301", - "0x0b05" - ], - "output_clusters": [ - "0x0019" - ] - }, - "21": { - "profile_id": "0x0104", - "device_type": "0x0104", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0b05", - "0xff17" - ], - "output_clusters": [ - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008" - ] - }, - "22": { - "profile_id": "0x0104", - "device_type": "0x0104", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0b05", - "0xff17" - ], - "output_clusters": [ - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008" - ] - }, - "23": { - "profile_id": "0x0104", - "device_type": "0x0104", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0b05", - "0xff17" - ], - "output_clusters": [ - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008" - ] - }, - "24": { - "profile_id": "0x0104", - "device_type": "0x0104", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0b05", - "0xff17" - ], - "output_clusters": [ - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/schneider-electric-nhmotion-unidim-1-0x020b0fff.json b/tests/data/legacy_devices/schneider-electric-nhmotion-unidim-1-0x020b0fff.json index 24a9e086f..739a2d9cd 100644 --- a/tests/data/legacy_devices/schneider-electric-nhmotion-unidim-1-0x020b0fff.json +++ b/tests/data/legacy_devices/schneider-electric-nhmotion-unidim-1-0x020b0fff.json @@ -257,70 +257,6 @@ ] } }, - "original_signature": { - "manufacturer": "Schneider Electric", - "model": "NHMOTION/UNIDIM/1", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4190, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "3": { - "profile_id": "0x0104", - "device_type": "0x0101", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0301", - "0x0b05" - ], - "output_clusters": [ - "0x0019" - ] - }, - "37": { - "profile_id": "0x0104", - "device_type": "0x0820", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0400", - "0x0406", - "0x0b05", - "0xff19" - ], - "output_clusters": [ - "0x0003", - "0x0006", - "0x0008", - "0x0406" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/schneider-electric-puck-dimmer-1.json b/tests/data/legacy_devices/schneider-electric-puck-dimmer-1.json index 428ed0501..e3d9ff2ee 100644 --- a/tests/data/legacy_devices/schneider-electric-puck-dimmer-1.json +++ b/tests/data/legacy_devices/schneider-electric-puck-dimmer-1.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:22.363466+00:00", + "last_seen": "2023-12-03T12:15:04", "available": true, "device_type": "Router", "active_coordinator": false, @@ -175,52 +175,6 @@ ] } }, - "original_signature": { - "manufacturer": "Schneider Electric", - "model": "PUCK/DIMMER/1", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4190, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "3": { - "profile_id": "0x0104", - "device_type": "0x0101", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0301", - "0x0b05" - ], - "output_clusters": [ - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/schneider-electric-puck-shutter-1-0x020c02ff.json b/tests/data/legacy_devices/schneider-electric-puck-shutter-1-0x020c02ff.json index bb252b2a7..e3e19943d 100644 --- a/tests/data/legacy_devices/schneider-electric-puck-shutter-1-0x020c02ff.json +++ b/tests/data/legacy_devices/schneider-electric-puck-shutter-1-0x020c02ff.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:46.764604+00:00", + "last_seen": "2025-01-09T19:30:01+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -364,50 +364,6 @@ ] } }, - "original_signature": { - "manufacturer": "Schneider Electric", - "model": "PUCK/SHUTTER/1", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4190, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "5": { - "profile_id": "0x0104", - "device_type": "0x0202", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0102", - "0x0b05" - ], - "output_clusters": [ - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/schneider-electric-s520619-0x01003500.json b/tests/data/legacy_devices/schneider-electric-s520619-0x01003500.json index 90d4770a1..c8ecd1bf9 100644 --- a/tests/data/legacy_devices/schneider-electric-s520619-0x01003500.json +++ b/tests/data/legacy_devices/schneider-electric-s520619-0x01003500.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:40.031739+00:00", + "last_seen": "2024-12-07T09:09:20", "available": true, "device_type": "Router", "active_coordinator": false, @@ -494,92 +494,6 @@ ] } }, - "original_signature": { - "manufacturer": "Schneider Electric", - "model": "S520619", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4190, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0301", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0201", - "0x0204", - "0x0b05", - "0xfe03", - "0xff16", - "0xff23" - ], - "output_clusters": [ - "0x0003", - "0x000a", - "0x0019", - "0x0402", - "0x0406" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0302", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0402" - ], - "output_clusters": [ - "0x0003" - ] - }, - "4": { - "profile_id": "0x0104", - "device_type": "0x0107", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0406" - ], - "output_clusters": [ - "0x0003" - ] - }, - "5": { - "profile_id": "0x0104", - "device_type": "0x000d", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0702" - ], - "output_clusters": [] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/sercomm-corp-sz-esw01-au.json b/tests/data/legacy_devices/sercomm-corp-sz-esw01-au.json index 831759844..0b3fb705a 100644 --- a/tests/data/legacy_devices/sercomm-corp-sz-esw01-au.json +++ b/tests/data/legacy_devices/sercomm-corp-sz-esw01-au.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:40:26.794751+00:00", + "last_seen": "2023-05-28T20:15:45", "available": true, "device_type": "Router", "active_coordinator": false, @@ -495,61 +495,6 @@ ] } }, - "original_signature": { - "manufacturer": "Sercomm Corp.", - "model": "SZ-ESW01-AU", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4401, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 0, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0702", - "0x0b04", - "0x0b05" - ], - "output_clusters": [ - "0x0003", - "0x000a", - "0x0019", - "0x0b05" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0103", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003" - ], - "output_clusters": [ - "0x0003", - "0x0006" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/shelly-2pm.json b/tests/data/legacy_devices/shelly-2pm.json index 0262d4204..250f6b7b5 100644 --- a/tests/data/legacy_devices/shelly-2pm.json +++ b/tests/data/legacy_devices/shelly-2pm.json @@ -142,7 +142,7 @@ "id": "0x0017", "name": "window_covering_mode", "zcl_type": "map8", - "unsupported": true + "value": 8 }, { "id": "0x0000", @@ -191,56 +191,6 @@ ] } }, - "original_signature": { - "manufacturer": "Shelly", - "model": "2PM", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 5264, - "maximum_buffer_size": 108, - "maximum_incoming_transfer_size": 1613, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 1613, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0202", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0102" - ], - "output_clusters": [] - }, - "239": { - "profile_id": "0xc001", - "device_type": "0x2001", - "input_clusters": [ - "0xfc01", - "0xfc02" - ], - "output_clusters": [] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { @@ -393,6 +343,40 @@ "state": "Shutter" } } + ], + "switch": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:9c:bd:cb:14-1-258-inverted", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "WindowCoveringInversionSwitch", + "translation_key": "inverted", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:9c:bd:cb:14", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "config_status", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 0, + "on_value": 1 + }, + "state": { + "class_name": "WindowCoveringInversionSwitch", + "available": true, + "state": false, + "inverted": false + } + } ] }, "neighbors": [], diff --git a/tests/data/legacy_devices/shelly-ecowitt-ws90.json b/tests/data/legacy_devices/shelly-ecowitt-ws90.json index c165908a6..7574f96a1 100644 --- a/tests/data/legacy_devices/shelly-ecowitt-ws90.json +++ b/tests/data/legacy_devices/shelly-ecowitt-ws90.json @@ -167,46 +167,6 @@ ] } }, - "original_signature": { - "manufacturer": "Shelly", - "model": "Ecowitt WS90", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 5264, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0302", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0400", - "0x0402", - "0x0403", - "0x0405", - "0xfc01", - "0xfc02", - "0xfc03" - ], - "output_clusters": [ - "0x0003" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/shelly-mini1pm.json b/tests/data/legacy_devices/shelly-mini1pm.json index f63d376af..546d7b1f8 100644 --- a/tests/data/legacy_devices/shelly-mini1pm.json +++ b/tests/data/legacy_devices/shelly-mini1pm.json @@ -449,58 +449,6 @@ ] } }, - "original_signature": { - "manufacturer": "Shelly", - "model": "Mini1PM", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 5264, - "maximum_buffer_size": 108, - "maximum_incoming_transfer_size": 1613, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 1613, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0702", - "0x0b04" - ], - "output_clusters": [] - }, - "239": { - "profile_id": "0xc001", - "device_type": "0x2001", - "input_clusters": [ - "0xfc01", - "0xfc02" - ], - "output_clusters": [] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/shyugj-dimmer-switch-zb3-0.json b/tests/data/legacy_devices/shyugj-dimmer-switch-zb3-0.json index d010fbd53..e11bd1605 100644 --- a/tests/data/legacy_devices/shyugj-dimmer-switch-zb3-0.json +++ b/tests/data/legacy_devices/shyugj-dimmer-switch-zb3-0.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:34.605018+00:00", + "last_seen": "2024-02-17T19:12:38+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -218,52 +218,6 @@ ] } }, - "original_signature": { - "manufacturer": "Shyugj", - "model": "Dimmer-Switch-ZB3.0", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4714, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0101", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0b05", - "0x1000" - ], - "output_clusters": [ - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/signify-netherlands-b-v-lca001-0x01002802.json b/tests/data/legacy_devices/signify-netherlands-b-v-lca001-0x01002802.json index 852bd2ebf..a7824cf5c 100644 --- a/tests/data/legacy_devices/signify-netherlands-b-v-lca001-0x01002802.json +++ b/tests/data/legacy_devices/signify-netherlands-b-v-lca001-0x01002802.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-04-29T19:02:50.608021+00:00", + "last_seen": "2024-10-01T15:36:03", "available": true, "device_type": "Router", "active_coordinator": false, @@ -301,55 +301,6 @@ ] } }, - "original_signature": { - "manufacturer": "Signify Netherlands B.V.", - "model": "LCA001", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4107, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 128, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 128, - "descriptor_capability_field": 0 - }, - "endpoints": { - "11": { - "profile_id": "0x0104", - "device_type": "0x010d", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0300", - "0x1000", - "0xfc01", - "0xfc03", - "0xfc04" - ], - "output_clusters": [ - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/signify-netherlands-b-v-rdm004.json b/tests/data/legacy_devices/signify-netherlands-b-v-rdm004.json index 1d65ebede..42027c454 100644 --- a/tests/data/legacy_devices/signify-netherlands-b-v-rdm004.json +++ b/tests/data/legacy_devices/signify-netherlands-b-v-rdm004.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:40:27.464901+00:00", + "last_seen": "2023-11-19T05:35:42+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -146,45 +146,6 @@ ] } }, - "original_signature": { - "manufacturer": "Signify Netherlands B.V.", - "model": "RDM004", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4107, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 128, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 128, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0830", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0xfc00" - ], - "output_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0006", - "0x0008", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/sinope-technologies-va4220zb.json b/tests/data/legacy_devices/sinope-technologies-va4220zb.json index dd7b7d8b9..797af6afc 100644 --- a/tests/data/legacy_devices/sinope-technologies-va4220zb.json +++ b/tests/data/legacy_devices/sinope-technologies-va4220zb.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-04-29T19:02:50.453339+00:00", + "last_seen": "2024-08-10T17:41:27", "available": true, "device_type": "Router", "active_coordinator": false, @@ -402,51 +402,6 @@ ] } }, - "original_signature": { - "manufacturer": "Sinope Technologies", - "model": "VA4220ZB", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 1, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4508, - "maximum_buffer_size": 71, - "maximum_incoming_transfer_size": 43, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 43, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0003", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0402", - "0x0404", - "0x0500", - "0x0702", - "0x0b05", - "0xff01" - ], - "output_clusters": [ - "0x0003", - "0x0006", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/smarthjemmet-dk-quad-zig-sw.json b/tests/data/legacy_devices/smarthjemmet-dk-quad-zig-sw.json index b2b6f7692..bd65554a9 100644 --- a/tests/data/legacy_devices/smarthjemmet-dk-quad-zig-sw.json +++ b/tests/data/legacy_devices/smarthjemmet-dk-quad-zig-sw.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:59.335986+00:00", + "last_seen": "2023-12-18T21:28:30+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -194,77 +194,6 @@ "out_clusters": [] } }, - "original_signature": { - "manufacturer": "smarthjemmet.dk", - "model": "QUAD-ZIG-SW", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 64447, - "maximum_buffer_size": 80, - "maximum_incoming_transfer_size": 160, - "server_mask": 0, - "maximum_outgoing_transfer_size": 160, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0xfffe", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0007" - ], - "output_clusters": [ - "0x0000", - "0x0001", - "0x0012" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0xfffe", - "input_clusters": [ - "0x0007", - "0x0012" - ], - "output_clusters": [] - }, - "3": { - "profile_id": "0x0104", - "device_type": "0xfffe", - "input_clusters": [ - "0x0007", - "0x0012" - ], - "output_clusters": [] - }, - "4": { - "profile_id": "0x0104", - "device_type": "0xfffe", - "input_clusters": [ - "0x0007", - "0x0012" - ], - "output_clusters": [] - }, - "5": { - "profile_id": "0x0104", - "device_type": "0xfffe", - "input_clusters": [ - "0x0007", - "0x0012" - ], - "output_clusters": [] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/smarthjemmet-dk-quad-zig-sw2.json b/tests/data/legacy_devices/smarthjemmet-dk-quad-zig-sw2.json index 5e8f971be..31733eec7 100644 --- a/tests/data/legacy_devices/smarthjemmet-dk-quad-zig-sw2.json +++ b/tests/data/legacy_devices/smarthjemmet-dk-quad-zig-sw2.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:59.149990+00:00", + "last_seen": "2024-05-12T21:45:58", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -304,86 +304,6 @@ ] } }, - "original_signature": { - "manufacturer": "smarthjemmet.dk", - "model": "QUAD-ZIG-SW2", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4447, - "maximum_buffer_size": 80, - "maximum_incoming_transfer_size": 160, - "server_mask": 0, - "maximum_outgoing_transfer_size": 160, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0xfffe", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0007" - ], - "output_clusters": [ - "0x0000", - "0x0001", - "0x0006", - "0x0012" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0xfffe", - "input_clusters": [ - "0x0007" - ], - "output_clusters": [ - "0x0006", - "0x0012" - ] - }, - "3": { - "profile_id": "0x0104", - "device_type": "0xfffe", - "input_clusters": [ - "0x0007" - ], - "output_clusters": [ - "0x0006", - "0x0012" - ] - }, - "4": { - "profile_id": "0x0104", - "device_type": "0xfffe", - "input_clusters": [ - "0x0007" - ], - "output_clusters": [ - "0x0006", - "0x0012" - ] - }, - "5": { - "profile_id": "0x0104", - "device_type": "0xfffe", - "input_clusters": [ - "0x0007" - ], - "output_clusters": [ - "0x0006", - "0x0012" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/smartthings-multiv4-0x0000001b.json b/tests/data/legacy_devices/smartthings-multiv4-0x0000001b.json index e11c66394..570dcffc2 100644 --- a/tests/data/legacy_devices/smartthings-multiv4-0x0000001b.json +++ b/tests/data/legacy_devices/smartthings-multiv4-0x0000001b.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:24.413382+00:00", + "last_seen": "2024-06-13T01:25:42+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -197,44 +197,6 @@ ] } }, - "original_signature": { - "manufacturer": "SmartThings", - "model": "multiv4", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4362, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 0, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0402", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x000f", - "0x0020", - "0x0402", - "0x0500", - "0xfc02" - ], - "output_clusters": [ - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/somfy-sonesse-28-wf-li-ion-roller-0x4100e158.json b/tests/data/legacy_devices/somfy-sonesse-28-wf-li-ion-roller-0x4100e158.json index 7b96dc427..3090556eb 100644 --- a/tests/data/legacy_devices/somfy-sonesse-28-wf-li-ion-roller-0x4100e158.json +++ b/tests/data/legacy_devices/somfy-sonesse-28-wf-li-ion-roller-0x4100e158.json @@ -237,53 +237,6 @@ ] } }, - "original_signature": { - "manufacturer": "SOMFY", - "model": "Sonesse 28 WF Li-Ion Roller", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4640, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0202", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0020", - "0x0102" - ], - "output_clusters": [] - }, - "232": { - "profile_id": "0x0104", - "device_type": "0x0005", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0019" - ], - "output_clusters": [ - "0x0000", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/sonoff-basiczbr3.json b/tests/data/legacy_devices/sonoff-basiczbr3.json index 3604ad0cf..e59e90933 100644 --- a/tests/data/legacy_devices/sonoff-basiczbr3.json +++ b/tests/data/legacy_devices/sonoff-basiczbr3.json @@ -102,41 +102,6 @@ ] } }, - "original_signature": { - "manufacturer": "SONOFF", - "model": "BASICZBR3", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 0, - "maximum_buffer_size": 80, - "maximum_incoming_transfer_size": 160, - "server_mask": 0, - "maximum_outgoing_transfer_size": 160, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006" - ], - "output_clusters": [ - "0x0000" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/sonoff-dongle-e-r.json b/tests/data/legacy_devices/sonoff-dongle-e-r.json index a3a6e4fed..f956845dd 100644 --- a/tests/data/legacy_devices/sonoff-dongle-e-r.json +++ b/tests/data/legacy_devices/sonoff-dongle-e-r.json @@ -1,7 +1,7 @@ { "version": 2, "ieee": "ab:cd:ef:12:33:57:93:05", - "nwk": "0xCD22", + "nwk": "0xF9C9", "manufacturer": "SONOFF", "model": "DONGLE-E_R", "friendly_manufacturer": "SONOFF", @@ -12,9 +12,9 @@ "exposes_features": [], "manufacturer_code": 4742, "power_source": "Mains", - "lqi": 212, - "rssi": -47, - "last_seen": "2025-10-10T12:12:17.282357+00:00", + "lqi": null, + "rssi": null, + "last_seen": "2023-12-29T12:00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -100,7 +100,7 @@ "id": "0x0000", "name": "current_level", "zcl_type": "uint8", - "value": 51 + "value": 228 }, { "id": "0x0014", @@ -136,7 +136,7 @@ "id": "0x4000", "name": "start_up_current_level", "zcl_type": "uint8", - "value": 51 + "value": 228 } ] } @@ -196,7 +196,7 @@ "id": "0x0000", "name": "current_level", "zcl_type": "uint8", - "value": 51 + "value": 228 }, { "id": "0x0014", @@ -232,7 +232,7 @@ "id": "0x4000", "name": "start_up_current_level", "zcl_type": "uint8", - "value": 51 + "value": 228 } ] }, @@ -276,6 +276,18 @@ "zcl_type": "uint16", "value": 17476 }, + { + "id": "0x0000", + "name": "current_hue", + "zcl_type": "uint8", + "value": 0 + }, + { + "id": "0x0001", + "name": "current_saturation", + "zcl_type": "uint8", + "value": 0 + }, { "id": "0x0003", "name": "current_x", @@ -288,6 +300,12 @@ "zcl_type": "uint16", "value": 24701 }, + { + "id": "0x4000", + "name": "enhanced_current_hue", + "zcl_type": "uint16", + "value": 0 + }, { "id": "0x000f", "name": "options", @@ -326,63 +344,6 @@ ] } }, - "original_signature": { - "manufacturer": "SONOFF", - "model": "DONGLE-E_R", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4742, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0101", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008" - ], - "output_clusters": [] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x010d", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0300", - "0x1000" - ], - "output_clusters": [] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { @@ -447,7 +408,7 @@ "class_name": "Light", "available": true, "on": false, - "brightness": 51, + "brightness": 228, "xy_color": null, "color_temp": null, "effect_list": [ @@ -498,7 +459,7 @@ "class_name": "Light", "available": true, "on": false, - "brightness": 51, + "brightness": 228, "xy_color": null, "color_temp": 17476, "effect_list": [ @@ -550,7 +511,7 @@ "state": { "class_name": "StartUpCurrentLevelConfigurationEntity", "available": true, - "state": 51 + "state": 228 } }, { @@ -612,7 +573,7 @@ "state": { "class_name": "StartUpCurrentLevelConfigurationEntity", "available": true, - "state": 51 + "state": 228 } } ], @@ -710,7 +671,7 @@ "state": { "class_name": "LQISensor", "available": true, - "state": 212 + "state": null } }, { @@ -738,7 +699,7 @@ "state": { "class_name": "RSSISensor", "available": true, - "state": -47 + "state": null } } ] diff --git a/tests/data/legacy_devices/sonoff-mini-zbrbs-0x00001005.json b/tests/data/legacy_devices/sonoff-mini-zbrbs-0x00001005.json index 5e3b3e107..235b5a28f 100644 --- a/tests/data/legacy_devices/sonoff-mini-zbrbs-0x00001005.json +++ b/tests/data/legacy_devices/sonoff-mini-zbrbs-0x00001005.json @@ -229,54 +229,6 @@ ] } }, - "original_signature": { - "manufacturer": "SONOFF", - "model": "MINI-ZBRBS", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4742, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 2552, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 2552, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0202", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0007", - "0x0102", - "0x0b05", - "0xfc11", - "0xfc57" - ], - "output_clusters": [ - "0x0003", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/sonoff-s26r2zb-0x00002000.json b/tests/data/legacy_devices/sonoff-s26r2zb-0x00002000.json index 31d419c53..70fb5dcd0 100644 --- a/tests/data/legacy_devices/sonoff-s26r2zb-0x00002000.json +++ b/tests/data/legacy_devices/sonoff-s26r2zb-0x00002000.json @@ -150,60 +150,6 @@ ] } }, - "original_signature": { - "manufacturer": "SONOFF", - "model": "S26R2ZB", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4742, - "maximum_buffer_size": 80, - "maximum_incoming_transfer_size": 160, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 160, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0009", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0xfc57" - ], - "output_clusters": [ - "0x0019" - ] - }, - "13": { - "profile_id": "0xc05e", - "device_type": "0xe15e", - "input_clusters": [ - "0x1000" - ], - "output_clusters": [ - "0x1000" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/sonoff-s60zbtpg-0x00001002.json b/tests/data/legacy_devices/sonoff-s60zbtpg-0x00001002.json index eb76bc0e5..e066fa130 100644 --- a/tests/data/legacy_devices/sonoff-s60zbtpg-0x00001002.json +++ b/tests/data/legacy_devices/sonoff-s60zbtpg-0x00001002.json @@ -468,55 +468,6 @@ ] } }, - "original_signature": { - "manufacturer": "SONOFF", - "model": "S60ZBTPG", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4742, - "maximum_buffer_size": 74, - "maximum_incoming_transfer_size": 404, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 404, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0702", - "0x0b04", - "0x0b05", - "0xfc11", - "0xfc57" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/sonoff-swv-0x00001002.json b/tests/data/legacy_devices/sonoff-swv-0x00001002.json index 511e1b945..651d5e042 100644 --- a/tests/data/legacy_devices/sonoff-swv-0x00001002.json +++ b/tests/data/legacy_devices/sonoff-swv-0x00001002.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-04-29T19:02:50.155465+00:00", + "last_seen": "2024-08-13T00:24:17+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -383,46 +383,6 @@ ] } }, - "original_signature": { - "manufacturer": "SONOFF", - "model": "SWV", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4742, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 255, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 255, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0002", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0006", - "0x0020", - "0x0404", - "0x0b05", - "0xfc11", - "0xfc57" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/sonoff-swv-0x00001003.json b/tests/data/legacy_devices/sonoff-swv-0x00001003.json index 624ff8f8d..755198c0c 100644 --- a/tests/data/legacy_devices/sonoff-swv-0x00001003.json +++ b/tests/data/legacy_devices/sonoff-swv-0x00001003.json @@ -148,46 +148,6 @@ ] } }, - "original_signature": { - "manufacturer": "SONOFF", - "model": "SWV", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4742, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 255, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 255, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0002", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0006", - "0x0020", - "0x0404", - "0x0b05", - "0xfc11", - "0xfc57" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/sonoff-trvzb-0x00001201.json b/tests/data/legacy_devices/sonoff-trvzb-0x00001201.json index d008d507e..70aa6b114 100644 --- a/tests/data/legacy_devices/sonoff-trvzb-0x00001201.json +++ b/tests/data/legacy_devices/sonoff-trvzb-0x00001201.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:41.906814+00:00", + "last_seen": "2025-02-11T23:01:43+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -276,7 +276,7 @@ "id": "0x6002", "name": "frost_protection_temperature", "zcl_type": "int16", - "value": 1000 + "unsupported": true }, { "id": "0x6000", @@ -331,45 +331,6 @@ ] } }, - "original_signature": { - "manufacturer": "SONOFF", - "model": "TRVZB", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4742, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 255, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 255, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0301", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0006", - "0x0020", - "0x0201", - "0xfc11", - "0xfc57" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { @@ -673,7 +634,7 @@ "state": { "class_name": "NumberConfigurationEntity", "available": true, - "state": 10.0 + "state": null } }, { diff --git a/tests/data/legacy_devices/sonoff-trvzb-0x00001400.json b/tests/data/legacy_devices/sonoff-trvzb-0x00001400.json index 3192c3aa7..c02293e2d 100644 --- a/tests/data/legacy_devices/sonoff-trvzb-0x00001400.json +++ b/tests/data/legacy_devices/sonoff-trvzb-0x00001400.json @@ -379,45 +379,6 @@ ] } }, - "original_signature": { - "manufacturer": "SONOFF", - "model": "TRVZB", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4742, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 255, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 255, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0301", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0006", - "0x0020", - "0x0201", - "0xfc11", - "0xfc57" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/sonoff-trvzb-0x00001401.json b/tests/data/legacy_devices/sonoff-trvzb-0x00001401.json index ad8e1f688..167946916 100644 --- a/tests/data/legacy_devices/sonoff-trvzb-0x00001401.json +++ b/tests/data/legacy_devices/sonoff-trvzb-0x00001401.json @@ -373,45 +373,6 @@ ] } }, - "original_signature": { - "manufacturer": "SONOFF", - "model": "TRVZB", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4742, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 255, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 255, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0301", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0006", - "0x0020", - "0x0201", - "0xfc11", - "0xfc57" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/sonoff-zbminil2-0x0000100e.json b/tests/data/legacy_devices/sonoff-zbminil2-0x0000100e.json index db32f87ca..bb0f1e302 100644 --- a/tests/data/legacy_devices/sonoff-zbminil2-0x0000100e.json +++ b/tests/data/legacy_devices/sonoff-zbminil2-0x0000100e.json @@ -144,43 +144,6 @@ ] } }, - "original_signature": { - "manufacturer": "SONOFF", - "model": "ZBMINIL2", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4742, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 1024, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 1024, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0002", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0006", - "0x0007", - "0x0b05", - "0xfc57" - ], - "output_clusters": [ - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/sonoff-zbminir2-0x00001004.json b/tests/data/legacy_devices/sonoff-zbminir2-0x00001004.json index b5c4b9dc9..99a61c364 100644 --- a/tests/data/legacy_devices/sonoff-zbminir2-0x00001004.json +++ b/tests/data/legacy_devices/sonoff-zbminir2-0x00001004.json @@ -236,53 +236,6 @@ ] } }, - "original_signature": { - "manufacturer": "SONOFF", - "model": "ZBMINIR2", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4742, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 255, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 255, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0002", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0006", - "0x0b05", - "0xfc11", - "0xfc57" - ], - "output_clusters": [ - "0x0003", - "0x0006", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/sunricher-on-off-2ch-0x00000004.json b/tests/data/legacy_devices/sunricher-on-off-2ch-0x00000004.json index 14d33934f..0c4281c6e 100644 --- a/tests/data/legacy_devices/sunricher-on-off-2ch-0x00000004.json +++ b/tests/data/legacy_devices/sunricher-on-off-2ch-0x00000004.json @@ -569,75 +569,6 @@ ] } }, - "original_signature": { - "manufacturer": "Sunricher", - "model": "ON/OFF(2CH)", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4107, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006" - ], - "output_clusters": [] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006" - ], - "output_clusters": [] - }, - "11": { - "profile_id": "0x0104", - "device_type": "0x0007", - "input_clusters": [ - "0x0000", - "0x0702", - "0x0b04", - "0x0b05", - "0x1000" - ], - "output_clusters": [ - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0066", - "input_clusters": [ - "0x0021" - ], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/texas-instruments-cc2652.json b/tests/data/legacy_devices/texas-instruments-cc2652.json index 672d0a3ed..76630f1f0 100644 --- a/tests/data/legacy_devices/texas-instruments-cc2652.json +++ b/tests/data/legacy_devices/texas-instruments-cc2652.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:43.379814+00:00", + "last_seen": "2024-09-11T18:39:11", "available": true, "device_type": "Coordinator", "active_coordinator": false, @@ -119,52 +119,6 @@ "out_clusters": [] } }, - "original_signature": { - "manufacturer": "Texas Instruments", - "model": "CC2652", - "node_desc": { - "logical_type": 0, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 143, - "manufacturer_code": 0, - "maximum_buffer_size": 80, - "maximum_incoming_transfer_size": 160, - "server_mask": 11265, - "maximum_outgoing_transfer_size": 160, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0400", - "input_clusters": [ - "0x0000", - "0x0006", - "0x000a", - "0x0019", - "0x0501" - ], - "output_clusters": [ - "0x0001", - "0x0020", - "0x0500", - "0x0502" - ] - }, - "2": { - "profile_id": "0xc05e", - "device_type": "0x0820", - "input_clusters": [ - "0x0000" - ], - "output_clusters": [] - } - } - }, "zha_lib_entities": {}, "neighbors": [], "routes": [] diff --git a/tests/data/legacy_devices/texas-instruments-coordinator.json b/tests/data/legacy_devices/texas-instruments-coordinator.json index ced7e6826..213495ff5 100644 --- a/tests/data/legacy_devices/texas-instruments-coordinator.json +++ b/tests/data/legacy_devices/texas-instruments-coordinator.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-02T20:22:39.227463+00:00", + "last_seen": "2026-01-06T02:18:56.659008+00:00", "available": true, "device_type": "Coordinator", "active_coordinator": false, @@ -119,52 +119,6 @@ "out_clusters": [] } }, - "original_signature": { - "manufacturer": "Texas Instruments", - "model": "Coordinator", - "node_desc": { - "logical_type": 0, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 143, - "manufacturer_code": 0, - "maximum_buffer_size": 80, - "maximum_incoming_transfer_size": 160, - "server_mask": 11265, - "maximum_outgoing_transfer_size": 160, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0400", - "input_clusters": [ - "0x0000", - "0x0006", - "0x000a", - "0x0019", - "0x0501" - ], - "output_clusters": [ - "0x0001", - "0x0020", - "0x0500", - "0x0502" - ] - }, - "2": { - "profile_id": "0xc05e", - "device_type": "0x0820", - "input_clusters": [ - "0x0000" - ], - "output_clusters": [] - } - } - }, "zha_lib_entities": {}, "neighbors": [], "routes": [] diff --git a/tests/data/legacy_devices/tyst11-czk78ptr-zk78ptr.json b/tests/data/legacy_devices/tyst11-czk78ptr-zk78ptr.json index a98833a2e..bc16bdc7e 100644 --- a/tests/data/legacy_devices/tyst11-czk78ptr-zk78ptr.json +++ b/tests/data/legacy_devices/tyst11-czk78ptr-zk78ptr.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T00:56:56.399062+00:00", + "last_seen": "2023-10-12T20:52:50", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -186,43 +186,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TYST11_czk78ptr", - "model": "zk78ptr", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 0, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 255, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 255, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0301", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0201", - "0x0204", - "0xef00" - ], - "output_clusters": [ - "0x0003", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tyzb01-8scntis1-ts0216.json b/tests/data/legacy_devices/tyzb01-8scntis1-ts0216.json index dffdddeeb..cc41d4b73 100644 --- a/tests/data/legacy_devices/tyzb01-8scntis1-ts0216.json +++ b/tests/data/legacy_devices/tyzb01-8scntis1-ts0216.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:24.533359+00:00", + "last_seen": "2023-09-19T16:14:53", "available": true, "device_type": "Router", "active_coordinator": false, @@ -185,51 +185,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TYZB01_8scntis1", - "model": "TS0216", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4619, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0403", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0500", - "0x0502", - "0x0b05" - ], - "output_clusters": [ - "0x0004", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tyzb01-mtunwanm-ts011f.json b/tests/data/legacy_devices/tyzb01-mtunwanm-ts011f.json index 1a8033aaf..f79b3d5f5 100644 --- a/tests/data/legacy_devices/tyzb01-mtunwanm-ts011f.json +++ b/tests/data/legacy_devices/tyzb01-mtunwanm-ts011f.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T00:56:58.158519+00:00", + "last_seen": "2023-10-04T13:34:15", "available": true, "device_type": "Router", "active_coordinator": false, @@ -132,41 +132,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TYZB01_mtunwanm", - "model": "TS011F", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0009", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0006", - "0x000a" - ], - "output_clusters": [ - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tyzb01-qm6djpta-ts0215-0x00000046.json b/tests/data/legacy_devices/tyzb01-qm6djpta-ts0215-0x00000046.json index 57b003069..e694131ca 100644 --- a/tests/data/legacy_devices/tyzb01-qm6djpta-ts0215-0x00000046.json +++ b/tests/data/legacy_devices/tyzb01-qm6djpta-ts0215-0x00000046.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-04-29T19:02:50.581545+00:00", + "last_seen": "2024-09-04T22:06:18", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -177,44 +177,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TYZB01_qm6djpta", - "model": "TS0215", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4619, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0401", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0020", - "0x0500", - "0x0b05" - ], - "output_clusters": [ - "0x0003", - "0x0019", - "0x0501" - ] - } - } - }, "zha_lib_entities": { "alarm_control_panel": [ { diff --git a/tests/data/legacy_devices/tz2000-k4yr34vv-sm0301.json b/tests/data/legacy_devices/tz2000-k4yr34vv-sm0301.json index 0fc1ba6ff..9483be350 100644 --- a/tests/data/legacy_devices/tz2000-k4yr34vv-sm0301.json +++ b/tests/data/legacy_devices/tz2000-k4yr34vv-sm0301.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:35.998636+00:00", + "last_seen": "2023-12-17T18:20:06", "available": true, "device_type": "Router", "active_coordinator": false, @@ -246,54 +246,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ2000_k4yr34vv", - "model": "SM0301", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4692, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0200", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0100", - "0xfc55", - "0xfc56" - ], - "output_clusters": [ - "0x0003", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-09gto2zn-ts0013.json b/tests/data/legacy_devices/tz3000-09gto2zn-ts0013.json index a61b050ca..b5383abf3 100644 --- a/tests/data/legacy_devices/tz3000-09gto2zn-ts0013.json +++ b/tests/data/legacy_devices/tz3000-09gto2zn-ts0013.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:08:50.561620+00:00", + "last_seen": "2024-11-12T07:05:15", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -220,61 +220,6 @@ "out_clusters": [] } }, - "original_signature": { - "manufacturer": "_TZ3000_09gto2zn", - "model": "TS0013", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006" - ], - "output_clusters": [ - "0x0019" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0004", - "0x0005", - "0x0006" - ], - "output_clusters": [] - }, - "3": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0004", - "0x0005", - "0x0006" - ], - "output_clusters": [] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-1o6x1bl0-ts0201-0x00000041.json b/tests/data/legacy_devices/tz3000-1o6x1bl0-ts0201-0x00000041.json index 428a42d3c..7cae108f5 100644 --- a/tests/data/legacy_devices/tz3000-1o6x1bl0-ts0201-0x00000041.json +++ b/tests/data/legacy_devices/tz3000-1o6x1bl0-ts0201-0x00000041.json @@ -144,43 +144,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_1o6x1bl0", - "model": "TS0201", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0302", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0402", - "0xe002" - ], - "output_clusters": [ - "0x0003", - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-2putqrmw-ts011f.json b/tests/data/legacy_devices/tz3000-2putqrmw-ts011f.json index 064e9d539..3ce793e3c 100644 --- a/tests/data/legacy_devices/tz3000-2putqrmw-ts011f.json +++ b/tests/data/legacy_devices/tz3000-2putqrmw-ts011f.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:33.753463+00:00", + "last_seen": "2023-05-04T22:14:06", "available": true, "device_type": "Router", "active_coordinator": false, @@ -375,46 +375,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_2putqrmw", - "model": "TS011F", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x010a", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0702", - "0x0b04", - "0xe000", - "0xe001" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-2xlvlnez-ts011f.json b/tests/data/legacy_devices/tz3000-2xlvlnez-ts011f.json index 8366fcae2..ce986b308 100644 --- a/tests/data/legacy_devices/tz3000-2xlvlnez-ts011f.json +++ b/tests/data/legacy_devices/tz3000-2xlvlnez-ts011f.json @@ -484,55 +484,6 @@ "out_clusters": [] } }, - "original_signature": { - "manufacturer": "_TZ3000_2xlvlnez", - "model": "TS011F", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4660, - "maximum_buffer_size": 108, - "maximum_incoming_transfer_size": 0, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 0, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0009", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0702", - "0x0b04", - "0xe001" - ], - "output_clusters": [] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0009", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0xe001" - ], - "output_clusters": [] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-3ias4w4o-ts011f-0x0000004e.json b/tests/data/legacy_devices/tz3000-3ias4w4o-ts011f-0x0000004e.json index 849ad9925..9b1f2f301 100644 --- a/tests/data/legacy_devices/tz3000-3ias4w4o-ts011f-0x0000004e.json +++ b/tests/data/legacy_devices/tz3000-3ias4w4o-ts011f-0x0000004e.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:46.568594+00:00", + "last_seen": "2025-03-09T17:02:02", "available": true, "device_type": "Router", "active_coordinator": false, @@ -478,46 +478,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_3ias4w4o", - "model": "TS011F", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x010a", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0702", - "0x0b04", - "0xe000", - "0xe001" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-5e235jpa-ts0042.json b/tests/data/legacy_devices/tz3000-5e235jpa-ts0042.json index f52637ef7..505ca75db 100644 --- a/tests/data/legacy_devices/tz3000-5e235jpa-ts0042.json +++ b/tests/data/legacy_devices/tz3000-5e235jpa-ts0042.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:39:39.233270+00:00", + "last_seen": "2023-09-13T10:30:09", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -129,49 +129,6 @@ "out_clusters": [] } }, - "original_signature": { - "manufacturer": "_TZ3000_5e235jpa", - "model": "TS0042", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0006", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0006" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0006", - "input_clusters": [ - "0x0001", - "0x0006" - ], - "output_clusters": [] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tz3000-5fkufhn1-ts0502a.json b/tests/data/legacy_devices/tz3000-5fkufhn1-ts0502a.json index 64d3610d5..bd8efe08b 100644 --- a/tests/data/legacy_devices/tz3000-5fkufhn1-ts0502a.json +++ b/tests/data/legacy_devices/tz3000-5fkufhn1-ts0502a.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:22.323577+00:00", + "last_seen": "2023-12-28T13:56:13", "available": true, "device_type": "Router", "active_coordinator": false, @@ -259,53 +259,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_5fkufhn1", - "model": "TS0502A", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x010c", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0300", - "0x1000" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-5ity3zyu-ts0121.json b/tests/data/legacy_devices/tz3000-5ity3zyu-ts0121.json index 6e82f328d..2cde06f08 100644 --- a/tests/data/legacy_devices/tz3000-5ity3zyu-ts0121.json +++ b/tests/data/legacy_devices/tz3000-5ity3zyu-ts0121.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:42.336702+00:00", + "last_seen": "2024-12-30T00:49:36", "available": true, "device_type": "Router", "active_coordinator": false, @@ -353,45 +353,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_5ity3zyu", - "model": "TS0121", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0702", - "0x0b04", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-8nyaanzb-ts011f.json b/tests/data/legacy_devices/tz3000-8nyaanzb-ts011f.json index 3097ec245..a923b7599 100644 --- a/tests/data/legacy_devices/tz3000-8nyaanzb-ts011f.json +++ b/tests/data/legacy_devices/tz3000-8nyaanzb-ts011f.json @@ -16,7 +16,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:39:38.265380+00:00", + "last_seen": "2023-09-15T21:27:19+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -201,63 +201,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_8nyaanzb", - "model": "TS011F", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x010a", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0xe000", - "0xe001" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x010a", - "input_clusters": [ - "0x0004", - "0x0005", - "0x0006", - "0xe001" - ], - "output_clusters": [] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-a37eix1s-ts0004.json b/tests/data/legacy_devices/tz3000-a37eix1s-ts0004.json index a594ec16a..3fc24e13a 100644 --- a/tests/data/legacy_devices/tz3000-a37eix1s-ts0004.json +++ b/tests/data/legacy_devices/tz3000-a37eix1s-ts0004.json @@ -16,7 +16,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:21.273607+00:00", + "last_seen": "2023-06-26T18:55:40+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -269,91 +269,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_a37eix1s", - "model": "TS0004", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0xe000", - "0xe001" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0xe000", - "0xe001" - ], - "output_clusters": [] - }, - "3": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0xe000", - "0xe001" - ], - "output_clusters": [] - }, - "4": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0xe000", - "0xe001" - ], - "output_clusters": [] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-a9buwvb7-ts0726.json b/tests/data/legacy_devices/tz3000-a9buwvb7-ts0726.json index f529abda3..fc848d124 100644 --- a/tests/data/legacy_devices/tz3000-a9buwvb7-ts0726.json +++ b/tests/data/legacy_devices/tz3000-a9buwvb7-ts0726.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:24.447359+00:00", + "last_seen": "2023-05-06T18:45:51", "available": true, "device_type": "Router", "active_coordinator": false, @@ -454,109 +454,6 @@ "out_clusters": [] } }, - "original_signature": { - "manufacturer": "_TZ3000_a9buwvb7", - "model": "TS0726", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0004", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0xe000", - "0xe001" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0004", - "input_clusters": [ - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0xe000", - "0xe001" - ], - "output_clusters": [] - }, - "3": { - "profile_id": "0x0104", - "device_type": "0x0004", - "input_clusters": [ - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0xe000", - "0xe001" - ], - "output_clusters": [] - }, - "4": { - "profile_id": "0x0104", - "device_type": "0x0004", - "input_clusters": [ - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0xe000", - "0xe001" - ], - "output_clusters": [] - }, - "5": { - "profile_id": "0x0104", - "device_type": "0x0004", - "input_clusters": [ - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0xe000", - "0xe001" - ], - "output_clusters": [] - }, - "6": { - "profile_id": "0x0104", - "device_type": "0x0004", - "input_clusters": [ - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0xe000", - "0xe001" - ], - "output_clusters": [] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-adkvzooy-ts0042.json b/tests/data/legacy_devices/tz3000-adkvzooy-ts0042.json index 7b28ca869..ae5ae161c 100644 --- a/tests/data/legacy_devices/tz3000-adkvzooy-ts0042.json +++ b/tests/data/legacy_devices/tz3000-adkvzooy-ts0042.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:32.543036+00:00", + "last_seen": "2024-07-12T09:46:15", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -104,49 +104,6 @@ "out_clusters": [] } }, - "original_signature": { - "manufacturer": "_TZ3000_adkvzooy", - "model": "TS0042", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0006", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0006" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0006", - "input_clusters": [ - "0x0001", - "0x0006" - ], - "output_clusters": [] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tz3000-aghwaexm-ts0001.json b/tests/data/legacy_devices/tz3000-aghwaexm-ts0001.json index e8af227c6..0b5db657d 100644 --- a/tests/data/legacy_devices/tz3000-aghwaexm-ts0001.json +++ b/tests/data/legacy_devices/tz3000-aghwaexm-ts0001.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:39:39.205237+00:00", + "last_seen": "2023-12-21T13:55:34", "available": true, "device_type": "Router", "active_coordinator": false, @@ -113,42 +113,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_aghwaexm", - "model": "TS0001", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4660, - "maximum_buffer_size": 108, - "maximum_incoming_transfer_size": 0, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 0, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0xe001" - ], - "output_clusters": [ - "0x000a" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-bgsigers-ts0201-0x00000040.json b/tests/data/legacy_devices/tz3000-bgsigers-ts0201-0x00000040.json index cd38d0787..003d4ac49 100644 --- a/tests/data/legacy_devices/tz3000-bgsigers-ts0201-0x00000040.json +++ b/tests/data/legacy_devices/tz3000-bgsigers-ts0201-0x00000040.json @@ -145,43 +145,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_bgsigers", - "model": "TS0201", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0302", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0402", - "0x0405" - ], - "output_clusters": [ - "0x0003", - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-bjawzodf-ty0201.json b/tests/data/legacy_devices/tz3000-bjawzodf-ty0201.json index 2a0db38a8..63690cef4 100644 --- a/tests/data/legacy_devices/tz3000-bjawzodf-ty0201.json +++ b/tests/data/legacy_devices/tz3000-bjawzodf-ty0201.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:21.247729+00:00", + "last_seen": "2023-12-25T23:54:54+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -128,41 +128,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_bjawzodf", - "model": "TY0201", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0302", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0402", - "0x0405" - ], - "output_clusters": [ - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-cehuw1lw-ts011f-0x0000004d.json b/tests/data/legacy_devices/tz3000-cehuw1lw-ts011f-0x0000004d.json index 3f7a3f53e..2c707c2b3 100644 --- a/tests/data/legacy_devices/tz3000-cehuw1lw-ts011f-0x0000004d.json +++ b/tests/data/legacy_devices/tz3000-cehuw1lw-ts011f-0x0000004d.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-04-29T19:02:49.206964+00:00", + "last_seen": "2025-03-26T23:26:51", "available": true, "device_type": "Router", "active_coordinator": false, @@ -394,46 +394,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_cehuw1lw", - "model": "TS011F", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x010a", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0702", - "0x0b04", - "0xe000", - "0xe001" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-cicwjqth-ts011f-0x74013001.json b/tests/data/legacy_devices/tz3000-cicwjqth-ts011f-0x74013001.json index aa87ad495..e77fe95d0 100644 --- a/tests/data/legacy_devices/tz3000-cicwjqth-ts011f-0x74013001.json +++ b/tests/data/legacy_devices/tz3000-cicwjqth-ts011f-0x74013001.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:40:55.617674+00:00", + "last_seen": "2024-05-17T23:14:24", "available": true, "device_type": "Router", "active_coordinator": false, @@ -388,46 +388,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_cicwjqth", - "model": "TS011F", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x010a", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0702", - "0x0b04", - "0xe000", - "0xe001" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-dbou1ap4-ts0505a.json b/tests/data/legacy_devices/tz3000-dbou1ap4-ts0505a.json index 3ae742e95..3f15f121c 100644 --- a/tests/data/legacy_devices/tz3000-dbou1ap4-ts0505a.json +++ b/tests/data/legacy_devices/tz3000-dbou1ap4-ts0505a.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:34.561107+00:00", + "last_seen": "2023-06-03T20:24:28+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -252,53 +252,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_dbou1ap4", - "model": "TS0505A", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x010d", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0300", - "0x1000" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-dowj6gyi-ts0201.json b/tests/data/legacy_devices/tz3000-dowj6gyi-ts0201.json index d016b87d9..bf7a7ba84 100644 --- a/tests/data/legacy_devices/tz3000-dowj6gyi-ts0201.json +++ b/tests/data/legacy_devices/tz3000-dowj6gyi-ts0201.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:33.099820+00:00", + "last_seen": "2023-09-16T11:13:51", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -138,43 +138,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_dowj6gyi", - "model": "TS0201", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0302", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0402", - "0x0405" - ], - "output_clusters": [ - "0x0003", - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-e2uieqop-ts0001.json b/tests/data/legacy_devices/tz3000-e2uieqop-ts0001.json index ff40a7ad5..158689101 100644 --- a/tests/data/legacy_devices/tz3000-e2uieqop-ts0001.json +++ b/tests/data/legacy_devices/tz3000-e2uieqop-ts0001.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:40:55.732313+00:00", + "last_seen": "2024-01-28T19:15:45", "available": true, "device_type": "Router", "active_coordinator": false, @@ -166,44 +166,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_e2uieqop", - "model": "TS0001", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0xe000", - "0xe001" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-eamtuojw-ts0201-0x00000041.json b/tests/data/legacy_devices/tz3000-eamtuojw-ts0201-0x00000041.json index b1d6a8c07..1ac1beec6 100644 --- a/tests/data/legacy_devices/tz3000-eamtuojw-ts0201-0x00000041.json +++ b/tests/data/legacy_devices/tz3000-eamtuojw-ts0201-0x00000041.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:40:25.699326+00:00", + "last_seen": "2024-07-01T14:17:18", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -135,41 +135,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_eamtuojw", - "model": "TS0201", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4151, - "maximum_buffer_size": 127, - "maximum_incoming_transfer_size": 100, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 100, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0302", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0402", - "0x0405" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tz3000-empogkya-ts0003.json b/tests/data/legacy_devices/tz3000-empogkya-ts0003.json index 15804d5be..7fba0287a 100644 --- a/tests/data/legacy_devices/tz3000-empogkya-ts0003.json +++ b/tests/data/legacy_devices/tz3000-empogkya-ts0003.json @@ -16,7 +16,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:21.336951+00:00", + "last_seen": "2023-06-26T18:50:10+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -222,78 +222,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_empogkya", - "model": "TS0003", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0xe000", - "0xe001" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0xe000", - "0xe001" - ], - "output_clusters": [] - }, - "3": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0xe000", - "0xe001" - ], - "output_clusters": [] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-fdxihpp7-ts0001.json b/tests/data/legacy_devices/tz3000-fdxihpp7-ts0001.json index badc35f33..682841029 100644 --- a/tests/data/legacy_devices/tz3000-fdxihpp7-ts0001.json +++ b/tests/data/legacy_devices/tz3000-fdxihpp7-ts0001.json @@ -431,42 +431,6 @@ "out_clusters": [] } }, - "original_signature": { - "manufacturer": "_TZ3000_fdxihpp7", - "model": "TS0001", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4660, - "maximum_buffer_size": 108, - "maximum_incoming_transfer_size": 0, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 0, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0702", - "0x0b04", - "0xe001" - ], - "output_clusters": [] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-gbm10jnj-ts0043-0x00000042.json b/tests/data/legacy_devices/tz3000-gbm10jnj-ts0043-0x00000042.json index 7d0217072..a8ae66f99 100644 --- a/tests/data/legacy_devices/tz3000-gbm10jnj-ts0043-0x00000042.json +++ b/tests/data/legacy_devices/tz3000-gbm10jnj-ts0043-0x00000042.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:08:51.497500+00:00", + "last_seen": "2025-02-01T12:15:28", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -212,58 +212,6 @@ "out_clusters": [] } }, - "original_signature": { - "manufacturer": "_TZ3000_gbm10jnj", - "model": "TS0043", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0006", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0006" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0006", - "input_clusters": [ - "0x0001", - "0x0006" - ], - "output_clusters": [] - }, - "3": { - "profile_id": "0x0104", - "device_type": "0x0006", - "input_clusters": [ - "0x0001", - "0x0006" - ], - "output_clusters": [] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tz3000-gjpgagal-ts0049-0x00000049.json b/tests/data/legacy_devices/tz3000-gjpgagal-ts0049-0x00000049.json index b0ea1a76f..46f934113 100644 --- a/tests/data/legacy_devices/tz3000-gjpgagal-ts0049-0x00000049.json +++ b/tests/data/legacy_devices/tz3000-gjpgagal-ts0049-0x00000049.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:43.910685+00:00", + "last_seen": "2024-08-25T16:35:05", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -161,44 +161,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_gjpgagal", - "model": "TS0049", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0000", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0xe001" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-gjrubzje-ts0001.json b/tests/data/legacy_devices/tz3000-gjrubzje-ts0001.json index 6a3a6984b..9e3377811 100644 --- a/tests/data/legacy_devices/tz3000-gjrubzje-ts0001.json +++ b/tests/data/legacy_devices/tz3000-gjrubzje-ts0001.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T00:56:57.071293+00:00", + "last_seen": "2023-08-22T19:16:31", "available": true, "device_type": "Router", "active_coordinator": false, @@ -375,46 +375,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_gjrubzje", - "model": "TS0001", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0702", - "0x0b04", - "0xe000", - "0xe001" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-hafsqare-ts0011-0x00000050.json b/tests/data/legacy_devices/tz3000-hafsqare-ts0011-0x00000050.json index 01791ea72..86fa6a505 100644 --- a/tests/data/legacy_devices/tz3000-hafsqare-ts0011-0x00000050.json +++ b/tests/data/legacy_devices/tz3000-hafsqare-ts0011-0x00000050.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:39.351005+00:00", + "last_seen": "2025-02-17T11:14:27", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -145,41 +145,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_hafsqare", - "model": "TS0011", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0103", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006" - ], - "output_clusters": [ - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-isw9u95y-ts0201-0x00000040.json b/tests/data/legacy_devices/tz3000-isw9u95y-ts0201-0x00000040.json index 1ceee8177..362e5d3af 100644 --- a/tests/data/legacy_devices/tz3000-isw9u95y-ts0201-0x00000040.json +++ b/tests/data/legacy_devices/tz3000-isw9u95y-ts0201-0x00000040.json @@ -196,45 +196,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_isw9u95y", - "model": "TS0201", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 74, - "maximum_incoming_transfer_size": 80, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 80, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0302", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0400", - "0x0402", - "0x0405", - "0x0500", - "0xe002" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tz3000-j1xl73iw-ts130f-0x00000046.json b/tests/data/legacy_devices/tz3000-j1xl73iw-ts130f-0x00000046.json index 49d3603fc..dd064b3ca 100644 --- a/tests/data/legacy_devices/tz3000-j1xl73iw-ts130f-0x00000046.json +++ b/tests/data/legacy_devices/tz3000-j1xl73iw-ts130f-0x00000046.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:40:25.875836+00:00", + "last_seen": "2024-04-24T13:38:43+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -359,63 +359,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_j1xl73iw", - "model": "TS130F", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0202", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0006", - "0x0102", - "0xe001" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0202", - "input_clusters": [ - "0x0004", - "0x0005", - "0x0006", - "0x0102", - "0xe001" - ], - "output_clusters": [] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "cover": [ { diff --git a/tests/data/legacy_devices/tz3000-kmsbwdol-ts130f.json b/tests/data/legacy_devices/tz3000-kmsbwdol-ts130f.json index 4790aca93..d091e30de 100644 --- a/tests/data/legacy_devices/tz3000-kmsbwdol-ts130f.json +++ b/tests/data/legacy_devices/tz3000-kmsbwdol-ts130f.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:40:56.508624+00:00", + "last_seen": "2023-07-26T01:35:06+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -281,63 +281,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_kmsbwdol", - "model": "TS130F", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0202", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0006", - "0x0102", - "0xe001" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0202", - "input_clusters": [ - "0x0004", - "0x0005", - "0x0006", - "0x0102", - "0xe001" - ], - "output_clusters": [] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "cover": [ { diff --git a/tests/data/legacy_devices/tz3000-kqvb5akv-ts0001-0x0000004a.json b/tests/data/legacy_devices/tz3000-kqvb5akv-ts0001-0x0000004a.json index 7c4393b2c..9ccfb893f 100644 --- a/tests/data/legacy_devices/tz3000-kqvb5akv-ts0001-0x0000004a.json +++ b/tests/data/legacy_devices/tz3000-kqvb5akv-ts0001-0x0000004a.json @@ -488,54 +488,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_kqvb5akv", - "model": "TS0001", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0702", - "0x0b04", - "0xe000", - "0xe001" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-lf56vpxj-ts0202.json b/tests/data/legacy_devices/tz3000-lf56vpxj-ts0202.json index 738d9d1bb..f29fdc8f0 100644 --- a/tests/data/legacy_devices/tz3000-lf56vpxj-ts0202.json +++ b/tests/data/legacy_devices/tz3000-lf56vpxj-ts0202.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:40:55.826816+00:00", + "last_seen": "2024-06-20T17:14:05", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -121,43 +121,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_lf56vpxj", - "model": "TS0202", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0402", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0500" - ], - "output_clusters": [ - "0x0006", - "0x000a", - "0x0019", - "0x1000" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tz3000-llfaquvp-ts0012.json b/tests/data/legacy_devices/tz3000-llfaquvp-ts0012.json index 9c13b96ae..1dca358a1 100644 --- a/tests/data/legacy_devices/tz3000-llfaquvp-ts0012.json +++ b/tests/data/legacy_devices/tz3000-llfaquvp-ts0012.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:21.664378+00:00", + "last_seen": "2024-03-17T22:15:56+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -234,55 +234,6 @@ "out_clusters": [] } }, - "original_signature": { - "manufacturer": "_TZ3000_llfaquvp", - "model": "TS0012", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0xe000", - "0xe001" - ], - "output_clusters": [ - "0x0019", - "0x000a" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0004", - "0x0005", - "0x0006", - "0xe001" - ], - "output_clusters": [] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-lotmgthb-ts011f.json b/tests/data/legacy_devices/tz3000-lotmgthb-ts011f.json index 6d1f0f510..36d52e4cb 100644 --- a/tests/data/legacy_devices/tz3000-lotmgthb-ts011f.json +++ b/tests/data/legacy_devices/tz3000-lotmgthb-ts011f.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:40:26.669852+00:00", + "last_seen": "2023-10-14T19:23:55", "available": true, "device_type": "Router", "active_coordinator": false, @@ -375,46 +375,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_lotmgthb", - "model": "TS011F", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x010a", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0702", - "0x0b04", - "0xe000", - "0xe001" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-lrgccsxm-ts0013.json b/tests/data/legacy_devices/tz3000-lrgccsxm-ts0013.json index 659ce8676..89a2308b8 100644 --- a/tests/data/legacy_devices/tz3000-lrgccsxm-ts0013.json +++ b/tests/data/legacy_devices/tz3000-lrgccsxm-ts0013.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T00:56:56.535436+00:00", + "last_seen": "2023-08-15T06:58:50", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -193,64 +193,6 @@ "out_clusters": [] } }, - "original_signature": { - "manufacturer": "_TZ3000_lrgccsxm", - "model": "TS0013", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0003", - "0x0004", - "0x0005", - "0x0006" - ], - "output_clusters": [] - }, - "3": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0003", - "0x0004", - "0x0005", - "0x0006" - ], - "output_clusters": [] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-ltiqubue-ts130f.json b/tests/data/legacy_devices/tz3000-ltiqubue-ts130f.json index d29f2de5b..1f0e0b633 100644 --- a/tests/data/legacy_devices/tz3000-ltiqubue-ts130f.json +++ b/tests/data/legacy_devices/tz3000-ltiqubue-ts130f.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:22.165364+00:00", + "last_seen": "2023-10-04T12:36:09+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -114,42 +114,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_ltiqubue", - "model": "TS130F", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0202", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0102" - ], - "output_clusters": [ - "0x000a" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-mg4dy6z6-ts0202.json b/tests/data/legacy_devices/tz3000-mg4dy6z6-ts0202.json index 60b57dda2..cd5d8aef2 100644 --- a/tests/data/legacy_devices/tz3000-mg4dy6z6-ts0202.json +++ b/tests/data/legacy_devices/tz3000-mg4dy6z6-ts0202.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:21.434628+00:00", + "last_seen": "2023-10-16T09:33:41", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -171,43 +171,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_mg4dy6z6", - "model": "TS0202", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0402", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0500" - ], - "output_clusters": [ - "0x0006", - "0x000a", - "0x0019", - "0x1000" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tz3000-mgusv51k-ts0052-0x00000044.json b/tests/data/legacy_devices/tz3000-mgusv51k-ts0052-0x00000044.json index 47acd4ba6..103d8d9ce 100644 --- a/tests/data/legacy_devices/tz3000-mgusv51k-ts0052-0x00000044.json +++ b/tests/data/legacy_devices/tz3000-mgusv51k-ts0052-0x00000044.json @@ -211,53 +211,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_mgusv51k", - "model": "TS0052", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0xe000", - "0xe001" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-mkhkxx1p-ts0001-0x00000048.json b/tests/data/legacy_devices/tz3000-mkhkxx1p-ts0001-0x00000048.json index a00b2da33..a4da04877 100644 --- a/tests/data/legacy_devices/tz3000-mkhkxx1p-ts0001-0x00000048.json +++ b/tests/data/legacy_devices/tz3000-mkhkxx1p-ts0001-0x00000048.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:21.916851+00:00", + "last_seen": "2024-02-21T15:15:29+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -419,46 +419,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_mkhkxx1p", - "model": "TS0001", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0702", - "0x0b04", - "0xe000", - "0xe001" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-mugyhz0q-ts0207-0x00000041.json b/tests/data/legacy_devices/tz3000-mugyhz0q-ts0207-0x00000041.json index c591b9e32..dcd66c160 100644 --- a/tests/data/legacy_devices/tz3000-mugyhz0q-ts0207-0x00000041.json +++ b/tests/data/legacy_devices/tz3000-mugyhz0q-ts0207-0x00000041.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:08:52.492498+00:00", + "last_seen": "2025-02-27T11:35:54", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -155,41 +155,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_mugyhz0q", - "model": "TS0207", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0402", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0500" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tz3000-npzfdcof-ts0001.json b/tests/data/legacy_devices/tz3000-npzfdcof-ts0001.json index 93fd3cfb2..54cf63a44 100644 --- a/tests/data/legacy_devices/tz3000-npzfdcof-ts0001.json +++ b/tests/data/legacy_devices/tz3000-npzfdcof-ts0001.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:39:38.327632+00:00", + "last_seen": "2024-06-07T14:04:43", "available": true, "device_type": "Router", "active_coordinator": false, @@ -412,46 +412,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_npzfdcof", - "model": "TS0001", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0702", - "0x0b04", - "0xe000", - "0xe001" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-o4mkahkc-ts0202-0x00000046.json b/tests/data/legacy_devices/tz3000-o4mkahkc-ts0202-0x00000046.json index 8fc6d63ec..fda0ed911 100644 --- a/tests/data/legacy_devices/tz3000-o4mkahkc-ts0202-0x00000046.json +++ b/tests/data/legacy_devices/tz3000-o4mkahkc-ts0202-0x00000046.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:08:52.562691+00:00", + "last_seen": "2025-01-16T08:47:12", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -171,43 +171,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_o4mkahkc", - "model": "TS0202", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0402", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0500" - ], - "output_clusters": [ - "0x0006", - "0x000a", - "0x0019", - "0x1000" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tz3000-pl5v1yyy-ts011f-0x00000050.json b/tests/data/legacy_devices/tz3000-pl5v1yyy-ts011f-0x00000050.json index 29ca37d22..88c892bdf 100644 --- a/tests/data/legacy_devices/tz3000-pl5v1yyy-ts011f-0x00000050.json +++ b/tests/data/legacy_devices/tz3000-pl5v1yyy-ts011f-0x00000050.json @@ -689,98 +689,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_pl5v1yyy", - "model": "TS011F", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x010a", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0702", - "0x0b04", - "0xe000", - "0xe001" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x010a", - "input_clusters": [ - "0x0004", - "0x0005", - "0x0006", - "0xe001" - ], - "output_clusters": [] - }, - "3": { - "profile_id": "0x0104", - "device_type": "0x010a", - "input_clusters": [ - "0x0004", - "0x0005", - "0x0006", - "0xe001" - ], - "output_clusters": [] - }, - "4": { - "profile_id": "0x0104", - "device_type": "0x010a", - "input_clusters": [ - "0x0004", - "0x0005", - "0x0006", - "0xe001" - ], - "output_clusters": [] - }, - "5": { - "profile_id": "0x0104", - "device_type": "0x010a", - "input_clusters": [ - "0x0004", - "0x0005", - "0x0006", - "0xe001" - ], - "output_clusters": [] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-qa8s8vca-ts130f.json b/tests/data/legacy_devices/tz3000-qa8s8vca-ts130f.json index eb316e19a..1c0de80d8 100644 --- a/tests/data/legacy_devices/tz3000-qa8s8vca-ts130f.json +++ b/tests/data/legacy_devices/tz3000-qa8s8vca-ts130f.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:22.189732+00:00", + "last_seen": "2023-11-07T14:15:58", "available": true, "device_type": "Router", "active_coordinator": false, @@ -146,51 +146,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_qa8s8vca", - "model": "TS130F", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0203", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0006", - "0x0102", - "0xe001" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "cover": [ { diff --git a/tests/data/legacy_devices/tz3000-qqdbccb3-ts130f.json b/tests/data/legacy_devices/tz3000-qqdbccb3-ts130f.json index 32b3289aa..f50602420 100644 --- a/tests/data/legacy_devices/tz3000-qqdbccb3-ts130f.json +++ b/tests/data/legacy_devices/tz3000-qqdbccb3-ts130f.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T00:56:56.765485+00:00", + "last_seen": "2024-05-06T05:19:55", "available": true, "device_type": "Router", "active_coordinator": false, @@ -102,41 +102,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_qqdbccb3", - "model": "TS130F", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4107, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0202", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0102" - ], - "output_clusters": [ - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-rbl8c85w-ts0012.json b/tests/data/legacy_devices/tz3000-rbl8c85w-ts0012.json index c0488968a..8a3e9f5d6 100644 --- a/tests/data/legacy_devices/tz3000-rbl8c85w-ts0012.json +++ b/tests/data/legacy_devices/tz3000-rbl8c85w-ts0012.json @@ -157,53 +157,6 @@ "out_clusters": [] } }, - "original_signature": { - "manufacturer": "_TZ3000_rbl8c85w", - "model": "TS0012", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0003", - "0x0004", - "0x0005", - "0x0006" - ], - "output_clusters": [] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-snq47izk-ts0013.json b/tests/data/legacy_devices/tz3000-snq47izk-ts0013.json index 27a0a77a8..837d25448 100644 --- a/tests/data/legacy_devices/tz3000-snq47izk-ts0013.json +++ b/tests/data/legacy_devices/tz3000-snq47izk-ts0013.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:33.907798+00:00", + "last_seen": "2023-08-21T16:07:22", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -193,64 +193,6 @@ "out_clusters": [] } }, - "original_signature": { - "manufacturer": "_TZ3000_snq47izk", - "model": "TS0013", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0003", - "0x0004", - "0x0005", - "0x0006" - ], - "output_clusters": [] - }, - "3": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0003", - "0x0004", - "0x0005", - "0x0006" - ], - "output_clusters": [] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-tgddllx4-ts0001.json b/tests/data/legacy_devices/tz3000-tgddllx4-ts0001.json index f8ec4d389..aaeba08d7 100644 --- a/tests/data/legacy_devices/tz3000-tgddllx4-ts0001.json +++ b/tests/data/legacy_devices/tz3000-tgddllx4-ts0001.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:46.320977+00:00", + "last_seen": "2024-10-10T19:22:12+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -335,42 +335,6 @@ "out_clusters": [] } }, - "original_signature": { - "manufacturer": "_TZ3000_tgddllx4", - "model": "TS0001", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4660, - "maximum_buffer_size": 108, - "maximum_incoming_transfer_size": 0, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 0, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0702", - "0x0b04", - "0xe001" - ], - "output_clusters": [] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-u3oupgdy-ts0004-0x00000050.json b/tests/data/legacy_devices/tz3000-u3oupgdy-ts0004-0x00000050.json index 57e7a3771..712636796 100644 --- a/tests/data/legacy_devices/tz3000-u3oupgdy-ts0004-0x00000050.json +++ b/tests/data/legacy_devices/tz3000-u3oupgdy-ts0004-0x00000050.json @@ -16,7 +16,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:23.396838+00:00", + "last_seen": "2024-05-02T18:35:29+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -421,85 +421,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_u3oupgdy", - "model": "TS0004", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0xe000", - "0xe001" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0004", - "0x0005", - "0x0006", - "0xe001" - ], - "output_clusters": [] - }, - "3": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0004", - "0x0005", - "0x0006", - "0xe001" - ], - "output_clusters": [] - }, - "4": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0004", - "0x0005", - "0x0006", - "0xe001" - ], - "output_clusters": [] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-u4kojtqz-ts0002-0x10013607.json b/tests/data/legacy_devices/tz3000-u4kojtqz-ts0002-0x10013607.json index 280df5f70..f82e5a866 100644 --- a/tests/data/legacy_devices/tz3000-u4kojtqz-ts0002-0x10013607.json +++ b/tests/data/legacy_devices/tz3000-u4kojtqz-ts0002-0x10013607.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:08:53.284344+00:00", + "last_seen": "2025-05-11T00:15:44", "available": true, "device_type": "Router", "active_coordinator": false, @@ -230,61 +230,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_u4kojtqz", - "model": "TS0002", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4107, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x000a", - "0xe000", - "0xe001" - ], - "output_clusters": [ - "0x0019" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x000a", - "0xe000", - "0xe001" - ], - "output_clusters": [ - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-vw8pawxa-ts130f-0x00000048.json b/tests/data/legacy_devices/tz3000-vw8pawxa-ts130f-0x00000048.json index bafdbc4c2..1d4aef1b4 100644 --- a/tests/data/legacy_devices/tz3000-vw8pawxa-ts130f-0x00000048.json +++ b/tests/data/legacy_devices/tz3000-vw8pawxa-ts130f-0x00000048.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:34.906394+00:00", + "last_seen": "2024-03-27T19:21:51", "available": true, "device_type": "Router", "active_coordinator": false, @@ -240,43 +240,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_vw8pawxa", - "model": "TS130F", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0202", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0006", - "0x0102", - "0xe001" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "cover": [ { diff --git a/tests/data/legacy_devices/tz3000-w0qqde0g-ts011f.json b/tests/data/legacy_devices/tz3000-w0qqde0g-ts011f.json index b79edbd4a..aed0f2c2f 100644 --- a/tests/data/legacy_devices/tz3000-w0qqde0g-ts011f.json +++ b/tests/data/legacy_devices/tz3000-w0qqde0g-ts011f.json @@ -16,7 +16,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-04-29T19:02:49.015724+00:00", + "last_seen": "2024-10-10T19:13:53+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -379,42 +379,6 @@ "out_clusters": [] } }, - "original_signature": { - "manufacturer": "_TZ3000_w0qqde0g", - "model": "TS011F", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4660, - "maximum_buffer_size": 108, - "maximum_incoming_transfer_size": 0, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 0, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0702", - "0x0b04", - "0xe001" - ], - "output_clusters": [] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-wcgyhnp3-ts0222-0x00000045.json b/tests/data/legacy_devices/tz3000-wcgyhnp3-ts0222-0x00000045.json index 5fb95229c..84fe4a384 100644 --- a/tests/data/legacy_devices/tz3000-wcgyhnp3-ts0222-0x00000045.json +++ b/tests/data/legacy_devices/tz3000-wcgyhnp3-ts0222-0x00000045.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T00:56:57.205153+00:00", + "last_seen": "2024-05-11T16:54:36", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -196,45 +196,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_wcgyhnp3", - "model": "TS0222", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0106", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0400", - "0x0402", - "0x0405", - "0x0500" - ], - "output_clusters": [ - "0x0003", - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tz3000-wkai4ga5-ts0044.json b/tests/data/legacy_devices/tz3000-wkai4ga5-ts0044.json index 1fae422ad..7a0cb31f1 100644 --- a/tests/data/legacy_devices/tz3000-wkai4ga5-ts0044.json +++ b/tests/data/legacy_devices/tz3000-wkai4ga5-ts0044.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:33.032393+00:00", + "last_seen": "2023-05-14T18:34:15", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -169,67 +169,6 @@ "out_clusters": [] } }, - "original_signature": { - "manufacturer": "_TZ3000_wkai4ga5", - "model": "TS0044", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0006", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0006" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0006", - "input_clusters": [ - "0x0001", - "0x0006" - ], - "output_clusters": [] - }, - "3": { - "profile_id": "0x0104", - "device_type": "0x0006", - "input_clusters": [ - "0x0001", - "0x0006" - ], - "output_clusters": [] - }, - "4": { - "profile_id": "0x0104", - "device_type": "0x0006", - "input_clusters": [ - "0x0001", - "0x0006" - ], - "output_clusters": [] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tz3000-wkr3jqmr-ts0004.json b/tests/data/legacy_devices/tz3000-wkr3jqmr-ts0004.json index 36d6d6b8a..d79b4a450 100644 --- a/tests/data/legacy_devices/tz3000-wkr3jqmr-ts0004.json +++ b/tests/data/legacy_devices/tz3000-wkr3jqmr-ts0004.json @@ -16,7 +16,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:40:55.507241+00:00", + "last_seen": "2023-08-21T19:25:12+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -444,85 +444,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_wkr3jqmr", - "model": "TS0004", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0xe000", - "0xe001" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0004", - "0x0005", - "0x0006", - "0xe001" - ], - "output_clusters": [] - }, - "3": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0004", - "0x0005", - "0x0006", - "0xe001" - ], - "output_clusters": [] - }, - "4": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0004", - "0x0005", - "0x0006", - "0xe001" - ], - "output_clusters": [] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-xa9g7rxs-ts1002.json b/tests/data/legacy_devices/tz3000-xa9g7rxs-ts1002.json index cd851e866..13ce0df7d 100644 --- a/tests/data/legacy_devices/tz3000-xa9g7rxs-ts1002.json +++ b/tests/data/legacy_devices/tz3000-xa9g7rxs-ts1002.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:41.952749+00:00", + "last_seen": "2024-11-19T17:46:10", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -166,50 +166,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_xa9g7rxs", - "model": "TS1002", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0105", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0004", - "0x1000", - "0xe001" - ], - "output_clusters": [ - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x000a", - "0x0019", - "0x0300", - "0x1000" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-xabckq1v-ts004f.json b/tests/data/legacy_devices/tz3000-xabckq1v-ts004f.json index 692cb203c..a3c7ab14f 100644 --- a/tests/data/legacy_devices/tz3000-xabckq1v-ts004f.json +++ b/tests/data/legacy_devices/tz3000-xabckq1v-ts004f.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:22.258028+00:00", + "last_seen": "2024-03-20T15:43:05", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -230,73 +230,6 @@ "out_clusters": [] } }, - "original_signature": { - "manufacturer": "_TZ3000_xabckq1v", - "model": "TS004F", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0820", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0004", - "0x1000" - ], - "output_clusters": [ - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x000a", - "0x0019", - "0x0300", - "0x1000" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0820", - "input_clusters": [ - "0x0006" - ], - "output_clusters": [] - }, - "3": { - "profile_id": "0x0104", - "device_type": "0x0820", - "input_clusters": [ - "0x0006" - ], - "output_clusters": [] - }, - "4": { - "profile_id": "0x0104", - "device_type": "0x0820", - "input_clusters": [ - "0x0006" - ], - "output_clusters": [] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-xkap8wtb-ts000f.json b/tests/data/legacy_devices/tz3000-xkap8wtb-ts000f.json index f8ddb4688..a03b30157 100644 --- a/tests/data/legacy_devices/tz3000-xkap8wtb-ts000f.json +++ b/tests/data/legacy_devices/tz3000-xkap8wtb-ts000f.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:34.741896+00:00", + "last_seen": "2023-06-29T20:14:02+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -371,55 +371,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_xkap8wtb", - "model": "TS000F", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4107, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x000a", - "0x0702", - "0x0b04", - "0x1000", - "0x1888", - "0xe000" - ], - "output_clusters": [ - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-xr3htd96-ts0201.json b/tests/data/legacy_devices/tz3000-xr3htd96-ts0201.json index b277b5d86..51ac7797e 100644 --- a/tests/data/legacy_devices/tz3000-xr3htd96-ts0201.json +++ b/tests/data/legacy_devices/tz3000-xr3htd96-ts0201.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:33.073969+00:00", + "last_seen": "2023-09-16T11:20:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -138,43 +138,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_xr3htd96", - "model": "TS0201", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0302", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0402", - "0x0405" - ], - "output_clusters": [ - "0x0003", - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-xxacnuab-ts0004.json b/tests/data/legacy_devices/tz3000-xxacnuab-ts0004.json index 9c4f13f53..b0900069b 100644 --- a/tests/data/legacy_devices/tz3000-xxacnuab-ts0004.json +++ b/tests/data/legacy_devices/tz3000-xxacnuab-ts0004.json @@ -16,7 +16,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:40:55.759067+00:00", + "last_seen": "2024-01-29T00:20:32+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -408,85 +408,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_xxacnuab", - "model": "TS0004", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0xe000", - "0xe001" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0004", - "0x0005", - "0x0006", - "0xe001" - ], - "output_clusters": [] - }, - "3": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0004", - "0x0005", - "0x0006", - "0xe001" - ], - "output_clusters": [] - }, - "4": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0004", - "0x0005", - "0x0006", - "0xe001" - ], - "output_clusters": [] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-ynmowqk2-ts011f.json b/tests/data/legacy_devices/tz3000-ynmowqk2-ts011f.json index 2f0ac05c6..5af49b6e6 100644 --- a/tests/data/legacy_devices/tz3000-ynmowqk2-ts011f.json +++ b/tests/data/legacy_devices/tz3000-ynmowqk2-ts011f.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:21.598840+00:00", + "last_seen": "2023-11-06T19:28:56", "available": true, "device_type": "Router", "active_coordinator": false, @@ -381,46 +381,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_ynmowqk2", - "model": "TS011F", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x010a", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0702", - "0x0b04", - "0xe000", - "0xe001" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-zl1kmjqx-0x10013001.json b/tests/data/legacy_devices/tz3000-zl1kmjqx-0x10013001.json index 77cd60eac..e5a420484 100644 --- a/tests/data/legacy_devices/tz3000-zl1kmjqx-0x10013001.json +++ b/tests/data/legacy_devices/tz3000-zl1kmjqx-0x10013001.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:44.452861+00:00", + "last_seen": "2024-10-16T15:35:55+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -141,41 +141,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_zl1kmjqx", - "model": "", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0302", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0402", - "0x0405" - ], - "output_clusters": [ - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-zl1kmjqx-ty0201.json b/tests/data/legacy_devices/tz3000-zl1kmjqx-ty0201.json index f7e566ca7..76988ab71 100644 --- a/tests/data/legacy_devices/tz3000-zl1kmjqx-ty0201.json +++ b/tests/data/legacy_devices/tz3000-zl1kmjqx-ty0201.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:24.640892+00:00", + "last_seen": "2023-12-20T15:09:32+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -134,41 +134,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_zl1kmjqx", - "model": "TY0201", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0302", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0402", - "0x0405" - ], - "output_clusters": [ - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3000-zw7yf6yk-ts0001-0x00000048.json b/tests/data/legacy_devices/tz3000-zw7yf6yk-ts0001-0x00000048.json index d835fcbcd..519545878 100644 --- a/tests/data/legacy_devices/tz3000-zw7yf6yk-ts0001-0x00000048.json +++ b/tests/data/legacy_devices/tz3000-zw7yf6yk-ts0001-0x00000048.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-04-29T19:02:48.981411+00:00", + "last_seen": "2024-10-10T09:03:10", "available": true, "device_type": "Router", "active_coordinator": false, @@ -382,46 +382,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3000_zw7yf6yk", - "model": "TS0001", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0702", - "0x0b04", - "0xe000", - "0xe001" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3002-vaq2bfcu-ts0726-0x00000051.json b/tests/data/legacy_devices/tz3002-vaq2bfcu-ts0726-0x00000051.json index fd5824660..74770c487 100644 --- a/tests/data/legacy_devices/tz3002-vaq2bfcu-ts0726-0x00000051.json +++ b/tests/data/legacy_devices/tz3002-vaq2bfcu-ts0726-0x00000051.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:40.437930+00:00", + "last_seen": "2025-03-02T14:30:32", "available": true, "device_type": "Router", "active_coordinator": false, @@ -366,107 +366,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3002_vaq2bfcu", - "model": "TS0726", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0004", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0xe000", - "0xe001" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0004", - "input_clusters": [ - "0x0004", - "0x0005", - "0x0006", - "0xe001" - ], - "output_clusters": [] - }, - "3": { - "profile_id": "0x0104", - "device_type": "0x0004", - "input_clusters": [ - "0x0004", - "0x0005", - "0x0006", - "0xe001" - ], - "output_clusters": [] - }, - "4": { - "profile_id": "0x0104", - "device_type": "0x0004", - "input_clusters": [ - "0x0004", - "0x0005", - "0x0006", - "0xe001" - ], - "output_clusters": [] - }, - "5": { - "profile_id": "0x0104", - "device_type": "0x0004", - "input_clusters": [ - "0x0004", - "0x0005", - "0x0006", - "0xe001" - ], - "output_clusters": [] - }, - "6": { - "profile_id": "0x0104", - "device_type": "0x0004", - "input_clusters": [ - "0x0004", - "0x0005", - "0x0006", - "0xe001" - ], - "output_clusters": [] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3040-bb6xaihh-ts0202-0x00000048.json b/tests/data/legacy_devices/tz3040-bb6xaihh-ts0202-0x00000048.json index ba489dd10..cc59d3775 100644 --- a/tests/data/legacy_devices/tz3040-bb6xaihh-ts0202-0x00000048.json +++ b/tests/data/legacy_devices/tz3040-bb6xaihh-ts0202-0x00000048.json @@ -114,14 +114,14 @@ "name": "cie_addr", "zcl_type": "EUI64", "value": [ - 50, - 79, - 50, - 2, - 0, - 141, - 21, - 0 + 172, + 101, + 33, + 254, + 255, + 191, + 6, + 228 ] }, { @@ -194,45 +194,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3040_bb6xaihh", - "model": "TS0202", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0402", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0004", - "0x0500" - ], - "output_clusters": [ - "0x0004", - "0x0006", - "0x000a", - "0x0019", - "0x1000" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tz3210-09hzmirw-ts0502b-0x0000005b.json b/tests/data/legacy_devices/tz3210-09hzmirw-ts0502b-0x0000005b.json index 2f1311585..3cc4a3613 100644 --- a/tests/data/legacy_devices/tz3210-09hzmirw-ts0502b-0x0000005b.json +++ b/tests/data/legacy_devices/tz3210-09hzmirw-ts0502b-0x0000005b.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-04-29T19:02:49.147917+00:00", + "last_seen": "2025-01-23T17:03:40", "available": true, "device_type": "Router", "active_coordinator": false, @@ -253,54 +253,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3210_09hzmirw", - "model": "TS0502B", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x010c", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0300", - "0x1000", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3210-0jxeoadc-ts0049.json b/tests/data/legacy_devices/tz3210-0jxeoadc-ts0049.json index fb869efb8..0f2b41991 100644 --- a/tests/data/legacy_devices/tz3210-0jxeoadc-ts0049.json +++ b/tests/data/legacy_devices/tz3210-0jxeoadc-ts0049.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:40.276688+00:00", + "last_seen": "2025-03-05T07:54:23+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -152,41 +152,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3210_0jxeoadc", - "model": "TS0049", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0000", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0006", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "number": [ { diff --git a/tests/data/legacy_devices/tz3210-3mpwqzuu-ts110e-0x00000040.json b/tests/data/legacy_devices/tz3210-3mpwqzuu-ts110e-0x00000040.json index c460327ec..847f1b0f8 100644 --- a/tests/data/legacy_devices/tz3210-3mpwqzuu-ts110e-0x00000040.json +++ b/tests/data/legacy_devices/tz3210-3mpwqzuu-ts110e-0x00000040.json @@ -1,7 +1,7 @@ { "version": 2, "ieee": "ab:cd:ef:12:01:e4:a9:87", - "nwk": "0x68A5", + "nwk": "0x0DE5", "manufacturer": "_TZ3210_3mpwqzuu", "model": "TS110E", "friendly_manufacturer": "_TZ3210_3mpwqzuu", @@ -12,9 +12,9 @@ "exposes_features": [], "manufacturer_code": 4417, "power_source": "Mains", - "lqi": 176, - "rssi": -67, - "last_seen": "2025-07-29T11:39:42.554072+00:00", + "lqi": 164, + "rssi": -59, + "last_seen": "2026-01-03T22:31:44.852144+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -56,6 +56,12 @@ "name": "model", "zcl_type": "string", "value": "TS110E" + }, + { + "id": "0x4000", + "name": "sw_build_id", + "zcl_type": "string", + "unsupported": true } ] }, @@ -78,12 +84,6 @@ "cluster_id": "0x0006", "endpoint_attribute": "on_off", "attributes": [ - { - "id": "0xfffd", - "name": "cluster_revision", - "zcl_type": "uint16", - "unsupported": true - }, { "id": "0x0000", "name": "on_off", @@ -108,17 +108,11 @@ "cluster_id": "0x0008", "endpoint_attribute": "level", "attributes": [ - { - "id": "0xfffd", - "name": "cluster_revision", - "zcl_type": "uint16", - "unsupported": true - }, { "id": "0x0000", "name": "current_level", "zcl_type": "uint8", - "value": 254 + "value": 3 }, { "id": "0x0014", @@ -126,18 +120,6 @@ "zcl_type": "uint8", "unsupported": true }, - { - "id": "0x0003", - "name": "max_level", - "zcl_type": "uint8", - "unsupported": true - }, - { - "id": "0x0002", - "name": "min_level", - "zcl_type": "uint8", - "unsupported": true - }, { "id": "0x0013", "name": "off_transition_time", @@ -162,6 +144,12 @@ "zcl_type": "uint16", "unsupported": true }, + { + "id": "0x000f", + "name": "options", + "zcl_type": "map8", + "unsupported": true + }, { "id": "0x4000", "name": "start_up_current_level", @@ -250,7 +238,7 @@ "id": "0x0000", "name": "current_level", "zcl_type": "uint8", - "value": 254 + "value": 231 }, { "id": "0x0014", @@ -283,9 +271,9 @@ "unsupported": true }, { - "id": "0xfffe", - "name": "reporting_status", - "zcl_type": "enum8", + "id": "0x000f", + "name": "options", + "zcl_type": "map8", "unsupported": true }, { @@ -320,65 +308,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3210_3mpwqzuu", - "model": "TS110E", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0101", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0101", - "input_clusters": [ - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0xef00" - ], - "output_clusters": [] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { @@ -443,7 +372,7 @@ "class_name": "Light", "available": true, "on": false, - "brightness": 254, + "brightness": 3, "xy_color": null, "color_temp": null, "effect_list": [ @@ -494,7 +423,7 @@ "class_name": "Light", "available": true, "on": false, - "brightness": 254, + "brightness": 231, "xy_color": null, "color_temp": null, "effect_list": [ @@ -542,7 +471,7 @@ "state": { "class_name": "LQISensor", "available": true, - "state": 176 + "state": 164 } }, { @@ -570,7 +499,7 @@ "state": { "class_name": "RSSISensor", "available": true, - "state": -67 + "state": -59 } } ], diff --git a/tests/data/legacy_devices/tz3210-3ulg9kpo-ts0021.json b/tests/data/legacy_devices/tz3210-3ulg9kpo-ts0021.json index d64436164..715c82283 100644 --- a/tests/data/legacy_devices/tz3210-3ulg9kpo-ts0021.json +++ b/tests/data/legacy_devices/tz3210-3ulg9kpo-ts0021.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T00:56:57.868769+00:00", + "last_seen": "2023-12-19T14:30:33+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -148,41 +148,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3210_3ulg9kpo", - "model": "TS0021", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0402", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0500", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tz3210-5rta89nj-ts0601.json b/tests/data/legacy_devices/tz3210-5rta89nj-ts0601.json index d8f115203..7df484d30 100644 --- a/tests/data/legacy_devices/tz3210-5rta89nj-ts0601.json +++ b/tests/data/legacy_devices/tz3210-5rta89nj-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:40:27.134538+00:00", + "last_seen": "2024-06-28T18:46:39", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -184,42 +184,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3210_5rta89nj", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0402", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0500", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tz3210-bfwvfyx1-ts0505b.json b/tests/data/legacy_devices/tz3210-bfwvfyx1-ts0505b.json index 1eb662659..7700f9ac6 100644 --- a/tests/data/legacy_devices/tz3210-bfwvfyx1-ts0505b.json +++ b/tests/data/legacy_devices/tz3210-bfwvfyx1-ts0505b.json @@ -253,54 +253,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3210_bfwvfyx1", - "model": "TS0505B", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x010d", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0300", - "0x1000", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3210-comkuwws-ts0502b-0x00000065.json b/tests/data/legacy_devices/tz3210-comkuwws-ts0502b-0x00000065.json index f2388b487..0b435adfb 100644 --- a/tests/data/legacy_devices/tz3210-comkuwws-ts0502b-0x00000065.json +++ b/tests/data/legacy_devices/tz3210-comkuwws-ts0502b-0x00000065.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:45.293937+00:00", + "last_seen": "2025-01-21T15:23:35", "available": true, "device_type": "Router", "active_coordinator": false, @@ -253,54 +253,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3210_comkuwws", - "model": "TS0502B", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x010c", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0300", - "0x1000", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3210-dwytrmda-ts130f-0x00000042.json b/tests/data/legacy_devices/tz3210-dwytrmda-ts130f-0x00000042.json index 14ccef364..02ed39fde 100644 --- a/tests/data/legacy_devices/tz3210-dwytrmda-ts130f-0x00000042.json +++ b/tests/data/legacy_devices/tz3210-dwytrmda-ts130f-0x00000042.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:40:27.236557+00:00", + "last_seen": "2023-10-22T15:29:41+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -280,49 +280,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3210_dwytrmda", - "model": "TS130F", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0202", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0102" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "cover": [ { diff --git a/tests/data/legacy_devices/tz3210-ehcanwyc-ts0502b-0x00000065.json b/tests/data/legacy_devices/tz3210-ehcanwyc-ts0502b-0x00000065.json index 1a342476f..78c81aecc 100644 --- a/tests/data/legacy_devices/tz3210-ehcanwyc-ts0502b-0x00000065.json +++ b/tests/data/legacy_devices/tz3210-ehcanwyc-ts0502b-0x00000065.json @@ -277,54 +277,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3210_ehcanwyc", - "model": "TS0502B", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x010c", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0300", - "0x1000", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3210-ekjc2rzh-ts0225.json b/tests/data/legacy_devices/tz3210-ekjc2rzh-ts0225.json index 1a27ef388..75c54ab69 100644 --- a/tests/data/legacy_devices/tz3210-ekjc2rzh-ts0225.json +++ b/tests/data/legacy_devices/tz3210-ekjc2rzh-ts0225.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:08:51.237573+00:00", + "last_seen": "2024-08-29T17:19:41", "available": true, "device_type": "Router", "active_coordinator": false, @@ -130,41 +130,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3210_ekjc2rzh", - "model": "TS0225", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0402", - "input_clusters": [ - "0x0000", - "0x0500", - "0xe002", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tz3210-hxtfthp5-ts0505b.json b/tests/data/legacy_devices/tz3210-hxtfthp5-ts0505b.json index 98b450521..ee42f4a8f 100644 --- a/tests/data/legacy_devices/tz3210-hxtfthp5-ts0505b.json +++ b/tests/data/legacy_devices/tz3210-hxtfthp5-ts0505b.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:32.731642+00:00", + "last_seen": "2024-02-08T15:13:09", "available": true, "device_type": "Router", "active_coordinator": false, @@ -264,54 +264,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3210_hxtfthp5", - "model": "TS0505B", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x010d", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0300", - "0x1000", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3210-j4pdtz9v-ts0001-0x00000062.json b/tests/data/legacy_devices/tz3210-j4pdtz9v-ts0001-0x00000062.json index e52168dba..8b870b8cc 100644 --- a/tests/data/legacy_devices/tz3210-j4pdtz9v-ts0001-0x00000062.json +++ b/tests/data/legacy_devices/tz3210-j4pdtz9v-ts0001-0x00000062.json @@ -1,7 +1,7 @@ { "version": 2, "ieee": "ab:cd:ef:12:c8:12:1d:0b", - "nwk": "0xB576", + "nwk": "0xE96B", "manufacturer": "_TZ3210_j4pdtz9v", "model": "TS0001", "friendly_manufacturer": "_TZ3210_j4pdtz9v", @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-04-29T19:02:50.365399+00:00", + "last_seen": "2025-03-03T14:08:27+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -87,6 +87,12 @@ "cluster_id": "0x0001", "endpoint_attribute": "power", "attributes": [ + { + "id": "0x0021", + "name": "battery_percentage_remaining", + "zcl_type": "uint8", + "value": 150 + }, { "id": "0x0033", "name": "battery_quantity", @@ -121,7 +127,7 @@ "id": "0x0000", "name": "on_off", "zcl_type": "bool", - "value": 1 + "value": 0 }, { "id": "0x4003", @@ -139,7 +145,7 @@ "id": "0xef65", "name": "mode", "zcl_type": "enum8", - "value": 1 + "value": 0 } ] } @@ -165,41 +171,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3210_j4pdtz9v", - "model": "TS0001", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0000", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0006", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "number": [ { @@ -326,7 +297,7 @@ "state": { "class_name": "ZCLEnumSelectEntity", "available": true, - "state": "SWITCH" + "state": "CLICK" } }, { @@ -443,7 +414,7 @@ "state": { "class_name": "Battery", "available": true, - "state": null, + "state": 75.0, "battery_size": "CR2", "battery_quantity": 1 }, @@ -477,7 +448,7 @@ }, "state": { "class_name": "Switch", - "state": 1, + "state": 0, "available": true } }, diff --git a/tests/data/legacy_devices/tz3210-k1msuvg6-ts110e-0x00000040.json b/tests/data/legacy_devices/tz3210-k1msuvg6-ts110e-0x00000040.json index 84c009369..98df59038 100644 --- a/tests/data/legacy_devices/tz3210-k1msuvg6-ts110e-0x00000040.json +++ b/tests/data/legacy_devices/tz3210-k1msuvg6-ts110e-0x00000040.json @@ -284,52 +284,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3210_k1msuvg6", - "model": "TS110E", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0101", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3210-kjafhwd2-ts0210-0x00000044.json b/tests/data/legacy_devices/tz3210-kjafhwd2-ts0210-0x00000044.json index ae73986a9..d7cb5f570 100644 --- a/tests/data/legacy_devices/tz3210-kjafhwd2-ts0210-0x00000044.json +++ b/tests/data/legacy_devices/tz3210-kjafhwd2-ts0210-0x00000044.json @@ -198,47 +198,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3210_kjafhwd2", - "model": "TS0210", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0402", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0004", - "0x0005", - "0x0500", - "0xef00" - ], - "output_clusters": [ - "0x0003", - "0x0004", - "0x0006", - "0x000a", - "0x0019", - "0x1000" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tz3210-klv2wul0-ts0505b-0x00000065.json b/tests/data/legacy_devices/tz3210-klv2wul0-ts0505b-0x00000065.json index 51a215ac3..134044c77 100644 --- a/tests/data/legacy_devices/tz3210-klv2wul0-ts0505b-0x00000065.json +++ b/tests/data/legacy_devices/tz3210-klv2wul0-ts0505b-0x00000065.json @@ -253,54 +253,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3210_klv2wul0", - "model": "TS0505B", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x010d", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0300", - "0x1000", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3210-ncw88jfq-ts0201-0x00000083.json b/tests/data/legacy_devices/tz3210-ncw88jfq-ts0201-0x00000083.json index 88490e798..6090ac300 100644 --- a/tests/data/legacy_devices/tz3210-ncw88jfq-ts0201-0x00000083.json +++ b/tests/data/legacy_devices/tz3210-ncw88jfq-ts0201-0x00000083.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:21.780395+00:00", + "last_seen": "2024-04-07T22:12:35", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -140,42 +140,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3210_ncw88jfq", - "model": "TS0201", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0302", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0402", - "0x0405", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tz3210-qkj7rujp-ts0201-0x00000043.json b/tests/data/legacy_devices/tz3210-qkj7rujp-ts0201-0x00000043.json index af48283cf..1bc730fd5 100644 --- a/tests/data/legacy_devices/tz3210-qkj7rujp-ts0201-0x00000043.json +++ b/tests/data/legacy_devices/tz3210-qkj7rujp-ts0201-0x00000043.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T00:56:58.282672+00:00", + "last_seen": "2024-06-17T15:59:26", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -150,44 +150,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3210_qkj7rujp", - "model": "TS0201", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0402", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0004", - "0x0402", - "0x0405", - "0xe002" - ], - "output_clusters": [ - "0x0004", - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tz3210-r5afgmkl-ts0505b-0x10013607.json b/tests/data/legacy_devices/tz3210-r5afgmkl-ts0505b-0x10013607.json index 01eaa6d5e..eafd5a100 100644 --- a/tests/data/legacy_devices/tz3210-r5afgmkl-ts0505b-0x10013607.json +++ b/tests/data/legacy_devices/tz3210-r5afgmkl-ts0505b-0x10013607.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:40.220408+00:00", + "last_seen": "2025-03-10T20:09:27", "available": true, "device_type": "Router", "active_coordinator": false, @@ -243,47 +243,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3210_r5afgmkl", - "model": "TS0505B", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4107, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x010d", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0300", - "0x1000", - "0xfc01", - "0xfc03" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3210-ru41azca-ts0049-0x00000040.json b/tests/data/legacy_devices/tz3210-ru41azca-ts0049-0x00000040.json index 8feb33859..f3f6af069 100644 --- a/tests/data/legacy_devices/tz3210-ru41azca-ts0049-0x00000040.json +++ b/tests/data/legacy_devices/tz3210-ru41azca-ts0049-0x00000040.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:08:54.593533+00:00", + "last_seen": "2025-04-02T11:42:39", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -158,41 +158,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3210_ru41azca", - "model": "TS0049", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0000", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0006", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tz3210-sb8x2xci-ts0001-0x00000047.json b/tests/data/legacy_devices/tz3210-sb8x2xci-ts0001-0x00000047.json index 8db0ae8b3..89e959ed2 100644 --- a/tests/data/legacy_devices/tz3210-sb8x2xci-ts0001-0x00000047.json +++ b/tests/data/legacy_devices/tz3210-sb8x2xci-ts0001-0x00000047.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:43.650446+00:00", + "last_seen": "2025-05-03T09:46:29", "available": true, "device_type": "Router", "active_coordinator": false, @@ -141,50 +141,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3210_sb8x2xci", - "model": "TS0001", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0000", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3210-sixywxvy-ts0505b.json b/tests/data/legacy_devices/tz3210-sixywxvy-ts0505b.json index f4920a7f8..3de0f8fd5 100644 --- a/tests/data/legacy_devices/tz3210-sixywxvy-ts0505b.json +++ b/tests/data/legacy_devices/tz3210-sixywxvy-ts0505b.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:39:38.948553+00:00", + "last_seen": "2023-12-22T22:06:32", "available": true, "device_type": "Router", "active_coordinator": false, @@ -288,54 +288,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3210_sixywxvy", - "model": "TS0505B", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x010d", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0300", - "0x1000", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3210-tgvtvdoc-ts0207-0x00000043.json b/tests/data/legacy_devices/tz3210-tgvtvdoc-ts0207-0x00000043.json index df8c0a25d..5a3a79af2 100644 --- a/tests/data/legacy_devices/tz3210-tgvtvdoc-ts0207-0x00000043.json +++ b/tests/data/legacy_devices/tz3210-tgvtvdoc-ts0207-0x00000043.json @@ -1,7 +1,7 @@ { "version": 2, "ieee": "ab:cd:ef:12:9b:93:04:6b", - "nwk": "0x6392", + "nwk": "0xE779", "manufacturer": "_TZ3210_tgvtvdoc", "model": "TS0207", "friendly_manufacturer": "_TZ3210_tgvtvdoc", @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-04-29T19:02:50.096093+00:00", + "last_seen": "2025-05-07T02:38:42+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -44,18 +44,25 @@ { "cluster_id": "0x0000", "endpoint_attribute": "basic", - "attributes": [] + "attributes": [ + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "_TZ3210_tgvtvdoc" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "TS0207" + } + ] }, { "cluster_id": "0x0001", "endpoint_attribute": "power", "attributes": [ - { - "id": "0x0021", - "name": "battery_percentage_remaining", - "zcl_type": "uint8", - "value": 158 - }, { "id": "0x0033", "name": "battery_quantity", @@ -73,12 +80,6 @@ "name": "battery_size", "zcl_type": "enum8", "value": 2 - }, - { - "id": "0x0020", - "name": "battery_voltage", - "zcl_type": "uint8", - "value": 0 } ] }, @@ -101,6 +102,12 @@ "name": "light_sensor_type", "zcl_type": "enum8", "value": 0 + }, + { + "id": "0x0000", + "name": "measured_value", + "zcl_type": "uint16", + "value": 20129.37224705172 } ] }, @@ -108,27 +115,6 @@ "cluster_id": "0x0500", "endpoint_attribute": "ias_zone", "attributes": [ - { - "id": "0x0010", - "name": "cie_addr", - "zcl_type": "EUI64", - "value": [ - 250, - 150, - 153, - 254, - 255, - 141, - 121, - 224 - ] - }, - { - "id": "0x0000", - "name": "zone_state", - "zcl_type": "enum8", - "value": 1 - }, { "id": "0x0002", "name": "zone_status", @@ -146,10 +132,50 @@ { "cluster_id": "0xef00", "endpoint_attribute": "tuya_manufacturer", - "attributes": [] + "attributes": [ + { + "id": "0xef66", + "name": "average_light_intensity_20mins", + "zcl_type": "uint32", + "value": 91 + }, + { + "id": "0xef68", + "name": "cleaning_reminder", + "zcl_type": "bool", + "value": 0 + }, + { + "id": "0xef69", + "name": "rain_intensity", + "zcl_type": "uint32", + "value": 0 + }, + { + "id": "0xef67", + "name": "todays_max_light_intensity", + "zcl_type": "uint32", + "value": 5262 + } + ] } ], "out_clusters": [ + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0006", + "endpoint_attribute": "on_off", + "attributes": [] + }, { "cluster_id": "0x000a", "endpoint_attribute": "time", @@ -166,48 +192,15 @@ "value": 67 } ] + }, + { + "cluster_id": "0x1000", + "endpoint_attribute": "lightlink", + "attributes": [] } ] } }, - "original_signature": { - "manufacturer": "_TZ3210_tgvtvdoc", - "model": "TS0207", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0402", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0004", - "0x0005", - "0x0400", - "0x0500", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { @@ -237,6 +230,33 @@ "state": false } }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:9b:93:04:6b-1-6", + "migrate_unique_ids": [], + "platform": "binary_sensor", + "class_name": "Opening", + "translation_key": null, + "translation_placeholders": null, + "device_class": "opening", + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:9b:93:04:6b", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "on_off" + }, + "state": { + "class_name": "Opening", + "available": true, + "state": false + } + }, { "info_object": { "fallback_name": "Cleaning reminder", @@ -347,10 +367,9 @@ "state": { "class_name": "Battery", "available": true, - "state": 79.0, + "state": null, "battery_size": "Other", - "battery_quantity": 1, - "battery_voltage": 0.0 + "battery_quantity": 1 }, "extra_state_attributes": [ "battery_quantity", @@ -383,7 +402,7 @@ "state": { "class_name": "Illuminance", "available": true, - "state": null + "state": 103 } }, { @@ -411,7 +430,7 @@ "state": { "class_name": "Sensor", "available": true, - "state": null + "state": 91 } }, { @@ -439,7 +458,7 @@ "state": { "class_name": "Sensor", "available": true, - "state": null + "state": 0 } }, { @@ -467,7 +486,7 @@ "state": { "class_name": "Sensor", "available": true, - "state": null + "state": 5262 } } ], diff --git a/tests/data/legacy_devices/tz3210-u1dreag7-ts0502b-0x00000065.json b/tests/data/legacy_devices/tz3210-u1dreag7-ts0502b-0x00000065.json index 70e098f55..a6d133610 100644 --- a/tests/data/legacy_devices/tz3210-u1dreag7-ts0502b-0x00000065.json +++ b/tests/data/legacy_devices/tz3210-u1dreag7-ts0502b-0x00000065.json @@ -271,54 +271,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3210_u1dreag7", - "model": "TS0502B", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x010c", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0300", - "0x1000", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3210-ue9kyjnj-ts0502b-0x00000059.json b/tests/data/legacy_devices/tz3210-ue9kyjnj-ts0502b-0x00000059.json index 6de63ec05..2270a4519 100644 --- a/tests/data/legacy_devices/tz3210-ue9kyjnj-ts0502b-0x00000059.json +++ b/tests/data/legacy_devices/tz3210-ue9kyjnj-ts0502b-0x00000059.json @@ -253,54 +253,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3210_ue9kyjnj", - "model": "TS0502B", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x010c", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0300", - "0x1000", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3210-umi6vbsz-ts0505b.json b/tests/data/legacy_devices/tz3210-umi6vbsz-ts0505b.json index 8e90c5257..035b83cf7 100644 --- a/tests/data/legacy_devices/tz3210-umi6vbsz-ts0505b.json +++ b/tests/data/legacy_devices/tz3210-umi6vbsz-ts0505b.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:26:31.795503+00:00", + "last_seen": "2024-06-15T10:36:48", "available": true, "device_type": "Router", "active_coordinator": false, @@ -271,54 +271,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3210_umi6vbsz", - "model": "TS0505B", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x010d", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0300", - "0x1000", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3210-up3pngle-ts0205.json b/tests/data/legacy_devices/tz3210-up3pngle-ts0205.json index e2c4e2c4d..8bf60ebaf 100644 --- a/tests/data/legacy_devices/tz3210-up3pngle-ts0205.json +++ b/tests/data/legacy_devices/tz3210-up3pngle-ts0205.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:34.787266+00:00", + "last_seen": "2023-09-26T23:42:24+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -166,47 +166,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3210_up3pngle", - "model": "TS0205", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0402", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0004", - "0x0005", - "0x0500", - "0xef00" - ], - "output_clusters": [ - "0x0003", - "0x0004", - "0x0006", - "0x000a", - "0x0019", - "0x1000" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tz3210-wuhzzfqg-ts0202-0x000000a1.json b/tests/data/legacy_devices/tz3210-wuhzzfqg-ts0202-0x000000a1.json index b78322245..c76809e93 100644 --- a/tests/data/legacy_devices/tz3210-wuhzzfqg-ts0202-0x000000a1.json +++ b/tests/data/legacy_devices/tz3210-wuhzzfqg-ts0202-0x000000a1.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:39:38.685965+00:00", + "last_seen": "2024-03-15T15:50:11", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -271,60 +271,6 @@ "out_clusters": [] } }, - "original_signature": { - "manufacturer": "_TZ3210_wuhzzfqg", - "model": "TS0202", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0402", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0500", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0302", - "input_clusters": [ - "0x0001", - "0x0402", - "0x0405" - ], - "output_clusters": [] - }, - "3": { - "profile_id": "0x0104", - "device_type": "0x0106", - "input_clusters": [ - "0x0001", - "0x0400" - ], - "output_clusters": [] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tz3218-7fiyo3kv-ts000f-0x00000051.json b/tests/data/legacy_devices/tz3218-7fiyo3kv-ts000f-0x00000051.json index 25dd048f6..b4c9e9e48 100644 --- a/tests/data/legacy_devices/tz3218-7fiyo3kv-ts000f-0x00000051.json +++ b/tests/data/legacy_devices/tz3218-7fiyo3kv-ts000f-0x00000051.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:45.648553+00:00", + "last_seen": "2025-03-11T09:20:29", "available": true, "device_type": "Router", "active_coordinator": false, @@ -144,53 +144,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3218_7fiyo3kv", - "model": "TS000F", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0xe000", - "0xe001", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3218-awarhusb-ts0225.json b/tests/data/legacy_devices/tz3218-awarhusb-ts0225.json index cd69d9639..6f768f16e 100644 --- a/tests/data/legacy_devices/tz3218-awarhusb-ts0225.json +++ b/tests/data/legacy_devices/tz3218-awarhusb-ts0225.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:39:40.021974+00:00", + "last_seen": "2023-09-20T15:30:32", "available": true, "device_type": "Router", "active_coordinator": false, @@ -143,45 +143,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3218_awarhusb", - "model": "TS0225", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0402", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0500", - "0x4000", - "0xe002", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tz3218-ya5d6wth-ts000f-0x00000064.json b/tests/data/legacy_devices/tz3218-ya5d6wth-ts000f-0x00000064.json index d5b50f556..07392d84b 100644 --- a/tests/data/legacy_devices/tz3218-ya5d6wth-ts000f-0x00000064.json +++ b/tests/data/legacy_devices/tz3218-ya5d6wth-ts000f-0x00000064.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:40.983130+00:00", + "last_seen": "2024-10-08T22:14:50", "available": true, "device_type": "Router", "active_coordinator": false, @@ -288,89 +288,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3218_ya5d6wth", - "model": "TS000F", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0xe000", - "0xe001", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0xe001" - ], - "output_clusters": [] - }, - "3": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0xe001" - ], - "output_clusters": [] - }, - "4": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0xe001" - ], - "output_clusters": [] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz3290-7v1k4vufotpowp9z-ts1201.json b/tests/data/legacy_devices/tz3290-7v1k4vufotpowp9z-ts1201.json index 092a74b86..7011c075b 100644 --- a/tests/data/legacy_devices/tz3290-7v1k4vufotpowp9z-ts1201.json +++ b/tests/data/legacy_devices/tz3290-7v1k4vufotpowp9z-ts1201.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-04-29T19:02:48.925287+00:00", + "last_seen": "2024-08-11T22:12:14+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -139,52 +139,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ3290_7v1k4vufotpowp9z", - "model": "TS1201", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0xf000", - "input_clusters": [ - "0x0000", - "0xed00", - "0xe004", - "0x0004", - "0x0003", - "0x0006", - "0x0005" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tz6210-duv6fhwt-ts0601-0x00000042.json b/tests/data/legacy_devices/tz6210-duv6fhwt-ts0601-0x00000042.json index 57cd88c2d..89dd8e4dc 100644 --- a/tests/data/legacy_devices/tz6210-duv6fhwt-ts0601-0x00000042.json +++ b/tests/data/legacy_devices/tz6210-duv6fhwt-ts0601-0x00000042.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-04-29T19:02:50.307510+00:00", + "last_seen": "2025-01-09T01:16:55+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -118,44 +118,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZ6210_duv6fhwt", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4619, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0000", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0400", - "0x0406", - "0x0b05", - "0xef00" - ], - "output_clusters": [ - "0x0003", - "0x0019", - "0xef00" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tzb210-417ikxay-ts0505b-0x00000040.json b/tests/data/legacy_devices/tzb210-417ikxay-ts0505b-0x00000040.json index 84b8e8d2d..78547d404 100644 --- a/tests/data/legacy_devices/tzb210-417ikxay-ts0505b-0x00000040.json +++ b/tests/data/legacy_devices/tzb210-417ikxay-ts0505b-0x00000040.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:23.211174+00:00", + "last_seen": "2024-06-08T21:40:26", "available": true, "device_type": "Router", "active_coordinator": false, @@ -271,54 +271,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZB210_417ikxay", - "model": "TS0505B", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x010d", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0300", - "0x1000", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tze200-1n2zev06-ts0601.json b/tests/data/legacy_devices/tze200-1n2zev06-ts0601.json index 69195e7d9..1cc22f5c8 100644 --- a/tests/data/legacy_devices/tze200-1n2zev06-ts0601.json +++ b/tests/data/legacy_devices/tze200-1n2zev06-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:34.965739+00:00", + "last_seen": "2023-10-09T23:20:17+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -167,44 +167,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_1n2zev06", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0004", - "0x0005", - "0x0006", - "0x0702", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "select": [ { diff --git a/tests/data/legacy_devices/tze200-2aaelwxk-ts0225.json b/tests/data/legacy_devices/tze200-2aaelwxk-ts0225.json index c19814853..512031c1a 100644 --- a/tests/data/legacy_devices/tze200-2aaelwxk-ts0225.json +++ b/tests/data/legacy_devices/tze200-2aaelwxk-ts0225.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-04-29T19:02:49.738269+00:00", + "last_seen": "2024-10-06T01:37:44+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -484,113 +484,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_2aaelwxk", - "model": "TS0225", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0107", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0006", - "0x0400", - "0x0406", - "0xe000", - "0xef00" - ], - "output_clusters": [] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0007", - "input_clusters": [ - "0x000d" - ], - "output_clusters": [] - }, - "3": { - "profile_id": "0x0104", - "device_type": "0x0007", - "input_clusters": [ - "0x000d" - ], - "output_clusters": [] - }, - "4": { - "profile_id": "0x0104", - "device_type": "0x0007", - "input_clusters": [ - "0x000d" - ], - "output_clusters": [] - }, - "5": { - "profile_id": "0x0104", - "device_type": "0x0007", - "input_clusters": [ - "0x000d" - ], - "output_clusters": [] - }, - "6": { - "profile_id": "0x0104", - "device_type": "0x0007", - "input_clusters": [ - "0x000d" - ], - "output_clusters": [] - }, - "7": { - "profile_id": "0x0104", - "device_type": "0x0007", - "input_clusters": [ - "0x000d" - ], - "output_clusters": [] - }, - "8": { - "profile_id": "0x0104", - "device_type": "0x0007", - "input_clusters": [ - "0x000d" - ], - "output_clusters": [] - }, - "9": { - "profile_id": "0x0104", - "device_type": "0x0007", - "input_clusters": [ - "0x0012" - ], - "output_clusters": [] - }, - "10": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze200-2ekuz3dz-ts0601.json b/tests/data/legacy_devices/tze200-2ekuz3dz-ts0601.json index 342a7ebcc..2d91a6c5c 100644 --- a/tests/data/legacy_devices/tze200-2ekuz3dz-ts0601.json +++ b/tests/data/legacy_devices/tze200-2ekuz3dz-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:59.910516+00:00", + "last_seen": "2023-10-17T20:48:35", "available": true, "device_type": "Router", "active_coordinator": false, @@ -104,49 +104,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_2ekuz3dz", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-2gtsuokt-ts0601.json b/tests/data/legacy_devices/tze200-2gtsuokt-ts0601.json index 488392aa1..ce1fa9a8b 100644 --- a/tests/data/legacy_devices/tze200-2gtsuokt-ts0601.json +++ b/tests/data/legacy_devices/tze200-2gtsuokt-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:40:26.055225+00:00", + "last_seen": "2024-04-08T13:42:57", "available": true, "device_type": "Router", "active_coordinator": false, @@ -188,41 +188,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_2gtsuokt", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-2se8efxh-ts0601-0x00000048.json b/tests/data/legacy_devices/tze200-2se8efxh-ts0601-0x00000048.json index 9070a17d1..d64125664 100644 --- a/tests/data/legacy_devices/tze200-2se8efxh-ts0601-0x00000048.json +++ b/tests/data/legacy_devices/tze200-2se8efxh-ts0601-0x00000048.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:36.035292+00:00", + "last_seen": "2024-07-16T18:31:25+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -136,44 +136,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_2se8efxh", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0004", - "0x0005", - "0x0402", - "0x0408", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-3t91nb6k-ts0601-0x00000046.json b/tests/data/legacy_devices/tze200-3t91nb6k-ts0601-0x00000046.json index 394f88e8f..c92f13e7d 100644 --- a/tests/data/legacy_devices/tze200-3t91nb6k-ts0601-0x00000046.json +++ b/tests/data/legacy_devices/tze200-3t91nb6k-ts0601-0x00000046.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:35.539552+00:00", + "last_seen": "2024-03-17T13:52:56", "available": true, "device_type": "Router", "active_coordinator": false, @@ -117,49 +117,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_3t91nb6k", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-3towulqd-ts0601-0x00000046.json b/tests/data/legacy_devices/tze200-3towulqd-ts0601-0x00000046.json index f0514577f..015854fae 100644 --- a/tests/data/legacy_devices/tze200-3towulqd-ts0601-0x00000046.json +++ b/tests/data/legacy_devices/tze200-3towulqd-ts0601-0x00000046.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:46.172976+00:00", + "last_seen": "2025-04-22T18:07:18+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -170,43 +170,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_3towulqd", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0402", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0400", - "0x0406", - "0x0500", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze200-3ylew7b4-ts0601.json b/tests/data/legacy_devices/tze200-3ylew7b4-ts0601.json index dec134d54..4439d98f2 100644 --- a/tests/data/legacy_devices/tze200-3ylew7b4-ts0601.json +++ b/tests/data/legacy_devices/tze200-3ylew7b4-ts0601.json @@ -102,41 +102,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_3ylew7b4", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-4utwozi2-ts0601-0x00000043.json b/tests/data/legacy_devices/tze200-4utwozi2-ts0601-0x00000043.json index 8d3287739..69fcf36a1 100644 --- a/tests/data/legacy_devices/tze200-4utwozi2-ts0601-0x00000043.json +++ b/tests/data/legacy_devices/tze200-4utwozi2-ts0601-0x00000043.json @@ -90,42 +90,6 @@ "name": "ctrl_sequence_of_oper", "zcl_type": "enum8", "value": 2 - }, - { - "id": "0x0010", - "name": "local_temperature_calibration", - "zcl_type": "int8", - "unsupported": true - }, - { - "id": "0x0016", - "name": "max_heat_setpoint_limit", - "zcl_type": "int16", - "unsupported": true - }, - { - "id": "0x0015", - "name": "min_heat_setpoint_limit", - "zcl_type": "int16", - "unsupported": true - }, - { - "id": "0x0008", - "name": "pi_heating_demand", - "zcl_type": "uint8", - "unsupported": true - }, - { - "id": "0x0030", - "name": "setpoint_change_source", - "zcl_type": "enum8", - "unsupported": true - }, - { - "id": "0x0032", - "name": "setpoint_change_source_timestamp", - "zcl_type": "UTC", - "unsupported": true } ] }, @@ -156,42 +120,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_4utwozi2", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0201", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { @@ -402,6 +330,90 @@ "available": true, "state": null } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:ed:f9:81:44-1-513-pi_heating_demand", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "PiHeatingDemand", + "translation_key": "pi_heating_demand", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:ed:f9:81:44", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 0, + "unit": "%" + }, + "state": { + "class_name": "PiHeatingDemand", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:ed:f9:81:44-1-513-setpoint_change_source", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "SetpointChangeSource", + "translation_key": "setpoint_change_source", + "translation_placeholders": null, + "device_class": "enum", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:ed:f9:81:44", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "SetpointChangeSource", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:ed:f9:81:44-1-513-setpoint_change_source_timestamp", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "SetpointChangeSourceTimestamp", + "translation_key": "setpoint_change_source_timestamp", + "translation_placeholders": null, + "device_class": "timestamp", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:ed:f9:81:44", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "SetpointChangeSourceTimestamp", + "available": true, + "state": null + } } ], "switch": [ diff --git a/tests/data/legacy_devices/tze200-4wxtg5y9-ts0601.json b/tests/data/legacy_devices/tze200-4wxtg5y9-ts0601.json index 2385b6f7b..885fa1254 100644 --- a/tests/data/legacy_devices/tze200-4wxtg5y9-ts0601.json +++ b/tests/data/legacy_devices/tze200-4wxtg5y9-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:32.832638+00:00", + "last_seen": "2023-07-23T22:27:32", "available": true, "device_type": "Router", "active_coordinator": false, @@ -146,49 +146,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_4wxtg5y9", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-68nvbio9-ts0601.json b/tests/data/legacy_devices/tze200-68nvbio9-ts0601.json index dcb80a04f..0409609e1 100644 --- a/tests/data/legacy_devices/tze200-68nvbio9-ts0601.json +++ b/tests/data/legacy_devices/tze200-68nvbio9-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:40:26.217643+00:00", + "last_seen": "2024-04-18T14:21:58", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -252,42 +252,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_68nvbio9", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0202", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0102", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "cover": [ { diff --git a/tests/data/legacy_devices/tze200-6rdj8dzm-ts0601.json b/tests/data/legacy_devices/tze200-6rdj8dzm-ts0601.json index 9b1132f1b..9f2f16f68 100644 --- a/tests/data/legacy_devices/tze200-6rdj8dzm-ts0601.json +++ b/tests/data/legacy_devices/tze200-6rdj8dzm-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:33.475149+00:00", + "last_seen": "2024-01-30T14:28:46+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -149,42 +149,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_6rdj8dzm", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0201", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze200-7bztmfm1-ts0601-0x00000046.json b/tests/data/legacy_devices/tze200-7bztmfm1-ts0601-0x00000046.json index 3d746ae11..11d0d754e 100644 --- a/tests/data/legacy_devices/tze200-7bztmfm1-ts0601-0x00000046.json +++ b/tests/data/legacy_devices/tze200-7bztmfm1-ts0601-0x00000046.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:34.994052+00:00", + "last_seen": "2024-08-05T04:03:24+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -147,55 +147,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_7bztmfm1", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0402", - "0x0405", - "0x040d", - "0x042a", - "0x042b", - "0x042e", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-7ytb3h8u-ts0601-0x00000048.json b/tests/data/legacy_devices/tze200-7ytb3h8u-ts0601-0x00000048.json index 6bfe21592..72274998f 100644 --- a/tests/data/legacy_devices/tze200-7ytb3h8u-ts0601-0x00000048.json +++ b/tests/data/legacy_devices/tze200-7ytb3h8u-ts0601-0x00000048.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:33.716090+00:00", + "last_seen": "2024-06-16T20:15:49+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -223,44 +223,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_7ytb3h8u", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0000", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0004", - "0x0005", - "0x0006", - "0x0702", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "number": [ { diff --git a/tests/data/legacy_devices/tze200-81isopgh-ts0601-0x00000048.json b/tests/data/legacy_devices/tze200-81isopgh-ts0601-0x00000048.json index 8d9275bdc..b95818870 100644 --- a/tests/data/legacy_devices/tze200-81isopgh-ts0601-0x00000048.json +++ b/tests/data/legacy_devices/tze200-81isopgh-ts0601-0x00000048.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:35.912660+00:00", + "last_seen": "2024-05-10T02:17:13+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -253,44 +253,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_81isopgh", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0004", - "0x0005", - "0x0006", - "0x0702", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "select": [ { diff --git a/tests/data/legacy_devices/tze200-86nbew0j-ts0601.json b/tests/data/legacy_devices/tze200-86nbew0j-ts0601.json index 8d9d1eb23..f08be7aac 100644 --- a/tests/data/legacy_devices/tze200-86nbew0j-ts0601.json +++ b/tests/data/legacy_devices/tze200-86nbew0j-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:23.064633+00:00", + "last_seen": "2023-06-14T10:51:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -95,41 +95,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_86nbew0j", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-8whfphjv-ts0601-0x00000048.json b/tests/data/legacy_devices/tze200-8whfphjv-ts0601-0x00000048.json index 578669da2..3b9b2985f 100644 --- a/tests/data/legacy_devices/tze200-8whfphjv-ts0601-0x00000048.json +++ b/tests/data/legacy_devices/tze200-8whfphjv-ts0601-0x00000048.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:08:54.630585+00:00", + "last_seen": "2025-03-27T10:21:19", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -102,41 +102,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_8whfphjv", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-9xfjixap-ts0601-0x00000043.json b/tests/data/legacy_devices/tze200-9xfjixap-ts0601-0x00000043.json index 3aeeedfd6..a50188649 100644 --- a/tests/data/legacy_devices/tze200-9xfjixap-ts0601-0x00000043.json +++ b/tests/data/legacy_devices/tze200-9xfjixap-ts0601-0x00000043.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:39.217361+00:00", + "last_seen": "2024-11-10T15:58:01+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -156,42 +156,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_9xfjixap", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0201", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze200-a0syesf5-ts0601.json b/tests/data/legacy_devices/tze200-a0syesf5-ts0601.json index 6ba69fd37..0e1d06b5a 100644 --- a/tests/data/legacy_devices/tze200-a0syesf5-ts0601.json +++ b/tests/data/legacy_devices/tze200-a0syesf5-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:39:39.019738+00:00", + "last_seen": "2024-05-06T16:30:05", "available": true, "device_type": "Router", "active_coordinator": false, @@ -113,43 +113,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_a0syesf5", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "light": [ { diff --git a/tests/data/legacy_devices/tze200-a1dia7ml-ts0601.json b/tests/data/legacy_devices/tze200-a1dia7ml-ts0601.json index 44668f91f..b34f3f5b6 100644 --- a/tests/data/legacy_devices/tze200-a1dia7ml-ts0601.json +++ b/tests/data/legacy_devices/tze200-a1dia7ml-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:39:38.768045+00:00", + "last_seen": "2024-01-27T21:42:31", "available": true, "device_type": "Router", "active_coordinator": false, @@ -95,41 +95,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_a1dia7ml", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-a7sghmms-ts0601-0x00000048.json b/tests/data/legacy_devices/tze200-a7sghmms-ts0601-0x00000048.json index 9333d4def..7a5cab5f8 100644 --- a/tests/data/legacy_devices/tze200-a7sghmms-ts0601-0x00000048.json +++ b/tests/data/legacy_devices/tze200-a7sghmms-ts0601-0x00000048.json @@ -229,44 +229,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_a7sghmms", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0004", - "0x0005", - "0x0006", - "0x0702", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "number": [ { diff --git a/tests/data/legacy_devices/tze200-a7sghmms-ts0601.json b/tests/data/legacy_devices/tze200-a7sghmms-ts0601.json index b500b5e6e..51b390a00 100644 --- a/tests/data/legacy_devices/tze200-a7sghmms-ts0601.json +++ b/tests/data/legacy_devices/tze200-a7sghmms-ts0601.json @@ -149,44 +149,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_a7sghmms", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0004", - "0x0005", - "0x0006", - "0x0702", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "number": [ { diff --git a/tests/data/legacy_devices/tze200-abatw3kj-ts0601-0x00000046.json b/tests/data/legacy_devices/tze200-abatw3kj-ts0601-0x00000046.json index b44e634b3..69295df08 100644 --- a/tests/data/legacy_devices/tze200-abatw3kj-ts0601-0x00000046.json +++ b/tests/data/legacy_devices/tze200-abatw3kj-ts0601-0x00000046.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:22.675786+00:00", + "last_seen": "2024-05-05T15:47:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -117,49 +117,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_abatw3kj", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-agumlajc-ts0601.json b/tests/data/legacy_devices/tze200-agumlajc-ts0601.json index 13821c513..ae1e86758 100644 --- a/tests/data/legacy_devices/tze200-agumlajc-ts0601.json +++ b/tests/data/legacy_devices/tze200-agumlajc-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:40:25.772089+00:00", + "last_seen": "2024-02-20T19:04:09", "available": true, "device_type": "Router", "active_coordinator": false, @@ -150,41 +150,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_agumlajc", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-akjefhj5-ts0601.json b/tests/data/legacy_devices/tze200-akjefhj5-ts0601.json index a193f461e..d9d969815 100644 --- a/tests/data/legacy_devices/tze200-akjefhj5-ts0601.json +++ b/tests/data/legacy_devices/tze200-akjefhj5-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-04-29T19:02:50.246635+00:00", + "last_seen": "2024-10-11T08:57:38", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -95,41 +95,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_akjefhj5", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-aoclfnxz-ts0601.json b/tests/data/legacy_devices/tze200-aoclfnxz-ts0601.json index 8752d91c4..9edda66ee 100644 --- a/tests/data/legacy_devices/tze200-aoclfnxz-ts0601.json +++ b/tests/data/legacy_devices/tze200-aoclfnxz-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:21.866159+00:00", + "last_seen": "2023-10-26T22:36:41", "available": true, "device_type": "Router", "active_coordinator": false, @@ -239,43 +239,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_aoclfnxz", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0301", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0201", - "0x0204", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "climate": [ { diff --git a/tests/data/legacy_devices/tze200-bcusnqt8-ts0601.json b/tests/data/legacy_devices/tze200-bcusnqt8-ts0601.json index 09385bcda..b820d66bb 100644 --- a/tests/data/legacy_devices/tze200-bcusnqt8-ts0601.json +++ b/tests/data/legacy_devices/tze200-bcusnqt8-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:23.810128+00:00", + "last_seen": "2023-07-07T23:08:58", "available": true, "device_type": "Router", "active_coordinator": false, @@ -95,41 +95,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_bcusnqt8", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-bvrlmajk-ts0601.json b/tests/data/legacy_devices/tze200-bvrlmajk-ts0601.json index 0366c4be3..3fcc11cd1 100644 --- a/tests/data/legacy_devices/tze200-bvrlmajk-ts0601.json +++ b/tests/data/legacy_devices/tze200-bvrlmajk-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:21.955302+00:00", + "last_seen": "2023-11-14T16:27:19", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -95,41 +95,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_bvrlmajk", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-byzdayie-ts0601.json b/tests/data/legacy_devices/tze200-byzdayie-ts0601.json index 2b999c2c0..654abf90b 100644 --- a/tests/data/legacy_devices/tze200-byzdayie-ts0601.json +++ b/tests/data/legacy_devices/tze200-byzdayie-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:21.464250+00:00", + "last_seen": "2024-06-10T14:48:43", "available": true, "device_type": "Router", "active_coordinator": false, @@ -458,44 +458,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_byzdayie", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0006", - "0x0702", - "0x0b04", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-c88teujp-ts0601-0x00000055.json b/tests/data/legacy_devices/tze200-c88teujp-ts0601-0x00000055.json index 4ec67a698..a52ef61b2 100644 --- a/tests/data/legacy_devices/tze200-c88teujp-ts0601-0x00000055.json +++ b/tests/data/legacy_devices/tze200-c88teujp-ts0601-0x00000055.json @@ -1,7 +1,7 @@ { "version": 2, "ieee": "ab:cd:ef:12:f0:e2:89:82", - "nwk": "0xDF16", + "nwk": "0xFF47", "manufacturer": "_TZE200_c88teujp", "model": "TS0601", "friendly_manufacturer": "_TZE200_c88teujp", @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:41.528419+00:00", + "last_seen": "2025-02-07T22:02:28+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -95,7 +95,7 @@ "id": "0x0000", "name": "local_temperature", "zcl_type": "int16", - "value": 1900 + "value": 1480 }, { "id": "0x0010", @@ -107,19 +107,19 @@ "id": "0x0016", "name": "max_heat_setpoint_limit", "zcl_type": "int16", - "unsupported": true + "value": 3000 }, { "id": "0x0015", "name": "min_heat_setpoint_limit", "zcl_type": "int16", - "unsupported": true + "value": 500 }, { "id": "0x0012", "name": "occupied_heating_setpoint", "zcl_type": "int16", - "value": 2000 + "value": 2150 }, { "id": "0x0008", @@ -149,7 +149,7 @@ "id": "0x001c", "name": "system_mode", "zcl_type": "enum8", - "value": 4 + "value": 0 } ] }, @@ -158,46 +158,10 @@ "endpoint_attribute": "tuya_manufacturer", "attributes": [ { - "id": "0xef6a", - "name": "away_mode", - "zcl_type": "bool", - "value": 0 - }, - { - "id": "0xef69", - "name": "battery_low", - "zcl_type": "bool", - "value": 0 - }, - { - "id": "0xef28", - "name": "child_lock", - "zcl_type": "bool", - "value": 1 - }, - { - "id": "0xef0a", - "name": "frost_protection", - "zcl_type": "bool", - "value": 1 - }, - { - "id": "0xef82", - "name": "scale_protection", - "zcl_type": "bool", - "value": 1 - }, - { - "id": "0xef6c", - "name": "schedule_enable", - "zcl_type": "bool", - "value": 0 - }, - { - "id": "0xef08", - "name": "window_detection", - "zcl_type": "bool", - "value": 1 + "id": "0xef00", + "name": "mcu_version", + "zcl_type": "uint48", + "value": "1.0.0" } ] } @@ -223,42 +187,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_c88teujp", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0301", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0201", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { @@ -322,19 +250,19 @@ "state": { "class_name": "Thermostat", "available": true, - "current_temperature": 19.0, + "current_temperature": 14.8, "outdoor_temperature": null, - "target_temperature": 20.0, + "target_temperature": null, "target_temperature_high": null, "target_temperature_low": null, "hvac_action": null, - "hvac_mode": "heat", + "hvac_mode": "off", "preset_mode": "none", "fan_mode": "auto", - "system_mode": "[4]/heat", + "system_mode": "[0]/off", "occupancy": null, "occupied_cooling_setpoint": null, - "occupied_heating_setpoint": 2000, + "occupied_heating_setpoint": 2150, "pi_heating_demand": null, "pi_cooling_demand": null, "unoccupied_cooling_setpoint": null, @@ -353,6 +281,68 @@ } ], "number": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:f0:e2:89:82-1-513-max_heat_setpoint_limit", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "MaxHeatSetpointLimit", + "translation_key": "max_heat_setpoint_limit", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:f0:e2:89:82", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "box", + "native_max_value": 30.0, + "native_min_value": 5.0, + "native_step": 0.5, + "native_unit_of_measurement": "\u00b0C" + }, + "state": { + "class_name": "MaxHeatSetpointLimit", + "available": true, + "state": 30.0 + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:f0:e2:89:82-1-513-min_heat_setpoint_limit", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "MinHeatSetpointLimit", + "translation_key": "min_heat_setpoint_limit", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:f0:e2:89:82", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "box", + "native_max_value": 30.0, + "native_min_value": 5.0, + "native_step": 0.5, + "native_unit_of_measurement": "\u00b0C" + }, + "state": { + "class_name": "MinHeatSetpointLimit", + "available": true, + "state": 5.0 + } + }, { "info_object": { "fallback_name": "Local temperature calibration", @@ -560,7 +550,7 @@ "state": { "class_name": "ConfigurableAttributeSwitch", "available": true, - "state": true, + "state": false, "inverted": false } }, @@ -592,7 +582,7 @@ "state": { "class_name": "ConfigurableAttributeSwitch", "available": true, - "state": true, + "state": false, "inverted": false } }, @@ -624,7 +614,7 @@ "state": { "class_name": "ConfigurableAttributeSwitch", "available": true, - "state": true, + "state": false, "inverted": false } }, @@ -688,7 +678,7 @@ "state": { "class_name": "ConfigurableAttributeSwitch", "available": true, - "state": true, + "state": false, "inverted": false } } diff --git a/tests/data/legacy_devices/tze200-cirvgep4-ts0601-0x00000048.json b/tests/data/legacy_devices/tze200-cirvgep4-ts0601-0x00000048.json index 9f733bf42..0ac2352dc 100644 --- a/tests/data/legacy_devices/tze200-cirvgep4-ts0601-0x00000048.json +++ b/tests/data/legacy_devices/tze200-cirvgep4-ts0601-0x00000048.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:33.654940+00:00", + "last_seen": "2024-03-15T15:03:04+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -147,42 +147,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_cirvgep4", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0302", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0402", - "0x0405", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "select": [ { diff --git a/tests/data/legacy_devices/tze200-cpbo62rn-ts0601.json b/tests/data/legacy_devices/tze200-cpbo62rn-ts0601.json index 79c4acb7a..3cf7a7338 100644 --- a/tests/data/legacy_devices/tze200-cpbo62rn-ts0601.json +++ b/tests/data/legacy_devices/tze200-cpbo62rn-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:33.296813+00:00", + "last_seen": "2024-01-23T15:30:46", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -107,42 +107,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_cpbo62rn", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0202", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0102", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "cover": [ { diff --git a/tests/data/legacy_devices/tze200-cpmgn2cf-ts0601.json b/tests/data/legacy_devices/tze200-cpmgn2cf-ts0601.json index f20170553..2e99b07b5 100644 --- a/tests/data/legacy_devices/tze200-cpmgn2cf-ts0601.json +++ b/tests/data/legacy_devices/tze200-cpmgn2cf-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:40:26.932351+00:00", + "last_seen": "2023-07-16T15:02:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -829,125 +829,6 @@ "out_clusters": [] } }, - "original_signature": { - "manufacturer": "_TZE200_cpmgn2cf", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0301", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0004", - "0x0005", - "0x0006", - "0x0201", - "0x0204", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0000", - "input_clusters": [ - "0x0006" - ], - "output_clusters": [] - }, - "3": { - "profile_id": "0x0104", - "device_type": "0x000d", - "input_clusters": [ - "0x000d" - ], - "output_clusters": [] - }, - "4": { - "profile_id": "0x0104", - "device_type": "0x000d", - "input_clusters": [ - "0x000d" - ], - "output_clusters": [] - }, - "5": { - "profile_id": "0x0104", - "device_type": "0x000d", - "input_clusters": [ - "0x000d" - ], - "output_clusters": [] - }, - "6": { - "profile_id": "0x0104", - "device_type": "0x0000", - "input_clusters": [ - "0x0006" - ], - "output_clusters": [] - }, - "7": { - "profile_id": "0x0104", - "device_type": "0x000d", - "input_clusters": [ - "0x000d" - ], - "output_clusters": [] - }, - "8": { - "profile_id": "0x0104", - "device_type": "0x000d", - "input_clusters": [ - "0x000d" - ], - "output_clusters": [] - }, - "9": { - "profile_id": "0x0104", - "device_type": "0x000d", - "input_clusters": [ - "0x000d" - ], - "output_clusters": [] - }, - "10": { - "profile_id": "0x0104", - "device_type": "0x000d", - "input_clusters": [ - "0x000d" - ], - "output_clusters": [] - }, - "11": { - "profile_id": "0x0104", - "device_type": "0x000d", - "input_clusters": [ - "0x000d" - ], - "output_clusters": [] - } - } - }, "zha_lib_entities": { "climate": [ { diff --git a/tests/data/legacy_devices/tze200-crq3r3la-ck-bl702-mws-01-7016.json b/tests/data/legacy_devices/tze200-crq3r3la-ck-bl702-mws-01-7016.json index 17f739b35..9a4272036 100644 --- a/tests/data/legacy_devices/tze200-crq3r3la-ck-bl702-mws-01-7016.json +++ b/tests/data/legacy_devices/tze200-crq3r3la-ck-bl702-mws-01-7016.json @@ -112,16 +112,7 @@ "id": "0x0010", "name": "cie_addr", "zcl_type": "EUI64", - "value": [ - 50, - 79, - 50, - 2, - 0, - 141, - 21, - 0 - ] + "value": "00:21:2e:ff:ff:07:e4:46" }, { "id": "0x0000", @@ -185,48 +176,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_crq3r3la", - "model": "CK-BL702-MWS-01(7016)", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0402", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0400", - "0x0406", - "0x0500", - "0x1000", - "0xe000", - "0xe002", - "0xee00", - "0xef00" - ], - "output_clusters": [ - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze200-dwcarsat-ts0601.json b/tests/data/legacy_devices/tze200-dwcarsat-ts0601.json index 70250c5ff..ff6f08297 100644 --- a/tests/data/legacy_devices/tze200-dwcarsat-ts0601.json +++ b/tests/data/legacy_devices/tze200-dwcarsat-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:33.001378+00:00", + "last_seen": "2024-01-05T17:17:51+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -247,55 +247,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_dwcarsat", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0402", - "0x0405", - "0x040d", - "0x042a", - "0x042b", - "0x042e", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-e5hpkc6d-ts0601.json b/tests/data/legacy_devices/tze200-e5hpkc6d-ts0601.json index 199132bba..a81268ea7 100644 --- a/tests/data/legacy_devices/tze200-e5hpkc6d-ts0601.json +++ b/tests/data/legacy_devices/tze200-e5hpkc6d-ts0601.json @@ -1,7 +1,7 @@ { "version": 2, "ieee": "ab:cd:ef:12:0f:8f:90:d6", - "nwk": "0xDA91", + "nwk": "0xC67B", "manufacturer": "_TZE200_e5hpkc6d", "model": "TS0601", "friendly_manufacturer": "_TZE200_e5hpkc6d", @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:42.870742+00:00", + "last_seen": "2024-02-16T10:10:21", "available": true, "device_type": "Router", "active_coordinator": false, @@ -90,53 +90,11 @@ { "cluster_id": "0x0019", "endpoint_attribute": "ota", - "attributes": [ - { - "id": "0x0002", - "name": "current_file_version", - "zcl_type": "uint32", - "unsupported": true - } - ] + "attributes": [] } ] } }, - "original_signature": { - "manufacturer": "_TZE200_e5hpkc6d", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-eevqq1uv-ts0601.json b/tests/data/legacy_devices/tze200-eevqq1uv-ts0601.json index 8f83ce1e8..315e62267 100644 --- a/tests/data/legacy_devices/tze200-eevqq1uv-ts0601.json +++ b/tests/data/legacy_devices/tze200-eevqq1uv-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:24.286002+00:00", + "last_seen": "2024-03-25T22:58:25", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -102,41 +102,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_eevqq1uv", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-ewxhg6o9-ts0601.json b/tests/data/legacy_devices/tze200-ewxhg6o9-ts0601.json index 85d0d4d10..3ee6caa71 100644 --- a/tests/data/legacy_devices/tze200-ewxhg6o9-ts0601.json +++ b/tests/data/legacy_devices/tze200-ewxhg6o9-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:59.978902+00:00", + "last_seen": "2024-06-21T03:04:09", "available": true, "device_type": "Router", "active_coordinator": false, @@ -396,44 +396,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_ewxhg6o9", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0006", - "0x0702", - "0x0b04", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-f1pvdgoh-ts0601.json b/tests/data/legacy_devices/tze200-f1pvdgoh-ts0601.json index df9652667..7f6a9f978 100644 --- a/tests/data/legacy_devices/tze200-f1pvdgoh-ts0601.json +++ b/tests/data/legacy_devices/tze200-f1pvdgoh-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:23.348397+00:00", + "last_seen": "2023-05-15T14:58:48", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -95,41 +95,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_f1pvdgoh", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-fvldku9h-ts0601.json b/tests/data/legacy_devices/tze200-fvldku9h-ts0601.json index 0b94e4456..000c12a1b 100644 --- a/tests/data/legacy_devices/tze200-fvldku9h-ts0601.json +++ b/tests/data/legacy_devices/tze200-fvldku9h-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:23.829030+00:00", + "last_seen": "2024-05-05T18:47:17", "available": true, "device_type": "Router", "active_coordinator": false, @@ -102,41 +102,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_fvldku9h", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-g9a3awaj-ts0601-0x00000048.json b/tests/data/legacy_devices/tze200-g9a3awaj-ts0601-0x00000048.json index b28a76571..52280a6e5 100644 --- a/tests/data/legacy_devices/tze200-g9a3awaj-ts0601-0x00000048.json +++ b/tests/data/legacy_devices/tze200-g9a3awaj-ts0601-0x00000048.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:21.830106+00:00", + "last_seen": "2024-02-08T22:31:01", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -270,43 +270,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_g9a3awaj", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0301", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0201", - "0x0204", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "climate": [ { diff --git a/tests/data/legacy_devices/tze200-gjldowol-ts0601-0x00000050.json b/tests/data/legacy_devices/tze200-gjldowol-ts0601-0x00000050.json index f3bc13125..da6b7dae1 100644 --- a/tests/data/legacy_devices/tze200-gjldowol-ts0601-0x00000050.json +++ b/tests/data/legacy_devices/tze200-gjldowol-ts0601-0x00000050.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:41.366133+00:00", + "last_seen": "2024-10-28T12:02:10+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -127,42 +127,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_gjldowol", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x000c", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0400", - "0x0406", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze200-gkfbdvyx-ts0601.json b/tests/data/legacy_devices/tze200-gkfbdvyx-ts0601.json index 4c915d174..52d2398b0 100644 --- a/tests/data/legacy_devices/tze200-gkfbdvyx-ts0601.json +++ b/tests/data/legacy_devices/tze200-gkfbdvyx-ts0601.json @@ -95,40 +95,6 @@ "out_clusters": [] } }, - "original_signature": { - "manufacturer": "_TZE200_gkfbdvyx", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4660, - "maximum_buffer_size": 108, - "maximum_incoming_transfer_size": 0, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 0, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0400", - "0x0406", - "0xef00" - ], - "output_clusters": [] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze200-gubdgai2-ts0601.json b/tests/data/legacy_devices/tze200-gubdgai2-ts0601.json index 198670ee0..00d564ceb 100644 --- a/tests/data/legacy_devices/tze200-gubdgai2-ts0601.json +++ b/tests/data/legacy_devices/tze200-gubdgai2-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:21.998905+00:00", + "last_seen": "2024-01-27T23:17:31", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -119,42 +119,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_gubdgai2", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0202", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0102", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "cover": [ { diff --git a/tests/data/legacy_devices/tze200-guvc7pdy-ts0601-0x00000046.json b/tests/data/legacy_devices/tze200-guvc7pdy-ts0601-0x00000046.json index 056c2de01..a60c7fb8b 100644 --- a/tests/data/legacy_devices/tze200-guvc7pdy-ts0601-0x00000046.json +++ b/tests/data/legacy_devices/tze200-guvc7pdy-ts0601-0x00000046.json @@ -117,49 +117,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_guvc7pdy", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-h4cgnbzg-ts0601.json b/tests/data/legacy_devices/tze200-h4cgnbzg-ts0601.json index f816d3854..7e1555811 100644 --- a/tests/data/legacy_devices/tze200-h4cgnbzg-ts0601.json +++ b/tests/data/legacy_devices/tze200-h4cgnbzg-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:45.267090+00:00", + "last_seen": "2025-02-16T00:34:35+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -73,19 +73,19 @@ "id": "0x0010", "name": "local_temperature_calibration", "zcl_type": "int8", - "unsupported": true + "value": -4 }, { "id": "0x0016", "name": "max_heat_setpoint_limit", "zcl_type": "int16", - "unsupported": true + "value": 3000 }, { "id": "0x0015", "name": "min_heat_setpoint_limit", "zcl_type": "int16", - "unsupported": true + "value": 500 }, { "id": "0x0012", @@ -189,36 +189,6 @@ "out_clusters": [] } }, - "original_signature": { - "manufacturer": "_TZE200_h4cgnbzg", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0301", - "input_clusters": [ - "0x0201", - "0xef00" - ], - "output_clusters": [] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { @@ -313,6 +283,99 @@ } ], "number": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:d1:91:b1:8f-1-513-local_temperature_calibration", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "ThermostatLocalTempCalibration", + "translation_key": "local_temperature_calibration", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:d1:91:b1:8f", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "box", + "native_max_value": 2.5, + "native_min_value": -2.5, + "native_step": 0.1, + "native_unit_of_measurement": "\u00b0C" + }, + "state": { + "class_name": "ThermostatLocalTempCalibration", + "available": true, + "state": -0.4 + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:d1:91:b1:8f-1-513-max_heat_setpoint_limit", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "MaxHeatSetpointLimit", + "translation_key": "max_heat_setpoint_limit", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:d1:91:b1:8f", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "box", + "native_max_value": 30.0, + "native_min_value": 5.0, + "native_step": 0.5, + "native_unit_of_measurement": "\u00b0C" + }, + "state": { + "class_name": "MaxHeatSetpointLimit", + "available": true, + "state": 30.0 + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:d1:91:b1:8f-1-513-min_heat_setpoint_limit", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "MinHeatSetpointLimit", + "translation_key": "min_heat_setpoint_limit", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:d1:91:b1:8f", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "box", + "native_max_value": 30.0, + "native_min_value": 5.0, + "native_step": 0.5, + "native_unit_of_measurement": "\u00b0C" + }, + "state": { + "class_name": "MinHeatSetpointLimit", + "available": true, + "state": 5.0 + } + }, { "info_object": { "fallback_name": "Local temperature calibration", diff --git a/tests/data/legacy_devices/tze200-hhrtiq0x-ts0601-0x00000055.json b/tests/data/legacy_devices/tze200-hhrtiq0x-ts0601-0x00000055.json index a4659347f..7f98f62d8 100644 --- a/tests/data/legacy_devices/tze200-hhrtiq0x-ts0601-0x00000055.json +++ b/tests/data/legacy_devices/tze200-hhrtiq0x-ts0601-0x00000055.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:08:50.865308+00:00", + "last_seen": "2024-12-18T09:24:46", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -192,44 +192,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_hhrtiq0x", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0301", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0004", - "0x0005", - "0x0201", - "0x0204", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "climate": [ { diff --git a/tests/data/legacy_devices/tze200-hl0ss9oa-ts0225.json b/tests/data/legacy_devices/tze200-hl0ss9oa-ts0225.json index da90ff81d..3e5530ffe 100644 --- a/tests/data/legacy_devices/tze200-hl0ss9oa-ts0225.json +++ b/tests/data/legacy_devices/tze200-hl0ss9oa-ts0225.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:22.132636+00:00", + "last_seen": "2023-08-18T11:56:02", "available": true, "device_type": "Router", "active_coordinator": false, @@ -172,50 +172,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_hl0ss9oa", - "model": "TS0225", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0402", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0400", - "0x0500", - "0xe000", - "0xe002", - "0xee00", - "0xef00" - ], - "output_clusters": [] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze200-hr0tdd47-ts0601-0x00000048.json b/tests/data/legacy_devices/tze200-hr0tdd47-ts0601-0x00000048.json index ab7b7ef67..2e2224b96 100644 --- a/tests/data/legacy_devices/tze200-hr0tdd47-ts0601-0x00000048.json +++ b/tests/data/legacy_devices/tze200-hr0tdd47-ts0601-0x00000048.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:42.457179+00:00", + "last_seen": "2024-12-24T13:11:31+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -138,43 +138,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_hr0tdd47", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0004", - "0x0005", - "0x0500", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze200-iba1ckek-ts0601.json b/tests/data/legacy_devices/tze200-iba1ckek-ts0601.json index 93f55d8e1..4d51211b5 100644 --- a/tests/data/legacy_devices/tze200-iba1ckek-ts0601.json +++ b/tests/data/legacy_devices/tze200-iba1ckek-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:08:54.774665+00:00", + "last_seen": "2024-12-01T16:14:16", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -137,38 +137,6 @@ "out_clusters": [] } }, - "original_signature": { - "manufacturer": "_TZE200_iba1ckek", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4742, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0402", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0500" - ], - "output_clusters": [] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze200-ijey4q29-ts0601.json b/tests/data/legacy_devices/tze200-ijey4q29-ts0601.json index abc831bc8..db597cffd 100644 --- a/tests/data/legacy_devices/tze200-ijey4q29-ts0601.json +++ b/tests/data/legacy_devices/tze200-ijey4q29-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-04-29T19:02:49.859175+00:00", + "last_seen": "2025-01-13T21:02:46", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -159,41 +159,6 @@ "out_clusters": [] } }, - "original_signature": { - "manufacturer": "_TZE200_ijey4q29", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0402", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0400", - "0x0500", - "0xe002", - "0xef00" - ], - "output_clusters": [] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze200-iuk8kupi-ts0601.json b/tests/data/legacy_devices/tze200-iuk8kupi-ts0601.json index 6c2e0a47a..bf9cda34b 100644 --- a/tests/data/legacy_devices/tze200-iuk8kupi-ts0601.json +++ b/tests/data/legacy_devices/tze200-iuk8kupi-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:40:55.979162+00:00", + "last_seen": "2023-07-14T11:57:50", "available": true, "device_type": "Router", "active_coordinator": false, @@ -110,49 +110,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_iuk8kupi", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-js3mgbjb-ts0601-0x00000044.json b/tests/data/legacy_devices/tze200-js3mgbjb-ts0601-0x00000044.json index 60bc383a6..553388a56 100644 --- a/tests/data/legacy_devices/tze200-js3mgbjb-ts0601-0x00000044.json +++ b/tests/data/legacy_devices/tze200-js3mgbjb-ts0601-0x00000044.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:24.254190+00:00", + "last_seen": "2024-08-03T23:51:57", "available": true, "device_type": "Router", "active_coordinator": false, @@ -117,49 +117,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_js3mgbjb", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-jva8ink8-ts0601.json b/tests/data/legacy_devices/tze200-jva8ink8-ts0601.json index c41b9fe10..19d8ba463 100644 --- a/tests/data/legacy_devices/tze200-jva8ink8-ts0601.json +++ b/tests/data/legacy_devices/tze200-jva8ink8-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:32.268115+00:00", + "last_seen": "2023-09-08T14:41:55+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -204,44 +204,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_jva8ink8", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0107", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x000c", - "0x0400", - "0x0406", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze200-kb5noeto-ts0601.json b/tests/data/legacy_devices/tze200-kb5noeto-ts0601.json index 5a0afd1b4..ba799a2c1 100644 --- a/tests/data/legacy_devices/tze200-kb5noeto-ts0601.json +++ b/tests/data/legacy_devices/tze200-kb5noeto-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:46.199867+00:00", + "last_seen": "2024-08-17T00:21:53+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -171,41 +171,6 @@ "out_clusters": [] } }, - "original_signature": { - "manufacturer": "_TZE200_kb5noeto", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4742, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0402", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0400", - "0x0406", - "0x0500", - "0xef00" - ], - "output_clusters": [] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze200-khozatfx-ts0601.json b/tests/data/legacy_devices/tze200-khozatfx-ts0601.json index f9a700723..93b407acb 100644 --- a/tests/data/legacy_devices/tze200-khozatfx-ts0601.json +++ b/tests/data/legacy_devices/tze200-khozatfx-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T00:56:56.586983+00:00", + "last_seen": "2023-11-12T19:39:29", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -95,41 +95,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_khozatfx", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-la2c2uo9-ts0601.json b/tests/data/legacy_devices/tze200-la2c2uo9-ts0601.json index e2e17c879..97729dc55 100644 --- a/tests/data/legacy_devices/tze200-la2c2uo9-ts0601.json +++ b/tests/data/legacy_devices/tze200-la2c2uo9-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:35.719031+00:00", + "last_seen": "2023-11-11T19:09:40", "available": true, "device_type": "Router", "active_coordinator": false, @@ -113,43 +113,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_la2c2uo9", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "light": [ { diff --git a/tests/data/legacy_devices/tze200-laqjm8qd-ts0601.json b/tests/data/legacy_devices/tze200-laqjm8qd-ts0601.json index 2b0d686cb..e7aa32485 100644 --- a/tests/data/legacy_devices/tze200-laqjm8qd-ts0601.json +++ b/tests/data/legacy_devices/tze200-laqjm8qd-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-04-29T19:02:50.285239+00:00", + "last_seen": "2024-12-05T01:15:14", "available": true, "device_type": "Router", "active_coordinator": false, @@ -110,49 +110,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_laqjm8qd", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-libht6ua-ts0601.json b/tests/data/legacy_devices/tze200-libht6ua-ts0601.json index 01410ebd9..d37b34a1d 100644 --- a/tests/data/legacy_devices/tze200-libht6ua-ts0601.json +++ b/tests/data/legacy_devices/tze200-libht6ua-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:22.802290+00:00", + "last_seen": "2023-10-10T11:08:48", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -95,41 +95,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_libht6ua", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-locansqn-ts0601-0x00000048.json b/tests/data/legacy_devices/tze200-locansqn-ts0601-0x00000048.json index 9f99216e2..2cd7f0e82 100644 --- a/tests/data/legacy_devices/tze200-locansqn-ts0601-0x00000048.json +++ b/tests/data/legacy_devices/tze200-locansqn-ts0601-0x00000048.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-04-29T19:02:49.516429+00:00", + "last_seen": "2025-01-18T00:25:29+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -248,44 +248,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_locansqn", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0004", - "0x0005", - "0x0402", - "0x0405", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "number": [ { diff --git a/tests/data/legacy_devices/tze200-m9skfctm-ts0601.json b/tests/data/legacy_devices/tze200-m9skfctm-ts0601.json index 2bffef694..74c14d64f 100644 --- a/tests/data/legacy_devices/tze200-m9skfctm-ts0601.json +++ b/tests/data/legacy_devices/tze200-m9skfctm-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:59.027854+00:00", + "last_seen": "2023-07-02T17:09:55+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -113,42 +113,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_m9skfctm", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0402", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0500", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze200-mgxy2d9f-ts0601-0x00000043.json b/tests/data/legacy_devices/tze200-mgxy2d9f-ts0601-0x00000043.json index 6a29ab385..a4682d3ed 100644 --- a/tests/data/legacy_devices/tze200-mgxy2d9f-ts0601-0x00000043.json +++ b/tests/data/legacy_devices/tze200-mgxy2d9f-ts0601-0x00000043.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:39:39.260191+00:00", + "last_seen": "2024-07-28T11:49:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -96,41 +96,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_mgxy2d9f", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-mja3fuja-ts0601.json b/tests/data/legacy_devices/tze200-mja3fuja-ts0601.json index 83b4241a8..6220aa78c 100644 --- a/tests/data/legacy_devices/tze200-mja3fuja-ts0601.json +++ b/tests/data/legacy_devices/tze200-mja3fuja-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:36.231725+00:00", + "last_seen": "2023-10-19T13:04:30+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -135,54 +135,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_mja3fuja", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0402", - "0x0405", - "0x040d", - "0x042b", - "0x042e", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-moycceze-ts0601-0x00000043.json b/tests/data/legacy_devices/tze200-moycceze-ts0601-0x00000043.json index 141fc8457..a6403e08a 100644 --- a/tests/data/legacy_devices/tze200-moycceze-ts0601-0x00000043.json +++ b/tests/data/legacy_devices/tze200-moycceze-ts0601-0x00000043.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:45.222812+00:00", + "last_seen": "2024-10-14T16:03:10", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -96,41 +96,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_moycceze", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-mz5y07w2-ts0601.json b/tests/data/legacy_devices/tze200-mz5y07w2-ts0601.json index 26742f1f5..11a86bf9b 100644 --- a/tests/data/legacy_devices/tze200-mz5y07w2-ts0601.json +++ b/tests/data/legacy_devices/tze200-mz5y07w2-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:59.244588+00:00", + "last_seen": "2023-07-22T16:19:09", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -197,44 +197,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_mz5y07w2", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0301", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0004", - "0x0005", - "0x000d", - "0x0201", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "climate": [ { diff --git a/tests/data/legacy_devices/tze200-mzik0ov2-ts0601.json b/tests/data/legacy_devices/tze200-mzik0ov2-ts0601.json index 423b70f4a..db1927542 100644 --- a/tests/data/legacy_devices/tze200-mzik0ov2-ts0601.json +++ b/tests/data/legacy_devices/tze200-mzik0ov2-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:39.289177+00:00", + "last_seen": "2024-10-24T21:07:10", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -96,41 +96,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_mzik0ov2", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-nklqjk62-ts0601.json b/tests/data/legacy_devices/tze200-nklqjk62-ts0601.json index 3ddf12f6c..0c502f949 100644 --- a/tests/data/legacy_devices/tze200-nklqjk62-ts0601.json +++ b/tests/data/legacy_devices/tze200-nklqjk62-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:39:39.438791+00:00", + "last_seen": "2024-01-30T13:02:57", "available": true, "device_type": "Router", "active_coordinator": false, @@ -98,49 +98,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_nklqjk62", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-nojsjtj2-ts0601.json b/tests/data/legacy_devices/tze200-nojsjtj2-ts0601.json index 2c26bbde1..749f20474 100644 --- a/tests/data/legacy_devices/tze200-nojsjtj2-ts0601.json +++ b/tests/data/legacy_devices/tze200-nojsjtj2-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T00:56:58.346121+00:00", + "last_seen": "2024-05-28T12:30:36", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -119,38 +119,6 @@ "out_clusters": [] } }, - "original_signature": { - "manufacturer": "_TZE200_nojsjtj2", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4098, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0402", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0500" - ], - "output_clusters": [] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze200-npj9bug3-ts0601.json b/tests/data/legacy_devices/tze200-npj9bug3-ts0601.json index 8495d8cbb..9c016ec8d 100644 --- a/tests/data/legacy_devices/tze200-npj9bug3-ts0601.json +++ b/tests/data/legacy_devices/tze200-npj9bug3-ts0601.json @@ -128,41 +128,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_npj9bug3", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4742, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0302", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0402", - "0x0405" - ], - "output_clusters": [ - "0x0003" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tze200-ntcy3xu1-ts0601.json b/tests/data/legacy_devices/tze200-ntcy3xu1-ts0601.json index 51bb48869..25607812d 100644 --- a/tests/data/legacy_devices/tze200-ntcy3xu1-ts0601.json +++ b/tests/data/legacy_devices/tze200-ntcy3xu1-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:08:50.617078+00:00", + "last_seen": "2025-01-19T02:17:57+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -144,43 +144,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_ntcy3xu1", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0004", - "0x0005", - "0x0500", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze200-ny94onlb-ts0601.json b/tests/data/legacy_devices/tze200-ny94onlb-ts0601.json index 62396994a..9dabb4115 100644 --- a/tests/data/legacy_devices/tze200-ny94onlb-ts0601.json +++ b/tests/data/legacy_devices/tze200-ny94onlb-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-04-29T19:02:50.043412+00:00", + "last_seen": "2024-11-18T18:54:40", "available": true, "device_type": "Router", "active_coordinator": false, @@ -798,67 +798,6 @@ "out_clusters": [] } }, - "original_signature": { - "manufacturer": "_TZE200_ny94onlb", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0702", - "0x0b04", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "10": { - "profile_id": "0x0104", - "device_type": "0x0053", - "input_clusters": [ - "0x0b04" - ], - "output_clusters": [] - }, - "20": { - "profile_id": "0x0104", - "device_type": "0x0053", - "input_clusters": [ - "0x0b04" - ], - "output_clusters": [] - }, - "30": { - "profile_id": "0x0104", - "device_type": "0x0053", - "input_clusters": [ - "0x0b04" - ], - "output_clusters": [] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-nyvavzbj-ts0601.json b/tests/data/legacy_devices/tze200-nyvavzbj-ts0601.json index da0ada21d..de517babf 100644 --- a/tests/data/legacy_devices/tze200-nyvavzbj-ts0601.json +++ b/tests/data/legacy_devices/tze200-nyvavzbj-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T00:56:57.946953+00:00", + "last_seen": "2024-01-02T13:08:17", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -108,41 +108,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_nyvavzbj", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-pay2byax-ts0601.json b/tests/data/legacy_devices/tze200-pay2byax-ts0601.json index 84c4620cd..fe9e5cf28 100644 --- a/tests/data/legacy_devices/tze200-pay2byax-ts0601.json +++ b/tests/data/legacy_devices/tze200-pay2byax-ts0601.json @@ -1,7 +1,7 @@ { "version": 2, "ieee": "ab:cd:ef:12:e7:bc:ea:ac", - "nwk": "0xADC3", + "nwk": "0xCC82", "manufacturer": "_TZE200_pay2byax", "model": "TS0601", "friendly_manufacturer": "_TZE200_pay2byax", @@ -10,11 +10,11 @@ "quirk_applied": true, "quirk_class": "zhaquirks.tuya.builder:(_TZE200_pay2byax / TS0601)", "exposes_features": [], - "manufacturer_code": 4742, + "manufacturer_code": 4417, "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-04-29T19:02:49.189150+00:00", + "last_seen": "2024-08-28T20:15:36+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -26,7 +26,7 @@ "aps_flags": 0, "frequency_band": 8, "mac_capability_flags": 128, - "manufacturer_code": 4742, + "manufacturer_code": 4417, "maximum_buffer_size": 66, "maximum_incoming_transfer_size": 66, "server_mask": 10752, @@ -91,7 +91,7 @@ "id": "0x0020", "name": "battery_voltage", "zcl_type": "uint8", - "value": 27 + "value": 33 } ] }, @@ -114,7 +114,7 @@ "id": "0x0000", "name": "measured_value", "zcl_type": "uint16", - "value": 26822 + "value": 1000 } ] }, @@ -122,6 +122,27 @@ "cluster_id": "0x0500", "endpoint_attribute": "ias_zone", "attributes": [ + { + "id": "0x0010", + "name": "cie_addr", + "zcl_type": "EUI64", + "value": [ + 193, + 50, + 221, + 28, + 0, + 75, + 18, + 0 + ] + }, + { + "id": "0x0000", + "name": "zone_state", + "zcl_type": "enum8", + "value": 0 + }, { "id": "0x0002", "name": "zone_status", @@ -136,6 +157,11 @@ } ] }, + { + "cluster_id": "0xe002", + "endpoint_attribute": null, + "attributes": [] + }, { "cluster_id": "0xef00", "endpoint_attribute": "tuya_manufacturer", @@ -145,40 +171,6 @@ "out_clusters": [] } }, - "original_signature": { - "manufacturer": "_TZE200_pay2byax", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4742, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0402", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0400", - "0x0500", - "0xef00" - ], - "output_clusters": [] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { @@ -326,7 +318,7 @@ "state": 100.0, "battery_size": "CR2032", "battery_quantity": 1, - "battery_voltage": 2.7 + "battery_voltage": 3.3 }, "extra_state_attributes": [ "battery_quantity", @@ -359,7 +351,7 @@ "state": { "class_name": "Illuminance", "available": true, - "state": 481 + "state": 1 } } ] diff --git a/tests/data/legacy_devices/tze200-pl31aqf5-ts0601-0x00000046.json b/tests/data/legacy_devices/tze200-pl31aqf5-ts0601-0x00000046.json index 4a447acd3..771943515 100644 --- a/tests/data/legacy_devices/tze200-pl31aqf5-ts0601-0x00000046.json +++ b/tests/data/legacy_devices/tze200-pl31aqf5-ts0601-0x00000046.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:33.863028+00:00", + "last_seen": "2024-03-13T17:16:39", "available": true, "device_type": "Router", "active_coordinator": false, @@ -117,49 +117,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_pl31aqf5", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-pw7mji0l-ts0601.json b/tests/data/legacy_devices/tze200-pw7mji0l-ts0601.json index 4a73eba7f..08e7599fd 100644 --- a/tests/data/legacy_devices/tze200-pw7mji0l-ts0601.json +++ b/tests/data/legacy_devices/tze200-pw7mji0l-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:33.886181+00:00", + "last_seen": "2023-08-26T14:04:12", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -108,41 +108,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_pw7mji0l", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0202", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0102", - "0xef00" - ], - "output_clusters": [ - "0x0019" - ] - } - } - }, "zha_lib_entities": { "cover": [ { diff --git a/tests/data/legacy_devices/tze200-qhlxve78-ts0601.json b/tests/data/legacy_devices/tze200-qhlxve78-ts0601.json index 4fbed0748..e8ed81025 100644 --- a/tests/data/legacy_devices/tze200-qhlxve78-ts0601.json +++ b/tests/data/legacy_devices/tze200-qhlxve78-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:22.866815+00:00", + "last_seen": "2024-03-16T18:36:54", "available": true, "device_type": "Router", "active_coordinator": false, @@ -157,41 +157,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_qhlxve78", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-qrztc3ev-ts0601.json b/tests/data/legacy_devices/tze200-qrztc3ev-ts0601.json index 481b4469f..10d8c11cb 100644 --- a/tests/data/legacy_devices/tze200-qrztc3ev-ts0601.json +++ b/tests/data/legacy_devices/tze200-qrztc3ev-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:08:51.633693+00:00", + "last_seen": "2025-01-13T03:48:08+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -123,44 +123,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_qrztc3ev", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4742, - "maximum_buffer_size": 74, - "maximum_incoming_transfer_size": 404, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 404, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0302", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0004", - "0x0020", - "0x0402", - "0x0405", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "number": [ { diff --git a/tests/data/legacy_devices/tze200-qyflbnbj-ts0601-0x00000046.json b/tests/data/legacy_devices/tze200-qyflbnbj-ts0601-0x00000046.json index 6580742c6..f91e7c2a4 100644 --- a/tests/data/legacy_devices/tze200-qyflbnbj-ts0601-0x00000046.json +++ b/tests/data/legacy_devices/tze200-qyflbnbj-ts0601-0x00000046.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:42.893291+00:00", + "last_seen": "2025-01-05T22:35:21+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -182,44 +182,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_qyflbnbj", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0004", - "0x0005", - "0x0402", - "0x0405", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-r32ctezx-ts0601-0x00000046.json b/tests/data/legacy_devices/tze200-r32ctezx-ts0601-0x00000046.json index b8a3c6d86..fcfef3d9f 100644 --- a/tests/data/legacy_devices/tze200-r32ctezx-ts0601-0x00000046.json +++ b/tests/data/legacy_devices/tze200-r32ctezx-ts0601-0x00000046.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:33.683276+00:00", + "last_seen": "2024-02-13T18:19:16", "available": true, "device_type": "Router", "active_coordinator": false, @@ -135,51 +135,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_r32ctezx", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "light": [ { diff --git a/tests/data/legacy_devices/tze200-rccxox8p-ts0601.json b/tests/data/legacy_devices/tze200-rccxox8p-ts0601.json index 4bdb5f179..957f7cffc 100644 --- a/tests/data/legacy_devices/tze200-rccxox8p-ts0601.json +++ b/tests/data/legacy_devices/tze200-rccxox8p-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:22.956364+00:00", + "last_seen": "2023-11-11T18:05:39+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -101,42 +101,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_rccxox8p", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0402", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0500", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze200-rk1wojce-ts0601.json b/tests/data/legacy_devices/tze200-rk1wojce-ts0601.json index 7b099d5c7..fefab59ef 100644 --- a/tests/data/legacy_devices/tze200-rk1wojce-ts0601.json +++ b/tests/data/legacy_devices/tze200-rk1wojce-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:34.046231+00:00", + "last_seen": "2024-05-21T07:30:03", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -96,41 +96,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_rk1wojce", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-rks0sgb7-ts0601.json b/tests/data/legacy_devices/tze200-rks0sgb7-ts0601.json index 82c21d5d6..ca75ac1c0 100644 --- a/tests/data/legacy_devices/tze200-rks0sgb7-ts0601.json +++ b/tests/data/legacy_devices/tze200-rks0sgb7-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:23.251832+00:00", + "last_seen": "2023-10-15T20:04:46", "available": true, "device_type": "Router", "active_coordinator": false, @@ -94,42 +94,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_rks0sgb7", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00", - "0xff66" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-rmymn92d-ts0601-0x00000046.json b/tests/data/legacy_devices/tze200-rmymn92d-ts0601-0x00000046.json index 0058a0f2b..22fde80f1 100644 --- a/tests/data/legacy_devices/tze200-rmymn92d-ts0601-0x00000046.json +++ b/tests/data/legacy_devices/tze200-rmymn92d-ts0601-0x00000046.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T00:56:56.881007+00:00", + "last_seen": "2024-07-23T13:57:58", "available": true, "device_type": "Router", "active_coordinator": false, @@ -117,49 +117,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_rmymn92d", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-rtrmfadk-ts0601.json b/tests/data/legacy_devices/tze200-rtrmfadk-ts0601.json index 5c1d13eb3..a411b8731 100644 --- a/tests/data/legacy_devices/tze200-rtrmfadk-ts0601.json +++ b/tests/data/legacy_devices/tze200-rtrmfadk-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:33.268002+00:00", + "last_seen": "2023-10-20T16:02:44", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -95,41 +95,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_rtrmfadk", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-rxq4iti9-ts0601.json b/tests/data/legacy_devices/tze200-rxq4iti9-ts0601.json index a524ef378..543eed57c 100644 --- a/tests/data/legacy_devices/tze200-rxq4iti9-ts0601.json +++ b/tests/data/legacy_devices/tze200-rxq4iti9-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:34.652864+00:00", + "last_seen": "2024-10-06T00:15:10+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -196,7 +196,7 @@ "id": "0x0016", "name": "max_heat_setpoint_limit", "zcl_type": "int16", - "unsupported": true + "value": 3000 }, { "id": "0x0017", @@ -208,7 +208,7 @@ "id": "0x0015", "name": "min_heat_setpoint_limit", "zcl_type": "int16", - "unsupported": true + "value": 500 }, { "id": "0x0002", @@ -304,44 +304,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_rxq4iti9", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0301", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0004", - "0x0005", - "0x000d", - "0x0201", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { @@ -467,6 +429,68 @@ "state": null } }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:44:6e:72:22-1-513-max_heat_setpoint_limit", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "MaxHeatSetpointLimit", + "translation_key": "max_heat_setpoint_limit", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:44:6e:72:22", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "box", + "native_max_value": 30.0, + "native_min_value": 5.0, + "native_step": 0.5, + "native_unit_of_measurement": "\u00b0C" + }, + "state": { + "class_name": "MaxHeatSetpointLimit", + "available": true, + "state": 30.0 + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:44:6e:72:22-1-513-min_heat_setpoint_limit", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "MinHeatSetpointLimit", + "translation_key": "min_heat_setpoint_limit", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:44:6e:72:22", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "box", + "native_max_value": 30.0, + "native_min_value": 5.0, + "native_step": 0.5, + "native_unit_of_measurement": "\u00b0C" + }, + "state": { + "class_name": "MinHeatSetpointLimit", + "available": true, + "state": 5.0 + } + }, { "info_object": { "fallback_name": "Local temperature calibration", diff --git a/tests/data/legacy_devices/tze200-s6hzw8g2-ts0601.json b/tests/data/legacy_devices/tze200-s6hzw8g2-ts0601.json index 20e34630d..c5e642a84 100644 --- a/tests/data/legacy_devices/tze200-s6hzw8g2-ts0601.json +++ b/tests/data/legacy_devices/tze200-s6hzw8g2-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:40:26.518110+00:00", + "last_seen": "2023-10-02T21:08:25", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -89,41 +89,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_s6hzw8g2", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-t1blo2bj-ts0601.json b/tests/data/legacy_devices/tze200-t1blo2bj-ts0601.json index 8ce243259..8a62bd5ad 100644 --- a/tests/data/legacy_devices/tze200-t1blo2bj-ts0601.json +++ b/tests/data/legacy_devices/tze200-t1blo2bj-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:40:26.179924+00:00", + "last_seen": "2023-05-30T01:07:11+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -127,51 +127,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_t1blo2bj", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0403", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0004", - "0x0005", - "0x0006", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "number": [ { diff --git a/tests/data/legacy_devices/tze200-t6gq6nju-ts0601.json b/tests/data/legacy_devices/tze200-t6gq6nju-ts0601.json index 580aff80d..1d432df6d 100644 --- a/tests/data/legacy_devices/tze200-t6gq6nju-ts0601.json +++ b/tests/data/legacy_devices/tze200-t6gq6nju-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T00:56:56.458619+00:00", + "last_seen": "2023-09-13T15:34:53", "available": true, "device_type": "Router", "active_coordinator": false, @@ -170,49 +170,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_t6gq6nju", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-udank5zs-ts0601.json b/tests/data/legacy_devices/tze200-udank5zs-ts0601.json index 20a81c606..cdad729a7 100644 --- a/tests/data/legacy_devices/tze200-udank5zs-ts0601.json +++ b/tests/data/legacy_devices/tze200-udank5zs-ts0601.json @@ -1,7 +1,7 @@ { "version": 2, "ieee": "ab:cd:ef:12:e7:7f:df:74", - "nwk": "0xC63F", + "nwk": "0x3EB4", "manufacturer": "_TZE200_udank5zs", "model": "TS0601", "friendly_manufacturer": "_TZE200_udank5zs", @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:08:50.385921+00:00", + "last_seen": "2023-10-10T10:43:49", "available": true, "device_type": "Router", "active_coordinator": false, @@ -84,53 +84,11 @@ { "cluster_id": "0x0019", "endpoint_attribute": "ota", - "attributes": [ - { - "id": "0x0002", - "name": "current_file_version", - "zcl_type": "uint32", - "unsupported": true - } - ] + "attributes": [] } ] } }, - "original_signature": { - "manufacturer": "_TZE200_udank5zs", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-uf1qujxj-ts0601-0x00000048.json b/tests/data/legacy_devices/tze200-uf1qujxj-ts0601-0x00000048.json index 756569992..b68a75f84 100644 --- a/tests/data/legacy_devices/tze200-uf1qujxj-ts0601-0x00000048.json +++ b/tests/data/legacy_devices/tze200-uf1qujxj-ts0601-0x00000048.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:08:53.255356+00:00", + "last_seen": "2024-11-08T19:40:54", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -102,41 +102,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_uf1qujxj", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-v1jqz5cy-ts0601.json b/tests/data/legacy_devices/tze200-v1jqz5cy-ts0601.json index 4a54fd09f..cc18091f0 100644 --- a/tests/data/legacy_devices/tze200-v1jqz5cy-ts0601.json +++ b/tests/data/legacy_devices/tze200-v1jqz5cy-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:22.836532+00:00", + "last_seen": "2023-09-04T18:58:59", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -95,41 +95,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_v1jqz5cy", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-v9hkz2yn-ts0601.json b/tests/data/legacy_devices/tze200-v9hkz2yn-ts0601.json index 250c60507..5a8dcb83e 100644 --- a/tests/data/legacy_devices/tze200-v9hkz2yn-ts0601.json +++ b/tests/data/legacy_devices/tze200-v9hkz2yn-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:40:25.918149+00:00", + "last_seen": "2024-06-03T09:29:22", "available": true, "device_type": "Router", "active_coordinator": false, @@ -324,43 +324,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_v9hkz2yn", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0702", - "0x0b04", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-viy9ihs7-ts0601.json b/tests/data/legacy_devices/tze200-viy9ihs7-ts0601.json index 82a66bf5b..6f68585a0 100644 --- a/tests/data/legacy_devices/tze200-viy9ihs7-ts0601.json +++ b/tests/data/legacy_devices/tze200-viy9ihs7-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:40:26.592021+00:00", + "last_seen": "2023-12-03T06:05:34+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -131,42 +131,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_viy9ihs7", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0201", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze200-vuqzj1ej-ts0601.json b/tests/data/legacy_devices/tze200-vuqzj1ej-ts0601.json index a0da7d5f4..c24ab7206 100644 --- a/tests/data/legacy_devices/tze200-vuqzj1ej-ts0601.json +++ b/tests/data/legacy_devices/tze200-vuqzj1ej-ts0601.json @@ -184,44 +184,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_vuqzj1ej", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4742, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0402", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0400", - "0x0402", - "0x0405", - "0x0500", - "0xef00" - ], - "output_clusters": [ - "0x0003" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze200-vvmbj46n-ts0601-0x00000048.json b/tests/data/legacy_devices/tze200-vvmbj46n-ts0601-0x00000048.json index 335790184..1d6d1ef6c 100644 --- a/tests/data/legacy_devices/tze200-vvmbj46n-ts0601-0x00000048.json +++ b/tests/data/legacy_devices/tze200-vvmbj46n-ts0601-0x00000048.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:39.385308+00:00", + "last_seen": "2024-10-31T21:34:45+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -142,44 +142,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_vvmbj46n", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0004", - "0x0005", - "0x0402", - "0x0405", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "number": [ { diff --git a/tests/data/legacy_devices/tze200-wdfurkoa-ts0601-0x00000041.json b/tests/data/legacy_devices/tze200-wdfurkoa-ts0601-0x00000041.json index 81d3288a8..e407df463 100644 --- a/tests/data/legacy_devices/tze200-wdfurkoa-ts0601-0x00000041.json +++ b/tests/data/legacy_devices/tze200-wdfurkoa-ts0601-0x00000041.json @@ -102,41 +102,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_wdfurkoa", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-wfxuhoea-ts0601-0x00000046.json b/tests/data/legacy_devices/tze200-wfxuhoea-ts0601-0x00000046.json index 50671bf68..3620f39ef 100644 --- a/tests/data/legacy_devices/tze200-wfxuhoea-ts0601-0x00000046.json +++ b/tests/data/legacy_devices/tze200-wfxuhoea-ts0601-0x00000046.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:08:54.174198+00:00", + "last_seen": "2024-09-20T16:08:22", "available": true, "device_type": "Router", "active_coordinator": false, @@ -105,49 +105,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_wfxuhoea", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-wktrysab-ts0601.json b/tests/data/legacy_devices/tze200-wktrysab-ts0601.json index a397fa3ae..bf8b441e3 100644 --- a/tests/data/legacy_devices/tze200-wktrysab-ts0601.json +++ b/tests/data/legacy_devices/tze200-wktrysab-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:35.661803+00:00", + "last_seen": "2023-07-27T21:38:51", "available": true, "device_type": "Router", "active_coordinator": false, @@ -324,106 +324,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_wktrysab", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0006", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0006" - ], - "output_clusters": [] - }, - "3": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0006" - ], - "output_clusters": [] - }, - "4": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0006" - ], - "output_clusters": [] - }, - "5": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0006" - ], - "output_clusters": [] - }, - "6": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0006" - ], - "output_clusters": [] - }, - "7": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0006" - ], - "output_clusters": [] - }, - "8": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0006" - ], - "output_clusters": [] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "light": [ { diff --git a/tests/data/legacy_devices/tze200-wqashyqo-ts0601.json b/tests/data/legacy_devices/tze200-wqashyqo-ts0601.json index 39d162bd6..f4001898a 100644 --- a/tests/data/legacy_devices/tze200-wqashyqo-ts0601.json +++ b/tests/data/legacy_devices/tze200-wqashyqo-ts0601.json @@ -128,41 +128,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_wqashyqo", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4742, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0302", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0402", - "0x0405" - ], - "output_clusters": [ - "0x0003" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tze200-xu4a5rhj-ts0601.json b/tests/data/legacy_devices/tze200-xu4a5rhj-ts0601.json index 55b18913c..ebe46a1dd 100644 --- a/tests/data/legacy_devices/tze200-xu4a5rhj-ts0601.json +++ b/tests/data/legacy_devices/tze200-xu4a5rhj-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T00:56:56.790343+00:00", + "last_seen": "2023-07-20T13:49:18", "available": true, "device_type": "Router", "active_coordinator": false, @@ -110,49 +110,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_xu4a5rhj", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-ya4ft0w4-ts0601.json b/tests/data/legacy_devices/tze200-ya4ft0w4-ts0601.json index 2684bc4cb..727170f56 100644 --- a/tests/data/legacy_devices/tze200-ya4ft0w4-ts0601.json +++ b/tests/data/legacy_devices/tze200-ya4ft0w4-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:44.571166+00:00", + "last_seen": "2025-03-31T05:23:27+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -151,40 +151,6 @@ "out_clusters": [] } }, - "original_signature": { - "manufacturer": "_TZE200_ya4ft0w4", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4660, - "maximum_buffer_size": 108, - "maximum_incoming_transfer_size": 0, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 0, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0400", - "0x0406", - "0xef00" - ], - "output_clusters": [] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze200-yia0p3tr-ts0601-0x00000046.json b/tests/data/legacy_devices/tze200-yia0p3tr-ts0601-0x00000046.json index 43f7550be..542f15ba6 100644 --- a/tests/data/legacy_devices/tze200-yia0p3tr-ts0601-0x00000046.json +++ b/tests/data/legacy_devices/tze200-yia0p3tr-ts0601-0x00000046.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:36.057386+00:00", + "last_seen": "2024-03-31T21:18:14", "available": true, "device_type": "Router", "active_coordinator": false, @@ -117,49 +117,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_yia0p3tr", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-yjjdcqsq-ts0601.json b/tests/data/legacy_devices/tze200-yjjdcqsq-ts0601.json index c4d6eef42..6080fc969 100644 --- a/tests/data/legacy_devices/tze200-yjjdcqsq-ts0601.json +++ b/tests/data/legacy_devices/tze200-yjjdcqsq-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-04-29T19:02:49.832947+00:00", + "last_seen": "2024-10-30T21:57:30+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -136,44 +136,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_yjjdcqsq", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0302", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0004", - "0x0005", - "0x0402", - "0x0405", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "select": [ { diff --git a/tests/data/legacy_devices/tze200-yojqa8xn-ts0601.json b/tests/data/legacy_devices/tze200-yojqa8xn-ts0601.json index 5b3c3098e..9d44dfb0d 100644 --- a/tests/data/legacy_devices/tze200-yojqa8xn-ts0601.json +++ b/tests/data/legacy_devices/tze200-yojqa8xn-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T00:56:57.702991+00:00", + "last_seen": "2023-09-08T00:12:53+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -122,50 +122,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_yojqa8xn", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0500", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze200-yvx5lh6k-ts0601.json b/tests/data/legacy_devices/tze200-yvx5lh6k-ts0601.json index 2cacad1ea..55ddddf0a 100644 --- a/tests/data/legacy_devices/tze200-yvx5lh6k-ts0601.json +++ b/tests/data/legacy_devices/tze200-yvx5lh6k-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:40:26.096143+00:00", + "last_seen": "2023-05-14T03:25:04+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -162,55 +162,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_yvx5lh6k", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0402", - "0x0405", - "0x040d", - "0x042a", - "0x042b", - "0x042e", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze200-yw7cahqs-ts0601-0x00000055.json b/tests/data/legacy_devices/tze200-yw7cahqs-ts0601-0x00000055.json index 904ce6757..0adfe71a3 100644 --- a/tests/data/legacy_devices/tze200-yw7cahqs-ts0601-0x00000055.json +++ b/tests/data/legacy_devices/tze200-yw7cahqs-ts0601-0x00000055.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:39.596920+00:00", + "last_seen": "2025-02-16T21:30:00+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -101,19 +101,19 @@ "id": "0x0010", "name": "local_temperature_calibration", "zcl_type": "int8", - "unsupported": true + "value": 0 }, { "id": "0x0016", "name": "max_heat_setpoint_limit", "zcl_type": "int16", - "unsupported": true + "value": 3000 }, { "id": "0x0015", "name": "min_heat_setpoint_limit", "zcl_type": "int16", - "unsupported": true + "value": 500 }, { "id": "0x0012", @@ -223,42 +223,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_yw7cahqs", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0301", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0201", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { @@ -353,6 +317,99 @@ } ], "number": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:39:54:17:e4-1-513-local_temperature_calibration", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "ThermostatLocalTempCalibration", + "translation_key": "local_temperature_calibration", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:39:54:17:e4", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "box", + "native_max_value": 2.5, + "native_min_value": -2.5, + "native_step": 0.1, + "native_unit_of_measurement": "\u00b0C" + }, + "state": { + "class_name": "ThermostatLocalTempCalibration", + "available": true, + "state": 0.0 + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:39:54:17:e4-1-513-max_heat_setpoint_limit", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "MaxHeatSetpointLimit", + "translation_key": "max_heat_setpoint_limit", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:39:54:17:e4", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "box", + "native_max_value": 30.0, + "native_min_value": 5.0, + "native_step": 0.5, + "native_unit_of_measurement": "\u00b0C" + }, + "state": { + "class_name": "MaxHeatSetpointLimit", + "available": true, + "state": 30.0 + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:39:54:17:e4-1-513-min_heat_setpoint_limit", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "MinHeatSetpointLimit", + "translation_key": "min_heat_setpoint_limit", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:39:54:17:e4", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "box", + "native_max_value": 30.0, + "native_min_value": 5.0, + "native_step": 0.5, + "native_unit_of_measurement": "\u00b0C" + }, + "state": { + "class_name": "MinHeatSetpointLimit", + "available": true, + "state": 5.0 + } + }, { "info_object": { "fallback_name": "Local temperature calibration", diff --git a/tests/data/legacy_devices/tze200-ztvwu4nk-ts0601.json b/tests/data/legacy_devices/tze200-ztvwu4nk-ts0601.json index 7dbeeebd5..050c15c46 100644 --- a/tests/data/legacy_devices/tze200-ztvwu4nk-ts0601.json +++ b/tests/data/legacy_devices/tze200-ztvwu4nk-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T00:56:56.439303+00:00", + "last_seen": "2023-06-25T13:13:39", "available": true, "device_type": "Router", "active_coordinator": false, @@ -95,41 +95,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE200_ztvwu4nk", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze204-1fuxihti-ts0601.json b/tests/data/legacy_devices/tze204-1fuxihti-ts0601.json index e3ba16913..d78c52d37 100644 --- a/tests/data/legacy_devices/tze204-1fuxihti-ts0601.json +++ b/tests/data/legacy_devices/tze204-1fuxihti-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:40:25.275705+00:00", + "last_seen": "2023-11-15T20:24:53", "available": true, "device_type": "Router", "active_coordinator": false, @@ -128,50 +128,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_1fuxihti", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0202", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0102", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "cover": [ { diff --git a/tests/data/legacy_devices/tze204-1youk3hj-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-1youk3hj-ts0601-0x0000004a.json index cc323bcc2..72f8152f8 100644 --- a/tests/data/legacy_devices/tze204-1youk3hj-ts0601-0x0000004a.json +++ b/tests/data/legacy_devices/tze204-1youk3hj-ts0601-0x0000004a.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:39.504414+00:00", + "last_seen": "2025-01-19T16:55:14+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -147,51 +147,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_1youk3hj", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0400", - "0x0406", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze204-4fblxpma-ts0601-0x00000049.json b/tests/data/legacy_devices/tze204-4fblxpma-ts0601-0x00000049.json index d69ff525c..9d048209e 100644 --- a/tests/data/legacy_devices/tze204-4fblxpma-ts0601-0x00000049.json +++ b/tests/data/legacy_devices/tze204-4fblxpma-ts0601-0x00000049.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T00:56:57.760520+00:00", + "last_seen": "2024-06-13T22:04:07", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -215,44 +215,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_4fblxpma", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0004", - "0x0005", - "0x0006", - "0x0702", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze204-5slehgeo-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-5slehgeo-ts0601-0x0000004a.json index 5a0a0e3cf..25b2971d1 100644 --- a/tests/data/legacy_devices/tze204-5slehgeo-ts0601-0x0000004a.json +++ b/tests/data/legacy_devices/tze204-5slehgeo-ts0601-0x0000004a.json @@ -117,49 +117,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_5slehgeo", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze204-5toc8efa-ts0601.json b/tests/data/legacy_devices/tze204-5toc8efa-ts0601.json index f44763034..71b1c3041 100644 --- a/tests/data/legacy_devices/tze204-5toc8efa-ts0601.json +++ b/tests/data/legacy_devices/tze204-5toc8efa-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:23.191328+00:00", + "last_seen": "2023-08-10T20:42:46", "available": true, "device_type": "Router", "active_coordinator": false, @@ -110,49 +110,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_5toc8efa", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze204-7ytb3h8u-ts0601.json b/tests/data/legacy_devices/tze204-7ytb3h8u-ts0601.json index e9d27d552..b9983882d 100644 --- a/tests/data/legacy_devices/tze204-7ytb3h8u-ts0601.json +++ b/tests/data/legacy_devices/tze204-7ytb3h8u-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T00:56:56.349389+00:00", + "last_seen": "2024-03-13T14:08:40+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -271,44 +271,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_7ytb3h8u", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0000", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0004", - "0x0005", - "0x0006", - "0x0702", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "number": [ { diff --git a/tests/data/legacy_devices/tze204-81yrt3lo-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-81yrt3lo-ts0601-0x0000004a.json index 06f35cb4d..8bb23e86c 100644 --- a/tests/data/legacy_devices/tze204-81yrt3lo-ts0601-0x0000004a.json +++ b/tests/data/legacy_devices/tze204-81yrt3lo-ts0601-0x0000004a.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-04-29T19:02:49.681955+00:00", + "last_seen": "2024-11-28T13:25:21", "available": true, "device_type": "Router", "active_coordinator": false, @@ -71,13 +71,13 @@ "id": "0x0000", "name": "current_summ_delivered", "zcl_type": "uint48", - "value": 0 + "unsupported": true }, { "id": "0x0001", "name": "current_summ_received", "zcl_type": "uint48", - "value": 0 + "unsupported": true }, { "id": "0x0100", @@ -131,7 +131,7 @@ "id": "0x0400", "name": "instantaneous_demand", "zcl_type": "int24", - "value": 0 + "unsupported": true }, { "id": "0x0306", @@ -185,7 +185,7 @@ "id": "0x0300", "name": "ac_frequency", "zcl_type": "uint16", - "value": 4913 + "unsupported": true }, { "id": "0x0401", @@ -233,7 +233,7 @@ "id": "0x050b", "name": "active_power", "zcl_type": "int16", - "value": 0 + "unsupported": true }, { "id": "0x050d", @@ -245,13 +245,13 @@ "id": "0x050f", "name": "apparent_power", "zcl_type": "uint16", - "value": 0 + "unsupported": true }, { "id": "0x0000", "name": "measurement_type", "zcl_type": "map32", - "value": 15 + "unsupported": true }, { "id": "0x0403", @@ -263,7 +263,7 @@ "id": "0x0510", "name": "power_factor", "zcl_type": "int8", - "value": 100 + "unsupported": true }, { "id": "0x0402", @@ -281,7 +281,7 @@ "id": "0x0508", "name": "rms_current", "zcl_type": "uint16", - "value": 0 + "unsupported": true }, { "id": "0x050a", @@ -293,7 +293,7 @@ "id": "0x0505", "name": "rms_voltage", "zcl_type": "uint16", - "value": 2403 + "unsupported": true }, { "id": "0x0507", @@ -344,13 +344,13 @@ "id": "0x0000", "name": "current_summ_delivered", "zcl_type": "uint48", - "value": 3300 + "unsupported": true }, { "id": "0x0001", "name": "current_summ_received", "zcl_type": "uint48", - "value": 0 + "unsupported": true }, { "id": "0x0100", @@ -404,7 +404,7 @@ "id": "0x0400", "name": "instantaneous_demand", "zcl_type": "int24", - "value": 550 + "unsupported": true }, { "id": "0x0306", @@ -506,7 +506,7 @@ "id": "0x050b", "name": "active_power", "zcl_type": "int16", - "value": 525 + "unsupported": true }, { "id": "0x050d", @@ -518,13 +518,13 @@ "id": "0x050f", "name": "apparent_power", "zcl_type": "uint16", - "value": 954 + "unsupported": true }, { "id": "0x0000", "name": "measurement_type", "zcl_type": "map32", - "value": 15 + "unsupported": true }, { "id": "0x0403", @@ -536,7 +536,7 @@ "id": "0x0510", "name": "power_factor", "zcl_type": "int8", - "value": 57 + "unsupported": true }, { "id": "0x0402", @@ -554,7 +554,7 @@ "id": "0x0508", "name": "rms_current", "zcl_type": "uint16", - "value": 397 + "unsupported": true }, { "id": "0x050a", @@ -594,13 +594,13 @@ "id": "0x0000", "name": "current_summ_delivered", "zcl_type": "uint48", - "value": 3300 + "unsupported": true }, { "id": "0x0001", "name": "current_summ_received", "zcl_type": "uint48", - "value": 0 + "unsupported": true }, { "id": "0x0100", @@ -654,7 +654,7 @@ "id": "0x0400", "name": "instantaneous_demand", "zcl_type": "int24", - "value": 550 + "unsupported": true }, { "id": "0x0306", @@ -756,7 +756,7 @@ "id": "0x050b", "name": "active_power", "zcl_type": "int16", - "value": 525 + "unsupported": true }, { "id": "0x050d", @@ -768,13 +768,13 @@ "id": "0x050f", "name": "apparent_power", "zcl_type": "uint16", - "value": 954 + "unsupported": true }, { "id": "0x0000", "name": "measurement_type", "zcl_type": "map32", - "value": 15 + "unsupported": true }, { "id": "0x0403", @@ -804,7 +804,7 @@ "id": "0x0508", "name": "rms_current", "zcl_type": "uint16", - "value": 397 + "unsupported": true }, { "id": "0x050a", @@ -845,69 +845,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_81yrt3lo", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0053", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0702", - "0x0b04", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0053", - "input_clusters": [ - "0x0702", - "0x0b04" - ], - "output_clusters": [] - }, - "3": { - "profile_id": "0x0104", - "device_type": "0x0053", - "input_clusters": [ - "0x0702", - "0x0b04" - ], - "output_clusters": [] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { @@ -965,745 +902,6 @@ "available": true, "state": null } - }, - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:22:09:db:75-1-1794", - "migrate_unique_ids": [], - "platform": "sensor", - "class_name": "SmartEnergyMetering", - "translation_key": "instantaneous_demand", - "translation_placeholders": null, - "device_class": "power", - "state_class": "measurement", - "entity_category": null, - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:22:09:db:75", - "endpoint_id": 1, - "available": true, - "group_id": null, - "suggested_display_precision": 1, - "unit": "W" - }, - "state": { - "class_name": "SmartEnergyMetering", - "available": true, - "state": 0.0, - "status": "NO_ALARMS", - "zcl_unit_of_measurement": 0 - }, - "extra_state_attributes": [ - "device_type", - "status", - "zcl_unit_of_measurement" - ] - }, - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:22:09:db:75-1-1794-summation_delivered", - "migrate_unique_ids": [], - "platform": "sensor", - "class_name": "SmartEnergySummation", - "translation_key": "summation_delivered", - "translation_placeholders": null, - "device_class": "energy", - "state_class": "total_increasing", - "entity_category": null, - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:22:09:db:75", - "endpoint_id": 1, - "available": true, - "group_id": null, - "suggested_display_precision": 3, - "unit": "kWh" - }, - "state": { - "class_name": "SmartEnergySummation", - "available": true, - "state": 0.0, - "status": "NO_ALARMS", - "zcl_unit_of_measurement": 0 - }, - "extra_state_attributes": [ - "device_type", - "status", - "zcl_unit_of_measurement" - ] - }, - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:22:09:db:75-1-1794-summation_received", - "migrate_unique_ids": [], - "platform": "sensor", - "class_name": "SmartEnergySummationReceived", - "translation_key": "summation_received", - "translation_placeholders": null, - "device_class": "energy", - "state_class": "total_increasing", - "entity_category": null, - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:22:09:db:75", - "endpoint_id": 1, - "available": true, - "group_id": null, - "suggested_display_precision": 3, - "unit": "kWh" - }, - "state": { - "class_name": "SmartEnergySummationReceived", - "available": true, - "state": 0.0, - "status": "NO_ALARMS", - "zcl_unit_of_measurement": 0 - }, - "extra_state_attributes": [ - "device_type", - "status", - "zcl_unit_of_measurement" - ] - }, - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:22:09:db:75-1-2820", - "migrate_unique_ids": [], - "platform": "sensor", - "class_name": "ElectricalMeasurementActivePower", - "translation_key": null, - "translation_placeholders": null, - "device_class": "power", - "state_class": "measurement", - "entity_category": null, - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:22:09:db:75", - "endpoint_id": 1, - "available": true, - "group_id": null, - "suggested_display_precision": 1, - "unit": "W" - }, - "state": { - "class_name": "ElectricalMeasurementActivePower", - "available": true, - "state": 0.0, - "measurement_type": "ACTIVE_MEASUREMENT, REACTIVE_MEASUREMENT, APPARENT_MEASUREMENT, PHASE_A_MEASUREMENT" - }, - "extra_state_attributes": [ - "active_power_max", - "measurement_type" - ] - }, - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:22:09:db:75-1-2820-ac_frequency", - "migrate_unique_ids": [], - "platform": "sensor", - "class_name": "ElectricalMeasurementFrequency", - "translation_key": "ac_frequency", - "translation_placeholders": null, - "device_class": "frequency", - "state_class": "measurement", - "entity_category": null, - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:22:09:db:75", - "endpoint_id": 1, - "available": true, - "group_id": null, - "suggested_display_precision": 1, - "unit": "Hz" - }, - "state": { - "class_name": "ElectricalMeasurementFrequency", - "available": true, - "state": 49.13, - "measurement_type": "ACTIVE_MEASUREMENT, REACTIVE_MEASUREMENT, APPARENT_MEASUREMENT, PHASE_A_MEASUREMENT" - }, - "extra_state_attributes": [ - "ac_frequency_max", - "measurement_type" - ] - }, - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:22:09:db:75-1-2820-apparent_power", - "migrate_unique_ids": [], - "platform": "sensor", - "class_name": "ElectricalMeasurementApparentPower", - "translation_key": null, - "translation_placeholders": null, - "device_class": "apparent_power", - "state_class": "measurement", - "entity_category": null, - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:22:09:db:75", - "endpoint_id": 1, - "available": true, - "group_id": null, - "suggested_display_precision": 1, - "unit": "VA" - }, - "state": { - "class_name": "ElectricalMeasurementApparentPower", - "available": true, - "state": 0.0, - "measurement_type": "ACTIVE_MEASUREMENT, REACTIVE_MEASUREMENT, APPARENT_MEASUREMENT, PHASE_A_MEASUREMENT" - }, - "extra_state_attributes": [ - "measurement_type" - ] - }, - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:22:09:db:75-1-2820-power_factor", - "migrate_unique_ids": [], - "platform": "sensor", - "class_name": "ElectricalMeasurementPowerFactor", - "translation_key": null, - "translation_placeholders": null, - "device_class": "power_factor", - "state_class": "measurement", - "entity_category": null, - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:22:09:db:75", - "endpoint_id": 1, - "available": true, - "group_id": null, - "suggested_display_precision": 1, - "unit": "%" - }, - "state": { - "class_name": "ElectricalMeasurementPowerFactor", - "available": true, - "state": 100, - "measurement_type": "ACTIVE_MEASUREMENT, REACTIVE_MEASUREMENT, APPARENT_MEASUREMENT, PHASE_A_MEASUREMENT" - }, - "extra_state_attributes": [ - "measurement_type" - ] - }, - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:22:09:db:75-1-2820-rms_current", - "migrate_unique_ids": [], - "platform": "sensor", - "class_name": "ElectricalMeasurementRMSCurrent", - "translation_key": null, - "translation_placeholders": null, - "device_class": "current", - "state_class": "measurement", - "entity_category": null, - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:22:09:db:75", - "endpoint_id": 1, - "available": true, - "group_id": null, - "suggested_display_precision": 2, - "unit": "A" - }, - "state": { - "class_name": "ElectricalMeasurementRMSCurrent", - "available": true, - "state": 0.0, - "measurement_type": "ACTIVE_MEASUREMENT, REACTIVE_MEASUREMENT, APPARENT_MEASUREMENT, PHASE_A_MEASUREMENT" - }, - "extra_state_attributes": [ - "measurement_type", - "rms_current_max" - ] - }, - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:22:09:db:75-1-2820-rms_voltage", - "migrate_unique_ids": [], - "platform": "sensor", - "class_name": "ElectricalMeasurementRMSVoltage", - "translation_key": null, - "translation_placeholders": null, - "device_class": "voltage", - "state_class": "measurement", - "entity_category": null, - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:22:09:db:75", - "endpoint_id": 1, - "available": true, - "group_id": null, - "suggested_display_precision": 1, - "unit": "V" - }, - "state": { - "class_name": "ElectricalMeasurementRMSVoltage", - "available": true, - "state": 240.3, - "measurement_type": "ACTIVE_MEASUREMENT, REACTIVE_MEASUREMENT, APPARENT_MEASUREMENT, PHASE_A_MEASUREMENT" - }, - "extra_state_attributes": [ - "measurement_type", - "rms_voltage_max" - ] - }, - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:22:09:db:75-2-1794", - "migrate_unique_ids": [], - "platform": "sensor", - "class_name": "SmartEnergyMetering", - "translation_key": "instantaneous_demand", - "translation_placeholders": null, - "device_class": "power", - "state_class": "measurement", - "entity_category": null, - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:22:09:db:75", - "endpoint_id": 2, - "available": true, - "group_id": null, - "suggested_display_precision": 1, - "unit": "W" - }, - "state": { - "class_name": "SmartEnergyMetering", - "available": true, - "state": 55.0, - "status": "NO_ALARMS", - "zcl_unit_of_measurement": 0 - }, - "extra_state_attributes": [ - "device_type", - "status", - "zcl_unit_of_measurement" - ] - }, - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:22:09:db:75-2-1794-summation_delivered", - "migrate_unique_ids": [], - "platform": "sensor", - "class_name": "SmartEnergySummation", - "translation_key": "summation_delivered", - "translation_placeholders": null, - "device_class": "energy", - "state_class": "total_increasing", - "entity_category": null, - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:22:09:db:75", - "endpoint_id": 2, - "available": true, - "group_id": null, - "suggested_display_precision": 3, - "unit": "kWh" - }, - "state": { - "class_name": "SmartEnergySummation", - "available": true, - "state": 0.33, - "status": "NO_ALARMS", - "zcl_unit_of_measurement": 0 - }, - "extra_state_attributes": [ - "device_type", - "status", - "zcl_unit_of_measurement" - ] - }, - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:22:09:db:75-2-1794-summation_received", - "migrate_unique_ids": [], - "platform": "sensor", - "class_name": "SmartEnergySummationReceived", - "translation_key": "summation_received", - "translation_placeholders": null, - "device_class": "energy", - "state_class": "total_increasing", - "entity_category": null, - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:22:09:db:75", - "endpoint_id": 2, - "available": true, - "group_id": null, - "suggested_display_precision": 3, - "unit": "kWh" - }, - "state": { - "class_name": "SmartEnergySummationReceived", - "available": true, - "state": 0.0, - "status": "NO_ALARMS", - "zcl_unit_of_measurement": 0 - }, - "extra_state_attributes": [ - "device_type", - "status", - "zcl_unit_of_measurement" - ] - }, - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:22:09:db:75-2-2820", - "migrate_unique_ids": [], - "platform": "sensor", - "class_name": "ElectricalMeasurementActivePower", - "translation_key": null, - "translation_placeholders": null, - "device_class": "power", - "state_class": "measurement", - "entity_category": null, - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:22:09:db:75", - "endpoint_id": 2, - "available": true, - "group_id": null, - "suggested_display_precision": 1, - "unit": "W" - }, - "state": { - "class_name": "ElectricalMeasurementActivePower", - "available": true, - "state": 52.5, - "measurement_type": "ACTIVE_MEASUREMENT, REACTIVE_MEASUREMENT, APPARENT_MEASUREMENT, PHASE_A_MEASUREMENT" - }, - "extra_state_attributes": [ - "active_power_max", - "measurement_type" - ] - }, - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:22:09:db:75-2-2820-apparent_power", - "migrate_unique_ids": [], - "platform": "sensor", - "class_name": "ElectricalMeasurementApparentPower", - "translation_key": null, - "translation_placeholders": null, - "device_class": "apparent_power", - "state_class": "measurement", - "entity_category": null, - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:22:09:db:75", - "endpoint_id": 2, - "available": true, - "group_id": null, - "suggested_display_precision": 1, - "unit": "VA" - }, - "state": { - "class_name": "ElectricalMeasurementApparentPower", - "available": true, - "state": 95.4, - "measurement_type": "ACTIVE_MEASUREMENT, REACTIVE_MEASUREMENT, APPARENT_MEASUREMENT, PHASE_A_MEASUREMENT" - }, - "extra_state_attributes": [ - "measurement_type" - ] - }, - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:22:09:db:75-2-2820-power_factor", - "migrate_unique_ids": [], - "platform": "sensor", - "class_name": "ElectricalMeasurementPowerFactor", - "translation_key": null, - "translation_placeholders": null, - "device_class": "power_factor", - "state_class": "measurement", - "entity_category": null, - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:22:09:db:75", - "endpoint_id": 2, - "available": true, - "group_id": null, - "suggested_display_precision": 1, - "unit": "%" - }, - "state": { - "class_name": "ElectricalMeasurementPowerFactor", - "available": true, - "state": 57, - "measurement_type": "ACTIVE_MEASUREMENT, REACTIVE_MEASUREMENT, APPARENT_MEASUREMENT, PHASE_A_MEASUREMENT" - }, - "extra_state_attributes": [ - "measurement_type" - ] - }, - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:22:09:db:75-2-2820-rms_current", - "migrate_unique_ids": [], - "platform": "sensor", - "class_name": "ElectricalMeasurementRMSCurrent", - "translation_key": null, - "translation_placeholders": null, - "device_class": "current", - "state_class": "measurement", - "entity_category": null, - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:22:09:db:75", - "endpoint_id": 2, - "available": true, - "group_id": null, - "suggested_display_precision": 2, - "unit": "A" - }, - "state": { - "class_name": "ElectricalMeasurementRMSCurrent", - "available": true, - "state": 0.397, - "measurement_type": "ACTIVE_MEASUREMENT, REACTIVE_MEASUREMENT, APPARENT_MEASUREMENT, PHASE_A_MEASUREMENT" - }, - "extra_state_attributes": [ - "measurement_type", - "rms_current_max" - ] - }, - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:22:09:db:75-3-1794", - "migrate_unique_ids": [], - "platform": "sensor", - "class_name": "SmartEnergyMetering", - "translation_key": "instantaneous_demand", - "translation_placeholders": null, - "device_class": "power", - "state_class": "measurement", - "entity_category": null, - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:22:09:db:75", - "endpoint_id": 3, - "available": true, - "group_id": null, - "suggested_display_precision": 1, - "unit": "W" - }, - "state": { - "class_name": "SmartEnergyMetering", - "available": true, - "state": 55.0, - "status": "NO_ALARMS", - "zcl_unit_of_measurement": 0 - }, - "extra_state_attributes": [ - "device_type", - "status", - "zcl_unit_of_measurement" - ] - }, - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:22:09:db:75-3-1794-summation_delivered", - "migrate_unique_ids": [], - "platform": "sensor", - "class_name": "SmartEnergySummation", - "translation_key": "summation_delivered", - "translation_placeholders": null, - "device_class": "energy", - "state_class": "total_increasing", - "entity_category": null, - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:22:09:db:75", - "endpoint_id": 3, - "available": true, - "group_id": null, - "suggested_display_precision": 3, - "unit": "kWh" - }, - "state": { - "class_name": "SmartEnergySummation", - "available": true, - "state": 0.33, - "status": "NO_ALARMS", - "zcl_unit_of_measurement": 0 - }, - "extra_state_attributes": [ - "device_type", - "status", - "zcl_unit_of_measurement" - ] - }, - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:22:09:db:75-3-1794-summation_received", - "migrate_unique_ids": [], - "platform": "sensor", - "class_name": "SmartEnergySummationReceived", - "translation_key": "summation_received", - "translation_placeholders": null, - "device_class": "energy", - "state_class": "total_increasing", - "entity_category": null, - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:22:09:db:75", - "endpoint_id": 3, - "available": true, - "group_id": null, - "suggested_display_precision": 3, - "unit": "kWh" - }, - "state": { - "class_name": "SmartEnergySummationReceived", - "available": true, - "state": 0.0, - "status": "NO_ALARMS", - "zcl_unit_of_measurement": 0 - }, - "extra_state_attributes": [ - "device_type", - "status", - "zcl_unit_of_measurement" - ] - }, - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:22:09:db:75-3-2820", - "migrate_unique_ids": [], - "platform": "sensor", - "class_name": "ElectricalMeasurementActivePower", - "translation_key": null, - "translation_placeholders": null, - "device_class": "power", - "state_class": "measurement", - "entity_category": null, - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:22:09:db:75", - "endpoint_id": 3, - "available": true, - "group_id": null, - "suggested_display_precision": 1, - "unit": "W" - }, - "state": { - "class_name": "ElectricalMeasurementActivePower", - "available": true, - "state": 52.5, - "measurement_type": "ACTIVE_MEASUREMENT, REACTIVE_MEASUREMENT, APPARENT_MEASUREMENT, PHASE_A_MEASUREMENT" - }, - "extra_state_attributes": [ - "active_power_max", - "measurement_type" - ] - }, - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:22:09:db:75-3-2820-apparent_power", - "migrate_unique_ids": [], - "platform": "sensor", - "class_name": "ElectricalMeasurementApparentPower", - "translation_key": null, - "translation_placeholders": null, - "device_class": "apparent_power", - "state_class": "measurement", - "entity_category": null, - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:22:09:db:75", - "endpoint_id": 3, - "available": true, - "group_id": null, - "suggested_display_precision": 1, - "unit": "VA" - }, - "state": { - "class_name": "ElectricalMeasurementApparentPower", - "available": true, - "state": 95.4, - "measurement_type": "ACTIVE_MEASUREMENT, REACTIVE_MEASUREMENT, APPARENT_MEASUREMENT, PHASE_A_MEASUREMENT" - }, - "extra_state_attributes": [ - "measurement_type" - ] - }, - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:22:09:db:75-3-2820-rms_current", - "migrate_unique_ids": [], - "platform": "sensor", - "class_name": "ElectricalMeasurementRMSCurrent", - "translation_key": null, - "translation_placeholders": null, - "device_class": "current", - "state_class": "measurement", - "entity_category": null, - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:22:09:db:75", - "endpoint_id": 3, - "available": true, - "group_id": null, - "suggested_display_precision": 2, - "unit": "A" - }, - "state": { - "class_name": "ElectricalMeasurementRMSCurrent", - "available": true, - "state": 0.397, - "measurement_type": "ACTIVE_MEASUREMENT, REACTIVE_MEASUREMENT, APPARENT_MEASUREMENT, PHASE_A_MEASUREMENT" - }, - "extra_state_attributes": [ - "measurement_type", - "rms_current_max" - ] } ], "update": [ diff --git a/tests/data/legacy_devices/tze204-9yapgbuv-ts0601.json b/tests/data/legacy_devices/tze204-9yapgbuv-ts0601.json index b9a1d016f..95890eb79 100644 --- a/tests/data/legacy_devices/tze204-9yapgbuv-ts0601.json +++ b/tests/data/legacy_devices/tze204-9yapgbuv-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:21.512246+00:00", + "last_seen": "2024-01-22T03:55:40+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -129,44 +129,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_9yapgbuv", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0004", - "0x0005", - "0x0402", - "0x0405", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "select": [ { diff --git a/tests/data/legacy_devices/tze204-a2jcoyuk-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-a2jcoyuk-ts0601-0x0000004a.json index b9861cc35..74f95484b 100644 --- a/tests/data/legacy_devices/tze204-a2jcoyuk-ts0601-0x0000004a.json +++ b/tests/data/legacy_devices/tze204-a2jcoyuk-ts0601-0x0000004a.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:46.263864+00:00", + "last_seen": "2024-11-13T16:26:40", "available": true, "device_type": "Router", "active_coordinator": false, @@ -117,49 +117,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_a2jcoyuk", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze204-ai4rqhky-ts0601-0x00000049.json b/tests/data/legacy_devices/tze204-ai4rqhky-ts0601-0x00000049.json index aff8efc3b..c8f51db09 100644 --- a/tests/data/legacy_devices/tze204-ai4rqhky-ts0601-0x00000049.json +++ b/tests/data/legacy_devices/tze204-ai4rqhky-ts0601-0x00000049.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-04-29T19:02:50.267168+00:00", + "last_seen": "2025-02-28T14:59:47", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -108,41 +108,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_ai4rqhky", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze204-aoclfnxz-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-aoclfnxz-ts0601-0x0000004a.json index 4eea62b50..7de2c79bf 100644 --- a/tests/data/legacy_devices/tze204-aoclfnxz-ts0601-0x0000004a.json +++ b/tests/data/legacy_devices/tze204-aoclfnxz-ts0601-0x0000004a.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:42.129591+00:00", + "last_seen": "2024-09-24T15:16:08", "available": true, "device_type": "Router", "active_coordinator": false, @@ -153,49 +153,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_aoclfnxz", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze204-bkkmqmyo-ts0601.json b/tests/data/legacy_devices/tze204-bkkmqmyo-ts0601.json index 048cef063..75ba4a29b 100644 --- a/tests/data/legacy_devices/tze204-bkkmqmyo-ts0601.json +++ b/tests/data/legacy_devices/tze204-bkkmqmyo-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:39:38.033573+00:00", + "last_seen": "2024-06-21T03:26:18", "available": true, "device_type": "Router", "active_coordinator": false, @@ -398,44 +398,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_bkkmqmyo", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0006", - "0x0702", - "0x0b04", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze204-c2fmom5z-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-c2fmom5z-ts0601-0x0000004a.json index e8b949e05..ab6692359 100644 --- a/tests/data/legacy_devices/tze204-c2fmom5z-ts0601-0x0000004a.json +++ b/tests/data/legacy_devices/tze204-c2fmom5z-ts0601-0x0000004a.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:44.844134+00:00", + "last_seen": "2024-11-23T12:17:09+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -193,7 +193,7 @@ "id": "0x0000", "name": "measured_value", "zcl_type": "int16", - "value": 1850 + "unsupported": true } ] }, @@ -205,7 +205,7 @@ "id": "0x0000", "name": "measured_value", "zcl_type": "uint16", - "value": 7180 + "unsupported": true } ] }, @@ -217,7 +217,7 @@ "id": "0x0000", "name": "measured_value", "zcl_type": "single", - "value": 0.00048699999999999997 + "unsupported": true } ] }, @@ -234,7 +234,7 @@ "id": "0x0000", "name": "measured_value", "zcl_type": "single", - "value": 3.4e-05 + "unsupported": true } ] }, @@ -310,55 +310,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_c2fmom5z", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0402", - "0x0405", - "0x040d", - "0x042a", - "0x042b", - "0x042e", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { @@ -417,90 +368,6 @@ "state": null } }, - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:e1:f5:c9:be-1-1026", - "migrate_unique_ids": [], - "platform": "sensor", - "class_name": "Temperature", - "translation_key": null, - "translation_placeholders": null, - "device_class": "temperature", - "state_class": "measurement", - "entity_category": null, - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:e1:f5:c9:be", - "endpoint_id": 1, - "available": true, - "group_id": null, - "suggested_display_precision": null, - "unit": "\u00b0C" - }, - "state": { - "class_name": "Temperature", - "available": true, - "state": 18.5 - } - }, - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:e1:f5:c9:be-1-1029", - "migrate_unique_ids": [], - "platform": "sensor", - "class_name": "Humidity", - "translation_key": null, - "translation_placeholders": null, - "device_class": "humidity", - "state_class": "measurement", - "entity_category": null, - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:e1:f5:c9:be", - "endpoint_id": 1, - "available": true, - "group_id": null, - "suggested_display_precision": null, - "unit": "%" - }, - "state": { - "class_name": "Humidity", - "available": true, - "state": 71.8 - } - }, - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:e1:f5:c9:be-1-1037", - "migrate_unique_ids": [], - "platform": "sensor", - "class_name": "CarbonDioxideConcentration", - "translation_key": null, - "translation_placeholders": null, - "device_class": "carbon_dioxide", - "state_class": "measurement", - "entity_category": null, - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:e1:f5:c9:be", - "endpoint_id": 1, - "available": true, - "group_id": null, - "suggested_display_precision": 0, - "unit": "ppm" - }, - "state": { - "class_name": "CarbonDioxideConcentration", - "available": true, - "state": 486.99999999999994 - } - }, { "info_object": { "fallback_name": null, @@ -529,34 +396,6 @@ "state": null } }, - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:e1:f5:c9:be-1-1067", - "migrate_unique_ids": [], - "platform": "sensor", - "class_name": "FormaldehydeConcentration", - "translation_key": "formaldehyde", - "translation_placeholders": null, - "device_class": null, - "state_class": "measurement", - "entity_category": null, - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:e1:f5:c9:be", - "endpoint_id": 1, - "available": true, - "group_id": null, - "suggested_display_precision": 0, - "unit": "ppm" - }, - "state": { - "class_name": "FormaldehydeConcentration", - "available": true, - "state": 34.0 - } - }, { "info_object": { "fallback_name": null, diff --git a/tests/data/legacy_devices/tze204-chbyv06x-ts0601.json b/tests/data/legacy_devices/tze204-chbyv06x-ts0601.json index 8b95e406e..bf52a348e 100644 --- a/tests/data/legacy_devices/tze204-chbyv06x-ts0601.json +++ b/tests/data/legacy_devices/tze204-chbyv06x-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T00:56:57.179536+00:00", + "last_seen": "2023-11-14T02:15:31+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -122,50 +122,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_chbyv06x", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0500", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze204-cirvgep4-ts0601-0x00000049.json b/tests/data/legacy_devices/tze204-cirvgep4-ts0601-0x00000049.json index 6e96a1c13..57bdde191 100644 --- a/tests/data/legacy_devices/tze204-cirvgep4-ts0601-0x00000049.json +++ b/tests/data/legacy_devices/tze204-cirvgep4-ts0601-0x00000049.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:22.753325+00:00", + "last_seen": "2024-07-17T03:41:51+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -154,44 +154,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_cirvgep4", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0004", - "0x0005", - "0x0402", - "0x0405", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "select": [ { diff --git a/tests/data/legacy_devices/tze204-cjbofhxw-ts0601.json b/tests/data/legacy_devices/tze204-cjbofhxw-ts0601.json index f88b8a306..b30d3fa6e 100644 --- a/tests/data/legacy_devices/tze204-cjbofhxw-ts0601.json +++ b/tests/data/legacy_devices/tze204-cjbofhxw-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:39:38.739529+00:00", + "last_seen": "2024-07-31T11:24:54", "available": true, "device_type": "Router", "active_coordinator": false, @@ -336,43 +336,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_cjbofhxw", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0702", - "0x0b04", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze204-d6i25bwg-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-d6i25bwg-ts0601-0x0000004a.json index c5ee8c110..397665f9f 100644 --- a/tests/data/legacy_devices/tze204-d6i25bwg-ts0601-0x0000004a.json +++ b/tests/data/legacy_devices/tze204-d6i25bwg-ts0601-0x0000004a.json @@ -141,51 +141,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_d6i25bwg", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0402", - "0x0405", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze204-dtzziy1e-ts0601.json b/tests/data/legacy_devices/tze204-dtzziy1e-ts0601.json index bb946e398..2ee3413fb 100644 --- a/tests/data/legacy_devices/tze204-dtzziy1e-ts0601.json +++ b/tests/data/legacy_devices/tze204-dtzziy1e-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:59.382130+00:00", + "last_seen": "2023-07-04T21:06:49+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -112,43 +112,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_dtzziy1e", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0400", - "0x0406", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze204-dwcarsat-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-dwcarsat-ts0601-0x0000004a.json index e32fb91a7..b101f70fb 100644 --- a/tests/data/legacy_devices/tze204-dwcarsat-ts0601-0x0000004a.json +++ b/tests/data/legacy_devices/tze204-dwcarsat-ts0601-0x0000004a.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:45.013263+00:00", + "last_seen": "2024-11-10T22:25:27+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -189,55 +189,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_dwcarsat", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0402", - "0x0405", - "0x040d", - "0x042a", - "0x042b", - "0x042e", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze204-ex3rcdha-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-ex3rcdha-ts0601-0x0000004a.json index 11ee024e0..677e0a160 100644 --- a/tests/data/legacy_devices/tze204-ex3rcdha-ts0601-0x0000004a.json +++ b/tests/data/legacy_devices/tze204-ex3rcdha-ts0601-0x0000004a.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:39.158391+00:00", + "last_seen": "2024-08-22T14:21:22+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -392,85 +392,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_ex3rcdha", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0107", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x000c", - "0x000d", - "0x0400", - "0x0406", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0007", - "input_clusters": [ - "0x000d" - ], - "output_clusters": [] - }, - "3": { - "profile_id": "0x0104", - "device_type": "0x0007", - "input_clusters": [ - "0x000d" - ], - "output_clusters": [] - }, - "4": { - "profile_id": "0x0104", - "device_type": "0x0007", - "input_clusters": [ - "0x000d" - ], - "output_clusters": [] - }, - "5": { - "profile_id": "0x0104", - "device_type": "0x0007", - "input_clusters": [ - "0x000d" - ], - "output_clusters": [] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze204-fhvdgeuh-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-fhvdgeuh-ts0601-0x0000004a.json index 4567a5b8a..635e762fd 100644 --- a/tests/data/legacy_devices/tze204-fhvdgeuh-ts0601-0x0000004a.json +++ b/tests/data/legacy_devices/tze204-fhvdgeuh-ts0601-0x0000004a.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:44.656496+00:00", + "last_seen": "2025-02-10T20:13:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -117,49 +117,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_fhvdgeuh", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze204-g2ki0ejr-ts0601.json b/tests/data/legacy_devices/tze204-g2ki0ejr-ts0601.json index 6f0013d27..0dd742c58 100644 --- a/tests/data/legacy_devices/tze204-g2ki0ejr-ts0601.json +++ b/tests/data/legacy_devices/tze204-g2ki0ejr-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:39:38.243059+00:00", + "last_seen": "2023-10-23T14:25:45", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -89,41 +89,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_g2ki0ejr", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze204-goecjd1t-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-goecjd1t-ts0601-0x0000004a.json index d3e593ffd..0637c53a0 100644 --- a/tests/data/legacy_devices/tze204-goecjd1t-ts0601-0x0000004a.json +++ b/tests/data/legacy_devices/tze204-goecjd1t-ts0601-0x0000004a.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:46.467780+00:00", + "last_seen": "2025-01-22T19:33:57", "available": true, "device_type": "Router", "active_coordinator": false, @@ -117,49 +117,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_goecjd1t", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze204-gops3slb-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-gops3slb-ts0601-0x0000004a.json index 42db989ec..b4de033d2 100644 --- a/tests/data/legacy_devices/tze204-gops3slb-ts0601-0x0000004a.json +++ b/tests/data/legacy_devices/tze204-gops3slb-ts0601-0x0000004a.json @@ -144,7 +144,68 @@ { "cluster_id": "0xef00", "endpoint_attribute": "tuya_manufacturer", - "attributes": [] + "attributes": [ + { + "id": "0xef6e", + "name": "backlight_mode", + "zcl_type": "enum8", + "value": 1 + }, + { + "id": "0xef09", + "name": "child_lock", + "zcl_type": "bool", + "value": 0 + }, + { + "id": "0xef6b", + "name": "deadzone_temperature", + "zcl_type": "uint16", + "value": 10 + }, + { + "id": "0xef67", + "name": "factory_reset", + "zcl_type": "bool", + "value": 0 + }, + { + "id": "0xef66", + "name": "frost_protection", + "zcl_type": "bool", + "value": 0 + }, + { + "id": "0xef13", + "name": "local_temperature_calibration", + "zcl_type": "int32", + "value": -10 + }, + { + "id": "0xef00", + "name": "mcu_version", + "zcl_type": "uint48", + "value": "1.0.0" + }, + { + "id": "0xef04", + "name": "preset_mode", + "zcl_type": "enum8", + "value": 0 + }, + { + "id": "0xef6a", + "name": "temperature_sensor_select", + "zcl_type": "enum8", + "value": 0 + }, + { + "id": "0xef68", + "name": "working_day", + "zcl_type": "enum8", + "value": 1 + } + ] } ], "out_clusters": [ @@ -183,50 +244,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_gops3slb", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0201", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { @@ -380,7 +397,7 @@ "state": { "class_name": "NumberConfigurationEntity", "available": true, - "state": null + "state": 1.0 } }, { @@ -411,7 +428,7 @@ "state": { "class_name": "NumberConfigurationEntity", "available": true, - "state": null + "state": -1.0 } } ], @@ -446,7 +463,7 @@ "state": { "class_name": "ZCLEnumSelectEntity", "available": true, - "state": null + "state": "Low" } }, { @@ -478,7 +495,7 @@ "state": { "class_name": "ZCLEnumSelectEntity", "available": true, - "state": null + "state": "Manual" } }, { @@ -510,7 +527,7 @@ "state": { "class_name": "ZCLEnumSelectEntity", "available": true, - "state": null + "state": "Air" } }, { @@ -543,7 +560,7 @@ "state": { "class_name": "ZCLEnumSelectEntity", "available": true, - "state": null + "state": "Five Two" } } ], diff --git a/tests/data/legacy_devices/tze204-guvc7pdy-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-guvc7pdy-ts0601-0x0000004a.json index 743c09829..c8f2a2672 100644 --- a/tests/data/legacy_devices/tze204-guvc7pdy-ts0601-0x0000004a.json +++ b/tests/data/legacy_devices/tze204-guvc7pdy-ts0601-0x0000004a.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:23.002707+00:00", + "last_seen": "2024-05-21T15:26:16", "available": true, "device_type": "Router", "active_coordinator": false, @@ -177,50 +177,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_guvc7pdy", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0202", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0102", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "cover": [ { diff --git a/tests/data/legacy_devices/tze204-hlx9tnzb-ts0601.json b/tests/data/legacy_devices/tze204-hlx9tnzb-ts0601.json index 99070d358..ab939f325 100644 --- a/tests/data/legacy_devices/tze204-hlx9tnzb-ts0601.json +++ b/tests/data/legacy_devices/tze204-hlx9tnzb-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:39:39.309439+00:00", + "last_seen": "2024-01-28T20:28:56", "available": true, "device_type": "Router", "active_coordinator": false, @@ -147,51 +147,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_hlx9tnzb", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "light": [ { diff --git a/tests/data/legacy_devices/tze204-iaeejhvf-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-iaeejhvf-ts0601-0x0000004a.json index 398626af3..7ecb287f5 100644 --- a/tests/data/legacy_devices/tze204-iaeejhvf-ts0601-0x0000004a.json +++ b/tests/data/legacy_devices/tze204-iaeejhvf-ts0601-0x0000004a.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-04-29T19:02:49.628999+00:00", + "last_seen": "2024-10-01T14:36:14+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -422,85 +422,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_iaeejhvf", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0107", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x000c", - "0x000d", - "0x0400", - "0x0406", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0007", - "input_clusters": [ - "0x000d" - ], - "output_clusters": [] - }, - "3": { - "profile_id": "0x0104", - "device_type": "0x0007", - "input_clusters": [ - "0x000d" - ], - "output_clusters": [] - }, - "4": { - "profile_id": "0x0104", - "device_type": "0x0007", - "input_clusters": [ - "0x000d" - ], - "output_clusters": [] - }, - "5": { - "profile_id": "0x0104", - "device_type": "0x0007", - "input_clusters": [ - "0x000d" - ], - "output_clusters": [] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze204-ijxvkhd0-ts0601.json b/tests/data/legacy_devices/tze204-ijxvkhd0-ts0601.json index 9483c5673..51d7a3ac0 100644 --- a/tests/data/legacy_devices/tze204-ijxvkhd0-ts0601.json +++ b/tests/data/legacy_devices/tze204-ijxvkhd0-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:40:27.168113+00:00", + "last_seen": "2023-12-02T15:17:10", "available": true, "device_type": "Router", "active_coordinator": false, @@ -110,49 +110,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_ijxvkhd0", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze204-jrcfsaa3-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-jrcfsaa3-ts0601-0x0000004a.json index f8d5adcd5..030e07656 100644 --- a/tests/data/legacy_devices/tze204-jrcfsaa3-ts0601-0x0000004a.json +++ b/tests/data/legacy_devices/tze204-jrcfsaa3-ts0601-0x0000004a.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:08:50.701759+00:00", + "last_seen": "2025-04-29T14:22:07", "available": true, "device_type": "Router", "active_coordinator": false, @@ -117,49 +117,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_jrcfsaa3", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze204-k7mfgaen-ts0601.json b/tests/data/legacy_devices/tze204-k7mfgaen-ts0601.json index 9cf2e565c..7b18f7555 100644 --- a/tests/data/legacy_devices/tze204-k7mfgaen-ts0601.json +++ b/tests/data/legacy_devices/tze204-k7mfgaen-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:40:55.568017+00:00", + "last_seen": "2024-03-19T02:53:41+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -147,50 +147,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_k7mfgaen", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze204-kobbcyum-ts0601.json b/tests/data/legacy_devices/tze204-kobbcyum-ts0601.json index 767d386dd..352bc9890 100644 --- a/tests/data/legacy_devices/tze204-kobbcyum-ts0601.json +++ b/tests/data/legacy_devices/tze204-kobbcyum-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:24.610821+00:00", + "last_seen": "2024-06-18T14:25:59", "available": true, "device_type": "Router", "active_coordinator": false, @@ -158,41 +158,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_kobbcyum", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze204-kyhbrfyl-ts0601.json b/tests/data/legacy_devices/tze204-kyhbrfyl-ts0601.json index 2acc6bef1..551312e2c 100644 --- a/tests/data/legacy_devices/tze204-kyhbrfyl-ts0601.json +++ b/tests/data/legacy_devices/tze204-kyhbrfyl-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T00:56:57.010871+00:00", + "last_seen": "2023-12-11T01:50:25+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -126,43 +126,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_kyhbrfyl", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0107", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x000c", - "0x0406", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze204-l8xiyymq-ts0601.json b/tests/data/legacy_devices/tze204-l8xiyymq-ts0601.json index 405c37037..47b6273d2 100644 --- a/tests/data/legacy_devices/tze204-l8xiyymq-ts0601.json +++ b/tests/data/legacy_devices/tze204-l8xiyymq-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:40.884742+00:00", + "last_seen": "2024-12-25T12:16:51", "available": true, "device_type": "Router", "active_coordinator": false, @@ -127,41 +127,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_l8xiyymq", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze204-lb0fsvba-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-lb0fsvba-ts0601-0x0000004a.json index dfe0427ec..2919fd7b2 100644 --- a/tests/data/legacy_devices/tze204-lb0fsvba-ts0601-0x0000004a.json +++ b/tests/data/legacy_devices/tze204-lb0fsvba-ts0601-0x0000004a.json @@ -117,49 +117,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_lb0fsvba", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze204-lbbg34rj-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-lbbg34rj-ts0601-0x0000004a.json index 87215b07f..1bbf6321c 100644 --- a/tests/data/legacy_devices/tze204-lbbg34rj-ts0601-0x0000004a.json +++ b/tests/data/legacy_devices/tze204-lbbg34rj-ts0601-0x0000004a.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:43.505469+00:00", + "last_seen": "2025-05-06T16:31:47", "available": true, "device_type": "Router", "active_coordinator": false, @@ -117,49 +117,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_lbbg34rj", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze204-lsanae15-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-lsanae15-ts0601-0x0000004a.json index ecbfdfc2d..3566a755a 100644 --- a/tests/data/legacy_devices/tze204-lsanae15-ts0601-0x0000004a.json +++ b/tests/data/legacy_devices/tze204-lsanae15-ts0601-0x0000004a.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:40:27.548630+00:00", + "last_seen": "2024-04-09T17:38:37", "available": true, "device_type": "Router", "active_coordinator": false, @@ -117,49 +117,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_lsanae15", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze204-ltwbm23f-ts0601-0x0000004e.json b/tests/data/legacy_devices/tze204-ltwbm23f-ts0601-0x0000004e.json index b8405dd5f..2abde1ea9 100644 --- a/tests/data/legacy_devices/tze204-ltwbm23f-ts0601-0x0000004e.json +++ b/tests/data/legacy_devices/tze204-ltwbm23f-ts0601-0x0000004e.json @@ -318,44 +318,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_ltwbm23f", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0004", - "0x0005", - "0x0201", - "0xed00", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze204-lzriup1j-ts0601.json b/tests/data/legacy_devices/tze204-lzriup1j-ts0601.json index aa664b110..8ad837d20 100644 --- a/tests/data/legacy_devices/tze204-lzriup1j-ts0601.json +++ b/tests/data/legacy_devices/tze204-lzriup1j-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:39:39.901334+00:00", + "last_seen": "2023-11-22T18:01:11+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -146,50 +146,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_lzriup1j", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0201", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze204-m64smti7-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-m64smti7-ts0601-0x0000004a.json index 31d401b4a..656bfae32 100644 --- a/tests/data/legacy_devices/tze204-m64smti7-ts0601-0x0000004a.json +++ b/tests/data/legacy_devices/tze204-m64smti7-ts0601-0x0000004a.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:45.592015+00:00", + "last_seen": "2025-03-09T18:20:25", "available": true, "device_type": "Router", "active_coordinator": false, @@ -117,49 +117,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_m64smti7", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze204-m9dzckna-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-m9dzckna-ts0601-0x0000004a.json index 036d002b1..8308fee58 100644 --- a/tests/data/legacy_devices/tze204-m9dzckna-ts0601-0x0000004a.json +++ b/tests/data/legacy_devices/tze204-m9dzckna-ts0601-0x0000004a.json @@ -117,49 +117,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_m9dzckna", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze204-mpbki2zm-ts0601.json b/tests/data/legacy_devices/tze204-mpbki2zm-ts0601.json index 5e7a23123..0fdd70389 100644 --- a/tests/data/legacy_devices/tze204-mpbki2zm-ts0601.json +++ b/tests/data/legacy_devices/tze204-mpbki2zm-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:33.987309+00:00", + "last_seen": "2023-08-17T12:17:25", "available": true, "device_type": "Router", "active_coordinator": false, @@ -110,49 +110,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_mpbki2zm", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze204-mtoaryre-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-mtoaryre-ts0601-0x0000004a.json index 9a80ca388..de0d063b6 100644 --- a/tests/data/legacy_devices/tze204-mtoaryre-ts0601-0x0000004a.json +++ b/tests/data/legacy_devices/tze204-mtoaryre-ts0601-0x0000004a.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:08:52.591249+00:00", + "last_seen": "2025-01-04T19:32:22+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -134,51 +134,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_mtoaryre", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0400", - "0x0406", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze204-muvkrjr5-ts0601.json b/tests/data/legacy_devices/tze204-muvkrjr5-ts0601.json index 9b41ed395..9d90a0f4c 100644 --- a/tests/data/legacy_devices/tze204-muvkrjr5-ts0601.json +++ b/tests/data/legacy_devices/tze204-muvkrjr5-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:35.776439+00:00", + "last_seen": "2024-01-30T04:45:41+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -115,50 +115,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_muvkrjr5", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0406", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze204-mwomyz5n-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-mwomyz5n-ts0601-0x0000004a.json index 3b8d94e9d..cb1014f4f 100644 --- a/tests/data/legacy_devices/tze204-mwomyz5n-ts0601-0x0000004a.json +++ b/tests/data/legacy_devices/tze204-mwomyz5n-ts0601-0x0000004a.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:08:50.263721+00:00", + "last_seen": "2024-10-10T18:37:07", "available": true, "device_type": "Router", "active_coordinator": false, @@ -117,49 +117,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_mwomyz5n", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze204-nbkshs6k-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-nbkshs6k-ts0601-0x0000004a.json index 5ab260307..b0f2f35f4 100644 --- a/tests/data/legacy_devices/tze204-nbkshs6k-ts0601-0x0000004a.json +++ b/tests/data/legacy_devices/tze204-nbkshs6k-ts0601-0x0000004a.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:08:50.414054+00:00", + "last_seen": "2024-08-22T13:27:55", "available": true, "device_type": "Router", "active_coordinator": false, @@ -111,49 +111,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_nbkshs6k", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze204-nklqjk62-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-nklqjk62-ts0601-0x0000004a.json index 1d7cc49ea..1b775746b 100644 --- a/tests/data/legacy_devices/tze204-nklqjk62-ts0601-0x0000004a.json +++ b/tests/data/legacy_devices/tze204-nklqjk62-ts0601-0x0000004a.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-04-29T19:02:49.808824+00:00", + "last_seen": "2024-12-07T15:35:12", "available": true, "device_type": "Router", "active_coordinator": false, @@ -105,49 +105,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_nklqjk62", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze204-nlrfgpny-ts0601-0x00000049.json b/tests/data/legacy_devices/tze204-nlrfgpny-ts0601-0x00000049.json index 9f9a952c5..dc33ddbd6 100644 --- a/tests/data/legacy_devices/tze204-nlrfgpny-ts0601-0x00000049.json +++ b/tests/data/legacy_devices/tze204-nlrfgpny-ts0601-0x00000049.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-04-29T19:02:50.123757+00:00", + "last_seen": "2024-09-04T01:26:59+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -187,51 +187,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_nlrfgpny", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0403", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0004", - "0x0005", - "0x0006", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze204-nvxorhcj-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-nvxorhcj-ts0601-0x0000004a.json index cca4481cd..fae75debd 100644 --- a/tests/data/legacy_devices/tze204-nvxorhcj-ts0601-0x0000004a.json +++ b/tests/data/legacy_devices/tze204-nvxorhcj-ts0601-0x0000004a.json @@ -117,49 +117,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_nvxorhcj", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze204-ogx8u5z6-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-ogx8u5z6-ts0601-0x0000004a.json index 8ebb825e3..929cba53f 100644 --- a/tests/data/legacy_devices/tze204-ogx8u5z6-ts0601-0x0000004a.json +++ b/tests/data/legacy_devices/tze204-ogx8u5z6-ts0601-0x0000004a.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:08:50.328533+00:00", + "last_seen": "2024-12-21T20:29:40+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -162,42 +162,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_ogx8u5z6", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0201", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze204-p3lqqy2r-ts0601.json b/tests/data/legacy_devices/tze204-p3lqqy2r-ts0601.json index 9e4fb6fb4..317404afc 100644 --- a/tests/data/legacy_devices/tze204-p3lqqy2r-ts0601.json +++ b/tests/data/legacy_devices/tze204-p3lqqy2r-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:21.545632+00:00", + "last_seen": "2023-12-28T20:46:27+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -143,42 +143,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_p3lqqy2r", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0201", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze204-pcdmj88b-ts0601-0x00000049.json b/tests/data/legacy_devices/tze204-pcdmj88b-ts0601-0x00000049.json index c0f08815d..2ca11b8da 100644 --- a/tests/data/legacy_devices/tze204-pcdmj88b-ts0601-0x00000049.json +++ b/tests/data/legacy_devices/tze204-pcdmj88b-ts0601-0x00000049.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:45.935366+00:00", + "last_seen": "2025-01-20T23:20:41", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -102,41 +102,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_pcdmj88b", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze204-pxbjch8m-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-pxbjch8m-ts0601-0x0000004a.json index c6fbbceb9..1b82a3221 100644 --- a/tests/data/legacy_devices/tze204-pxbjch8m-ts0601-0x0000004a.json +++ b/tests/data/legacy_devices/tze204-pxbjch8m-ts0601-0x0000004a.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:08:54.916770+00:00", + "last_seen": "2025-01-07T09:02:45", "available": true, "device_type": "Router", "active_coordinator": false, @@ -117,49 +117,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_pxbjch8m", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze204-qasjif9e-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-qasjif9e-ts0601-0x0000004a.json index 213e51bb3..2f864d931 100644 --- a/tests/data/legacy_devices/tze204-qasjif9e-ts0601-0x0000004a.json +++ b/tests/data/legacy_devices/tze204-qasjif9e-ts0601-0x0000004a.json @@ -1,7 +1,7 @@ { "version": 2, - "ieee": "a4:c1:38:f8:a7:c0:f2:88", - "nwk": "0x8BCC", + "ieee": "ab:cd:ef:12:79:99:09:90", + "nwk": "0x92DA", "manufacturer": "_TZE204_qasjif9e", "model": "TS0601", "friendly_manufacturer": "_TZE204_qasjif9e", @@ -12,9 +12,9 @@ "exposes_features": [], "manufacturer_code": 4417, "power_source": "Mains", - "lqi": null, + "lqi": 116, "rssi": null, - "last_seen": "2025-04-24T17:34:08.664834+00:00", + "last_seen": "2025-05-16T13:50:15.727823+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -89,7 +89,7 @@ "id": "0x0000", "name": "measured_value", "zcl_type": "uint16", - "value": 12553 + "value": 19031.899869919434 } ] }, @@ -101,7 +101,7 @@ "id": "0x0000", "name": "occupancy", "zcl_type": "map8", - "value": 0 + "value": false } ] }, @@ -109,11 +109,47 @@ "cluster_id": "0xef00", "endpoint_attribute": "tuya_manufacturer", "attributes": [ + { + "id": "0xef65", + "name": "detection_delay", + "zcl_type": "uint16", + "value": 10 + }, + { + "id": "0xef04", + "name": "detection_distance_max", + "zcl_type": "uint16", + "value": 750 + }, + { + "id": "0xef03", + "name": "detection_distance_min", + "zcl_type": "uint16", + "value": 60 + }, + { + "id": "0xef09", + "name": "distance", + "zcl_type": "uint16", + "value": 0 + }, + { + "id": "0xef66", + "name": "fading_time", + "zcl_type": "uint16", + "value": 20 + }, { "id": "0xef00", "name": "mcu_version", "zcl_type": "uint48", "value": "1.0.2" + }, + { + "id": "0xef02", + "name": "move_sensitivity", + "zcl_type": "uint16", + "value": 8 } ] } @@ -154,57 +190,12 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_qasjif9e", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0400", - "0x0406", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { "info_object": { "fallback_name": null, - "unique_id": "a4:c1:38:f8:a7:c0:f2:88-1-1030", + "unique_id": "ab:cd:ef:12:79:99:09:90-1-1030", "migrate_unique_ids": [], "platform": "binary_sensor", "class_name": "Occupancy", @@ -216,7 +207,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": true, - "device_ieee": "a4:c1:38:f8:a7:c0:f2:88", + "device_ieee": "ab:cd:ef:12:79:99:09:90", "endpoint_id": 1, "available": true, "group_id": null, @@ -233,7 +224,7 @@ { "info_object": { "fallback_name": "Detection delay", - "unique_id": "a4:c1:38:f8:a7:c0:f2:88-1-detection_delay", + "unique_id": "ab:cd:ef:12:79:99:09:90-1-detection_delay", "migrate_unique_ids": [], "platform": "number", "class_name": "NumberConfigurationEntity", @@ -245,7 +236,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "a4:c1:38:f8:a7:c0:f2:88", + "device_ieee": "ab:cd:ef:12:79:99:09:90", "endpoint_id": 1, "available": true, "group_id": null, @@ -258,13 +249,13 @@ "state": { "class_name": "NumberConfigurationEntity", "available": true, - "state": null + "state": 1.0 } }, { "info_object": { "fallback_name": "Maximum range", - "unique_id": "a4:c1:38:f8:a7:c0:f2:88-1-detection_distance_max", + "unique_id": "ab:cd:ef:12:79:99:09:90-1-detection_distance_max", "migrate_unique_ids": [], "platform": "number", "class_name": "NumberConfigurationEntity", @@ -276,7 +267,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "a4:c1:38:f8:a7:c0:f2:88", + "device_ieee": "ab:cd:ef:12:79:99:09:90", "endpoint_id": 1, "available": true, "group_id": null, @@ -289,13 +280,13 @@ "state": { "class_name": "NumberConfigurationEntity", "available": true, - "state": null + "state": 7.5 } }, { "info_object": { "fallback_name": "Minimum range", - "unique_id": "a4:c1:38:f8:a7:c0:f2:88-1-detection_distance_min", + "unique_id": "ab:cd:ef:12:79:99:09:90-1-detection_distance_min", "migrate_unique_ids": [], "platform": "number", "class_name": "NumberConfigurationEntity", @@ -307,7 +298,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "a4:c1:38:f8:a7:c0:f2:88", + "device_ieee": "ab:cd:ef:12:79:99:09:90", "endpoint_id": 1, "available": true, "group_id": null, @@ -320,13 +311,13 @@ "state": { "class_name": "NumberConfigurationEntity", "available": true, - "state": null + "state": 0.6 } }, { "info_object": { "fallback_name": "Fading time", - "unique_id": "a4:c1:38:f8:a7:c0:f2:88-1-fading_time", + "unique_id": "ab:cd:ef:12:79:99:09:90-1-fading_time", "migrate_unique_ids": [], "platform": "number", "class_name": "NumberConfigurationEntity", @@ -338,7 +329,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "a4:c1:38:f8:a7:c0:f2:88", + "device_ieee": "ab:cd:ef:12:79:99:09:90", "endpoint_id": 1, "available": true, "group_id": null, @@ -351,13 +342,13 @@ "state": { "class_name": "NumberConfigurationEntity", "available": true, - "state": null + "state": 2.0 } }, { "info_object": { "fallback_name": "Motion sensitivity", - "unique_id": "a4:c1:38:f8:a7:c0:f2:88-1-move_sensitivity", + "unique_id": "ab:cd:ef:12:79:99:09:90-1-move_sensitivity", "migrate_unique_ids": [], "platform": "number", "class_name": "NumberConfigurationEntity", @@ -369,7 +360,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "a4:c1:38:f8:a7:c0:f2:88", + "device_ieee": "ab:cd:ef:12:79:99:09:90", "endpoint_id": 1, "available": true, "group_id": null, @@ -382,7 +373,7 @@ "state": { "class_name": "NumberConfigurationEntity", "available": true, - "state": null + "state": 8 } } ], @@ -390,7 +381,7 @@ { "info_object": { "fallback_name": null, - "unique_id": "a4:c1:38:f8:a7:c0:f2:88-1-0-lqi", + "unique_id": "ab:cd:ef:12:79:99:09:90-1-0-lqi", "migrate_unique_ids": [], "platform": "sensor", "class_name": "LQISensor", @@ -402,7 +393,7 @@ "entity_registry_enabled_default": false, "enabled": true, "primary": false, - "device_ieee": "a4:c1:38:f8:a7:c0:f2:88", + "device_ieee": "ab:cd:ef:12:79:99:09:90", "endpoint_id": 1, "available": true, "group_id": null, @@ -412,13 +403,13 @@ "state": { "class_name": "LQISensor", "available": true, - "state": null + "state": 116 } }, { "info_object": { "fallback_name": null, - "unique_id": "a4:c1:38:f8:a7:c0:f2:88-1-0-rssi", + "unique_id": "ab:cd:ef:12:79:99:09:90-1-0-rssi", "migrate_unique_ids": [], "platform": "sensor", "class_name": "RSSISensor", @@ -430,7 +421,7 @@ "entity_registry_enabled_default": false, "enabled": true, "primary": false, - "device_ieee": "a4:c1:38:f8:a7:c0:f2:88", + "device_ieee": "ab:cd:ef:12:79:99:09:90", "endpoint_id": 1, "available": true, "group_id": null, @@ -446,7 +437,7 @@ { "info_object": { "fallback_name": null, - "unique_id": "a4:c1:38:f8:a7:c0:f2:88-1-1024", + "unique_id": "ab:cd:ef:12:79:99:09:90-1-1024", "migrate_unique_ids": [], "platform": "sensor", "class_name": "Illuminance", @@ -458,7 +449,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "a4:c1:38:f8:a7:c0:f2:88", + "device_ieee": "ab:cd:ef:12:79:99:09:90", "endpoint_id": 1, "available": true, "group_id": null, @@ -468,13 +459,13 @@ "state": { "class_name": "Illuminance", "available": true, - "state": 18 + "state": 80 } }, { "info_object": { "fallback_name": "Target distance", - "unique_id": "a4:c1:38:f8:a7:c0:f2:88-1-distance", + "unique_id": "ab:cd:ef:12:79:99:09:90-1-distance", "migrate_unique_ids": [], "platform": "sensor", "class_name": "Sensor", @@ -486,7 +477,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "a4:c1:38:f8:a7:c0:f2:88", + "device_ieee": "ab:cd:ef:12:79:99:09:90", "endpoint_id": 1, "available": true, "group_id": null, @@ -496,7 +487,7 @@ "state": { "class_name": "Sensor", "available": true, - "state": null + "state": 0.0 } } ], @@ -504,7 +495,7 @@ { "info_object": { "fallback_name": null, - "unique_id": "a4:c1:38:f8:a7:c0:f2:88-1-25-firmware_update", + "unique_id": "ab:cd:ef:12:79:99:09:90-1-25-firmware_update", "migrate_unique_ids": [], "platform": "update", "class_name": "FirmwareUpdateEntity", @@ -516,7 +507,7 @@ "entity_registry_enabled_default": true, "enabled": true, "primary": false, - "device_ieee": "a4:c1:38:f8:a7:c0:f2:88", + "device_ieee": "ab:cd:ef:12:79:99:09:90", "endpoint_id": 1, "available": true, "group_id": null, diff --git a/tests/data/legacy_devices/tze204-qtnjuoae-ts0601-0x00000049.json b/tests/data/legacy_devices/tze204-qtnjuoae-ts0601-0x00000049.json index 2f1f64504..f4a551817 100644 --- a/tests/data/legacy_devices/tze204-qtnjuoae-ts0601-0x00000049.json +++ b/tests/data/legacy_devices/tze204-qtnjuoae-ts0601-0x00000049.json @@ -1,7 +1,7 @@ { "version": 2, "ieee": "ab:cd:ef:12:65:78:bd:46", - "nwk": "0xAEF2", + "nwk": "0x9A1B", "manufacturer": "_TZE204_qtnjuoae", "model": "TS0601", "friendly_manufacturer": "_TZE204_qtnjuoae", @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-04-29T19:02:50.229543+00:00", + "last_seen": "2024-08-06T14:56:56", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -45,12 +45,6 @@ "cluster_id": "0x0000", "endpoint_attribute": "basic", "attributes": [ - { - "id": "0x0001", - "name": "app_version", - "zcl_type": "uint8", - "value": 73 - }, { "id": "0x0004", "name": "manufacturer", @@ -102,41 +96,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_qtnjuoae", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze204-qyr2m29i-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-qyr2m29i-ts0601-0x0000004a.json index 5a04980ed..aa27fa3d8 100644 --- a/tests/data/legacy_devices/tze204-qyr2m29i-ts0601-0x0000004a.json +++ b/tests/data/legacy_devices/tze204-qyr2m29i-ts0601-0x0000004a.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:40.168832+00:00", + "last_seen": "2024-12-19T00:36:13+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -186,43 +186,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_qyr2m29i", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0004", - "0x0005", - "0x0201", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze204-r32ctezx-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-r32ctezx-ts0601-0x0000004a.json index 80027a3aa..4f85f6830 100644 --- a/tests/data/legacy_devices/tze204-r32ctezx-ts0601-0x0000004a.json +++ b/tests/data/legacy_devices/tze204-r32ctezx-ts0601-0x0000004a.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:39.539197+00:00", + "last_seen": "2024-11-08T17:05:18", "available": true, "device_type": "Router", "active_coordinator": false, @@ -117,49 +117,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_r32ctezx", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze204-rhblgy0z-ts0601.json b/tests/data/legacy_devices/tze204-rhblgy0z-ts0601.json index 9b3dd7085..84c1bf7fc 100644 --- a/tests/data/legacy_devices/tze204-rhblgy0z-ts0601.json +++ b/tests/data/legacy_devices/tze204-rhblgy0z-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:23.278670+00:00", + "last_seen": "2023-08-29T20:17:08", "available": true, "device_type": "Router", "active_coordinator": false, @@ -110,49 +110,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_rhblgy0z", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze204-rtrmfadk-ts0601-0x00000049.json b/tests/data/legacy_devices/tze204-rtrmfadk-ts0601-0x00000049.json index e092f81ac..bd90ede44 100644 --- a/tests/data/legacy_devices/tze204-rtrmfadk-ts0601-0x00000049.json +++ b/tests/data/legacy_devices/tze204-rtrmfadk-ts0601-0x00000049.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:41.066015+00:00", + "last_seen": "2024-11-26T02:14:13+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -222,43 +222,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_rtrmfadk", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0004", - "0x0005", - "0x0201", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze204-rtrmfadk-ts0601.json b/tests/data/legacy_devices/tze204-rtrmfadk-ts0601.json index 59464f625..f66cf2323 100644 --- a/tests/data/legacy_devices/tze204-rtrmfadk-ts0601.json +++ b/tests/data/legacy_devices/tze204-rtrmfadk-ts0601.json @@ -264,43 +264,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_rtrmfadk", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0004", - "0x0005", - "0x0201", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze204-sooucan5-ts0601.json b/tests/data/legacy_devices/tze204-sooucan5-ts0601.json index 92353126b..7b32fd81c 100644 --- a/tests/data/legacy_devices/tze204-sooucan5-ts0601.json +++ b/tests/data/legacy_devices/tze204-sooucan5-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:39:38.533955+00:00", + "last_seen": "2023-09-18T17:35:02+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -127,51 +127,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_sooucan5", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0400", - "0x0406", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze204-srmahpwl-ts0601.json b/tests/data/legacy_devices/tze204-srmahpwl-ts0601.json index 394d50b0c..3eaee86a8 100644 --- a/tests/data/legacy_devices/tze204-srmahpwl-ts0601.json +++ b/tests/data/legacy_devices/tze204-srmahpwl-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:35.958816+00:00", + "last_seen": "2023-10-20T11:26:11", "available": true, "device_type": "Router", "active_coordinator": false, @@ -110,49 +110,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_srmahpwl", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze204-sxm7l9xa-ts0601.json b/tests/data/legacy_devices/tze204-sxm7l9xa-ts0601.json index 3787a43a6..ac17582d9 100644 --- a/tests/data/legacy_devices/tze204-sxm7l9xa-ts0601.json +++ b/tests/data/legacy_devices/tze204-sxm7l9xa-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T00:56:57.546623+00:00", + "last_seen": "2023-05-10T20:50:41+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -121,51 +121,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_sxm7l9xa", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0400", - "0x0406", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze204-tdhnhhiy-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-tdhnhhiy-ts0601-0x0000004a.json index 55e30ae2b..0e61e4f27 100644 --- a/tests/data/legacy_devices/tze204-tdhnhhiy-ts0601-0x0000004a.json +++ b/tests/data/legacy_devices/tze204-tdhnhhiy-ts0601-0x0000004a.json @@ -117,49 +117,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_tdhnhhiy", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze204-ue3rzddr-ts0601.json b/tests/data/legacy_devices/tze204-ue3rzddr-ts0601.json index c2b6c2220..a8a182c2e 100644 --- a/tests/data/legacy_devices/tze204-ue3rzddr-ts0601.json +++ b/tests/data/legacy_devices/tze204-ue3rzddr-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:22.110829+00:00", + "last_seen": "2024-02-09T09:43:04", "available": true, "device_type": "Router", "active_coordinator": false, @@ -110,49 +110,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_ue3rzddr", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze204-upagmta9-ts0601.json b/tests/data/legacy_devices/tze204-upagmta9-ts0601.json index dc6a4b4e4..951d2974f 100644 --- a/tests/data/legacy_devices/tze204-upagmta9-ts0601.json +++ b/tests/data/legacy_devices/tze204-upagmta9-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:40.719560+00:00", + "last_seen": "2025-02-08T18:48:50+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -160,44 +160,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_upagmta9", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0004", - "0x0005", - "0x0402", - "0x0405", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "select": [ { diff --git a/tests/data/legacy_devices/tze204-uxllnywp-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-uxllnywp-ts0601-0x0000004a.json index 25f3d53b7..6fc3addf0 100644 --- a/tests/data/legacy_devices/tze204-uxllnywp-ts0601-0x0000004a.json +++ b/tests/data/legacy_devices/tze204-uxllnywp-ts0601-0x0000004a.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:39.808109+00:00", + "last_seen": "2025-01-11T22:19:40+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -134,51 +134,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_uxllnywp", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0400", - "0x0406", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze204-w1wwxoja-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-w1wwxoja-ts0601-0x0000004a.json index eaeacce5a..12b7404c9 100644 --- a/tests/data/legacy_devices/tze204-w1wwxoja-ts0601-0x0000004a.json +++ b/tests/data/legacy_devices/tze204-w1wwxoja-ts0601-0x0000004a.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:08:51.182232+00:00", + "last_seen": "2024-08-22T22:40:57", "available": true, "device_type": "Router", "active_coordinator": false, @@ -117,49 +117,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_w1wwxoja", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze204-wbhaespm-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-wbhaespm-ts0601-0x0000004a.json index 7405d098f..228765b4e 100644 --- a/tests/data/legacy_devices/tze204-wbhaespm-ts0601-0x0000004a.json +++ b/tests/data/legacy_devices/tze204-wbhaespm-ts0601-0x0000004a.json @@ -1,7 +1,7 @@ { "version": 2, "ieee": "ab:cd:ef:12:4f:d5:67:94", - "nwk": "0xB19C", + "nwk": "0x58DB", "manufacturer": "_TZE204_wbhaespm", "model": "TS0601", "friendly_manufacturer": "_TZE204_wbhaespm", @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:08:53.503525+00:00", + "last_seen": "2024-08-03T21:54:40", "available": true, "device_type": "Router", "active_coordinator": false, @@ -45,12 +45,6 @@ "cluster_id": "0x0000", "endpoint_attribute": "basic", "attributes": [ - { - "id": "0x0013", - "name": "alarm_mask", - "zcl_type": "map8", - "unsupported": true - }, { "id": "0x0001", "name": "app_version", @@ -58,131 +52,268 @@ "value": 74 }, { - "id": "0xfffd", - "name": "cluster_revision", - "zcl_type": "uint16", - "value": 2 + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "_TZE204_wbhaespm" }, { - "id": "0x0006", - "name": "date_code", + "id": "0x0005", + "name": "model", "zcl_type": "string", - "value": "" + "value": "TS0601" + } + ] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0005", + "endpoint_attribute": "scenes", + "attributes": [] + }, + { + "cluster_id": "0x0006", + "endpoint_attribute": "on_off", + "attributes": [] + }, + { + "cluster_id": "0x0702", + "endpoint_attribute": "smartenergy_metering", + "attributes": [ + { + "id": "0x0000", + "name": "current_summ_delivered", + "zcl_type": "uint48", + "value": 10.03 }, { - "id": "0x0012", - "name": "device_enabled", - "zcl_type": "bool", + "id": "0x0001", + "name": "current_summ_received", + "zcl_type": "uint48", "unsupported": true }, { - "id": "0x0014", - "name": "disable_local_config", - "zcl_type": "map8", + "id": "0x0100", + "name": "current_tier1_summ_delivered", + "zcl_type": "uint48", "unsupported": true }, { - "id": "0x0008", - "name": "generic_device_class", - "zcl_type": "enum8", + "id": "0x0102", + "name": "current_tier2_summ_delivered", + "zcl_type": "uint48", "unsupported": true }, { - "id": "0x0009", - "name": "generic_device_type", - "zcl_type": "enum8", + "id": "0x0104", + "name": "current_tier3_summ_delivered", + "zcl_type": "uint48", "unsupported": true }, { - "id": "0x0003", - "name": "hw_version", - "zcl_type": "uint8", - "value": 1 + "id": "0x0106", + "name": "current_tier4_summ_delivered", + "zcl_type": "uint48", + "unsupported": true }, { - "id": "0x0010", - "name": "location_desc", - "zcl_type": "string", + "id": "0x0108", + "name": "current_tier5_summ_delivered", + "zcl_type": "uint48", "unsupported": true }, { - "id": "0x0004", - "name": "manufacturer", - "zcl_type": "string", - "value": "_TZE204_wbhaespm" + "id": "0x010a", + "name": "current_tier6_summ_delivered", + "zcl_type": "uint48", + "unsupported": true }, { - "id": "0x000c", - "name": "manufacturer_version_details", - "zcl_type": "string", + "id": "0x0304", + "name": "demand_formatting", + "zcl_type": "map8", "unsupported": true }, { - "id": "0x0005", - "name": "model", - "zcl_type": "string", - "value": "TS0601" + "id": "0x0302", + "name": "divisor", + "zcl_type": "uint24", + "unsupported": true }, { - "id": "0x0011", - "name": "physical_env", - "zcl_type": "enum8", + "id": "0x0400", + "name": "instantaneous_demand", + "zcl_type": "int24", + "unsupported": true + }, + { + "id": "0x0306", + "name": "metering_device_type", + "zcl_type": "map8", + "unsupported": true + }, + { + "id": "0x0301", + "name": "multiplier", + "zcl_type": "uint24", + "unsupported": true + }, + { + "id": "0x0200", + "name": "status", + "zcl_type": "map8", + "unsupported": true + }, + { + "id": "0x0303", + "name": "summation_formatting", + "zcl_type": "map8", "unsupported": true }, { - "id": "0x0007", - "name": "power_source", + "id": "0x0300", + "name": "unit_of_measure", "zcl_type": "enum8", + "value": 0 + } + ] + }, + { + "cluster_id": "0x0b04", + "endpoint_attribute": "electrical_measurement", + "attributes": [ + { + "id": "0x0603", + "name": "ac_current_divisor", + "zcl_type": "uint16", + "value": 1000 + }, + { + "id": "0x0602", + "name": "ac_current_multiplier", + "zcl_type": "uint16", "value": 1 }, { - "id": "0x000a", - "name": "product_code", - "zcl_type": "octstr", + "id": "0x0300", + "name": "ac_frequency", + "zcl_type": "uint16", "unsupported": true }, { - "id": "0x000e", - "name": "product_label", - "zcl_type": "string", + "id": "0x0401", + "name": "ac_frequency_divisor", + "zcl_type": "uint16", + "value": 100 + }, + { + "id": "0x0302", + "name": "ac_frequency_max", + "zcl_type": "uint16", "unsupported": true }, { - "id": "0x000b", - "name": "product_url", - "zcl_type": "string", + "id": "0x0400", + "name": "ac_frequency_multiplier", + "zcl_type": "uint16", + "value": 1 + }, + { + "id": "0x0605", + "name": "ac_power_divisor", + "zcl_type": "uint16", "unsupported": true }, { - "id": "0x000d", - "name": "serial_number", - "zcl_type": "string", + "id": "0x0604", + "name": "ac_power_multiplier", + "zcl_type": "uint16", "unsupported": true }, { - "id": "0x4000", - "name": "sw_build_id", - "zcl_type": "string", + "id": "0x0601", + "name": "ac_voltage_divisor", + "zcl_type": "uint16", + "value": 10 + }, + { + "id": "0x0600", + "name": "ac_voltage_multiplier", + "zcl_type": "uint16", + "value": 1 + }, + { + "id": "0x050b", + "name": "active_power", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x050d", + "name": "active_power_max", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x050f", + "name": "apparent_power", + "zcl_type": "uint16", "unsupported": true }, { "id": "0x0000", - "name": "zcl_version", - "zcl_type": "uint8", - "value": 3 + "name": "measurement_type", + "zcl_type": "map32", + "unsupported": true + }, + { + "id": "0x0403", + "name": "power_divisor", + "zcl_type": "uint32", + "unsupported": true + }, + { + "id": "0x0510", + "name": "power_factor", + "zcl_type": "int8", + "unsupported": true + }, + { + "id": "0x0402", + "name": "power_multiplier", + "zcl_type": "uint32", + "unsupported": true + }, + { + "id": "0x0508", + "name": "rms_current", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x050a", + "name": "rms_current_max", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0505", + "name": "rms_voltage", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0507", + "name": "rms_voltage_max", + "zcl_type": "uint16", + "unsupported": true } ] }, - { - "cluster_id": "0x0004", - "endpoint_attribute": "groups", - "attributes": [] - }, - { - "cluster_id": "0x0005", - "endpoint_attribute": "scenes", - "attributes": [] - }, { "cluster_id": "0xef00", "endpoint_attribute": null, @@ -215,7 +346,13 @@ "name": "PROXY_BASIC", "id": 97 }, - "in_clusters": [], + "in_clusters": [ + { + "cluster_id": "0x0006", + "endpoint_attribute": "on_off", + "attributes": [] + } + ], "out_clusters": [ { "cluster_id": "0x0021", @@ -225,49 +362,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_wbhaespm", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { @@ -325,6 +419,68 @@ "available": true, "state": null } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:4f:d5:67:94-1-1794-summation_delivered", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "SmartEnergySummation", + "translation_key": "summation_delivered", + "translation_placeholders": null, + "device_class": "energy", + "state_class": "total_increasing", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4f:d5:67:94", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 3, + "unit": "kWh" + }, + "state": { + "class_name": "SmartEnergySummation", + "available": true, + "state": 10.03, + "zcl_unit_of_measurement": 0 + }, + "extra_state_attributes": [ + "device_type", + "status", + "zcl_unit_of_measurement" + ] + } + ], + "switch": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:4f:d5:67:94-1", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "Switch", + "translation_key": "switch", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": true, + "device_ieee": "ab:cd:ef:12:4f:d5:67:94", + "endpoint_id": 1, + "available": true, + "group_id": null + }, + "state": { + "class_name": "Switch", + "state": false, + "available": true + } } ], "update": [ diff --git a/tests/data/legacy_devices/tze204-x8fp01wi-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-x8fp01wi-ts0601-0x0000004a.json index 0431bf619..e3f3eeb2c 100644 --- a/tests/data/legacy_devices/tze204-x8fp01wi-ts0601-0x0000004a.json +++ b/tests/data/legacy_devices/tze204-x8fp01wi-ts0601-0x0000004a.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:32.341504+00:00", + "last_seen": "2024-05-01T07:42:02", "available": true, "device_type": "Router", "active_coordinator": false, @@ -117,49 +117,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_x8fp01wi", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze204-x9usygq1-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-x9usygq1-ts0601-0x0000004a.json index 35aebf266..367b532a6 100644 --- a/tests/data/legacy_devices/tze204-x9usygq1-ts0601-0x0000004a.json +++ b/tests/data/legacy_devices/tze204-x9usygq1-ts0601-0x0000004a.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:32.675028+00:00", + "last_seen": "2024-08-02T09:14:40", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -102,41 +102,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_x9usygq1", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze204-xalsoe3m-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-xalsoe3m-ts0601-0x0000004a.json index a8097cbab..01b07e29c 100644 --- a/tests/data/legacy_devices/tze204-xalsoe3m-ts0601-0x0000004a.json +++ b/tests/data/legacy_devices/tze204-xalsoe3m-ts0601-0x0000004a.json @@ -1,7 +1,7 @@ { "version": 2, "ieee": "ab:cd:ef:12:19:d9:fb:05", - "nwk": "0xF42C", + "nwk": "0x573F", "manufacturer": "_TZE204_xalsoe3m", "model": "TS0601", "friendly_manufacturer": "_TZE204_xalsoe3m", @@ -12,9 +12,9 @@ "exposes_features": [], "manufacturer_code": 4417, "power_source": "Mains", - "lqi": null, - "rssi": null, - "last_seen": "2025-10-28T18:08:54.385181+00:00", + "lqi": 108, + "rssi": -73, + "last_seen": "2025-11-20T09:59:46.992263+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -37,8 +37,8 @@ "1": { "profile_id": 260, "device_type": { - "name": "THERMOSTAT", - "id": 769 + "name": "SMART_PLUG", + "id": 81 }, "in_clusters": [ { @@ -65,36 +65,6 @@ } ] }, - { - "cluster_id": "0x0001", - "endpoint_attribute": "power", - "attributes": [ - { - "id": "0x0021", - "name": "battery_percentage_remaining", - "zcl_type": "uint8", - "unsupported": true - }, - { - "id": "0x0033", - "name": "battery_quantity", - "zcl_type": "uint8", - "unsupported": true - }, - { - "id": "0x0031", - "name": "battery_size", - "zcl_type": "enum8", - "unsupported": true - }, - { - "id": "0x0020", - "name": "battery_voltage", - "zcl_type": "uint8", - "unsupported": true - } - ] - }, { "cluster_id": "0x0004", "endpoint_attribute": "groups", @@ -105,162 +75,6 @@ "endpoint_attribute": "scenes", "attributes": [] }, - { - "cluster_id": "0x0201", - "endpoint_attribute": "thermostat", - "attributes": [ - { - "id": "0x0006", - "name": "abs_max_cool_setpoint_limit", - "zcl_type": "int16", - "unsupported": true - }, - { - "id": "0x0004", - "name": "abs_max_heat_setpoint_limit", - "zcl_type": "int16", - "unsupported": true - }, - { - "id": "0x0005", - "name": "abs_min_cool_setpoint_limit", - "zcl_type": "int16", - "unsupported": true - }, - { - "id": "0x0003", - "name": "abs_min_heat_setpoint_limit", - "zcl_type": "int16", - "unsupported": true - }, - { - "id": "0x001b", - "name": "ctrl_sequence_of_oper", - "zcl_type": "enum8", - "value": 2 - }, - { - "id": "0x0000", - "name": "local_temperature", - "zcl_type": "int16", - "unsupported": true - }, - { - "id": "0x0010", - "name": "local_temperature_calibration", - "zcl_type": "int8", - "unsupported": true - }, - { - "id": "0x0018", - "name": "max_cool_setpoint_limit", - "zcl_type": "int16", - "unsupported": true - }, - { - "id": "0x0016", - "name": "max_heat_setpoint_limit", - "zcl_type": "int16", - "value": 3000 - }, - { - "id": "0x0017", - "name": "min_cool_setpoint_limit", - "zcl_type": "int16", - "unsupported": true - }, - { - "id": "0x0015", - "name": "min_heat_setpoint_limit", - "zcl_type": "int16", - "value": 500 - }, - { - "id": "0x0002", - "name": "occupancy", - "zcl_type": "map8", - "value": 1 - }, - { - "id": "0x0011", - "name": "occupied_cooling_setpoint", - "zcl_type": "int16", - "unsupported": true - }, - { - "id": "0x0012", - "name": "occupied_heating_setpoint", - "zcl_type": "int16", - "value": 23500 - }, - { - "id": "0x0007", - "name": "pi_cooling_demand", - "zcl_type": "uint8", - "unsupported": true - }, - { - "id": "0x0008", - "name": "pi_heating_demand", - "zcl_type": "uint8", - "unsupported": true - }, - { - "id": "0x0025", - "name": "programing_oper_mode", - "zcl_type": "map8", - "value": 1 - }, - { - "id": "0x001e", - "name": "running_mode", - "zcl_type": "enum8", - "unsupported": true - }, - { - "id": "0x0029", - "name": "running_state", - "zcl_type": "map16", - "unsupported": true - }, - { - "id": "0x0030", - "name": "setpoint_change_source", - "zcl_type": "enum8", - "unsupported": true - }, - { - "id": "0x001c", - "name": "system_mode", - "zcl_type": "enum8", - "value": 4 - }, - { - "id": "0x0013", - "name": "unoccupied_cooling_setpoint", - "zcl_type": "int16", - "unsupported": true - }, - { - "id": "0x0014", - "name": "unoccupied_heating_setpoint", - "zcl_type": "int16", - "unsupported": true - } - ] - }, - { - "cluster_id": "0x0204", - "endpoint_attribute": "thermostat_ui", - "attributes": [ - { - "id": "0x0001", - "name": "keypad_lockout", - "zcl_type": "enum8", - "value": 0 - } - ] - }, { "cluster_id": "0xef00", "endpoint_attribute": null, @@ -287,162 +101,6 @@ } ] }, - "2": { - "profile_id": 260, - "device_type": { - "name": "ON_OFF_SWITCH", - "id": 0 - }, - "in_clusters": [ - { - "cluster_id": "0x0006", - "endpoint_attribute": "on_off", - "attributes": [ - { - "id": "0x0000", - "name": "on_off", - "zcl_type": "bool", - "value": 0 - }, - { - "id": "0x4003", - "name": "start_up_on_off", - "zcl_type": "enum8", - "unsupported": true - } - ] - } - ], - "out_clusters": [] - }, - "3": { - "profile_id": 260, - "device_type": { - "name": "CONSUMPTION_AWARENESS_DEVICE", - "id": 13 - }, - "in_clusters": [ - { - "cluster_id": "0x000d", - "endpoint_attribute": "analog_output", - "attributes": [ - { - "id": "0x0100", - "name": "application_type", - "zcl_type": "uint32", - "value": 851968 - }, - { - "id": "0x001c", - "name": "description", - "zcl_type": "string", - "value": "Temperature Calibration" - }, - { - "id": "0x0075", - "name": "engineering_units", - "zcl_type": "enum16", - "value": 62 - }, - { - "id": "0x0041", - "name": "max_present_value", - "zcl_type": "single", - "value": 10 - }, - { - "id": "0x0045", - "name": "min_present_value", - "zcl_type": "single", - "value": -10 - }, - { - "id": "0x0055", - "name": "present_value", - "zcl_type": "single", - "unsupported": true - }, - { - "id": "0x0068", - "name": "relinquish_default", - "zcl_type": "single", - "unsupported": true - }, - { - "id": "0x006a", - "name": "resolution", - "zcl_type": "single", - "value": 0.1 - } - ] - } - ], - "out_clusters": [] - }, - "4": { - "profile_id": 260, - "device_type": { - "name": "CONSUMPTION_AWARENESS_DEVICE", - "id": 13 - }, - "in_clusters": [ - { - "cluster_id": "0x000d", - "endpoint_attribute": "analog_output", - "attributes": [ - { - "id": "0x0100", - "name": "application_type", - "zcl_type": "uint32", - "value": 851968 - }, - { - "id": "0x001c", - "name": "description", - "zcl_type": "string", - "value": "Deadzone Temperature" - }, - { - "id": "0x0075", - "name": "engineering_units", - "zcl_type": "enum16", - "value": 62 - }, - { - "id": "0x0041", - "name": "max_present_value", - "zcl_type": "single", - "value": 5 - }, - { - "id": "0x0045", - "name": "min_present_value", - "zcl_type": "single", - "value": 0 - }, - { - "id": "0x0055", - "name": "present_value", - "zcl_type": "single", - "unsupported": true - }, - { - "id": "0x0068", - "name": "relinquish_default", - "zcl_type": "single", - "unsupported": true - }, - { - "id": "0x006a", - "name": "resolution", - "zcl_type": "single", - "value": 1 - } - ] - } - ], - "out_clusters": [] - }, "242": { "profile_id": 41440, "device_type": { @@ -459,302 +117,7 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_xalsoe3m", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0301", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0004", - "0x0005", - "0x0201", - "0x0204", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0000", - "input_clusters": [ - "0x0006" - ], - "output_clusters": [] - }, - "3": { - "profile_id": "0x0104", - "device_type": "0x000d", - "input_clusters": [ - "0x000d" - ], - "output_clusters": [] - }, - "4": { - "profile_id": "0x0104", - "device_type": "0x000d", - "input_clusters": [ - "0x000d" - ], - "output_clusters": [] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { - "climate": [ - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:19:d9:fb:05-1", - "migrate_unique_ids": [], - "platform": "climate", - "class_name": "Thermostat", - "translation_key": "thermostat", - "translation_placeholders": null, - "device_class": null, - "state_class": null, - "entity_category": null, - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:19:d9:fb:05", - "endpoint_id": 1, - "available": true, - "group_id": null, - "max_temp": 30.0, - "min_temp": 5.0, - "supported_features": 385, - "fan_modes": null, - "preset_modes": [], - "hvac_modes": [ - "off", - "heat" - ] - }, - "state": { - "class_name": "Thermostat", - "available": true, - "current_temperature": null, - "outdoor_temperature": null, - "target_temperature": 235.0, - "target_temperature_high": null, - "target_temperature_low": null, - "hvac_action": null, - "hvac_mode": "heat", - "preset_mode": "none", - "fan_mode": "auto", - "system_mode": "[4]/heat", - "occupancy": 1, - "occupied_cooling_setpoint": null, - "occupied_heating_setpoint": 23500, - "pi_heating_demand": null, - "pi_cooling_demand": null, - "unoccupied_cooling_setpoint": null, - "unoccupied_heating_setpoint": null - }, - "extra_state_attributes": [ - "occupancy", - "occupied_cooling_setpoint", - "occupied_heating_setpoint", - "pi_cooling_demand", - "pi_heating_demand", - "system_mode", - "unoccupied_cooling_setpoint", - "unoccupied_heating_setpoint" - ] - } - ], - "number": [ - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:19:d9:fb:05-1-513-max_heat_setpoint_limit", - "migrate_unique_ids": [], - "platform": "number", - "class_name": "MaxHeatSetpointLimit", - "translation_key": "max_heat_setpoint_limit", - "translation_placeholders": null, - "device_class": null, - "state_class": null, - "entity_category": "config", - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:19:d9:fb:05", - "endpoint_id": 1, - "available": true, - "group_id": null, - "mode": "box", - "native_max_value": 327.67, - "native_min_value": 5.0, - "native_step": 0.5, - "native_unit_of_measurement": "\u00b0C" - }, - "state": { - "class_name": "MaxHeatSetpointLimit", - "available": true, - "state": 30.0 - } - }, - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:19:d9:fb:05-1-513-min_heat_setpoint_limit", - "migrate_unique_ids": [], - "platform": "number", - "class_name": "MinHeatSetpointLimit", - "translation_key": "min_heat_setpoint_limit", - "translation_placeholders": null, - "device_class": null, - "state_class": null, - "entity_category": "config", - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:19:d9:fb:05", - "endpoint_id": 1, - "available": true, - "group_id": null, - "mode": "box", - "native_max_value": 30.0, - "native_min_value": -273.15000000000003, - "native_step": 0.5, - "native_unit_of_measurement": "\u00b0C" - }, - "state": { - "class_name": "MinHeatSetpointLimit", - "available": true, - "state": 5.0 - } - }, - { - "info_object": { - "fallback_name": "Temperature Calibration", - "unique_id": "ab:cd:ef:12:19:d9:fb:05-3-13", - "migrate_unique_ids": [], - "platform": "number", - "class_name": "AnalogOutputNumber", - "translation_key": null, - "translation_placeholders": null, - "device_class": null, - "state_class": null, - "entity_category": null, - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:19:d9:fb:05", - "endpoint_id": 3, - "available": true, - "group_id": null, - "mode": "auto", - "native_max_value": 10, - "native_min_value": -10, - "native_step": 0.1, - "native_unit_of_measurement": "\u00b0C" - }, - "state": { - "class_name": "AnalogOutputNumber", - "available": true, - "state": null - } - }, - { - "info_object": { - "fallback_name": "Deadzone Temperature", - "unique_id": "ab:cd:ef:12:19:d9:fb:05-4-13", - "migrate_unique_ids": [], - "platform": "number", - "class_name": "AnalogOutputNumber", - "translation_key": null, - "translation_placeholders": null, - "device_class": null, - "state_class": null, - "entity_category": null, - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:19:d9:fb:05", - "endpoint_id": 4, - "available": true, - "group_id": null, - "mode": "auto", - "native_max_value": 5, - "native_min_value": 0, - "native_step": 1, - "native_unit_of_measurement": "\u00b0C" - }, - "state": { - "class_name": "AnalogOutputNumber", - "available": true, - "state": null - } - } - ], - "select": [ - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:19:d9:fb:05-1-516-keypad_lockout", - "migrate_unique_ids": [], - "platform": "select", - "class_name": "KeypadLockout", - "translation_key": "keypad_lockout", - "translation_placeholders": null, - "device_class": null, - "state_class": null, - "entity_category": "config", - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:19:d9:fb:05", - "endpoint_id": 1, - "available": true, - "group_id": null, - "enum": "KeypadLockoutEnum", - "options": [ - "Unlock", - "Lock1", - "Lock2", - "Lock3", - "Lock4" - ] - }, - "state": { - "class_name": "KeypadLockout", - "available": true, - "state": "Unlock" - } - } - ], "sensor": [ { "info_object": { @@ -781,7 +144,7 @@ "state": { "class_name": "LQISensor", "available": true, - "state": null + "state": 108 } }, { @@ -809,91 +172,7 @@ "state": { "class_name": "RSSISensor", "available": true, - "state": null - } - }, - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:19:d9:fb:05-1-513-hvac_action", - "migrate_unique_ids": [], - "platform": "sensor", - "class_name": "ThermostatHVACAction", - "translation_key": "hvac_action", - "translation_placeholders": null, - "device_class": null, - "state_class": null, - "entity_category": null, - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:19:d9:fb:05", - "endpoint_id": 1, - "available": true, - "group_id": null, - "suggested_display_precision": null, - "unit": null - }, - "state": { - "class_name": "ThermostatHVACAction", - "available": true, - "state": null - } - }, - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:19:d9:fb:05-1-513-setpoint_change_source_timestamp", - "migrate_unique_ids": [], - "platform": "sensor", - "class_name": "SetpointChangeSourceTimestamp", - "translation_key": "setpoint_change_source_timestamp", - "translation_placeholders": null, - "device_class": "timestamp", - "state_class": null, - "entity_category": "diagnostic", - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:19:d9:fb:05", - "endpoint_id": 1, - "available": true, - "group_id": null, - "suggested_display_precision": null, - "unit": null - }, - "state": { - "class_name": "SetpointChangeSourceTimestamp", - "available": true, - "state": null - } - } - ], - "switch": [ - { - "info_object": { - "fallback_name": null, - "unique_id": "ab:cd:ef:12:19:d9:fb:05-2-6", - "migrate_unique_ids": [], - "platform": "switch", - "class_name": "Switch", - "translation_key": "switch", - "translation_placeholders": null, - "device_class": null, - "state_class": null, - "entity_category": null, - "entity_registry_enabled_default": true, - "enabled": true, - "primary": false, - "device_ieee": "ab:cd:ef:12:19:d9:fb:05", - "endpoint_id": 2, - "available": true, - "group_id": null - }, - "state": { - "class_name": "Switch", - "state": 0, - "available": true + "state": -73 } } ], diff --git a/tests/data/legacy_devices/tze204-xlppj4f5-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-xlppj4f5-ts0601-0x0000004a.json index 2695d9d09..3b103b365 100644 --- a/tests/data/legacy_devices/tze204-xlppj4f5-ts0601-0x0000004a.json +++ b/tests/data/legacy_devices/tze204-xlppj4f5-ts0601-0x0000004a.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:44.884175+00:00", + "last_seen": "2024-08-26T22:27:43", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -131,44 +131,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_xlppj4f5", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0004", - "0x0005", - "0x0006", - "0x0702", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze204-xnbkhhdr-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-xnbkhhdr-ts0601-0x0000004a.json index 3603ec9f3..24c7a57df 100644 --- a/tests/data/legacy_devices/tze204-xnbkhhdr-ts0601-0x0000004a.json +++ b/tests/data/legacy_devices/tze204-xnbkhhdr-ts0601-0x0000004a.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:39.564663+00:00", + "last_seen": "2024-11-04T16:54:35+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -138,42 +138,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_xnbkhhdr", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0201", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze204-ya4ft0w4-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-ya4ft0w4-ts0601-0x0000004a.json index 1dce6e33f..9540980ce 100644 --- a/tests/data/legacy_devices/tze204-ya4ft0w4-ts0601-0x0000004a.json +++ b/tests/data/legacy_devices/tze204-ya4ft0w4-ts0601-0x0000004a.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:41.188817+00:00", + "last_seen": "2024-09-12T18:45:24+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -134,51 +134,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_ya4ft0w4", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0400", - "0x0406", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze204-yjjdcqsq-ts0601.json b/tests/data/legacy_devices/tze204-yjjdcqsq-ts0601.json index dd856f25f..4c4f15220 100644 --- a/tests/data/legacy_devices/tze204-yjjdcqsq-ts0601.json +++ b/tests/data/legacy_devices/tze204-yjjdcqsq-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:36.115431+00:00", + "last_seen": "2024-06-09T17:25:07+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -156,44 +156,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_yjjdcqsq", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0302", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0004", - "0x0005", - "0x0402", - "0x0405", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "select": [ { diff --git a/tests/data/legacy_devices/tze204-yvx5lh6k-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-yvx5lh6k-ts0601-0x0000004a.json index e113c42f4..5cd96a0d6 100644 --- a/tests/data/legacy_devices/tze204-yvx5lh6k-ts0601-0x0000004a.json +++ b/tests/data/legacy_devices/tze204-yvx5lh6k-ts0601-0x0000004a.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:42.563387+00:00", + "last_seen": "2024-10-16T16:41:32+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -147,55 +147,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_yvx5lh6k", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0402", - "0x0405", - "0x040d", - "0x042a", - "0x042b", - "0x042e", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze204-zenj4lxv-ts0601.json b/tests/data/legacy_devices/tze204-zenj4lxv-ts0601.json index 86c3587a1..ebf660956 100644 --- a/tests/data/legacy_devices/tze204-zenj4lxv-ts0601.json +++ b/tests/data/legacy_devices/tze204-zenj4lxv-ts0601.json @@ -1,20 +1,20 @@ { "version": 2, "ieee": "ab:cd:ef:12:17:c8:fd:c8", - "nwk": "0xBC08", + "nwk": "0x0C96", "manufacturer": "_TZE204_zenj4lxv", "model": "TS0601", "friendly_manufacturer": "_TZE204_zenj4lxv", "friendly_model": "TS0601", "name": "_TZE204_zenj4lxv TS0601", - "quirk_applied": true, - "quirk_class": "zhaquirks.tuya.ts0601_dimmer:TuyaDoubleSwitchDimmerGP", + "quirk_applied": false, + "quirk_class": "zigpy.device.Device", "exposes_features": [], "manufacturer_code": 4417, "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:35.814499+00:00", + "last_seen": "2023-11-13T06:59:03", "available": true, "device_type": "Router", "active_coordinator": false, @@ -45,12 +45,54 @@ "cluster_id": "0x0000", "endpoint_attribute": "basic", "attributes": [ + { + "id": "0x0013", + "name": "alarm_mask", + "zcl_type": "map8", + "unsupported": true + }, { "id": "0x0001", "name": "app_version", "zcl_type": "uint8", "value": 74 }, + { + "id": "0xfffd", + "name": "cluster_revision", + "zcl_type": "uint16", + "value": 2 + }, + { + "id": "0x0006", + "name": "date_code", + "zcl_type": "string", + "value": "" + }, + { + "id": "0x0012", + "name": "device_enabled", + "zcl_type": "bool", + "unsupported": true + }, + { + "id": "0x0014", + "name": "disable_local_config", + "zcl_type": "map8", + "unsupported": true + }, + { + "id": "0x0008", + "name": "generic_device_class", + "zcl_type": "enum8", + "unsupported": true + }, + { + "id": "0x0009", + "name": "generic_device_type", + "zcl_type": "enum8", + "unsupported": true + }, { "id": "0x0004", "name": "manufacturer", @@ -68,12 +110,38 @@ { "cluster_id": "0x0004", "endpoint_attribute": "groups", - "attributes": [] + "attributes": [ + { + "id": "0xfffd", + "name": "cluster_revision", + "zcl_type": "uint16", + "value": 2 + }, + { + "id": "0x0000", + "name": "name_support", + "zcl_type": "map8", + "value": 0 + }, + { + "id": "0xfffe", + "name": "reporting_status", + "zcl_type": "enum8", + "unsupported": true + } + ] }, { "cluster_id": "0x0005", "endpoint_attribute": "scenes", - "attributes": [] + "attributes": [ + { + "id": "0xfffd", + "name": "cluster_revision", + "zcl_type": "uint16", + "value": 2 + } + ] }, { "cluster_id": "0x0006", @@ -83,7 +151,7 @@ "id": "0x0000", "name": "on_off", "zcl_type": "bool", - "unsupported": true + "value": 0 }, { "id": "0x4003", @@ -96,11 +164,36 @@ { "cluster_id": "0x0008", "endpoint_attribute": "level", - "attributes": [] + "attributes": [ + { + "id": "0x0000", + "name": "current_level", + "zcl_type": "uint8", + "value": 255 + }, + { + "id": "0x0013", + "name": "off_transition_time", + "zcl_type": "uint16", + "value": 0 + }, + { + "id": "0x0011", + "name": "on_level", + "zcl_type": "uint8", + "value": "None" + }, + { + "id": "0x0010", + "name": "on_off_transition_time", + "zcl_type": "uint16", + "value": 0 + } + ] }, { "cluster_id": "0xef00", - "endpoint_attribute": "tuya_manufacturer", + "endpoint_attribute": null, "attributes": [] } ], @@ -132,7 +225,7 @@ "id": "0x0000", "name": "on_off", "zcl_type": "bool", - "unsupported": true + "value": 0 }, { "id": "0x4003", @@ -145,7 +238,32 @@ { "cluster_id": "0x0008", "endpoint_attribute": "level", - "attributes": [] + "attributes": [ + { + "id": "0x0000", + "name": "current_level", + "zcl_type": "uint8", + "value": 255 + }, + { + "id": "0x0003", + "name": "max_level", + "zcl_type": "uint8", + "value": "None" + }, + { + "id": "0x0013", + "name": "off_transition_time", + "zcl_type": "uint16", + "value": 0 + }, + { + "id": "0x0010", + "name": "on_off_transition_time", + "zcl_type": "uint16", + "value": 0 + } + ] } ], "out_clusters": [] @@ -166,49 +284,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_zenj4lxv", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "light": [ { @@ -241,7 +316,7 @@ "class_name": "Light", "available": true, "on": false, - "brightness": null, + "brightness": 255, "xy_color": null, "color_temp": null, "effect_list": [ @@ -292,7 +367,7 @@ "class_name": "Light", "available": true, "on": false, - "brightness": null, + "brightness": 255, "xy_color": null, "color_temp": null, "effect_list": [ @@ -314,6 +389,163 @@ ] } ], + "number": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:17:c8:fd:c8-1-8-off_transition_time", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "OffTransitionTimeConfigurationEntity", + "translation_key": "off_transition_time", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:17:c8:fd:c8", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 65534, + "native_min_value": 0, + "native_step": 1.0, + "native_unit_of_measurement": null + }, + "state": { + "class_name": "OffTransitionTimeConfigurationEntity", + "available": true, + "state": 0 + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:17:c8:fd:c8-1-8-on_level", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "OnLevelConfigurationEntity", + "translation_key": "on_level", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:17:c8:fd:c8", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 255, + "native_min_value": 0, + "native_step": 1.0, + "native_unit_of_measurement": null + }, + "state": { + "class_name": "OnLevelConfigurationEntity", + "available": true, + "state": "None" + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:17:c8:fd:c8-1-8-on_off_transition_time", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "OnOffTransitionTimeConfigurationEntity", + "translation_key": "on_off_transition_time", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:17:c8:fd:c8", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 65535, + "native_min_value": 0, + "native_step": 1.0, + "native_unit_of_measurement": null + }, + "state": { + "class_name": "OnOffTransitionTimeConfigurationEntity", + "available": true, + "state": 0 + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:17:c8:fd:c8-2-8-off_transition_time", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "OffTransitionTimeConfigurationEntity", + "translation_key": "off_transition_time", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:17:c8:fd:c8", + "endpoint_id": 2, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 65534, + "native_min_value": 0, + "native_step": 1.0, + "native_unit_of_measurement": null + }, + "state": { + "class_name": "OffTransitionTimeConfigurationEntity", + "available": true, + "state": 0 + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:17:c8:fd:c8-2-8-on_off_transition_time", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "OnOffTransitionTimeConfigurationEntity", + "translation_key": "on_off_transition_time", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:17:c8:fd:c8", + "endpoint_id": 2, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 65535, + "native_min_value": 0, + "native_step": 1.0, + "native_unit_of_measurement": null + }, + "state": { + "class_name": "OnOffTransitionTimeConfigurationEntity", + "available": true, + "state": 0 + } + } + ], "sensor": [ { "info_object": { diff --git a/tests/data/legacy_devices/tze204-ztqnh5cg-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-ztqnh5cg-ts0601-0x0000004a.json index 05bf22f5c..52cf096ba 100644 --- a/tests/data/legacy_devices/tze204-ztqnh5cg-ts0601-0x0000004a.json +++ b/tests/data/legacy_devices/tze204-ztqnh5cg-ts0601-0x0000004a.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:40:55.855319+00:00", + "last_seen": "2024-06-21T15:37:29+00:00", "available": true, "device_type": "Router", "active_coordinator": false, @@ -207,51 +207,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_ztqnh5cg", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0400", - "0x0406", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze204-zxkwaztm-ts0601.json b/tests/data/legacy_devices/tze204-zxkwaztm-ts0601.json index aa0485fc2..a08bf8a8f 100644 --- a/tests/data/legacy_devices/tze204-zxkwaztm-ts0601.json +++ b/tests/data/legacy_devices/tze204-zxkwaztm-ts0601.json @@ -155,42 +155,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE204_zxkwaztm", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0201", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "climate": [ { diff --git a/tests/data/legacy_devices/tze20c-xbexmf8h-ts130f-0x00000040.json b/tests/data/legacy_devices/tze20c-xbexmf8h-ts130f-0x00000040.json index a76f31be2..47050c4ed 100644 --- a/tests/data/legacy_devices/tze20c-xbexmf8h-ts130f-0x00000040.json +++ b/tests/data/legacy_devices/tze20c-xbexmf8h-ts130f-0x00000040.json @@ -116,50 +116,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE20C_xbexmf8h", - "model": "TS130F", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 74, - "maximum_incoming_transfer_size": 80, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 80, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0301", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xeb00", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze20c-zka46xbw-ts0601-0x00000051.json b/tests/data/legacy_devices/tze20c-zka46xbw-ts0601-0x00000051.json index 120cc01d2..db2e22f51 100644 --- a/tests/data/legacy_devices/tze20c-zka46xbw-ts0601-0x00000051.json +++ b/tests/data/legacy_devices/tze20c-zka46xbw-ts0601-0x00000051.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:42.615668+00:00", + "last_seen": "2025-05-07T17:44:45", "available": true, "device_type": "Router", "active_coordinator": false, @@ -292,55 +292,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE20C_zka46xbw", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0402", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x0300", - "0x0500", - "0x1000", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze284-0zaf1cr8-ts0601.json b/tests/data/legacy_devices/tze284-0zaf1cr8-ts0601.json index b64be678c..6a63af6f4 100644 --- a/tests/data/legacy_devices/tze284-0zaf1cr8-ts0601.json +++ b/tests/data/legacy_devices/tze284-0zaf1cr8-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:32.522351+00:00", + "last_seen": "2024-11-11T22:39:32+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -131,43 +131,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE284_0zaf1cr8", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0402", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0004", - "0x0005", - "0x0500", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze284-2gi1hy8s-ts0601-0x00000050.json b/tests/data/legacy_devices/tze284-2gi1hy8s-ts0601-0x00000050.json index 7a1bb8e7f..0c961e96a 100644 --- a/tests/data/legacy_devices/tze284-2gi1hy8s-ts0601-0x00000050.json +++ b/tests/data/legacy_devices/tze284-2gi1hy8s-ts0601-0x00000050.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:45.518094+00:00", + "last_seen": "2025-06-25T22:52:24", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -107,42 +107,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE284_2gi1hy8s", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xed00", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze284-6ycgarab-ts0601-0x00000050.json b/tests/data/legacy_devices/tze284-6ycgarab-ts0601-0x00000050.json index 5b3c15271..6ba1b8411 100644 --- a/tests/data/legacy_devices/tze284-6ycgarab-ts0601-0x00000050.json +++ b/tests/data/legacy_devices/tze284-6ycgarab-ts0601-0x00000050.json @@ -107,42 +107,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE284_6ycgarab", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xed00", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze284-a2xewxoo-ts0601-0x0000004e.json b/tests/data/legacy_devices/tze284-a2xewxoo-ts0601-0x0000004e.json index 1a4baee11..14151c6ce 100644 --- a/tests/data/legacy_devices/tze284-a2xewxoo-ts0601-0x0000004e.json +++ b/tests/data/legacy_devices/tze284-a2xewxoo-ts0601-0x0000004e.json @@ -122,50 +122,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE284_a2xewxoo", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xed00", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze284-aao3yzhs-ts0601-0x0000004d.json b/tests/data/legacy_devices/tze284-aao3yzhs-ts0601-0x0000004d.json index aff0fe946..73bc65609 100644 --- a/tests/data/legacy_devices/tze284-aao3yzhs-ts0601-0x0000004d.json +++ b/tests/data/legacy_devices/tze284-aao3yzhs-ts0601-0x0000004d.json @@ -168,45 +168,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE284_aao3yzhs", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0004", - "0x0005", - "0x0402", - "0x0408", - "0xed00", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze284-aao3yzhs-ts0601.json b/tests/data/legacy_devices/tze284-aao3yzhs-ts0601.json index ec5ffc692..247bf3dd7 100644 --- a/tests/data/legacy_devices/tze284-aao3yzhs-ts0601.json +++ b/tests/data/legacy_devices/tze284-aao3yzhs-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:45.399585+00:00", + "last_seen": "2024-12-28T16:12:38+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -128,45 +128,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE284_aao3yzhs", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0004", - "0x0005", - "0x0402", - "0x0408", - "0xed00", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze284-c6wv4xyo-ts0601-0x0000004d.json b/tests/data/legacy_devices/tze284-c6wv4xyo-ts0601-0x0000004d.json index 5eb07b233..3b5bd8f35 100644 --- a/tests/data/legacy_devices/tze284-c6wv4xyo-ts0601-0x0000004d.json +++ b/tests/data/legacy_devices/tze284-c6wv4xyo-ts0601-0x0000004d.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:46.225433+00:00", + "last_seen": "2024-11-16T21:23:34+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -167,43 +167,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE284_c6wv4xyo", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0201", - "0xed00", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze284-cjbofhxw-ts0601.json b/tests/data/legacy_devices/tze284-cjbofhxw-ts0601.json index 9caae618e..41327e3a2 100644 --- a/tests/data/legacy_devices/tze284-cjbofhxw-ts0601.json +++ b/tests/data/legacy_devices/tze284-cjbofhxw-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:44.359562+00:00", + "last_seen": "2024-12-30T16:48:06", "available": true, "device_type": "Router", "active_coordinator": false, @@ -107,42 +107,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE284_cjbofhxw", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xed00", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze284-dmckrsxg-ts0601-0x0000004e.json b/tests/data/legacy_devices/tze284-dmckrsxg-ts0601-0x0000004e.json index 5cdfeb89d..71355a804 100644 --- a/tests/data/legacy_devices/tze284-dmckrsxg-ts0601-0x0000004e.json +++ b/tests/data/legacy_devices/tze284-dmckrsxg-ts0601-0x0000004e.json @@ -122,50 +122,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE284_dmckrsxg", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xed00", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze284-f5efvtbv-ts0601-0x0000004e.json b/tests/data/legacy_devices/tze284-f5efvtbv-ts0601-0x0000004e.json index 40c44cee4..c8d201a7d 100644 --- a/tests/data/legacy_devices/tze284-f5efvtbv-ts0601-0x0000004e.json +++ b/tests/data/legacy_devices/tze284-f5efvtbv-ts0601-0x0000004e.json @@ -122,50 +122,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE284_f5efvtbv", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xed00", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze284-fhvpaltk-ts0601.json b/tests/data/legacy_devices/tze284-fhvpaltk-ts0601.json index b7fd1dd54..842ee53f8 100644 --- a/tests/data/legacy_devices/tze284-fhvpaltk-ts0601.json +++ b/tests/data/legacy_devices/tze284-fhvpaltk-ts0601.json @@ -125,43 +125,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE284_fhvpaltk", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0004", - "0x0005", - "0xed00", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "number": [ { diff --git a/tests/data/legacy_devices/tze284-fzo2pocs-ts0601.json b/tests/data/legacy_devices/tze284-fzo2pocs-ts0601.json index 4fa868740..ea62ad4a3 100644 --- a/tests/data/legacy_devices/tze284-fzo2pocs-ts0601.json +++ b/tests/data/legacy_devices/tze284-fzo2pocs-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:32.617910+00:00", + "last_seen": "2024-07-24T23:08:01", "available": true, "device_type": "Router", "active_coordinator": false, @@ -107,42 +107,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE284_fzo2pocs", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xed00", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze284-g2e6cpnw-ts0601-0x0000004d.json b/tests/data/legacy_devices/tze284-g2e6cpnw-ts0601-0x0000004d.json index 196df9178..486519182 100644 --- a/tests/data/legacy_devices/tze284-g2e6cpnw-ts0601-0x0000004d.json +++ b/tests/data/legacy_devices/tze284-g2e6cpnw-ts0601-0x0000004d.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:27:24.589467+00:00", + "last_seen": "2024-06-08T15:20:29", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -107,42 +107,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE284_g2e6cpnw", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xed00", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze284-iadro9bf-ts0601-0x0000004e.json b/tests/data/legacy_devices/tze284-iadro9bf-ts0601-0x0000004e.json index 188c5eb3a..e301e2c59 100644 --- a/tests/data/legacy_devices/tze284-iadro9bf-ts0601-0x0000004e.json +++ b/tests/data/legacy_devices/tze284-iadro9bf-ts0601-0x0000004e.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:08:50.649939+00:00", + "last_seen": "2025-03-20T21:47:39", "available": true, "device_type": "Router", "active_coordinator": false, @@ -122,50 +122,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE284_iadro9bf", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xed00", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze284-idvyees9-ts0601-0x0000004e.json b/tests/data/legacy_devices/tze284-idvyees9-ts0601-0x0000004e.json index 1d9bae9a9..ef909b180 100644 --- a/tests/data/legacy_devices/tze284-idvyees9-ts0601-0x0000004e.json +++ b/tests/data/legacy_devices/tze284-idvyees9-ts0601-0x0000004e.json @@ -122,50 +122,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE284_idvyees9", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xed00", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze284-kyyu8rbj-ts0601-0x0000004d.json b/tests/data/legacy_devices/tze284-kyyu8rbj-ts0601-0x0000004d.json index fe5982c50..6aa812a94 100644 --- a/tests/data/legacy_devices/tze284-kyyu8rbj-ts0601-0x0000004d.json +++ b/tests/data/legacy_devices/tze284-kyyu8rbj-ts0601-0x0000004d.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:44.114251+00:00", + "last_seen": "2024-09-10T14:45:48+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -272,42 +272,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE284_kyyu8rbj", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xed00", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "number": [ { diff --git a/tests/data/legacy_devices/tze284-l8xiyymq-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze284-l8xiyymq-ts0601-0x0000004a.json index a7e6479c8..a4e286838 100644 --- a/tests/data/legacy_devices/tze284-l8xiyymq-ts0601-0x0000004a.json +++ b/tests/data/legacy_devices/tze284-l8xiyymq-ts0601-0x0000004a.json @@ -119,42 +119,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE284_l8xiyymq", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xed00", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze284-ltwbm23f-ts0601-0x0000004d.json b/tests/data/legacy_devices/tze284-ltwbm23f-ts0601-0x0000004d.json index 73729a6a5..ae852d74a 100644 --- a/tests/data/legacy_devices/tze284-ltwbm23f-ts0601-0x0000004d.json +++ b/tests/data/legacy_devices/tze284-ltwbm23f-ts0601-0x0000004d.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:43.240255+00:00", + "last_seen": "2024-11-23T12:32:20", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -107,42 +107,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE284_ltwbm23f", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xed00", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze284-myd45weu-ts0601-0x0000004d.json b/tests/data/legacy_devices/tze284-myd45weu-ts0601-0x0000004d.json index e8a15e6de..bb8c7e281 100644 --- a/tests/data/legacy_devices/tze284-myd45weu-ts0601-0x0000004d.json +++ b/tests/data/legacy_devices/tze284-myd45weu-ts0601-0x0000004d.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:08:50.062834+00:00", + "last_seen": "2025-03-18T04:38:59+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -165,45 +165,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE284_myd45weu", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0004", - "0x0005", - "0x0402", - "0x0408", - "0xed00", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze284-ne4pikwm-ts0601.json b/tests/data/legacy_devices/tze284-ne4pikwm-ts0601.json index 4b62a26aa..9ffc1d1ca 100644 --- a/tests/data/legacy_devices/tze284-ne4pikwm-ts0601.json +++ b/tests/data/legacy_devices/tze284-ne4pikwm-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-04-29T19:02:50.390694+00:00", + "last_seen": "2025-03-04T06:48:51+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -239,43 +239,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE284_ne4pikwm", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0201", - "0xed00", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze284-nklqjk62-ts0601-0x0000004e.json b/tests/data/legacy_devices/tze284-nklqjk62-ts0601-0x0000004e.json index f24071cf8..52664fa1e 100644 --- a/tests/data/legacy_devices/tze284-nklqjk62-ts0601-0x0000004e.json +++ b/tests/data/legacy_devices/tze284-nklqjk62-ts0601-0x0000004e.json @@ -122,50 +122,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE284_nklqjk62", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xed00", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze284-nnhwcvbk-ts0601-0x0000004d.json b/tests/data/legacy_devices/tze284-nnhwcvbk-ts0601-0x0000004d.json index 0ea593d5f..a1f9c128a 100644 --- a/tests/data/legacy_devices/tze284-nnhwcvbk-ts0601-0x0000004d.json +++ b/tests/data/legacy_devices/tze284-nnhwcvbk-ts0601-0x0000004d.json @@ -101,42 +101,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE284_nnhwcvbk", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xed00", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze284-o3x45p96-ts0601-0x0000004d.json b/tests/data/legacy_devices/tze284-o3x45p96-ts0601-0x0000004d.json index 838e0a476..8c0501d95 100644 --- a/tests/data/legacy_devices/tze284-o3x45p96-ts0601-0x0000004d.json +++ b/tests/data/legacy_devices/tze284-o3x45p96-ts0601-0x0000004d.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:08:54.977747+00:00", + "last_seen": "2024-11-28T04:06:02+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -167,43 +167,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE284_o3x45p96", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0201", - "0xed00", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze284-o9ofysmo-ts0601-0x00000050.json b/tests/data/legacy_devices/tze284-o9ofysmo-ts0601-0x00000050.json index d8e57f14e..8846d46dc 100644 --- a/tests/data/legacy_devices/tze284-o9ofysmo-ts0601-0x00000050.json +++ b/tests/data/legacy_devices/tze284-o9ofysmo-ts0601-0x00000050.json @@ -107,42 +107,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE284_o9ofysmo", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xed00", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze284-ogx8u5z6-ts0601-0x0000004d.json b/tests/data/legacy_devices/tze284-ogx8u5z6-ts0601-0x0000004d.json index 8318ec87a..86832ebab 100644 --- a/tests/data/legacy_devices/tze284-ogx8u5z6-ts0601-0x0000004d.json +++ b/tests/data/legacy_devices/tze284-ogx8u5z6-ts0601-0x0000004d.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:42.806751+00:00", + "last_seen": "2025-01-25T20:12:38+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -167,43 +167,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE284_ogx8u5z6", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0x0201", - "0xed00", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze284-oitavov2-ts0601-0x00000050.json b/tests/data/legacy_devices/tze284-oitavov2-ts0601-0x00000050.json index f011e9f3d..08faf0e64 100644 --- a/tests/data/legacy_devices/tze284-oitavov2-ts0601-0x00000050.json +++ b/tests/data/legacy_devices/tze284-oitavov2-ts0601-0x00000050.json @@ -198,45 +198,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE284_oitavov2", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0004", - "0x0005", - "0x0402", - "0x0408", - "0xed00", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze284-pcdmj88b-ts0601-0x0000004d.json b/tests/data/legacy_devices/tze284-pcdmj88b-ts0601-0x0000004d.json index c4e48ed91..5253fae2b 100644 --- a/tests/data/legacy_devices/tze284-pcdmj88b-ts0601-0x0000004d.json +++ b/tests/data/legacy_devices/tze284-pcdmj88b-ts0601-0x0000004d.json @@ -101,42 +101,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE284_pcdmj88b", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xed00", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze284-qyflbnbj-ts0601-0x0000004d.json b/tests/data/legacy_devices/tze284-qyflbnbj-ts0601-0x0000004d.json index 18c9c925c..1ec5edb3d 100644 --- a/tests/data/legacy_devices/tze284-qyflbnbj-ts0601-0x0000004d.json +++ b/tests/data/legacy_devices/tze284-qyflbnbj-ts0601-0x0000004d.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-04-29T19:02:50.331452+00:00", + "last_seen": "2024-12-28T02:05:38+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -69,12 +69,6 @@ "cluster_id": "0x0001", "endpoint_attribute": "power", "attributes": [ - { - "id": "0x0052", - "name": "battery_2_a_hr_rating", - "zcl_type": "uint16", - "unsupported": true - }, { "id": "0x0033", "name": "battery_quantity", @@ -108,32 +102,7 @@ { "cluster_id": "0x0402", "endpoint_attribute": "temperature", - "attributes": [ - { - "id": "0xfffd", - "name": "cluster_revision", - "zcl_type": "uint16", - "unsupported": true - }, - { - "id": "0x0002", - "name": "max_measured_value", - "zcl_type": "int16", - "unsupported": true - }, - { - "id": "0x0001", - "name": "min_measured_value", - "zcl_type": "int16", - "unsupported": true - }, - { - "id": "0x0003", - "name": "tolerance", - "zcl_type": "uint16", - "unsupported": true - } - ] + "attributes": [] }, { "cluster_id": "0x0405", @@ -155,32 +124,7 @@ { "cluster_id": "0x000a", "endpoint_attribute": "time", - "attributes": [ - { - "id": "0x0004", - "name": "dst_end", - "zcl_type": "uint32", - "unsupported": true - }, - { - "id": "0x0005", - "name": "dst_shift", - "zcl_type": "int32", - "unsupported": true - }, - { - "id": "0x0007", - "name": "local_time", - "zcl_type": "uint32", - "unsupported": true - }, - { - "id": "0x0000", - "name": "time", - "zcl_type": "UTC", - "unsupported": true - } - ] + "attributes": [] }, { "cluster_id": "0x0019", @@ -197,45 +141,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE284_qyflbnbj", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0004", - "0x0005", - "0x0402", - "0x0405", - "0xed00", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze284-rjxqso4a-ts0601-0x0000004d.json b/tests/data/legacy_devices/tze284-rjxqso4a-ts0601-0x0000004d.json index 914570009..514bd027d 100644 --- a/tests/data/legacy_devices/tze284-rjxqso4a-ts0601-0x0000004d.json +++ b/tests/data/legacy_devices/tze284-rjxqso4a-ts0601-0x0000004d.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:08:54.683023+00:00", + "last_seen": "2025-01-15T23:20:30+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -143,44 +143,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE284_rjxqso4a", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0004", - "0x0005", - "0x0500", - "0xed00", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/tze284-rlytpmij-ts0601-0x00000051.json b/tests/data/legacy_devices/tze284-rlytpmij-ts0601-0x00000051.json index efe5487cf..573d6d094 100644 --- a/tests/data/legacy_devices/tze284-rlytpmij-ts0601-0x00000051.json +++ b/tests/data/legacy_devices/tze284-rlytpmij-ts0601-0x00000051.json @@ -122,50 +122,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE284_rlytpmij", - "model": "TS0601", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xed00", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze284-rqcuwlsa-ts0601.json b/tests/data/legacy_devices/tze284-rqcuwlsa-ts0601.json index f7b040794..3bfccf626 100644 --- a/tests/data/legacy_devices/tze284-rqcuwlsa-ts0601.json +++ b/tests/data/legacy_devices/tze284-rqcuwlsa-ts0601.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:08:50.671321+00:00", + "last_seen": "2025-01-26T22:18:35+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -147,46 +147,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE284_rqcuwlsa", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0004", - "0x0005", - "0x0402", - "0x0408", - "0x040a", - "0xed00", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze284-sgabhwa6-ts0601-0x0000004d.json b/tests/data/legacy_devices/tze284-sgabhwa6-ts0601-0x0000004d.json index 13db986fc..14c7718c6 100644 --- a/tests/data/legacy_devices/tze284-sgabhwa6-ts0601-0x0000004d.json +++ b/tests/data/legacy_devices/tze284-sgabhwa6-ts0601-0x0000004d.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:40:27.110078+00:00", + "last_seen": "2024-07-20T20:23:40+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -282,45 +282,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE284_sgabhwa6", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0004", - "0x0005", - "0x0402", - "0x0408", - "0xed00", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze284-upagmta9-ts0601-0x0000004d.json b/tests/data/legacy_devices/tze284-upagmta9-ts0601-0x0000004d.json index 8d570526e..792c3e4a4 100644 --- a/tests/data/legacy_devices/tze284-upagmta9-ts0601-0x0000004d.json +++ b/tests/data/legacy_devices/tze284-upagmta9-ts0601-0x0000004d.json @@ -141,45 +141,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE284_upagmta9", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0004", - "0x0005", - "0x0402", - "0x0405", - "0xed00", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "select": [ { diff --git a/tests/data/legacy_devices/tze284-vawy74yh-ts0601-0x0000004d.json b/tests/data/legacy_devices/tze284-vawy74yh-ts0601-0x0000004d.json index fcd8ed4b3..e4e164a4e 100644 --- a/tests/data/legacy_devices/tze284-vawy74yh-ts0601-0x0000004d.json +++ b/tests/data/legacy_devices/tze284-vawy74yh-ts0601-0x0000004d.json @@ -107,42 +107,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE284_vawy74yh", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xed00", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze284-vuwtqx0t-ts0601-0x00000050.json b/tests/data/legacy_devices/tze284-vuwtqx0t-ts0601-0x00000050.json index 9b37bdb61..13e560534 100644 --- a/tests/data/legacy_devices/tze284-vuwtqx0t-ts0601-0x00000050.json +++ b/tests/data/legacy_devices/tze284-vuwtqx0t-ts0601-0x00000050.json @@ -107,42 +107,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE284_vuwtqx0t", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xed00", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze284-wtikaxzs-ts0601-0x0000004d.json b/tests/data/legacy_devices/tze284-wtikaxzs-ts0601-0x0000004d.json index f72f5bcc5..d13847420 100644 --- a/tests/data/legacy_devices/tze284-wtikaxzs-ts0601-0x0000004d.json +++ b/tests/data/legacy_devices/tze284-wtikaxzs-ts0601-0x0000004d.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:42.594464+00:00", + "last_seen": "2024-10-31T19:56:42", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -101,42 +101,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE284_wtikaxzs", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xed00", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze284-zjhoqbrd-ts0601-0x0000004d.json b/tests/data/legacy_devices/tze284-zjhoqbrd-ts0601-0x0000004d.json index 1abe85770..f2e4f70c3 100644 --- a/tests/data/legacy_devices/tze284-zjhoqbrd-ts0601-0x0000004d.json +++ b/tests/data/legacy_devices/tze284-zjhoqbrd-ts0601-0x0000004d.json @@ -107,42 +107,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE284_zjhoqbrd", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xed00", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze284-zm8zpwas-ts0601-0x00000050.json b/tests/data/legacy_devices/tze284-zm8zpwas-ts0601-0x00000050.json index 4a295b9ef..d523c1a57 100644 --- a/tests/data/legacy_devices/tze284-zm8zpwas-ts0601-0x00000050.json +++ b/tests/data/legacy_devices/tze284-zm8zpwas-ts0601-0x00000050.json @@ -113,42 +113,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE284_zm8zpwas", - "model": "TS0601", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0004", - "0x0005", - "0xed00", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "sensor": [ { diff --git a/tests/data/legacy_devices/tze600-iypcp4py-ts0105.json b/tests/data/legacy_devices/tze600-iypcp4py-ts0105.json index 2b51f4aee..c9d1071d7 100644 --- a/tests/data/legacy_devices/tze600-iypcp4py-ts0105.json +++ b/tests/data/legacy_devices/tze600-iypcp4py-ts0105.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:35.125289+00:00", + "last_seen": "2023-12-09T01:31:14", "available": true, "device_type": "Router", "active_coordinator": false, @@ -99,48 +99,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE600_iypcp4py", - "model": "TS0105", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4107, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0003", - "0x000a", - "0xef00" - ], - "output_clusters": [ - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/tze608-c75zqghm-ts0603-0x00000040.json b/tests/data/legacy_devices/tze608-c75zqghm-ts0603-0x00000040.json index cc6b02f51..dc1852686 100644 --- a/tests/data/legacy_devices/tze608-c75zqghm-ts0603-0x00000040.json +++ b/tests/data/legacy_devices/tze608-c75zqghm-ts0603-0x00000040.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:25:35.482599+00:00", + "last_seen": "2024-07-18T14:08:40", "available": true, "device_type": "Router", "active_coordinator": false, @@ -116,50 +116,6 @@ ] } }, - "original_signature": { - "manufacturer": "_TZE608_c75zqghm", - "model": "TS0603", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4417, - "maximum_buffer_size": 66, - "maximum_incoming_transfer_size": 66, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 66, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0051", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0xef00" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/uiot-uiot-windowcovring2-0402.json b/tests/data/legacy_devices/uiot-uiot-windowcovring2-0402.json index 90c73bf5e..2895934a0 100644 --- a/tests/data/legacy_devices/uiot-uiot-windowcovring2-0402.json +++ b/tests/data/legacy_devices/uiot-uiot-windowcovring2-0402.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T00:56:57.397793+00:00", + "last_seen": "2024-03-21T01:44:31", "available": true, "device_type": "Router", "active_coordinator": false, @@ -393,79 +393,6 @@ ] } }, - "original_signature": { - "manufacturer": "UIOT", - "model": "UIOT-WindowCovring2[04,02]", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4657, - "maximum_buffer_size": 127, - "maximum_incoming_transfer_size": 100, - "server_mask": 0, - "maximum_outgoing_transfer_size": 100, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0203", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0019", - "0x0102", - "0xfe00", - "0xffff" - ], - "output_clusters": [ - "0x0000", - "0x0003", - "0x0019", - "0x0102", - "0xfe00", - "0xffff" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0203", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0102", - "0xffff" - ], - "output_clusters": [ - "0x0000", - "0x0003", - "0x0102", - "0xffff" - ] - }, - "3": { - "profile_id": "0x0104", - "device_type": "0x0203", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0102", - "0xffff" - ], - "output_clusters": [ - "0x0000", - "0x0003", - "0x0102", - "0xffff" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/unk-manufacturer-unk-model.json b/tests/data/legacy_devices/unk-manufacturer-unk-model.json index 581722c86..6037f1844 100644 --- a/tests/data/legacy_devices/unk-manufacturer-unk-model.json +++ b/tests/data/legacy_devices/unk-manufacturer-unk-model.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T00:48:17.797358+00:00", + "last_seen": "2025-04-12T23:44:43", "available": true, "device_type": "Router", "active_coordinator": false, @@ -230,48 +230,6 @@ ] } }, - "original_signature": { - "manufacturer": "unk_manufacturer", - "model": "unk_model", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4368, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 0, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0200", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x000a", - "0x0015", - "0x0100", - "0xfc20", - "0xfc21" - ], - "output_clusters": [ - "0x0003", - "0xfc20" - ] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/visonic-mct-340-sma.json b/tests/data/legacy_devices/visonic-mct-340-sma.json index afc838453..cd0c81044 100644 --- a/tests/data/legacy_devices/visonic-mct-340-sma.json +++ b/tests/data/legacy_devices/visonic-mct-340-sma.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:40:27.292527+00:00", + "last_seen": "2023-12-24T02:02:46+00:00", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -166,43 +166,6 @@ ] } }, - "original_signature": { - "manufacturer": "Visonic", - "model": "MCT-340 SMA", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4113, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 0, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0402", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0402", - "0x0500", - "0x0020", - "0x0b05" - ], - "output_clusters": [ - "0x0019" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/xyzroe-diy-zintercom.json b/tests/data/legacy_devices/xyzroe-diy-zintercom.json index 5d7bf4154..26efd9f7c 100644 --- a/tests/data/legacy_devices/xyzroe-diy-zintercom.json +++ b/tests/data/legacy_devices/xyzroe-diy-zintercom.json @@ -14,7 +14,7 @@ "power_source": "Battery or Unknown", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:42.287040+00:00", + "last_seen": "2025-01-23T02:14:53", "available": true, "device_type": "EndDevice", "active_coordinator": false, @@ -69,7 +69,7 @@ "id": "0x0000", "name": "on_off", "zcl_type": "bool", - "value": 0 + "unsupported": true }, { "id": "0x4003", @@ -87,38 +87,6 @@ ] } }, - "original_signature": { - "manufacturer": "xyzroe", - "model": "DIY_Zintercom", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 0, - "maximum_buffer_size": 80, - "maximum_incoming_transfer_size": 160, - "server_mask": 0, - "maximum_outgoing_transfer_size": 160, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x000c", - "input_clusters": [ - "0x0000" - ], - "output_clusters": [ - "0x0006", - "0x0101" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/zbeacon-ts0001.json b/tests/data/legacy_devices/zbeacon-ts0001.json index d71c4c778..cf2531643 100644 --- a/tests/data/legacy_devices/zbeacon-ts0001.json +++ b/tests/data/legacy_devices/zbeacon-ts0001.json @@ -139,44 +139,6 @@ "out_clusters": [] } }, - "original_signature": { - "manufacturer": "Zbeacon", - "model": "TS0001", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4107, - "maximum_buffer_size": 74, - "maximum_incoming_transfer_size": 404, - "server_mask": 10752, - "maximum_outgoing_transfer_size": 404, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0100", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x000a", - "0x1000", - "0x1888", - "0xe000", - "0xe001" - ], - "output_clusters": [] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/zbeacon-ts0505.json b/tests/data/legacy_devices/zbeacon-ts0505.json index 77a5f7c99..fedd676b1 100644 --- a/tests/data/legacy_devices/zbeacon-ts0505.json +++ b/tests/data/legacy_devices/zbeacon-ts0505.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-10-28T18:05:42.713447+00:00", + "last_seen": "2024-12-07T09:15:37", "available": true, "device_type": "Router", "active_coordinator": false, @@ -252,47 +252,6 @@ "out_clusters": [] } }, - "original_signature": { - "manufacturer": "zbeacon", - "model": "TS0505", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4660, - "maximum_buffer_size": 108, - "maximum_incoming_transfer_size": 0, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 0, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x010d", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0004", - "0x0005", - "0x0006", - "0x0008", - "0x000a", - "0x0300", - "0x0702", - "0x0b04", - "0x1000", - "0xe000", - "0xe001" - ], - "output_clusters": [] - } - } - }, "zha_lib_entities": { "button": [ { diff --git a/tests/data/legacy_devices/zehnder-group-vaux-andigny-alcantara2-d1-00p1-02z1-00.json b/tests/data/legacy_devices/zehnder-group-vaux-andigny-alcantara2-d1-00p1-02z1-00.json index b8c2ca224..f8f950940 100644 --- a/tests/data/legacy_devices/zehnder-group-vaux-andigny-alcantara2-d1-00p1-02z1-00.json +++ b/tests/data/legacy_devices/zehnder-group-vaux-andigny-alcantara2-d1-00p1-02z1-00.json @@ -14,7 +14,7 @@ "power_source": "Mains", "lqi": null, "rssi": null, - "last_seen": "2025-12-11T01:40:26.272121+00:00", + "last_seen": "2024-01-19T15:55:29", "available": true, "device_type": "Router", "active_coordinator": false, @@ -303,71 +303,6 @@ ] } }, - "original_signature": { - "manufacturer": "ZEHNDER GROUP VAUX ANDIGNY ", - "model": "ALCANTARA2 D1.00P1.02Z1.00", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4098, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0301", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0201" - ], - "output_clusters": [ - "0x0003" - ] - }, - "2": { - "profile_id": "0x0104", - "device_type": "0x0107", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0406" - ], - "output_clusters": [ - "0x0003" - ] - }, - "3": { - "profile_id": "0x0104", - "device_type": "0x0001", - "input_clusters": [ - "0x0000", - "0x0003", - "0x000f" - ], - "output_clusters": [ - "0x0003" - ] - }, - "242": { - "profile_id": "0xa1e0", - "device_type": "0x0061", - "input_clusters": [], - "output_clusters": [ - "0x0021" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/zemismart-spm02-3z3-0x0000000e.json b/tests/data/legacy_devices/zemismart-spm02-3z3-0x0000000e.json index b8f5160be..a60b6026f 100644 --- a/tests/data/legacy_devices/zemismart-spm02-3z3-0x0000000e.json +++ b/tests/data/legacy_devices/zemismart-spm02-3z3-0x0000000e.json @@ -544,46 +544,6 @@ ] } }, - "original_signature": { - "manufacturer": "Zemismart", - "model": "SPM02-3Z3", - "node_desc": { - "logical_type": 1, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 142, - "manufacturer_code": 4630, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 82, - "server_mask": 11264, - "maximum_outgoing_transfer_size": 82, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0501", - "input_clusters": [ - "0x0000", - "0x0003", - "0x0006", - "0x0702", - "0x0b04", - "0x0b05", - "0xfc00" - ], - "output_clusters": [ - "0x0003", - "0x0006", - "0x0019", - "0xfc00" - ] - } - } - }, "zha_lib_entities": { "binary_sensor": [ { diff --git a/tests/data/legacy_devices/zen-within-zen-01-0x0000021f.json b/tests/data/legacy_devices/zen-within-zen-01-0x0000021f.json index 58296d63a..af6d5103d 100644 --- a/tests/data/legacy_devices/zen-within-zen-01-0x0000021f.json +++ b/tests/data/legacy_devices/zen-within-zen-01-0x0000021f.json @@ -316,48 +316,6 @@ ] } }, - "original_signature": { - "manufacturer": "Zen Within", - "model": "Zen-01", - "node_desc": { - "logical_type": 2, - "complex_descriptor_available": 0, - "user_descriptor_available": 0, - "reserved": 0, - "aps_flags": 0, - "frequency_band": 8, - "mac_capability_flags": 128, - "manufacturer_code": 4440, - "maximum_buffer_size": 82, - "maximum_incoming_transfer_size": 128, - "server_mask": 0, - "maximum_outgoing_transfer_size": 128, - "descriptor_capability_field": 0 - }, - "endpoints": { - "1": { - "profile_id": "0x0104", - "device_type": "0x0301", - "input_clusters": [ - "0x0000", - "0x0001", - "0x0003", - "0x0004", - "0x0005", - "0x0020", - "0x0201", - "0x0202", - "0x0204", - "0x0b05", - "0xfe11" - ], - "output_clusters": [ - "0x000a", - "0x0019" - ] - } - } - }, "zha_lib_entities": { "button": [ { From 48709115a517f1afe80da4090cab5c0e38b8d94d Mon Sep 17 00:00:00 2001 From: puddly <32534428+puddly@users.noreply.github.com> Date: Thu, 25 Jun 2026 17:41:15 -0400 Subject: [PATCH 6/9] Regenerate 3: add new legacy devices --- .../aqara-lumi-curtain-acn04-0x00000009.json | 389 ++++ .../aqara-lumi-motion-ac01-0x00000036.json | 318 +++ .../aqara-lumi-switch-acn047-0x0000001b.json | 780 +++++++ .../legacy_devices/bosch-rbsh-mms-zb-eu.json | 1315 ++++++++++++ .../bosch-rbsh-rth0-bat-zb-eu.json | 1242 ++++++++++++ .../legacy_devices/bosch-rbsh-rth0-zb-eu.json | 1198 +++++++++++ .../legacy_devices/bosch-rbsh-trv0-zb-eu.json | 980 +++++++++ .../danfoss-etrv0103-0x0000001c.json | 1787 +++++++++++++++++ .../data/legacy_devices/danfoss-etrv0103.json | 1126 +++++++++++ .../data/legacy_devices/ewelink-snzb-01p.json | 297 +++ ...tur-block-out-roller-blind-0x24040013.json | 488 +++++ ...-sweden-fyrtur-block-out-roller-blind.json | 381 ++++ ...eden-inspelning-smart-plug-0x02040034.json | 773 +++++++ ...of-sweden-parasoll-door-window-sensor.json | 418 ++++ ...f-sweden-remote-control-n2-0x02040011.json | 342 ++++ ...a-of-sweden-tradfri-open-close-remote.json | 317 +++ ...en-tradfri-shortcut-button-0x24040006.json | 338 ++++ ...weden-vallhorn-wireless-motion-sensor.json | 558 +++++ tests/data/legacy_devices/innr-rc-250.json | 317 +++ tests/data/legacy_devices/innr-sp-240.json | 738 +++++++ .../keen-home-inc-sv01-410-mp-1-1.json | 479 +++++ .../lk-zb-doorsensor-d0003-0x310d0002.json | 363 ++++ .../lumi-lumi-curtain-acn002.json | 609 ++++++ .../lumi-lumi-sensor-ht-agl02-0x0000001d.json | 391 ++++ .../lumi-lumi-switch-l2aeu1.json | 891 ++++++++ .../legacy_devices/nodon-sin-4-rs-20.json | 596 ++++++ tests/data/legacy_devices/sonoff-trvzb.json | 1115 ++++++++++ .../data/legacy_devices/sonoff-zbminil2.json | 365 ++++ .../data/legacy_devices/sonoff-zbminir2.json | 444 ++++ ...rd-reality-inc-3rsnl02043z-0x00000052.json | 686 +++++++ .../third-reality-inc-3rsnl02043z.json | 710 +++++++ .../tz3000-8nkb7mof-ts0121.json | 783 ++++++++ .../tz3000-cehuw1lw-ts011f.json | 686 +++++++ .../tz3000-itnrsufe-ts0201.json | 365 ++++ .../tz3000-uwkja6z1-ts011f.json | 1110 ++++++++++ .../tz3210-0jxeoadc-ts0049-0x00000046.json | 383 ++++ .../tz3210-dse8ogfy-ts0001-0x00000081.json | 629 ++++++ .../tz3210-j4pdtz9v-ts0001.json | 524 +++++ .../tz3210-tgvtvdoc-ts0207.json | 524 +++++ .../tz3218-7fiyo3kv-ts000f-0x00000050.json | 611 ++++++ .../tz3218-t9ynfz4x-ts0225.json | 335 +++ .../tz3218-ya5d6wth-ts000f-0x00000066.json | 622 ++++++ .../tze200-3towulqd-ts0601.json | 482 +++++ .../tze200-c88teujp-ts0601.json | 791 ++++++++ .../tze200-laqjm8qd-ts0601-0x00000046.json | 217 ++ .../tze200-vvmbj46n-ts0601.json | 680 +++++++ .../tze204-7ytb3h8u-ts0601-0x00000049.json | 598 ++++++ .../tze204-81yrt3lo-ts0601.json | 204 ++ .../tze204-9yapgbuv-ts0601-0x00000049.json | 360 ++++ .../tze204-aoclfnxz-ts0601.json | 240 +++ .../tze204-nklqjk62-ts0601.json | 294 +++ .../tze204-nlrfgpny-ts0601-0x0000004a.json | 529 +++++ .../tze204-pcdmj88b-ts0601.json | 226 +++ .../tze204-pxbjch8m-ts0601.json | 210 ++ .../tze204-qasjif9e-ts0601.json | 525 +++++ .../tze284-7zazvlyn-ts0601.json | 207 ++ .../tze284-ne4pikwm-ts0601-0x0000004d.json | 735 +++++++ .../tze284-znvwzxkq-ts0601.json | 207 ++ .../data/legacy_devices/yooksmart-d10110.json | 370 ++++ 59 files changed, 34198 insertions(+) create mode 100644 tests/data/legacy_devices/aqara-lumi-curtain-acn04-0x00000009.json create mode 100644 tests/data/legacy_devices/aqara-lumi-motion-ac01-0x00000036.json create mode 100644 tests/data/legacy_devices/aqara-lumi-switch-acn047-0x0000001b.json create mode 100644 tests/data/legacy_devices/bosch-rbsh-mms-zb-eu.json create mode 100644 tests/data/legacy_devices/bosch-rbsh-rth0-bat-zb-eu.json create mode 100644 tests/data/legacy_devices/bosch-rbsh-rth0-zb-eu.json create mode 100644 tests/data/legacy_devices/bosch-rbsh-trv0-zb-eu.json create mode 100644 tests/data/legacy_devices/danfoss-etrv0103-0x0000001c.json create mode 100644 tests/data/legacy_devices/danfoss-etrv0103.json create mode 100644 tests/data/legacy_devices/ewelink-snzb-01p.json create mode 100644 tests/data/legacy_devices/ikea-of-sweden-fyrtur-block-out-roller-blind-0x24040013.json create mode 100644 tests/data/legacy_devices/ikea-of-sweden-fyrtur-block-out-roller-blind.json create mode 100644 tests/data/legacy_devices/ikea-of-sweden-inspelning-smart-plug-0x02040034.json create mode 100644 tests/data/legacy_devices/ikea-of-sweden-parasoll-door-window-sensor.json create mode 100644 tests/data/legacy_devices/ikea-of-sweden-remote-control-n2-0x02040011.json create mode 100644 tests/data/legacy_devices/ikea-of-sweden-tradfri-open-close-remote.json create mode 100644 tests/data/legacy_devices/ikea-of-sweden-tradfri-shortcut-button-0x24040006.json create mode 100644 tests/data/legacy_devices/ikea-of-sweden-vallhorn-wireless-motion-sensor.json create mode 100644 tests/data/legacy_devices/innr-rc-250.json create mode 100644 tests/data/legacy_devices/innr-sp-240.json create mode 100644 tests/data/legacy_devices/keen-home-inc-sv01-410-mp-1-1.json create mode 100644 tests/data/legacy_devices/lk-zb-doorsensor-d0003-0x310d0002.json create mode 100644 tests/data/legacy_devices/lumi-lumi-curtain-acn002.json create mode 100644 tests/data/legacy_devices/lumi-lumi-sensor-ht-agl02-0x0000001d.json create mode 100644 tests/data/legacy_devices/lumi-lumi-switch-l2aeu1.json create mode 100644 tests/data/legacy_devices/nodon-sin-4-rs-20.json create mode 100644 tests/data/legacy_devices/sonoff-trvzb.json create mode 100644 tests/data/legacy_devices/sonoff-zbminil2.json create mode 100644 tests/data/legacy_devices/sonoff-zbminir2.json create mode 100644 tests/data/legacy_devices/third-reality-inc-3rsnl02043z-0x00000052.json create mode 100644 tests/data/legacy_devices/third-reality-inc-3rsnl02043z.json create mode 100644 tests/data/legacy_devices/tz3000-8nkb7mof-ts0121.json create mode 100644 tests/data/legacy_devices/tz3000-cehuw1lw-ts011f.json create mode 100644 tests/data/legacy_devices/tz3000-itnrsufe-ts0201.json create mode 100644 tests/data/legacy_devices/tz3000-uwkja6z1-ts011f.json create mode 100644 tests/data/legacy_devices/tz3210-0jxeoadc-ts0049-0x00000046.json create mode 100644 tests/data/legacy_devices/tz3210-dse8ogfy-ts0001-0x00000081.json create mode 100644 tests/data/legacy_devices/tz3210-j4pdtz9v-ts0001.json create mode 100644 tests/data/legacy_devices/tz3210-tgvtvdoc-ts0207.json create mode 100644 tests/data/legacy_devices/tz3218-7fiyo3kv-ts000f-0x00000050.json create mode 100644 tests/data/legacy_devices/tz3218-t9ynfz4x-ts0225.json create mode 100644 tests/data/legacy_devices/tz3218-ya5d6wth-ts000f-0x00000066.json create mode 100644 tests/data/legacy_devices/tze200-3towulqd-ts0601.json create mode 100644 tests/data/legacy_devices/tze200-c88teujp-ts0601.json create mode 100644 tests/data/legacy_devices/tze200-laqjm8qd-ts0601-0x00000046.json create mode 100644 tests/data/legacy_devices/tze200-vvmbj46n-ts0601.json create mode 100644 tests/data/legacy_devices/tze204-7ytb3h8u-ts0601-0x00000049.json create mode 100644 tests/data/legacy_devices/tze204-81yrt3lo-ts0601.json create mode 100644 tests/data/legacy_devices/tze204-9yapgbuv-ts0601-0x00000049.json create mode 100644 tests/data/legacy_devices/tze204-aoclfnxz-ts0601.json create mode 100644 tests/data/legacy_devices/tze204-nklqjk62-ts0601.json create mode 100644 tests/data/legacy_devices/tze204-nlrfgpny-ts0601-0x0000004a.json create mode 100644 tests/data/legacy_devices/tze204-pcdmj88b-ts0601.json create mode 100644 tests/data/legacy_devices/tze204-pxbjch8m-ts0601.json create mode 100644 tests/data/legacy_devices/tze204-qasjif9e-ts0601.json create mode 100644 tests/data/legacy_devices/tze284-7zazvlyn-ts0601.json create mode 100644 tests/data/legacy_devices/tze284-ne4pikwm-ts0601-0x0000004d.json create mode 100644 tests/data/legacy_devices/tze284-znvwzxkq-ts0601.json create mode 100644 tests/data/legacy_devices/yooksmart-d10110.json diff --git a/tests/data/legacy_devices/aqara-lumi-curtain-acn04-0x00000009.json b/tests/data/legacy_devices/aqara-lumi-curtain-acn04-0x00000009.json new file mode 100644 index 000000000..b7f4f80bf --- /dev/null +++ b/tests/data/legacy_devices/aqara-lumi-curtain-acn04-0x00000009.json @@ -0,0 +1,389 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:a4:d1:4f:84", + "nwk": "0x9AE8", + "manufacturer": "Aqara", + "model": "lumi.curtain.acn04", + "friendly_manufacturer": "Aqara", + "friendly_model": "lumi.curtain.acn04", + "name": "Aqara lumi.curtain.acn04", + "quirk_applied": false, + "quirk_class": "zigpy.device.Device", + "exposes_features": [], + "manufacturer_code": 4447, + "power_source": "Mains", + "lqi": null, + "rssi": null, + "last_seen": "2024-04-28T16:49:28", + "available": true, + "device_type": "Router", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "Router", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 142, + "manufacturer_code": 4447, + "maximum_buffer_size": 82, + "maximum_incoming_transfer_size": 82, + "server_mask": 11264, + "maximum_outgoing_transfer_size": 82, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "WINDOW_COVERING_CONTROLLER", + "id": 515 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "Aqara" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "lumi.curtain.acn04" + } + ] + }, + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0005", + "endpoint_attribute": "scenes", + "attributes": [] + }, + { + "cluster_id": "0x0102", + "endpoint_attribute": "window_covering", + "attributes": [ + { + "id": "0x0007", + "name": "config_status", + "zcl_type": "map8", + "value": 3 + }, + { + "id": "0x0008", + "name": "current_position_lift_percentage", + "zcl_type": "uint8", + "value": 0 + }, + { + "id": "0x0009", + "name": "current_position_tilt_percentage", + "zcl_type": "uint8", + "value": 0 + }, + { + "id": "0x0011", + "name": "installed_closed_limit_lift", + "zcl_type": "uint16", + "value": 0 + }, + { + "id": "0x0013", + "name": "installed_closed_limit_tilt", + "zcl_type": "uint16", + "value": 0 + }, + { + "id": "0x0010", + "name": "installed_open_limit_lift", + "zcl_type": "uint16", + "value": 0 + }, + { + "id": "0x0012", + "name": "installed_open_limit_tilt", + "zcl_type": "uint16", + "value": 0 + }, + { + "id": "0x0017", + "name": "window_covering_mode", + "zcl_type": "map8", + "value": 1 + }, + { + "id": "0x0000", + "name": "window_covering_type", + "zcl_type": "enum8", + "value": 1 + } + ] + }, + { + "cluster_id": "0xfcc0", + "endpoint_attribute": "manufacturer_specific", + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x000a", + "endpoint_attribute": "time", + "attributes": [] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [ + { + "id": "0x0002", + "name": "current_file_version", + "zcl_type": "uint32", + "value": 9 + } + ] + } + ] + } + }, + "zha_lib_entities": { + "button": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:a4:d1:4f:84-1-3", + "migrate_unique_ids": [], + "platform": "button", + "class_name": "IdentifyButton", + "translation_key": null, + "translation_placeholders": null, + "device_class": "identify", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:a4:d1:4f:84", + "endpoint_id": 1, + "available": true, + "group_id": null, + "command": "identify", + "args": [ + 5 + ], + "kwargs": {} + }, + "state": { + "class_name": "IdentifyButton", + "available": true + } + } + ], + "cover": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:a4:d1:4f:84-1-258", + "migrate_unique_ids": [], + "platform": "cover", + "class_name": "Cover", + "translation_key": "cover", + "translation_placeholders": null, + "device_class": "shade", + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": true, + "device_ieee": "ab:cd:ef:12:a4:d1:4f:84", + "endpoint_id": 1, + "available": true, + "group_id": null + }, + "state": { + "class_name": "Cover", + "available": true, + "current_position": 100, + "current_tilt_position": null, + "state": "open", + "is_opening": false, + "is_closing": false, + "is_closed": false, + "supported_features": 15 + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:a4:d1:4f:84-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:a4:d1:4f:84", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:a4:d1:4f:84-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:a4:d1:4f:84", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:a4:d1:4f:84-1-258-window_covering_type", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "WindowCoveringTypeSensor", + "translation_key": "window_covering_type", + "translation_placeholders": null, + "device_class": "enum", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:a4:d1:4f:84", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "WindowCoveringTypeSensor", + "available": true, + "state": "Rollershade_two_motors" + } + } + ], + "switch": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:a4:d1:4f:84-1-258-inverted", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "WindowCoveringInversionSwitch", + "translation_key": "inverted", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:a4:d1:4f:84", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "config_status", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 0, + "on_value": 1 + }, + "state": { + "class_name": "WindowCoveringInversionSwitch", + "available": true, + "state": false, + "inverted": false + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:a4:d1:4f:84-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:a4:d1:4f:84", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": "0x00000009", + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/aqara-lumi-motion-ac01-0x00000036.json b/tests/data/legacy_devices/aqara-lumi-motion-ac01-0x00000036.json new file mode 100644 index 000000000..4a5196f88 --- /dev/null +++ b/tests/data/legacy_devices/aqara-lumi-motion-ac01-0x00000036.json @@ -0,0 +1,318 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:c8:2f:3e:79", + "nwk": "0x1484", + "manufacturer": "aqara", + "model": "lumi.motion.ac01", + "friendly_manufacturer": "aqara", + "friendly_model": "lumi.motion.ac01", + "name": "aqara lumi.motion.ac01", + "quirk_applied": false, + "quirk_class": "zigpy.device.Device", + "exposes_features": [], + "manufacturer_code": 4660, + "power_source": "Mains", + "lqi": null, + "rssi": null, + "last_seen": "2024-08-07T20:55:22", + "available": true, + "device_type": "EndDevice", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "EndDevice", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 140, + "manufacturer_code": 4660, + "maximum_buffer_size": 108, + "maximum_incoming_transfer_size": 127, + "server_mask": 11264, + "maximum_outgoing_transfer_size": 127, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "undefined_0xfff0", + "id": 65520 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [] + }, + { + "cluster_id": "0x0002", + "endpoint_attribute": "device_temperature", + "attributes": [ + { + "id": "0x0000", + "name": "current_temperature", + "zcl_type": "int16", + "value": 2700 + } + ] + }, + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0406", + "endpoint_attribute": "occupancy", + "attributes": [ + { + "id": "0x0000", + "name": "occupancy", + "zcl_type": "map8", + "value": 1 + } + ] + }, + { + "cluster_id": "0xfcc0", + "endpoint_attribute": "manufacturer_specific", + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [ + { + "id": "0x0002", + "name": "current_file_version", + "zcl_type": "uint32", + "value": 54 + } + ] + } + ] + } + }, + "zha_lib_entities": { + "binary_sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:c8:2f:3e:79-1-1030", + "migrate_unique_ids": [], + "platform": "binary_sensor", + "class_name": "Occupancy", + "translation_key": null, + "translation_placeholders": null, + "device_class": "occupancy", + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": true, + "device_ieee": "ab:cd:ef:12:c8:2f:3e:79", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "occupancy" + }, + "state": { + "class_name": "Occupancy", + "available": true, + "state": true + } + } + ], + "button": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:c8:2f:3e:79-1-3", + "migrate_unique_ids": [], + "platform": "button", + "class_name": "IdentifyButton", + "translation_key": null, + "translation_placeholders": null, + "device_class": "identify", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:c8:2f:3e:79", + "endpoint_id": 1, + "available": true, + "group_id": null, + "command": "identify", + "args": [ + 5 + ], + "kwargs": {} + }, + "state": { + "class_name": "IdentifyButton", + "available": true + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:c8:2f:3e:79-1-64704-reset_no_presence_status", + "migrate_unique_ids": [], + "platform": "button", + "class_name": "NoPresenceStatusResetButton", + "translation_key": "reset_no_presence_status", + "translation_placeholders": null, + "device_class": "restart", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:c8:2f:3e:79", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "reset_no_presence_status", + "attribute_value": 1 + }, + "state": { + "class_name": "NoPresenceStatusResetButton", + "available": true + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:c8:2f:3e:79-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:c8:2f:3e:79", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:c8:2f:3e:79-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:c8:2f:3e:79", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:c8:2f:3e:79-1-2", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "DeviceTemperature", + "translation_key": "device_temperature", + "translation_placeholders": null, + "device_class": "temperature", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:c8:2f:3e:79", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "\u00b0C" + }, + "state": { + "class_name": "DeviceTemperature", + "available": true, + "state": 27.0 + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:c8:2f:3e:79-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:c8:2f:3e:79", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": "0x00000036", + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/aqara-lumi-switch-acn047-0x0000001b.json b/tests/data/legacy_devices/aqara-lumi-switch-acn047-0x0000001b.json new file mode 100644 index 000000000..a2dc342ff --- /dev/null +++ b/tests/data/legacy_devices/aqara-lumi-switch-acn047-0x0000001b.json @@ -0,0 +1,780 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:3a:b1:1a:5d", + "nwk": "0x5C2E", + "manufacturer": "Aqara", + "model": "lumi.switch.acn047", + "friendly_manufacturer": "Aqara", + "friendly_model": "lumi.switch.acn047", + "name": "Aqara lumi.switch.acn047", + "quirk_applied": false, + "quirk_class": "zigpy.device.Device", + "exposes_features": [], + "manufacturer_code": 4447, + "power_source": "Mains", + "lqi": null, + "rssi": null, + "last_seen": "2024-07-31T19:54:39", + "available": true, + "device_type": "Router", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "Router", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 142, + "manufacturer_code": 4447, + "maximum_buffer_size": 82, + "maximum_incoming_transfer_size": 82, + "server_mask": 11264, + "maximum_outgoing_transfer_size": 82, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "ON_OFF_SWITCH", + "id": 0 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0001", + "name": "app_version", + "zcl_type": "uint8", + "value": 27 + }, + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "Aqara" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "lumi.switch.acn047" + }, + { + "id": "0x0000", + "name": "zcl_version", + "zcl_type": "uint8", + "value": 3 + } + ] + }, + { + "cluster_id": "0x0002", + "endpoint_attribute": "device_temperature", + "attributes": [ + { + "id": "0x0000", + "name": "current_temperature", + "zcl_type": "int16", + "unsupported": true + } + ] + }, + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0005", + "endpoint_attribute": "scenes", + "attributes": [] + }, + { + "cluster_id": "0x0006", + "endpoint_attribute": "on_off", + "attributes": [ + { + "id": "0x0000", + "name": "on_off", + "zcl_type": "bool", + "value": 0 + }, + { + "id": "0x4003", + "name": "start_up_on_off", + "zcl_type": "enum8", + "unsupported": true + } + ] + }, + { + "cluster_id": "0x0012", + "endpoint_attribute": "multistate_input", + "attributes": [] + }, + { + "cluster_id": "0x0702", + "endpoint_attribute": "smartenergy_metering", + "attributes": [ + { + "id": "0x0000", + "name": "current_summ_delivered", + "zcl_type": "uint48", + "value": 0 + }, + { + "id": "0x0001", + "name": "current_summ_received", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0100", + "name": "current_tier1_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0102", + "name": "current_tier2_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0104", + "name": "current_tier3_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0106", + "name": "current_tier4_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0108", + "name": "current_tier5_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x010a", + "name": "current_tier6_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0304", + "name": "demand_formatting", + "zcl_type": "map8", + "unsupported": true + }, + { + "id": "0x0302", + "name": "divisor", + "zcl_type": "uint24", + "value": 1000 + }, + { + "id": "0x0400", + "name": "instantaneous_demand", + "zcl_type": "int24", + "unsupported": true + }, + { + "id": "0x0306", + "name": "metering_device_type", + "zcl_type": "map8", + "value": 0 + }, + { + "id": "0x0301", + "name": "multiplier", + "zcl_type": "uint24", + "value": 1 + }, + { + "id": "0x0200", + "name": "status", + "zcl_type": "map8", + "unsupported": true + }, + { + "id": "0x0303", + "name": "summation_formatting", + "zcl_type": "map8", + "value": 35 + }, + { + "id": "0x0300", + "name": "unit_of_measure", + "zcl_type": "enum8", + "value": 0 + } + ] + }, + { + "cluster_id": "0x0b04", + "endpoint_attribute": "electrical_measurement", + "attributes": [ + { + "id": "0x0603", + "name": "ac_current_divisor", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0602", + "name": "ac_current_multiplier", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0300", + "name": "ac_frequency", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0401", + "name": "ac_frequency_divisor", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0302", + "name": "ac_frequency_max", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0400", + "name": "ac_frequency_multiplier", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0605", + "name": "ac_power_divisor", + "zcl_type": "uint16", + "value": 10 + }, + { + "id": "0x0604", + "name": "ac_power_multiplier", + "zcl_type": "uint16", + "value": 1 + }, + { + "id": "0x0601", + "name": "ac_voltage_divisor", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0600", + "name": "ac_voltage_multiplier", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x050b", + "name": "active_power", + "zcl_type": "int16", + "value": 0 + }, + { + "id": "0x050d", + "name": "active_power_max", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x050f", + "name": "apparent_power", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0000", + "name": "measurement_type", + "zcl_type": "map32", + "unsupported": true + }, + { + "id": "0x0403", + "name": "power_divisor", + "zcl_type": "uint32", + "value": 1 + }, + { + "id": "0x0510", + "name": "power_factor", + "zcl_type": "int8", + "unsupported": true + }, + { + "id": "0x0402", + "name": "power_multiplier", + "zcl_type": "uint32", + "value": 1 + }, + { + "id": "0x0508", + "name": "rms_current", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x050a", + "name": "rms_current_max", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0505", + "name": "rms_voltage", + "zcl_type": "uint16", + "value": 0 + }, + { + "id": "0x0507", + "name": "rms_voltage_max", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0304", + "name": "total_active_power", + "zcl_type": "int32", + "value": 0 + } + ] + }, + { + "cluster_id": "0xfcc0", + "endpoint_attribute": "manufacturer_specific", + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x000a", + "endpoint_attribute": "time", + "attributes": [] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [ + { + "id": "0x0002", + "name": "current_file_version", + "zcl_type": "uint32", + "value": 27 + } + ] + } + ] + }, + "2": { + "profile_id": 260, + "device_type": { + "name": "ON_OFF_SWITCH", + "id": 0 + }, + "in_clusters": [ + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0005", + "endpoint_attribute": "scenes", + "attributes": [] + }, + { + "cluster_id": "0x0006", + "endpoint_attribute": "on_off", + "attributes": [ + { + "id": "0x0000", + "name": "on_off", + "zcl_type": "bool", + "value": 0 + }, + { + "id": "0x4003", + "name": "start_up_on_off", + "zcl_type": "enum8", + "unsupported": true + } + ] + }, + { + "cluster_id": "0x0012", + "endpoint_attribute": "multistate_input", + "attributes": [] + }, + { + "cluster_id": "0xfcc0", + "endpoint_attribute": "manufacturer_specific", + "attributes": [] + } + ], + "out_clusters": [] + }, + "21": { + "profile_id": 260, + "device_type": { + "name": "ON_OFF_SWITCH", + "id": 0 + }, + "in_clusters": [ + { + "cluster_id": "0x000c", + "endpoint_attribute": "analog_input", + "attributes": [ + { + "id": "0x0055", + "name": "present_value", + "zcl_type": "single", + "value": 0.0 + } + ] + } + ], + "out_clusters": [] + } + }, + "zha_lib_entities": { + "button": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:3a:b1:1a:5d-1-3", + "migrate_unique_ids": [], + "platform": "button", + "class_name": "IdentifyButton", + "translation_key": null, + "translation_placeholders": null, + "device_class": "identify", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:3a:b1:1a:5d", + "endpoint_id": 1, + "available": true, + "group_id": null, + "command": "identify", + "args": [ + 5 + ], + "kwargs": {} + }, + "state": { + "class_name": "IdentifyButton", + "available": true + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:3a:b1:1a:5d-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:3a:b1:1a:5d", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:3a:b1:1a:5d-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:3a:b1:1a:5d", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:3a:b1:1a:5d-1-1794-summation_delivered", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "SmartEnergySummation", + "translation_key": "summation_delivered", + "translation_placeholders": null, + "device_class": "energy", + "state_class": "total_increasing", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:3a:b1:1a:5d", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 3, + "unit": "kWh" + }, + "state": { + "class_name": "SmartEnergySummation", + "available": true, + "state": 0.0, + "device_type": "Electric Metering", + "zcl_unit_of_measurement": 0 + }, + "extra_state_attributes": [ + "device_type", + "status", + "zcl_unit_of_measurement" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:3a:b1:1a:5d-1-2820", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "ElectricalMeasurementActivePower", + "translation_key": null, + "translation_placeholders": null, + "device_class": "power", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:3a:b1:1a:5d", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 1, + "unit": "W" + }, + "state": { + "class_name": "ElectricalMeasurementActivePower", + "available": true, + "state": 0.0 + }, + "extra_state_attributes": [ + "active_power_max", + "measurement_type" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:3a:b1:1a:5d-1-2820-rms_voltage", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "ElectricalMeasurementRMSVoltage", + "translation_key": null, + "translation_placeholders": null, + "device_class": "voltage", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:3a:b1:1a:5d", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 1, + "unit": "V" + }, + "state": { + "class_name": "ElectricalMeasurementRMSVoltage", + "available": true, + "state": 0.0 + }, + "extra_state_attributes": [ + "measurement_type", + "rms_voltage_max" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:3a:b1:1a:5d-1-2820-total_active_power", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "ElectricalMeasurementTotalActivePower", + "translation_key": "total_active_power", + "translation_placeholders": null, + "device_class": "power", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:3a:b1:1a:5d", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 1, + "unit": "W" + }, + "state": { + "class_name": "ElectricalMeasurementTotalActivePower", + "available": true, + "state": 0.0 + }, + "extra_state_attributes": [ + "active_power_max", + "measurement_type" + ] + } + ], + "switch": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:3a:b1:1a:5d-1-6", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "Switch", + "translation_key": "switch", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:3a:b1:1a:5d", + "endpoint_id": 1, + "available": true, + "group_id": null + }, + "state": { + "class_name": "Switch", + "state": 0, + "available": true + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:3a:b1:1a:5d-2-6", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "Switch", + "translation_key": "switch", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:3a:b1:1a:5d", + "endpoint_id": 2, + "available": true, + "group_id": null + }, + "state": { + "class_name": "Switch", + "state": 0, + "available": true + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:3a:b1:1a:5d-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:3a:b1:1a:5d", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": "0x0000001b", + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/bosch-rbsh-mms-zb-eu.json b/tests/data/legacy_devices/bosch-rbsh-mms-zb-eu.json new file mode 100644 index 000000000..f3ec5f4d4 --- /dev/null +++ b/tests/data/legacy_devices/bosch-rbsh-mms-zb-eu.json @@ -0,0 +1,1315 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:75:e4:96:a5", + "nwk": "0xDF56", + "manufacturer": "Bosch", + "model": "RBSH-MMS-ZB-EU", + "friendly_manufacturer": "Bosch", + "friendly_model": "BMCT-SLZ", + "name": "Bosch BMCT-SLZ", + "quirk_applied": true, + "quirk_class": "zhaquirks.bosch.relay_rbsh-mms-zb-eu:(Bosch / RBSH-MMS-ZB-EU)", + "exposes_features": [], + "manufacturer_code": 4617, + "power_source": "Mains", + "lqi": null, + "rssi": null, + "last_seen": "2023-08-09T15:27:24+00:00", + "available": true, + "device_type": "Router", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "Router", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 142, + "manufacturer_code": 4617, + "maximum_buffer_size": 82, + "maximum_incoming_transfer_size": 82, + "server_mask": 11264, + "maximum_outgoing_transfer_size": 82, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "WINDOW_COVERING_DEVICE", + "id": 514 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0009", + "name": "generic_device_type", + "zcl_type": "enum8", + "value": 255 + }, + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "Bosch" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "RBSH-MMS-ZB-EU" + } + ] + }, + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0005", + "endpoint_attribute": "scenes", + "attributes": [] + }, + { + "cluster_id": "0x0102", + "endpoint_attribute": "window_covering", + "attributes": [ + { + "id": "0x0015", + "name": "acceleration_time_lift", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0007", + "name": "config_status", + "zcl_type": "map8", + "value": 3 + }, + { + "id": "0x0008", + "name": "current_position_lift_percentage", + "zcl_type": "uint8", + "value": 0 + }, + { + "id": "0x0009", + "name": "current_position_tilt_percentage", + "zcl_type": "uint8", + "value": 0 + }, + { + "id": "0x0017", + "name": "window_covering_mode", + "zcl_type": "map8", + "value": 0 + }, + { + "id": "0x0000", + "name": "window_covering_type", + "zcl_type": "enum8", + "value": 8 + } + ] + }, + { + "cluster_id": "0x0702", + "endpoint_attribute": "smartenergy_metering", + "attributes": [ + { + "id": "0x0000", + "name": "current_summ_delivered", + "zcl_type": "uint48", + "value": 0 + }, + { + "id": "0x0100", + "name": "current_tier1_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0102", + "name": "current_tier2_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0104", + "name": "current_tier3_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0106", + "name": "current_tier4_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0108", + "name": "current_tier5_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x010a", + "name": "current_tier6_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0304", + "name": "demand_formatting", + "zcl_type": "map8", + "unsupported": true + }, + { + "id": "0x0302", + "name": "divisor", + "zcl_type": "uint24", + "value": 100 + }, + { + "id": "0x0400", + "name": "instantaneous_demand", + "zcl_type": "int24", + "value": 0 + }, + { + "id": "0x0306", + "name": "metering_device_type", + "zcl_type": "map8", + "value": 0 + }, + { + "id": "0x0301", + "name": "multiplier", + "zcl_type": "uint24", + "value": 1 + }, + { + "id": "0x0200", + "name": "status", + "zcl_type": "map8", + "value": 0 + }, + { + "id": "0x0303", + "name": "summation_formatting", + "zcl_type": "map8", + "value": 42 + }, + { + "id": "0x0300", + "name": "unit_of_measure", + "zcl_type": "enum8", + "value": 0 + } + ] + }, + { + "cluster_id": "0x0b04", + "endpoint_attribute": "electrical_measurement", + "attributes": [ + { + "id": "0x0603", + "name": "ac_current_divisor", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0602", + "name": "ac_current_multiplier", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0300", + "name": "ac_frequency", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0401", + "name": "ac_frequency_divisor", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0302", + "name": "ac_frequency_max", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0400", + "name": "ac_frequency_multiplier", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0605", + "name": "ac_power_divisor", + "zcl_type": "uint16", + "value": 1 + }, + { + "id": "0x0604", + "name": "ac_power_multiplier", + "zcl_type": "uint16", + "value": 1 + }, + { + "id": "0x0601", + "name": "ac_voltage_divisor", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0600", + "name": "ac_voltage_multiplier", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x050b", + "name": "active_power", + "zcl_type": "int16", + "value": 0 + }, + { + "id": "0x050d", + "name": "active_power_max", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x050f", + "name": "apparent_power", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0000", + "name": "measurement_type", + "zcl_type": "map32", + "value": 1 + }, + { + "id": "0x0403", + "name": "power_divisor", + "zcl_type": "uint32", + "unsupported": true + }, + { + "id": "0x0402", + "name": "power_multiplier", + "zcl_type": "uint32", + "unsupported": true + }, + { + "id": "0x0508", + "name": "rms_current", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x050a", + "name": "rms_current_max", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0505", + "name": "rms_voltage", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0507", + "name": "rms_voltage_max", + "zcl_type": "uint16", + "unsupported": true + } + ] + }, + { + "cluster_id": "0x0b05", + "endpoint_attribute": "diagnostic", + "attributes": [] + }, + { + "cluster_id": "0xfca0", + "endpoint_attribute": null, + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x000a", + "endpoint_attribute": "time", + "attributes": [] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [] + } + ] + }, + "2": { + "profile_id": 260, + "device_type": { + "name": "ON_OFF_LIGHT", + "id": 256 + }, + "in_clusters": [ + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0005", + "endpoint_attribute": "scenes", + "attributes": [] + }, + { + "cluster_id": "0x0006", + "endpoint_attribute": "on_off", + "attributes": [ + { + "id": "0x0000", + "name": "on_off", + "zcl_type": "bool", + "value": 0 + }, + { + "id": "0x4003", + "name": "start_up_on_off", + "zcl_type": "enum8", + "value": 0 + } + ] + }, + { + "cluster_id": "0xfca0", + "endpoint_attribute": null, + "attributes": [] + } + ], + "out_clusters": [] + }, + "3": { + "profile_id": 260, + "device_type": { + "name": "ON_OFF_LIGHT", + "id": 256 + }, + "in_clusters": [ + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0005", + "endpoint_attribute": "scenes", + "attributes": [] + }, + { + "cluster_id": "0x0006", + "endpoint_attribute": "on_off", + "attributes": [ + { + "id": "0x0000", + "name": "on_off", + "zcl_type": "bool", + "value": 0 + }, + { + "id": "0x4003", + "name": "start_up_on_off", + "zcl_type": "enum8", + "value": 0 + } + ] + }, + { + "cluster_id": "0xfca0", + "endpoint_attribute": null, + "attributes": [] + } + ], + "out_clusters": [] + } + }, + "zha_lib_entities": { + "button": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:75:e4:96:a5-1-3", + "migrate_unique_ids": [], + "platform": "button", + "class_name": "IdentifyButton", + "translation_key": null, + "translation_placeholders": null, + "device_class": "identify", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:75:e4:96:a5", + "endpoint_id": 1, + "available": true, + "group_id": null, + "command": "identify", + "args": [ + 5 + ], + "kwargs": {} + }, + "state": { + "class_name": "IdentifyButton", + "available": true + } + } + ], + "cover": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:75:e4:96:a5-1-258", + "migrate_unique_ids": [], + "platform": "cover", + "class_name": "Cover", + "translation_key": "cover", + "translation_placeholders": null, + "device_class": "blind", + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:75:e4:96:a5", + "endpoint_id": 1, + "available": true, + "group_id": null + }, + "state": { + "class_name": "Cover", + "available": true, + "current_position": 100, + "current_tilt_position": 100, + "state": "open", + "is_opening": false, + "is_closing": false, + "is_closed": false, + "supported_features": 255 + } + } + ], + "light": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:75:e4:96:a5-2", + "migrate_unique_ids": [], + "platform": "light", + "class_name": "Light", + "translation_key": "light", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:75:e4:96:a5", + "endpoint_id": 2, + "available": true, + "group_id": null, + "effect_list": [ + "off" + ], + "supported_features": 8, + "min_mireds": 153, + "max_mireds": 500 + }, + "state": { + "class_name": "Light", + "available": true, + "on": false, + "brightness": null, + "xy_color": null, + "color_temp": null, + "effect_list": [ + "off" + ], + "effect": "off", + "supported_features": 8, + "color_mode": "onoff", + "supported_color_modes": [ + "onoff" + ], + "off_with_transition": false, + "off_brightness": null + }, + "extra_state_attributes": [ + "off_brightness", + "off_with_transition" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:75:e4:96:a5-3", + "migrate_unique_ids": [], + "platform": "light", + "class_name": "Light", + "translation_key": "light", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:75:e4:96:a5", + "endpoint_id": 3, + "available": true, + "group_id": null, + "effect_list": [ + "off" + ], + "supported_features": 8, + "min_mireds": 153, + "max_mireds": 500 + }, + "state": { + "class_name": "Light", + "available": true, + "on": false, + "brightness": null, + "xy_color": null, + "color_temp": null, + "effect_list": [ + "off" + ], + "effect": "off", + "supported_features": 8, + "color_mode": "onoff", + "supported_color_modes": [ + "onoff" + ], + "off_with_transition": false, + "off_brightness": null + }, + "extra_state_attributes": [ + "off_brightness", + "off_with_transition" + ] + } + ], + "number": [ + { + "info_object": { + "fallback_name": "Long press duration", + "unique_id": "ab:cd:ef:12:75:e4:96:a5-1-calibration_button_hold_time", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "long_press_duration", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:75:e4:96:a5", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "box", + "native_max_value": 2, + "native_min_value": 0.1, + "native_step": 0.1, + "native_unit_of_measurement": "s" + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Closing duration", + "unique_id": "ab:cd:ef:12:75:e4:96:a5-1-calibration_closing_time", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "closing_duration", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:75:e4:96:a5", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "box", + "native_max_value": 90, + "native_min_value": 1, + "native_step": 0.1, + "native_unit_of_measurement": "s" + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Motor start delay", + "unique_id": "ab:cd:ef:12:75:e4:96:a5-1-calibration_motor_start_delay", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "motor_start_delay", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:75:e4:96:a5", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "box", + "native_max_value": 20, + "native_min_value": 0, + "native_step": 0.1, + "native_unit_of_measurement": "s" + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Opening duration", + "unique_id": "ab:cd:ef:12:75:e4:96:a5-1-calibration_opening_time", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "opening_duration", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:75:e4:96:a5", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "box", + "native_max_value": 90, + "native_min_value": 1, + "native_step": 0.1, + "native_unit_of_measurement": "s" + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": null + } + } + ], + "select": [ + { + "info_object": { + "fallback_name": "Device mode", + "unique_id": "ab:cd:ef:12:75:e4:96:a5-1-device_mode", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "ZCLEnumSelectEntity", + "translation_key": "device_mode", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:75:e4:96:a5", + "endpoint_id": 1, + "available": true, + "group_id": null, + "enum": "BoschDeviceMode", + "options": [ + "Disabled", + "Cover", + "Light" + ] + }, + "state": { + "class_name": "ZCLEnumSelectEntity", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Switch type", + "unique_id": "ab:cd:ef:12:75:e4:96:a5-1-switch_type", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "ZCLEnumSelectEntity", + "translation_key": "switch_type", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:75:e4:96:a5", + "endpoint_id": 1, + "available": true, + "group_id": null, + "enum": "BoschSwitchType", + "options": [ + "Button", + "Button key change", + "Rocker switch", + "Rocker switch key change" + ] + }, + "state": { + "class_name": "ZCLEnumSelectEntity", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:75:e4:96:a5-2-6-StartUpOnOff", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "StartupOnOffSelectEntity", + "translation_key": "start_up_on_off", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:75:e4:96:a5", + "endpoint_id": 2, + "available": true, + "group_id": null, + "enum": "StartUpOnOff", + "options": [ + "Off", + "On", + "Toggle", + "PreviousValue" + ] + }, + "state": { + "class_name": "StartupOnOffSelectEntity", + "available": true, + "state": "Off" + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:75:e4:96:a5-3-6-StartUpOnOff", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "StartupOnOffSelectEntity", + "translation_key": "start_up_on_off", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:75:e4:96:a5", + "endpoint_id": 3, + "available": true, + "group_id": null, + "enum": "StartUpOnOff", + "options": [ + "Off", + "On", + "Toggle", + "PreviousValue" + ] + }, + "state": { + "class_name": "StartupOnOffSelectEntity", + "available": true, + "state": "Off" + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:75:e4:96:a5-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:75:e4:96:a5", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:75:e4:96:a5-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:75:e4:96:a5", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:75:e4:96:a5-1-1794", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "SmartEnergyMetering", + "translation_key": "instantaneous_demand", + "translation_placeholders": null, + "device_class": "power", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:75:e4:96:a5", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 1, + "unit": "W" + }, + "state": { + "class_name": "SmartEnergyMetering", + "available": true, + "state": 0.0, + "device_type": "Electric Metering", + "status": "NO_ALARMS", + "zcl_unit_of_measurement": 0 + }, + "extra_state_attributes": [ + "device_type", + "status", + "zcl_unit_of_measurement" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:75:e4:96:a5-1-1794-summation_delivered", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "SmartEnergySummation", + "translation_key": "summation_delivered", + "translation_placeholders": null, + "device_class": "energy", + "state_class": "total_increasing", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:75:e4:96:a5", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 3, + "unit": "kWh" + }, + "state": { + "class_name": "SmartEnergySummation", + "available": true, + "state": 0.0, + "device_type": "Electric Metering", + "status": "NO_ALARMS", + "zcl_unit_of_measurement": 0 + }, + "extra_state_attributes": [ + "device_type", + "status", + "zcl_unit_of_measurement" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:75:e4:96:a5-1-258-window_covering_type", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "WindowCoveringTypeSensor", + "translation_key": "window_covering_type", + "translation_placeholders": null, + "device_class": "enum", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:75:e4:96:a5", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "WindowCoveringTypeSensor", + "available": true, + "state": "Tilt_blind_tilt_and_lift" + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:75:e4:96:a5-1-2820", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "ElectricalMeasurementActivePower", + "translation_key": null, + "translation_placeholders": null, + "device_class": "power", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:75:e4:96:a5", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 1, + "unit": "W" + }, + "state": { + "class_name": "ElectricalMeasurementActivePower", + "available": true, + "state": 0.0, + "measurement_type": "ACTIVE_MEASUREMENT" + }, + "extra_state_attributes": [ + "active_power_max", + "measurement_type" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:75:e4:96:a5-1-2820-power_factor", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "ElectricalMeasurementPowerFactor", + "translation_key": null, + "translation_placeholders": null, + "device_class": "power_factor", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:75:e4:96:a5", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 1, + "unit": "%" + }, + "state": { + "class_name": "ElectricalMeasurementPowerFactor", + "available": true, + "state": null, + "measurement_type": "ACTIVE_MEASUREMENT" + }, + "extra_state_attributes": [ + "measurement_type" + ] + }, + { + "info_object": { + "fallback_name": "Motor state", + "unique_id": "ab:cd:ef:12:75:e4:96:a5-1-motor_state", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Sensor", + "translation_key": "motor_state", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:75:e4:96:a5", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "Sensor", + "available": true, + "state": null + } + } + ], + "switch": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:75:e4:96:a5-1-258-inverted", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "WindowCoveringInversionSwitch", + "translation_key": "inverted", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:75:e4:96:a5", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "config_status", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 0, + "on_value": 1 + }, + "state": { + "class_name": "WindowCoveringInversionSwitch", + "available": true, + "state": false, + "inverted": false + } + }, + { + "info_object": { + "fallback_name": "Child lock", + "unique_id": "ab:cd:ef:12:75:e4:96:a5-1-child_lock", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "ConfigurableAttributeSwitch", + "translation_key": "child_lock", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:75:e4:96:a5", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "child_lock", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 0, + "on_value": 1 + }, + "state": { + "class_name": "ConfigurableAttributeSwitch", + "available": true, + "state": false, + "inverted": false + } + }, + { + "info_object": { + "fallback_name": "Child lock", + "unique_id": "ab:cd:ef:12:75:e4:96:a5-2-child_lock", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "ConfigurableAttributeSwitch", + "translation_key": "child_lock", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:75:e4:96:a5", + "endpoint_id": 2, + "available": true, + "group_id": null, + "attribute_name": "child_lock", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 0, + "on_value": 1 + }, + "state": { + "class_name": "ConfigurableAttributeSwitch", + "available": true, + "state": false, + "inverted": false + } + }, + { + "info_object": { + "fallback_name": "Child lock", + "unique_id": "ab:cd:ef:12:75:e4:96:a5-3-child_lock", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "ConfigurableAttributeSwitch", + "translation_key": "child_lock", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:75:e4:96:a5", + "endpoint_id": 3, + "available": true, + "group_id": null, + "attribute_name": "child_lock", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 0, + "on_value": 1 + }, + "state": { + "class_name": "ConfigurableAttributeSwitch", + "available": true, + "state": false, + "inverted": false + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:75:e4:96:a5-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:75:e4:96:a5", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": null, + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/bosch-rbsh-rth0-bat-zb-eu.json b/tests/data/legacy_devices/bosch-rbsh-rth0-bat-zb-eu.json new file mode 100644 index 000000000..b1d836eba --- /dev/null +++ b/tests/data/legacy_devices/bosch-rbsh-rth0-bat-zb-eu.json @@ -0,0 +1,1242 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:e1:24:c2:fc", + "nwk": "0x8E19", + "manufacturer": "Bosch", + "model": "RBSH-RTH0-BAT-ZB-EU", + "friendly_manufacturer": "Bosch", + "friendly_model": "RBSH-RTH0-BAT-ZB-EU", + "name": "Bosch RBSH-RTH0-BAT-ZB-EU", + "quirk_applied": true, + "quirk_class": "zhaquirks.bosch.rbsh_rth0_zb_eu:(Bosch / RBSH-RTH0-ZB-EU)", + "exposes_features": [], + "manufacturer_code": 4617, + "power_source": "Battery or Unknown", + "lqi": null, + "rssi": null, + "last_seen": "2023-09-06T14:06:02+00:00", + "available": true, + "device_type": "EndDevice", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "EndDevice", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 128, + "manufacturer_code": 4617, + "maximum_buffer_size": 82, + "maximum_incoming_transfer_size": 255, + "server_mask": 11264, + "maximum_outgoing_transfer_size": 255, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "THERMOSTAT", + "id": 769 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "Bosch" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "RBSH-RTH0-BAT-ZB-EU" + } + ] + }, + { + "cluster_id": "0x0001", + "endpoint_attribute": "power", + "attributes": [ + { + "id": "0x003e", + "name": "battery_alarm_state", + "zcl_type": "map32", + "value": 0 + }, + { + "id": "0x0021", + "name": "battery_percentage_remaining", + "zcl_type": "uint8", + "unsupported": true + }, + { + "id": "0x0033", + "name": "battery_quantity", + "zcl_type": "uint8", + "unsupported": true + }, + { + "id": "0x0031", + "name": "battery_size", + "zcl_type": "enum8", + "unsupported": true + }, + { + "id": "0x0020", + "name": "battery_voltage", + "zcl_type": "uint8", + "value": 60 + } + ] + }, + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0020", + "endpoint_attribute": "poll_control", + "attributes": [ + { + "id": "0x0000", + "name": "checkin_interval", + "zcl_type": "uint32", + "value": 13200 + } + ] + }, + { + "cluster_id": "0x0201", + "endpoint_attribute": "thermostat", + "attributes": [ + { + "id": "0x0006", + "name": "abs_max_cool_setpoint_limit", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x0004", + "name": "abs_max_heat_setpoint_limit", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x0005", + "name": "abs_min_cool_setpoint_limit", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x0003", + "name": "abs_min_heat_setpoint_limit", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x001b", + "name": "ctrl_sequence_of_oper", + "zcl_type": "enum8", + "value": 6 + }, + { + "id": "0x0000", + "name": "local_temperature", + "zcl_type": "int16", + "value": 2310 + }, + { + "id": "0x0018", + "name": "max_cool_setpoint_limit", + "zcl_type": "int16", + "value": 3000 + }, + { + "id": "0x0016", + "name": "max_heat_setpoint_limit", + "zcl_type": "int16", + "value": 3000 + }, + { + "id": "0x0017", + "name": "min_cool_setpoint_limit", + "zcl_type": "int16", + "value": 500 + }, + { + "id": "0x0015", + "name": "min_heat_setpoint_limit", + "zcl_type": "int16", + "value": 500 + }, + { + "id": "0x0002", + "name": "occupancy", + "zcl_type": "map8", + "value": 0 + }, + { + "id": "0x0011", + "name": "occupied_cooling_setpoint", + "zcl_type": "int16", + "value": 2300 + }, + { + "id": "0x0012", + "name": "occupied_heating_setpoint", + "zcl_type": "int16", + "value": 1450 + }, + { + "id": "0x0007", + "name": "pi_cooling_demand", + "zcl_type": "uint8", + "unsupported": true + }, + { + "id": "0x0008", + "name": "pi_heating_demand", + "zcl_type": "uint8", + "unsupported": true + }, + { + "id": "0x001e", + "name": "running_mode", + "zcl_type": "enum8", + "unsupported": true + }, + { + "id": "0x0029", + "name": "running_state", + "zcl_type": "map16", + "value": 0 + }, + { + "id": "0x0030", + "name": "setpoint_change_source", + "zcl_type": "enum8", + "value": 0 + }, + { + "id": "0x001c", + "name": "system_mode", + "zcl_type": "enum8", + "value": 4 + }, + { + "id": "0x0013", + "name": "unoccupied_cooling_setpoint", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x0014", + "name": "unoccupied_heating_setpoint", + "zcl_type": "int16", + "unsupported": true + } + ] + }, + { + "cluster_id": "0x0204", + "endpoint_attribute": "thermostat_ui", + "attributes": [] + }, + { + "cluster_id": "0x0405", + "endpoint_attribute": "humidity", + "attributes": [ + { + "id": "0x0000", + "name": "measured_value", + "zcl_type": "uint16", + "value": 5458 + } + ] + }, + { + "cluster_id": "0x0b05", + "endpoint_attribute": "diagnostic", + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x000a", + "endpoint_attribute": "time", + "attributes": [] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [] + } + ] + } + }, + "zha_lib_entities": { + "binary_sensor": [ + { + "info_object": { + "fallback_name": "Valve state", + "unique_id": "ab:cd:ef:12:e1:24:c2:fc-1-valve_state", + "migrate_unique_ids": [], + "platform": "binary_sensor", + "class_name": "BinarySensor", + "translation_key": "valve_state", + "translation_placeholders": null, + "device_class": "running", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:e1:24:c2:fc", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "valve_state" + }, + "state": { + "class_name": "BinarySensor", + "available": true, + "state": false + } + } + ], + "button": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:e1:24:c2:fc-1-3", + "migrate_unique_ids": [], + "platform": "button", + "class_name": "IdentifyButton", + "translation_key": null, + "translation_placeholders": null, + "device_class": "identify", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:e1:24:c2:fc", + "endpoint_id": 1, + "available": true, + "group_id": null, + "command": "identify", + "args": [ + 5 + ], + "kwargs": {} + }, + "state": { + "class_name": "IdentifyButton", + "available": true + } + } + ], + "climate": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:e1:24:c2:fc-1", + "migrate_unique_ids": [], + "platform": "climate", + "class_name": "Thermostat", + "translation_key": "thermostat", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": true, + "device_ieee": "ab:cd:ef:12:e1:24:c2:fc", + "endpoint_id": 1, + "available": true, + "group_id": null, + "max_temp": 30.0, + "min_temp": 5.0, + "supported_features": 385, + "fan_modes": null, + "preset_modes": [], + "hvac_modes": [ + "cool", + "heat", + "off" + ] + }, + "state": { + "class_name": "Thermostat", + "available": true, + "current_temperature": 23.1, + "outdoor_temperature": null, + "target_temperature": 14.5, + "target_temperature_high": null, + "target_temperature_low": null, + "hvac_action": "idle", + "hvac_mode": "heat", + "preset_mode": "none", + "fan_mode": "auto", + "system_mode": "[4]/heat", + "occupancy": 0, + "occupied_cooling_setpoint": 2300, + "occupied_heating_setpoint": 1450, + "pi_heating_demand": null, + "pi_cooling_demand": null, + "unoccupied_cooling_setpoint": null, + "unoccupied_heating_setpoint": null + }, + "extra_state_attributes": [ + "occupancy", + "occupied_cooling_setpoint", + "occupied_heating_setpoint", + "pi_cooling_demand", + "pi_heating_demand", + "system_mode", + "unoccupied_cooling_setpoint", + "unoccupied_heating_setpoint" + ] + } + ], + "number": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:e1:24:c2:fc-1-513-max_heat_setpoint_limit", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "MaxHeatSetpointLimit", + "translation_key": "max_heat_setpoint_limit", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:e1:24:c2:fc", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "box", + "native_max_value": 327.67, + "native_min_value": 5.0, + "native_step": 0.5, + "native_unit_of_measurement": "\u00b0C" + }, + "state": { + "class_name": "MaxHeatSetpointLimit", + "available": true, + "state": 30.0 + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:e1:24:c2:fc-1-513-min_heat_setpoint_limit", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "MinHeatSetpointLimit", + "translation_key": "min_heat_setpoint_limit", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:e1:24:c2:fc", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "box", + "native_max_value": 30.0, + "native_min_value": -273.15000000000003, + "native_step": 0.5, + "native_unit_of_measurement": "\u00b0C" + }, + "state": { + "class_name": "MinHeatSetpointLimit", + "available": true, + "state": 5.0 + } + }, + { + "info_object": { + "fallback_name": "Display brightness", + "unique_id": "ab:cd:ef:12:e1:24:c2:fc-1-display_brightness", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "display_brightness", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:e1:24:c2:fc", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 10, + "native_min_value": 0, + "native_step": 1, + "native_unit_of_measurement": null + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Display on-time", + "unique_id": "ab:cd:ef:12:e1:24:c2:fc-1-display_on_time", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "display_on_time", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:e1:24:c2:fc", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 30, + "native_min_value": 5, + "native_step": 1, + "native_unit_of_measurement": null + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Max cool setpoint limit", + "unique_id": "ab:cd:ef:12:e1:24:c2:fc-1-max_cool_setpoint_limit", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "max_cool_setpoint_limit", + "translation_placeholders": null, + "device_class": "temperature", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:e1:24:c2:fc", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 3000, + "native_min_value": -500, + "native_step": 0.5, + "native_unit_of_measurement": "\u00b0C" + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": 30.0 + } + }, + { + "info_object": { + "fallback_name": "Min cool setpoint limit", + "unique_id": "ab:cd:ef:12:e1:24:c2:fc-1-min_cool_setpoint_limit", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "min_cool_setpoint_limit", + "translation_placeholders": null, + "device_class": "temperature", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:e1:24:c2:fc", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 3000, + "native_min_value": -500, + "native_step": 0.5, + "native_unit_of_measurement": "\u00b0C" + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": 5.0 + } + }, + { + "info_object": { + "fallback_name": "Outdoor temperature", + "unique_id": "ab:cd:ef:12:e1:24:c2:fc-1-outdoor_temperature", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "outdoor_temperature", + "translation_placeholders": null, + "device_class": "temperature", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:e1:24:c2:fc", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 32767, + "native_min_value": -32768, + "native_step": 0.1, + "native_unit_of_measurement": "\u00b0C" + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": null + } + } + ], + "select": [ + { + "info_object": { + "fallback_name": "Actuator type", + "unique_id": "ab:cd:ef:12:e1:24:c2:fc-1-actuator_type", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "ZCLEnumSelectEntity", + "translation_key": "actuator_type", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:e1:24:c2:fc", + "endpoint_id": 1, + "available": true, + "group_id": null, + "enum": "BoschActuatorType", + "options": [ + "NormallyClosed", + "NormallyOpen" + ] + }, + "state": { + "class_name": "ZCLEnumSelectEntity", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Heater type", + "unique_id": "ab:cd:ef:12:e1:24:c2:fc-1-heater_type", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "ZCLEnumSelectEntity", + "translation_key": "heater_type", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:e1:24:c2:fc", + "endpoint_id": 1, + "available": true, + "group_id": null, + "enum": "BoschHeaterType", + "options": [ + "UnderfloorHeating", + "Boiler", + "Radiator", + "CentralHeating" + ] + }, + "state": { + "class_name": "ZCLEnumSelectEntity", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Operating mode", + "unique_id": "ab:cd:ef:12:e1:24:c2:fc-1-operating_mode", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "ZCLEnumSelectEntity", + "translation_key": "operating_mode", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:e1:24:c2:fc", + "endpoint_id": 1, + "available": true, + "group_id": null, + "enum": "BoschOperatingMode", + "options": [ + "Schedule", + "Manual", + "Pause" + ] + }, + "state": { + "class_name": "ZCLEnumSelectEntity", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Sensor connection", + "unique_id": "ab:cd:ef:12:e1:24:c2:fc-1-sensor_connection", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "ZCLEnumSelectEntity", + "translation_key": "sensor_connection", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:e1:24:c2:fc", + "endpoint_id": 1, + "available": true, + "group_id": null, + "enum": "BoschSensorConnection", + "options": [ + "NotUsed", + "WithoutRegulation", + "WithRegulation" + ] + }, + "state": { + "class_name": "ZCLEnumSelectEntity", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Temperature display mode", + "unique_id": "ab:cd:ef:12:e1:24:c2:fc-1-temperature_display_mode", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "ZCLEnumSelectEntity", + "translation_key": "temperature_display_mode", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:e1:24:c2:fc", + "endpoint_id": 1, + "available": true, + "group_id": null, + "enum": "TemperatureDisplayMode", + "options": [ + "Metric", + "Imperial" + ] + }, + "state": { + "class_name": "ZCLEnumSelectEntity", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Valve status LED", + "unique_id": "ab:cd:ef:12:e1:24:c2:fc-1-valve_status_led", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "ZCLEnumSelectEntity", + "translation_key": "valve_status_led", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:e1:24:c2:fc", + "endpoint_id": 1, + "available": true, + "group_id": null, + "enum": "BoschValveStatusLed", + "options": [ + "Off", + "Normal", + "On" + ] + }, + "state": { + "class_name": "ZCLEnumSelectEntity", + "available": true, + "state": null + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:e1:24:c2:fc-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:e1:24:c2:fc", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:e1:24:c2:fc-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:e1:24:c2:fc", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:e1:24:c2:fc-1-1", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Battery", + "translation_key": null, + "translation_placeholders": null, + "device_class": "battery", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:e1:24:c2:fc", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 0, + "unit": "%" + }, + "state": { + "class_name": "Battery", + "available": true, + "state": null, + "battery_voltage": 6.0 + }, + "extra_state_attributes": [ + "battery_quantity", + "battery_size", + "battery_voltage" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:e1:24:c2:fc-1-1029", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Humidity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "humidity", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:e1:24:c2:fc", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "%" + }, + "state": { + "class_name": "Humidity", + "available": true, + "state": 54.58 + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:e1:24:c2:fc-1-513-hvac_action", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "ThermostatHVACAction", + "translation_key": "hvac_action", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:e1:24:c2:fc", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "ThermostatHVACAction", + "available": true, + "state": "idle" + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:e1:24:c2:fc-1-513-setpoint_change_source", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "SetpointChangeSource", + "translation_key": "setpoint_change_source", + "translation_placeholders": null, + "device_class": "enum", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:e1:24:c2:fc", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "SetpointChangeSource", + "available": true, + "state": "Manual" + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:e1:24:c2:fc-1-513-setpoint_change_source_timestamp", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "SetpointChangeSourceTimestamp", + "translation_key": "setpoint_change_source_timestamp", + "translation_placeholders": null, + "device_class": "timestamp", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:e1:24:c2:fc", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "SetpointChangeSourceTimestamp", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Error code", + "unique_id": "ab:cd:ef:12:e1:24:c2:fc-1-error_code", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Sensor", + "translation_key": "error_code", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:e1:24:c2:fc", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "Sensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "External temperature", + "unique_id": "ab:cd:ef:12:e1:24:c2:fc-1-external_temperature", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Sensor", + "translation_key": "external_temperature", + "translation_placeholders": null, + "device_class": "temperature", + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:e1:24:c2:fc", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "\u00b0C" + }, + "state": { + "class_name": "Sensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Heating demand", + "unique_id": "ab:cd:ef:12:e1:24:c2:fc-1-heating_demand", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Sensor", + "translation_key": "heating_demand", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:e1:24:c2:fc", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "%" + }, + "state": { + "class_name": "Sensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Local temperature", + "unique_id": "ab:cd:ef:12:e1:24:c2:fc-1-local_temperature", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Sensor", + "translation_key": "local_temperature", + "translation_placeholders": null, + "device_class": "temperature", + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:e1:24:c2:fc", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "\u00b0C" + }, + "state": { + "class_name": "Sensor", + "available": true, + "state": 23.1 + } + } + ], + "switch": [ + { + "info_object": { + "fallback_name": "Boost heating", + "unique_id": "ab:cd:ef:12:e1:24:c2:fc-1-boost_heating", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "ConfigurableAttributeSwitch", + "translation_key": "boost_heating", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:e1:24:c2:fc", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "boost_heating", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 0, + "on_value": 1 + }, + "state": { + "class_name": "ConfigurableAttributeSwitch", + "available": true, + "state": false, + "inverted": false + } + }, + { + "info_object": { + "fallback_name": "Window open", + "unique_id": "ab:cd:ef:12:e1:24:c2:fc-1-window_open", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "ConfigurableAttributeSwitch", + "translation_key": "window_open", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:e1:24:c2:fc", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "window_open", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 0, + "on_value": 1 + }, + "state": { + "class_name": "ConfigurableAttributeSwitch", + "available": true, + "state": false, + "inverted": false + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:e1:24:c2:fc-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:e1:24:c2:fc", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": null, + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/bosch-rbsh-rth0-zb-eu.json b/tests/data/legacy_devices/bosch-rbsh-rth0-zb-eu.json new file mode 100644 index 000000000..f8692b8a4 --- /dev/null +++ b/tests/data/legacy_devices/bosch-rbsh-rth0-zb-eu.json @@ -0,0 +1,1198 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:28:a4:a4:f2", + "nwk": "0x554D", + "manufacturer": "Bosch", + "model": "RBSH-RTH0-ZB-EU", + "friendly_manufacturer": "Bosch", + "friendly_model": "RBSH-RTH0-ZB-EU", + "name": "Bosch RBSH-RTH0-ZB-EU", + "quirk_applied": true, + "quirk_class": "zhaquirks.bosch.rbsh_rth0_zb_eu:(Bosch / RBSH-RTH0-ZB-EU)", + "exposes_features": [], + "manufacturer_code": 4617, + "power_source": "Mains", + "lqi": null, + "rssi": null, + "last_seen": "2023-11-07T14:42:08+00:00", + "available": true, + "device_type": "Router", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "Router", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 142, + "manufacturer_code": 4617, + "maximum_buffer_size": 82, + "maximum_incoming_transfer_size": 255, + "server_mask": 11264, + "maximum_outgoing_transfer_size": 255, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "THERMOSTAT", + "id": 769 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0014", + "name": "disable_local_config", + "zcl_type": "map8", + "unsupported": true + }, + { + "id": "0x0003", + "name": "hw_version", + "zcl_type": "uint8", + "value": 0 + }, + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "Bosch" + }, + { + "id": "0x000c", + "name": "manufacturer_version_details", + "zcl_type": "string", + "unsupported": true + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "RBSH-RTH0-ZB-EU" + } + ] + }, + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [ + { + "id": "0xfffd", + "name": "cluster_revision", + "zcl_type": "uint16", + "value": 2 + } + ] + }, + { + "cluster_id": "0x0201", + "endpoint_attribute": "thermostat", + "attributes": [ + { + "id": "0x0006", + "name": "abs_max_cool_setpoint_limit", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x0004", + "name": "abs_max_heat_setpoint_limit", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x0005", + "name": "abs_min_cool_setpoint_limit", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x0003", + "name": "abs_min_heat_setpoint_limit", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x001b", + "name": "ctrl_sequence_of_oper", + "zcl_type": "enum8", + "value": 6 + }, + { + "id": "0x0000", + "name": "local_temperature", + "zcl_type": "int16", + "value": 2310 + }, + { + "id": "0x0018", + "name": "max_cool_setpoint_limit", + "zcl_type": "int16", + "value": 3000 + }, + { + "id": "0x0016", + "name": "max_heat_setpoint_limit", + "zcl_type": "int16", + "value": 3000 + }, + { + "id": "0x0017", + "name": "min_cool_setpoint_limit", + "zcl_type": "int16", + "value": 500 + }, + { + "id": "0x0015", + "name": "min_heat_setpoint_limit", + "zcl_type": "int16", + "value": 500 + }, + { + "id": "0x0002", + "name": "occupancy", + "zcl_type": "map8", + "value": 0 + }, + { + "id": "0x0011", + "name": "occupied_cooling_setpoint", + "zcl_type": "int16", + "value": 2400 + }, + { + "id": "0x0012", + "name": "occupied_heating_setpoint", + "zcl_type": "int16", + "value": 1800 + }, + { + "id": "0x0007", + "name": "pi_cooling_demand", + "zcl_type": "uint8", + "unsupported": true + }, + { + "id": "0x0008", + "name": "pi_heating_demand", + "zcl_type": "uint8", + "unsupported": true + }, + { + "id": "0x001e", + "name": "running_mode", + "zcl_type": "enum8", + "unsupported": true + }, + { + "id": "0x0029", + "name": "running_state", + "zcl_type": "map16", + "value": 0 + }, + { + "id": "0x0030", + "name": "setpoint_change_source", + "zcl_type": "enum8", + "value": 2 + }, + { + "id": "0x001c", + "name": "system_mode", + "zcl_type": "enum8", + "value": 3 + }, + { + "id": "0x0013", + "name": "unoccupied_cooling_setpoint", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x0014", + "name": "unoccupied_heating_setpoint", + "zcl_type": "int16", + "unsupported": true + } + ] + }, + { + "cluster_id": "0x0204", + "endpoint_attribute": "thermostat_ui", + "attributes": [] + }, + { + "cluster_id": "0x0405", + "endpoint_attribute": "humidity", + "attributes": [ + { + "id": "0x0000", + "name": "measured_value", + "zcl_type": "uint16", + "value": 5667 + } + ] + }, + { + "cluster_id": "0x0b05", + "endpoint_attribute": "diagnostic", + "attributes": [ + { + "id": "0xfffd", + "name": "cluster_revision", + "zcl_type": "uint16", + "value": 3 + }, + { + "id": "0x0000", + "name": "number_of_resets", + "zcl_type": "uint16", + "unsupported": true + } + ] + } + ], + "out_clusters": [ + { + "cluster_id": "0x000a", + "endpoint_attribute": "time", + "attributes": [] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [] + } + ] + } + }, + "zha_lib_entities": { + "binary_sensor": [ + { + "info_object": { + "fallback_name": "Valve state", + "unique_id": "ab:cd:ef:12:28:a4:a4:f2-1-valve_state", + "migrate_unique_ids": [], + "platform": "binary_sensor", + "class_name": "BinarySensor", + "translation_key": "valve_state", + "translation_placeholders": null, + "device_class": "running", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:28:a4:a4:f2", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "valve_state" + }, + "state": { + "class_name": "BinarySensor", + "available": true, + "state": false + } + } + ], + "button": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:28:a4:a4:f2-1-3", + "migrate_unique_ids": [], + "platform": "button", + "class_name": "IdentifyButton", + "translation_key": null, + "translation_placeholders": null, + "device_class": "identify", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:28:a4:a4:f2", + "endpoint_id": 1, + "available": true, + "group_id": null, + "command": "identify", + "args": [ + 5 + ], + "kwargs": {} + }, + "state": { + "class_name": "IdentifyButton", + "available": true + } + } + ], + "climate": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:28:a4:a4:f2-1", + "migrate_unique_ids": [], + "platform": "climate", + "class_name": "Thermostat", + "translation_key": "thermostat", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": true, + "device_ieee": "ab:cd:ef:12:28:a4:a4:f2", + "endpoint_id": 1, + "available": true, + "group_id": null, + "max_temp": 30.0, + "min_temp": 5.0, + "supported_features": 385, + "fan_modes": null, + "preset_modes": [], + "hvac_modes": [ + "cool", + "heat", + "off" + ] + }, + "state": { + "class_name": "Thermostat", + "available": true, + "current_temperature": 23.1, + "outdoor_temperature": null, + "target_temperature": 24.0, + "target_temperature_high": null, + "target_temperature_low": null, + "hvac_action": "idle", + "hvac_mode": "cool", + "preset_mode": "none", + "fan_mode": "auto", + "system_mode": "[3]/cool", + "occupancy": 0, + "occupied_cooling_setpoint": 2400, + "occupied_heating_setpoint": 1800, + "pi_heating_demand": null, + "pi_cooling_demand": null, + "unoccupied_cooling_setpoint": null, + "unoccupied_heating_setpoint": null + }, + "extra_state_attributes": [ + "occupancy", + "occupied_cooling_setpoint", + "occupied_heating_setpoint", + "pi_cooling_demand", + "pi_heating_demand", + "system_mode", + "unoccupied_cooling_setpoint", + "unoccupied_heating_setpoint" + ] + } + ], + "number": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:28:a4:a4:f2-1-513-max_heat_setpoint_limit", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "MaxHeatSetpointLimit", + "translation_key": "max_heat_setpoint_limit", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:28:a4:a4:f2", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "box", + "native_max_value": 327.67, + "native_min_value": 5.0, + "native_step": 0.5, + "native_unit_of_measurement": "\u00b0C" + }, + "state": { + "class_name": "MaxHeatSetpointLimit", + "available": true, + "state": 30.0 + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:28:a4:a4:f2-1-513-min_heat_setpoint_limit", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "MinHeatSetpointLimit", + "translation_key": "min_heat_setpoint_limit", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:28:a4:a4:f2", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "box", + "native_max_value": 30.0, + "native_min_value": -273.15000000000003, + "native_step": 0.5, + "native_unit_of_measurement": "\u00b0C" + }, + "state": { + "class_name": "MinHeatSetpointLimit", + "available": true, + "state": 5.0 + } + }, + { + "info_object": { + "fallback_name": "Display brightness", + "unique_id": "ab:cd:ef:12:28:a4:a4:f2-1-display_brightness", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "display_brightness", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:28:a4:a4:f2", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 10, + "native_min_value": 0, + "native_step": 1, + "native_unit_of_measurement": null + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Display on-time", + "unique_id": "ab:cd:ef:12:28:a4:a4:f2-1-display_on_time", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "display_on_time", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:28:a4:a4:f2", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 30, + "native_min_value": 5, + "native_step": 1, + "native_unit_of_measurement": null + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Max cool setpoint limit", + "unique_id": "ab:cd:ef:12:28:a4:a4:f2-1-max_cool_setpoint_limit", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "max_cool_setpoint_limit", + "translation_placeholders": null, + "device_class": "temperature", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:28:a4:a4:f2", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 3000, + "native_min_value": -500, + "native_step": 0.5, + "native_unit_of_measurement": "\u00b0C" + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": 30.0 + } + }, + { + "info_object": { + "fallback_name": "Min cool setpoint limit", + "unique_id": "ab:cd:ef:12:28:a4:a4:f2-1-min_cool_setpoint_limit", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "min_cool_setpoint_limit", + "translation_placeholders": null, + "device_class": "temperature", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:28:a4:a4:f2", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 3000, + "native_min_value": -500, + "native_step": 0.5, + "native_unit_of_measurement": "\u00b0C" + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": 5.0 + } + }, + { + "info_object": { + "fallback_name": "Outdoor temperature", + "unique_id": "ab:cd:ef:12:28:a4:a4:f2-1-outdoor_temperature", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "outdoor_temperature", + "translation_placeholders": null, + "device_class": "temperature", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:28:a4:a4:f2", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 32767, + "native_min_value": -32768, + "native_step": 0.1, + "native_unit_of_measurement": "\u00b0C" + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": null + } + } + ], + "select": [ + { + "info_object": { + "fallback_name": "Actuator type", + "unique_id": "ab:cd:ef:12:28:a4:a4:f2-1-actuator_type", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "ZCLEnumSelectEntity", + "translation_key": "actuator_type", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:28:a4:a4:f2", + "endpoint_id": 1, + "available": true, + "group_id": null, + "enum": "BoschActuatorType", + "options": [ + "NormallyClosed", + "NormallyOpen" + ] + }, + "state": { + "class_name": "ZCLEnumSelectEntity", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Heater type", + "unique_id": "ab:cd:ef:12:28:a4:a4:f2-1-heater_type", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "ZCLEnumSelectEntity", + "translation_key": "heater_type", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:28:a4:a4:f2", + "endpoint_id": 1, + "available": true, + "group_id": null, + "enum": "BoschHeaterType", + "options": [ + "UnderfloorHeating", + "Boiler", + "Radiator", + "CentralHeating" + ] + }, + "state": { + "class_name": "ZCLEnumSelectEntity", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Operating mode", + "unique_id": "ab:cd:ef:12:28:a4:a4:f2-1-operating_mode", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "ZCLEnumSelectEntity", + "translation_key": "operating_mode", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:28:a4:a4:f2", + "endpoint_id": 1, + "available": true, + "group_id": null, + "enum": "BoschOperatingMode", + "options": [ + "Schedule", + "Manual", + "Pause" + ] + }, + "state": { + "class_name": "ZCLEnumSelectEntity", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Sensor connection", + "unique_id": "ab:cd:ef:12:28:a4:a4:f2-1-sensor_connection", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "ZCLEnumSelectEntity", + "translation_key": "sensor_connection", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:28:a4:a4:f2", + "endpoint_id": 1, + "available": true, + "group_id": null, + "enum": "BoschSensorConnection", + "options": [ + "NotUsed", + "WithoutRegulation", + "WithRegulation" + ] + }, + "state": { + "class_name": "ZCLEnumSelectEntity", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Temperature display mode", + "unique_id": "ab:cd:ef:12:28:a4:a4:f2-1-temperature_display_mode", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "ZCLEnumSelectEntity", + "translation_key": "temperature_display_mode", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:28:a4:a4:f2", + "endpoint_id": 1, + "available": true, + "group_id": null, + "enum": "TemperatureDisplayMode", + "options": [ + "Metric", + "Imperial" + ] + }, + "state": { + "class_name": "ZCLEnumSelectEntity", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Valve status LED", + "unique_id": "ab:cd:ef:12:28:a4:a4:f2-1-valve_status_led", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "ZCLEnumSelectEntity", + "translation_key": "valve_status_led", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:28:a4:a4:f2", + "endpoint_id": 1, + "available": true, + "group_id": null, + "enum": "BoschValveStatusLed", + "options": [ + "Off", + "Normal", + "On" + ] + }, + "state": { + "class_name": "ZCLEnumSelectEntity", + "available": true, + "state": null + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:28:a4:a4:f2-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:28:a4:a4:f2", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:28:a4:a4:f2-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:28:a4:a4:f2", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:28:a4:a4:f2-1-1029", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Humidity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "humidity", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:28:a4:a4:f2", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "%" + }, + "state": { + "class_name": "Humidity", + "available": true, + "state": 56.67 + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:28:a4:a4:f2-1-513-hvac_action", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "ThermostatHVACAction", + "translation_key": "hvac_action", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:28:a4:a4:f2", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "ThermostatHVACAction", + "available": true, + "state": "idle" + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:28:a4:a4:f2-1-513-setpoint_change_source", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "SetpointChangeSource", + "translation_key": "setpoint_change_source", + "translation_placeholders": null, + "device_class": "enum", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:28:a4:a4:f2", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "SetpointChangeSource", + "available": true, + "state": "External" + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:28:a4:a4:f2-1-513-setpoint_change_source_timestamp", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "SetpointChangeSourceTimestamp", + "translation_key": "setpoint_change_source_timestamp", + "translation_placeholders": null, + "device_class": "timestamp", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:28:a4:a4:f2", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "SetpointChangeSourceTimestamp", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Error code", + "unique_id": "ab:cd:ef:12:28:a4:a4:f2-1-error_code", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Sensor", + "translation_key": "error_code", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:28:a4:a4:f2", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "Sensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "External temperature", + "unique_id": "ab:cd:ef:12:28:a4:a4:f2-1-external_temperature", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Sensor", + "translation_key": "external_temperature", + "translation_placeholders": null, + "device_class": "temperature", + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:28:a4:a4:f2", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "\u00b0C" + }, + "state": { + "class_name": "Sensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Heating demand", + "unique_id": "ab:cd:ef:12:28:a4:a4:f2-1-heating_demand", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Sensor", + "translation_key": "heating_demand", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:28:a4:a4:f2", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "%" + }, + "state": { + "class_name": "Sensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Local temperature", + "unique_id": "ab:cd:ef:12:28:a4:a4:f2-1-local_temperature", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Sensor", + "translation_key": "local_temperature", + "translation_placeholders": null, + "device_class": "temperature", + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:28:a4:a4:f2", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "\u00b0C" + }, + "state": { + "class_name": "Sensor", + "available": true, + "state": 23.1 + } + } + ], + "switch": [ + { + "info_object": { + "fallback_name": "Boost heating", + "unique_id": "ab:cd:ef:12:28:a4:a4:f2-1-boost_heating", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "ConfigurableAttributeSwitch", + "translation_key": "boost_heating", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:28:a4:a4:f2", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "boost_heating", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 0, + "on_value": 1 + }, + "state": { + "class_name": "ConfigurableAttributeSwitch", + "available": true, + "state": false, + "inverted": false + } + }, + { + "info_object": { + "fallback_name": "Window open", + "unique_id": "ab:cd:ef:12:28:a4:a4:f2-1-window_open", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "ConfigurableAttributeSwitch", + "translation_key": "window_open", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:28:a4:a4:f2", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "window_open", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 0, + "on_value": 1 + }, + "state": { + "class_name": "ConfigurableAttributeSwitch", + "available": true, + "state": false, + "inverted": false + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:28:a4:a4:f2-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:28:a4:a4:f2", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": null, + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/bosch-rbsh-trv0-zb-eu.json b/tests/data/legacy_devices/bosch-rbsh-trv0-zb-eu.json new file mode 100644 index 000000000..24913774f --- /dev/null +++ b/tests/data/legacy_devices/bosch-rbsh-trv0-zb-eu.json @@ -0,0 +1,980 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:d1:eb:38:68", + "nwk": "0xE771", + "manufacturer": "BOSCH", + "model": "RBSH-TRV0-ZB-EU", + "friendly_manufacturer": "BOSCH", + "friendly_model": "RBSH-TRV0-ZB-EU", + "name": "BOSCH RBSH-TRV0-ZB-EU", + "quirk_applied": true, + "quirk_class": "zhaquirks.bosch.rbsh_trv0_zb_eu:(BOSCH / RBSH-TRV0-ZB-EU)", + "exposes_features": [], + "manufacturer_code": 4617, + "power_source": "Battery or Unknown", + "lqi": null, + "rssi": null, + "last_seen": "2023-07-15T12:31:40+00:00", + "available": true, + "device_type": "EndDevice", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "EndDevice", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 128, + "manufacturer_code": 4617, + "maximum_buffer_size": 127, + "maximum_incoming_transfer_size": 82, + "server_mask": 11264, + "maximum_outgoing_transfer_size": 82, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "THERMOSTAT", + "id": 769 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "BOSCH" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "RBSH-TRV0-ZB-EU" + } + ] + }, + { + "cluster_id": "0x0001", + "endpoint_attribute": "power", + "attributes": [ + { + "id": "0x0021", + "name": "battery_percentage_remaining", + "zcl_type": "uint8", + "value": 200 + }, + { + "id": "0x0020", + "name": "battery_voltage", + "zcl_type": "uint8", + "value": 31 + } + ] + }, + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0020", + "endpoint_attribute": "poll_control", + "attributes": [] + }, + { + "cluster_id": "0x0201", + "endpoint_attribute": "thermostat", + "attributes": [ + { + "id": "0x0006", + "name": "abs_max_cool_setpoint_limit", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x0004", + "name": "abs_max_heat_setpoint_limit", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x0005", + "name": "abs_min_cool_setpoint_limit", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x0003", + "name": "abs_min_heat_setpoint_limit", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x001b", + "name": "ctrl_sequence_of_oper", + "zcl_type": "enum8", + "value": 2 + }, + { + "id": "0x0000", + "name": "local_temperature", + "zcl_type": "int16", + "value": 2480 + }, + { + "id": "0x0018", + "name": "max_cool_setpoint_limit", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x0016", + "name": "max_heat_setpoint_limit", + "zcl_type": "int16", + "value": 3000 + }, + { + "id": "0x0017", + "name": "min_cool_setpoint_limit", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x0015", + "name": "min_heat_setpoint_limit", + "zcl_type": "int16", + "value": 500 + }, + { + "id": "0x0002", + "name": "occupancy", + "zcl_type": "map8", + "unsupported": true + }, + { + "id": "0x0011", + "name": "occupied_cooling_setpoint", + "zcl_type": "int16", + "value": 2300 + }, + { + "id": "0x0012", + "name": "occupied_heating_setpoint", + "zcl_type": "int16", + "value": 2100 + }, + { + "id": "0x0007", + "name": "pi_cooling_demand", + "zcl_type": "uint8", + "unsupported": true + }, + { + "id": "0x001e", + "name": "running_mode", + "zcl_type": "enum8", + "unsupported": true + }, + { + "id": "0x0029", + "name": "running_state", + "zcl_type": "map16", + "unsupported": true + }, + { + "id": "0x001c", + "name": "system_mode", + "zcl_type": "enum8", + "value": 4 + }, + { + "id": "0x0013", + "name": "unoccupied_cooling_setpoint", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x0014", + "name": "unoccupied_heating_setpoint", + "zcl_type": "int16", + "unsupported": true + } + ] + }, + { + "cluster_id": "0x0204", + "endpoint_attribute": "thermostat_ui", + "attributes": [] + }, + { + "cluster_id": "0x0b05", + "endpoint_attribute": "diagnostic", + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x000a", + "endpoint_attribute": "time", + "attributes": [] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [] + } + ] + } + }, + "zha_lib_entities": { + "button": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:d1:eb:38:68-1-3", + "migrate_unique_ids": [], + "platform": "button", + "class_name": "IdentifyButton", + "translation_key": null, + "translation_placeholders": null, + "device_class": "identify", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:d1:eb:38:68", + "endpoint_id": 1, + "available": true, + "group_id": null, + "command": "identify", + "args": [ + 5 + ], + "kwargs": {} + }, + "state": { + "class_name": "IdentifyButton", + "available": true + } + }, + { + "info_object": { + "fallback_name": "Calibrate valve", + "unique_id": "ab:cd:ef:12:d1:eb:38:68-1-calibrate_valve", + "migrate_unique_ids": [], + "platform": "button", + "class_name": "Button", + "translation_key": "calibrate_valve", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:d1:eb:38:68", + "endpoint_id": 1, + "available": true, + "group_id": null, + "command": "calibrate_valve", + "args": [], + "kwargs": {} + }, + "state": { + "class_name": "Button", + "available": true + } + } + ], + "climate": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:d1:eb:38:68-1", + "migrate_unique_ids": [], + "platform": "climate", + "class_name": "Thermostat", + "translation_key": "thermostat", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": true, + "device_ieee": "ab:cd:ef:12:d1:eb:38:68", + "endpoint_id": 1, + "available": true, + "group_id": null, + "max_temp": 30.0, + "min_temp": 5.0, + "supported_features": 385, + "fan_modes": null, + "preset_modes": [], + "hvac_modes": [ + "off", + "heat" + ] + }, + "state": { + "class_name": "Thermostat", + "available": true, + "current_temperature": 24.8, + "outdoor_temperature": null, + "target_temperature": 21.0, + "target_temperature_high": null, + "target_temperature_low": null, + "hvac_action": null, + "hvac_mode": "heat", + "preset_mode": "none", + "fan_mode": "auto", + "system_mode": "[4]/heat", + "occupancy": null, + "occupied_cooling_setpoint": 2300, + "occupied_heating_setpoint": 2100, + "pi_heating_demand": null, + "pi_cooling_demand": null, + "unoccupied_cooling_setpoint": null, + "unoccupied_heating_setpoint": null + }, + "extra_state_attributes": [ + "occupancy", + "occupied_cooling_setpoint", + "occupied_heating_setpoint", + "pi_cooling_demand", + "pi_heating_demand", + "system_mode", + "unoccupied_cooling_setpoint", + "unoccupied_heating_setpoint" + ] + } + ], + "number": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:d1:eb:38:68-1-513-max_heat_setpoint_limit", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "MaxHeatSetpointLimit", + "translation_key": "max_heat_setpoint_limit", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:d1:eb:38:68", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "box", + "native_max_value": 327.67, + "native_min_value": 5.0, + "native_step": 0.5, + "native_unit_of_measurement": "\u00b0C" + }, + "state": { + "class_name": "MaxHeatSetpointLimit", + "available": true, + "state": 30.0 + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:d1:eb:38:68-1-513-min_heat_setpoint_limit", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "MinHeatSetpointLimit", + "translation_key": "min_heat_setpoint_limit", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:d1:eb:38:68", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "box", + "native_max_value": 30.0, + "native_min_value": -273.15000000000003, + "native_step": 0.5, + "native_unit_of_measurement": "\u00b0C" + }, + "state": { + "class_name": "MinHeatSetpointLimit", + "available": true, + "state": 5.0 + } + }, + { + "info_object": { + "fallback_name": "Display brightness", + "unique_id": "ab:cd:ef:12:d1:eb:38:68-1-display_brightness", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "display_brightness", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:d1:eb:38:68", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 10, + "native_min_value": 0, + "native_step": 1, + "native_unit_of_measurement": null + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Display on-time", + "unique_id": "ab:cd:ef:12:d1:eb:38:68-1-display_on_time", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "display_on_time", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:d1:eb:38:68", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 30, + "native_min_value": 5, + "native_step": 1, + "native_unit_of_measurement": null + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Remote temperature", + "unique_id": "ab:cd:ef:12:d1:eb:38:68-1-remote_temperature", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "temperature", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:d1:eb:38:68", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 30, + "native_min_value": 5, + "native_step": 0.1, + "native_unit_of_measurement": null + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": null + } + } + ], + "select": [ + { + "info_object": { + "fallback_name": "Control sequence", + "unique_id": "ab:cd:ef:12:d1:eb:38:68-1-ctrl_sequence_of_oper", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "ZCLEnumSelectEntity", + "translation_key": "ctrl_sequence_of_oper", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:d1:eb:38:68", + "endpoint_id": 1, + "available": true, + "group_id": null, + "enum": "BoschControlSequenceOfOperation", + "options": [ + "Cooling", + "Heating" + ] + }, + "state": { + "class_name": "ZCLEnumSelectEntity", + "available": true, + "state": "Heating" + } + }, + { + "info_object": { + "fallback_name": "Display orientation", + "unique_id": "ab:cd:ef:12:d1:eb:38:68-1-display_orientation", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "ZCLEnumSelectEntity", + "translation_key": "display_orientation", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:d1:eb:38:68", + "endpoint_id": 1, + "available": true, + "group_id": null, + "enum": "BoschDisplayOrientation", + "options": [ + "Normal", + "Flipped" + ] + }, + "state": { + "class_name": "ZCLEnumSelectEntity", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Displayed temperature", + "unique_id": "ab:cd:ef:12:d1:eb:38:68-1-displayed_temperature", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "ZCLEnumSelectEntity", + "translation_key": "displayed_temperature", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:d1:eb:38:68", + "endpoint_id": 1, + "available": true, + "group_id": null, + "enum": "BoschDisplayedTemperature", + "options": [ + "Target", + "Measured" + ] + }, + "state": { + "class_name": "ZCLEnumSelectEntity", + "available": true, + "state": null + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:d1:eb:38:68-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:d1:eb:38:68", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:d1:eb:38:68-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:d1:eb:38:68", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:d1:eb:38:68-1-1", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Battery", + "translation_key": null, + "translation_placeholders": null, + "device_class": "battery", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:d1:eb:38:68", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 0, + "unit": "%" + }, + "state": { + "class_name": "Battery", + "available": true, + "state": 100.0, + "battery_voltage": 3.1 + }, + "extra_state_attributes": [ + "battery_quantity", + "battery_size", + "battery_voltage" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:d1:eb:38:68-1-513-hvac_action", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "ThermostatHVACAction", + "translation_key": "hvac_action", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:d1:eb:38:68", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "ThermostatHVACAction", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:d1:eb:38:68-1-513-pi_heating_demand", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "PiHeatingDemand", + "translation_key": "pi_heating_demand", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:d1:eb:38:68", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 0, + "unit": "%" + }, + "state": { + "class_name": "PiHeatingDemand", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:d1:eb:38:68-1-513-setpoint_change_source", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "SetpointChangeSource", + "translation_key": "setpoint_change_source", + "translation_placeholders": null, + "device_class": "enum", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:d1:eb:38:68", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "SetpointChangeSource", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:d1:eb:38:68-1-513-setpoint_change_source_timestamp", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "SetpointChangeSourceTimestamp", + "translation_key": "setpoint_change_source_timestamp", + "translation_placeholders": null, + "device_class": "timestamp", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:d1:eb:38:68", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "SetpointChangeSourceTimestamp", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Operating mode", + "unique_id": "ab:cd:ef:12:d1:eb:38:68-1-operating_mode", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "EnumSensor", + "translation_key": "operating_mode", + "translation_placeholders": null, + "device_class": "enum", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:d1:eb:38:68", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "EnumSensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Valve adaptation status", + "unique_id": "ab:cd:ef:12:d1:eb:38:68-1-valve_adapt_status", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "EnumSensor", + "translation_key": "valve_adapt_status", + "translation_placeholders": null, + "device_class": "enum", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:d1:eb:38:68", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "EnumSensor", + "available": true, + "state": null + } + } + ], + "switch": [ + { + "info_object": { + "fallback_name": "Boost heating", + "unique_id": "ab:cd:ef:12:d1:eb:38:68-1-boost_heating", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "ConfigurableAttributeSwitch", + "translation_key": "boost_heating", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:d1:eb:38:68", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "boost_heating", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 0, + "on_value": 1 + }, + "state": { + "class_name": "ConfigurableAttributeSwitch", + "available": true, + "state": false, + "inverted": false + } + }, + { + "info_object": { + "fallback_name": "Window open", + "unique_id": "ab:cd:ef:12:d1:eb:38:68-1-window_open", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "ConfigurableAttributeSwitch", + "translation_key": "window_open", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:d1:eb:38:68", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "window_open", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 0, + "on_value": 1 + }, + "state": { + "class_name": "ConfigurableAttributeSwitch", + "available": true, + "state": false, + "inverted": false + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:d1:eb:38:68-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:d1:eb:38:68", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": null, + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/danfoss-etrv0103-0x0000001c.json b/tests/data/legacy_devices/danfoss-etrv0103-0x0000001c.json new file mode 100644 index 000000000..145081305 --- /dev/null +++ b/tests/data/legacy_devices/danfoss-etrv0103-0x0000001c.json @@ -0,0 +1,1787 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "nwk": "0x9F97", + "manufacturer": "Danfoss", + "model": "eTRV0103", + "friendly_manufacturer": "Danfoss", + "friendly_model": "eTRV0103", + "name": "Danfoss eTRV0103", + "quirk_applied": true, + "quirk_class": "zhaquirks.danfoss.thermostat:DanfossThermostat", + "exposes_features": [ + "danfoss.ally_thermostat" + ], + "manufacturer_code": 4678, + "power_source": "Battery or Unknown", + "lqi": null, + "rssi": null, + "last_seen": "2025-01-25T20:58:02+00:00", + "available": true, + "device_type": "EndDevice", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "EndDevice", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 128, + "manufacturer_code": 4678, + "maximum_buffer_size": 82, + "maximum_incoming_transfer_size": 82, + "server_mask": 11264, + "maximum_outgoing_transfer_size": 82, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "THERMOSTAT", + "id": 769 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0013", + "name": "alarm_mask", + "zcl_type": "map8", + "unsupported": true + }, + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "Danfoss" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "eTRV0103" + }, + { + "id": "0x000a", + "name": "product_code", + "zcl_type": "octstr", + "unsupported": true + } + ] + }, + { + "cluster_id": "0x0001", + "endpoint_attribute": "power", + "attributes": [ + { + "id": "0x0021", + "name": "battery_percentage_remaining", + "zcl_type": "uint8", + "value": 50 + }, + { + "id": "0x0033", + "name": "battery_quantity", + "zcl_type": "uint8", + "unsupported": true + }, + { + "id": "0x0031", + "name": "battery_size", + "zcl_type": "enum8", + "unsupported": true + }, + { + "id": "0x0020", + "name": "battery_voltage", + "zcl_type": "uint8", + "value": 26 + } + ] + }, + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x000a", + "endpoint_attribute": "time", + "attributes": [ + { + "id": "0xfffd", + "name": "cluster_revision", + "zcl_type": "uint16", + "value": 1 + }, + { + "id": "0x0004", + "name": "dst_end", + "zcl_type": "uint32", + "value": 783298800 + }, + { + "id": "0x0003", + "name": "dst_start", + "zcl_type": "uint32", + "value": 765158400 + }, + { + "id": "0x0008", + "name": "last_set_time", + "zcl_type": "UTC", + "value": 790441408 + }, + { + "id": "0xfffe", + "name": "reporting_status", + "zcl_type": "enum8", + "unsupported": true + }, + { + "id": "0x0000", + "name": "time", + "zcl_type": "UTC", + "value": 791130539 + }, + { + "id": "0x0001", + "name": "time_status", + "zcl_type": "map8", + "value": 2 + }, + { + "id": "0x0002", + "name": "time_zone", + "zcl_type": "int32", + "value": -3600 + } + ] + }, + { + "cluster_id": "0x0020", + "endpoint_attribute": "poll_control", + "attributes": [ + { + "id": "0x0000", + "name": "checkin_interval", + "zcl_type": "uint32", + "value": 13200 + } + ] + }, + { + "cluster_id": "0x0201", + "endpoint_attribute": "thermostat", + "attributes": [ + { + "id": "0x0006", + "name": "abs_max_cool_setpoint_limit", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x0004", + "name": "abs_max_heat_setpoint_limit", + "zcl_type": "int16", + "value": 3500 + }, + { + "id": "0x0005", + "name": "abs_min_cool_setpoint_limit", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x0003", + "name": "abs_min_heat_setpoint_limit", + "zcl_type": "int16", + "value": 500 + }, + { + "id": "0x404c", + "name": "adaptation_run_control", + "zcl_type": "enum8", + "value": 1 + }, + { + "id": "0x404e", + "name": "adaptation_run_settings", + "zcl_type": "map8", + "value": 1 + }, + { + "id": "0x404d", + "name": "adaptation_run_status", + "zcl_type": "map8", + "value": 2 + }, + { + "id": "0x4020", + "name": "control_algorithm_scale_factor", + "zcl_type": "uint8", + "value": 1 + }, + { + "id": "0x001b", + "name": "ctrl_sequence_of_oper", + "zcl_type": "enum8", + "value": 2 + }, + { + "id": "0x4010", + "name": "exercise_day_of_week", + "zcl_type": "enum8", + "value": 1 + }, + { + "id": "0x4011", + "name": "exercise_trigger_time", + "zcl_type": "uint16", + "value": 660 + }, + { + "id": "0x4015", + "name": "external_measured_room_sensor", + "zcl_type": "int16", + "value": 1989 + }, + { + "id": "0x4003", + "name": "external_open_window_detected", + "zcl_type": "bool", + "value": 0 + }, + { + "id": "0x4030", + "name": "heat_available", + "zcl_type": "bool", + "value": 1 + }, + { + "id": "0x4031", + "name": "heat_required", + "zcl_type": "bool", + "value": 0 + }, + { + "id": "0x4032", + "name": "load_balancing_enable", + "zcl_type": "bool", + "value": 1 + }, + { + "id": "0x404a", + "name": "load_estimate", + "zcl_type": "int16", + "value": 267 + }, + { + "id": "0x4040", + "name": "load_room_mean", + "zcl_type": "int16", + "value": -8000 + }, + { + "id": "0x0000", + "name": "local_temperature", + "zcl_type": "int16", + "value": 2076 + }, + { + "id": "0x0010", + "name": "local_temperature_calibration", + "zcl_type": "int8", + "value": 0 + }, + { + "id": "0x0018", + "name": "max_cool_setpoint_limit", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x0016", + "name": "max_heat_setpoint_limit", + "zcl_type": "int16", + "value": 3500 + }, + { + "id": "0x0017", + "name": "min_cool_setpoint_limit", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x0015", + "name": "min_heat_setpoint_limit", + "zcl_type": "int16", + "value": 500 + }, + { + "id": "0x4012", + "name": "mounting_mode_active", + "zcl_type": "bool", + "value": 0 + }, + { + "id": "0x4013", + "name": "mounting_mode_control", + "zcl_type": "bool", + "value": 1 + }, + { + "id": "0x0002", + "name": "occupancy", + "zcl_type": "map8", + "unsupported": true + }, + { + "id": "0x0011", + "name": "occupied_cooling_setpoint", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x0012", + "name": "occupied_heating_setpoint", + "zcl_type": "int16", + "value": 2000 + }, + { + "id": "0x4000", + "name": "open_window_detection", + "zcl_type": "enum8", + "value": 1 + }, + { + "id": "0x4014", + "name": "orientation", + "zcl_type": "bool", + "value": 0 + }, + { + "id": "0x0007", + "name": "pi_cooling_demand", + "zcl_type": "uint8", + "unsupported": true + }, + { + "id": "0x0008", + "name": "pi_heating_demand", + "zcl_type": "uint8", + "value": 1 + }, + { + "id": "0x404f", + "name": "preheat_status", + "zcl_type": "bool", + "value": 0 + }, + { + "id": "0x4050", + "name": "preheat_time", + "zcl_type": "uint32", + "value": 0 + }, + { + "id": "0x4016", + "name": "radiator_covered", + "zcl_type": "bool", + "value": 1 + }, + { + "id": "0x404b", + "name": "regulation_setpoint_offset", + "zcl_type": "int8", + "value": 0 + }, + { + "id": "0x001e", + "name": "running_mode", + "zcl_type": "enum8", + "unsupported": true + }, + { + "id": "0x0029", + "name": "running_state", + "zcl_type": "map16", + "unsupported": true + }, + { + "id": "0x0030", + "name": "setpoint_change_source", + "zcl_type": "enum8", + "value": 2 + }, + { + "id": "0x001c", + "name": "system_mode", + "zcl_type": "enum8", + "value": 4 + }, + { + "id": "0x0013", + "name": "unoccupied_cooling_setpoint", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x0014", + "name": "unoccupied_heating_setpoint", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x4051", + "name": "window_open_feature", + "zcl_type": "bool", + "value": 1 + } + ] + }, + { + "cluster_id": "0x0204", + "endpoint_attribute": "thermostat_ui", + "attributes": [ + { + "id": "0x0001", + "name": "keypad_lockout", + "zcl_type": "enum8", + "value": 0 + }, + { + "id": "0x4000", + "name": "viewing_direction", + "zcl_type": "enum8", + "value": 1 + } + ] + }, + { + "cluster_id": "0x0b05", + "endpoint_attribute": "diagnostic", + "attributes": [ + { + "id": "0x4021", + "name": "control_diagnostics", + "zcl_type": "octstr", + "value": { + "__type": "", + "repr": "b''" + } + }, + { + "id": "0x4010", + "name": "motor_step_counter", + "zcl_type": "uint32", + "value": 81035 + }, + { + "id": "0x4000", + "name": "sw_error_code", + "zcl_type": "map16", + "value": 0 + } + ] + } + ], + "out_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [ + { + "id": "0x0002", + "name": "current_file_version", + "zcl_type": "uint32", + "value": 28 + } + ] + } + ] + } + }, + "zha_lib_entities": { + "binary_sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-513-heat_required", + "migrate_unique_ids": [], + "platform": "binary_sensor", + "class_name": "DanfossHeatRequired", + "translation_key": "heat_required", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "heat_required" + }, + "state": { + "class_name": "DanfossHeatRequired", + "available": true, + "state": false + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-513-mounting_mode_active", + "migrate_unique_ids": [], + "platform": "binary_sensor", + "class_name": "DanfossMountingModeActive", + "translation_key": "mounting_mode_active", + "translation_placeholders": null, + "device_class": "opening", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "mounting_mode_active" + }, + "state": { + "class_name": "DanfossMountingModeActive", + "available": true, + "state": false + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-513-preheat_status", + "migrate_unique_ids": [], + "platform": "binary_sensor", + "class_name": "DanfossPreheatStatus", + "translation_key": "preheat_status", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "preheat_status" + }, + "state": { + "class_name": "DanfossPreheatStatus", + "available": true, + "state": false + } + } + ], + "button": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-3", + "migrate_unique_ids": [], + "platform": "button", + "class_name": "IdentifyButton", + "translation_key": null, + "translation_placeholders": null, + "device_class": "identify", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "command": "identify", + "args": [ + 5 + ], + "kwargs": {} + }, + "state": { + "class_name": "IdentifyButton", + "available": true + } + } + ], + "climate": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1", + "migrate_unique_ids": [], + "platform": "climate", + "class_name": "Thermostat", + "translation_key": "thermostat", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": true, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "max_temp": 35.0, + "min_temp": 5.0, + "supported_features": 385, + "fan_modes": null, + "preset_modes": [], + "hvac_modes": [ + "off", + "heat" + ] + }, + "state": { + "class_name": "Thermostat", + "available": true, + "current_temperature": 20.76, + "outdoor_temperature": null, + "target_temperature": 20.0, + "target_temperature_high": null, + "target_temperature_low": null, + "hvac_action": "heating", + "hvac_mode": "heat", + "preset_mode": "none", + "fan_mode": "auto", + "system_mode": "[4]/heat", + "occupancy": null, + "occupied_cooling_setpoint": null, + "occupied_heating_setpoint": 2000, + "pi_heating_demand": 1, + "pi_cooling_demand": null, + "unoccupied_cooling_setpoint": null, + "unoccupied_heating_setpoint": null + }, + "extra_state_attributes": [ + "occupancy", + "occupied_cooling_setpoint", + "occupied_heating_setpoint", + "pi_cooling_demand", + "pi_heating_demand", + "system_mode", + "unoccupied_cooling_setpoint", + "unoccupied_heating_setpoint" + ] + } + ], + "number": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-513-exercise_trigger_time", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "DanfossExerciseTriggerTime", + "translation_key": "exercise_trigger_time", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "box", + "native_max_value": 1439, + "native_min_value": 0, + "native_step": 1.0, + "native_unit_of_measurement": "min" + }, + "state": { + "class_name": "DanfossExerciseTriggerTime", + "available": true, + "state": 660 + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-513-external_measured_room_sensor", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "DanfossExternalMeasuredRoomSensor", + "translation_key": "external_temperature_sensor", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "box", + "native_max_value": 35, + "native_min_value": -80, + "native_step": 0.01, + "native_unit_of_measurement": "\u00b0C" + }, + "state": { + "class_name": "DanfossExternalMeasuredRoomSensor", + "available": true, + "state": 19.89 + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-513-load_room_mean", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "DanfossLoadRoomMean", + "translation_key": "load_room_mean", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "box", + "native_max_value": 2000, + "native_min_value": -8000, + "native_step": 1.0, + "native_unit_of_measurement": null + }, + "state": { + "class_name": "DanfossLoadRoomMean", + "available": true, + "state": -8000 + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-513-local_temperature_calibration", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "ThermostatLocalTempCalibration", + "translation_key": "local_temperature_calibration", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "box", + "native_max_value": 2.5, + "native_min_value": -2.5, + "native_step": 0.1, + "native_unit_of_measurement": "\u00b0C" + }, + "state": { + "class_name": "ThermostatLocalTempCalibration", + "available": true, + "state": 0.0 + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-513-max_heat_setpoint_limit", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "MaxHeatSetpointLimit", + "translation_key": "max_heat_setpoint_limit", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "box", + "native_max_value": 35.0, + "native_min_value": 5.0, + "native_step": 0.5, + "native_unit_of_measurement": "\u00b0C" + }, + "state": { + "class_name": "MaxHeatSetpointLimit", + "available": true, + "state": 35.0 + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-513-min_heat_setpoint_limit", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "MinHeatSetpointLimit", + "translation_key": "min_heat_setpoint_limit", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "box", + "native_max_value": 35.0, + "native_min_value": 5.0, + "native_step": 0.5, + "native_unit_of_measurement": "\u00b0C" + }, + "state": { + "class_name": "MinHeatSetpointLimit", + "available": true, + "state": 5.0 + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-513-regulation_setpoint_offset", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "DanfossRegulationSetpointOffset", + "translation_key": "regulation_setpoint_offset", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "box", + "native_max_value": 2.5, + "native_min_value": -2.5, + "native_step": 0.1, + "native_unit_of_measurement": "\u00b0C" + }, + "state": { + "class_name": "DanfossRegulationSetpointOffset", + "available": true, + "state": 0.0 + } + } + ], + "select": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-513-adaptation_run_control", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "DanfossAdaptationRunControl", + "translation_key": "adaptation_run_command", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "enum": "DanfossAdaptationRunControlEnum", + "options": [ + "Nothing", + "Initiate", + "Cancel" + ] + }, + "state": { + "class_name": "DanfossAdaptationRunControl", + "available": true, + "state": "Initiate" + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-513-control_algorithm_scale_factor", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "DanfossControlAlgorithmScaleFactor", + "translation_key": "setpoint_response_time", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "enum": "DanfossControlAlgorithmScaleFactorEnum", + "options": [ + "quick 5min", + "quick 10min", + "quick 15min", + "quick 25min", + "moderate 30min", + "moderate 40min", + "moderate 50min", + "moderate 60min", + "moderate 70min", + "slow 80min", + "quick open disabled" + ] + }, + "state": { + "class_name": "DanfossControlAlgorithmScaleFactor", + "available": true, + "state": "quick 5min" + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-513-exercise_day_of_week", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "DanfossExerciseDayOfTheWeek", + "translation_key": "exercise_day_of_week", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "enum": "DanfossExerciseDayOfTheWeekEnum", + "options": [ + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday", + "Undefined" + ] + }, + "state": { + "class_name": "DanfossExerciseDayOfTheWeek", + "available": true, + "state": "Monday" + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-513-orientation", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "DanfossOrientation", + "translation_key": "valve_orientation", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "enum": "DanfossOrientationEnum", + "options": [ + "Horizontal", + "Vertical" + ] + }, + "state": { + "class_name": "DanfossOrientation", + "available": true, + "state": "Horizontal" + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-516-keypad_lockout", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "KeypadLockout", + "translation_key": "keypad_lockout", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "enum": "KeypadLockoutEnum", + "options": [ + "Unlock", + "Lock1", + "Lock2", + "Lock3", + "Lock4" + ] + }, + "state": { + "class_name": "KeypadLockout", + "available": true, + "state": "Unlock" + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-516-viewing_direction", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "DanfossViewingDirection", + "translation_key": "viewing_direction", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "enum": "DanfossViewingDirectionEnum", + "options": [ + "Default", + "Inverted" + ] + }, + "state": { + "class_name": "DanfossViewingDirection", + "available": true, + "state": "Inverted" + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-1", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Battery", + "translation_key": null, + "translation_placeholders": null, + "device_class": "battery", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 0, + "unit": "%" + }, + "state": { + "class_name": "Battery", + "available": true, + "state": 25.0, + "battery_voltage": 2.6 + }, + "extra_state_attributes": [ + "battery_quantity", + "battery_size", + "battery_voltage" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-2821-motor_step_counter", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "DanfossMotorStepCounter", + "translation_key": "motor_stepcount", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "DanfossMotorStepCounter", + "available": true, + "state": 81035 + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-2821-sw_error_code", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "DanfossSoftwareErrorCode", + "translation_key": "software_error", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "DanfossSoftwareErrorCode", + "available": true, + "state": "nothing", + "Top_pcb_sensor_error": false, + "Side_pcb_sensor_error": false, + "Non_volatile_memory_error": false, + "Unknown_hw_error": false, + "Motor_error": false, + "Invalid_internal_communication": false, + "Invalid_clock_information": false, + "Radio_communication_error": false, + "Encoder_jammed": false, + "Low_battery": false, + "Critical_low_battery": false + }, + "extra_state_attributes": [ + "Critical_low_battery", + "Encoder_jammed", + "Invalid_clock_information", + "Invalid_internal_communication", + "Low_battery", + "Motor_error", + "Non_volatile_memory_error", + "Radio_communication_error", + "Side_pcb_sensor_error", + "Top_pcb_sensor_error", + "Unknown_hw_error" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-513-adaptation_run_status", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "DanfossAdaptationRunStatus", + "translation_key": "adaptation_run_status", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "DanfossAdaptationRunStatus", + "available": true, + "state": "something", + "In_progress": false, + "Valve_characteristic_found": true, + "Valve_characteristic_lost": false + }, + "extra_state_attributes": [ + "In_progress", + "Valve_characteristic_found", + "Valve_characteristic_lost" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-513-hvac_action", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "ThermostatHVACAction", + "translation_key": "hvac_action", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "ThermostatHVACAction", + "available": true, + "state": "heating" + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-513-load_estimate", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "DanfossLoadEstimate", + "translation_key": "load_estimate", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "DanfossLoadEstimate", + "available": true, + "state": 267 + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-513-open_window_detection", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "DanfossOpenWindowDetection", + "translation_key": "open_window_detected", + "translation_placeholders": null, + "device_class": "enum", + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "DanfossOpenWindowDetection", + "available": true, + "state": "Closed" + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-513-pi_heating_demand", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "PiHeatingDemand", + "translation_key": "pi_heating_demand", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 0, + "unit": "%" + }, + "state": { + "class_name": "PiHeatingDemand", + "available": true, + "state": 1 + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-513-preheat_time", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "DanfossPreheatTime", + "translation_key": "preheat_time", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "DanfossPreheatTime", + "available": true, + "state": 0 + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-513-setpoint_change_source", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "SetpointChangeSource", + "translation_key": "setpoint_change_source", + "translation_placeholders": null, + "device_class": "enum", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "SetpointChangeSource", + "available": true, + "state": "External" + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-513-setpoint_change_source_timestamp", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "SetpointChangeSourceTimestamp", + "translation_key": "setpoint_change_source_timestamp", + "translation_placeholders": null, + "device_class": "timestamp", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "SetpointChangeSourceTimestamp", + "available": true, + "state": null + } + } + ], + "switch": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-513-adaptation_run_settings", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "DanfossAdaptationRunSettings", + "translation_key": "adaptation_run_enabled", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "adaptation_run_settings", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 0, + "on_value": 1 + }, + "state": { + "class_name": "DanfossAdaptationRunSettings", + "available": true, + "state": true, + "inverted": false + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-513-external_open_window_detected", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "DanfossExternalOpenWindowDetected", + "translation_key": "external_window_sensor", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "external_open_window_detected", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 0, + "on_value": 1 + }, + "state": { + "class_name": "DanfossExternalOpenWindowDetected", + "available": true, + "state": false, + "inverted": false + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-513-heat_available", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "DanfossHeatAvailable", + "translation_key": "heat_available", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "heat_available", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 0, + "on_value": 1 + }, + "state": { + "class_name": "DanfossHeatAvailable", + "available": true, + "state": true, + "inverted": false + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-513-load_balancing_enable", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "DanfossLoadBalancingEnable", + "translation_key": "use_load_balancing", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "load_balancing_enable", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 0, + "on_value": 1 + }, + "state": { + "class_name": "DanfossLoadBalancingEnable", + "available": true, + "state": true, + "inverted": false + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-513-mounting_mode_control", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "DanfossMountingModeControl", + "translation_key": "mounting_mode", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "mounting_mode_control", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 0, + "on_value": 1 + }, + "state": { + "class_name": "DanfossMountingModeControl", + "available": true, + "state": true, + "inverted": false + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-513-radiator_covered", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "DanfossRadiatorCovered", + "translation_key": "prioritize_external_temperature_sensor", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "radiator_covered", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 0, + "on_value": 1 + }, + "state": { + "class_name": "DanfossRadiatorCovered", + "available": true, + "state": true, + "inverted": false + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-513-window_open_feature", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "DanfossWindowOpenFeature", + "translation_key": "use_internal_window_detection", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "window_open_feature", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 0, + "on_value": 1 + }, + "state": { + "class_name": "DanfossWindowOpenFeature", + "available": true, + "state": true, + "inverted": false + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": "0x0000001c", + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/danfoss-etrv0103.json b/tests/data/legacy_devices/danfoss-etrv0103.json new file mode 100644 index 000000000..23423dacc --- /dev/null +++ b/tests/data/legacy_devices/danfoss-etrv0103.json @@ -0,0 +1,1126 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "nwk": "0x596F", + "manufacturer": "Danfoss", + "model": "eTRV0103", + "friendly_manufacturer": "Danfoss", + "friendly_model": "eTRV0103", + "name": "Danfoss eTRV0103", + "quirk_applied": true, + "quirk_class": "zhaquirks.danfoss.thermostat:DanfossThermostat", + "exposes_features": [ + "danfoss.ally_thermostat" + ], + "manufacturer_code": 4678, + "power_source": "Battery or Unknown", + "lqi": null, + "rssi": null, + "last_seen": "2024-02-14T16:57:10+00:00", + "available": true, + "device_type": "EndDevice", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "EndDevice", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 128, + "manufacturer_code": 4678, + "maximum_buffer_size": 82, + "maximum_incoming_transfer_size": 82, + "server_mask": 11264, + "maximum_outgoing_transfer_size": 82, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "THERMOSTAT", + "id": 769 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "Danfoss" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "eTRV0103" + } + ] + }, + { + "cluster_id": "0x0001", + "endpoint_attribute": "power", + "attributes": [ + { + "id": "0x0021", + "name": "battery_percentage_remaining", + "zcl_type": "uint8", + "value": 200 + }, + { + "id": "0x0033", + "name": "battery_quantity", + "zcl_type": "uint8", + "unsupported": true + }, + { + "id": "0x0031", + "name": "battery_size", + "zcl_type": "enum8", + "unsupported": true + }, + { + "id": "0x0020", + "name": "battery_voltage", + "zcl_type": "uint8", + "value": 32 + } + ] + }, + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x000a", + "endpoint_attribute": "time", + "attributes": [] + }, + { + "cluster_id": "0x0020", + "endpoint_attribute": "poll_control", + "attributes": [ + { + "id": "0x0000", + "name": "checkin_interval", + "zcl_type": "uint32", + "value": 13200 + } + ] + }, + { + "cluster_id": "0x0201", + "endpoint_attribute": "thermostat", + "attributes": [ + { + "id": "0x0006", + "name": "abs_max_cool_setpoint_limit", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x0004", + "name": "abs_max_heat_setpoint_limit", + "zcl_type": "int16", + "value": 3500 + }, + { + "id": "0x0005", + "name": "abs_min_cool_setpoint_limit", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x0003", + "name": "abs_min_heat_setpoint_limit", + "zcl_type": "int16", + "value": 500 + }, + { + "id": "0x404d", + "name": "adaptation_run_status", + "zcl_type": "map8", + "value": 0 + }, + { + "id": "0x001b", + "name": "ctrl_sequence_of_oper", + "zcl_type": "enum8", + "value": 2 + }, + { + "id": "0x4015", + "name": "external_measured_room_sensor", + "zcl_type": "int16", + "value": 2010 + }, + { + "id": "0x4031", + "name": "heat_required", + "zcl_type": "bool", + "value": 1 + }, + { + "id": "0x404a", + "name": "load_estimate", + "zcl_type": "int16", + "value": -207 + }, + { + "id": "0x0000", + "name": "local_temperature", + "zcl_type": "int16", + "value": 1706 + }, + { + "id": "0x0010", + "name": "local_temperature_calibration", + "zcl_type": "int8", + "unsupported": true + }, + { + "id": "0x0018", + "name": "max_cool_setpoint_limit", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x0016", + "name": "max_heat_setpoint_limit", + "zcl_type": "int16", + "value": 3500 + }, + { + "id": "0x0017", + "name": "min_cool_setpoint_limit", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x0015", + "name": "min_heat_setpoint_limit", + "zcl_type": "int16", + "value": 500 + }, + { + "id": "0x4012", + "name": "mounting_mode_active", + "zcl_type": "bool", + "value": 0 + }, + { + "id": "0x0002", + "name": "occupancy", + "zcl_type": "map8", + "unsupported": true + }, + { + "id": "0x0011", + "name": "occupied_cooling_setpoint", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x0012", + "name": "occupied_heating_setpoint", + "zcl_type": "int16", + "value": 3500 + }, + { + "id": "0x4000", + "name": "open_window_detection", + "zcl_type": "enum8", + "value": 0 + }, + { + "id": "0x0007", + "name": "pi_cooling_demand", + "zcl_type": "uint8", + "unsupported": true + }, + { + "id": "0x0008", + "name": "pi_heating_demand", + "zcl_type": "uint8", + "value": 100 + }, + { + "id": "0x404f", + "name": "preheat_status", + "zcl_type": "bool", + "value": 0 + }, + { + "id": "0x4050", + "name": "preheat_time", + "zcl_type": "uint32", + "value": 0 + }, + { + "id": "0x4016", + "name": "radiator_covered", + "zcl_type": "bool", + "value": 0 + }, + { + "id": "0x001e", + "name": "running_mode", + "zcl_type": "enum8", + "unsupported": true + }, + { + "id": "0x0029", + "name": "running_state", + "zcl_type": "map16", + "unsupported": true + }, + { + "id": "0x0030", + "name": "setpoint_change_source", + "zcl_type": "enum8", + "value": 2 + }, + { + "id": "0x001c", + "name": "system_mode", + "zcl_type": "enum8", + "value": 4 + }, + { + "id": "0x0013", + "name": "unoccupied_cooling_setpoint", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x0014", + "name": "unoccupied_heating_setpoint", + "zcl_type": "int16", + "unsupported": true + } + ] + }, + { + "cluster_id": "0x0204", + "endpoint_attribute": "thermostat_ui", + "attributes": [ + { + "id": "0x0001", + "name": "keypad_lockout", + "zcl_type": "enum8", + "value": 0 + } + ] + }, + { + "cluster_id": "0x0b05", + "endpoint_attribute": "diagnostic", + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [] + } + ] + } + }, + "zha_lib_entities": { + "binary_sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-513-heat_required", + "migrate_unique_ids": [], + "platform": "binary_sensor", + "class_name": "DanfossHeatRequired", + "translation_key": "heat_required", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "heat_required" + }, + "state": { + "class_name": "DanfossHeatRequired", + "available": true, + "state": true + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-513-mounting_mode_active", + "migrate_unique_ids": [], + "platform": "binary_sensor", + "class_name": "DanfossMountingModeActive", + "translation_key": "mounting_mode_active", + "translation_placeholders": null, + "device_class": "opening", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "mounting_mode_active" + }, + "state": { + "class_name": "DanfossMountingModeActive", + "available": true, + "state": false + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-513-preheat_status", + "migrate_unique_ids": [], + "platform": "binary_sensor", + "class_name": "DanfossPreheatStatus", + "translation_key": "preheat_status", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "preheat_status" + }, + "state": { + "class_name": "DanfossPreheatStatus", + "available": true, + "state": false + } + } + ], + "button": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-3", + "migrate_unique_ids": [], + "platform": "button", + "class_name": "IdentifyButton", + "translation_key": null, + "translation_placeholders": null, + "device_class": "identify", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "command": "identify", + "args": [ + 5 + ], + "kwargs": {} + }, + "state": { + "class_name": "IdentifyButton", + "available": true + } + } + ], + "climate": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1", + "migrate_unique_ids": [], + "platform": "climate", + "class_name": "Thermostat", + "translation_key": "thermostat", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": true, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "max_temp": 35.0, + "min_temp": 5.0, + "supported_features": 385, + "fan_modes": null, + "preset_modes": [], + "hvac_modes": [ + "off", + "heat" + ] + }, + "state": { + "class_name": "Thermostat", + "available": true, + "current_temperature": 17.06, + "outdoor_temperature": null, + "target_temperature": 35.0, + "target_temperature_high": null, + "target_temperature_low": null, + "hvac_action": "heating", + "hvac_mode": "heat", + "preset_mode": "none", + "fan_mode": "auto", + "system_mode": "[4]/heat", + "occupancy": null, + "occupied_cooling_setpoint": null, + "occupied_heating_setpoint": 3500, + "pi_heating_demand": 100, + "pi_cooling_demand": null, + "unoccupied_cooling_setpoint": null, + "unoccupied_heating_setpoint": null + }, + "extra_state_attributes": [ + "occupancy", + "occupied_cooling_setpoint", + "occupied_heating_setpoint", + "pi_cooling_demand", + "pi_heating_demand", + "system_mode", + "unoccupied_cooling_setpoint", + "unoccupied_heating_setpoint" + ] + } + ], + "number": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-513-external_measured_room_sensor", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "DanfossExternalMeasuredRoomSensor", + "translation_key": "external_temperature_sensor", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "box", + "native_max_value": 35, + "native_min_value": -80, + "native_step": 0.01, + "native_unit_of_measurement": "\u00b0C" + }, + "state": { + "class_name": "DanfossExternalMeasuredRoomSensor", + "available": true, + "state": 20.1 + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-513-max_heat_setpoint_limit", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "MaxHeatSetpointLimit", + "translation_key": "max_heat_setpoint_limit", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "box", + "native_max_value": 35.0, + "native_min_value": 5.0, + "native_step": 0.5, + "native_unit_of_measurement": "\u00b0C" + }, + "state": { + "class_name": "MaxHeatSetpointLimit", + "available": true, + "state": 35.0 + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-513-min_heat_setpoint_limit", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "MinHeatSetpointLimit", + "translation_key": "min_heat_setpoint_limit", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "box", + "native_max_value": 35.0, + "native_min_value": 5.0, + "native_step": 0.5, + "native_unit_of_measurement": "\u00b0C" + }, + "state": { + "class_name": "MinHeatSetpointLimit", + "available": true, + "state": 5.0 + } + } + ], + "select": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-516-keypad_lockout", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "KeypadLockout", + "translation_key": "keypad_lockout", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "enum": "KeypadLockoutEnum", + "options": [ + "Unlock", + "Lock1", + "Lock2", + "Lock3", + "Lock4" + ] + }, + "state": { + "class_name": "KeypadLockout", + "available": true, + "state": "Unlock" + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-1", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Battery", + "translation_key": null, + "translation_placeholders": null, + "device_class": "battery", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 0, + "unit": "%" + }, + "state": { + "class_name": "Battery", + "available": true, + "state": 100.0, + "battery_voltage": 3.2 + }, + "extra_state_attributes": [ + "battery_quantity", + "battery_size", + "battery_voltage" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-2821-motor_step_counter", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "DanfossMotorStepCounter", + "translation_key": "motor_stepcount", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "DanfossMotorStepCounter", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-2821-sw_error_code", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "DanfossSoftwareErrorCode", + "translation_key": "software_error", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "DanfossSoftwareErrorCode", + "available": true, + "state": null, + "Top_pcb_sensor_error": false, + "Side_pcb_sensor_error": false, + "Non_volatile_memory_error": false, + "Unknown_hw_error": false, + "Motor_error": false, + "Invalid_internal_communication": false, + "Invalid_clock_information": false, + "Radio_communication_error": false, + "Encoder_jammed": false, + "Low_battery": false, + "Critical_low_battery": false + }, + "extra_state_attributes": [ + "Critical_low_battery", + "Encoder_jammed", + "Invalid_clock_information", + "Invalid_internal_communication", + "Low_battery", + "Motor_error", + "Non_volatile_memory_error", + "Radio_communication_error", + "Side_pcb_sensor_error", + "Top_pcb_sensor_error", + "Unknown_hw_error" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-513-adaptation_run_status", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "DanfossAdaptationRunStatus", + "translation_key": "adaptation_run_status", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "DanfossAdaptationRunStatus", + "available": true, + "state": "nothing", + "In_progress": false, + "Valve_characteristic_found": false, + "Valve_characteristic_lost": false + }, + "extra_state_attributes": [ + "In_progress", + "Valve_characteristic_found", + "Valve_characteristic_lost" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-513-hvac_action", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "ThermostatHVACAction", + "translation_key": "hvac_action", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "ThermostatHVACAction", + "available": true, + "state": "heating" + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-513-load_estimate", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "DanfossLoadEstimate", + "translation_key": "load_estimate", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "DanfossLoadEstimate", + "available": true, + "state": -207 + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-513-open_window_detection", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "DanfossOpenWindowDetection", + "translation_key": "open_window_detected", + "translation_placeholders": null, + "device_class": "enum", + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "DanfossOpenWindowDetection", + "available": true, + "state": "Quarantine" + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-513-pi_heating_demand", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "PiHeatingDemand", + "translation_key": "pi_heating_demand", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 0, + "unit": "%" + }, + "state": { + "class_name": "PiHeatingDemand", + "available": true, + "state": 100 + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-513-preheat_time", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "DanfossPreheatTime", + "translation_key": "preheat_time", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "DanfossPreheatTime", + "available": true, + "state": 0 + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-513-setpoint_change_source", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "SetpointChangeSource", + "translation_key": "setpoint_change_source", + "translation_placeholders": null, + "device_class": "enum", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "SetpointChangeSource", + "available": true, + "state": "External" + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-513-setpoint_change_source_timestamp", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "SetpointChangeSourceTimestamp", + "translation_key": "setpoint_change_source_timestamp", + "translation_placeholders": null, + "device_class": "timestamp", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "SetpointChangeSourceTimestamp", + "available": true, + "state": null + } + } + ], + "switch": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-513-radiator_covered", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "DanfossRadiatorCovered", + "translation_key": "prioritize_external_temperature_sensor", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "radiator_covered", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 0, + "on_value": 1 + }, + "state": { + "class_name": "DanfossRadiatorCovered", + "available": true, + "state": false, + "inverted": false + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:5c:a0:3f:1c-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:5c:a0:3f:1c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": null, + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/ewelink-snzb-01p.json b/tests/data/legacy_devices/ewelink-snzb-01p.json new file mode 100644 index 000000000..c34ee63ab --- /dev/null +++ b/tests/data/legacy_devices/ewelink-snzb-01p.json @@ -0,0 +1,297 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:6a:05:59:94", + "nwk": "0x3ACB", + "manufacturer": "eWeLink", + "model": "SNZB-01P", + "friendly_manufacturer": "eWeLink", + "friendly_model": "SNZB-01P", + "name": "eWeLink SNZB-01P", + "quirk_applied": true, + "quirk_class": "zhaquirks.sonoff.button:(eWeLink / WB01)", + "exposes_features": [], + "manufacturer_code": 4742, + "power_source": "Battery or Unknown", + "lqi": null, + "rssi": null, + "last_seen": "2023-10-29T15:18:34+00:00", + "available": true, + "device_type": "EndDevice", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "EndDevice", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 128, + "manufacturer_code": 4742, + "maximum_buffer_size": 82, + "maximum_incoming_transfer_size": 255, + "server_mask": 11264, + "maximum_outgoing_transfer_size": 255, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "ON_OFF_SWITCH", + "id": 0 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "eWeLink" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "SNZB-01P" + } + ] + }, + { + "cluster_id": "0x0001", + "endpoint_attribute": "power", + "attributes": [ + { + "id": "0x0021", + "name": "battery_percentage_remaining", + "zcl_type": "uint8", + "value": 200 + }, + { + "id": "0x0033", + "name": "battery_quantity", + "zcl_type": "uint8", + "unsupported": true + }, + { + "id": "0x0031", + "name": "battery_size", + "zcl_type": "enum8", + "unsupported": true + }, + { + "id": "0x0020", + "name": "battery_voltage", + "zcl_type": "uint8", + "value": 32 + } + ] + }, + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0020", + "endpoint_attribute": "poll_control", + "attributes": [ + { + "id": "0x0000", + "name": "checkin_interval", + "zcl_type": "uint32", + "value": 13200 + } + ] + }, + { + "cluster_id": "0xfc57", + "endpoint_attribute": "works_with_all_hubs", + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0006", + "endpoint_attribute": "on_off", + "attributes": [] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [] + } + ] + } + }, + "zha_lib_entities": { + "button": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:6a:05:59:94-1-3", + "migrate_unique_ids": [], + "platform": "button", + "class_name": "IdentifyButton", + "translation_key": null, + "translation_placeholders": null, + "device_class": "identify", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:6a:05:59:94", + "endpoint_id": 1, + "available": true, + "group_id": null, + "command": "identify", + "args": [ + 5 + ], + "kwargs": {} + }, + "state": { + "class_name": "IdentifyButton", + "available": true + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:6a:05:59:94-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:6a:05:59:94", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:6a:05:59:94-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:6a:05:59:94", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:6a:05:59:94-1-1", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Battery", + "translation_key": null, + "translation_placeholders": null, + "device_class": "battery", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:6a:05:59:94", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 0, + "unit": "%" + }, + "state": { + "class_name": "Battery", + "available": true, + "state": 100.0, + "battery_voltage": 3.2 + }, + "extra_state_attributes": [ + "battery_quantity", + "battery_size", + "battery_voltage" + ] + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:6a:05:59:94-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:6a:05:59:94", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": null, + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/ikea-of-sweden-fyrtur-block-out-roller-blind-0x24040013.json b/tests/data/legacy_devices/ikea-of-sweden-fyrtur-block-out-roller-blind-0x24040013.json new file mode 100644 index 000000000..0e81f54a0 --- /dev/null +++ b/tests/data/legacy_devices/ikea-of-sweden-fyrtur-block-out-roller-blind-0x24040013.json @@ -0,0 +1,488 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:76:97:69:9f", + "nwk": "0xFC22", + "manufacturer": "IKEA of Sweden", + "model": "FYRTUR block-out roller blind", + "friendly_manufacturer": "IKEA of Sweden", + "friendly_model": "FYRTUR block-out roller blind", + "name": "IKEA of Sweden FYRTUR block-out roller blind", + "quirk_applied": true, + "quirk_class": "zhaquirks.ikea.blinds:IkeaTradfriRollerBlinds", + "exposes_features": [], + "manufacturer_code": 4476, + "power_source": "Battery or Unknown", + "lqi": null, + "rssi": null, + "last_seen": "2024-05-21T04:01:00+00:00", + "available": true, + "device_type": "EndDevice", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "EndDevice", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 128, + "manufacturer_code": 4476, + "maximum_buffer_size": 82, + "maximum_incoming_transfer_size": 82, + "server_mask": 11264, + "maximum_outgoing_transfer_size": 82, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "WINDOW_COVERING_DEVICE", + "id": 514 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "IKEA of Sweden" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "FYRTUR block-out roller blind" + }, + { + "id": "0x0007", + "name": "power_source", + "zcl_type": "enum8", + "value": 3 + }, + { + "id": "0x4000", + "name": "sw_build_id", + "zcl_type": "string", + "value": "2.2.009" + } + ] + }, + { + "cluster_id": "0x0001", + "endpoint_attribute": "power", + "attributes": [ + { + "id": "0x0061", + "name": "battery_3_percentage_remaining", + "zcl_type": "uint8", + "unsupported": true + }, + { + "id": "0x0021", + "name": "battery_percentage_remaining", + "zcl_type": "uint8", + "value": 388 + }, + { + "id": "0x0033", + "name": "battery_quantity", + "zcl_type": "uint8", + "unsupported": true + }, + { + "id": "0x0031", + "name": "battery_size", + "zcl_type": "enum8", + "unsupported": true + }, + { + "id": "0x0020", + "name": "battery_voltage", + "zcl_type": "uint8", + "value": 82 + } + ] + }, + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0005", + "endpoint_attribute": "scenes", + "attributes": [] + }, + { + "cluster_id": "0x0020", + "endpoint_attribute": "poll_control", + "attributes": [ + { + "id": "0x0000", + "name": "checkin_interval", + "zcl_type": "uint32", + "value": 13200 + } + ] + }, + { + "cluster_id": "0x0102", + "endpoint_attribute": "window_covering", + "attributes": [ + { + "id": "0x0007", + "name": "config_status", + "zcl_type": "map8", + "value": 3 + }, + { + "id": "0x0008", + "name": "current_position_lift_percentage", + "zcl_type": "uint8", + "value": 0 + }, + { + "id": "0x0009", + "name": "current_position_tilt_percentage", + "zcl_type": "uint8", + "unsupported": true + }, + { + "id": "0x0011", + "name": "installed_closed_limit_lift", + "zcl_type": "uint16", + "value": 65535 + }, + { + "id": "0x0013", + "name": "installed_closed_limit_tilt", + "zcl_type": "uint16", + "value": 65535 + }, + { + "id": "0x0010", + "name": "installed_open_limit_lift", + "zcl_type": "uint16", + "value": 0 + }, + { + "id": "0x0012", + "name": "installed_open_limit_tilt", + "zcl_type": "uint16", + "value": 0 + }, + { + "id": "0x0017", + "name": "window_covering_mode", + "zcl_type": "map8", + "value": 0 + }, + { + "id": "0x0000", + "name": "window_covering_type", + "zcl_type": "enum8", + "value": 0 + } + ] + }, + { + "cluster_id": "0x1000", + "endpoint_attribute": "lightlink", + "attributes": [] + }, + { + "cluster_id": "0xfc7c", + "endpoint_attribute": "manufacturer_specific", + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [ + { + "id": "0x0002", + "name": "current_file_version", + "zcl_type": "uint32", + "value": 604241939 + } + ] + }, + { + "cluster_id": "0x1000", + "endpoint_attribute": "lightlink", + "attributes": [] + } + ] + } + }, + "zha_lib_entities": { + "button": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:76:97:69:9f-1-3", + "migrate_unique_ids": [], + "platform": "button", + "class_name": "IdentifyButton", + "translation_key": null, + "translation_placeholders": null, + "device_class": "identify", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:76:97:69:9f", + "endpoint_id": 1, + "available": true, + "group_id": null, + "command": "identify", + "args": [ + 5 + ], + "kwargs": {} + }, + "state": { + "class_name": "IdentifyButton", + "available": true + } + } + ], + "cover": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:76:97:69:9f-1-258", + "migrate_unique_ids": [], + "platform": "cover", + "class_name": "Cover", + "translation_key": "cover", + "translation_placeholders": null, + "device_class": "shade", + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": true, + "device_ieee": "ab:cd:ef:12:76:97:69:9f", + "endpoint_id": 1, + "available": true, + "group_id": null + }, + "state": { + "class_name": "Cover", + "available": true, + "current_position": 100, + "current_tilt_position": null, + "state": "open", + "is_opening": false, + "is_closing": false, + "is_closed": false, + "supported_features": 15 + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:76:97:69:9f-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:76:97:69:9f", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:76:97:69:9f-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:76:97:69:9f", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:76:97:69:9f-1-1", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Battery", + "translation_key": null, + "translation_placeholders": null, + "device_class": "battery", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:76:97:69:9f", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 0, + "unit": "%" + }, + "state": { + "class_name": "Battery", + "available": true, + "state": 194.0, + "battery_voltage": 8.2 + }, + "extra_state_attributes": [ + "battery_quantity", + "battery_size", + "battery_voltage" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:76:97:69:9f-1-258-window_covering_type", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "WindowCoveringTypeSensor", + "translation_key": "window_covering_type", + "translation_placeholders": null, + "device_class": "enum", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:76:97:69:9f", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "WindowCoveringTypeSensor", + "available": true, + "state": "Rollershade" + } + } + ], + "switch": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:76:97:69:9f-1-258-inverted", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "WindowCoveringInversionSwitch", + "translation_key": "inverted", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:76:97:69:9f", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "config_status", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 0, + "on_value": 1 + }, + "state": { + "class_name": "WindowCoveringInversionSwitch", + "available": true, + "state": false, + "inverted": false + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:76:97:69:9f-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:76:97:69:9f", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": "0x24040013", + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/ikea-of-sweden-fyrtur-block-out-roller-blind.json b/tests/data/legacy_devices/ikea-of-sweden-fyrtur-block-out-roller-blind.json new file mode 100644 index 000000000..f471b7831 --- /dev/null +++ b/tests/data/legacy_devices/ikea-of-sweden-fyrtur-block-out-roller-blind.json @@ -0,0 +1,381 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:76:97:69:9f", + "nwk": "0x4159", + "manufacturer": "IKEA of Sweden", + "model": "FYRTUR block-out roller blind", + "friendly_manufacturer": "IKEA of Sweden", + "friendly_model": "FYRTUR block-out roller blind", + "name": "IKEA of Sweden FYRTUR block-out roller blind", + "quirk_applied": true, + "quirk_class": "zhaquirks.ikea.blinds:IkeaTradfriRollerBlinds", + "exposes_features": [], + "manufacturer_code": 4476, + "power_source": "Battery or Unknown", + "lqi": null, + "rssi": null, + "last_seen": "2023-05-31T22:01:58+00:00", + "available": true, + "device_type": "EndDevice", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "EndDevice", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 128, + "manufacturer_code": 4476, + "maximum_buffer_size": 82, + "maximum_incoming_transfer_size": 82, + "server_mask": 11264, + "maximum_outgoing_transfer_size": 82, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "WINDOW_COVERING_DEVICE", + "id": 514 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "IKEA of Sweden" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "FYRTUR block-out roller blind" + } + ] + }, + { + "cluster_id": "0x0001", + "endpoint_attribute": "power", + "attributes": [ + { + "id": "0x0021", + "name": "battery_percentage_remaining", + "zcl_type": "uint8", + "value": 172 + }, + { + "id": "0x0033", + "name": "battery_quantity", + "zcl_type": "uint8", + "unsupported": true + }, + { + "id": "0x0031", + "name": "battery_size", + "zcl_type": "enum8", + "unsupported": true + }, + { + "id": "0x0020", + "name": "battery_voltage", + "zcl_type": "uint8", + "value": 71 + } + ] + }, + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0005", + "endpoint_attribute": "scenes", + "attributes": [] + }, + { + "cluster_id": "0x0020", + "endpoint_attribute": "poll_control", + "attributes": [ + { + "id": "0x0000", + "name": "checkin_interval", + "zcl_type": "uint32", + "value": 13200 + } + ] + }, + { + "cluster_id": "0x0102", + "endpoint_attribute": "window_covering", + "attributes": [ + { + "id": "0x0008", + "name": "current_position_lift_percentage", + "zcl_type": "uint8", + "value": 100 + } + ] + }, + { + "cluster_id": "0x1000", + "endpoint_attribute": "lightlink", + "attributes": [] + }, + { + "cluster_id": "0xfc7c", + "endpoint_attribute": "manufacturer_specific", + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [] + }, + { + "cluster_id": "0x1000", + "endpoint_attribute": "lightlink", + "attributes": [] + } + ] + } + }, + "zha_lib_entities": { + "button": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:76:97:69:9f-1-3", + "migrate_unique_ids": [], + "platform": "button", + "class_name": "IdentifyButton", + "translation_key": null, + "translation_placeholders": null, + "device_class": "identify", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:76:97:69:9f", + "endpoint_id": 1, + "available": true, + "group_id": null, + "command": "identify", + "args": [ + 5 + ], + "kwargs": {} + }, + "state": { + "class_name": "IdentifyButton", + "available": true + } + } + ], + "cover": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:76:97:69:9f-1-258", + "migrate_unique_ids": [], + "platform": "cover", + "class_name": "Cover", + "translation_key": "cover", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": true, + "device_ieee": "ab:cd:ef:12:76:97:69:9f", + "endpoint_id": 1, + "available": true, + "group_id": null + }, + "state": { + "class_name": "Cover", + "available": true, + "current_position": 0, + "current_tilt_position": null, + "state": "closed", + "is_opening": false, + "is_closing": false, + "is_closed": true, + "supported_features": 15 + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:76:97:69:9f-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:76:97:69:9f", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:76:97:69:9f-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:76:97:69:9f", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:76:97:69:9f-1-1", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Battery", + "translation_key": null, + "translation_placeholders": null, + "device_class": "battery", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:76:97:69:9f", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 0, + "unit": "%" + }, + "state": { + "class_name": "Battery", + "available": true, + "state": 86.0, + "battery_voltage": 7.1 + }, + "extra_state_attributes": [ + "battery_quantity", + "battery_size", + "battery_voltage" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:76:97:69:9f-1-258-window_covering_type", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "WindowCoveringTypeSensor", + "translation_key": "window_covering_type", + "translation_placeholders": null, + "device_class": "enum", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:76:97:69:9f", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "WindowCoveringTypeSensor", + "available": true, + "state": null + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:76:97:69:9f-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:76:97:69:9f", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": null, + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/ikea-of-sweden-inspelning-smart-plug-0x02040034.json b/tests/data/legacy_devices/ikea-of-sweden-inspelning-smart-plug-0x02040034.json new file mode 100644 index 000000000..1356f0263 --- /dev/null +++ b/tests/data/legacy_devices/ikea-of-sweden-inspelning-smart-plug-0x02040034.json @@ -0,0 +1,773 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:85:26:77:ae", + "nwk": "0x3549", + "manufacturer": "IKEA of Sweden", + "model": "INSPELNING Smart plug", + "friendly_manufacturer": "IKEA of Sweden", + "friendly_model": "INSPELNING Smart plug", + "name": "IKEA of Sweden INSPELNING Smart plug", + "quirk_applied": true, + "quirk_class": "zhaquirks.ikea.plug_g2:(IKEA of Sweden / INSPELNING Smart plug)", + "exposes_features": [], + "manufacturer_code": 4476, + "power_source": "Mains", + "lqi": null, + "rssi": null, + "last_seen": "2024-09-21T00:02:08+00:00", + "available": true, + "device_type": "Router", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "Router", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 142, + "manufacturer_code": 4476, + "maximum_buffer_size": 82, + "maximum_incoming_transfer_size": 82, + "server_mask": 11264, + "maximum_outgoing_transfer_size": 82, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "ON_OFF_PLUG_IN_UNIT", + "id": 266 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "IKEA of Sweden" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "INSPELNING Smart plug" + } + ] + }, + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0005", + "endpoint_attribute": "scenes", + "attributes": [] + }, + { + "cluster_id": "0x0006", + "endpoint_attribute": "on_off", + "attributes": [ + { + "id": "0x0000", + "name": "on_off", + "zcl_type": "bool", + "value": 1 + }, + { + "id": "0x4003", + "name": "start_up_on_off", + "zcl_type": "enum8", + "value": 255 + } + ] + }, + { + "cluster_id": "0x0702", + "endpoint_attribute": "smartenergy_metering", + "attributes": [ + { + "id": "0x0000", + "name": "current_summ_delivered", + "zcl_type": "uint48", + "value": 15 + }, + { + "id": "0x0001", + "name": "current_summ_received", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0100", + "name": "current_tier1_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0102", + "name": "current_tier2_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0104", + "name": "current_tier3_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0106", + "name": "current_tier4_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0108", + "name": "current_tier5_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x010a", + "name": "current_tier6_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0304", + "name": "demand_formatting", + "zcl_type": "map8", + "unsupported": true + }, + { + "id": "0x0302", + "name": "divisor", + "zcl_type": "uint24", + "value": 1000 + }, + { + "id": "0x0400", + "name": "instantaneous_demand", + "zcl_type": "int24", + "unsupported": true + }, + { + "id": "0x0306", + "name": "metering_device_type", + "zcl_type": "map8", + "value": 0 + }, + { + "id": "0x0301", + "name": "multiplier", + "zcl_type": "uint24", + "value": 1 + }, + { + "id": "0x0200", + "name": "status", + "zcl_type": "map8", + "value": 0 + }, + { + "id": "0x0303", + "name": "summation_formatting", + "zcl_type": "map8", + "value": 251 + }, + { + "id": "0x0300", + "name": "unit_of_measure", + "zcl_type": "enum8", + "value": 0 + } + ] + }, + { + "cluster_id": "0x0b04", + "endpoint_attribute": "electrical_measurement", + "attributes": [ + { + "id": "0x0603", + "name": "ac_current_divisor", + "zcl_type": "uint16", + "value": 1000 + }, + { + "id": "0x0602", + "name": "ac_current_multiplier", + "zcl_type": "uint16", + "value": 1 + }, + { + "id": "0x0300", + "name": "ac_frequency", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0401", + "name": "ac_frequency_divisor", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0302", + "name": "ac_frequency_max", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0400", + "name": "ac_frequency_multiplier", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0605", + "name": "ac_power_divisor", + "zcl_type": "uint16", + "value": 10 + }, + { + "id": "0x0604", + "name": "ac_power_multiplier", + "zcl_type": "uint16", + "value": 1 + }, + { + "id": "0x0601", + "name": "ac_voltage_divisor", + "zcl_type": "uint16", + "value": 10 + }, + { + "id": "0x0600", + "name": "ac_voltage_multiplier", + "zcl_type": "uint16", + "value": 1 + }, + { + "id": "0x050b", + "name": "active_power", + "zcl_type": "int16", + "value": 0 + }, + { + "id": "0x050d", + "name": "active_power_max", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x050f", + "name": "apparent_power", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0000", + "name": "measurement_type", + "zcl_type": "map32", + "value": 9 + }, + { + "id": "0x0403", + "name": "power_divisor", + "zcl_type": "uint32", + "unsupported": true + }, + { + "id": "0x0510", + "name": "power_factor", + "zcl_type": "int8", + "unsupported": true + }, + { + "id": "0x0402", + "name": "power_multiplier", + "zcl_type": "uint32", + "unsupported": true + }, + { + "id": "0x0508", + "name": "rms_current", + "zcl_type": "uint16", + "value": 3 + }, + { + "id": "0x050a", + "name": "rms_current_max", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0505", + "name": "rms_voltage", + "zcl_type": "uint16", + "value": 233 + }, + { + "id": "0x0507", + "name": "rms_voltage_max", + "zcl_type": "uint16", + "unsupported": true + } + ] + }, + { + "cluster_id": "0x1000", + "endpoint_attribute": "lightlink", + "attributes": [] + }, + { + "cluster_id": "0xfc7c", + "endpoint_attribute": "manufacturer_specific", + "attributes": [] + }, + { + "cluster_id": "0xfc85", + "endpoint_attribute": null, + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [ + { + "id": "0x0002", + "name": "current_file_version", + "zcl_type": "uint32", + "value": 33816628 + } + ] + } + ] + }, + "242": { + "profile_id": 41440, + "device_type": { + "name": "PROXY_BASIC", + "id": 97 + }, + "in_clusters": [ + { + "cluster_id": "0x0021", + "endpoint_attribute": "green_power", + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x0021", + "endpoint_attribute": "green_power", + "attributes": [] + } + ] + } + }, + "zha_lib_entities": { + "button": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:85:26:77:ae-1-3", + "migrate_unique_ids": [], + "platform": "button", + "class_name": "IdentifyButton", + "translation_key": null, + "translation_placeholders": null, + "device_class": "identify", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:85:26:77:ae", + "endpoint_id": 1, + "available": true, + "group_id": null, + "command": "identify", + "args": [ + 5 + ], + "kwargs": {} + }, + "state": { + "class_name": "IdentifyButton", + "available": true + } + } + ], + "select": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:85:26:77:ae-1-6-StartUpOnOff", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "StartupOnOffSelectEntity", + "translation_key": "start_up_on_off", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:85:26:77:ae", + "endpoint_id": 1, + "available": true, + "group_id": null, + "enum": "StartUpOnOff", + "options": [ + "Off", + "On", + "Toggle", + "PreviousValue" + ] + }, + "state": { + "class_name": "StartupOnOffSelectEntity", + "available": true, + "state": "PreviousValue" + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:85:26:77:ae-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:85:26:77:ae", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:85:26:77:ae-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:85:26:77:ae", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:85:26:77:ae-1-1794-summation_delivered", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "SmartEnergySummation", + "translation_key": "summation_delivered", + "translation_placeholders": null, + "device_class": "energy", + "state_class": "total_increasing", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:85:26:77:ae", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 3, + "unit": "kWh" + }, + "state": { + "class_name": "SmartEnergySummation", + "available": true, + "state": 0.015, + "device_type": "Electric Metering", + "status": "NO_ALARMS", + "zcl_unit_of_measurement": 0 + }, + "extra_state_attributes": [ + "device_type", + "status", + "zcl_unit_of_measurement" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:85:26:77:ae-1-2820", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "ElectricalMeasurementActivePower", + "translation_key": null, + "translation_placeholders": null, + "device_class": "power", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:85:26:77:ae", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 1, + "unit": "W" + }, + "state": { + "class_name": "ElectricalMeasurementActivePower", + "available": true, + "state": 0.0, + "measurement_type": "ACTIVE_MEASUREMENT, PHASE_A_MEASUREMENT" + }, + "extra_state_attributes": [ + "active_power_max", + "measurement_type" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:85:26:77:ae-1-2820-rms_current", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "ElectricalMeasurementRMSCurrent", + "translation_key": null, + "translation_placeholders": null, + "device_class": "current", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:85:26:77:ae", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 2, + "unit": "A" + }, + "state": { + "class_name": "ElectricalMeasurementRMSCurrent", + "available": true, + "state": 0.003, + "measurement_type": "ACTIVE_MEASUREMENT, PHASE_A_MEASUREMENT" + }, + "extra_state_attributes": [ + "measurement_type", + "rms_current_max" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:85:26:77:ae-1-2820-rms_voltage", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "ElectricalMeasurementRMSVoltage", + "translation_key": null, + "translation_placeholders": null, + "device_class": "voltage", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:85:26:77:ae", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 1, + "unit": "V" + }, + "state": { + "class_name": "ElectricalMeasurementRMSVoltage", + "available": true, + "state": 23.3, + "measurement_type": "ACTIVE_MEASUREMENT, PHASE_A_MEASUREMENT" + }, + "extra_state_attributes": [ + "measurement_type", + "rms_voltage_max" + ] + } + ], + "switch": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:85:26:77:ae-1", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "Switch", + "translation_key": "switch", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": true, + "device_ieee": "ab:cd:ef:12:85:26:77:ae", + "endpoint_id": 1, + "available": true, + "group_id": null + }, + "state": { + "class_name": "Switch", + "state": 1, + "available": true + } + }, + { + "info_object": { + "fallback_name": "Child lock", + "unique_id": "ab:cd:ef:12:85:26:77:ae-1-child_lock", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "ConfigurableAttributeSwitch", + "translation_key": "child_lock", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:85:26:77:ae", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "child_lock", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 0, + "on_value": 1 + }, + "state": { + "class_name": "ConfigurableAttributeSwitch", + "available": true, + "state": false, + "inverted": false + } + }, + { + "info_object": { + "fallback_name": "Disable LED", + "unique_id": "ab:cd:ef:12:85:26:77:ae-1-enable_led", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "ConfigurableAttributeSwitch", + "translation_key": "disable_led", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:85:26:77:ae", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "enable_led", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 1, + "on_value": 0 + }, + "state": { + "class_name": "ConfigurableAttributeSwitch", + "available": true, + "state": false, + "inverted": false + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:85:26:77:ae-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:85:26:77:ae", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": "0x02040034", + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/ikea-of-sweden-parasoll-door-window-sensor.json b/tests/data/legacy_devices/ikea-of-sweden-parasoll-door-window-sensor.json new file mode 100644 index 000000000..f3b7f4738 --- /dev/null +++ b/tests/data/legacy_devices/ikea-of-sweden-parasoll-door-window-sensor.json @@ -0,0 +1,418 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:43:1a:e3:7a", + "nwk": "0x093D", + "manufacturer": "IKEA of Sweden", + "model": "PARASOLL Door/Window Sensor", + "friendly_manufacturer": "IKEA of Sweden", + "friendly_model": "PARASOLL Door/Window Sensor", + "name": "IKEA of Sweden PARASOLL Door/Window Sensor", + "quirk_applied": false, + "quirk_class": "zigpy.device.Device", + "exposes_features": [], + "manufacturer_code": 4476, + "power_source": "Battery or Unknown", + "lqi": null, + "rssi": null, + "last_seen": "2024-01-08T21:45:25", + "available": true, + "device_type": "EndDevice", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "EndDevice", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 128, + "manufacturer_code": 4476, + "maximum_buffer_size": 82, + "maximum_incoming_transfer_size": 82, + "server_mask": 11264, + "maximum_outgoing_transfer_size": 82, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "ON_OFF_LIGHT_SWITCH", + "id": 259 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "IKEA of Sweden" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "PARASOLL Door/Window Sensor" + } + ] + }, + { + "cluster_id": "0x0001", + "endpoint_attribute": "power", + "attributes": [ + { + "id": "0x0021", + "name": "battery_percentage_remaining", + "zcl_type": "uint8", + "value": 200 + }, + { + "id": "0x0033", + "name": "battery_quantity", + "zcl_type": "uint8", + "value": 1 + }, + { + "id": "0x0031", + "name": "battery_size", + "zcl_type": "enum8", + "value": 4 + }, + { + "id": "0x0020", + "name": "battery_voltage", + "zcl_type": "uint8", + "value": 14 + } + ] + }, + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0020", + "endpoint_attribute": "poll_control", + "attributes": [ + { + "id": "0x0000", + "name": "checkin_interval", + "zcl_type": "uint32", + "value": 13200 + } + ] + }, + { + "cluster_id": "0x0b05", + "endpoint_attribute": "diagnostic", + "attributes": [] + }, + { + "cluster_id": "0x1000", + "endpoint_attribute": "lightlink", + "attributes": [] + }, + { + "cluster_id": "0xfc7c", + "endpoint_attribute": "manufacturer_specific", + "attributes": [] + }, + { + "cluster_id": "0xfc81", + "endpoint_attribute": "manufacturer_specific", + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0006", + "endpoint_attribute": "on_off", + "attributes": [] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [] + }, + { + "cluster_id": "0x1000", + "endpoint_attribute": "lightlink", + "attributes": [] + } + ] + }, + "2": { + "profile_id": 260, + "device_type": { + "name": "IAS_ZONE", + "id": 1026 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [] + }, + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0500", + "endpoint_attribute": "ias_zone", + "attributes": [ + { + "id": "0x0010", + "name": "cie_addr", + "zcl_type": "EUI64", + "value": [ + 50, + 79, + 50, + 2, + 0, + 141, + 21, + 0 + ] + }, + { + "id": "0x0000", + "name": "zone_state", + "zcl_type": "enum8", + "value": 1 + }, + { + "id": "0x0002", + "name": "zone_status", + "zcl_type": "map16", + "value": 1 + }, + { + "id": "0x0001", + "name": "zone_type", + "zcl_type": "enum16", + "value": 21 + } + ] + } + ], + "out_clusters": [ + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + } + ] + } + }, + "zha_lib_entities": { + "binary_sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:43:1a:e3:7a-2-1280", + "migrate_unique_ids": [], + "platform": "binary_sensor", + "class_name": "IASZone", + "translation_key": null, + "translation_placeholders": null, + "device_class": "opening", + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": true, + "device_ieee": "ab:cd:ef:12:43:1a:e3:7a", + "endpoint_id": 2, + "available": true, + "group_id": null, + "attribute_name": "zone_status" + }, + "state": { + "class_name": "IASZone", + "available": true, + "state": true + } + } + ], + "button": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:43:1a:e3:7a-1-3", + "migrate_unique_ids": [], + "platform": "button", + "class_name": "IdentifyButton", + "translation_key": null, + "translation_placeholders": null, + "device_class": "identify", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:43:1a:e3:7a", + "endpoint_id": 1, + "available": true, + "group_id": null, + "command": "identify", + "args": [ + 5 + ], + "kwargs": {} + }, + "state": { + "class_name": "IdentifyButton", + "available": true + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:43:1a:e3:7a-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:43:1a:e3:7a", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:43:1a:e3:7a-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:43:1a:e3:7a", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:43:1a:e3:7a-1-1", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Battery", + "translation_key": null, + "translation_placeholders": null, + "device_class": "battery", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:43:1a:e3:7a", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 0, + "unit": "%" + }, + "state": { + "class_name": "Battery", + "available": true, + "state": 100.0, + "battery_size": "AAA", + "battery_quantity": 1, + "battery_voltage": 1.4 + }, + "extra_state_attributes": [ + "battery_quantity", + "battery_size", + "battery_voltage" + ] + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:43:1a:e3:7a-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:43:1a:e3:7a", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": null, + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/ikea-of-sweden-remote-control-n2-0x02040011.json b/tests/data/legacy_devices/ikea-of-sweden-remote-control-n2-0x02040011.json new file mode 100644 index 000000000..37d1955c0 --- /dev/null +++ b/tests/data/legacy_devices/ikea-of-sweden-remote-control-n2-0x02040011.json @@ -0,0 +1,342 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:6b:e7:d0:70", + "nwk": "0x31D6", + "manufacturer": "IKEA of Sweden", + "model": "Remote Control N2", + "friendly_manufacturer": "IKEA of Sweden", + "friendly_model": "Remote Control N2", + "name": "IKEA of Sweden Remote Control N2", + "quirk_applied": true, + "quirk_class": "zhaquirks.ikea.fourbtnremote:(IKEA of Sweden / Remote Control N2)", + "exposes_features": [], + "manufacturer_code": 4476, + "power_source": "Battery or Unknown", + "lqi": null, + "rssi": null, + "last_seen": "2024-05-05T14:16:53+00:00", + "available": true, + "device_type": "EndDevice", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "EndDevice", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 128, + "manufacturer_code": 4476, + "maximum_buffer_size": 82, + "maximum_incoming_transfer_size": 82, + "server_mask": 11264, + "maximum_outgoing_transfer_size": 82, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "NON_COLOR_CONTROLLER", + "id": 2080 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "IKEA of Sweden" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "Remote Control N2" + } + ] + }, + { + "cluster_id": "0x0001", + "endpoint_attribute": "power", + "attributes": [ + { + "id": "0x0021", + "name": "battery_percentage_remaining", + "zcl_type": "uint8", + "value": 168 + }, + { + "id": "0x0033", + "name": "battery_quantity", + "zcl_type": "uint8", + "value": 2 + }, + { + "id": "0x0034", + "name": "battery_rated_voltage", + "zcl_type": "uint8", + "value": 15 + }, + { + "id": "0x0031", + "name": "battery_size", + "zcl_type": "enum8", + "value": 4 + }, + { + "id": "0x0020", + "name": "battery_voltage", + "zcl_type": "uint8", + "value": 26 + } + ] + }, + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0020", + "endpoint_attribute": "poll_control", + "attributes": [ + { + "id": "0x0000", + "name": "checkin_interval", + "zcl_type": "uint32", + "value": 13200 + } + ] + }, + { + "cluster_id": "0x1000", + "endpoint_attribute": "lightlink", + "attributes": [] + }, + { + "cluster_id": "0xfc7c", + "endpoint_attribute": "manufacturer_specific", + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0005", + "endpoint_attribute": "scenes", + "attributes": [] + }, + { + "cluster_id": "0x0006", + "endpoint_attribute": "on_off", + "attributes": [] + }, + { + "cluster_id": "0x0008", + "endpoint_attribute": "level", + "attributes": [] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [ + { + "id": "0x0002", + "name": "current_file_version", + "zcl_type": "uint32", + "value": 33816593 + } + ] + }, + { + "cluster_id": "0x1000", + "endpoint_attribute": "lightlink", + "attributes": [] + } + ] + } + }, + "zha_lib_entities": { + "button": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:6b:e7:d0:70-1-3", + "migrate_unique_ids": [], + "platform": "button", + "class_name": "IdentifyButton", + "translation_key": null, + "translation_placeholders": null, + "device_class": "identify", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:6b:e7:d0:70", + "endpoint_id": 1, + "available": true, + "group_id": null, + "command": "identify", + "args": [ + 5 + ], + "kwargs": {} + }, + "state": { + "class_name": "IdentifyButton", + "available": true + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:6b:e7:d0:70-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:6b:e7:d0:70", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:6b:e7:d0:70-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:6b:e7:d0:70", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:6b:e7:d0:70-1-1", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Battery", + "translation_key": null, + "translation_placeholders": null, + "device_class": "battery", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:6b:e7:d0:70", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 0, + "unit": "%" + }, + "state": { + "class_name": "Battery", + "available": true, + "state": 84.0, + "battery_size": "AAA", + "battery_quantity": 2, + "battery_voltage": 2.6 + }, + "extra_state_attributes": [ + "battery_quantity", + "battery_size", + "battery_voltage" + ] + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:6b:e7:d0:70-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:6b:e7:d0:70", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": "0x02040011", + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/ikea-of-sweden-tradfri-open-close-remote.json b/tests/data/legacy_devices/ikea-of-sweden-tradfri-open-close-remote.json new file mode 100644 index 000000000..9b95dfde7 --- /dev/null +++ b/tests/data/legacy_devices/ikea-of-sweden-tradfri-open-close-remote.json @@ -0,0 +1,317 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:1c:2a:5f:c2", + "nwk": "0x0E73", + "manufacturer": "IKEA of Sweden", + "model": "TRADFRI open/close remote", + "friendly_manufacturer": "IKEA of Sweden", + "friendly_model": "TRADFRI open/close remote", + "name": "IKEA of Sweden TRADFRI open/close remote", + "quirk_applied": false, + "quirk_class": "zigpy.device.Device", + "exposes_features": [], + "manufacturer_code": 4476, + "power_source": "Battery or Unknown", + "lqi": null, + "rssi": null, + "last_seen": "2023-06-23T10:38:12", + "available": true, + "device_type": "EndDevice", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "EndDevice", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 128, + "manufacturer_code": 4476, + "maximum_buffer_size": 82, + "maximum_incoming_transfer_size": 82, + "server_mask": 11264, + "maximum_outgoing_transfer_size": 82, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "WINDOW_COVERING_CONTROLLER", + "id": 515 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [] + }, + { + "cluster_id": "0x0001", + "endpoint_attribute": "power", + "attributes": [ + { + "id": "0x0021", + "name": "battery_percentage_remaining", + "zcl_type": "uint8", + "value": 300 + }, + { + "id": "0x0033", + "name": "battery_quantity", + "zcl_type": "uint8", + "value": 1 + }, + { + "id": "0x0034", + "name": "battery_rated_voltage", + "zcl_type": "uint8", + "value": 30 + }, + { + "id": "0x0031", + "name": "battery_size", + "zcl_type": "enum8", + "value": 10 + }, + { + "id": "0x0020", + "name": "battery_voltage", + "zcl_type": "uint8", + "value": 28 + } + ] + }, + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0009", + "endpoint_attribute": "alarms", + "attributes": [] + }, + { + "cluster_id": "0x0020", + "endpoint_attribute": "poll_control", + "attributes": [ + { + "id": "0x0000", + "name": "checkin_interval", + "zcl_type": "uint32", + "value": 13200 + } + ] + }, + { + "cluster_id": "0x1000", + "endpoint_attribute": "lightlink", + "attributes": [] + }, + { + "cluster_id": "0xfc7c", + "endpoint_attribute": "manufacturer_specific", + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0008", + "endpoint_attribute": "level", + "attributes": [] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [] + }, + { + "cluster_id": "0x0102", + "endpoint_attribute": "window_covering", + "attributes": [] + }, + { + "cluster_id": "0x1000", + "endpoint_attribute": "lightlink", + "attributes": [] + } + ] + } + }, + "zha_lib_entities": { + "button": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:1c:2a:5f:c2-1-3", + "migrate_unique_ids": [], + "platform": "button", + "class_name": "IdentifyButton", + "translation_key": null, + "translation_placeholders": null, + "device_class": "identify", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:1c:2a:5f:c2", + "endpoint_id": 1, + "available": true, + "group_id": null, + "command": "identify", + "args": [ + 5 + ], + "kwargs": {} + }, + "state": { + "class_name": "IdentifyButton", + "available": true + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:1c:2a:5f:c2-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:1c:2a:5f:c2", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:1c:2a:5f:c2-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:1c:2a:5f:c2", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:1c:2a:5f:c2-1-1", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Battery", + "translation_key": null, + "translation_placeholders": null, + "device_class": "battery", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:1c:2a:5f:c2", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 0, + "unit": "%" + }, + "state": { + "class_name": "Battery", + "available": true, + "state": 150.0, + "battery_size": "CR2032", + "battery_quantity": 1, + "battery_voltage": 2.8 + }, + "extra_state_attributes": [ + "battery_quantity", + "battery_size", + "battery_voltage" + ] + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:1c:2a:5f:c2-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:1c:2a:5f:c2", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": null, + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/ikea-of-sweden-tradfri-shortcut-button-0x24040006.json b/tests/data/legacy_devices/ikea-of-sweden-tradfri-shortcut-button-0x24040006.json new file mode 100644 index 000000000..f8ca94f98 --- /dev/null +++ b/tests/data/legacy_devices/ikea-of-sweden-tradfri-shortcut-button-0x24040006.json @@ -0,0 +1,338 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:7d:a7:c6:3b", + "nwk": "0x76EF", + "manufacturer": "IKEA of Sweden", + "model": "TRADFRI SHORTCUT Button", + "friendly_manufacturer": "IKEA of Sweden", + "friendly_model": "TRADFRI SHORTCUT Button", + "name": "IKEA of Sweden TRADFRI SHORTCUT Button", + "quirk_applied": false, + "quirk_class": "zigpy.device.Device", + "exposes_features": [], + "manufacturer_code": 4476, + "power_source": "Battery or Unknown", + "lqi": null, + "rssi": null, + "last_seen": "2024-03-02T11:44:24", + "available": true, + "device_type": "EndDevice", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "EndDevice", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 128, + "manufacturer_code": 4476, + "maximum_buffer_size": 82, + "maximum_incoming_transfer_size": 82, + "server_mask": 11264, + "maximum_outgoing_transfer_size": 82, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "NON_COLOR_CONTROLLER", + "id": 2080 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "IKEA of Sweden" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "TRADFRI SHORTCUT Button" + }, + { + "id": "0x4000", + "name": "sw_build_id", + "zcl_type": "string", + "value": "24.4.6" + } + ] + }, + { + "cluster_id": "0x0001", + "endpoint_attribute": "power", + "attributes": [ + { + "id": "0x0021", + "name": "battery_percentage_remaining", + "zcl_type": "uint8", + "value": 180 + }, + { + "id": "0x0033", + "name": "battery_quantity", + "zcl_type": "uint8", + "value": 1 + }, + { + "id": "0x0034", + "name": "battery_rated_voltage", + "zcl_type": "uint8", + "value": 30 + }, + { + "id": "0x0031", + "name": "battery_size", + "zcl_type": "enum8", + "value": 10 + }, + { + "id": "0x0020", + "name": "battery_voltage", + "zcl_type": "uint8", + "value": 29 + } + ] + }, + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0009", + "endpoint_attribute": "alarms", + "attributes": [] + }, + { + "cluster_id": "0x0020", + "endpoint_attribute": "poll_control", + "attributes": [ + { + "id": "0x0000", + "name": "checkin_interval", + "zcl_type": "uint32", + "value": 13200 + } + ] + }, + { + "cluster_id": "0x1000", + "endpoint_attribute": "lightlink", + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0006", + "endpoint_attribute": "on_off", + "attributes": [] + }, + { + "cluster_id": "0x0008", + "endpoint_attribute": "level", + "attributes": [] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [ + { + "id": "0x0002", + "name": "current_file_version", + "zcl_type": "uint32", + "value": 604241926 + } + ] + }, + { + "cluster_id": "0x1000", + "endpoint_attribute": "lightlink", + "attributes": [] + } + ] + } + }, + "zha_lib_entities": { + "button": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:7d:a7:c6:3b-1-3", + "migrate_unique_ids": [], + "platform": "button", + "class_name": "IdentifyButton", + "translation_key": null, + "translation_placeholders": null, + "device_class": "identify", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:7d:a7:c6:3b", + "endpoint_id": 1, + "available": true, + "group_id": null, + "command": "identify", + "args": [ + 5 + ], + "kwargs": {} + }, + "state": { + "class_name": "IdentifyButton", + "available": true + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:7d:a7:c6:3b-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:7d:a7:c6:3b", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:7d:a7:c6:3b-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:7d:a7:c6:3b", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:7d:a7:c6:3b-1-1", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Battery", + "translation_key": null, + "translation_placeholders": null, + "device_class": "battery", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:7d:a7:c6:3b", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 0, + "unit": "%" + }, + "state": { + "class_name": "Battery", + "available": true, + "state": 90.0, + "battery_size": "CR2032", + "battery_quantity": 1, + "battery_voltage": 2.9 + }, + "extra_state_attributes": [ + "battery_quantity", + "battery_size", + "battery_voltage" + ] + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:7d:a7:c6:3b-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:7d:a7:c6:3b", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": "0x24040006", + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/ikea-of-sweden-vallhorn-wireless-motion-sensor.json b/tests/data/legacy_devices/ikea-of-sweden-vallhorn-wireless-motion-sensor.json new file mode 100644 index 000000000..3a55003eb --- /dev/null +++ b/tests/data/legacy_devices/ikea-of-sweden-vallhorn-wireless-motion-sensor.json @@ -0,0 +1,558 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:3d:33:d8:e2", + "nwk": "0x1A6A", + "manufacturer": "IKEA of Sweden", + "model": "VALLHORN Wireless Motion Sensor", + "friendly_manufacturer": "IKEA of Sweden", + "friendly_model": "VALLHORN Wireless Motion Sensor", + "name": "IKEA of Sweden VALLHORN Wireless Motion Sensor", + "quirk_applied": true, + "quirk_class": "zhaquirks.ikea.vallhorn:(IKEA of Sweden / VALLHORN Wireless Motion Sensor)", + "exposes_features": [], + "manufacturer_code": 4476, + "power_source": "Battery or Unknown", + "lqi": null, + "rssi": null, + "last_seen": "2024-05-23T03:32:51+00:00", + "available": true, + "device_type": "EndDevice", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "EndDevice", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 128, + "manufacturer_code": 4476, + "maximum_buffer_size": 82, + "maximum_incoming_transfer_size": 82, + "server_mask": 11264, + "maximum_outgoing_transfer_size": 82, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "ON_OFF_SENSOR", + "id": 2128 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "IKEA of Sweden" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "VALLHORN Wireless Motion Sensor" + } + ] + }, + { + "cluster_id": "0x0001", + "endpoint_attribute": "power", + "attributes": [ + { + "id": "0x0021", + "name": "battery_percentage_remaining", + "zcl_type": "uint8", + "value": 162 + }, + { + "id": "0x0033", + "name": "battery_quantity", + "zcl_type": "uint8", + "value": 2 + }, + { + "id": "0x0031", + "name": "battery_size", + "zcl_type": "enum8", + "value": 4 + }, + { + "id": "0x0020", + "name": "battery_voltage", + "zcl_type": "uint8", + "value": 26 + } + ] + }, + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0020", + "endpoint_attribute": "poll_control", + "attributes": [ + { + "id": "0x0000", + "name": "checkin_interval", + "zcl_type": "uint32", + "value": 13200 + } + ] + }, + { + "cluster_id": "0x0b05", + "endpoint_attribute": "diagnostic", + "attributes": [] + }, + { + "cluster_id": "0x1000", + "endpoint_attribute": "lightlink", + "attributes": [] + }, + { + "cluster_id": "0xfc7c", + "endpoint_attribute": "manufacturer_specific", + "attributes": [] + }, + { + "cluster_id": "0xfc81", + "endpoint_attribute": null, + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0006", + "endpoint_attribute": "on_off", + "attributes": [ + { + "id": "0x0000", + "name": "on_off", + "zcl_type": "bool", + "value": 0 + } + ] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [] + }, + { + "cluster_id": "0x1000", + "endpoint_attribute": "lightlink", + "attributes": [] + } + ] + }, + "2": { + "profile_id": 260, + "device_type": { + "name": "OCCUPANCY_SENSOR", + "id": 263 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [] + }, + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0406", + "endpoint_attribute": "occupancy", + "attributes": [ + { + "id": "0x0000", + "name": "occupancy", + "zcl_type": "map8", + "value": 1 + } + ] + } + ], + "out_clusters": [ + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + } + ] + }, + "3": { + "profile_id": 260, + "device_type": { + "name": "LIGHT_SENSOR", + "id": 262 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [] + }, + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0400", + "endpoint_attribute": "illuminance", + "attributes": [ + { + "id": "0x0000", + "name": "measured_value", + "zcl_type": "uint16", + "value": 16812 + } + ] + } + ], + "out_clusters": [ + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + } + ] + } + }, + "zha_lib_entities": { + "binary_sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:3d:33:d8:e2-1-6", + "migrate_unique_ids": [], + "platform": "binary_sensor", + "class_name": "Opening", + "translation_key": null, + "translation_placeholders": null, + "device_class": "opening", + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:3d:33:d8:e2", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "on_off" + }, + "state": { + "class_name": "Opening", + "available": true, + "state": false + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:3d:33:d8:e2-2-1030", + "migrate_unique_ids": [], + "platform": "binary_sensor", + "class_name": "Occupancy", + "translation_key": null, + "translation_placeholders": null, + "device_class": "occupancy", + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": true, + "device_ieee": "ab:cd:ef:12:3d:33:d8:e2", + "endpoint_id": 2, + "available": true, + "group_id": null, + "attribute_name": "occupancy" + }, + "state": { + "class_name": "Occupancy", + "available": true, + "state": true + } + } + ], + "button": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:3d:33:d8:e2-1-3", + "migrate_unique_ids": [], + "platform": "button", + "class_name": "IdentifyButton", + "translation_key": null, + "translation_placeholders": null, + "device_class": "identify", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:3d:33:d8:e2", + "endpoint_id": 1, + "available": true, + "group_id": null, + "command": "identify", + "args": [ + 5 + ], + "kwargs": {} + }, + "state": { + "class_name": "IdentifyButton", + "available": true + } + } + ], + "number": [ + { + "info_object": { + "fallback_name": "On time", + "unique_id": "ab:cd:ef:12:3d:33:d8:e2-1-on_time", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "on_time", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:3d:33:d8:e2", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 65534, + "native_min_value": 10, + "native_step": 1, + "native_unit_of_measurement": "s" + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": null + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:3d:33:d8:e2-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:3d:33:d8:e2", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:3d:33:d8:e2-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:3d:33:d8:e2", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:3d:33:d8:e2-1-1", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Battery", + "translation_key": null, + "translation_placeholders": null, + "device_class": "battery", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:3d:33:d8:e2", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 0, + "unit": "%" + }, + "state": { + "class_name": "Battery", + "available": true, + "state": 81.0, + "battery_size": "AAA", + "battery_quantity": 2, + "battery_voltage": 2.6 + }, + "extra_state_attributes": [ + "battery_quantity", + "battery_size", + "battery_voltage" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:3d:33:d8:e2-3-1024", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Illuminance", + "translation_key": null, + "translation_placeholders": null, + "device_class": "illuminance", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:3d:33:d8:e2", + "endpoint_id": 3, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "lx" + }, + "state": { + "class_name": "Illuminance", + "available": true, + "state": 48 + } + } + ], + "switch": [ + { + "info_object": { + "fallback_name": "On only when dark", + "unique_id": "ab:cd:ef:12:3d:33:d8:e2-1-on_only_when_dark", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "ConfigurableAttributeSwitch", + "translation_key": "on_only_when_dark", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:3d:33:d8:e2", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "on_only_when_dark", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 0, + "on_value": 1 + }, + "state": { + "class_name": "ConfigurableAttributeSwitch", + "available": true, + "state": false, + "inverted": false + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:3d:33:d8:e2-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:3d:33:d8:e2", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": null, + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/innr-rc-250.json b/tests/data/legacy_devices/innr-rc-250.json new file mode 100644 index 000000000..ad970c3f0 --- /dev/null +++ b/tests/data/legacy_devices/innr-rc-250.json @@ -0,0 +1,317 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:25:3a:b6:6f", + "nwk": "0x47B0", + "manufacturer": "innr", + "model": "RC 250", + "friendly_manufacturer": "innr", + "friendly_model": "RC 250", + "name": "innr RC 250", + "quirk_applied": false, + "quirk_class": "zigpy.device.Device", + "exposes_features": [], + "manufacturer_code": 4454, + "power_source": "Battery or Unknown", + "lqi": null, + "rssi": null, + "last_seen": "2024-01-18T01:47:57", + "available": true, + "device_type": "EndDevice", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "EndDevice", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 128, + "manufacturer_code": 4454, + "maximum_buffer_size": 82, + "maximum_incoming_transfer_size": 82, + "server_mask": 11264, + "maximum_outgoing_transfer_size": 82, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "COLOR_DIMMER_SWITCH", + "id": 261 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "innr" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "RC 250" + } + ] + }, + { + "cluster_id": "0x0001", + "endpoint_attribute": "power", + "attributes": [ + { + "id": "0x0021", + "name": "battery_percentage_remaining", + "zcl_type": "uint8", + "value": 20 + }, + { + "id": "0x0033", + "name": "battery_quantity", + "zcl_type": "uint8", + "value": 1 + }, + { + "id": "0x0031", + "name": "battery_size", + "zcl_type": "enum8", + "value": 2 + }, + { + "id": "0x0020", + "name": "battery_voltage", + "zcl_type": "uint8", + "value": 25 + } + ] + }, + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0b05", + "endpoint_attribute": "diagnostic", + "attributes": [] + }, + { + "cluster_id": "0x1000", + "endpoint_attribute": "lightlink", + "attributes": [] + }, + { + "cluster_id": "0xfd01", + "endpoint_attribute": "manufacturer_specific", + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0006", + "endpoint_attribute": "on_off", + "attributes": [] + }, + { + "cluster_id": "0x0008", + "endpoint_attribute": "level", + "attributes": [] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [] + }, + { + "cluster_id": "0x0300", + "endpoint_attribute": "light_color", + "attributes": [] + }, + { + "cluster_id": "0x1000", + "endpoint_attribute": "lightlink", + "attributes": [] + } + ] + } + }, + "zha_lib_entities": { + "button": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:25:3a:b6:6f-1-3", + "migrate_unique_ids": [], + "platform": "button", + "class_name": "IdentifyButton", + "translation_key": null, + "translation_placeholders": null, + "device_class": "identify", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:25:3a:b6:6f", + "endpoint_id": 1, + "available": true, + "group_id": null, + "command": "identify", + "args": [ + 5 + ], + "kwargs": {} + }, + "state": { + "class_name": "IdentifyButton", + "available": true + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:25:3a:b6:6f-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:25:3a:b6:6f", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:25:3a:b6:6f-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:25:3a:b6:6f", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:25:3a:b6:6f-1-1", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Battery", + "translation_key": null, + "translation_placeholders": null, + "device_class": "battery", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:25:3a:b6:6f", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 0, + "unit": "%" + }, + "state": { + "class_name": "Battery", + "available": true, + "state": 10.0, + "battery_size": "Other", + "battery_quantity": 1, + "battery_voltage": 2.5 + }, + "extra_state_attributes": [ + "battery_quantity", + "battery_size", + "battery_voltage" + ] + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:25:3a:b6:6f-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:25:3a:b6:6f", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": null, + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/innr-sp-240.json b/tests/data/legacy_devices/innr-sp-240.json new file mode 100644 index 000000000..d3155e749 --- /dev/null +++ b/tests/data/legacy_devices/innr-sp-240.json @@ -0,0 +1,738 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:39:51:53:67", + "nwk": "0x329D", + "manufacturer": "innr", + "model": "SP 240", + "friendly_manufacturer": "innr", + "friendly_model": "SP 240", + "name": "innr SP 240", + "quirk_applied": true, + "quirk_class": "zhaquirks.innr.innr_sp240_plug:(innr / SP 240)", + "exposes_features": [], + "manufacturer_code": 4454, + "power_source": "Mains", + "lqi": null, + "rssi": null, + "last_seen": "2023-11-27T02:32:06+00:00", + "available": true, + "device_type": "Router", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "Router", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 142, + "manufacturer_code": 4454, + "maximum_buffer_size": 66, + "maximum_incoming_transfer_size": 66, + "server_mask": 10752, + "maximum_outgoing_transfer_size": 66, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "ON_OFF_PLUG_IN_UNIT", + "id": 266 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "innr" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "SP 240" + } + ] + }, + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0005", + "endpoint_attribute": "scenes", + "attributes": [] + }, + { + "cluster_id": "0x0006", + "endpoint_attribute": "on_off", + "attributes": [ + { + "id": "0x0000", + "name": "on_off", + "zcl_type": "bool", + "value": 1 + }, + { + "id": "0x4003", + "name": "start_up_on_off", + "zcl_type": "enum8", + "value": 255 + } + ] + }, + { + "cluster_id": "0x0008", + "endpoint_attribute": "level", + "attributes": [ + { + "id": "0x0000", + "name": "current_level", + "zcl_type": "uint8", + "value": 1 + }, + { + "id": "0x0014", + "name": "default_move_rate", + "zcl_type": "uint8", + "unsupported": true + }, + { + "id": "0x0013", + "name": "off_transition_time", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0011", + "name": "on_level", + "zcl_type": "uint8", + "unsupported": true + }, + { + "id": "0x0010", + "name": "on_off_transition_time", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0012", + "name": "on_transition_time", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x4000", + "name": "start_up_current_level", + "zcl_type": "uint8", + "unsupported": true + } + ] + }, + { + "cluster_id": "0x0702", + "endpoint_attribute": "smartenergy_metering", + "attributes": [ + { + "id": "0x0000", + "name": "current_summ_delivered", + "zcl_type": "uint48", + "value": 17 + }, + { + "id": "0x0100", + "name": "current_tier1_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0102", + "name": "current_tier2_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0104", + "name": "current_tier3_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0106", + "name": "current_tier4_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0108", + "name": "current_tier5_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x010a", + "name": "current_tier6_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0304", + "name": "demand_formatting", + "zcl_type": "map8", + "unsupported": true + }, + { + "id": "0x0302", + "name": "divisor", + "zcl_type": "uint24", + "value": 1000 + }, + { + "id": "0x0400", + "name": "instantaneous_demand", + "zcl_type": "int24", + "unsupported": true + }, + { + "id": "0x0306", + "name": "metering_device_type", + "zcl_type": "map8", + "value": 0 + }, + { + "id": "0x0301", + "name": "multiplier", + "zcl_type": "uint24", + "value": 1 + }, + { + "id": "0x0200", + "name": "status", + "zcl_type": "map8", + "value": 0 + }, + { + "id": "0x0303", + "name": "summation_formatting", + "zcl_type": "map8", + "value": 42 + }, + { + "id": "0x0300", + "name": "unit_of_measure", + "zcl_type": "enum8", + "value": 0 + } + ] + }, + { + "cluster_id": "0x0b04", + "endpoint_attribute": "electrical_measurement", + "attributes": [ + { + "id": "0x0603", + "name": "ac_current_divisor", + "zcl_type": "uint16", + "value": 1000 + }, + { + "id": "0x0602", + "name": "ac_current_multiplier", + "zcl_type": "uint16", + "value": 1 + }, + { + "id": "0x0300", + "name": "ac_frequency", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0401", + "name": "ac_frequency_divisor", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0302", + "name": "ac_frequency_max", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0400", + "name": "ac_frequency_multiplier", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0605", + "name": "ac_power_divisor", + "zcl_type": "uint16", + "value": 1 + }, + { + "id": "0x0604", + "name": "ac_power_multiplier", + "zcl_type": "uint16", + "value": 1 + }, + { + "id": "0x0601", + "name": "ac_voltage_divisor", + "zcl_type": "uint16", + "value": 1 + }, + { + "id": "0x0600", + "name": "ac_voltage_multiplier", + "zcl_type": "uint16", + "value": 1 + }, + { + "id": "0x050b", + "name": "active_power", + "zcl_type": "int16", + "value": 2 + }, + { + "id": "0x050d", + "name": "active_power_max", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x050f", + "name": "apparent_power", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0000", + "name": "measurement_type", + "zcl_type": "map32", + "value": 3221762439 + }, + { + "id": "0x0403", + "name": "power_divisor", + "zcl_type": "uint32", + "unsupported": true + }, + { + "id": "0x0510", + "name": "power_factor", + "zcl_type": "int8", + "unsupported": true + }, + { + "id": "0x0402", + "name": "power_multiplier", + "zcl_type": "uint32", + "unsupported": true + }, + { + "id": "0x0508", + "name": "rms_current", + "zcl_type": "uint16", + "value": 14 + }, + { + "id": "0x050a", + "name": "rms_current_max", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0505", + "name": "rms_voltage", + "zcl_type": "uint16", + "value": 236 + }, + { + "id": "0x0507", + "name": "rms_voltage_max", + "zcl_type": "uint16", + "unsupported": true + } + ] + }, + { + "cluster_id": "0x1000", + "endpoint_attribute": "lightlink", + "attributes": [] + }, + { + "cluster_id": "0xe001", + "endpoint_attribute": null, + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x000a", + "endpoint_attribute": "time", + "attributes": [] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [] + } + ] + }, + "242": { + "profile_id": 41440, + "device_type": { + "name": "PROXY_BASIC", + "id": 97 + }, + "in_clusters": [], + "out_clusters": [ + { + "cluster_id": "0x0021", + "endpoint_attribute": "green_power", + "attributes": [] + } + ] + } + }, + "zha_lib_entities": { + "button": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:39:51:53:67-1-3", + "migrate_unique_ids": [], + "platform": "button", + "class_name": "IdentifyButton", + "translation_key": null, + "translation_placeholders": null, + "device_class": "identify", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:39:51:53:67", + "endpoint_id": 1, + "available": true, + "group_id": null, + "command": "identify", + "args": [ + 5 + ], + "kwargs": {} + }, + "state": { + "class_name": "IdentifyButton", + "available": true + } + } + ], + "select": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:39:51:53:67-1-6-StartUpOnOff", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "StartupOnOffSelectEntity", + "translation_key": "start_up_on_off", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:39:51:53:67", + "endpoint_id": 1, + "available": true, + "group_id": null, + "enum": "StartUpOnOff", + "options": [ + "Off", + "On", + "Toggle", + "PreviousValue" + ] + }, + "state": { + "class_name": "StartupOnOffSelectEntity", + "available": true, + "state": "PreviousValue" + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:39:51:53:67-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:39:51:53:67", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:39:51:53:67-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:39:51:53:67", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:39:51:53:67-1-1794-summation_delivered", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "SmartEnergySummation", + "translation_key": "summation_delivered", + "translation_placeholders": null, + "device_class": "energy", + "state_class": "total_increasing", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:39:51:53:67", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 3, + "unit": "kWh" + }, + "state": { + "class_name": "SmartEnergySummation", + "available": true, + "state": 0.017, + "device_type": "Electric Metering", + "status": "NO_ALARMS", + "zcl_unit_of_measurement": 0 + }, + "extra_state_attributes": [ + "device_type", + "status", + "zcl_unit_of_measurement" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:39:51:53:67-1-2820", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "ElectricalMeasurementActivePower", + "translation_key": null, + "translation_placeholders": null, + "device_class": "power", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:39:51:53:67", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 1, + "unit": "W" + }, + "state": { + "class_name": "ElectricalMeasurementActivePower", + "available": true, + "state": 2.0, + "measurement_type": "ACTIVE_MEASUREMENT, REACTIVE_MEASUREMENT, APPARENT_MEASUREMENT, HARMONICS_MEASUREMENT, POWER_QUALITY_MEASUREMENT" + }, + "extra_state_attributes": [ + "active_power_max", + "measurement_type" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:39:51:53:67-1-2820-rms_current", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "ElectricalMeasurementRMSCurrent", + "translation_key": null, + "translation_placeholders": null, + "device_class": "current", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:39:51:53:67", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 2, + "unit": "A" + }, + "state": { + "class_name": "ElectricalMeasurementRMSCurrent", + "available": true, + "state": 0.014, + "measurement_type": "ACTIVE_MEASUREMENT, REACTIVE_MEASUREMENT, APPARENT_MEASUREMENT, HARMONICS_MEASUREMENT, POWER_QUALITY_MEASUREMENT" + }, + "extra_state_attributes": [ + "measurement_type", + "rms_current_max" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:39:51:53:67-1-2820-rms_voltage", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "ElectricalMeasurementRMSVoltage", + "translation_key": null, + "translation_placeholders": null, + "device_class": "voltage", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:39:51:53:67", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 1, + "unit": "V" + }, + "state": { + "class_name": "ElectricalMeasurementRMSVoltage", + "available": true, + "state": 236.0, + "measurement_type": "ACTIVE_MEASUREMENT, REACTIVE_MEASUREMENT, APPARENT_MEASUREMENT, HARMONICS_MEASUREMENT, POWER_QUALITY_MEASUREMENT" + }, + "extra_state_attributes": [ + "measurement_type", + "rms_voltage_max" + ] + } + ], + "switch": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:39:51:53:67-1", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "Switch", + "translation_key": "switch", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": true, + "device_ieee": "ab:cd:ef:12:39:51:53:67", + "endpoint_id": 1, + "available": true, + "group_id": null + }, + "state": { + "class_name": "Switch", + "state": 1, + "available": true + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:39:51:53:67-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:39:51:53:67", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": null, + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/keen-home-inc-sv01-410-mp-1-1.json b/tests/data/legacy_devices/keen-home-inc-sv01-410-mp-1-1.json new file mode 100644 index 000000000..a2a5fb49b --- /dev/null +++ b/tests/data/legacy_devices/keen-home-inc-sv01-410-mp-1-1.json @@ -0,0 +1,479 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:fe:6b:5b:c9", + "nwk": "0xB4B7", + "manufacturer": "Keen Home Inc", + "model": "SV01-410-MP-1.1", + "friendly_manufacturer": "Keen Home Inc", + "friendly_model": "SV01-410-MP-1.1", + "name": "Keen Home Inc SV01-410-MP-1.1", + "quirk_applied": true, + "quirk_class": "zhaquirks.keenhome.sv02612mp13:KeenHomeSmartVent", + "exposes_features": [], + "manufacturer_code": 4443, + "power_source": "Battery or Unknown", + "lqi": null, + "rssi": null, + "last_seen": "2025-04-09T20:05:18+00:00", + "available": true, + "device_type": "EndDevice", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "EndDevice", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 128, + "manufacturer_code": 4443, + "maximum_buffer_size": 82, + "maximum_incoming_transfer_size": 82, + "server_mask": 0, + "maximum_outgoing_transfer_size": 82, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "LEVEL_CONTROLLABLE_OUTPUT", + "id": 3 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [] + }, + { + "cluster_id": "0x0001", + "endpoint_attribute": "power", + "attributes": [ + { + "id": "0x0021", + "name": "battery_percentage_remaining", + "zcl_type": "uint8", + "value": 200 + }, + { + "id": "0x0033", + "name": "battery_quantity", + "zcl_type": "uint8", + "value": 4 + }, + { + "id": "0x0031", + "name": "battery_size", + "zcl_type": "enum8", + "value": 3 + }, + { + "id": "0x0020", + "name": "battery_voltage", + "zcl_type": "uint8", + "value": 31 + } + ] + }, + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0005", + "endpoint_attribute": "scenes", + "attributes": [] + }, + { + "cluster_id": "0x0006", + "endpoint_attribute": "on_off", + "attributes": [ + { + "id": "0x0000", + "name": "on_off", + "zcl_type": "bool", + "value": 1 + }, + { + "id": "0x4003", + "name": "start_up_on_off", + "zcl_type": "enum8", + "unsupported": true + } + ] + }, + { + "cluster_id": "0x0008", + "endpoint_attribute": "level", + "attributes": [ + { + "id": "0x0000", + "name": "current_level", + "zcl_type": "uint8", + "value": 254 + }, + { + "id": "0x0014", + "name": "default_move_rate", + "zcl_type": "uint8", + "unsupported": true + }, + { + "id": "0x0013", + "name": "off_transition_time", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0011", + "name": "on_level", + "zcl_type": "uint8", + "unsupported": true + }, + { + "id": "0x0010", + "name": "on_off_transition_time", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0012", + "name": "on_transition_time", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x4000", + "name": "start_up_current_level", + "zcl_type": "uint8", + "unsupported": true + } + ] + }, + { + "cluster_id": "0x0020", + "endpoint_attribute": "poll_control", + "attributes": [ + { + "id": "0x0000", + "name": "checkin_interval", + "zcl_type": "uint32", + "value": 13200 + } + ] + }, + { + "cluster_id": "0x0402", + "endpoint_attribute": "temperature", + "attributes": [ + { + "id": "0x0000", + "name": "measured_value", + "zcl_type": "int16", + "value": 2811 + } + ] + }, + { + "cluster_id": "0x0403", + "endpoint_attribute": "pressure", + "attributes": [ + { + "id": "0x0000", + "name": "measured_value", + "zcl_type": "int16", + "value": 991 + } + ] + }, + { + "cluster_id": "0x0b05", + "endpoint_attribute": "diagnostic", + "attributes": [] + }, + { + "cluster_id": "0xfc01", + "endpoint_attribute": "manufacturer_specific", + "attributes": [] + }, + { + "cluster_id": "0xfc02", + "endpoint_attribute": "manufacturer_specific", + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [ + { + "id": "0x0002", + "name": "current_file_version", + "zcl_type": "uint32", + "unsupported": true + } + ] + } + ] + } + }, + "zha_lib_entities": { + "button": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:fe:6b:5b:c9-1-3", + "migrate_unique_ids": [], + "platform": "button", + "class_name": "IdentifyButton", + "translation_key": null, + "translation_placeholders": null, + "device_class": "identify", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:fe:6b:5b:c9", + "endpoint_id": 1, + "available": true, + "group_id": null, + "command": "identify", + "args": [ + 5 + ], + "kwargs": {} + }, + "state": { + "class_name": "IdentifyButton", + "available": true + } + } + ], + "cover": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:fe:6b:5b:c9-1", + "migrate_unique_ids": [], + "platform": "cover", + "class_name": "KeenVent", + "translation_key": "keen_vent", + "translation_placeholders": null, + "device_class": "damper", + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": true, + "device_ieee": "ab:cd:ef:12:fe:6b:5b:c9", + "endpoint_id": 1, + "available": true, + "group_id": null + }, + "state": { + "class_name": "KeenVent", + "available": true, + "current_position": 100, + "is_closed": false, + "state": "open" + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:fe:6b:5b:c9-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:fe:6b:5b:c9", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:fe:6b:5b:c9-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:fe:6b:5b:c9", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:fe:6b:5b:c9-1-1", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Battery", + "translation_key": null, + "translation_placeholders": null, + "device_class": "battery", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:fe:6b:5b:c9", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 0, + "unit": "%" + }, + "state": { + "class_name": "Battery", + "available": true, + "state": 100.0, + "battery_size": "AA", + "battery_quantity": 4, + "battery_voltage": 3.1 + }, + "extra_state_attributes": [ + "battery_quantity", + "battery_size", + "battery_voltage" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:fe:6b:5b:c9-1-1026", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Temperature", + "translation_key": null, + "translation_placeholders": null, + "device_class": "temperature", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:fe:6b:5b:c9", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "\u00b0C" + }, + "state": { + "class_name": "Temperature", + "available": true, + "state": 28.11 + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:fe:6b:5b:c9-1-1027", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Pressure", + "translation_key": null, + "translation_placeholders": null, + "device_class": "pressure", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:fe:6b:5b:c9", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 0, + "unit": "hPa" + }, + "state": { + "class_name": "Pressure", + "available": true, + "state": 991 + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:fe:6b:5b:c9-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:fe:6b:5b:c9", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": null, + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/lk-zb-doorsensor-d0003-0x310d0002.json b/tests/data/legacy_devices/lk-zb-doorsensor-d0003-0x310d0002.json new file mode 100644 index 000000000..dea70325a --- /dev/null +++ b/tests/data/legacy_devices/lk-zb-doorsensor-d0003-0x310d0002.json @@ -0,0 +1,363 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:92:09:ef:4b", + "nwk": "0xB3E2", + "manufacturer": "lk", + "model": "ZB-DoorSensor-D0003", + "friendly_manufacturer": "lk", + "friendly_model": "ZB-DoorSensor-D0003", + "name": "lk ZB-DoorSensor-D0003", + "quirk_applied": false, + "quirk_class": "zigpy.device.Device", + "exposes_features": [], + "manufacturer_code": 4456, + "power_source": "Battery or Unknown", + "lqi": null, + "rssi": null, + "last_seen": "2024-09-27T13:16:52", + "available": true, + "device_type": "EndDevice", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "EndDevice", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 128, + "manufacturer_code": 4456, + "maximum_buffer_size": 82, + "maximum_incoming_transfer_size": 82, + "server_mask": 11264, + "maximum_outgoing_transfer_size": 82, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "IAS_ZONE", + "id": 1026 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "lk" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "ZB-DoorSensor-D0003" + } + ] + }, + { + "cluster_id": "0x0001", + "endpoint_attribute": "power", + "attributes": [ + { + "id": "0x003e", + "name": "battery_alarm_state", + "zcl_type": "map32", + "value": 0 + }, + { + "id": "0x0021", + "name": "battery_percentage_remaining", + "zcl_type": "uint8", + "value": 82 + }, + { + "id": "0x0033", + "name": "battery_quantity", + "zcl_type": "uint8", + "value": 1 + }, + { + "id": "0x0031", + "name": "battery_size", + "zcl_type": "enum8", + "value": 2 + }, + { + "id": "0x0020", + "name": "battery_voltage", + "zcl_type": "uint8", + "value": 27 + } + ] + }, + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0020", + "endpoint_attribute": "poll_control", + "attributes": [] + }, + { + "cluster_id": "0x0500", + "endpoint_attribute": "ias_zone", + "attributes": [ + { + "id": "0x0010", + "name": "cie_addr", + "zcl_type": "EUI64", + "value": [ + 50, + 79, + 50, + 2, + 0, + 141, + 21, + 0 + ] + }, + { + "id": "0x0000", + "name": "zone_state", + "zcl_type": "enum8", + "value": 1 + }, + { + "id": "0x0002", + "name": "zone_status", + "zcl_type": "map16", + "value": 48 + }, + { + "id": "0x0001", + "name": "zone_type", + "zcl_type": "enum16", + "value": 21 + } + ] + }, + { + "cluster_id": "0x0b05", + "endpoint_attribute": "diagnostic", + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [ + { + "id": "0x0002", + "name": "current_file_version", + "zcl_type": "uint32", + "value": 822935554 + } + ] + } + ] + } + }, + "zha_lib_entities": { + "binary_sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:92:09:ef:4b-1-1280", + "migrate_unique_ids": [], + "platform": "binary_sensor", + "class_name": "IASZone", + "translation_key": null, + "translation_placeholders": null, + "device_class": "opening", + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": true, + "device_ieee": "ab:cd:ef:12:92:09:ef:4b", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "zone_status" + }, + "state": { + "class_name": "IASZone", + "available": true, + "state": false + } + } + ], + "button": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:92:09:ef:4b-1-3", + "migrate_unique_ids": [], + "platform": "button", + "class_name": "IdentifyButton", + "translation_key": null, + "translation_placeholders": null, + "device_class": "identify", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:92:09:ef:4b", + "endpoint_id": 1, + "available": true, + "group_id": null, + "command": "identify", + "args": [ + 5 + ], + "kwargs": {} + }, + "state": { + "class_name": "IdentifyButton", + "available": true + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:92:09:ef:4b-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:92:09:ef:4b", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:92:09:ef:4b-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:92:09:ef:4b", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:92:09:ef:4b-1-1", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Battery", + "translation_key": null, + "translation_placeholders": null, + "device_class": "battery", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:92:09:ef:4b", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 0, + "unit": "%" + }, + "state": { + "class_name": "Battery", + "available": true, + "state": 41.0, + "battery_size": "Other", + "battery_quantity": 1, + "battery_voltage": 2.7 + }, + "extra_state_attributes": [ + "battery_quantity", + "battery_size", + "battery_voltage" + ] + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:92:09:ef:4b-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:92:09:ef:4b", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": "0x310d0002", + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/lumi-lumi-curtain-acn002.json b/tests/data/legacy_devices/lumi-lumi-curtain-acn002.json new file mode 100644 index 000000000..b2f1deff2 --- /dev/null +++ b/tests/data/legacy_devices/lumi-lumi-curtain-acn002.json @@ -0,0 +1,609 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:dc:6a:11:ac", + "nwk": "0x6EA2", + "manufacturer": "LUMI", + "model": "lumi.curtain.acn002", + "friendly_manufacturer": "LUMI", + "friendly_model": "lumi.curtain.acn002", + "name": "LUMI lumi.curtain.acn002", + "quirk_applied": true, + "quirk_class": "zhaquirks.xiaomi.aqara.roller_curtain_e1:(LUMI / lumi.curtain.acn002)", + "exposes_features": [], + "manufacturer_code": 4447, + "power_source": "Battery or Unknown", + "lqi": null, + "rssi": null, + "last_seen": "2023-11-14T04:40:42+00:00", + "available": true, + "device_type": "EndDevice", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "EndDevice", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 128, + "manufacturer_code": 4447, + "maximum_buffer_size": 127, + "maximum_incoming_transfer_size": 100, + "server_mask": 11264, + "maximum_outgoing_transfer_size": 100, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "WINDOW_COVERING_DEVICE", + "id": 514 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "LUMI" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "lumi.curtain.acn002" + } + ] + }, + { + "cluster_id": "0x0001", + "endpoint_attribute": "power", + "attributes": [ + { + "id": "0x0021", + "name": "battery_percentage_remaining", + "zcl_type": "uint8", + "value": 88 + }, + { + "id": "0x0033", + "name": "battery_quantity", + "zcl_type": "uint8", + "value": 1 + }, + { + "id": "0x0031", + "name": "battery_size", + "zcl_type": "enum8", + "value": 255 + } + ] + }, + { + "cluster_id": "0x0002", + "endpoint_attribute": "device_temperature", + "attributes": [ + { + "id": "0x0000", + "name": "current_temperature", + "zcl_type": "int16", + "value": 2300 + } + ] + }, + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0005", + "endpoint_attribute": "scenes", + "attributes": [] + }, + { + "cluster_id": "0x0009", + "endpoint_attribute": "alarms", + "attributes": [] + }, + { + "cluster_id": "0x000d", + "endpoint_attribute": "analog_output", + "attributes": [ + { + "id": "0x0100", + "name": "application_type", + "zcl_type": "uint32", + "unsupported": true + }, + { + "id": "0x001c", + "name": "description", + "zcl_type": "string", + "value": "Current position" + }, + { + "id": "0x0075", + "name": "engineering_units", + "zcl_type": "enum16", + "unsupported": true + }, + { + "id": "0x0041", + "name": "max_present_value", + "zcl_type": "single", + "value": 100.0 + }, + { + "id": "0x0045", + "name": "min_present_value", + "zcl_type": "single", + "value": 0.0 + }, + { + "id": "0x0051", + "name": "out_of_service", + "zcl_type": "bool", + "value": 0 + }, + { + "id": "0x0055", + "name": "present_value", + "zcl_type": "single", + "value": 0.0 + }, + { + "id": "0x0068", + "name": "relinquish_default", + "zcl_type": "single", + "unsupported": true + }, + { + "id": "0x006a", + "name": "resolution", + "zcl_type": "single", + "value": 1.0 + }, + { + "id": "0x006f", + "name": "status_flags", + "zcl_type": "map8", + "value": 0 + } + ] + }, + { + "cluster_id": "0x0013", + "endpoint_attribute": "multistate_output", + "attributes": [ + { + "id": "0x0055", + "name": "present_value", + "zcl_type": "uint16", + "value": 2 + } + ] + }, + { + "cluster_id": "0x0102", + "endpoint_attribute": "window_covering", + "attributes": [ + { + "id": "0x0008", + "name": "current_position_lift_percentage", + "zcl_type": "uint8", + "value": 100.0 + }, + { + "id": "0x0009", + "name": "current_position_tilt_percentage", + "zcl_type": "uint8", + "unsupported": true + }, + { + "id": "0x0000", + "name": "window_covering_type", + "zcl_type": "enum8", + "value": 0 + } + ] + }, + { + "cluster_id": "0xfcc0", + "endpoint_attribute": "opple_cluster", + "attributes": [ + { + "id": "0x00f7", + "name": "aqara_attributes", + "zcl_type": "octstr", + "value": { + "__type": "", + "repr": "b'\\x03(\\x17\\x05!\\x01\\x00\\t!\\x00\\x01\\n!\\x0c\\x0e\\x0b \\x00\\x0c \\x01\\r#\\x1e\\x0f\\x00\\x00\\x11#\\x01\\x00\\x00\\x00d \\x00e ,f \\x80g (i \\x02j!2\\x1ck \\x00'" + } + } + ] + } + ], + "out_clusters": [ + { + "cluster_id": "0x000a", + "endpoint_attribute": "time", + "attributes": [] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [] + } + ] + }, + "242": { + "profile_id": 41440, + "device_type": { + "name": "PROXY_BASIC", + "id": 97 + }, + "in_clusters": [], + "out_clusters": [ + { + "cluster_id": "0x0021", + "endpoint_attribute": "green_power", + "attributes": [] + } + ] + } + }, + "zha_lib_entities": { + "binary_sensor": [ + { + "info_object": { + "fallback_name": "Charging", + "unique_id": "ab:cd:ef:12:dc:6a:11:ac-1-charging", + "migrate_unique_ids": [], + "platform": "binary_sensor", + "class_name": "BinarySensor", + "translation_key": null, + "translation_placeholders": null, + "device_class": "battery_charging", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:dc:6a:11:ac", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "charging" + }, + "state": { + "class_name": "BinarySensor", + "available": true, + "state": false + } + }, + { + "info_object": { + "fallback_name": "Calibrated", + "unique_id": "ab:cd:ef:12:dc:6a:11:ac-1-positions_stored", + "migrate_unique_ids": [], + "platform": "binary_sensor", + "class_name": "BinarySensor", + "translation_key": "calibrated", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:dc:6a:11:ac", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "positions_stored" + }, + "state": { + "class_name": "BinarySensor", + "available": true, + "state": false + } + } + ], + "button": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:dc:6a:11:ac-1-3", + "migrate_unique_ids": [], + "platform": "button", + "class_name": "IdentifyButton", + "translation_key": null, + "translation_placeholders": null, + "device_class": "identify", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:dc:6a:11:ac", + "endpoint_id": 1, + "available": true, + "group_id": null, + "command": "identify", + "args": [ + 5 + ], + "kwargs": {} + }, + "state": { + "class_name": "IdentifyButton", + "available": true + } + } + ], + "cover": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:dc:6a:11:ac-1-258", + "migrate_unique_ids": [], + "platform": "cover", + "class_name": "Cover", + "translation_key": "cover", + "translation_placeholders": null, + "device_class": "shade", + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": true, + "device_ieee": "ab:cd:ef:12:dc:6a:11:ac", + "endpoint_id": 1, + "available": true, + "group_id": null + }, + "state": { + "class_name": "Cover", + "available": true, + "current_position": 0.0, + "current_tilt_position": null, + "state": "closed", + "is_opening": false, + "is_closing": false, + "is_closed": true, + "supported_features": 15 + } + } + ], + "select": [ + { + "info_object": { + "fallback_name": "Speed", + "unique_id": "ab:cd:ef:12:dc:6a:11:ac-1-speed", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "ZCLEnumSelectEntity", + "translation_key": "speed", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:dc:6a:11:ac", + "endpoint_id": 1, + "available": true, + "group_id": null, + "enum": "AqaraRollerDriverSpeed", + "options": [ + "Low", + "Medium", + "High" + ] + }, + "state": { + "class_name": "ZCLEnumSelectEntity", + "available": true, + "state": null + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:dc:6a:11:ac-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:dc:6a:11:ac", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:dc:6a:11:ac-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:dc:6a:11:ac", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:dc:6a:11:ac-1-1", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Battery", + "translation_key": null, + "translation_placeholders": null, + "device_class": "battery", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:dc:6a:11:ac", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 0, + "unit": "%" + }, + "state": { + "class_name": "Battery", + "available": true, + "state": 44.0, + "battery_size": "Unknown", + "battery_quantity": 1 + }, + "extra_state_attributes": [ + "battery_quantity", + "battery_size", + "battery_voltage" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:dc:6a:11:ac-1-2", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "DeviceTemperature", + "translation_key": "device_temperature", + "translation_placeholders": null, + "device_class": "temperature", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:dc:6a:11:ac", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "\u00b0C" + }, + "state": { + "class_name": "DeviceTemperature", + "available": true, + "state": 23.0 + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:dc:6a:11:ac-1-258-window_covering_type", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "WindowCoveringTypeSensor", + "translation_key": "window_covering_type", + "translation_placeholders": null, + "device_class": "enum", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:dc:6a:11:ac", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "WindowCoveringTypeSensor", + "available": true, + "state": "Rollershade" + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:dc:6a:11:ac-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:dc:6a:11:ac", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": null, + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/lumi-lumi-sensor-ht-agl02-0x0000001d.json b/tests/data/legacy_devices/lumi-lumi-sensor-ht-agl02-0x0000001d.json new file mode 100644 index 000000000..8fd259c3b --- /dev/null +++ b/tests/data/legacy_devices/lumi-lumi-sensor-ht-agl02-0x0000001d.json @@ -0,0 +1,391 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:2a:06:48:57", + "nwk": "0x5E77", + "manufacturer": "LUMI", + "model": "lumi.sensor_ht.agl02", + "friendly_manufacturer": "LUMI", + "friendly_model": "lumi.sensor_ht.agl02", + "name": "LUMI lumi.sensor_ht.agl02", + "quirk_applied": false, + "quirk_class": "zigpy.device.Device", + "exposes_features": [], + "manufacturer_code": 4447, + "power_source": "Battery or Unknown", + "lqi": null, + "rssi": null, + "last_seen": "2024-05-08T14:15:10", + "available": true, + "device_type": "EndDevice", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "EndDevice", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 128, + "manufacturer_code": 4447, + "maximum_buffer_size": 127, + "maximum_incoming_transfer_size": 100, + "server_mask": 11264, + "maximum_outgoing_transfer_size": 100, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "TEMPERATURE_SENSOR", + "id": 770 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "LUMI" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "lumi.sensor_ht.agl02" + } + ] + }, + { + "cluster_id": "0x0001", + "endpoint_attribute": "power", + "attributes": [ + { + "id": "0x0033", + "name": "battery_quantity", + "zcl_type": "uint8", + "value": 1 + }, + { + "id": "0x0031", + "name": "battery_size", + "zcl_type": "enum8", + "value": 10 + } + ] + }, + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0402", + "endpoint_attribute": "temperature", + "attributes": [ + { + "id": "0x0000", + "name": "measured_value", + "zcl_type": "int16", + "value": 0 + } + ] + }, + { + "cluster_id": "0x0403", + "endpoint_attribute": "pressure", + "attributes": [ + { + "id": "0x0000", + "name": "measured_value", + "zcl_type": "int16", + "value": 0 + } + ] + }, + { + "cluster_id": "0x0405", + "endpoint_attribute": "humidity", + "attributes": [ + { + "id": "0x0000", + "name": "measured_value", + "zcl_type": "uint16", + "value": 0 + } + ] + }, + { + "cluster_id": "0xfcc0", + "endpoint_attribute": "manufacturer_specific", + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [ + { + "id": "0x0002", + "name": "current_file_version", + "zcl_type": "uint32", + "value": 29 + } + ] + } + ] + } + }, + "zha_lib_entities": { + "button": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:2a:06:48:57-1-3", + "migrate_unique_ids": [], + "platform": "button", + "class_name": "IdentifyButton", + "translation_key": null, + "translation_placeholders": null, + "device_class": "identify", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:2a:06:48:57", + "endpoint_id": 1, + "available": true, + "group_id": null, + "command": "identify", + "args": [ + 5 + ], + "kwargs": {} + }, + "state": { + "class_name": "IdentifyButton", + "available": true + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:2a:06:48:57-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:2a:06:48:57", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:2a:06:48:57-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:2a:06:48:57", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:2a:06:48:57-1-1", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Battery", + "translation_key": null, + "translation_placeholders": null, + "device_class": "battery", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:2a:06:48:57", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 0, + "unit": "%" + }, + "state": { + "class_name": "Battery", + "available": true, + "state": null, + "battery_size": "CR2032", + "battery_quantity": 1 + }, + "extra_state_attributes": [ + "battery_quantity", + "battery_size", + "battery_voltage" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:2a:06:48:57-1-1026", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Temperature", + "translation_key": null, + "translation_placeholders": null, + "device_class": "temperature", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:2a:06:48:57", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "\u00b0C" + }, + "state": { + "class_name": "Temperature", + "available": true, + "state": 0.0 + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:2a:06:48:57-1-1027", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Pressure", + "translation_key": null, + "translation_placeholders": null, + "device_class": "pressure", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:2a:06:48:57", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 0, + "unit": "hPa" + }, + "state": { + "class_name": "Pressure", + "available": true, + "state": 0 + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:2a:06:48:57-1-1029", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Humidity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "humidity", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:2a:06:48:57", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "%" + }, + "state": { + "class_name": "Humidity", + "available": true, + "state": 0.0 + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:2a:06:48:57-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:2a:06:48:57", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": "0x0000001d", + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/lumi-lumi-switch-l2aeu1.json b/tests/data/legacy_devices/lumi-lumi-switch-l2aeu1.json new file mode 100644 index 000000000..c1b1ed759 --- /dev/null +++ b/tests/data/legacy_devices/lumi-lumi-switch-l2aeu1.json @@ -0,0 +1,891 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:dd:16:89:b4", + "nwk": "0x2DC9", + "manufacturer": "LUMI", + "model": "lumi.switch.l2aeu1", + "friendly_manufacturer": "LUMI", + "friendly_model": "lumi.switch.l2aeu1", + "name": "LUMI lumi.switch.l2aeu1", + "quirk_applied": false, + "quirk_class": "zigpy.device.Device", + "exposes_features": [], + "manufacturer_code": 4447, + "power_source": "Battery or Unknown", + "lqi": null, + "rssi": null, + "last_seen": "2023-12-07T19:46:00", + "available": true, + "device_type": "EndDevice", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "EndDevice", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 128, + "manufacturer_code": 4447, + "maximum_buffer_size": 127, + "maximum_incoming_transfer_size": 100, + "server_mask": 11264, + "maximum_outgoing_transfer_size": 100, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "ON_OFF_SWITCH", + "id": 0 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "lumi.switch.l2aeu1" + } + ] + }, + { + "cluster_id": "0x0002", + "endpoint_attribute": "device_temperature", + "attributes": [ + { + "id": "0x0000", + "name": "current_temperature", + "zcl_type": "int16", + "value": 2000 + } + ] + }, + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0005", + "endpoint_attribute": "scenes", + "attributes": [] + }, + { + "cluster_id": "0x0006", + "endpoint_attribute": "on_off", + "attributes": [ + { + "id": "0x0000", + "name": "on_off", + "zcl_type": "bool", + "value": 0 + }, + { + "id": "0x4003", + "name": "start_up_on_off", + "zcl_type": "enum8", + "unsupported": true + } + ] + }, + { + "cluster_id": "0x0009", + "endpoint_attribute": "alarms", + "attributes": [] + }, + { + "cluster_id": "0x0012", + "endpoint_attribute": "multistate_input", + "attributes": [] + }, + { + "cluster_id": "0x0702", + "endpoint_attribute": "smartenergy_metering", + "attributes": [ + { + "id": "0x0000", + "name": "current_summ_delivered", + "zcl_type": "uint48", + "value": 0 + }, + { + "id": "0x0100", + "name": "current_tier1_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0102", + "name": "current_tier2_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0104", + "name": "current_tier3_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0106", + "name": "current_tier4_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0108", + "name": "current_tier5_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x010a", + "name": "current_tier6_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0304", + "name": "demand_formatting", + "zcl_type": "map8", + "unsupported": true + }, + { + "id": "0x0302", + "name": "divisor", + "zcl_type": "uint24", + "value": 1000 + }, + { + "id": "0x0400", + "name": "instantaneous_demand", + "zcl_type": "int24", + "unsupported": true + }, + { + "id": "0x0306", + "name": "metering_device_type", + "zcl_type": "map8", + "value": 0 + }, + { + "id": "0x0301", + "name": "multiplier", + "zcl_type": "uint24", + "value": 1 + }, + { + "id": "0x0200", + "name": "status", + "zcl_type": "map8", + "unsupported": true + }, + { + "id": "0x0303", + "name": "summation_formatting", + "zcl_type": "map8", + "value": 35 + }, + { + "id": "0x0300", + "name": "unit_of_measure", + "zcl_type": "enum8", + "value": 0 + } + ] + }, + { + "cluster_id": "0x0b04", + "endpoint_attribute": "electrical_measurement", + "attributes": [ + { + "id": "0x0603", + "name": "ac_current_divisor", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0602", + "name": "ac_current_multiplier", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0300", + "name": "ac_frequency", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0401", + "name": "ac_frequency_divisor", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0302", + "name": "ac_frequency_max", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0400", + "name": "ac_frequency_multiplier", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0605", + "name": "ac_power_divisor", + "zcl_type": "uint16", + "value": 10 + }, + { + "id": "0x0604", + "name": "ac_power_multiplier", + "zcl_type": "uint16", + "value": 1 + }, + { + "id": "0x0601", + "name": "ac_voltage_divisor", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0600", + "name": "ac_voltage_multiplier", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x050b", + "name": "active_power", + "zcl_type": "int16", + "value": 0 + }, + { + "id": "0x050d", + "name": "active_power_max", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x050f", + "name": "apparent_power", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0000", + "name": "measurement_type", + "zcl_type": "map32", + "unsupported": true + }, + { + "id": "0x0403", + "name": "power_divisor", + "zcl_type": "uint32", + "value": 1 + }, + { + "id": "0x0510", + "name": "power_factor", + "zcl_type": "int8", + "unsupported": true + }, + { + "id": "0x0402", + "name": "power_multiplier", + "zcl_type": "uint32", + "value": 1 + }, + { + "id": "0x0508", + "name": "rms_current", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x050a", + "name": "rms_current_max", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0505", + "name": "rms_voltage", + "zcl_type": "uint16", + "value": 0 + }, + { + "id": "0x0507", + "name": "rms_voltage_max", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0304", + "name": "total_active_power", + "zcl_type": "int32", + "value": 0 + } + ] + }, + { + "cluster_id": "0xfcc0", + "endpoint_attribute": "manufacturer_specific", + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x000a", + "endpoint_attribute": "time", + "attributes": [] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [] + } + ] + }, + "2": { + "profile_id": 260, + "device_type": { + "name": "ON_OFF_SWITCH", + "id": 0 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [] + }, + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0005", + "endpoint_attribute": "scenes", + "attributes": [] + }, + { + "cluster_id": "0x0006", + "endpoint_attribute": "on_off", + "attributes": [ + { + "id": "0x0000", + "name": "on_off", + "zcl_type": "bool", + "value": 0 + }, + { + "id": "0x4003", + "name": "start_up_on_off", + "zcl_type": "enum8", + "unsupported": true + } + ] + }, + { + "cluster_id": "0x0012", + "endpoint_attribute": "multistate_input", + "attributes": [] + }, + { + "cluster_id": "0xfcc0", + "endpoint_attribute": "manufacturer_specific", + "attributes": [] + } + ], + "out_clusters": [] + }, + "21": { + "profile_id": 260, + "device_type": { + "name": "ON_OFF_LIGHT", + "id": 256 + }, + "in_clusters": [ + { + "cluster_id": "0x000c", + "endpoint_attribute": "analog_input", + "attributes": [] + } + ], + "out_clusters": [] + }, + "31": { + "profile_id": 260, + "device_type": { + "name": "ON_OFF_LIGHT", + "id": 256 + }, + "in_clusters": [ + { + "cluster_id": "0x000c", + "endpoint_attribute": "analog_input", + "attributes": [] + } + ], + "out_clusters": [] + }, + "41": { + "profile_id": 260, + "device_type": { + "name": "ON_OFF_LIGHT", + "id": 256 + }, + "in_clusters": [ + { + "cluster_id": "0x0012", + "endpoint_attribute": "multistate_input", + "attributes": [ + { + "id": "0x0055", + "name": "present_value", + "zcl_type": "uint16", + "value": 1.0 + } + ] + } + ], + "out_clusters": [] + }, + "42": { + "profile_id": 260, + "device_type": { + "name": "ON_OFF_LIGHT", + "id": 256 + }, + "in_clusters": [ + { + "cluster_id": "0x0012", + "endpoint_attribute": "multistate_input", + "attributes": [ + { + "id": "0x0055", + "name": "present_value", + "zcl_type": "uint16", + "value": 1.0 + } + ] + } + ], + "out_clusters": [] + }, + "51": { + "profile_id": 260, + "device_type": { + "name": "ON_OFF_LIGHT", + "id": 256 + }, + "in_clusters": [ + { + "cluster_id": "0x0012", + "endpoint_attribute": "multistate_input", + "attributes": [ + { + "id": "0x0055", + "name": "present_value", + "zcl_type": "uint16", + "value": 1.0 + } + ] + } + ], + "out_clusters": [] + }, + "61": { + "profile_id": 260, + "device_type": { + "name": "ON_OFF_LIGHT", + "id": 256 + }, + "in_clusters": [ + { + "cluster_id": "0x0012", + "endpoint_attribute": "multistate_input", + "attributes": [] + } + ], + "out_clusters": [] + }, + "242": { + "profile_id": 41440, + "device_type": { + "name": "PROXY_BASIC", + "id": 97 + }, + "in_clusters": [], + "out_clusters": [ + { + "cluster_id": "0x0021", + "endpoint_attribute": "green_power", + "attributes": [] + } + ] + } + }, + "zha_lib_entities": { + "button": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:dd:16:89:b4-1-3", + "migrate_unique_ids": [], + "platform": "button", + "class_name": "IdentifyButton", + "translation_key": null, + "translation_placeholders": null, + "device_class": "identify", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:dd:16:89:b4", + "endpoint_id": 1, + "available": true, + "group_id": null, + "command": "identify", + "args": [ + 5 + ], + "kwargs": {} + }, + "state": { + "class_name": "IdentifyButton", + "available": true + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:dd:16:89:b4-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:dd:16:89:b4", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:dd:16:89:b4-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:dd:16:89:b4", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:dd:16:89:b4-1-1794-summation_delivered", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "SmartEnergySummation", + "translation_key": "summation_delivered", + "translation_placeholders": null, + "device_class": "energy", + "state_class": "total_increasing", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:dd:16:89:b4", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 3, + "unit": "kWh" + }, + "state": { + "class_name": "SmartEnergySummation", + "available": true, + "state": 0.0, + "device_type": "Electric Metering", + "zcl_unit_of_measurement": 0 + }, + "extra_state_attributes": [ + "device_type", + "status", + "zcl_unit_of_measurement" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:dd:16:89:b4-1-2", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "DeviceTemperature", + "translation_key": "device_temperature", + "translation_placeholders": null, + "device_class": "temperature", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:dd:16:89:b4", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "\u00b0C" + }, + "state": { + "class_name": "DeviceTemperature", + "available": true, + "state": 20.0 + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:dd:16:89:b4-1-2820", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "ElectricalMeasurementActivePower", + "translation_key": null, + "translation_placeholders": null, + "device_class": "power", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:dd:16:89:b4", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 1, + "unit": "W" + }, + "state": { + "class_name": "ElectricalMeasurementActivePower", + "available": true, + "state": 0.0 + }, + "extra_state_attributes": [ + "active_power_max", + "measurement_type" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:dd:16:89:b4-1-2820-rms_voltage", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "ElectricalMeasurementRMSVoltage", + "translation_key": null, + "translation_placeholders": null, + "device_class": "voltage", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:dd:16:89:b4", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 1, + "unit": "V" + }, + "state": { + "class_name": "ElectricalMeasurementRMSVoltage", + "available": true, + "state": 0.0 + }, + "extra_state_attributes": [ + "measurement_type", + "rms_voltage_max" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:dd:16:89:b4-1-2820-total_active_power", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "ElectricalMeasurementTotalActivePower", + "translation_key": "total_active_power", + "translation_placeholders": null, + "device_class": "power", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:dd:16:89:b4", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 1, + "unit": "W" + }, + "state": { + "class_name": "ElectricalMeasurementTotalActivePower", + "available": true, + "state": 0.0 + }, + "extra_state_attributes": [ + "active_power_max", + "measurement_type" + ] + } + ], + "switch": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:dd:16:89:b4-1-6", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "Switch", + "translation_key": "switch", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:dd:16:89:b4", + "endpoint_id": 1, + "available": true, + "group_id": null + }, + "state": { + "class_name": "Switch", + "state": 0, + "available": true + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:dd:16:89:b4-2-6", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "Switch", + "translation_key": "switch", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:dd:16:89:b4", + "endpoint_id": 2, + "available": true, + "group_id": null + }, + "state": { + "class_name": "Switch", + "state": 0, + "available": true + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:dd:16:89:b4-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:dd:16:89:b4", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": null, + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/nodon-sin-4-rs-20.json b/tests/data/legacy_devices/nodon-sin-4-rs-20.json new file mode 100644 index 000000000..402523822 --- /dev/null +++ b/tests/data/legacy_devices/nodon-sin-4-rs-20.json @@ -0,0 +1,596 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:3c:52:ae:10", + "nwk": "0x6B6C", + "manufacturer": "NodOn", + "model": "SIN-4-RS-20", + "friendly_manufacturer": "NodOn", + "friendly_model": "SIN-4-RS-20", + "name": "NodOn SIN-4-RS-20", + "quirk_applied": true, + "quirk_class": "zhaquirks.nodon.roller_shutter:(NodOn / SIN-4-RS-20)", + "exposes_features": [], + "manufacturer_code": 4747, + "power_source": "Mains", + "lqi": null, + "rssi": null, + "last_seen": "2025-04-19T23:23:43+00:00", + "available": true, + "device_type": "Router", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "Router", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 142, + "manufacturer_code": 4747, + "maximum_buffer_size": 82, + "maximum_incoming_transfer_size": 500, + "server_mask": 11264, + "maximum_outgoing_transfer_size": 500, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "WINDOW_COVERING_DEVICE", + "id": 514 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "NodOn" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "SIN-4-RS-20" + } + ] + }, + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0005", + "endpoint_attribute": "scenes", + "attributes": [] + }, + { + "cluster_id": "0x0102", + "endpoint_attribute": "window_covering", + "attributes": [ + { + "id": "0x0004", + "name": "calibration_rotation_run_time_down", + "zcl_type": "uint16", + "value": 2000 + }, + { + "id": "0x0003", + "name": "calibration_rotation_run_time_up", + "zcl_type": "uint16", + "value": 2000 + }, + { + "id": "0x0002", + "name": "calibration_vertical_run_time_down", + "zcl_type": "uint16", + "value": 2130 + }, + { + "id": "0x0001", + "name": "calibration_vertical_run_time_up", + "zcl_type": "uint16", + "value": 2250 + }, + { + "id": "0x0007", + "name": "config_status", + "zcl_type": "map8", + "value": 3 + }, + { + "id": "0x0008", + "name": "current_position_lift_percentage", + "zcl_type": "uint8", + "value": 100 + }, + { + "id": "0x0009", + "name": "current_position_tilt_percentage", + "zcl_type": "uint8", + "value": 0 + }, + { + "id": "0x0011", + "name": "installed_closed_limit_lift", + "zcl_type": "uint16", + "value": 65535 + }, + { + "id": "0x0013", + "name": "installed_closed_limit_tilt", + "zcl_type": "uint16", + "value": 65535 + }, + { + "id": "0x0010", + "name": "installed_open_limit_lift", + "zcl_type": "uint16", + "value": 0 + }, + { + "id": "0x0012", + "name": "installed_open_limit_tilt", + "zcl_type": "uint16", + "value": 0 + }, + { + "id": "0x0017", + "name": "window_covering_mode", + "zcl_type": "map8", + "value": 8 + }, + { + "id": "0x0000", + "name": "window_covering_type", + "zcl_type": "enum8", + "value": 8 + } + ] + }, + { + "cluster_id": "0x1000", + "endpoint_attribute": "lightlink", + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [ + { + "id": "0x0002", + "name": "current_file_version", + "zcl_type": "uint32", + "unsupported": true + } + ] + }, + { + "cluster_id": "0x0102", + "endpoint_attribute": "window_covering", + "attributes": [ + { + "id": "0x0003", + "name": "current_position_lift", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0008", + "name": "current_position_lift_percentage", + "zcl_type": "uint8", + "unsupported": true + }, + { + "id": "0x0004", + "name": "current_position_tilt", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0017", + "name": "window_covering_mode", + "zcl_type": "map8", + "unsupported": true + }, + { + "id": "0x0000", + "name": "window_covering_type", + "zcl_type": "enum8", + "unsupported": true + } + ] + } + ] + }, + "242": { + "profile_id": 41440, + "device_type": { + "name": "COMBO_BASIC", + "id": 102 + }, + "in_clusters": [ + { + "cluster_id": "0x0021", + "endpoint_attribute": "green_power", + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x0021", + "endpoint_attribute": "green_power", + "attributes": [] + } + ] + } + }, + "zha_lib_entities": { + "button": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:3c:52:ae:10-1-3", + "migrate_unique_ids": [], + "platform": "button", + "class_name": "IdentifyButton", + "translation_key": null, + "translation_placeholders": null, + "device_class": "identify", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:3c:52:ae:10", + "endpoint_id": 1, + "available": true, + "group_id": null, + "command": "identify", + "args": [ + 5 + ], + "kwargs": {} + }, + "state": { + "class_name": "IdentifyButton", + "available": true + } + } + ], + "cover": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:3c:52:ae:10-1-258", + "migrate_unique_ids": [], + "platform": "cover", + "class_name": "Cover", + "translation_key": "cover", + "translation_placeholders": null, + "device_class": "blind", + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": true, + "device_ieee": "ab:cd:ef:12:3c:52:ae:10", + "endpoint_id": 1, + "available": true, + "group_id": null + }, + "state": { + "class_name": "Cover", + "available": true, + "current_position": 0, + "current_tilt_position": 100, + "state": "closed", + "is_opening": false, + "is_closing": false, + "is_closed": true, + "supported_features": 255 + } + } + ], + "number": [ + { + "info_object": { + "fallback_name": "Calibration rotation run time down", + "unique_id": "ab:cd:ef:12:3c:52:ae:10-1-calibration_rotation_run_time_down", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "calibration_rotation_run_time_down", + "translation_placeholders": null, + "device_class": "duration", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:3c:52:ae:10", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 65535, + "native_min_value": 0, + "native_step": 10, + "native_unit_of_measurement": "ms" + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": 2000 + } + }, + { + "info_object": { + "fallback_name": "Calibration rotation run time up", + "unique_id": "ab:cd:ef:12:3c:52:ae:10-1-calibration_rotation_run_time_up", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "calibration_rotation_run_time_up", + "translation_placeholders": null, + "device_class": "duration", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:3c:52:ae:10", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 65535, + "native_min_value": 0, + "native_step": 10, + "native_unit_of_measurement": "ms" + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": 2000 + } + }, + { + "info_object": { + "fallback_name": "Calibration vertical run time down", + "unique_id": "ab:cd:ef:12:3c:52:ae:10-1-calibration_vertical_run_time_down", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "calibration_vertical_run_time_down", + "translation_placeholders": null, + "device_class": "duration", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:3c:52:ae:10", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 65535, + "native_min_value": 0, + "native_step": 10, + "native_unit_of_measurement": "ms" + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": 2130 + } + }, + { + "info_object": { + "fallback_name": "Calibration vertical run time up", + "unique_id": "ab:cd:ef:12:3c:52:ae:10-1-calibration_vertical_run_time_up", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "calibration_vertical_run_time_up", + "translation_placeholders": null, + "device_class": "duration", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:3c:52:ae:10", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 65535, + "native_min_value": 0, + "native_step": 10, + "native_unit_of_measurement": "ms" + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": 2250 + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:3c:52:ae:10-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:3c:52:ae:10", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:3c:52:ae:10-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:3c:52:ae:10", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:3c:52:ae:10-1-258-window_covering_type", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "WindowCoveringTypeSensor", + "translation_key": "window_covering_type", + "translation_placeholders": null, + "device_class": "enum", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:3c:52:ae:10", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "WindowCoveringTypeSensor", + "available": true, + "state": "Tilt_blind_tilt_and_lift" + } + } + ], + "switch": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:3c:52:ae:10-1-258-inverted", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "WindowCoveringInversionSwitch", + "translation_key": "inverted", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:3c:52:ae:10", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "config_status", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 0, + "on_value": 1 + }, + "state": { + "class_name": "WindowCoveringInversionSwitch", + "available": true, + "state": false, + "inverted": false + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:3c:52:ae:10-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:3c:52:ae:10", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": null, + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/sonoff-trvzb.json b/tests/data/legacy_devices/sonoff-trvzb.json new file mode 100644 index 000000000..d5757f9cd --- /dev/null +++ b/tests/data/legacy_devices/sonoff-trvzb.json @@ -0,0 +1,1115 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:4d:04:9a:8f", + "nwk": "0x0207", + "manufacturer": "SONOFF", + "model": "TRVZB", + "friendly_manufacturer": "SONOFF", + "friendly_model": "TRVZB", + "name": "SONOFF TRVZB", + "quirk_applied": true, + "quirk_class": "zhaquirks.sonoff.trvzb:(SONOFF / TRVZB)", + "exposes_features": [], + "manufacturer_code": 4742, + "power_source": "Battery or Unknown", + "lqi": null, + "rssi": null, + "last_seen": "2023-11-26T14:20:02+00:00", + "available": true, + "device_type": "EndDevice", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "EndDevice", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 128, + "manufacturer_code": 4742, + "maximum_buffer_size": 82, + "maximum_incoming_transfer_size": 255, + "server_mask": 11264, + "maximum_outgoing_transfer_size": 255, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "THERMOSTAT", + "id": 769 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "SONOFF" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "TRVZB" + } + ] + }, + { + "cluster_id": "0x0001", + "endpoint_attribute": "power", + "attributes": [ + { + "id": "0x0021", + "name": "battery_percentage_remaining", + "zcl_type": "uint8", + "value": 142 + }, + { + "id": "0x0033", + "name": "battery_quantity", + "zcl_type": "uint8", + "unsupported": true + }, + { + "id": "0x0031", + "name": "battery_size", + "zcl_type": "enum8", + "unsupported": true + }, + { + "id": "0x0020", + "name": "battery_voltage", + "zcl_type": "uint8", + "unsupported": true + } + ] + }, + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0006", + "endpoint_attribute": "on_off", + "attributes": [ + { + "id": "0x0000", + "name": "on_off", + "zcl_type": "bool", + "value": 1 + }, + { + "id": "0x4003", + "name": "start_up_on_off", + "zcl_type": "enum8", + "unsupported": true + } + ] + }, + { + "cluster_id": "0x0020", + "endpoint_attribute": "poll_control", + "attributes": [ + { + "id": "0x0000", + "name": "checkin_interval", + "zcl_type": "uint32", + "value": 13200 + } + ] + }, + { + "cluster_id": "0x0201", + "endpoint_attribute": "thermostat", + "attributes": [ + { + "id": "0x0006", + "name": "abs_max_cool_setpoint_limit", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x0004", + "name": "abs_max_heat_setpoint_limit", + "zcl_type": "int16", + "value": 3500 + }, + { + "id": "0x0005", + "name": "abs_min_cool_setpoint_limit", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x0003", + "name": "abs_min_heat_setpoint_limit", + "zcl_type": "int16", + "value": 400 + }, + { + "id": "0x001b", + "name": "ctrl_sequence_of_oper", + "zcl_type": "enum8", + "value": 2 + }, + { + "id": "0x0000", + "name": "local_temperature", + "zcl_type": "int16", + "value": 2420 + }, + { + "id": "0x0010", + "name": "local_temperature_calibration", + "zcl_type": "int8", + "value": 0 + }, + { + "id": "0x0018", + "name": "max_cool_setpoint_limit", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x0016", + "name": "max_heat_setpoint_limit", + "zcl_type": "int16", + "value": 3500 + }, + { + "id": "0x0017", + "name": "min_cool_setpoint_limit", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x0015", + "name": "min_heat_setpoint_limit", + "zcl_type": "int16", + "value": 400 + }, + { + "id": "0x0002", + "name": "occupancy", + "zcl_type": "map8", + "value": 1 + }, + { + "id": "0x0011", + "name": "occupied_cooling_setpoint", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x0012", + "name": "occupied_heating_setpoint", + "zcl_type": "int16", + "value": 2500 + }, + { + "id": "0x0007", + "name": "pi_cooling_demand", + "zcl_type": "uint8", + "unsupported": true + }, + { + "id": "0x0008", + "name": "pi_heating_demand", + "zcl_type": "uint8", + "unsupported": true + }, + { + "id": "0x001e", + "name": "running_mode", + "zcl_type": "enum8", + "value": 0 + }, + { + "id": "0x0029", + "name": "running_state", + "zcl_type": "map16", + "value": 1 + }, + { + "id": "0x001c", + "name": "system_mode", + "zcl_type": "enum8", + "value": 4 + }, + { + "id": "0x0013", + "name": "unoccupied_cooling_setpoint", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x0014", + "name": "unoccupied_heating_setpoint", + "zcl_type": "int16", + "unsupported": true + } + ] + }, + { + "cluster_id": "0xfc11", + "endpoint_attribute": null, + "attributes": [] + }, + { + "cluster_id": "0xfc57", + "endpoint_attribute": "works_with_all_hubs", + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x000a", + "endpoint_attribute": "time", + "attributes": [] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [] + } + ] + } + }, + "zha_lib_entities": { + "button": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:4d:04:9a:8f-1-3", + "migrate_unique_ids": [], + "platform": "button", + "class_name": "IdentifyButton", + "translation_key": null, + "translation_placeholders": null, + "device_class": "identify", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4d:04:9a:8f", + "endpoint_id": 1, + "available": true, + "group_id": null, + "command": "identify", + "args": [ + 5 + ], + "kwargs": {} + }, + "state": { + "class_name": "IdentifyButton", + "available": true + } + }, + { + "info_object": { + "fallback_name": "Boost mode", + "unique_id": "ab:cd:ef:12:4d:04:9a:8f-1-boost_mode", + "migrate_unique_ids": [], + "platform": "button", + "class_name": "WriteAttributeButton", + "translation_key": "boost_mode", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4d:04:9a:8f", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "temporary_mode", + "attribute_value": 0 + }, + "state": { + "class_name": "WriteAttributeButton", + "available": true + } + }, + { + "info_object": { + "fallback_name": "Timer mode", + "unique_id": "ab:cd:ef:12:4d:04:9a:8f-1-timer_mode", + "migrate_unique_ids": [], + "platform": "button", + "class_name": "WriteAttributeButton", + "translation_key": "timer_mode", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4d:04:9a:8f", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "temporary_mode", + "attribute_value": 1 + }, + "state": { + "class_name": "WriteAttributeButton", + "available": true + } + } + ], + "climate": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:4d:04:9a:8f-1", + "migrate_unique_ids": [], + "platform": "climate", + "class_name": "Thermostat", + "translation_key": "thermostat", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4d:04:9a:8f", + "endpoint_id": 1, + "available": true, + "group_id": null, + "max_temp": 35.0, + "min_temp": 4.0, + "supported_features": 385, + "fan_modes": null, + "preset_modes": [], + "hvac_modes": [ + "off", + "heat" + ] + }, + "state": { + "class_name": "Thermostat", + "available": true, + "current_temperature": 24.2, + "outdoor_temperature": null, + "target_temperature": 25.0, + "target_temperature_high": null, + "target_temperature_low": null, + "hvac_action": "heating", + "hvac_mode": "heat", + "preset_mode": "none", + "fan_mode": "auto", + "system_mode": "[4]/heat", + "occupancy": 1, + "occupied_cooling_setpoint": null, + "occupied_heating_setpoint": 2500, + "pi_heating_demand": null, + "pi_cooling_demand": null, + "unoccupied_cooling_setpoint": null, + "unoccupied_heating_setpoint": null + }, + "extra_state_attributes": [ + "occupancy", + "occupied_cooling_setpoint", + "occupied_heating_setpoint", + "pi_cooling_demand", + "pi_heating_demand", + "system_mode", + "unoccupied_cooling_setpoint", + "unoccupied_heating_setpoint" + ] + } + ], + "number": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:4d:04:9a:8f-1-513-local_temperature_calibration", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "SonoffThermostatLocalTempCalibration", + "translation_key": "local_temperature_calibration", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4d:04:9a:8f", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "box", + "native_max_value": 12.7, + "native_min_value": -12.8, + "native_step": 0.1, + "native_unit_of_measurement": "\u00b0C" + }, + "state": { + "class_name": "SonoffThermostatLocalTempCalibration", + "available": true, + "state": 0.0 + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:4d:04:9a:8f-1-513-max_heat_setpoint_limit", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "MaxHeatSetpointLimit", + "translation_key": "max_heat_setpoint_limit", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4d:04:9a:8f", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "box", + "native_max_value": 35.0, + "native_min_value": 4.0, + "native_step": 0.5, + "native_unit_of_measurement": "\u00b0C" + }, + "state": { + "class_name": "MaxHeatSetpointLimit", + "available": true, + "state": 35.0 + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:4d:04:9a:8f-1-513-min_heat_setpoint_limit", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "MinHeatSetpointLimit", + "translation_key": "min_heat_setpoint_limit", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4d:04:9a:8f", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "box", + "native_max_value": 35.0, + "native_min_value": 4.0, + "native_step": 0.5, + "native_unit_of_measurement": "\u00b0C" + }, + "state": { + "class_name": "MinHeatSetpointLimit", + "available": true, + "state": 4.0 + } + }, + { + "info_object": { + "fallback_name": "External temperature sensor value", + "unique_id": "ab:cd:ef:12:4d:04:9a:8f-1-external_temperature_sensor_value", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "external_temperature_sensor_value", + "translation_placeholders": null, + "device_class": "temperature", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4d:04:9a:8f", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 99.9, + "native_min_value": 0.0, + "native_step": 0.1, + "native_unit_of_measurement": "\u00b0C" + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Frost protection temperature", + "unique_id": "ab:cd:ef:12:4d:04:9a:8f-1-frost_protection_temperature", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "frost_protection_temperature", + "translation_placeholders": null, + "device_class": "temperature", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4d:04:9a:8f", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 35.0, + "native_min_value": 4.0, + "native_step": 0.5, + "native_unit_of_measurement": "\u00b0C" + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Temperature control accuracy", + "unique_id": "ab:cd:ef:12:4d:04:9a:8f-1-temperature_control_accuracy", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "temperature_control_accuracy", + "translation_placeholders": null, + "device_class": "temperature_delta", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4d:04:9a:8f", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": -0.2, + "native_min_value": -1.0, + "native_step": 0.2, + "native_unit_of_measurement": "\u00b0C" + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Temporary mode duration", + "unique_id": "ab:cd:ef:12:4d:04:9a:8f-1-temporary_mode_duration", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "temporary_mode_duration", + "translation_placeholders": null, + "device_class": "duration", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4d:04:9a:8f", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 1440, + "native_min_value": 0, + "native_step": 1, + "native_unit_of_measurement": "min" + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Timer mode target temperature", + "unique_id": "ab:cd:ef:12:4d:04:9a:8f-1-timer_mode_target_temperature", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "timer_mode_target_temperature", + "translation_placeholders": null, + "device_class": "temperature", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4d:04:9a:8f", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 35.0, + "native_min_value": 4.0, + "native_step": 0.5, + "native_unit_of_measurement": "\u00b0C" + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Valve closing degree", + "unique_id": "ab:cd:ef:12:4d:04:9a:8f-1-valve_closing_degree", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "valve_closing_degree", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4d:04:9a:8f", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 100.0, + "native_min_value": 0.0, + "native_step": 1.0, + "native_unit_of_measurement": null + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Valve opening degree", + "unique_id": "ab:cd:ef:12:4d:04:9a:8f-1-valve_opening_degree", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "valve_opening_degree", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4d:04:9a:8f", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 100.0, + "native_min_value": 0.0, + "native_step": 1.0, + "native_unit_of_measurement": null + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": null + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:4d:04:9a:8f-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4d:04:9a:8f", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:4d:04:9a:8f-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4d:04:9a:8f", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:4d:04:9a:8f-1-1", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Battery", + "translation_key": null, + "translation_placeholders": null, + "device_class": "battery", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4d:04:9a:8f", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 0, + "unit": "%" + }, + "state": { + "class_name": "Battery", + "available": true, + "state": 71.0 + }, + "extra_state_attributes": [ + "battery_quantity", + "battery_size", + "battery_voltage" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:4d:04:9a:8f-1-513-hvac_action", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "ThermostatHVACAction", + "translation_key": "hvac_action", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4d:04:9a:8f", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "ThermostatHVACAction", + "available": true, + "state": "heating" + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:4d:04:9a:8f-1-513-setpoint_change_source", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "SetpointChangeSource", + "translation_key": "setpoint_change_source", + "translation_placeholders": null, + "device_class": "enum", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4d:04:9a:8f", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "SetpointChangeSource", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:4d:04:9a:8f-1-513-setpoint_change_source_timestamp", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "SetpointChangeSourceTimestamp", + "translation_key": "setpoint_change_source_timestamp", + "translation_placeholders": null, + "device_class": "timestamp", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4d:04:9a:8f", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "SetpointChangeSourceTimestamp", + "available": true, + "state": null + } + } + ], + "switch": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:4d:04:9a:8f-1-6", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "Switch", + "translation_key": "switch", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4d:04:9a:8f", + "endpoint_id": 1, + "available": true, + "group_id": null + }, + "state": { + "class_name": "Switch", + "state": 1, + "available": true + } + }, + { + "info_object": { + "fallback_name": "Child lock", + "unique_id": "ab:cd:ef:12:4d:04:9a:8f-1-child_lock", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "ConfigurableAttributeSwitch", + "translation_key": "child_lock", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4d:04:9a:8f", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "child_lock", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 0, + "on_value": 1 + }, + "state": { + "class_name": "ConfigurableAttributeSwitch", + "available": true, + "state": false, + "inverted": false + } + }, + { + "info_object": { + "fallback_name": "External temperature sensor", + "unique_id": "ab:cd:ef:12:4d:04:9a:8f-1-external_temperature_sensor_enable", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "ConfigurableAttributeSwitch", + "translation_key": "external_temperature_sensor", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4d:04:9a:8f", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "external_temperature_sensor_enable", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 0, + "on_value": 1 + }, + "state": { + "class_name": "ConfigurableAttributeSwitch", + "available": true, + "state": false, + "inverted": false + } + }, + { + "info_object": { + "fallback_name": "Open window", + "unique_id": "ab:cd:ef:12:4d:04:9a:8f-1-open_window", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "ConfigurableAttributeSwitch", + "translation_key": "open_window", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4d:04:9a:8f", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "open_window", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 0, + "on_value": 1 + }, + "state": { + "class_name": "ConfigurableAttributeSwitch", + "available": true, + "state": false, + "inverted": false + } + }, + { + "info_object": { + "fallback_name": "Adaptive mode", + "unique_id": "ab:cd:ef:12:4d:04:9a:8f-1-smart_temperature_control", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "ConfigurableAttributeSwitch", + "translation_key": "adaptive_mode", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4d:04:9a:8f", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "smart_temperature_control", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 0, + "on_value": 2 + }, + "state": { + "class_name": "ConfigurableAttributeSwitch", + "available": true, + "state": false, + "inverted": false + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:4d:04:9a:8f-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4d:04:9a:8f", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": null, + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/sonoff-zbminil2.json b/tests/data/legacy_devices/sonoff-zbminil2.json new file mode 100644 index 000000000..68518c951 --- /dev/null +++ b/tests/data/legacy_devices/sonoff-zbminil2.json @@ -0,0 +1,365 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:d4:86:60:40", + "nwk": "0x8836", + "manufacturer": "SONOFF", + "model": "ZBMINIL2", + "friendly_manufacturer": "SONOFF", + "friendly_model": "ZBMINIL2", + "name": "SONOFF ZBMINIL2", + "quirk_applied": false, + "quirk_class": "zigpy.device.Device", + "exposes_features": [], + "manufacturer_code": 4742, + "power_source": "Battery or Unknown", + "lqi": null, + "rssi": null, + "last_seen": "2024-03-18T22:29:50", + "available": true, + "device_type": "EndDevice", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "EndDevice", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 128, + "manufacturer_code": 4742, + "maximum_buffer_size": 82, + "maximum_incoming_transfer_size": 1024, + "server_mask": 11264, + "maximum_outgoing_transfer_size": 1024, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "ON_OFF_OUTPUT", + "id": 2 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "SONOFF" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "ZBMINIL2" + } + ] + }, + { + "cluster_id": "0x0001", + "endpoint_attribute": "power", + "attributes": [ + { + "id": "0x0021", + "name": "battery_percentage_remaining", + "zcl_type": "uint8", + "unsupported": true + }, + { + "id": "0x0033", + "name": "battery_quantity", + "zcl_type": "uint8", + "unsupported": true + }, + { + "id": "0x0031", + "name": "battery_size", + "zcl_type": "enum8", + "unsupported": true + }, + { + "id": "0x0020", + "name": "battery_voltage", + "zcl_type": "uint8", + "unsupported": true + } + ] + }, + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0006", + "endpoint_attribute": "on_off", + "attributes": [ + { + "id": "0x0000", + "name": "on_off", + "zcl_type": "bool", + "value": 0 + }, + { + "id": "0x4003", + "name": "start_up_on_off", + "zcl_type": "enum8", + "value": 0 + } + ] + }, + { + "cluster_id": "0x0007", + "endpoint_attribute": "on_off_config", + "attributes": [] + }, + { + "cluster_id": "0x0b05", + "endpoint_attribute": "diagnostic", + "attributes": [] + }, + { + "cluster_id": "0xfc57", + "endpoint_attribute": "works_with_all_hubs", + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [] + } + ] + } + }, + "zha_lib_entities": { + "button": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:d4:86:60:40-1-3", + "migrate_unique_ids": [], + "platform": "button", + "class_name": "IdentifyButton", + "translation_key": null, + "translation_placeholders": null, + "device_class": "identify", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:d4:86:60:40", + "endpoint_id": 1, + "available": true, + "group_id": null, + "command": "identify", + "args": [ + 5 + ], + "kwargs": {} + }, + "state": { + "class_name": "IdentifyButton", + "available": true + } + } + ], + "select": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:d4:86:60:40-1-6-StartUpOnOff", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "StartupOnOffSelectEntity", + "translation_key": "start_up_on_off", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:d4:86:60:40", + "endpoint_id": 1, + "available": true, + "group_id": null, + "enum": "StartUpOnOff", + "options": [ + "Off", + "On", + "Toggle", + "PreviousValue" + ] + }, + "state": { + "class_name": "StartupOnOffSelectEntity", + "available": true, + "state": "Off" + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:d4:86:60:40-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:d4:86:60:40", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:d4:86:60:40-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:d4:86:60:40", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:d4:86:60:40-1-1", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Battery", + "translation_key": null, + "translation_placeholders": null, + "device_class": "battery", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:d4:86:60:40", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 0, + "unit": "%" + }, + "state": { + "class_name": "Battery", + "available": true, + "state": null + }, + "extra_state_attributes": [ + "battery_quantity", + "battery_size", + "battery_voltage" + ] + } + ], + "switch": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:d4:86:60:40-1-6", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "Switch", + "translation_key": "switch", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": true, + "device_ieee": "ab:cd:ef:12:d4:86:60:40", + "endpoint_id": 1, + "available": true, + "group_id": null + }, + "state": { + "class_name": "Switch", + "state": 0, + "available": true + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:d4:86:60:40-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:d4:86:60:40", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": null, + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/sonoff-zbminir2.json b/tests/data/legacy_devices/sonoff-zbminir2.json new file mode 100644 index 000000000..b43866a74 --- /dev/null +++ b/tests/data/legacy_devices/sonoff-zbminir2.json @@ -0,0 +1,444 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:f5:dc:76:8d", + "nwk": "0xEE09", + "manufacturer": "SONOFF", + "model": "ZBMINIR2", + "friendly_manufacturer": "SONOFF", + "friendly_model": "ZBMINIR2", + "name": "SONOFF ZBMINIR2", + "quirk_applied": true, + "quirk_class": "zhaquirks.sonoff.zbminir2:(SONOFF / ZBMINIR2)", + "exposes_features": [], + "manufacturer_code": 4742, + "power_source": "Mains", + "lqi": null, + "rssi": null, + "last_seen": "2024-12-03T21:49:13+00:00", + "available": true, + "device_type": "Router", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "Router", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 142, + "manufacturer_code": 4742, + "maximum_buffer_size": 82, + "maximum_incoming_transfer_size": 255, + "server_mask": 11264, + "maximum_outgoing_transfer_size": 255, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "ON_OFF_OUTPUT", + "id": 2 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "SONOFF" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "ZBMINIR2" + } + ] + }, + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0006", + "endpoint_attribute": "on_off", + "attributes": [] + }, + { + "cluster_id": "0x0b05", + "endpoint_attribute": "diagnostic", + "attributes": [] + }, + { + "cluster_id": "0xfc11", + "endpoint_attribute": null, + "attributes": [] + }, + { + "cluster_id": "0xfc57", + "endpoint_attribute": "works_with_all_hubs", + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0006", + "endpoint_attribute": "on_off", + "attributes": [] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [] + } + ] + }, + "242": { + "profile_id": 41440, + "device_type": { + "name": "PROXY_BASIC", + "id": 97 + }, + "in_clusters": [], + "out_clusters": [ + { + "cluster_id": "0x0021", + "endpoint_attribute": "green_power", + "attributes": [] + } + ] + } + }, + "zha_lib_entities": { + "binary_sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:f5:dc:76:8d-1-6", + "migrate_unique_ids": [], + "platform": "binary_sensor", + "class_name": "Opening", + "translation_key": null, + "translation_placeholders": null, + "device_class": "opening", + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:f5:dc:76:8d", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "on_off" + }, + "state": { + "class_name": "Opening", + "available": true, + "state": false + } + } + ], + "button": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:f5:dc:76:8d-1-3", + "migrate_unique_ids": [], + "platform": "button", + "class_name": "IdentifyButton", + "translation_key": null, + "translation_placeholders": null, + "device_class": "identify", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:f5:dc:76:8d", + "endpoint_id": 1, + "available": true, + "group_id": null, + "command": "identify", + "args": [ + 5 + ], + "kwargs": {} + }, + "state": { + "class_name": "IdentifyButton", + "available": true + } + } + ], + "select": [ + { + "info_object": { + "fallback_name": "External trigger mode", + "unique_id": "ab:cd:ef:12:f5:dc:76:8d-1-external_trigger_mode", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "ZCLEnumSelectEntity", + "translation_key": "external_trigger_mode", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:f5:dc:76:8d", + "endpoint_id": 1, + "available": true, + "group_id": null, + "enum": "SonoffExternalSwitchTriggerType", + "options": [ + "Edge trigger", + "Pulse trigger", + "Normally off follow trigger", + "Normally on follow trigger" + ] + }, + "state": { + "class_name": "ZCLEnumSelectEntity", + "available": true, + "state": null + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:f5:dc:76:8d-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:f5:dc:76:8d", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:f5:dc:76:8d-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:f5:dc:76:8d", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + } + ], + "switch": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:f5:dc:76:8d-1-6", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "Switch", + "translation_key": "switch", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": true, + "device_ieee": "ab:cd:ef:12:f5:dc:76:8d", + "endpoint_id": 1, + "available": true, + "group_id": null + }, + "state": { + "class_name": "Switch", + "state": false, + "available": true + } + }, + { + "info_object": { + "fallback_name": "Detach relay", + "unique_id": "ab:cd:ef:12:f5:dc:76:8d-1-detach_relay", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "ConfigurableAttributeSwitch", + "translation_key": "detach_relay", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:f5:dc:76:8d", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "detach_relay", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 0, + "on_value": 1 + }, + "state": { + "class_name": "ConfigurableAttributeSwitch", + "available": true, + "state": false, + "inverted": false + } + }, + { + "info_object": { + "fallback_name": "Network LED", + "unique_id": "ab:cd:ef:12:f5:dc:76:8d-1-network_led", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "ConfigurableAttributeSwitch", + "translation_key": "network_led", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:f5:dc:76:8d", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "network_led", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 0, + "on_value": 1 + }, + "state": { + "class_name": "ConfigurableAttributeSwitch", + "available": true, + "state": false, + "inverted": false + } + }, + { + "info_object": { + "fallback_name": "Turbo mode", + "unique_id": "ab:cd:ef:12:f5:dc:76:8d-1-turbo_mode", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "ConfigurableAttributeSwitch", + "translation_key": "turbo_mode", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:f5:dc:76:8d", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "turbo_mode", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 9, + "on_value": 20 + }, + "state": { + "class_name": "ConfigurableAttributeSwitch", + "available": true, + "state": false, + "inverted": false + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:f5:dc:76:8d-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:f5:dc:76:8d", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": null, + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/third-reality-inc-3rsnl02043z-0x00000052.json b/tests/data/legacy_devices/third-reality-inc-3rsnl02043z-0x00000052.json new file mode 100644 index 000000000..67a5ff792 --- /dev/null +++ b/tests/data/legacy_devices/third-reality-inc-3rsnl02043z-0x00000052.json @@ -0,0 +1,686 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:4a:e3:08:4e", + "nwk": "0x9FDA", + "manufacturer": "Third Reality, Inc", + "model": "3RSNL02043Z", + "friendly_manufacturer": "Third Reality, Inc", + "friendly_model": "3RSNL02043Z", + "name": "Third Reality, Inc 3RSNL02043Z", + "quirk_applied": false, + "quirk_class": "zigpy.device.Device", + "exposes_features": [], + "manufacturer_code": 4877, + "power_source": "Mains", + "lqi": null, + "rssi": null, + "last_seen": "2025-01-23T15:10:06", + "available": true, + "device_type": "Router", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "Router", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 142, + "manufacturer_code": 4877, + "maximum_buffer_size": 127, + "maximum_incoming_transfer_size": 242, + "server_mask": 11264, + "maximum_outgoing_transfer_size": 242, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "COLOR_DIMMABLE_LIGHT", + "id": 258 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [] + }, + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0005", + "endpoint_attribute": "scenes", + "attributes": [] + }, + { + "cluster_id": "0x0006", + "endpoint_attribute": "on_off", + "attributes": [ + { + "id": "0x0000", + "name": "on_off", + "zcl_type": "bool", + "value": 1 + }, + { + "id": "0x4003", + "name": "start_up_on_off", + "zcl_type": "enum8", + "value": 255 + } + ] + }, + { + "cluster_id": "0x0008", + "endpoint_attribute": "level", + "attributes": [ + { + "id": "0x0000", + "name": "current_level", + "zcl_type": "uint8", + "value": 127 + }, + { + "id": "0x0014", + "name": "default_move_rate", + "zcl_type": "uint8", + "unsupported": true + }, + { + "id": "0x0013", + "name": "off_transition_time", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0011", + "name": "on_level", + "zcl_type": "uint8", + "value": 255 + }, + { + "id": "0x0010", + "name": "on_off_transition_time", + "zcl_type": "uint16", + "value": 0 + }, + { + "id": "0x0012", + "name": "on_transition_time", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x4000", + "name": "start_up_current_level", + "zcl_type": "uint8", + "value": 255 + } + ] + }, + { + "cluster_id": "0x0012", + "endpoint_attribute": "multistate_input", + "attributes": [] + }, + { + "cluster_id": "0x0300", + "endpoint_attribute": "light_color", + "attributes": [ + { + "id": "0x400a", + "name": "color_capabilities", + "zcl_type": "map16", + "value": 31 + }, + { + "id": "0x4002", + "name": "color_loop_active", + "zcl_type": "uint8", + "value": 0 + }, + { + "id": "0x0008", + "name": "color_mode", + "zcl_type": "enum8", + "value": 0 + }, + { + "id": "0x400c", + "name": "color_temp_physical_max", + "zcl_type": "uint16", + "value": 500 + }, + { + "id": "0x400b", + "name": "color_temp_physical_min", + "zcl_type": "uint16", + "value": 153 + }, + { + "id": "0x0007", + "name": "color_temperature", + "zcl_type": "uint16", + "value": 65535 + }, + { + "id": "0x0003", + "name": "current_x", + "zcl_type": "uint16", + "value": 9844 + }, + { + "id": "0x0004", + "name": "current_y", + "zcl_type": "uint16", + "value": 3981 + }, + { + "id": "0x000f", + "name": "options", + "zcl_type": "map8", + "value": 1 + }, + { + "id": "0x4010", + "name": "start_up_color_temperature", + "zcl_type": "uint16", + "value": 65535 + } + ] + }, + { + "cluster_id": "0x0400", + "endpoint_attribute": "illuminance", + "attributes": [ + { + "id": "0x0000", + "name": "measured_value", + "zcl_type": "uint16", + "value": 14472 + } + ] + }, + { + "cluster_id": "0x0500", + "endpoint_attribute": "ias_zone", + "attributes": [ + { + "id": "0x0010", + "name": "cie_addr", + "zcl_type": "EUI64", + "value": [ + 50, + 79, + 50, + 2, + 0, + 141, + 21, + 0 + ] + }, + { + "id": "0x0000", + "name": "zone_state", + "zcl_type": "enum8", + "unsupported": true + }, + { + "id": "0x0002", + "name": "zone_status", + "zcl_type": "map16", + "value": 1 + }, + { + "id": "0x0001", + "name": "zone_type", + "zcl_type": "enum16", + "value": 13 + } + ] + }, + { + "cluster_id": "0x1000", + "endpoint_attribute": "lightlink", + "attributes": [] + }, + { + "cluster_id": "0xfc00", + "endpoint_attribute": "manufacturer_specific", + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [ + { + "id": "0x0002", + "name": "current_file_version", + "zcl_type": "uint32", + "value": 82 + } + ] + } + ] + } + }, + "zha_lib_entities": { + "binary_sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:4a:e3:08:4e-1-1280", + "migrate_unique_ids": [], + "platform": "binary_sensor", + "class_name": "IASZone", + "translation_key": null, + "translation_placeholders": null, + "device_class": "motion", + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4a:e3:08:4e", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "zone_status" + }, + "state": { + "class_name": "IASZone", + "available": true, + "state": true + } + } + ], + "button": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:4a:e3:08:4e-1-3", + "migrate_unique_ids": [], + "platform": "button", + "class_name": "IdentifyButton", + "translation_key": null, + "translation_placeholders": null, + "device_class": "identify", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4a:e3:08:4e", + "endpoint_id": 1, + "available": true, + "group_id": null, + "command": "identify", + "args": [ + 5 + ], + "kwargs": {} + }, + "state": { + "class_name": "IdentifyButton", + "available": true + } + } + ], + "light": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:4a:e3:08:4e-1", + "migrate_unique_ids": [], + "platform": "light", + "class_name": "Light", + "translation_key": "light", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": true, + "device_ieee": "ab:cd:ef:12:4a:e3:08:4e", + "endpoint_id": 1, + "available": true, + "group_id": null, + "effect_list": [ + "off", + "colorloop" + ], + "supported_features": 44, + "min_mireds": 153, + "max_mireds": 500 + }, + "state": { + "class_name": "Light", + "available": true, + "on": true, + "brightness": 127, + "xy_color": [ + 0.15020981155107957, + 0.060746166170748454 + ], + "color_temp": 65535, + "effect_list": [ + "off", + "colorloop" + ], + "effect": "off", + "supported_features": 44, + "color_mode": "xy", + "supported_color_modes": [ + "brightness", + "color_temp", + "onoff", + "xy" + ], + "off_with_transition": false, + "off_brightness": null + }, + "extra_state_attributes": [ + "off_brightness", + "off_with_transition" + ] + } + ], + "number": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:4a:e3:08:4e-1-768-start_up_color_temperature", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "StartUpColorTemperatureConfigurationEntity", + "translation_key": "start_up_color_temperature", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4a:e3:08:4e", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 500, + "native_min_value": 153, + "native_step": 1.0, + "native_unit_of_measurement": null + }, + "state": { + "class_name": "StartUpColorTemperatureConfigurationEntity", + "available": true, + "state": 65535 + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:4a:e3:08:4e-1-8-on_level", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "OnLevelConfigurationEntity", + "translation_key": "on_level", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4a:e3:08:4e", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 255, + "native_min_value": 0, + "native_step": 1.0, + "native_unit_of_measurement": null + }, + "state": { + "class_name": "OnLevelConfigurationEntity", + "available": true, + "state": 255 + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:4a:e3:08:4e-1-8-on_off_transition_time", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "OnOffTransitionTimeConfigurationEntity", + "translation_key": "on_off_transition_time", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4a:e3:08:4e", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 65535, + "native_min_value": 0, + "native_step": 1.0, + "native_unit_of_measurement": null + }, + "state": { + "class_name": "OnOffTransitionTimeConfigurationEntity", + "available": true, + "state": 0 + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:4a:e3:08:4e-1-8-start_up_current_level", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "StartUpCurrentLevelConfigurationEntity", + "translation_key": "start_up_current_level", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4a:e3:08:4e", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 255, + "native_min_value": 0, + "native_step": 1.0, + "native_unit_of_measurement": null + }, + "state": { + "class_name": "StartUpCurrentLevelConfigurationEntity", + "available": true, + "state": 255 + } + } + ], + "select": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:4a:e3:08:4e-1-6-StartUpOnOff", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "StartupOnOffSelectEntity", + "translation_key": "start_up_on_off", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4a:e3:08:4e", + "endpoint_id": 1, + "available": true, + "group_id": null, + "enum": "StartUpOnOff", + "options": [ + "Off", + "On", + "Toggle", + "PreviousValue" + ] + }, + "state": { + "class_name": "StartupOnOffSelectEntity", + "available": true, + "state": "PreviousValue" + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:4a:e3:08:4e-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4a:e3:08:4e", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:4a:e3:08:4e-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4a:e3:08:4e", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:4a:e3:08:4e-1-1024", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Illuminance", + "translation_key": null, + "translation_placeholders": null, + "device_class": "illuminance", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4a:e3:08:4e", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "lx" + }, + "state": { + "class_name": "Illuminance", + "available": true, + "state": 28 + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:4a:e3:08:4e-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4a:e3:08:4e", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": "0x00000052", + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/third-reality-inc-3rsnl02043z.json b/tests/data/legacy_devices/third-reality-inc-3rsnl02043z.json new file mode 100644 index 000000000..1bf67f0f9 --- /dev/null +++ b/tests/data/legacy_devices/third-reality-inc-3rsnl02043z.json @@ -0,0 +1,710 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:4a:e3:08:4e", + "nwk": "0xB70B", + "manufacturer": "Third Reality, Inc", + "model": "3RSNL02043Z", + "friendly_manufacturer": "Third Reality, Inc", + "friendly_model": "3RSNL02043Z", + "name": "Third Reality, Inc 3RSNL02043Z", + "quirk_applied": false, + "quirk_class": "zigpy.device.Device", + "exposes_features": [], + "manufacturer_code": 4877, + "power_source": "Mains", + "lqi": null, + "rssi": null, + "last_seen": "2024-01-15T12:00:50", + "available": true, + "device_type": "Router", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "Router", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 142, + "manufacturer_code": 4877, + "maximum_buffer_size": 127, + "maximum_incoming_transfer_size": 242, + "server_mask": 11264, + "maximum_outgoing_transfer_size": 242, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "COLOR_DIMMABLE_LIGHT", + "id": 258 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "Third Reality, Inc" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "3RSNL02043Z" + } + ] + }, + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0005", + "endpoint_attribute": "scenes", + "attributes": [] + }, + { + "cluster_id": "0x0006", + "endpoint_attribute": "on_off", + "attributes": [ + { + "id": "0x0000", + "name": "on_off", + "zcl_type": "bool", + "value": 1 + }, + { + "id": "0x4003", + "name": "start_up_on_off", + "zcl_type": "enum8", + "value": 255 + } + ] + }, + { + "cluster_id": "0x0008", + "endpoint_attribute": "level", + "attributes": [ + { + "id": "0x0000", + "name": "current_level", + "zcl_type": "uint8", + "value": 127 + }, + { + "id": "0x0014", + "name": "default_move_rate", + "zcl_type": "uint8", + "unsupported": true + }, + { + "id": "0x0013", + "name": "off_transition_time", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0011", + "name": "on_level", + "zcl_type": "uint8", + "value": 255 + }, + { + "id": "0x0010", + "name": "on_off_transition_time", + "zcl_type": "uint16", + "value": 0 + }, + { + "id": "0x0012", + "name": "on_transition_time", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x4000", + "name": "start_up_current_level", + "zcl_type": "uint8", + "value": 255 + } + ] + }, + { + "cluster_id": "0x0012", + "endpoint_attribute": "multistate_input", + "attributes": [] + }, + { + "cluster_id": "0x0300", + "endpoint_attribute": "light_color", + "attributes": [ + { + "id": "0x400a", + "name": "color_capabilities", + "zcl_type": "map16", + "value": 31 + }, + { + "id": "0x4002", + "name": "color_loop_active", + "zcl_type": "uint8", + "value": 0 + }, + { + "id": "0x0008", + "name": "color_mode", + "zcl_type": "enum8", + "value": 0 + }, + { + "id": "0x400c", + "name": "color_temp_physical_max", + "zcl_type": "uint16", + "value": 65279 + }, + { + "id": "0x400b", + "name": "color_temp_physical_min", + "zcl_type": "uint16", + "value": 0 + }, + { + "id": "0x0007", + "name": "color_temperature", + "zcl_type": "uint16", + "value": 65535 + }, + { + "id": "0x0000", + "name": "current_hue", + "zcl_type": "uint8", + "value": 169 + }, + { + "id": "0x0001", + "name": "current_saturation", + "zcl_type": "uint8", + "value": 254 + }, + { + "id": "0x0003", + "name": "current_x", + "zcl_type": "uint16", + "value": 9844 + }, + { + "id": "0x0004", + "name": "current_y", + "zcl_type": "uint16", + "value": 3981 + }, + { + "id": "0x4000", + "name": "enhanced_current_hue", + "zcl_type": "uint16", + "value": 43264 + }, + { + "id": "0x000f", + "name": "options", + "zcl_type": "map8", + "value": 1 + }, + { + "id": "0x4010", + "name": "start_up_color_temperature", + "zcl_type": "uint16", + "value": 65535 + } + ] + }, + { + "cluster_id": "0x0400", + "endpoint_attribute": "illuminance", + "attributes": [ + { + "id": "0x0000", + "name": "measured_value", + "zcl_type": "uint16", + "value": 15264 + } + ] + }, + { + "cluster_id": "0x0500", + "endpoint_attribute": "ias_zone", + "attributes": [ + { + "id": "0x0010", + "name": "cie_addr", + "zcl_type": "EUI64", + "value": [ + 50, + 79, + 50, + 2, + 0, + 141, + 21, + 0 + ] + }, + { + "id": "0x0000", + "name": "zone_state", + "zcl_type": "enum8", + "unsupported": true + }, + { + "id": "0x0002", + "name": "zone_status", + "zcl_type": "map16", + "value": 0 + }, + { + "id": "0x0001", + "name": "zone_type", + "zcl_type": "enum16", + "value": 13 + } + ] + }, + { + "cluster_id": "0x1000", + "endpoint_attribute": "lightlink", + "attributes": [] + }, + { + "cluster_id": "0xfc00", + "endpoint_attribute": "manufacturer_specific", + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [] + } + ] + } + }, + "zha_lib_entities": { + "binary_sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:4a:e3:08:4e-1-1280", + "migrate_unique_ids": [], + "platform": "binary_sensor", + "class_name": "IASZone", + "translation_key": null, + "translation_placeholders": null, + "device_class": "motion", + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4a:e3:08:4e", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "zone_status" + }, + "state": { + "class_name": "IASZone", + "available": true, + "state": false + } + } + ], + "button": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:4a:e3:08:4e-1-3", + "migrate_unique_ids": [], + "platform": "button", + "class_name": "IdentifyButton", + "translation_key": null, + "translation_placeholders": null, + "device_class": "identify", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4a:e3:08:4e", + "endpoint_id": 1, + "available": true, + "group_id": null, + "command": "identify", + "args": [ + 5 + ], + "kwargs": {} + }, + "state": { + "class_name": "IdentifyButton", + "available": true + } + } + ], + "light": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:4a:e3:08:4e-1", + "migrate_unique_ids": [], + "platform": "light", + "class_name": "Light", + "translation_key": "light", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": true, + "device_ieee": "ab:cd:ef:12:4a:e3:08:4e", + "endpoint_id": 1, + "available": true, + "group_id": null, + "effect_list": [ + "off", + "colorloop" + ], + "supported_features": 44, + "min_mireds": 153, + "max_mireds": 65279 + }, + "state": { + "class_name": "Light", + "available": true, + "on": true, + "brightness": 127, + "xy_color": [ + 0.15020981155107957, + 0.060746166170748454 + ], + "color_temp": 65535, + "effect_list": [ + "off", + "colorloop" + ], + "effect": "off", + "supported_features": 44, + "color_mode": "xy", + "supported_color_modes": [ + "brightness", + "color_temp", + "onoff", + "xy" + ], + "off_with_transition": false, + "off_brightness": null + }, + "extra_state_attributes": [ + "off_brightness", + "off_with_transition" + ] + } + ], + "number": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:4a:e3:08:4e-1-768-start_up_color_temperature", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "StartUpColorTemperatureConfigurationEntity", + "translation_key": "start_up_color_temperature", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4a:e3:08:4e", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 65279, + "native_min_value": 153, + "native_step": 1.0, + "native_unit_of_measurement": null + }, + "state": { + "class_name": "StartUpColorTemperatureConfigurationEntity", + "available": true, + "state": 65535 + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:4a:e3:08:4e-1-8-on_level", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "OnLevelConfigurationEntity", + "translation_key": "on_level", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4a:e3:08:4e", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 255, + "native_min_value": 0, + "native_step": 1.0, + "native_unit_of_measurement": null + }, + "state": { + "class_name": "OnLevelConfigurationEntity", + "available": true, + "state": 255 + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:4a:e3:08:4e-1-8-on_off_transition_time", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "OnOffTransitionTimeConfigurationEntity", + "translation_key": "on_off_transition_time", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4a:e3:08:4e", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 65535, + "native_min_value": 0, + "native_step": 1.0, + "native_unit_of_measurement": null + }, + "state": { + "class_name": "OnOffTransitionTimeConfigurationEntity", + "available": true, + "state": 0 + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:4a:e3:08:4e-1-8-start_up_current_level", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "StartUpCurrentLevelConfigurationEntity", + "translation_key": "start_up_current_level", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4a:e3:08:4e", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 255, + "native_min_value": 0, + "native_step": 1.0, + "native_unit_of_measurement": null + }, + "state": { + "class_name": "StartUpCurrentLevelConfigurationEntity", + "available": true, + "state": 255 + } + } + ], + "select": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:4a:e3:08:4e-1-6-StartUpOnOff", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "StartupOnOffSelectEntity", + "translation_key": "start_up_on_off", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4a:e3:08:4e", + "endpoint_id": 1, + "available": true, + "group_id": null, + "enum": "StartUpOnOff", + "options": [ + "Off", + "On", + "Toggle", + "PreviousValue" + ] + }, + "state": { + "class_name": "StartupOnOffSelectEntity", + "available": true, + "state": "PreviousValue" + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:4a:e3:08:4e-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4a:e3:08:4e", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:4a:e3:08:4e-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4a:e3:08:4e", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:4a:e3:08:4e-1-1024", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Illuminance", + "translation_key": null, + "translation_placeholders": null, + "device_class": "illuminance", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4a:e3:08:4e", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "lx" + }, + "state": { + "class_name": "Illuminance", + "available": true, + "state": 34 + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:4a:e3:08:4e-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:4a:e3:08:4e", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": null, + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/tz3000-8nkb7mof-ts0121.json b/tests/data/legacy_devices/tz3000-8nkb7mof-ts0121.json new file mode 100644 index 000000000..6aab06fb4 --- /dev/null +++ b/tests/data/legacy_devices/tz3000-8nkb7mof-ts0121.json @@ -0,0 +1,783 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:2d:82:f3:92", + "nwk": "0x20AA", + "manufacturer": "_TZ3000_8nkb7mof", + "model": "TS0121", + "friendly_manufacturer": "_TZ3000_8nkb7mof", + "friendly_model": "TS0121", + "name": "_TZ3000_8nkb7mof TS0121", + "quirk_applied": true, + "quirk_class": "zhaquirks.tuya.ts0121_plug:TS0121B", + "exposes_features": [ + "tuya.plug_on_off_attributes" + ], + "manufacturer_code": 4098, + "power_source": "Mains", + "lqi": null, + "rssi": null, + "last_seen": "2024-12-30T04:29:04+00:00", + "available": true, + "device_type": "Router", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "Router", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 142, + "manufacturer_code": 4098, + "maximum_buffer_size": 82, + "maximum_incoming_transfer_size": 82, + "server_mask": 11264, + "maximum_outgoing_transfer_size": 82, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "ON_OFF_PLUG_IN_UNIT", + "id": 266 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "_TZ3000_8nkb7mof" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "TS0121" + } + ] + }, + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0005", + "endpoint_attribute": "scenes", + "attributes": [] + }, + { + "cluster_id": "0x0006", + "endpoint_attribute": "on_off", + "attributes": [ + { + "id": "0x8001", + "name": "backlight_mode", + "zcl_type": "enum8", + "value": 1 + }, + { + "id": "0x8000", + "name": "child_lock", + "zcl_type": "bool", + "value": 1 + }, + { + "id": "0x0000", + "name": "on_off", + "zcl_type": "bool", + "value": 1 + }, + { + "id": "0x8002", + "name": "power_on_state", + "zcl_type": "enum8", + "value": 1 + }, + { + "id": "0x4003", + "name": "start_up_on_off", + "zcl_type": "enum8", + "unsupported": true + } + ] + }, + { + "cluster_id": "0x0702", + "endpoint_attribute": "smartenergy_metering", + "attributes": [ + { + "id": "0x0000", + "name": "current_summ_delivered", + "zcl_type": "uint48", + "value": 119695 + }, + { + "id": "0x0001", + "name": "current_summ_received", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0100", + "name": "current_tier1_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0102", + "name": "current_tier2_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0104", + "name": "current_tier3_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0106", + "name": "current_tier4_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0108", + "name": "current_tier5_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x010a", + "name": "current_tier6_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0304", + "name": "demand_formatting", + "zcl_type": "map8", + "unsupported": true + }, + { + "id": "0x0302", + "name": "divisor", + "zcl_type": "uint24", + "value": 100 + }, + { + "id": "0x0400", + "name": "instantaneous_demand", + "zcl_type": "int24", + "unsupported": true + }, + { + "id": "0x0306", + "name": "metering_device_type", + "zcl_type": "map8", + "value": 0 + }, + { + "id": "0x0301", + "name": "multiplier", + "zcl_type": "uint24", + "value": 1 + }, + { + "id": "0x0200", + "name": "status", + "zcl_type": "map8", + "value": 0 + }, + { + "id": "0x0303", + "name": "summation_formatting", + "zcl_type": "map8", + "value": 0 + }, + { + "id": "0x0300", + "name": "unit_of_measure", + "zcl_type": "enum8", + "value": 0 + } + ] + }, + { + "cluster_id": "0x0b04", + "endpoint_attribute": "electrical_measurement", + "attributes": [ + { + "id": "0x0603", + "name": "ac_current_divisor", + "zcl_type": "uint16", + "value": 1000 + }, + { + "id": "0x0602", + "name": "ac_current_multiplier", + "zcl_type": "uint16", + "value": 1 + }, + { + "id": "0x0300", + "name": "ac_frequency", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0401", + "name": "ac_frequency_divisor", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0302", + "name": "ac_frequency_max", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0400", + "name": "ac_frequency_multiplier", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0605", + "name": "ac_power_divisor", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0604", + "name": "ac_power_multiplier", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0601", + "name": "ac_voltage_divisor", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0600", + "name": "ac_voltage_multiplier", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x050b", + "name": "active_power", + "zcl_type": "int16", + "value": 152 + }, + { + "id": "0x050d", + "name": "active_power_max", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x050f", + "name": "apparent_power", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0000", + "name": "measurement_type", + "zcl_type": "map32", + "unsupported": true + }, + { + "id": "0x0403", + "name": "power_divisor", + "zcl_type": "uint32", + "unsupported": true + }, + { + "id": "0x0510", + "name": "power_factor", + "zcl_type": "int8", + "unsupported": true + }, + { + "id": "0x0402", + "name": "power_multiplier", + "zcl_type": "uint32", + "unsupported": true + }, + { + "id": "0x0508", + "name": "rms_current", + "zcl_type": "uint16", + "value": 709 + }, + { + "id": "0x050a", + "name": "rms_current_max", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0505", + "name": "rms_voltage", + "zcl_type": "uint16", + "value": 249 + }, + { + "id": "0x0507", + "name": "rms_voltage_max", + "zcl_type": "uint16", + "unsupported": true + } + ] + }, + { + "cluster_id": "0xe000", + "endpoint_attribute": "tuya_manufacturer_specific_57344", + "attributes": [] + }, + { + "cluster_id": "0xe001", + "endpoint_attribute": "tuya_external_switch_type", + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x000a", + "endpoint_attribute": "time", + "attributes": [] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [ + { + "id": "0x0002", + "name": "current_file_version", + "zcl_type": "uint32", + "unsupported": true + } + ] + } + ] + }, + "242": { + "profile_id": 41440, + "device_type": { + "name": "PROXY_BASIC", + "id": 97 + }, + "in_clusters": [], + "out_clusters": [ + { + "cluster_id": "0x0021", + "endpoint_attribute": "green_power", + "attributes": [] + } + ] + } + }, + "zha_lib_entities": { + "button": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:2d:82:f3:92-1-3", + "migrate_unique_ids": [], + "platform": "button", + "class_name": "IdentifyButton", + "translation_key": null, + "translation_placeholders": null, + "device_class": "identify", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:2d:82:f3:92", + "endpoint_id": 1, + "available": true, + "group_id": null, + "command": "identify", + "args": [ + 5 + ], + "kwargs": {} + }, + "state": { + "class_name": "IdentifyButton", + "available": true + } + } + ], + "select": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:2d:82:f3:92-1-6-backlight_mode", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "TuyaBacklightModeSelectEntity", + "translation_key": "backlight_mode", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:2d:82:f3:92", + "endpoint_id": 1, + "available": true, + "group_id": null, + "enum": "TuyaBacklightMode", + "options": [ + "Off", + "LightWhenOn", + "LightWhenOff" + ] + }, + "state": { + "class_name": "TuyaBacklightModeSelectEntity", + "available": true, + "state": "LightWhenOn" + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:2d:82:f3:92-1-6-power_on_state", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "TuyaPowerOnStateSelectEntity", + "translation_key": "power_on_state", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:2d:82:f3:92", + "endpoint_id": 1, + "available": true, + "group_id": null, + "enum": "TuyaPowerOnState", + "options": [ + "Off", + "On", + "LastState" + ] + }, + "state": { + "class_name": "TuyaPowerOnStateSelectEntity", + "available": true, + "state": "On" + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:2d:82:f3:92-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:2d:82:f3:92", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:2d:82:f3:92-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:2d:82:f3:92", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:2d:82:f3:92-1-1794-summation_delivered", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "SmartEnergySummation", + "translation_key": "summation_delivered", + "translation_placeholders": null, + "device_class": "energy", + "state_class": "total_increasing", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:2d:82:f3:92", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 3, + "unit": "kWh" + }, + "state": { + "class_name": "SmartEnergySummation", + "available": true, + "state": 1196.95, + "device_type": "Electric Metering", + "status": "NO_ALARMS", + "zcl_unit_of_measurement": 0 + }, + "extra_state_attributes": [ + "device_type", + "status", + "zcl_unit_of_measurement" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:2d:82:f3:92-1-2820", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "ElectricalMeasurementActivePower", + "translation_key": null, + "translation_placeholders": null, + "device_class": "power", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:2d:82:f3:92", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 1, + "unit": "W" + }, + "state": { + "class_name": "ElectricalMeasurementActivePower", + "available": true, + "state": 152.0 + }, + "extra_state_attributes": [ + "active_power_max", + "measurement_type" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:2d:82:f3:92-1-2820-rms_current", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "ElectricalMeasurementRMSCurrent", + "translation_key": null, + "translation_placeholders": null, + "device_class": "current", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:2d:82:f3:92", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 2, + "unit": "A" + }, + "state": { + "class_name": "ElectricalMeasurementRMSCurrent", + "available": true, + "state": 0.709 + }, + "extra_state_attributes": [ + "measurement_type", + "rms_current_max" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:2d:82:f3:92-1-2820-rms_voltage", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "ElectricalMeasurementRMSVoltage", + "translation_key": null, + "translation_placeholders": null, + "device_class": "voltage", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:2d:82:f3:92", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 1, + "unit": "V" + }, + "state": { + "class_name": "ElectricalMeasurementRMSVoltage", + "available": true, + "state": 249.0 + }, + "extra_state_attributes": [ + "measurement_type", + "rms_voltage_max" + ] + } + ], + "switch": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:2d:82:f3:92-1", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "Switch", + "translation_key": "switch", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": true, + "device_ieee": "ab:cd:ef:12:2d:82:f3:92", + "endpoint_id": 1, + "available": true, + "group_id": null + }, + "state": { + "class_name": "Switch", + "state": 1, + "available": true + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:2d:82:f3:92-1-child_lock", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "TuyaChildLockSwitch", + "translation_key": "child_lock", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:2d:82:f3:92", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "child_lock", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 0, + "on_value": 1 + }, + "state": { + "class_name": "TuyaChildLockSwitch", + "available": true, + "state": true, + "inverted": false + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:2d:82:f3:92-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:2d:82:f3:92", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": null, + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/tz3000-cehuw1lw-ts011f.json b/tests/data/legacy_devices/tz3000-cehuw1lw-ts011f.json new file mode 100644 index 000000000..7645af4f3 --- /dev/null +++ b/tests/data/legacy_devices/tz3000-cehuw1lw-ts011f.json @@ -0,0 +1,686 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:2d:f8:5e:65", + "nwk": "0x2D5F", + "manufacturer": "_TZ3000_cehuw1lw", + "model": "TS011F", + "friendly_manufacturer": "_TZ3000_cehuw1lw", + "friendly_model": "TS011F", + "name": "_TZ3000_cehuw1lw TS011F", + "quirk_applied": false, + "quirk_class": "zigpy.device.Device", + "exposes_features": [], + "manufacturer_code": 4417, + "power_source": "Mains", + "lqi": null, + "rssi": null, + "last_seen": "2023-09-27T12:59:37", + "available": true, + "device_type": "Router", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "Router", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 142, + "manufacturer_code": 4417, + "maximum_buffer_size": 66, + "maximum_incoming_transfer_size": 66, + "server_mask": 10752, + "maximum_outgoing_transfer_size": 66, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "ON_OFF_PLUG_IN_UNIT", + "id": 266 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0001", + "name": "app_version", + "zcl_type": "uint8", + "value": 77 + }, + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "_TZ3000_cehuw1lw" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "TS011F" + }, + { + "id": "0x0007", + "name": "power_source", + "zcl_type": "enum8", + "value": 1 + }, + { + "id": "0xfffe", + "name": "reporting_status", + "zcl_type": "enum8", + "value": 0 + }, + { + "id": "0x0000", + "name": "zcl_version", + "zcl_type": "uint8", + "value": 3 + } + ] + }, + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0005", + "endpoint_attribute": "scenes", + "attributes": [] + }, + { + "cluster_id": "0x0006", + "endpoint_attribute": "on_off", + "attributes": [ + { + "id": "0x0000", + "name": "on_off", + "zcl_type": "bool", + "value": 1 + }, + { + "id": "0x4003", + "name": "start_up_on_off", + "zcl_type": "enum8", + "unsupported": true + } + ] + }, + { + "cluster_id": "0x0702", + "endpoint_attribute": "smartenergy_metering", + "attributes": [ + { + "id": "0x0000", + "name": "current_summ_delivered", + "zcl_type": "uint48", + "value": 0 + }, + { + "id": "0x0100", + "name": "current_tier1_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0102", + "name": "current_tier2_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0104", + "name": "current_tier3_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0106", + "name": "current_tier4_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0108", + "name": "current_tier5_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x010a", + "name": "current_tier6_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0304", + "name": "demand_formatting", + "zcl_type": "map8", + "unsupported": true + }, + { + "id": "0x0302", + "name": "divisor", + "zcl_type": "uint24", + "value": 100 + }, + { + "id": "0x0400", + "name": "instantaneous_demand", + "zcl_type": "int24", + "unsupported": true + }, + { + "id": "0x0306", + "name": "metering_device_type", + "zcl_type": "map8", + "value": 0 + }, + { + "id": "0x0301", + "name": "multiplier", + "zcl_type": "uint24", + "value": 1 + }, + { + "id": "0x0200", + "name": "status", + "zcl_type": "map8", + "value": 0 + }, + { + "id": "0x0303", + "name": "summation_formatting", + "zcl_type": "map8", + "value": 0 + }, + { + "id": "0x0300", + "name": "unit_of_measure", + "zcl_type": "enum8", + "value": 0 + } + ] + }, + { + "cluster_id": "0x0b04", + "endpoint_attribute": "electrical_measurement", + "attributes": [ + { + "id": "0x0603", + "name": "ac_current_divisor", + "zcl_type": "uint16", + "value": 1000 + }, + { + "id": "0x0602", + "name": "ac_current_multiplier", + "zcl_type": "uint16", + "value": 1 + }, + { + "id": "0x0300", + "name": "ac_frequency", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0401", + "name": "ac_frequency_divisor", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0302", + "name": "ac_frequency_max", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0400", + "name": "ac_frequency_multiplier", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0605", + "name": "ac_power_divisor", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0604", + "name": "ac_power_multiplier", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0601", + "name": "ac_voltage_divisor", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0600", + "name": "ac_voltage_multiplier", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x050b", + "name": "active_power", + "zcl_type": "int16", + "value": 0 + }, + { + "id": "0x050d", + "name": "active_power_max", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x050f", + "name": "apparent_power", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0000", + "name": "measurement_type", + "zcl_type": "map32", + "unsupported": true + }, + { + "id": "0x0403", + "name": "power_divisor", + "zcl_type": "uint32", + "unsupported": true + }, + { + "id": "0x0402", + "name": "power_multiplier", + "zcl_type": "uint32", + "unsupported": true + }, + { + "id": "0x0508", + "name": "rms_current", + "zcl_type": "uint16", + "value": 0 + }, + { + "id": "0x050a", + "name": "rms_current_max", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0505", + "name": "rms_voltage", + "zcl_type": "uint16", + "value": 235 + }, + { + "id": "0x0507", + "name": "rms_voltage_max", + "zcl_type": "uint16", + "unsupported": true + } + ] + }, + { + "cluster_id": "0xe000", + "endpoint_attribute": null, + "attributes": [] + }, + { + "cluster_id": "0xe001", + "endpoint_attribute": null, + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x000a", + "endpoint_attribute": "time", + "attributes": [] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [] + } + ] + } + }, + "zha_lib_entities": { + "button": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:2d:f8:5e:65-1-3", + "migrate_unique_ids": [], + "platform": "button", + "class_name": "IdentifyButton", + "translation_key": null, + "translation_placeholders": null, + "device_class": "identify", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:2d:f8:5e:65", + "endpoint_id": 1, + "available": true, + "group_id": null, + "command": "identify", + "args": [ + 5 + ], + "kwargs": {} + }, + "state": { + "class_name": "IdentifyButton", + "available": true + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:2d:f8:5e:65-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:2d:f8:5e:65", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:2d:f8:5e:65-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:2d:f8:5e:65", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:2d:f8:5e:65-1-1794-summation_delivered", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "SmartEnergySummation", + "translation_key": "summation_delivered", + "translation_placeholders": null, + "device_class": "energy", + "state_class": "total_increasing", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:2d:f8:5e:65", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 3, + "unit": "kWh" + }, + "state": { + "class_name": "SmartEnergySummation", + "available": true, + "state": 0.0, + "device_type": "Electric Metering", + "status": "NO_ALARMS", + "zcl_unit_of_measurement": 0 + }, + "extra_state_attributes": [ + "device_type", + "status", + "zcl_unit_of_measurement" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:2d:f8:5e:65-1-2820", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "ElectricalMeasurementActivePower", + "translation_key": null, + "translation_placeholders": null, + "device_class": "power", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:2d:f8:5e:65", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 1, + "unit": "W" + }, + "state": { + "class_name": "ElectricalMeasurementActivePower", + "available": true, + "state": 0.0 + }, + "extra_state_attributes": [ + "active_power_max", + "measurement_type" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:2d:f8:5e:65-1-2820-power_factor", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "ElectricalMeasurementPowerFactor", + "translation_key": null, + "translation_placeholders": null, + "device_class": "power_factor", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:2d:f8:5e:65", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 1, + "unit": "%" + }, + "state": { + "class_name": "ElectricalMeasurementPowerFactor", + "available": true, + "state": null + }, + "extra_state_attributes": [ + "measurement_type" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:2d:f8:5e:65-1-2820-rms_current", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "ElectricalMeasurementRMSCurrent", + "translation_key": null, + "translation_placeholders": null, + "device_class": "current", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:2d:f8:5e:65", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 2, + "unit": "A" + }, + "state": { + "class_name": "ElectricalMeasurementRMSCurrent", + "available": true, + "state": 0.0 + }, + "extra_state_attributes": [ + "measurement_type", + "rms_current_max" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:2d:f8:5e:65-1-2820-rms_voltage", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "ElectricalMeasurementRMSVoltage", + "translation_key": null, + "translation_placeholders": null, + "device_class": "voltage", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:2d:f8:5e:65", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 1, + "unit": "V" + }, + "state": { + "class_name": "ElectricalMeasurementRMSVoltage", + "available": true, + "state": 235.0 + }, + "extra_state_attributes": [ + "measurement_type", + "rms_voltage_max" + ] + } + ], + "switch": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:2d:f8:5e:65-1", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "Switch", + "translation_key": "switch", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": true, + "device_ieee": "ab:cd:ef:12:2d:f8:5e:65", + "endpoint_id": 1, + "available": true, + "group_id": null + }, + "state": { + "class_name": "Switch", + "state": 1, + "available": true + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:2d:f8:5e:65-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:2d:f8:5e:65", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": null, + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/tz3000-itnrsufe-ts0201.json b/tests/data/legacy_devices/tz3000-itnrsufe-ts0201.json new file mode 100644 index 000000000..327eb6145 --- /dev/null +++ b/tests/data/legacy_devices/tz3000-itnrsufe-ts0201.json @@ -0,0 +1,365 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:1d:68:42:ed", + "nwk": "0x7E7A", + "manufacturer": "_TZ3000_itnrsufe", + "model": "TS0201", + "friendly_manufacturer": "_TZ3000_itnrsufe", + "friendly_model": "TS0201", + "name": "_TZ3000_itnrsufe TS0201", + "quirk_applied": true, + "quirk_class": "zhaquirks.tuya.ts0201:MoesTemperatureHumidtySensorWithScreen", + "exposes_features": [], + "manufacturer_code": 4417, + "power_source": "Battery or Unknown", + "lqi": null, + "rssi": null, + "last_seen": "2023-08-29T17:44:13+00:00", + "available": true, + "device_type": "EndDevice", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "EndDevice", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 128, + "manufacturer_code": 4417, + "maximum_buffer_size": 66, + "maximum_incoming_transfer_size": 66, + "server_mask": 10752, + "maximum_outgoing_transfer_size": 66, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "TEMPERATURE_SENSOR", + "id": 770 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "_TZ3000_itnrsufe" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "TS0201" + } + ] + }, + { + "cluster_id": "0x0001", + "endpoint_attribute": "power", + "attributes": [ + { + "id": "0x0021", + "name": "battery_percentage_remaining", + "zcl_type": "uint8", + "value": 8 + }, + { + "id": "0x0033", + "name": "battery_quantity", + "zcl_type": "uint8", + "unsupported": true + }, + { + "id": "0x0031", + "name": "battery_size", + "zcl_type": "enum8", + "unsupported": true + }, + { + "id": "0x0020", + "name": "battery_voltage", + "zcl_type": "uint8", + "value": 25 + } + ] + }, + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0402", + "endpoint_attribute": "temperature", + "attributes": [ + { + "id": "0x0000", + "name": "measured_value", + "zcl_type": "int16", + "value": 2191 + } + ] + }, + { + "cluster_id": "0x0405", + "endpoint_attribute": "humidity", + "attributes": [ + { + "id": "0x0000", + "name": "measured_value", + "zcl_type": "uint16", + "value": 4850 + } + ] + }, + { + "cluster_id": "0xe002", + "endpoint_attribute": null, + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x000a", + "endpoint_attribute": "time", + "attributes": [] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [] + } + ] + } + }, + "zha_lib_entities": { + "button": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:1d:68:42:ed-1-3", + "migrate_unique_ids": [], + "platform": "button", + "class_name": "IdentifyButton", + "translation_key": null, + "translation_placeholders": null, + "device_class": "identify", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:1d:68:42:ed", + "endpoint_id": 1, + "available": true, + "group_id": null, + "command": "identify", + "args": [ + 5 + ], + "kwargs": {} + }, + "state": { + "class_name": "IdentifyButton", + "available": true + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:1d:68:42:ed-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:1d:68:42:ed", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:1d:68:42:ed-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:1d:68:42:ed", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:1d:68:42:ed-1-1", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Battery", + "translation_key": null, + "translation_placeholders": null, + "device_class": "battery", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:1d:68:42:ed", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 0, + "unit": "%" + }, + "state": { + "class_name": "Battery", + "available": true, + "state": 4.0, + "battery_voltage": 2.5 + }, + "extra_state_attributes": [ + "battery_quantity", + "battery_size", + "battery_voltage" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:1d:68:42:ed-1-1026", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Temperature", + "translation_key": null, + "translation_placeholders": null, + "device_class": "temperature", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:1d:68:42:ed", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "\u00b0C" + }, + "state": { + "class_name": "Temperature", + "available": true, + "state": 21.91 + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:1d:68:42:ed-1-1029", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Humidity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "humidity", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:1d:68:42:ed", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "%" + }, + "state": { + "class_name": "Humidity", + "available": true, + "state": 48.5 + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:1d:68:42:ed-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:1d:68:42:ed", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": null, + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/tz3000-uwkja6z1-ts011f.json b/tests/data/legacy_devices/tz3000-uwkja6z1-ts011f.json new file mode 100644 index 000000000..89f90b2d9 --- /dev/null +++ b/tests/data/legacy_devices/tz3000-uwkja6z1-ts011f.json @@ -0,0 +1,1110 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:29:ef:78:8d", + "nwk": "0x595D", + "manufacturer": "_TZ3000_uwkja6z1", + "model": "TS011F", + "friendly_manufacturer": "_TZ3000_uwkja6z1", + "friendly_model": "TS011F", + "name": "_TZ3000_uwkja6z1 TS011F", + "quirk_applied": false, + "quirk_class": "zigpy.device.Device", + "exposes_features": [], + "manufacturer_code": 4098, + "power_source": "Mains", + "lqi": null, + "rssi": null, + "last_seen": "2024-10-09T10:18:14", + "available": true, + "device_type": "Router", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "Router", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 142, + "manufacturer_code": 4098, + "maximum_buffer_size": 82, + "maximum_incoming_transfer_size": 82, + "server_mask": 11264, + "maximum_outgoing_transfer_size": 82, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "ON_OFF_PLUG_IN_UNIT", + "id": 266 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "_TZ3000_uwkja6z1" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "TS011F" + } + ] + }, + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0005", + "endpoint_attribute": "scenes", + "attributes": [] + }, + { + "cluster_id": "0x0006", + "endpoint_attribute": "on_off", + "attributes": [ + { + "id": "0x0000", + "name": "on_off", + "zcl_type": "bool", + "value": 1 + }, + { + "id": "0x4003", + "name": "start_up_on_off", + "zcl_type": "enum8", + "unsupported": true + } + ] + }, + { + "cluster_id": "0x0702", + "endpoint_attribute": "smartenergy_metering", + "attributes": [ + { + "id": "0x0000", + "name": "current_summ_delivered", + "zcl_type": "uint48", + "value": 318 + }, + { + "id": "0x0001", + "name": "current_summ_received", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0100", + "name": "current_tier1_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0102", + "name": "current_tier2_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0104", + "name": "current_tier3_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0106", + "name": "current_tier4_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0108", + "name": "current_tier5_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x010a", + "name": "current_tier6_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0304", + "name": "demand_formatting", + "zcl_type": "map8", + "unsupported": true + }, + { + "id": "0x0302", + "name": "divisor", + "zcl_type": "uint24", + "unsupported": true + }, + { + "id": "0x0400", + "name": "instantaneous_demand", + "zcl_type": "int24", + "unsupported": true + }, + { + "id": "0x0306", + "name": "metering_device_type", + "zcl_type": "map8", + "value": 0 + }, + { + "id": "0x0301", + "name": "multiplier", + "zcl_type": "uint24", + "unsupported": true + }, + { + "id": "0x0200", + "name": "status", + "zcl_type": "map8", + "value": 0 + }, + { + "id": "0x0303", + "name": "summation_formatting", + "zcl_type": "map8", + "value": 0 + }, + { + "id": "0x0300", + "name": "unit_of_measure", + "zcl_type": "enum8", + "value": 0 + } + ] + }, + { + "cluster_id": "0x0b04", + "endpoint_attribute": "electrical_measurement", + "attributes": [ + { + "id": "0x0603", + "name": "ac_current_divisor", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0602", + "name": "ac_current_multiplier", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0300", + "name": "ac_frequency", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0401", + "name": "ac_frequency_divisor", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0302", + "name": "ac_frequency_max", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0400", + "name": "ac_frequency_multiplier", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0605", + "name": "ac_power_divisor", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0604", + "name": "ac_power_multiplier", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0601", + "name": "ac_voltage_divisor", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0600", + "name": "ac_voltage_multiplier", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x050b", + "name": "active_power", + "zcl_type": "int16", + "value": 0 + }, + { + "id": "0x050d", + "name": "active_power_max", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x050f", + "name": "apparent_power", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0000", + "name": "measurement_type", + "zcl_type": "map32", + "unsupported": true + }, + { + "id": "0x0403", + "name": "power_divisor", + "zcl_type": "uint32", + "unsupported": true + }, + { + "id": "0x0510", + "name": "power_factor", + "zcl_type": "int8", + "unsupported": true + }, + { + "id": "0x0402", + "name": "power_multiplier", + "zcl_type": "uint32", + "unsupported": true + }, + { + "id": "0x0508", + "name": "rms_current", + "zcl_type": "uint16", + "value": 0 + }, + { + "id": "0x050a", + "name": "rms_current_max", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0505", + "name": "rms_voltage", + "zcl_type": "uint16", + "value": 241 + }, + { + "id": "0x0507", + "name": "rms_voltage_max", + "zcl_type": "uint16", + "unsupported": true + } + ] + }, + { + "cluster_id": "0xe000", + "endpoint_attribute": null, + "attributes": [] + }, + { + "cluster_id": "0xe001", + "endpoint_attribute": null, + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x000a", + "endpoint_attribute": "time", + "attributes": [] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [ + { + "id": "0x0002", + "name": "current_file_version", + "zcl_type": "uint32", + "unsupported": true + } + ] + } + ] + }, + "2": { + "profile_id": 260, + "device_type": { + "name": "ON_OFF_PLUG_IN_UNIT", + "id": 266 + }, + "in_clusters": [ + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0005", + "endpoint_attribute": "scenes", + "attributes": [] + }, + { + "cluster_id": "0x0006", + "endpoint_attribute": "on_off", + "attributes": [ + { + "id": "0x0000", + "name": "on_off", + "zcl_type": "bool", + "value": 0 + }, + { + "id": "0x4003", + "name": "start_up_on_off", + "zcl_type": "enum8", + "unsupported": true + } + ] + }, + { + "cluster_id": "0x0702", + "endpoint_attribute": "smartenergy_metering", + "attributes": [ + { + "id": "0x0000", + "name": "current_summ_delivered", + "zcl_type": "uint48", + "value": 318 + }, + { + "id": "0x0001", + "name": "current_summ_received", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0100", + "name": "current_tier1_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0102", + "name": "current_tier2_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0104", + "name": "current_tier3_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0106", + "name": "current_tier4_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0108", + "name": "current_tier5_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x010a", + "name": "current_tier6_summ_delivered", + "zcl_type": "uint48", + "unsupported": true + }, + { + "id": "0x0304", + "name": "demand_formatting", + "zcl_type": "map8", + "unsupported": true + }, + { + "id": "0x0302", + "name": "divisor", + "zcl_type": "uint24", + "unsupported": true + }, + { + "id": "0x0400", + "name": "instantaneous_demand", + "zcl_type": "int24", + "unsupported": true + }, + { + "id": "0x0306", + "name": "metering_device_type", + "zcl_type": "map8", + "value": 0 + }, + { + "id": "0x0301", + "name": "multiplier", + "zcl_type": "uint24", + "unsupported": true + }, + { + "id": "0x0200", + "name": "status", + "zcl_type": "map8", + "value": 0 + }, + { + "id": "0x0303", + "name": "summation_formatting", + "zcl_type": "map8", + "value": 0 + }, + { + "id": "0x0300", + "name": "unit_of_measure", + "zcl_type": "enum8", + "value": 0 + } + ] + }, + { + "cluster_id": "0x0b04", + "endpoint_attribute": "electrical_measurement", + "attributes": [ + { + "id": "0x0603", + "name": "ac_current_divisor", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0602", + "name": "ac_current_multiplier", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0300", + "name": "ac_frequency", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0401", + "name": "ac_frequency_divisor", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0302", + "name": "ac_frequency_max", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0400", + "name": "ac_frequency_multiplier", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0605", + "name": "ac_power_divisor", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0604", + "name": "ac_power_multiplier", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0601", + "name": "ac_voltage_divisor", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0600", + "name": "ac_voltage_multiplier", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x050b", + "name": "active_power", + "zcl_type": "int16", + "value": 0 + }, + { + "id": "0x050d", + "name": "active_power_max", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x050f", + "name": "apparent_power", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0000", + "name": "measurement_type", + "zcl_type": "map32", + "unsupported": true + }, + { + "id": "0x0403", + "name": "power_divisor", + "zcl_type": "uint32", + "unsupported": true + }, + { + "id": "0x0510", + "name": "power_factor", + "zcl_type": "int8", + "unsupported": true + }, + { + "id": "0x0402", + "name": "power_multiplier", + "zcl_type": "uint32", + "unsupported": true + }, + { + "id": "0x0508", + "name": "rms_current", + "zcl_type": "uint16", + "value": 0 + }, + { + "id": "0x050a", + "name": "rms_current_max", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0505", + "name": "rms_voltage", + "zcl_type": "uint16", + "value": 241 + }, + { + "id": "0x0507", + "name": "rms_voltage_max", + "zcl_type": "uint16", + "unsupported": true + } + ] + }, + { + "cluster_id": "0xe000", + "endpoint_attribute": null, + "attributes": [] + }, + { + "cluster_id": "0xe001", + "endpoint_attribute": null, + "attributes": [] + } + ], + "out_clusters": [] + }, + "242": { + "profile_id": 41440, + "device_type": { + "name": "PROXY_BASIC", + "id": 97 + }, + "in_clusters": [], + "out_clusters": [ + { + "cluster_id": "0x0021", + "endpoint_attribute": "green_power", + "attributes": [] + } + ] + } + }, + "zha_lib_entities": { + "button": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:29:ef:78:8d-1-3", + "migrate_unique_ids": [], + "platform": "button", + "class_name": "IdentifyButton", + "translation_key": null, + "translation_placeholders": null, + "device_class": "identify", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:29:ef:78:8d", + "endpoint_id": 1, + "available": true, + "group_id": null, + "command": "identify", + "args": [ + 5 + ], + "kwargs": {} + }, + "state": { + "class_name": "IdentifyButton", + "available": true + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:29:ef:78:8d-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:29:ef:78:8d", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:29:ef:78:8d-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:29:ef:78:8d", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:29:ef:78:8d-1-1794-summation_delivered", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "SmartEnergySummation", + "translation_key": "summation_delivered", + "translation_placeholders": null, + "device_class": "energy", + "state_class": "total_increasing", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:29:ef:78:8d", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 3, + "unit": "kWh" + }, + "state": { + "class_name": "SmartEnergySummation", + "available": true, + "state": 318.0, + "device_type": "Electric Metering", + "status": "NO_ALARMS", + "zcl_unit_of_measurement": 0 + }, + "extra_state_attributes": [ + "device_type", + "status", + "zcl_unit_of_measurement" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:29:ef:78:8d-1-2820", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "ElectricalMeasurementActivePower", + "translation_key": null, + "translation_placeholders": null, + "device_class": "power", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:29:ef:78:8d", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 1, + "unit": "W" + }, + "state": { + "class_name": "ElectricalMeasurementActivePower", + "available": true, + "state": 0.0 + }, + "extra_state_attributes": [ + "active_power_max", + "measurement_type" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:29:ef:78:8d-1-2820-rms_current", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "ElectricalMeasurementRMSCurrent", + "translation_key": null, + "translation_placeholders": null, + "device_class": "current", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:29:ef:78:8d", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 2, + "unit": "A" + }, + "state": { + "class_name": "ElectricalMeasurementRMSCurrent", + "available": true, + "state": 0.0 + }, + "extra_state_attributes": [ + "measurement_type", + "rms_current_max" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:29:ef:78:8d-1-2820-rms_voltage", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "ElectricalMeasurementRMSVoltage", + "translation_key": null, + "translation_placeholders": null, + "device_class": "voltage", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:29:ef:78:8d", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 1, + "unit": "V" + }, + "state": { + "class_name": "ElectricalMeasurementRMSVoltage", + "available": true, + "state": 241.0 + }, + "extra_state_attributes": [ + "measurement_type", + "rms_voltage_max" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:29:ef:78:8d-2-1794-summation_delivered", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "SmartEnergySummation", + "translation_key": "summation_delivered", + "translation_placeholders": null, + "device_class": "energy", + "state_class": "total_increasing", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:29:ef:78:8d", + "endpoint_id": 2, + "available": true, + "group_id": null, + "suggested_display_precision": 3, + "unit": "kWh" + }, + "state": { + "class_name": "SmartEnergySummation", + "available": true, + "state": 318.0, + "device_type": "Electric Metering", + "status": "NO_ALARMS", + "zcl_unit_of_measurement": 0 + }, + "extra_state_attributes": [ + "device_type", + "status", + "zcl_unit_of_measurement" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:29:ef:78:8d-2-2820", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "ElectricalMeasurementActivePower", + "translation_key": null, + "translation_placeholders": null, + "device_class": "power", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:29:ef:78:8d", + "endpoint_id": 2, + "available": true, + "group_id": null, + "suggested_display_precision": 1, + "unit": "W" + }, + "state": { + "class_name": "ElectricalMeasurementActivePower", + "available": true, + "state": 0.0 + }, + "extra_state_attributes": [ + "active_power_max", + "measurement_type" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:29:ef:78:8d-2-2820-rms_current", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "ElectricalMeasurementRMSCurrent", + "translation_key": null, + "translation_placeholders": null, + "device_class": "current", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:29:ef:78:8d", + "endpoint_id": 2, + "available": true, + "group_id": null, + "suggested_display_precision": 2, + "unit": "A" + }, + "state": { + "class_name": "ElectricalMeasurementRMSCurrent", + "available": true, + "state": 0.0 + }, + "extra_state_attributes": [ + "measurement_type", + "rms_current_max" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:29:ef:78:8d-2-2820-rms_voltage", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "ElectricalMeasurementRMSVoltage", + "translation_key": null, + "translation_placeholders": null, + "device_class": "voltage", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:29:ef:78:8d", + "endpoint_id": 2, + "available": true, + "group_id": null, + "suggested_display_precision": 1, + "unit": "V" + }, + "state": { + "class_name": "ElectricalMeasurementRMSVoltage", + "available": true, + "state": 241.0 + }, + "extra_state_attributes": [ + "measurement_type", + "rms_voltage_max" + ] + } + ], + "switch": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:29:ef:78:8d-1", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "Switch", + "translation_key": "switch", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:29:ef:78:8d", + "endpoint_id": 1, + "available": true, + "group_id": null + }, + "state": { + "class_name": "Switch", + "state": 1, + "available": true + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:29:ef:78:8d-2", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "Switch", + "translation_key": "switch", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:29:ef:78:8d", + "endpoint_id": 2, + "available": true, + "group_id": null + }, + "state": { + "class_name": "Switch", + "state": 0, + "available": true + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:29:ef:78:8d-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:29:ef:78:8d", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": null, + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/tz3210-0jxeoadc-ts0049-0x00000046.json b/tests/data/legacy_devices/tz3210-0jxeoadc-ts0049-0x00000046.json new file mode 100644 index 000000000..f4979a302 --- /dev/null +++ b/tests/data/legacy_devices/tz3210-0jxeoadc-ts0049-0x00000046.json @@ -0,0 +1,383 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:f1:08:7a:54", + "nwk": "0x1B32", + "manufacturer": "_TZ3210_0jxeoadc", + "model": "TS0049", + "friendly_manufacturer": "_TZ3210_0jxeoadc", + "friendly_model": "TS0049", + "name": "_TZ3210_0jxeoadc TS0049", + "quirk_applied": true, + "quirk_class": "zhaquirks.tuya.builder:(_TZ3210_0jxeoadc / TS0049)", + "exposes_features": [], + "manufacturer_code": 4417, + "power_source": "Battery or Unknown", + "lqi": null, + "rssi": null, + "last_seen": "2025-04-01T16:17:23+00:00", + "available": true, + "device_type": "EndDevice", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "EndDevice", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 128, + "manufacturer_code": 4417, + "maximum_buffer_size": 66, + "maximum_incoming_transfer_size": 66, + "server_mask": 10752, + "maximum_outgoing_transfer_size": 66, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "ON_OFF_SWITCH", + "id": 0 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0001", + "name": "app_version", + "zcl_type": "uint8", + "value": 70 + }, + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "_TZ3210_0jxeoadc" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "TS0049" + }, + { + "id": "0x0007", + "name": "power_source", + "zcl_type": "enum8", + "value": 3 + }, + { + "id": "0xfffe", + "name": "reporting_status", + "zcl_type": "enum8", + "value": 0 + }, + { + "id": "0x0000", + "name": "zcl_version", + "zcl_type": "uint8", + "value": 3 + } + ] + }, + { + "cluster_id": "0x0001", + "endpoint_attribute": "power", + "attributes": [ + { + "id": "0x0021", + "name": "battery_percentage_remaining", + "zcl_type": "uint8", + "value": 2 + }, + { + "id": "0x0033", + "name": "battery_quantity", + "zcl_type": "uint8", + "value": 2 + }, + { + "id": "0x0034", + "name": "battery_rated_voltage", + "zcl_type": "uint8", + "value": 15 + }, + { + "id": "0x0031", + "name": "battery_size", + "zcl_type": "enum8", + "value": 3 + } + ] + }, + { + "cluster_id": "0x0006", + "endpoint_attribute": "on_off", + "attributes": [ + { + "id": "0x0000", + "name": "on_off", + "zcl_type": "bool", + "value": 0 + } + ] + }, + { + "cluster_id": "0xef00", + "endpoint_attribute": "tuya_manufacturer", + "attributes": [ + { + "id": "0xef6f", + "name": "valve_duration", + "zcl_type": "uint32", + "value": 5 + } + ] + } + ], + "out_clusters": [ + { + "cluster_id": "0x000a", + "endpoint_attribute": "time", + "attributes": [] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [ + { + "id": "0x0002", + "name": "current_file_version", + "zcl_type": "uint32", + "value": 70 + } + ] + } + ] + } + }, + "zha_lib_entities": { + "number": [ + { + "info_object": { + "fallback_name": "Irrigation duration", + "unique_id": "ab:cd:ef:12:f1:08:7a:54-1-valve_duration", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "valve_duration", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:f1:08:7a:54", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 255, + "native_min_value": 0, + "native_step": 1, + "native_unit_of_measurement": "min" + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": 5 + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:f1:08:7a:54-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:f1:08:7a:54", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:f1:08:7a:54-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:f1:08:7a:54", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:f1:08:7a:54-1-1", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Battery", + "translation_key": null, + "translation_placeholders": null, + "device_class": "battery", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:f1:08:7a:54", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 0, + "unit": "%" + }, + "state": { + "class_name": "Battery", + "available": true, + "state": 1.0, + "battery_size": "AA", + "battery_quantity": 2 + }, + "extra_state_attributes": [ + "battery_quantity", + "battery_size", + "battery_voltage" + ] + }, + { + "info_object": { + "fallback_name": "Error status", + "unique_id": "ab:cd:ef:12:f1:08:7a:54-1-error_status", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Sensor", + "translation_key": "error_status", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:f1:08:7a:54", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "Sensor", + "available": true, + "state": null + } + } + ], + "switch": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:f1:08:7a:54-1-6", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "Switch", + "translation_key": "switch", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": true, + "device_ieee": "ab:cd:ef:12:f1:08:7a:54", + "endpoint_id": 1, + "available": true, + "group_id": null + }, + "state": { + "class_name": "Switch", + "state": 0, + "available": true + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:f1:08:7a:54-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:f1:08:7a:54", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": "0x00000046", + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/tz3210-dse8ogfy-ts0001-0x00000081.json b/tests/data/legacy_devices/tz3210-dse8ogfy-ts0001-0x00000081.json new file mode 100644 index 000000000..4390e76cb --- /dev/null +++ b/tests/data/legacy_devices/tz3210-dse8ogfy-ts0001-0x00000081.json @@ -0,0 +1,629 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:ae:32:ac:dd", + "nwk": "0xAEBE", + "manufacturer": "_TZ3210_dse8ogfy", + "model": "TS0001", + "friendly_manufacturer": "_TZ3210_dse8ogfy", + "friendly_model": "TS0001", + "name": "_TZ3210_dse8ogfy TS0001", + "quirk_applied": true, + "quirk_class": "zhaquirks.tuya.builder:(_TZ3210_dse8ogfy / TS0001)", + "exposes_features": [], + "manufacturer_code": 4417, + "power_source": "Battery or Unknown", + "lqi": null, + "rssi": null, + "last_seen": "2023-07-27T23:33:37+00:00", + "available": true, + "device_type": "EndDevice", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "EndDevice", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 128, + "manufacturer_code": 4417, + "maximum_buffer_size": 66, + "maximum_incoming_transfer_size": 66, + "server_mask": 10752, + "maximum_outgoing_transfer_size": 66, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "ON_OFF_LIGHT_SWITCH", + "id": 259 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0001", + "name": "app_version", + "zcl_type": "uint8", + "value": 129 + }, + { + "id": "0xfffd", + "name": "cluster_revision", + "zcl_type": "uint16", + "value": 2 + }, + { + "id": "0x0006", + "name": "date_code", + "zcl_type": "string", + "value": "" + }, + { + "id": "0x0003", + "name": "hw_version", + "zcl_type": "uint8", + "value": 1 + }, + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "_TZ3210_dse8ogfy" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "TS0001" + }, + { + "id": "0x0007", + "name": "power_source", + "zcl_type": "enum8", + "value": 3 + }, + { + "id": "0xfffe", + "name": "reporting_status", + "zcl_type": "enum8", + "value": 0 + }, + { + "id": "0x0002", + "name": "stack_version", + "zcl_type": "uint8", + "value": 0 + }, + { + "id": "0x0000", + "name": "zcl_version", + "zcl_type": "uint8", + "value": 3 + } + ] + }, + { + "cluster_id": "0x0001", + "endpoint_attribute": "power", + "attributes": [ + { + "id": "0x0033", + "name": "battery_quantity", + "zcl_type": "uint8", + "value": 1 + }, + { + "id": "0x0034", + "name": "battery_rated_voltage", + "zcl_type": "uint8", + "value": 30 + }, + { + "id": "0x0031", + "name": "battery_size", + "zcl_type": "enum8", + "value": 7 + }, + { + "id": "0x0020", + "name": "battery_voltage", + "zcl_type": "uint8", + "unsupported": true + } + ] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0005", + "endpoint_attribute": "scenes", + "attributes": [] + }, + { + "cluster_id": "0x0006", + "endpoint_attribute": "on_off", + "attributes": [ + { + "id": "0xfffd", + "name": "cluster_revision", + "zcl_type": "uint16", + "value": 2 + }, + { + "id": "0x0000", + "name": "on_off", + "zcl_type": "bool", + "value": 1 + }, + { + "id": "0x4003", + "name": "start_up_on_off", + "zcl_type": "enum8", + "unsupported": true + } + ] + }, + { + "cluster_id": "0xef00", + "endpoint_attribute": "tuya_manufacturer", + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x000a", + "endpoint_attribute": "time", + "attributes": [ + { + "id": "0xfffd", + "name": "cluster_revision", + "zcl_type": "uint16", + "value": 1 + } + ] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [ + { + "id": "0xfffd", + "name": "cluster_revision", + "zcl_type": "uint16", + "value": 3 + }, + { + "id": "0x0002", + "name": "current_file_version", + "zcl_type": "uint32", + "value": 129 + }, + { + "id": "0x0003", + "name": "current_zigbee_stack_version", + "zcl_type": "uint16", + "value": 2 + }, + { + "id": "0x0004", + "name": "downloaded_file_version", + "zcl_type": "uint32", + "value": 4294967295 + }, + { + "id": "0x0005", + "name": "downloaded_zigbee_stack_version", + "zcl_type": "uint16", + "value": 65535 + }, + { + "id": "0x0001", + "name": "file_offset", + "zcl_type": "uint32", + "value": 4294967295 + }, + { + "id": "0x0008", + "name": "image_type_id", + "zcl_type": "uint16", + "value": 65535 + }, + { + "id": "0x0006", + "name": "image_upgrade_status", + "zcl_type": "enum8", + "value": 0 + }, + { + "id": "0x0007", + "name": "manufacturer_id", + "zcl_type": "uint16", + "value": 4417 + }, + { + "id": "0x0009", + "name": "minimum_block_req_delay", + "zcl_type": "uint16", + "value": 0 + }, + { + "id": "0x0000", + "name": "upgrade_server_id", + "zcl_type": "EUI64", + "value": [ + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255 + ] + } + ] + } + ] + } + }, + "zha_lib_entities": { + "number": [ + { + "info_object": { + "fallback_name": "Down movement", + "unique_id": "ab:cd:ef:12:ae:32:ac:dd-1-down_movement", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "down_movement", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:ae:32:ac:dd", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 100, + "native_min_value": 50, + "native_step": 1, + "native_unit_of_measurement": "%" + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Sustain time", + "unique_id": "ab:cd:ef:12:ae:32:ac:dd-1-sustain_time", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "sustain_time", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:ae:32:ac:dd", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 10, + "native_min_value": 0, + "native_step": 1, + "native_unit_of_measurement": "s" + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Up movement", + "unique_id": "ab:cd:ef:12:ae:32:ac:dd-1-up_movement", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "up_movement", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:ae:32:ac:dd", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 50, + "native_min_value": 0, + "native_step": 1, + "native_unit_of_measurement": "%" + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": null + } + } + ], + "select": [ + { + "info_object": { + "fallback_name": "Mode", + "unique_id": "ab:cd:ef:12:ae:32:ac:dd-1-mode", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "ZCLEnumSelectEntity", + "translation_key": "mode", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:ae:32:ac:dd", + "endpoint_id": 1, + "available": true, + "group_id": null, + "enum": "FingerBotMode", + "options": [ + "CLICK", + "SWITCH", + "PROGRAM" + ] + }, + "state": { + "class_name": "ZCLEnumSelectEntity", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Reverse", + "unique_id": "ab:cd:ef:12:ae:32:ac:dd-1-reverse", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "ZCLEnumSelectEntity", + "translation_key": "reverse", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:ae:32:ac:dd", + "endpoint_id": 1, + "available": true, + "group_id": null, + "enum": "FingerBotReverse", + "options": [ + "UP ON", + "UP OFF" + ] + }, + "state": { + "class_name": "ZCLEnumSelectEntity", + "available": true, + "state": null + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:ae:32:ac:dd-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:ae:32:ac:dd", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:ae:32:ac:dd-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:ae:32:ac:dd", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:ae:32:ac:dd-1-1", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Battery", + "translation_key": null, + "translation_placeholders": null, + "device_class": "battery", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:ae:32:ac:dd", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 0, + "unit": "%" + }, + "state": { + "class_name": "Battery", + "available": true, + "state": null, + "battery_size": "CR2", + "battery_quantity": 1 + }, + "extra_state_attributes": [ + "battery_quantity", + "battery_size", + "battery_voltage" + ] + } + ], + "switch": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:ae:32:ac:dd-1-6", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "Switch", + "translation_key": "switch", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": true, + "device_ieee": "ab:cd:ef:12:ae:32:ac:dd", + "endpoint_id": 1, + "available": true, + "group_id": null + }, + "state": { + "class_name": "Switch", + "state": 1, + "available": true + } + }, + { + "info_object": { + "fallback_name": "Touch control", + "unique_id": "ab:cd:ef:12:ae:32:ac:dd-1-touch_control", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "ConfigurableAttributeSwitch", + "translation_key": "touch_control", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:ae:32:ac:dd", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "touch_control", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 0, + "on_value": 1 + }, + "state": { + "class_name": "ConfigurableAttributeSwitch", + "available": true, + "state": false, + "inverted": false + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:ae:32:ac:dd-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:ae:32:ac:dd", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": "0x00000081", + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/tz3210-j4pdtz9v-ts0001.json b/tests/data/legacy_devices/tz3210-j4pdtz9v-ts0001.json new file mode 100644 index 000000000..10f638427 --- /dev/null +++ b/tests/data/legacy_devices/tz3210-j4pdtz9v-ts0001.json @@ -0,0 +1,524 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:c8:12:1d:0b", + "nwk": "0xCE7A", + "manufacturer": "_TZ3210_j4pdtz9v", + "model": "TS0001", + "friendly_manufacturer": "_TZ3210_j4pdtz9v", + "friendly_model": "TS0001", + "name": "_TZ3210_j4pdtz9v TS0001", + "quirk_applied": true, + "quirk_class": "zhaquirks.tuya.builder:(_TZ3210_dse8ogfy / TS0001)", + "exposes_features": [], + "manufacturer_code": 4417, + "power_source": "Battery or Unknown", + "lqi": null, + "rssi": null, + "last_seen": "2023-11-09T14:26:42+00:00", + "available": true, + "device_type": "EndDevice", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "EndDevice", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 128, + "manufacturer_code": 4417, + "maximum_buffer_size": 66, + "maximum_incoming_transfer_size": 66, + "server_mask": 10752, + "maximum_outgoing_transfer_size": 66, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "ON_OFF_SWITCH", + "id": 0 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0001", + "name": "app_version", + "zcl_type": "uint8", + "value": 72 + }, + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "_TZ3210_j4pdtz9v" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "TS0001" + }, + { + "id": "0x0007", + "name": "power_source", + "zcl_type": "enum8", + "value": 3 + }, + { + "id": "0xfffe", + "name": "reporting_status", + "zcl_type": "enum8", + "value": 0 + }, + { + "id": "0x0000", + "name": "zcl_version", + "zcl_type": "uint8", + "value": 3 + } + ] + }, + { + "cluster_id": "0x0001", + "endpoint_attribute": "power", + "attributes": [ + { + "id": "0x0021", + "name": "battery_percentage_remaining", + "zcl_type": "uint8", + "unsupported": true + }, + { + "id": "0x0033", + "name": "battery_quantity", + "zcl_type": "uint8", + "value": 1 + }, + { + "id": "0x0034", + "name": "battery_rated_voltage", + "zcl_type": "uint8", + "value": 30 + }, + { + "id": "0x0031", + "name": "battery_size", + "zcl_type": "enum8", + "value": 7 + }, + { + "id": "0x0020", + "name": "battery_voltage", + "zcl_type": "uint8", + "unsupported": true + } + ] + }, + { + "cluster_id": "0x0006", + "endpoint_attribute": "on_off", + "attributes": [ + { + "id": "0x4002", + "name": "off_wait_time", + "zcl_type": "uint16", + "unsupported": true + }, + { + "id": "0x0000", + "name": "on_off", + "zcl_type": "bool", + "value": 0 + }, + { + "id": "0xfffe", + "name": "reporting_status", + "zcl_type": "enum8", + "unsupported": true + }, + { + "id": "0x4003", + "name": "start_up_on_off", + "zcl_type": "enum8", + "unsupported": true + } + ] + }, + { + "cluster_id": "0xef00", + "endpoint_attribute": "tuya_manufacturer", + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x000a", + "endpoint_attribute": "time", + "attributes": [] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [] + } + ] + } + }, + "zha_lib_entities": { + "number": [ + { + "info_object": { + "fallback_name": "Down movement", + "unique_id": "ab:cd:ef:12:c8:12:1d:0b-1-down_movement", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "down_movement", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:c8:12:1d:0b", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 100, + "native_min_value": 50, + "native_step": 1, + "native_unit_of_measurement": "%" + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Sustain time", + "unique_id": "ab:cd:ef:12:c8:12:1d:0b-1-sustain_time", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "sustain_time", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:c8:12:1d:0b", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 10, + "native_min_value": 0, + "native_step": 1, + "native_unit_of_measurement": "s" + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Up movement", + "unique_id": "ab:cd:ef:12:c8:12:1d:0b-1-up_movement", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "up_movement", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:c8:12:1d:0b", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 50, + "native_min_value": 0, + "native_step": 1, + "native_unit_of_measurement": "%" + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": null + } + } + ], + "select": [ + { + "info_object": { + "fallback_name": "Mode", + "unique_id": "ab:cd:ef:12:c8:12:1d:0b-1-mode", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "ZCLEnumSelectEntity", + "translation_key": "mode", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:c8:12:1d:0b", + "endpoint_id": 1, + "available": true, + "group_id": null, + "enum": "FingerBotMode", + "options": [ + "CLICK", + "SWITCH", + "PROGRAM" + ] + }, + "state": { + "class_name": "ZCLEnumSelectEntity", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Reverse", + "unique_id": "ab:cd:ef:12:c8:12:1d:0b-1-reverse", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "ZCLEnumSelectEntity", + "translation_key": "reverse", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:c8:12:1d:0b", + "endpoint_id": 1, + "available": true, + "group_id": null, + "enum": "FingerBotReverse", + "options": [ + "UP ON", + "UP OFF" + ] + }, + "state": { + "class_name": "ZCLEnumSelectEntity", + "available": true, + "state": null + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:c8:12:1d:0b-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:c8:12:1d:0b", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:c8:12:1d:0b-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:c8:12:1d:0b", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:c8:12:1d:0b-1-1", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Battery", + "translation_key": null, + "translation_placeholders": null, + "device_class": "battery", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:c8:12:1d:0b", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 0, + "unit": "%" + }, + "state": { + "class_name": "Battery", + "available": true, + "state": null, + "battery_size": "CR2", + "battery_quantity": 1 + }, + "extra_state_attributes": [ + "battery_quantity", + "battery_size", + "battery_voltage" + ] + } + ], + "switch": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:c8:12:1d:0b-1-6", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "Switch", + "translation_key": "switch", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": true, + "device_ieee": "ab:cd:ef:12:c8:12:1d:0b", + "endpoint_id": 1, + "available": true, + "group_id": null + }, + "state": { + "class_name": "Switch", + "state": 0, + "available": true + } + }, + { + "info_object": { + "fallback_name": "Touch control", + "unique_id": "ab:cd:ef:12:c8:12:1d:0b-1-touch_control", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "ConfigurableAttributeSwitch", + "translation_key": "touch_control", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:c8:12:1d:0b", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "touch_control", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 0, + "on_value": 1 + }, + "state": { + "class_name": "ConfigurableAttributeSwitch", + "available": true, + "state": false, + "inverted": false + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:c8:12:1d:0b-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:c8:12:1d:0b", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": null, + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/tz3210-tgvtvdoc-ts0207.json b/tests/data/legacy_devices/tz3210-tgvtvdoc-ts0207.json new file mode 100644 index 000000000..ebf38a3fa --- /dev/null +++ b/tests/data/legacy_devices/tz3210-tgvtvdoc-ts0207.json @@ -0,0 +1,524 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:9b:93:04:6b", + "nwk": "0x9E2E", + "manufacturer": "_TZ3210_tgvtvdoc", + "model": "TS0207", + "friendly_manufacturer": "_TZ3210_tgvtvdoc", + "friendly_model": "TS0207", + "name": "_TZ3210_tgvtvdoc TS0207", + "quirk_applied": true, + "quirk_class": "zhaquirks.tuya.builder:(_TZ3210_tgvtvdoc / TS0207)", + "exposes_features": [], + "manufacturer_code": 4417, + "power_source": "Battery or Unknown", + "lqi": null, + "rssi": null, + "last_seen": "2025-04-19T18:46:02+00:00", + "available": true, + "device_type": "EndDevice", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "EndDevice", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 128, + "manufacturer_code": 4417, + "maximum_buffer_size": 66, + "maximum_incoming_transfer_size": 66, + "server_mask": 10752, + "maximum_outgoing_transfer_size": 66, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "IAS_ZONE", + "id": 1026 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "_TZ3210_tgvtvdoc" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "TS0207" + } + ] + }, + { + "cluster_id": "0x0001", + "endpoint_attribute": "power", + "attributes": [ + { + "id": "0x0033", + "name": "battery_quantity", + "zcl_type": "uint8", + "value": 1 + }, + { + "id": "0x0034", + "name": "battery_rated_voltage", + "zcl_type": "uint8", + "value": 30 + }, + { + "id": "0x0031", + "name": "battery_size", + "zcl_type": "enum8", + "value": 2 + } + ] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0005", + "endpoint_attribute": "scenes", + "attributes": [] + }, + { + "cluster_id": "0x0400", + "endpoint_attribute": "illuminance", + "attributes": [ + { + "id": "0x0004", + "name": "light_sensor_type", + "zcl_type": "enum8", + "value": 0 + }, + { + "id": "0x0000", + "name": "measured_value", + "zcl_type": "uint16", + "value": 36607.75788338524 + } + ] + }, + { + "cluster_id": "0x0500", + "endpoint_attribute": "ias_zone", + "attributes": [ + { + "id": "0x0002", + "name": "zone_status", + "zcl_type": "map16", + "value": 1 + }, + { + "id": "0x0001", + "name": "zone_type", + "zcl_type": "enum16", + "value": 42 + } + ] + }, + { + "cluster_id": "0xef00", + "endpoint_attribute": "tuya_manufacturer", + "attributes": [ + { + "id": "0xef66", + "name": "average_light_intensity_20mins", + "zcl_type": "uint32", + "value": 4588 + }, + { + "id": "0xef68", + "name": "cleaning_reminder", + "zcl_type": "bool", + "value": 0 + }, + { + "id": "0xef69", + "name": "rain_intensity", + "zcl_type": "uint32", + "value": 3104 + }, + { + "id": "0xef67", + "name": "todays_max_light_intensity", + "zcl_type": "uint32", + "value": 4901 + } + ] + } + ], + "out_clusters": [ + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0006", + "endpoint_attribute": "on_off", + "attributes": [] + }, + { + "cluster_id": "0x000a", + "endpoint_attribute": "time", + "attributes": [] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [] + }, + { + "cluster_id": "0x1000", + "endpoint_attribute": "lightlink", + "attributes": [] + } + ] + } + }, + "zha_lib_entities": { + "binary_sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:9b:93:04:6b-1-1280", + "migrate_unique_ids": [], + "platform": "binary_sensor", + "class_name": "IASZone", + "translation_key": null, + "translation_placeholders": null, + "device_class": "moisture", + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": true, + "device_ieee": "ab:cd:ef:12:9b:93:04:6b", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "zone_status" + }, + "state": { + "class_name": "IASZone", + "available": true, + "state": true + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:9b:93:04:6b-1-6", + "migrate_unique_ids": [], + "platform": "binary_sensor", + "class_name": "Opening", + "translation_key": null, + "translation_placeholders": null, + "device_class": "opening", + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:9b:93:04:6b", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "on_off" + }, + "state": { + "class_name": "Opening", + "available": true, + "state": false + } + }, + { + "info_object": { + "fallback_name": "Cleaning reminder", + "unique_id": "ab:cd:ef:12:9b:93:04:6b-1-cleaning_reminder", + "migrate_unique_ids": [], + "platform": "binary_sensor", + "class_name": "BinarySensor", + "translation_key": null, + "translation_placeholders": null, + "device_class": "problem", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:9b:93:04:6b", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "cleaning_reminder" + }, + "state": { + "class_name": "BinarySensor", + "available": true, + "state": false + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:9b:93:04:6b-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:9b:93:04:6b", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:9b:93:04:6b-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:9b:93:04:6b", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:9b:93:04:6b-1-1", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Battery", + "translation_key": null, + "translation_placeholders": null, + "device_class": "battery", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:9b:93:04:6b", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 0, + "unit": "%" + }, + "state": { + "class_name": "Battery", + "available": true, + "state": null, + "battery_size": "Other", + "battery_quantity": 1 + }, + "extra_state_attributes": [ + "battery_quantity", + "battery_size", + "battery_voltage" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:9b:93:04:6b-1-1024", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Illuminance", + "translation_key": null, + "translation_placeholders": null, + "device_class": "illuminance", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:9b:93:04:6b", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "lx" + }, + "state": { + "class_name": "Illuminance", + "available": true, + "state": 4578 + } + }, + { + "info_object": { + "fallback_name": "Average light intensity last 20 min", + "unique_id": "ab:cd:ef:12:9b:93:04:6b-1-average_light_intensity_20mins", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Sensor", + "translation_key": "average_light_intensity_20mins", + "translation_placeholders": null, + "device_class": "duration", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:9b:93:04:6b", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "lx" + }, + "state": { + "class_name": "Sensor", + "available": true, + "state": 4588 + } + }, + { + "info_object": { + "fallback_name": "Rain intensity", + "unique_id": "ab:cd:ef:12:9b:93:04:6b-1-rain_intensity", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Sensor", + "translation_key": null, + "translation_placeholders": null, + "device_class": "voltage", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:9b:93:04:6b", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "mV" + }, + "state": { + "class_name": "Sensor", + "available": true, + "state": 3104 + } + }, + { + "info_object": { + "fallback_name": "Today's max light intensity", + "unique_id": "ab:cd:ef:12:9b:93:04:6b-1-todays_max_light_intensity", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Sensor", + "translation_key": "todays_max_light_intensity", + "translation_placeholders": null, + "device_class": "duration", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:9b:93:04:6b", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "lx" + }, + "state": { + "class_name": "Sensor", + "available": true, + "state": 4901 + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:9b:93:04:6b-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:9b:93:04:6b", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": null, + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/tz3218-7fiyo3kv-ts000f-0x00000050.json b/tests/data/legacy_devices/tz3218-7fiyo3kv-ts000f-0x00000050.json new file mode 100644 index 000000000..3863e778c --- /dev/null +++ b/tests/data/legacy_devices/tz3218-7fiyo3kv-ts000f-0x00000050.json @@ -0,0 +1,611 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:6d:c3:60:d3", + "nwk": "0x1F6F", + "manufacturer": "_TZ3218_7fiyo3kv", + "model": "TS000F", + "friendly_manufacturer": "_TZ3218_7fiyo3kv", + "friendly_model": "TS000F", + "name": "_TZ3218_7fiyo3kv TS000F", + "quirk_applied": false, + "quirk_class": "zigpy.device.Device", + "exposes_features": [], + "manufacturer_code": 4417, + "power_source": "Mains", + "lqi": null, + "rssi": null, + "last_seen": "2024-07-12T14:33:17", + "available": true, + "device_type": "Router", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "Router", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 142, + "manufacturer_code": 4417, + "maximum_buffer_size": 66, + "maximum_incoming_transfer_size": 66, + "server_mask": 10752, + "maximum_outgoing_transfer_size": 66, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "ON_OFF_LIGHT", + "id": 256 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0013", + "name": "alarm_mask", + "zcl_type": "map8", + "unsupported": true + }, + { + "id": "0x0001", + "name": "app_version", + "zcl_type": "uint8", + "value": 80 + }, + { + "id": "0xfffd", + "name": "cluster_revision", + "zcl_type": "uint16", + "value": 2 + }, + { + "id": "0x0006", + "name": "date_code", + "zcl_type": "string", + "value": "" + }, + { + "id": "0x0012", + "name": "device_enabled", + "zcl_type": "bool", + "unsupported": true + }, + { + "id": "0x0008", + "name": "generic_device_class", + "zcl_type": "enum8", + "unsupported": true + }, + { + "id": "0x0009", + "name": "generic_device_type", + "zcl_type": "enum8", + "unsupported": true + }, + { + "id": "0x0003", + "name": "hw_version", + "zcl_type": "uint8", + "value": 1 + }, + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "_TZ3218_7fiyo3kv" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "TS000F" + }, + { + "id": "0x0011", + "name": "physical_env", + "zcl_type": "enum8", + "unsupported": true + }, + { + "id": "0x0007", + "name": "power_source", + "zcl_type": "enum8", + "value": 1 + }, + { + "id": "0x000a", + "name": "product_code", + "zcl_type": "octstr", + "unsupported": true + }, + { + "id": "0x000e", + "name": "product_label", + "zcl_type": "string", + "unsupported": true + }, + { + "id": "0x000b", + "name": "product_url", + "zcl_type": "string", + "unsupported": true + }, + { + "id": "0xfffe", + "name": "reporting_status", + "zcl_type": "enum8", + "value": 0 + }, + { + "id": "0x000d", + "name": "serial_number", + "zcl_type": "string", + "unsupported": true + }, + { + "id": "0x0002", + "name": "stack_version", + "zcl_type": "uint8", + "value": 1 + }, + { + "id": "0x0000", + "name": "zcl_version", + "zcl_type": "uint8", + "value": 3 + } + ] + }, + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [ + { + "id": "0xfffd", + "name": "cluster_revision", + "zcl_type": "uint16", + "value": 1 + }, + { + "id": "0x0000", + "name": "identify_time", + "zcl_type": "uint16", + "value": 0 + } + ] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [ + { + "id": "0xfffd", + "name": "cluster_revision", + "zcl_type": "uint16", + "value": 2 + }, + { + "id": "0x0000", + "name": "name_support", + "zcl_type": "map8", + "value": 0 + }, + { + "id": "0xfffe", + "name": "reporting_status", + "zcl_type": "enum8", + "unsupported": true + } + ] + }, + { + "cluster_id": "0x0005", + "endpoint_attribute": "scenes", + "attributes": [ + { + "id": "0xfffd", + "name": "cluster_revision", + "zcl_type": "uint16", + "value": 2 + }, + { + "id": "0x0000", + "name": "count", + "zcl_type": "uint8", + "value": 0 + }, + { + "id": "0x0002", + "name": "current_group", + "zcl_type": "uint16", + "value": 0 + }, + { + "id": "0x0001", + "name": "current_scene", + "zcl_type": "uint8", + "value": 0 + }, + { + "id": "0x0004", + "name": "name_support", + "zcl_type": "map8", + "value": 0 + }, + { + "id": "0xfffe", + "name": "reporting_status", + "zcl_type": "enum8", + "unsupported": true + }, + { + "id": "0x0003", + "name": "scene_valid", + "zcl_type": "bool", + "value": 0 + } + ] + }, + { + "cluster_id": "0x0006", + "endpoint_attribute": "on_off", + "attributes": [ + { + "id": "0xfffd", + "name": "cluster_revision", + "zcl_type": "uint16", + "value": 2 + }, + { + "id": "0x4000", + "name": "global_scene_control", + "zcl_type": "bool", + "unsupported": true + }, + { + "id": "0x4002", + "name": "off_wait_time", + "zcl_type": "uint16", + "value": 0 + }, + { + "id": "0x0000", + "name": "on_off", + "zcl_type": "bool", + "value": 0 + }, + { + "id": "0x4001", + "name": "on_time", + "zcl_type": "uint16", + "value": 0 + }, + { + "id": "0xfffe", + "name": "reporting_status", + "zcl_type": "enum8", + "unsupported": true + }, + { + "id": "0x4003", + "name": "start_up_on_off", + "zcl_type": "enum8", + "unsupported": true + } + ] + }, + { + "cluster_id": "0xe000", + "endpoint_attribute": null, + "attributes": [] + }, + { + "cluster_id": "0xe001", + "endpoint_attribute": null, + "attributes": [] + }, + { + "cluster_id": "0xef00", + "endpoint_attribute": null, + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x000a", + "endpoint_attribute": "time", + "attributes": [ + { + "id": "0xfffd", + "name": "cluster_revision", + "zcl_type": "uint16", + "value": 1 + } + ] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [ + { + "id": "0xfffd", + "name": "cluster_revision", + "zcl_type": "uint16", + "value": 3 + }, + { + "id": "0x0002", + "name": "current_file_version", + "zcl_type": "uint32", + "value": 80 + }, + { + "id": "0x0003", + "name": "current_zigbee_stack_version", + "zcl_type": "uint16", + "value": 2 + }, + { + "id": "0x0004", + "name": "downloaded_file_version", + "zcl_type": "uint32", + "value": 4294967295 + }, + { + "id": "0x0005", + "name": "downloaded_zigbee_stack_version", + "zcl_type": "uint16", + "value": 65535 + }, + { + "id": "0x0001", + "name": "file_offset", + "zcl_type": "uint32", + "value": 4294967295 + }, + { + "id": "0x0008", + "name": "image_type_id", + "zcl_type": "uint16", + "value": 65535 + }, + { + "id": "0x0006", + "name": "image_upgrade_status", + "zcl_type": "enum8", + "value": 0 + }, + { + "id": "0x0007", + "name": "manufacturer_id", + "zcl_type": "uint16", + "value": 4417 + }, + { + "id": "0x0009", + "name": "minimum_block_req_delay", + "zcl_type": "uint16", + "value": 0 + }, + { + "id": "0x0000", + "name": "upgrade_server_id", + "zcl_type": "EUI64", + "value": [ + 255, + 255, + 255, + 255, + 255, + 255, + 255, + 255 + ] + } + ] + } + ] + }, + "242": { + "profile_id": 41440, + "device_type": { + "name": "PROXY_BASIC", + "id": 97 + }, + "in_clusters": [], + "out_clusters": [ + { + "cluster_id": "0x0021", + "endpoint_attribute": "green_power", + "attributes": [] + } + ] + } + }, + "zha_lib_entities": { + "button": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:6d:c3:60:d3-1-3", + "migrate_unique_ids": [], + "platform": "button", + "class_name": "IdentifyButton", + "translation_key": null, + "translation_placeholders": null, + "device_class": "identify", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:6d:c3:60:d3", + "endpoint_id": 1, + "available": true, + "group_id": null, + "command": "identify", + "args": [ + 5 + ], + "kwargs": {} + }, + "state": { + "class_name": "IdentifyButton", + "available": true + } + } + ], + "light": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:6d:c3:60:d3-1", + "migrate_unique_ids": [], + "platform": "light", + "class_name": "Light", + "translation_key": "light", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": true, + "device_ieee": "ab:cd:ef:12:6d:c3:60:d3", + "endpoint_id": 1, + "available": true, + "group_id": null, + "effect_list": [ + "off" + ], + "supported_features": 8, + "min_mireds": 153, + "max_mireds": 500 + }, + "state": { + "class_name": "Light", + "available": true, + "on": false, + "brightness": null, + "xy_color": null, + "color_temp": null, + "effect_list": [ + "off" + ], + "effect": "off", + "supported_features": 8, + "color_mode": "onoff", + "supported_color_modes": [ + "onoff" + ], + "off_with_transition": false, + "off_brightness": null + }, + "extra_state_attributes": [ + "off_brightness", + "off_with_transition" + ] + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:6d:c3:60:d3-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:6d:c3:60:d3", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:6d:c3:60:d3-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:6d:c3:60:d3", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:6d:c3:60:d3-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:6d:c3:60:d3", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": "0x00000050", + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/tz3218-t9ynfz4x-ts0225.json b/tests/data/legacy_devices/tz3218-t9ynfz4x-ts0225.json new file mode 100644 index 000000000..daf53343f --- /dev/null +++ b/tests/data/legacy_devices/tz3218-t9ynfz4x-ts0225.json @@ -0,0 +1,335 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:e5:ee:a6:8a", + "nwk": "0xF880", + "manufacturer": "_TZ3218_t9ynfz4x", + "model": "TS0225", + "friendly_manufacturer": "_TZ3218_t9ynfz4x", + "friendly_model": "TS0225", + "name": "_TZ3218_t9ynfz4x TS0225", + "quirk_applied": false, + "quirk_class": "zigpy.device.Device", + "exposes_features": [], + "manufacturer_code": 4098, + "power_source": "Mains", + "lqi": null, + "rssi": null, + "last_seen": "2024-03-01T09:14:14", + "available": true, + "device_type": "Router", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "Router", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 142, + "manufacturer_code": 4098, + "maximum_buffer_size": 82, + "maximum_incoming_transfer_size": 82, + "server_mask": 11264, + "maximum_outgoing_transfer_size": 82, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "IAS_ZONE", + "id": 1026 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "_TZ3218_t9ynfz4x" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "TS0225" + } + ] + }, + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0005", + "endpoint_attribute": "scenes", + "attributes": [] + }, + { + "cluster_id": "0x0500", + "endpoint_attribute": "ias_zone", + "attributes": [ + { + "id": "0x0010", + "name": "cie_addr", + "zcl_type": "EUI64", + "value": [ + 50, + 79, + 50, + 2, + 0, + 141, + 21, + 0 + ] + }, + { + "id": "0x0013", + "name": "current_zone_sensitivity_level", + "zcl_type": "uint8", + "unsupported": true + }, + { + "id": "0x0012", + "name": "num_zone_sensitivity_levels_supported", + "zcl_type": "uint8", + "unsupported": true + }, + { + "id": "0x0000", + "name": "zone_state", + "zcl_type": "enum8", + "value": 0 + }, + { + "id": "0x0002", + "name": "zone_status", + "zcl_type": "map16", + "value": 0 + }, + { + "id": "0x0001", + "name": "zone_type", + "zcl_type": "enum16", + "value": 32771 + } + ] + }, + { + "cluster_id": "0x4000", + "endpoint_attribute": null, + "attributes": [] + }, + { + "cluster_id": "0xe002", + "endpoint_attribute": null, + "attributes": [] + }, + { + "cluster_id": "0xef00", + "endpoint_attribute": null, + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x000a", + "endpoint_attribute": "time", + "attributes": [] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [ + { + "id": "0xfffd", + "name": "cluster_revision", + "zcl_type": "uint16", + "value": 3 + }, + { + "id": "0x0002", + "name": "current_file_version", + "zcl_type": "uint32", + "unsupported": true + }, + { + "id": "0x0007", + "name": "manufacturer_id", + "zcl_type": "uint16", + "unsupported": true + } + ] + } + ] + } + }, + "zha_lib_entities": { + "binary_sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:e5:ee:a6:8a-1-1280", + "migrate_unique_ids": [], + "platform": "binary_sensor", + "class_name": "IASZone", + "translation_key": "ias_zone", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": true, + "device_ieee": "ab:cd:ef:12:e5:ee:a6:8a", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "zone_status" + }, + "state": { + "class_name": "IASZone", + "available": true, + "state": false + } + } + ], + "button": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:e5:ee:a6:8a-1-3", + "migrate_unique_ids": [], + "platform": "button", + "class_name": "IdentifyButton", + "translation_key": null, + "translation_placeholders": null, + "device_class": "identify", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:e5:ee:a6:8a", + "endpoint_id": 1, + "available": true, + "group_id": null, + "command": "identify", + "args": [ + 5 + ], + "kwargs": {} + }, + "state": { + "class_name": "IdentifyButton", + "available": true + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:e5:ee:a6:8a-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:e5:ee:a6:8a", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:e5:ee:a6:8a-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:e5:ee:a6:8a", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:e5:ee:a6:8a-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:e5:ee:a6:8a", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": null, + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/tz3218-ya5d6wth-ts000f-0x00000066.json b/tests/data/legacy_devices/tz3218-ya5d6wth-ts000f-0x00000066.json new file mode 100644 index 000000000..2557c046c --- /dev/null +++ b/tests/data/legacy_devices/tz3218-ya5d6wth-ts000f-0x00000066.json @@ -0,0 +1,622 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:e0:ea:fe:6c", + "nwk": "0x2BB3", + "manufacturer": "_TZ3218_ya5d6wth", + "model": "TS000F", + "friendly_manufacturer": "_TZ3218_ya5d6wth", + "friendly_model": "TS000F", + "name": "_TZ3218_ya5d6wth TS000F", + "quirk_applied": false, + "quirk_class": "zigpy.device.Device", + "exposes_features": [], + "manufacturer_code": 4417, + "power_source": "Mains", + "lqi": null, + "rssi": null, + "last_seen": "2024-08-31T15:19:39", + "available": true, + "device_type": "Router", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "Router", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 142, + "manufacturer_code": 4417, + "maximum_buffer_size": 66, + "maximum_incoming_transfer_size": 66, + "server_mask": 10752, + "maximum_outgoing_transfer_size": 66, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "ON_OFF_LIGHT", + "id": 256 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "_TZ3218_ya5d6wth" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "TS000F" + } + ] + }, + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0005", + "endpoint_attribute": "scenes", + "attributes": [] + }, + { + "cluster_id": "0x0006", + "endpoint_attribute": "on_off", + "attributes": [ + { + "id": "0x0000", + "name": "on_off", + "zcl_type": "bool", + "value": 0 + }, + { + "id": "0x4003", + "name": "start_up_on_off", + "zcl_type": "enum8", + "unsupported": true + } + ] + }, + { + "cluster_id": "0xe000", + "endpoint_attribute": null, + "attributes": [] + }, + { + "cluster_id": "0xe001", + "endpoint_attribute": null, + "attributes": [] + }, + { + "cluster_id": "0xef00", + "endpoint_attribute": null, + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x000a", + "endpoint_attribute": "time", + "attributes": [] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [ + { + "id": "0x0002", + "name": "current_file_version", + "zcl_type": "uint32", + "value": 102 + } + ] + } + ] + }, + "2": { + "profile_id": 260, + "device_type": { + "name": "ON_OFF_LIGHT", + "id": 256 + }, + "in_clusters": [ + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0005", + "endpoint_attribute": "scenes", + "attributes": [] + }, + { + "cluster_id": "0x0006", + "endpoint_attribute": "on_off", + "attributes": [ + { + "id": "0x0000", + "name": "on_off", + "zcl_type": "bool", + "value": 0 + }, + { + "id": "0x4003", + "name": "start_up_on_off", + "zcl_type": "enum8", + "unsupported": true + } + ] + }, + { + "cluster_id": "0xe001", + "endpoint_attribute": null, + "attributes": [] + } + ], + "out_clusters": [] + }, + "3": { + "profile_id": 260, + "device_type": { + "name": "ON_OFF_LIGHT", + "id": 256 + }, + "in_clusters": [ + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0005", + "endpoint_attribute": "scenes", + "attributes": [] + }, + { + "cluster_id": "0x0006", + "endpoint_attribute": "on_off", + "attributes": [ + { + "id": "0x0000", + "name": "on_off", + "zcl_type": "bool", + "value": 0 + }, + { + "id": "0x4003", + "name": "start_up_on_off", + "zcl_type": "enum8", + "unsupported": true + } + ] + }, + { + "cluster_id": "0xe001", + "endpoint_attribute": null, + "attributes": [] + } + ], + "out_clusters": [] + }, + "4": { + "profile_id": 260, + "device_type": { + "name": "ON_OFF_LIGHT", + "id": 256 + }, + "in_clusters": [ + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0005", + "endpoint_attribute": "scenes", + "attributes": [] + }, + { + "cluster_id": "0x0006", + "endpoint_attribute": "on_off", + "attributes": [ + { + "id": "0x0000", + "name": "on_off", + "zcl_type": "bool", + "value": 0 + }, + { + "id": "0x4003", + "name": "start_up_on_off", + "zcl_type": "enum8", + "unsupported": true + } + ] + }, + { + "cluster_id": "0xe001", + "endpoint_attribute": null, + "attributes": [] + } + ], + "out_clusters": [] + }, + "242": { + "profile_id": 41440, + "device_type": { + "name": "PROXY_BASIC", + "id": 97 + }, + "in_clusters": [], + "out_clusters": [ + { + "cluster_id": "0x0021", + "endpoint_attribute": "green_power", + "attributes": [] + } + ] + } + }, + "zha_lib_entities": { + "button": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:e0:ea:fe:6c-1-3", + "migrate_unique_ids": [], + "platform": "button", + "class_name": "IdentifyButton", + "translation_key": null, + "translation_placeholders": null, + "device_class": "identify", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:e0:ea:fe:6c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "command": "identify", + "args": [ + 5 + ], + "kwargs": {} + }, + "state": { + "class_name": "IdentifyButton", + "available": true + } + } + ], + "light": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:e0:ea:fe:6c-1", + "migrate_unique_ids": [], + "platform": "light", + "class_name": "Light", + "translation_key": "light", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:e0:ea:fe:6c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "effect_list": [ + "off" + ], + "supported_features": 8, + "min_mireds": 153, + "max_mireds": 500 + }, + "state": { + "class_name": "Light", + "available": true, + "on": false, + "brightness": null, + "xy_color": null, + "color_temp": null, + "effect_list": [ + "off" + ], + "effect": "off", + "supported_features": 8, + "color_mode": "onoff", + "supported_color_modes": [ + "onoff" + ], + "off_with_transition": false, + "off_brightness": null + }, + "extra_state_attributes": [ + "off_brightness", + "off_with_transition" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:e0:ea:fe:6c-2", + "migrate_unique_ids": [], + "platform": "light", + "class_name": "Light", + "translation_key": "light", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:e0:ea:fe:6c", + "endpoint_id": 2, + "available": true, + "group_id": null, + "effect_list": [ + "off" + ], + "supported_features": 8, + "min_mireds": 153, + "max_mireds": 500 + }, + "state": { + "class_name": "Light", + "available": true, + "on": false, + "brightness": null, + "xy_color": null, + "color_temp": null, + "effect_list": [ + "off" + ], + "effect": "off", + "supported_features": 8, + "color_mode": "onoff", + "supported_color_modes": [ + "onoff" + ], + "off_with_transition": false, + "off_brightness": null + }, + "extra_state_attributes": [ + "off_brightness", + "off_with_transition" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:e0:ea:fe:6c-3", + "migrate_unique_ids": [], + "platform": "light", + "class_name": "Light", + "translation_key": "light", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:e0:ea:fe:6c", + "endpoint_id": 3, + "available": true, + "group_id": null, + "effect_list": [ + "off" + ], + "supported_features": 8, + "min_mireds": 153, + "max_mireds": 500 + }, + "state": { + "class_name": "Light", + "available": true, + "on": false, + "brightness": null, + "xy_color": null, + "color_temp": null, + "effect_list": [ + "off" + ], + "effect": "off", + "supported_features": 8, + "color_mode": "onoff", + "supported_color_modes": [ + "onoff" + ], + "off_with_transition": false, + "off_brightness": null + }, + "extra_state_attributes": [ + "off_brightness", + "off_with_transition" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:e0:ea:fe:6c-4", + "migrate_unique_ids": [], + "platform": "light", + "class_name": "Light", + "translation_key": "light", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:e0:ea:fe:6c", + "endpoint_id": 4, + "available": true, + "group_id": null, + "effect_list": [ + "off" + ], + "supported_features": 8, + "min_mireds": 153, + "max_mireds": 500 + }, + "state": { + "class_name": "Light", + "available": true, + "on": false, + "brightness": null, + "xy_color": null, + "color_temp": null, + "effect_list": [ + "off" + ], + "effect": "off", + "supported_features": 8, + "color_mode": "onoff", + "supported_color_modes": [ + "onoff" + ], + "off_with_transition": false, + "off_brightness": null + }, + "extra_state_attributes": [ + "off_brightness", + "off_with_transition" + ] + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:e0:ea:fe:6c-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:e0:ea:fe:6c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:e0:ea:fe:6c-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:e0:ea:fe:6c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:e0:ea:fe:6c-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:e0:ea:fe:6c", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": "0x00000066", + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/tze200-3towulqd-ts0601.json b/tests/data/legacy_devices/tze200-3towulqd-ts0601.json new file mode 100644 index 000000000..f719e4ce5 --- /dev/null +++ b/tests/data/legacy_devices/tze200-3towulqd-ts0601.json @@ -0,0 +1,482 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:02:44:6a:44", + "nwk": "0x03AA", + "manufacturer": "_TZE200_3towulqd", + "model": "TS0601", + "friendly_manufacturer": "_TZE200_3towulqd", + "friendly_model": "TS0601", + "name": "_TZE200_3towulqd TS0601", + "quirk_applied": true, + "quirk_class": "zhaquirks.tuya.builder:(_TZE200_3towulqd / TS0601)", + "exposes_features": [], + "manufacturer_code": 4417, + "power_source": "Battery or Unknown", + "lqi": null, + "rssi": null, + "last_seen": "2023-07-10T18:14:13+00:00", + "available": true, + "device_type": "EndDevice", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "EndDevice", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 128, + "manufacturer_code": 4417, + "maximum_buffer_size": 66, + "maximum_incoming_transfer_size": 66, + "server_mask": 10752, + "maximum_outgoing_transfer_size": 66, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "IAS_ZONE", + "id": 1026 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "_TZE200_3towulqd" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "TS0601" + } + ] + }, + { + "cluster_id": "0x0001", + "endpoint_attribute": "power", + "attributes": [ + { + "id": "0x0021", + "name": "battery_percentage_remaining", + "zcl_type": "uint8", + "value": 0 + }, + { + "id": "0x0033", + "name": "battery_quantity", + "zcl_type": "uint8", + "value": 2 + }, + { + "id": "0x0034", + "name": "battery_rated_voltage", + "zcl_type": "uint8", + "value": 15 + }, + { + "id": "0x0031", + "name": "battery_size", + "zcl_type": "enum8", + "value": 3 + }, + { + "id": "0x0020", + "name": "battery_voltage", + "zcl_type": "uint8", + "value": 0 + } + ] + }, + { + "cluster_id": "0x0400", + "endpoint_attribute": "illuminance", + "attributes": [ + { + "id": "0x0004", + "name": "light_sensor_type", + "zcl_type": "enum8", + "value": 0 + } + ] + }, + { + "cluster_id": "0x0406", + "endpoint_attribute": "occupancy", + "attributes": [] + }, + { + "cluster_id": "0x0500", + "endpoint_attribute": "ias_zone", + "attributes": [ + { + "id": "0x0010", + "name": "cie_addr", + "zcl_type": "EUI64", + "value": "00:12:4b:00:24:c0:d9:68" + }, + { + "id": "0x0000", + "name": "zone_state", + "zcl_type": "enum8", + "value": 0 + }, + { + "id": "0x0002", + "name": "zone_status", + "zcl_type": "map16", + "value": 0 + }, + { + "id": "0x0001", + "name": "zone_type", + "zcl_type": "enum16", + "value": 40 + } + ] + }, + { + "cluster_id": "0xef00", + "endpoint_attribute": "tuya_manufacturer", + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x000a", + "endpoint_attribute": "time", + "attributes": [] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [] + } + ] + } + }, + "zha_lib_entities": { + "binary_sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:02:44:6a:44-1-1030", + "migrate_unique_ids": [], + "platform": "binary_sensor", + "class_name": "Occupancy", + "translation_key": null, + "translation_placeholders": null, + "device_class": "occupancy", + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:02:44:6a:44", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "occupancy" + }, + "state": { + "class_name": "Occupancy", + "available": true, + "state": false + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:02:44:6a:44-1-1280", + "migrate_unique_ids": [], + "platform": "binary_sensor", + "class_name": "IASZone", + "translation_key": null, + "translation_placeholders": null, + "device_class": "smoke", + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": true, + "device_ieee": "ab:cd:ef:12:02:44:6a:44", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "zone_status" + }, + "state": { + "class_name": "IASZone", + "available": true, + "state": false + } + } + ], + "number": [ + { + "info_object": { + "fallback_name": "Illuminance interval", + "unique_id": "ab:cd:ef:12:02:44:6a:44-1-illuminance_interval", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "illuminance_interval", + "translation_placeholders": null, + "device_class": "duration", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:02:44:6a:44", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 720, + "native_min_value": 1, + "native_step": 1, + "native_unit_of_measurement": "min" + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": null + } + } + ], + "select": [ + { + "info_object": { + "fallback_name": "Fading time", + "unique_id": "ab:cd:ef:12:02:44:6a:44-1-fading_time", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "ZCLEnumSelectEntity", + "translation_key": "fading_time", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:02:44:6a:44", + "endpoint_id": 1, + "available": true, + "group_id": null, + "enum": "TuyaMotionFadeTime", + "options": [ + " 10 seconds", + " 30 seconds", + " 60 seconds", + " 120 seconds" + ] + }, + "state": { + "class_name": "ZCLEnumSelectEntity", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Presence sensitivity", + "unique_id": "ab:cd:ef:12:02:44:6a:44-1-presence_sensitivity", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "ZCLEnumSelectEntity", + "translation_key": "presence_sensitivity", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:02:44:6a:44", + "endpoint_id": 1, + "available": true, + "group_id": null, + "enum": "TuyaMotionPresenceSensitivity", + "options": [ + "Low", + "Medium", + "High" + ] + }, + "state": { + "class_name": "ZCLEnumSelectEntity", + "available": true, + "state": null + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:02:44:6a:44-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:02:44:6a:44", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:02:44:6a:44-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:02:44:6a:44", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:02:44:6a:44-1-1", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Battery", + "translation_key": null, + "translation_placeholders": null, + "device_class": "battery", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:02:44:6a:44", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 0, + "unit": "%" + }, + "state": { + "class_name": "Battery", + "available": true, + "state": 0.0, + "battery_size": "AA", + "battery_quantity": 2, + "battery_voltage": 0.0 + }, + "extra_state_attributes": [ + "battery_quantity", + "battery_size", + "battery_voltage" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:02:44:6a:44-1-1024", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Illuminance", + "translation_key": null, + "translation_placeholders": null, + "device_class": "illuminance", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:02:44:6a:44", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "lx" + }, + "state": { + "class_name": "Illuminance", + "available": true, + "state": null + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:02:44:6a:44-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:02:44:6a:44", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": null, + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/tze200-c88teujp-ts0601.json b/tests/data/legacy_devices/tze200-c88teujp-ts0601.json new file mode 100644 index 000000000..6254e5678 --- /dev/null +++ b/tests/data/legacy_devices/tze200-c88teujp-ts0601.json @@ -0,0 +1,791 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:f0:e2:89:82", + "nwk": "0xDF16", + "manufacturer": "_TZE200_c88teujp", + "model": "TS0601", + "friendly_manufacturer": "_TZE200_c88teujp", + "friendly_model": "TS0601", + "name": "_TZE200_c88teujp TS0601", + "quirk_applied": true, + "quirk_class": "zhaquirks.tuya.builder:(_TYST11_KGbxAXL2 / GbxAXL2)", + "exposes_features": [], + "manufacturer_code": 4098, + "power_source": "Battery or Unknown", + "lqi": null, + "rssi": null, + "last_seen": "2025-02-10T00:42:56+00:00", + "available": true, + "device_type": "EndDevice", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "EndDevice", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 128, + "manufacturer_code": 4098, + "maximum_buffer_size": 82, + "maximum_incoming_transfer_size": 82, + "server_mask": 11264, + "maximum_outgoing_transfer_size": 82, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "THERMOSTAT", + "id": 769 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "_TZE200_c88teujp" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "TS0601" + } + ] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0005", + "endpoint_attribute": "scenes", + "attributes": [] + }, + { + "cluster_id": "0x0201", + "endpoint_attribute": "thermostat", + "attributes": [ + { + "id": "0x0004", + "name": "abs_max_heat_setpoint_limit", + "zcl_type": "int16", + "value": 3000 + }, + { + "id": "0x0003", + "name": "abs_min_heat_setpoint_limit", + "zcl_type": "int16", + "value": 500 + }, + { + "id": "0x001b", + "name": "ctrl_sequence_of_oper", + "zcl_type": "enum8", + "value": 2 + }, + { + "id": "0x0000", + "name": "local_temperature", + "zcl_type": "int16", + "value": 1900 + }, + { + "id": "0x0010", + "name": "local_temperature_calibration", + "zcl_type": "int8", + "value": 20 + }, + { + "id": "0x0016", + "name": "max_heat_setpoint_limit", + "zcl_type": "int16", + "value": 3000 + }, + { + "id": "0x0015", + "name": "min_heat_setpoint_limit", + "zcl_type": "int16", + "value": 500 + }, + { + "id": "0x0012", + "name": "occupied_heating_setpoint", + "zcl_type": "int16", + "value": 2000 + }, + { + "id": "0x0008", + "name": "pi_heating_demand", + "zcl_type": "uint8", + "unsupported": true + }, + { + "id": "0x001e", + "name": "running_mode", + "zcl_type": "enum8", + "value": 0 + }, + { + "id": "0x0030", + "name": "setpoint_change_source", + "zcl_type": "enum8", + "unsupported": true + }, + { + "id": "0x0032", + "name": "setpoint_change_source_timestamp", + "zcl_type": "UTC", + "unsupported": true + }, + { + "id": "0x001c", + "name": "system_mode", + "zcl_type": "enum8", + "value": 4 + } + ] + }, + { + "cluster_id": "0xef00", + "endpoint_attribute": "tuya_manufacturer", + "attributes": [ + { + "id": "0xef6a", + "name": "away_mode", + "zcl_type": "bool", + "value": 0 + }, + { + "id": "0xef69", + "name": "battery_low", + "zcl_type": "bool", + "value": 0 + }, + { + "id": "0xef28", + "name": "child_lock", + "zcl_type": "bool", + "value": 1 + }, + { + "id": "0xef0a", + "name": "frost_protection", + "zcl_type": "bool", + "value": 1 + }, + { + "id": "0xef82", + "name": "scale_protection", + "zcl_type": "bool", + "value": 1 + }, + { + "id": "0xef6c", + "name": "schedule_enable", + "zcl_type": "bool", + "value": 0 + }, + { + "id": "0xef08", + "name": "window_detection", + "zcl_type": "bool", + "value": 1 + } + ] + } + ], + "out_clusters": [ + { + "cluster_id": "0x000a", + "endpoint_attribute": "time", + "attributes": [] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [ + { + "id": "0x0002", + "name": "current_file_version", + "zcl_type": "uint32", + "unsupported": true + } + ] + } + ] + } + }, + "zha_lib_entities": { + "binary_sensor": [ + { + "info_object": { + "fallback_name": "Battery low", + "unique_id": "ab:cd:ef:12:f0:e2:89:82-1-battery_low", + "migrate_unique_ids": [], + "platform": "binary_sensor", + "class_name": "BinarySensor", + "translation_key": null, + "translation_placeholders": null, + "device_class": "battery", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:f0:e2:89:82", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "battery_low" + }, + "state": { + "class_name": "BinarySensor", + "available": true, + "state": false + } + } + ], + "climate": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:f0:e2:89:82-1", + "migrate_unique_ids": [], + "platform": "climate", + "class_name": "Thermostat", + "translation_key": "thermostat", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": true, + "device_ieee": "ab:cd:ef:12:f0:e2:89:82", + "endpoint_id": 1, + "available": true, + "group_id": null, + "max_temp": 30.0, + "min_temp": 5.0, + "supported_features": 385, + "fan_modes": null, + "preset_modes": [], + "hvac_modes": [ + "off", + "heat" + ] + }, + "state": { + "class_name": "Thermostat", + "available": true, + "current_temperature": 19.0, + "outdoor_temperature": null, + "target_temperature": 20.0, + "target_temperature_high": null, + "target_temperature_low": null, + "hvac_action": null, + "hvac_mode": "heat", + "preset_mode": "none", + "fan_mode": "auto", + "system_mode": "[4]/heat", + "occupancy": null, + "occupied_cooling_setpoint": null, + "occupied_heating_setpoint": 2000, + "pi_heating_demand": null, + "pi_cooling_demand": null, + "unoccupied_cooling_setpoint": null, + "unoccupied_heating_setpoint": null + }, + "extra_state_attributes": [ + "occupancy", + "occupied_cooling_setpoint", + "occupied_heating_setpoint", + "pi_cooling_demand", + "pi_heating_demand", + "system_mode", + "unoccupied_cooling_setpoint", + "unoccupied_heating_setpoint" + ] + } + ], + "number": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:f0:e2:89:82-1-513-local_temperature_calibration", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "ThermostatLocalTempCalibration", + "translation_key": "local_temperature_calibration", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:f0:e2:89:82", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "box", + "native_max_value": 2.5, + "native_min_value": -2.5, + "native_step": 0.1, + "native_unit_of_measurement": "\u00b0C" + }, + "state": { + "class_name": "ThermostatLocalTempCalibration", + "available": true, + "state": 2.0 + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:f0:e2:89:82-1-513-max_heat_setpoint_limit", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "MaxHeatSetpointLimit", + "translation_key": "max_heat_setpoint_limit", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:f0:e2:89:82", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "box", + "native_max_value": 30.0, + "native_min_value": 5.0, + "native_step": 0.5, + "native_unit_of_measurement": "\u00b0C" + }, + "state": { + "class_name": "MaxHeatSetpointLimit", + "available": true, + "state": 30.0 + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:f0:e2:89:82-1-513-min_heat_setpoint_limit", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "MinHeatSetpointLimit", + "translation_key": "min_heat_setpoint_limit", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:f0:e2:89:82", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "box", + "native_max_value": 30.0, + "native_min_value": 5.0, + "native_step": 0.5, + "native_unit_of_measurement": "\u00b0C" + }, + "state": { + "class_name": "MinHeatSetpointLimit", + "available": true, + "state": 5.0 + } + }, + { + "info_object": { + "fallback_name": "Local temperature calibration", + "unique_id": "ab:cd:ef:12:f0:e2:89:82-1-local_temperature_calibration", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "local_temperature_calibration", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:f0:e2:89:82", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 6, + "native_min_value": -6, + "native_step": 1, + "native_unit_of_measurement": "\u00b0C" + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": null + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:f0:e2:89:82-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:f0:e2:89:82", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:f0:e2:89:82-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:f0:e2:89:82", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:f0:e2:89:82-1-513-hvac_action", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "ThermostatHVACAction", + "translation_key": "hvac_action", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:f0:e2:89:82", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "ThermostatHVACAction", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Valve position", + "unique_id": "ab:cd:ef:12:f0:e2:89:82-1-valve_position", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Sensor", + "translation_key": "valve_position", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:f0:e2:89:82", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "%" + }, + "state": { + "class_name": "Sensor", + "available": true, + "state": null + } + } + ], + "switch": [ + { + "info_object": { + "fallback_name": "Away mode", + "unique_id": "ab:cd:ef:12:f0:e2:89:82-1-away_mode", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "ConfigurableAttributeSwitch", + "translation_key": "away_mode", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:f0:e2:89:82", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "away_mode", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 0, + "on_value": 1 + }, + "state": { + "class_name": "ConfigurableAttributeSwitch", + "available": true, + "state": false, + "inverted": false + } + }, + { + "info_object": { + "fallback_name": "Child lock", + "unique_id": "ab:cd:ef:12:f0:e2:89:82-1-child_lock", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "ConfigurableAttributeSwitch", + "translation_key": "child_lock", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:f0:e2:89:82", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "child_lock", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 0, + "on_value": 1 + }, + "state": { + "class_name": "ConfigurableAttributeSwitch", + "available": true, + "state": true, + "inverted": false + } + }, + { + "info_object": { + "fallback_name": "Frost protection", + "unique_id": "ab:cd:ef:12:f0:e2:89:82-1-frost_protection", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "ConfigurableAttributeSwitch", + "translation_key": "frost_protection", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:f0:e2:89:82", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "frost_protection", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 0, + "on_value": 1 + }, + "state": { + "class_name": "ConfigurableAttributeSwitch", + "available": true, + "state": true, + "inverted": false + } + }, + { + "info_object": { + "fallback_name": "Scale protection", + "unique_id": "ab:cd:ef:12:f0:e2:89:82-1-scale_protection", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "ConfigurableAttributeSwitch", + "translation_key": "scale_protection", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:f0:e2:89:82", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "scale_protection", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 0, + "on_value": 1 + }, + "state": { + "class_name": "ConfigurableAttributeSwitch", + "available": true, + "state": true, + "inverted": false + } + }, + { + "info_object": { + "fallback_name": "Schedule enable", + "unique_id": "ab:cd:ef:12:f0:e2:89:82-1-schedule_enable", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "ConfigurableAttributeSwitch", + "translation_key": "schedule_enable", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:f0:e2:89:82", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "schedule_enable", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 0, + "on_value": 1 + }, + "state": { + "class_name": "ConfigurableAttributeSwitch", + "available": true, + "state": false, + "inverted": false + } + }, + { + "info_object": { + "fallback_name": "Open window detection", + "unique_id": "ab:cd:ef:12:f0:e2:89:82-1-window_detection", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "ConfigurableAttributeSwitch", + "translation_key": "window_detection", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:f0:e2:89:82", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "window_detection", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 0, + "on_value": 1 + }, + "state": { + "class_name": "ConfigurableAttributeSwitch", + "available": true, + "state": true, + "inverted": false + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:f0:e2:89:82-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:f0:e2:89:82", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": null, + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/tze200-laqjm8qd-ts0601-0x00000046.json b/tests/data/legacy_devices/tze200-laqjm8qd-ts0601-0x00000046.json new file mode 100644 index 000000000..91bdd7be4 --- /dev/null +++ b/tests/data/legacy_devices/tze200-laqjm8qd-ts0601-0x00000046.json @@ -0,0 +1,217 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:47:7b:70:ef", + "nwk": "0xF9E2", + "manufacturer": "_TZE200_laqjm8qd", + "model": "TS0601", + "friendly_manufacturer": "_TZE200_laqjm8qd", + "friendly_model": "TS0601", + "name": "_TZE200_laqjm8qd TS0601", + "quirk_applied": false, + "quirk_class": "zigpy.device.Device", + "exposes_features": [], + "manufacturer_code": 4417, + "power_source": "Mains", + "lqi": null, + "rssi": null, + "last_seen": "2024-12-01T21:14:47", + "available": true, + "device_type": "Router", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "Router", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 142, + "manufacturer_code": 4417, + "maximum_buffer_size": 66, + "maximum_incoming_transfer_size": 66, + "server_mask": 10752, + "maximum_outgoing_transfer_size": 66, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "SMART_PLUG", + "id": 81 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0001", + "name": "app_version", + "zcl_type": "uint8", + "value": 70 + }, + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "_TZE200_laqjm8qd" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "TS0601" + } + ] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0005", + "endpoint_attribute": "scenes", + "attributes": [] + }, + { + "cluster_id": "0xef00", + "endpoint_attribute": null, + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x000a", + "endpoint_attribute": "time", + "attributes": [] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [ + { + "id": "0x0002", + "name": "current_file_version", + "zcl_type": "uint32", + "value": 70 + } + ] + } + ] + }, + "242": { + "profile_id": 41440, + "device_type": { + "name": "PROXY_BASIC", + "id": 97 + }, + "in_clusters": [], + "out_clusters": [ + { + "cluster_id": "0x0021", + "endpoint_attribute": "green_power", + "attributes": [] + } + ] + } + }, + "zha_lib_entities": { + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:47:7b:70:ef-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:47:7b:70:ef", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:47:7b:70:ef-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:47:7b:70:ef", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:47:7b:70:ef-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:47:7b:70:ef", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": "0x00000046", + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/tze200-vvmbj46n-ts0601.json b/tests/data/legacy_devices/tze200-vvmbj46n-ts0601.json new file mode 100644 index 000000000..2b5db00b9 --- /dev/null +++ b/tests/data/legacy_devices/tze200-vvmbj46n-ts0601.json @@ -0,0 +1,680 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:85:68:2c:96", + "nwk": "0xD52F", + "manufacturer": "_TZE200_vvmbj46n", + "model": "TS0601", + "friendly_manufacturer": "_TZE200_vvmbj46n", + "friendly_model": "TS0601", + "name": "_TZE200_vvmbj46n TS0601", + "quirk_applied": true, + "quirk_class": "zhaquirks.tuya.builder:(_TZE200_lve3dvpy / TS0601)", + "exposes_features": [], + "manufacturer_code": 4417, + "power_source": "Battery or Unknown", + "lqi": null, + "rssi": null, + "last_seen": "2023-11-09T02:00:47+00:00", + "available": true, + "device_type": "EndDevice", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "EndDevice", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 128, + "manufacturer_code": 4417, + "maximum_buffer_size": 66, + "maximum_incoming_transfer_size": 66, + "server_mask": 10752, + "maximum_outgoing_transfer_size": 66, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "TEMPERATURE_SENSOR", + "id": 770 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0001", + "name": "app_version", + "zcl_type": "uint8", + "value": 72 + }, + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "_TZE200_vvmbj46n" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "TS0601" + } + ] + }, + { + "cluster_id": "0x0001", + "endpoint_attribute": "power", + "attributes": [ + { + "id": "0x0033", + "name": "battery_quantity", + "zcl_type": "uint8", + "value": 2 + }, + { + "id": "0x0034", + "name": "battery_rated_voltage", + "zcl_type": "uint8", + "value": 15 + }, + { + "id": "0x0031", + "name": "battery_size", + "zcl_type": "enum8", + "value": 3 + } + ] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0005", + "endpoint_attribute": "scenes", + "attributes": [] + }, + { + "cluster_id": "0x0402", + "endpoint_attribute": "temperature", + "attributes": [ + { + "id": "0x0000", + "name": "measured_value", + "zcl_type": "int16", + "value": 1750 + } + ] + }, + { + "cluster_id": "0x0405", + "endpoint_attribute": "humidity", + "attributes": [ + { + "id": "0x0000", + "name": "measured_value", + "zcl_type": "uint16", + "value": 5900 + } + ] + }, + { + "cluster_id": "0xef00", + "endpoint_attribute": "tuya_manufacturer", + "attributes": [ + { + "id": "0xef00", + "name": "mcu_version", + "zcl_type": "uint48", + "value": "1.0.0" + } + ] + } + ], + "out_clusters": [ + { + "cluster_id": "0x000a", + "endpoint_attribute": "time", + "attributes": [] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [] + } + ] + } + }, + "zha_lib_entities": { + "number": [ + { + "info_object": { + "fallback_name": "Alarm humidity max", + "unique_id": "ab:cd:ef:12:85:68:2c:96-1-alarm_humidity_max", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "alarm_humidity_max", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:85:68:2c:96", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 100, + "native_min_value": 0, + "native_step": 1, + "native_unit_of_measurement": "%" + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Alarm humidity min", + "unique_id": "ab:cd:ef:12:85:68:2c:96-1-alarm_humidity_min", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "alarm_humidity_min", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:85:68:2c:96", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 100, + "native_min_value": 0, + "native_step": 1, + "native_unit_of_measurement": "%" + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Alarm temperature max", + "unique_id": "ab:cd:ef:12:85:68:2c:96-1-alarm_temperature_max", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "alarm_temperature_max", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:85:68:2c:96", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 60, + "native_min_value": -20, + "native_step": 1, + "native_unit_of_measurement": "\u00b0C" + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Alarm temperature min", + "unique_id": "ab:cd:ef:12:85:68:2c:96-1-alarm_temperature_min", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "alarm_temperature_min", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:85:68:2c:96", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 60, + "native_min_value": -20, + "native_step": 1, + "native_unit_of_measurement": "\u00b0C" + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Humidity report interval", + "unique_id": "ab:cd:ef:12:85:68:2c:96-1-humidity_report_interval", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "humidity_report_interval", + "translation_placeholders": null, + "device_class": "duration", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:85:68:2c:96", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 120, + "native_min_value": 5, + "native_step": 5, + "native_unit_of_measurement": "min" + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Humidity sensitivity", + "unique_id": "ab:cd:ef:12:85:68:2c:96-1-humidity_sensitivity", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "humidity_sensitivity", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:85:68:2c:96", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 100, + "native_min_value": 1, + "native_step": 1, + "native_unit_of_measurement": "%" + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Temperature report interval", + "unique_id": "ab:cd:ef:12:85:68:2c:96-1-temperature_report_interval", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "temperature_report_interval", + "translation_placeholders": null, + "device_class": "duration", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:85:68:2c:96", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 120, + "native_min_value": 5, + "native_step": 5, + "native_unit_of_measurement": "min" + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Temperature sensitivity", + "unique_id": "ab:cd:ef:12:85:68:2c:96-1-temperature_sensitivity", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "temperature_sensitivity", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:85:68:2c:96", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 50, + "native_min_value": 0.1, + "native_step": 0.1, + "native_unit_of_measurement": "\u00b0C" + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": null + } + } + ], + "select": [ + { + "info_object": { + "fallback_name": "Display unit", + "unique_id": "ab:cd:ef:12:85:68:2c:96-1-display_unit", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "ZCLEnumSelectEntity", + "translation_key": "display_unit", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:85:68:2c:96", + "endpoint_id": 1, + "available": true, + "group_id": null, + "enum": "TuyaTempUnitConvert", + "options": [ + "Celsius", + "Fahrenheit" + ] + }, + "state": { + "class_name": "ZCLEnumSelectEntity", + "available": true, + "state": null + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:85:68:2c:96-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:85:68:2c:96", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:85:68:2c:96-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:85:68:2c:96", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:85:68:2c:96-1-1", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Battery", + "translation_key": null, + "translation_placeholders": null, + "device_class": "battery", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:85:68:2c:96", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 0, + "unit": "%" + }, + "state": { + "class_name": "Battery", + "available": true, + "state": null, + "battery_size": "AA", + "battery_quantity": 2 + }, + "extra_state_attributes": [ + "battery_quantity", + "battery_size", + "battery_voltage" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:85:68:2c:96-1-1026", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Temperature", + "translation_key": null, + "translation_placeholders": null, + "device_class": "temperature", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:85:68:2c:96", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "\u00b0C" + }, + "state": { + "class_name": "Temperature", + "available": true, + "state": 17.5 + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:85:68:2c:96-1-1029", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Humidity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "humidity", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:85:68:2c:96", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "%" + }, + "state": { + "class_name": "Humidity", + "available": true, + "state": 59.0 + } + }, + { + "info_object": { + "fallback_name": "Humidity alarm", + "unique_id": "ab:cd:ef:12:85:68:2c:96-1-humidity_alarm", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "EnumSensor", + "translation_key": "humidity_alarm", + "translation_placeholders": null, + "device_class": "enum", + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:85:68:2c:96", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "EnumSensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Temperature alarm", + "unique_id": "ab:cd:ef:12:85:68:2c:96-1-temperature_alarm", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "EnumSensor", + "translation_key": "temperature_alarm", + "translation_placeholders": null, + "device_class": "enum", + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:85:68:2c:96", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "EnumSensor", + "available": true, + "state": null + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:85:68:2c:96-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:85:68:2c:96", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": null, + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/tze204-7ytb3h8u-ts0601-0x00000049.json b/tests/data/legacy_devices/tze204-7ytb3h8u-ts0601-0x00000049.json new file mode 100644 index 000000000..51f4db0ed --- /dev/null +++ b/tests/data/legacy_devices/tze204-7ytb3h8u-ts0601-0x00000049.json @@ -0,0 +1,598 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:66:5d:86:4a", + "nwk": "0x2923", + "manufacturer": "_TZE204_7ytb3h8u", + "model": "TS0601", + "friendly_manufacturer": "_TZE204_7ytb3h8u", + "friendly_model": "TS0601", + "name": "_TZE204_7ytb3h8u TS0601", + "quirk_applied": true, + "quirk_class": "zhaquirks.tuya.builder:(_TZE200_a7sghmms / TS0601)", + "exposes_features": [], + "manufacturer_code": 4417, + "power_source": "Battery or Unknown", + "lqi": null, + "rssi": null, + "last_seen": "2024-06-01T16:23:21+00:00", + "available": true, + "device_type": "EndDevice", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "EndDevice", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 128, + "manufacturer_code": 4417, + "maximum_buffer_size": 66, + "maximum_incoming_transfer_size": 66, + "server_mask": 10752, + "maximum_outgoing_transfer_size": 66, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "SMART_PLUG", + "id": 81 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0001", + "name": "app_version", + "zcl_type": "uint8", + "value": 73 + }, + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "_TZE204_7ytb3h8u" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "TS0601" + } + ] + }, + { + "cluster_id": "0x0001", + "endpoint_attribute": "power", + "attributes": [ + { + "id": "0x0033", + "name": "battery_quantity", + "zcl_type": "uint8", + "value": 4 + }, + { + "id": "0x0034", + "name": "battery_rated_voltage", + "zcl_type": "uint8", + "value": 15 + }, + { + "id": "0x0031", + "name": "battery_size", + "zcl_type": "enum8", + "value": 3 + } + ] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0005", + "endpoint_attribute": "scenes", + "attributes": [] + }, + { + "cluster_id": "0x0006", + "endpoint_attribute": "on_off", + "attributes": [] + }, + { + "cluster_id": "0x0702", + "endpoint_attribute": "smartenergy_metering", + "attributes": [ + { + "id": "0x0400", + "name": "instantaneous_demand", + "zcl_type": "int24", + "unsupported": true + }, + { + "id": "0x0306", + "name": "metering_device_type", + "zcl_type": "map8", + "value": 2 + }, + { + "id": "0x0300", + "name": "unit_of_measure", + "zcl_type": "enum8", + "value": 7 + } + ] + }, + { + "cluster_id": "0xef00", + "endpoint_attribute": "tuya_manufacturer", + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x000a", + "endpoint_attribute": "time", + "attributes": [] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [ + { + "id": "0x0002", + "name": "current_file_version", + "zcl_type": "uint32", + "value": 73 + } + ] + } + ] + } + }, + "zha_lib_entities": { + "number": [ + { + "info_object": { + "fallback_name": "Irrigation cycles", + "unique_id": "ab:cd:ef:12:66:5d:86:4a-1-irrigation_cycles", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "irrigation_cycles", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:66:5d:86:4a", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 100, + "native_min_value": 0, + "native_step": 1, + "native_unit_of_measurement": null + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Irrigation interval", + "unique_id": "ab:cd:ef:12:66:5d:86:4a-1-irrigation_interval", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "irrigation_interval", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:66:5d:86:4a", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 43200, + "native_min_value": 0, + "native_step": 1, + "native_unit_of_measurement": "s" + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Irrigation target", + "unique_id": "ab:cd:ef:12:66:5d:86:4a-1-irrigation_target", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "irrigation_target", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:66:5d:86:4a", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 43200, + "native_min_value": 0, + "native_step": 1, + "native_unit_of_measurement": null + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": null + } + } + ], + "select": [ + { + "info_object": { + "fallback_name": "Irrigation mode", + "unique_id": "ab:cd:ef:12:66:5d:86:4a-1-irrigation_mode", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "ZCLEnumSelectEntity", + "translation_key": "irrigation_mode", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:66:5d:86:4a", + "endpoint_id": 1, + "available": true, + "group_id": null, + "enum": "GiexIrrigationMode", + "options": [ + "Duration", + "Capacity" + ] + }, + "state": { + "class_name": "ZCLEnumSelectEntity", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Weather delay", + "unique_id": "ab:cd:ef:12:66:5d:86:4a-1-weather_delay", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "ZCLEnumSelectEntity", + "translation_key": "weather_delay", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:66:5d:86:4a", + "endpoint_id": 1, + "available": true, + "group_id": null, + "enum": "GiexIrrigationWeatherDelay", + "options": [ + "NoDelay", + "TwentyFourHourDelay", + "FortyEightHourDelay", + "SeventyTwoHourDelay" + ] + }, + "state": { + "class_name": "ZCLEnumSelectEntity", + "available": true, + "state": null + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:66:5d:86:4a-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:66:5d:86:4a", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:66:5d:86:4a-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:66:5d:86:4a", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:66:5d:86:4a-1-1", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Battery", + "translation_key": null, + "translation_placeholders": null, + "device_class": "battery", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:66:5d:86:4a", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 0, + "unit": "%" + }, + "state": { + "class_name": "Battery", + "available": true, + "state": null, + "battery_size": "AA", + "battery_quantity": 4 + }, + "extra_state_attributes": [ + "battery_quantity", + "battery_size", + "battery_voltage" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:66:5d:86:4a-1-1794-summation_delivered", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "SmartEnergySummation", + "translation_key": "summation_delivered", + "translation_placeholders": null, + "device_class": "volume", + "state_class": "total_increasing", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:66:5d:86:4a", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 3, + "unit": "L" + }, + "state": { + "class_name": "SmartEnergySummation", + "available": true, + "state": null, + "device_type": "Water Metering", + "zcl_unit_of_measurement": 7 + }, + "extra_state_attributes": [ + "device_type", + "status", + "zcl_unit_of_measurement" + ] + }, + { + "info_object": { + "fallback_name": "Irrigation duration", + "unique_id": "ab:cd:ef:12:66:5d:86:4a-1-irrigation_duration", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Sensor", + "translation_key": "irrigation_duration", + "translation_placeholders": null, + "device_class": "duration", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:66:5d:86:4a", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "s" + }, + "state": { + "class_name": "Sensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Irrigation end time", + "unique_id": "ab:cd:ef:12:66:5d:86:4a-1-irrigation_end_time", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Sensor", + "translation_key": "irrigation_end_time", + "translation_placeholders": null, + "device_class": "timestamp", + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:66:5d:86:4a", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "Sensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Irrigation start time", + "unique_id": "ab:cd:ef:12:66:5d:86:4a-1-irrigation_start_time", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Sensor", + "translation_key": "irrigation_start_time", + "translation_placeholders": null, + "device_class": "timestamp", + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:66:5d:86:4a", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "Sensor", + "available": true, + "state": null + } + } + ], + "switch": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:66:5d:86:4a-1", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "Switch", + "translation_key": "switch", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": true, + "device_ieee": "ab:cd:ef:12:66:5d:86:4a", + "endpoint_id": 1, + "available": true, + "group_id": null + }, + "state": { + "class_name": "Switch", + "state": false, + "available": true + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:66:5d:86:4a-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:66:5d:86:4a", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": "0x00000049", + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/tze204-81yrt3lo-ts0601.json b/tests/data/legacy_devices/tze204-81yrt3lo-ts0601.json new file mode 100644 index 000000000..12be674f3 --- /dev/null +++ b/tests/data/legacy_devices/tze204-81yrt3lo-ts0601.json @@ -0,0 +1,204 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:22:09:db:75", + "nwk": "0xAAB5", + "manufacturer": "_TZE204_81yrt3lo", + "model": "TS0601", + "friendly_manufacturer": "_TZE204_81yrt3lo", + "friendly_model": "TS0601", + "name": "_TZE204_81yrt3lo TS0601", + "quirk_applied": false, + "quirk_class": "zigpy.device.Device", + "exposes_features": [], + "manufacturer_code": 4417, + "power_source": "Mains", + "lqi": null, + "rssi": null, + "last_seen": "2024-04-10T15:38:05", + "available": true, + "device_type": "Router", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "Router", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 142, + "manufacturer_code": 4417, + "maximum_buffer_size": 66, + "maximum_incoming_transfer_size": 66, + "server_mask": 10752, + "maximum_outgoing_transfer_size": 66, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "SMART_PLUG", + "id": 81 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "_TZE204_81yrt3lo" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "TS0601" + } + ] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0005", + "endpoint_attribute": "scenes", + "attributes": [] + }, + { + "cluster_id": "0xef00", + "endpoint_attribute": null, + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x000a", + "endpoint_attribute": "time", + "attributes": [] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [] + } + ] + }, + "242": { + "profile_id": 41440, + "device_type": { + "name": "PROXY_BASIC", + "id": 97 + }, + "in_clusters": [], + "out_clusters": [ + { + "cluster_id": "0x0021", + "endpoint_attribute": "green_power", + "attributes": [] + } + ] + } + }, + "zha_lib_entities": { + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:22:09:db:75-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:22:09:db:75", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:22:09:db:75-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:22:09:db:75", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:22:09:db:75-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:22:09:db:75", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": null, + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/tze204-9yapgbuv-ts0601-0x00000049.json b/tests/data/legacy_devices/tze204-9yapgbuv-ts0601-0x00000049.json new file mode 100644 index 000000000..a1f4cab89 --- /dev/null +++ b/tests/data/legacy_devices/tze204-9yapgbuv-ts0601-0x00000049.json @@ -0,0 +1,360 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:3f:d8:c2:76", + "nwk": "0x0D38", + "manufacturer": "_TZE204_9yapgbuv", + "model": "TS0601", + "friendly_manufacturer": "_TZE204_9yapgbuv", + "friendly_model": "TS0601", + "name": "_TZE204_9yapgbuv TS0601", + "quirk_applied": true, + "quirk_class": "zhaquirks.tuya.builder:(_TZE200_upagmta9 / TS0601)", + "exposes_features": [], + "manufacturer_code": 4417, + "power_source": "Battery or Unknown", + "lqi": null, + "rssi": null, + "last_seen": "2024-04-14T18:16:45+00:00", + "available": true, + "device_type": "EndDevice", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "EndDevice", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 128, + "manufacturer_code": 4417, + "maximum_buffer_size": 66, + "maximum_incoming_transfer_size": 66, + "server_mask": 10752, + "maximum_outgoing_transfer_size": 66, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "SMART_PLUG", + "id": 81 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0001", + "name": "app_version", + "zcl_type": "uint8", + "value": 73 + }, + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "_TZE204_9yapgbuv" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "TS0601" + } + ] + }, + { + "cluster_id": "0x0001", + "endpoint_attribute": "power", + "attributes": [ + { + "id": "0x0033", + "name": "battery_quantity", + "zcl_type": "uint8", + "value": 2 + }, + { + "id": "0x0034", + "name": "battery_rated_voltage", + "zcl_type": "uint8", + "value": 15 + }, + { + "id": "0x0031", + "name": "battery_size", + "zcl_type": "enum8", + "value": 4 + } + ] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0005", + "endpoint_attribute": "scenes", + "attributes": [] + }, + { + "cluster_id": "0x0402", + "endpoint_attribute": "temperature", + "attributes": [] + }, + { + "cluster_id": "0x0405", + "endpoint_attribute": "humidity", + "attributes": [] + }, + { + "cluster_id": "0xef00", + "endpoint_attribute": "tuya_manufacturer", + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x000a", + "endpoint_attribute": "time", + "attributes": [] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [ + { + "id": "0x0002", + "name": "current_file_version", + "zcl_type": "uint32", + "value": 73 + } + ] + } + ] + } + }, + "zha_lib_entities": { + "select": [ + { + "info_object": { + "fallback_name": "Display unit", + "unique_id": "ab:cd:ef:12:3f:d8:c2:76-1-display_unit", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "ZCLEnumSelectEntity", + "translation_key": "display_unit", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:3f:d8:c2:76", + "endpoint_id": 1, + "available": true, + "group_id": null, + "enum": "TuyaTempUnitConvert", + "options": [ + "Celsius", + "Fahrenheit" + ] + }, + "state": { + "class_name": "ZCLEnumSelectEntity", + "available": true, + "state": null + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:3f:d8:c2:76-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:3f:d8:c2:76", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:3f:d8:c2:76-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:3f:d8:c2:76", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:3f:d8:c2:76-1-1", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Battery", + "translation_key": null, + "translation_placeholders": null, + "device_class": "battery", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:3f:d8:c2:76", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 0, + "unit": "%" + }, + "state": { + "class_name": "Battery", + "available": true, + "state": null, + "battery_size": "AAA", + "battery_quantity": 2 + }, + "extra_state_attributes": [ + "battery_quantity", + "battery_size", + "battery_voltage" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:3f:d8:c2:76-1-1026", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Temperature", + "translation_key": null, + "translation_placeholders": null, + "device_class": "temperature", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:3f:d8:c2:76", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "\u00b0C" + }, + "state": { + "class_name": "Temperature", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:3f:d8:c2:76-1-1029", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Humidity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "humidity", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:3f:d8:c2:76", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "%" + }, + "state": { + "class_name": "Humidity", + "available": true, + "state": null + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:3f:d8:c2:76-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:3f:d8:c2:76", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": "0x00000049", + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/tze204-aoclfnxz-ts0601.json b/tests/data/legacy_devices/tze204-aoclfnxz-ts0601.json new file mode 100644 index 000000000..cdec488e5 --- /dev/null +++ b/tests/data/legacy_devices/tze204-aoclfnxz-ts0601.json @@ -0,0 +1,240 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:2d:91:c5:14", + "nwk": "0x8611", + "manufacturer": "_TZE204_aoclfnxz", + "model": "TS0601", + "friendly_manufacturer": "_TZE204_aoclfnxz", + "friendly_model": "TS0601", + "name": "_TZE204_aoclfnxz TS0601", + "quirk_applied": false, + "quirk_class": "zigpy.device.Device", + "exposes_features": [], + "manufacturer_code": 4417, + "power_source": "Mains", + "lqi": null, + "rssi": null, + "last_seen": "2023-11-02T13:55:27", + "available": true, + "device_type": "Router", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "Router", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 142, + "manufacturer_code": 4417, + "maximum_buffer_size": 66, + "maximum_incoming_transfer_size": 66, + "server_mask": 10752, + "maximum_outgoing_transfer_size": 66, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "SMART_PLUG", + "id": 81 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0001", + "name": "app_version", + "zcl_type": "uint8", + "value": 74 + }, + { + "id": "0x0012", + "name": "device_enabled", + "zcl_type": "bool", + "unsupported": true + }, + { + "id": "0x0008", + "name": "generic_device_class", + "zcl_type": "enum8", + "unsupported": true + }, + { + "id": "0x0009", + "name": "generic_device_type", + "zcl_type": "enum8", + "unsupported": true + }, + { + "id": "0x0010", + "name": "location_desc", + "zcl_type": "string", + "unsupported": true + }, + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "_TZE204_aoclfnxz" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "TS0601" + }, + { + "id": "0x4000", + "name": "sw_build_id", + "zcl_type": "string", + "unsupported": true + } + ] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0005", + "endpoint_attribute": "scenes", + "attributes": [] + }, + { + "cluster_id": "0xef00", + "endpoint_attribute": null, + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x000a", + "endpoint_attribute": "time", + "attributes": [] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [] + } + ] + }, + "242": { + "profile_id": 41440, + "device_type": { + "name": "PROXY_BASIC", + "id": 97 + }, + "in_clusters": [], + "out_clusters": [ + { + "cluster_id": "0x0021", + "endpoint_attribute": "green_power", + "attributes": [] + } + ] + } + }, + "zha_lib_entities": { + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:2d:91:c5:14-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:2d:91:c5:14", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:2d:91:c5:14-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:2d:91:c5:14", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:2d:91:c5:14-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:2d:91:c5:14", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": null, + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/tze204-nklqjk62-ts0601.json b/tests/data/legacy_devices/tze204-nklqjk62-ts0601.json new file mode 100644 index 000000000..33dc1ca8c --- /dev/null +++ b/tests/data/legacy_devices/tze204-nklqjk62-ts0601.json @@ -0,0 +1,294 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:49:b7:13:b6", + "nwk": "0x0E17", + "manufacturer": "_TZE204_nklqjk62", + "model": "TS0601", + "friendly_manufacturer": "_TZE204_nklqjk62", + "friendly_model": "TS0601", + "name": "_TZE204_nklqjk62 TS0601", + "quirk_applied": false, + "quirk_class": "zigpy.device.Device", + "exposes_features": [], + "manufacturer_code": 4417, + "power_source": "Mains", + "lqi": null, + "rssi": null, + "last_seen": "2023-11-14T19:33:01", + "available": true, + "device_type": "Router", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "Router", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 142, + "manufacturer_code": 4417, + "maximum_buffer_size": 66, + "maximum_incoming_transfer_size": 66, + "server_mask": 10752, + "maximum_outgoing_transfer_size": 66, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "SMART_PLUG", + "id": 81 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0001", + "name": "app_version", + "zcl_type": "uint8", + "value": 74 + } + ] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0005", + "endpoint_attribute": "scenes", + "attributes": [] + }, + { + "cluster_id": "0x0006", + "endpoint_attribute": "on_off", + "attributes": [ + { + "id": "0x0000", + "name": "on_off", + "zcl_type": "bool", + "unsupported": true + }, + { + "id": "0x4003", + "name": "start_up_on_off", + "zcl_type": "enum8", + "unsupported": true + } + ] + }, + { + "cluster_id": "0xef00", + "endpoint_attribute": null, + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x000a", + "endpoint_attribute": "time", + "attributes": [] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [] + } + ] + }, + "2": { + "profile_id": 260, + "device_type": { + "name": "IAS_ZONE", + "id": 1026 + }, + "in_clusters": [ + { + "cluster_id": "0x0500", + "endpoint_attribute": "ias_zone", + "attributes": [ + { + "id": "0x0010", + "name": "cie_addr", + "zcl_type": "EUI64", + "value": [ + 50, + 79, + 50, + 2, + 0, + 141, + 21, + 0 + ] + }, + { + "id": "0x0000", + "name": "zone_state", + "zcl_type": "enum8", + "unsupported": true + }, + { + "id": "0x0002", + "name": "zone_status", + "zcl_type": "map16", + "unsupported": true + }, + { + "id": "0x0001", + "name": "zone_type", + "zcl_type": "enum16", + "value": 21 + } + ] + } + ], + "out_clusters": [] + }, + "242": { + "profile_id": 41440, + "device_type": { + "name": "PROXY_BASIC", + "id": 97 + }, + "in_clusters": [], + "out_clusters": [ + { + "cluster_id": "0x0021", + "endpoint_attribute": "green_power", + "attributes": [] + } + ] + } + }, + "zha_lib_entities": { + "binary_sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:49:b7:13:b6-2-1280", + "migrate_unique_ids": [], + "platform": "binary_sensor", + "class_name": "IASZone", + "translation_key": null, + "translation_placeholders": null, + "device_class": "opening", + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": true, + "device_ieee": "ab:cd:ef:12:49:b7:13:b6", + "endpoint_id": 2, + "available": true, + "group_id": null, + "attribute_name": "zone_status" + }, + "state": { + "class_name": "IASZone", + "available": true, + "state": false + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:49:b7:13:b6-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:49:b7:13:b6", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:49:b7:13:b6-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:49:b7:13:b6", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:49:b7:13:b6-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:49:b7:13:b6", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": null, + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/tze204-nlrfgpny-ts0601-0x0000004a.json b/tests/data/legacy_devices/tze204-nlrfgpny-ts0601-0x0000004a.json new file mode 100644 index 000000000..22dfa4b19 --- /dev/null +++ b/tests/data/legacy_devices/tze204-nlrfgpny-ts0601-0x0000004a.json @@ -0,0 +1,529 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:fa:46:b7:f3", + "nwk": "0x1C6E", + "manufacturer": "_TZE204_nlrfgpny", + "model": "TS0601", + "friendly_manufacturer": "_TZE204_nlrfgpny", + "friendly_model": "TS0601", + "name": "_TZE204_nlrfgpny TS0601", + "quirk_applied": true, + "quirk_class": "zhaquirks.tuya.builder:(_TZE204_nlrfgpny / TS0601)", + "exposes_features": [], + "manufacturer_code": 4417, + "power_source": "Battery or Unknown", + "lqi": null, + "rssi": null, + "last_seen": "2024-07-13T01:34:11+00:00", + "available": true, + "device_type": "EndDevice", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "EndDevice", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 128, + "manufacturer_code": 4417, + "maximum_buffer_size": 66, + "maximum_incoming_transfer_size": 66, + "server_mask": 10752, + "maximum_outgoing_transfer_size": 66, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "SMART_PLUG", + "id": 81 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0013", + "name": "alarm_mask", + "zcl_type": "map8", + "unsupported": true + }, + { + "id": "0x0001", + "name": "app_version", + "zcl_type": "uint8", + "value": 74 + }, + { + "id": "0x0012", + "name": "device_enabled", + "zcl_type": "bool", + "unsupported": true + }, + { + "id": "0x0009", + "name": "generic_device_type", + "zcl_type": "enum8", + "unsupported": true + }, + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "_TZE204_nlrfgpny" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "TS0601" + } + ] + }, + { + "cluster_id": "0x0001", + "endpoint_attribute": "power", + "attributes": [ + { + "id": "0x0033", + "name": "battery_quantity", + "zcl_type": "uint8", + "value": 1 + }, + { + "id": "0x0034", + "name": "battery_rated_voltage", + "zcl_type": "uint8", + "value": 30 + }, + { + "id": "0x0031", + "name": "battery_size", + "zcl_type": "enum8", + "value": 2 + } + ] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0005", + "endpoint_attribute": "scenes", + "attributes": [] + }, + { + "cluster_id": "0xef00", + "endpoint_attribute": "tuya_manufacturer", + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x000a", + "endpoint_attribute": "time", + "attributes": [] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [ + { + "id": "0x0002", + "name": "current_file_version", + "zcl_type": "uint32", + "value": 74 + } + ] + } + ] + } + }, + "zha_lib_entities": { + "binary_sensor": [ + { + "info_object": { + "fallback_name": "Charging", + "unique_id": "ab:cd:ef:12:fa:46:b7:f3-1-charge_state", + "migrate_unique_ids": [], + "platform": "binary_sensor", + "class_name": "BinarySensor", + "translation_key": null, + "translation_placeholders": null, + "device_class": "battery_charging", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:fa:46:b7:f3", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "charge_state" + }, + "state": { + "class_name": "BinarySensor", + "available": true, + "state": false + } + }, + { + "info_object": { + "fallback_name": "Tamper", + "unique_id": "ab:cd:ef:12:fa:46:b7:f3-1-tamper", + "migrate_unique_ids": [], + "platform": "binary_sensor", + "class_name": "BinarySensor", + "translation_key": null, + "translation_placeholders": null, + "device_class": "tamper", + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:fa:46:b7:f3", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "tamper" + }, + "state": { + "class_name": "BinarySensor", + "available": true, + "state": false + } + } + ], + "number": [ + { + "info_object": { + "fallback_name": "Alarm duration", + "unique_id": "ab:cd:ef:12:fa:46:b7:f3-1-alarm_duration", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "alarm_duration", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:fa:46:b7:f3", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 60, + "native_min_value": 1, + "native_step": 1, + "native_unit_of_measurement": "min" + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": null + } + } + ], + "select": [ + { + "info_object": { + "fallback_name": "Alarm mode", + "unique_id": "ab:cd:ef:12:fa:46:b7:f3-1-alarm_mode", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "ZCLEnumSelectEntity", + "translation_key": "alarm_mode", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:fa:46:b7:f3", + "endpoint_id": 1, + "available": true, + "group_id": null, + "enum": "TuyaSirenState", + "options": [ + "Sound", + "Light", + "Sound and light", + "Normal" + ] + }, + "state": { + "class_name": "ZCLEnumSelectEntity", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": "Alarm ringtone", + "unique_id": "ab:cd:ef:12:fa:46:b7:f3-1-alarm_ringtone", + "migrate_unique_ids": [], + "platform": "select", + "class_name": "ZCLEnumSelectEntity", + "translation_key": "alarm_ringtone", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:fa:46:b7:f3", + "endpoint_id": 1, + "available": true, + "group_id": null, + "enum": "TuyaSirenRingtone", + "options": [ + "Ringtone 01", + "Ringtone 02", + "Ringtone 03" + ] + }, + "state": { + "class_name": "ZCLEnumSelectEntity", + "available": true, + "state": null + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:fa:46:b7:f3-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:fa:46:b7:f3", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:fa:46:b7:f3-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:fa:46:b7:f3", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:fa:46:b7:f3-1-1", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Battery", + "translation_key": null, + "translation_placeholders": null, + "device_class": "battery", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:fa:46:b7:f3", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 0, + "unit": "%" + }, + "state": { + "class_name": "Battery", + "available": true, + "state": null, + "battery_size": "Other", + "battery_quantity": 1 + }, + "extra_state_attributes": [ + "battery_quantity", + "battery_size", + "battery_voltage" + ] + }, + { + "info_object": { + "fallback_name": "Alarm state", + "unique_id": "ab:cd:ef:12:fa:46:b7:f3-1-alarm_state", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "EnumSensor", + "translation_key": "alarm_state", + "translation_placeholders": null, + "device_class": "enum", + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:fa:46:b7:f3", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "EnumSensor", + "available": true, + "state": null + } + } + ], + "switch": [ + { + "info_object": { + "fallback_name": "Enable tamper alarm", + "unique_id": "ab:cd:ef:12:fa:46:b7:f3-1-enable_tamper_alarm", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "ConfigurableAttributeSwitch", + "translation_key": "enable_tamper_alarm", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:fa:46:b7:f3", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "enable_tamper_alarm", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 0, + "on_value": 1 + }, + "state": { + "class_name": "ConfigurableAttributeSwitch", + "available": true, + "state": false, + "inverted": false + } + }, + { + "info_object": { + "fallback_name": "Siren on", + "unique_id": "ab:cd:ef:12:fa:46:b7:f3-1-siren_on", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "ConfigurableAttributeSwitch", + "translation_key": "siren_on", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:fa:46:b7:f3", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "siren_on", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 0, + "on_value": 1 + }, + "state": { + "class_name": "ConfigurableAttributeSwitch", + "available": true, + "state": false, + "inverted": false + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:fa:46:b7:f3-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:fa:46:b7:f3", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": "0x0000004a", + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/tze204-pcdmj88b-ts0601.json b/tests/data/legacy_devices/tze204-pcdmj88b-ts0601.json new file mode 100644 index 000000000..9d15a33d9 --- /dev/null +++ b/tests/data/legacy_devices/tze204-pcdmj88b-ts0601.json @@ -0,0 +1,226 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:9d:ba:f4:54", + "nwk": "0xF92E", + "manufacturer": "_TZE204_pcdmj88b", + "model": "TS0601", + "friendly_manufacturer": "_TZE204_pcdmj88b", + "friendly_model": "TS0601", + "name": "_TZE204_pcdmj88b TS0601", + "quirk_applied": false, + "quirk_class": "zigpy.device.Device", + "exposes_features": [], + "manufacturer_code": 4417, + "power_source": "Battery or Unknown", + "lqi": null, + "rssi": null, + "last_seen": "2024-01-30T14:22:58", + "available": true, + "device_type": "EndDevice", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "EndDevice", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 128, + "manufacturer_code": 4417, + "maximum_buffer_size": 66, + "maximum_incoming_transfer_size": 66, + "server_mask": 10752, + "maximum_outgoing_transfer_size": 66, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "SMART_PLUG", + "id": 81 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0001", + "name": "app_version", + "zcl_type": "uint8", + "value": 73 + }, + { + "id": "0x0012", + "name": "device_enabled", + "zcl_type": "bool", + "unsupported": true + }, + { + "id": "0x0003", + "name": "hw_version", + "zcl_type": "uint8", + "value": 1 + }, + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "_TZE204_pcdmj88b" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "TS0601" + }, + { + "id": "0xfffe", + "name": "reporting_status", + "zcl_type": "enum8", + "value": 0 + }, + { + "id": "0x000d", + "name": "serial_number", + "zcl_type": "string", + "unsupported": true + } + ] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0005", + "endpoint_attribute": "scenes", + "attributes": [] + }, + { + "cluster_id": "0xef00", + "endpoint_attribute": null, + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x000a", + "endpoint_attribute": "time", + "attributes": [] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [ + { + "id": "0xfffd", + "name": "cluster_revision", + "zcl_type": "uint16", + "value": 3 + } + ] + } + ] + } + }, + "zha_lib_entities": { + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:9d:ba:f4:54-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:9d:ba:f4:54", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:9d:ba:f4:54-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:9d:ba:f4:54", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:9d:ba:f4:54-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:9d:ba:f4:54", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": null, + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/tze204-pxbjch8m-ts0601.json b/tests/data/legacy_devices/tze204-pxbjch8m-ts0601.json new file mode 100644 index 000000000..2bde7cee8 --- /dev/null +++ b/tests/data/legacy_devices/tze204-pxbjch8m-ts0601.json @@ -0,0 +1,210 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:f5:71:53:6a", + "nwk": "0xD78B", + "manufacturer": "_TZE204_pxbjch8m", + "model": "TS0601", + "friendly_manufacturer": "_TZE204_pxbjch8m", + "friendly_model": "TS0601", + "name": "_TZE204_pxbjch8m TS0601", + "quirk_applied": false, + "quirk_class": "zigpy.device.Device", + "exposes_features": [], + "manufacturer_code": 4417, + "power_source": "Mains", + "lqi": null, + "rssi": null, + "last_seen": "2023-06-20T08:06:16", + "available": true, + "device_type": "Router", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "Router", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 142, + "manufacturer_code": 4417, + "maximum_buffer_size": 66, + "maximum_incoming_transfer_size": 66, + "server_mask": 10752, + "maximum_outgoing_transfer_size": 66, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "SMART_PLUG", + "id": 81 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0001", + "name": "app_version", + "zcl_type": "uint8", + "value": 74 + }, + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "_TZE204_pxbjch8m" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "TS0601" + } + ] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0005", + "endpoint_attribute": "scenes", + "attributes": [] + }, + { + "cluster_id": "0xef00", + "endpoint_attribute": null, + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x000a", + "endpoint_attribute": "time", + "attributes": [] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [] + } + ] + }, + "242": { + "profile_id": 41440, + "device_type": { + "name": "PROXY_BASIC", + "id": 97 + }, + "in_clusters": [], + "out_clusters": [ + { + "cluster_id": "0x0021", + "endpoint_attribute": "green_power", + "attributes": [] + } + ] + } + }, + "zha_lib_entities": { + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:f5:71:53:6a-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:f5:71:53:6a", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:f5:71:53:6a-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:f5:71:53:6a", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:f5:71:53:6a-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:f5:71:53:6a", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": null, + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/tze204-qasjif9e-ts0601.json b/tests/data/legacy_devices/tze204-qasjif9e-ts0601.json new file mode 100644 index 000000000..e84441f9f --- /dev/null +++ b/tests/data/legacy_devices/tze204-qasjif9e-ts0601.json @@ -0,0 +1,525 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:79:99:09:90", + "nwk": "0xE9CE", + "manufacturer": "_TZE204_qasjif9e", + "model": "TS0601", + "friendly_manufacturer": "_TZE204_qasjif9e", + "friendly_model": "TS0601", + "name": "_TZE204_qasjif9e TS0601", + "quirk_applied": true, + "quirk_class": "zhaquirks.tuya.builder:(_TZE204_qasjif9e / TS0601)", + "exposes_features": [], + "manufacturer_code": 4417, + "power_source": "Mains", + "lqi": null, + "rssi": null, + "last_seen": "2024-12-25T17:09:39+00:00", + "available": true, + "device_type": "Router", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "Router", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 142, + "manufacturer_code": 4417, + "maximum_buffer_size": 66, + "maximum_incoming_transfer_size": 66, + "server_mask": 10752, + "maximum_outgoing_transfer_size": 66, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "SMART_PLUG", + "id": 81 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0001", + "name": "app_version", + "zcl_type": "uint8", + "value": 74 + }, + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "_TZE204_qasjif9e" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "TS0601" + } + ] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0005", + "endpoint_attribute": "scenes", + "attributes": [] + }, + { + "cluster_id": "0x0400", + "endpoint_attribute": "illuminance", + "attributes": [ + { + "id": "0x0004", + "name": "light_sensor_type", + "zcl_type": "enum8", + "value": 0 + }, + { + "id": "0x0000", + "name": "measured_value", + "zcl_type": "uint16", + "value": 0 + } + ] + }, + { + "cluster_id": "0x0406", + "endpoint_attribute": "occupancy", + "attributes": [ + { + "id": "0x0000", + "name": "occupancy", + "zcl_type": "map8", + "value": false + } + ] + }, + { + "cluster_id": "0xef00", + "endpoint_attribute": "tuya_manufacturer", + "attributes": [ + { + "id": "0xef65", + "name": "detection_delay", + "zcl_type": "uint16", + "value": 1 + }, + { + "id": "0xef04", + "name": "detection_distance_max", + "zcl_type": "uint16", + "value": 9 + }, + { + "id": "0xef03", + "name": "detection_distance_min", + "zcl_type": "uint16", + "value": 0 + }, + { + "id": "0xef09", + "name": "distance", + "zcl_type": "uint16", + "value": 0 + }, + { + "id": "0xef66", + "name": "fading_time", + "zcl_type": "uint16", + "value": 20 + }, + { + "id": "0xef00", + "name": "mcu_version", + "zcl_type": "uint48", + "value": "1.0.2" + }, + { + "id": "0xef02", + "name": "move_sensitivity", + "zcl_type": "uint16", + "value": 0 + } + ] + } + ], + "out_clusters": [ + { + "cluster_id": "0x000a", + "endpoint_attribute": "time", + "attributes": [] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [] + } + ] + }, + "242": { + "profile_id": 41440, + "device_type": { + "name": "PROXY_BASIC", + "id": 97 + }, + "in_clusters": [], + "out_clusters": [ + { + "cluster_id": "0x0021", + "endpoint_attribute": "green_power", + "attributes": [] + } + ] + } + }, + "zha_lib_entities": { + "binary_sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:79:99:09:90-1-1030", + "migrate_unique_ids": [], + "platform": "binary_sensor", + "class_name": "Occupancy", + "translation_key": null, + "translation_placeholders": null, + "device_class": "occupancy", + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": true, + "device_ieee": "ab:cd:ef:12:79:99:09:90", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "occupancy" + }, + "state": { + "class_name": "Occupancy", + "available": true, + "state": false + } + } + ], + "number": [ + { + "info_object": { + "fallback_name": "Detection delay", + "unique_id": "ab:cd:ef:12:79:99:09:90-1-detection_delay", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "detection_delay", + "translation_placeholders": null, + "device_class": "duration", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:79:99:09:90", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 10, + "native_min_value": 1, + "native_step": 0.1, + "native_unit_of_measurement": "s" + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": 0.1 + } + }, + { + "info_object": { + "fallback_name": "Maximum range", + "unique_id": "ab:cd:ef:12:79:99:09:90-1-detection_distance_max", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "detection_distance_max", + "translation_placeholders": null, + "device_class": "distance", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:79:99:09:90", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 9.0, + "native_min_value": 0.75, + "native_step": 0.75, + "native_unit_of_measurement": "m" + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": 0.09 + } + }, + { + "info_object": { + "fallback_name": "Minimum range", + "unique_id": "ab:cd:ef:12:79:99:09:90-1-detection_distance_min", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "detection_distance_min", + "translation_placeholders": null, + "device_class": "distance", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:79:99:09:90", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 8.25, + "native_min_value": 0, + "native_step": 0.75, + "native_unit_of_measurement": "m" + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": 0.0 + } + }, + { + "info_object": { + "fallback_name": "Fading time", + "unique_id": "ab:cd:ef:12:79:99:09:90-1-fading_time", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "fading_time", + "translation_placeholders": null, + "device_class": "duration", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:79:99:09:90", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 1500, + "native_min_value": 1, + "native_step": 0.1, + "native_unit_of_measurement": "s" + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": 2.0 + } + }, + { + "info_object": { + "fallback_name": "Motion sensitivity", + "unique_id": "ab:cd:ef:12:79:99:09:90-1-move_sensitivity", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "move_sensitivity", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:79:99:09:90", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 10, + "native_min_value": 0, + "native_step": 1, + "native_unit_of_measurement": null + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": 0 + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:79:99:09:90-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:79:99:09:90", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:79:99:09:90-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:79:99:09:90", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:79:99:09:90-1-1024", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Illuminance", + "translation_key": null, + "translation_placeholders": null, + "device_class": "illuminance", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:79:99:09:90", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "lx" + }, + "state": { + "class_name": "Illuminance", + "available": true, + "state": 0 + } + }, + { + "info_object": { + "fallback_name": "Target distance", + "unique_id": "ab:cd:ef:12:79:99:09:90-1-distance", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Sensor", + "translation_key": "distance", + "translation_placeholders": null, + "device_class": "distance", + "state_class": "measurement", + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:79:99:09:90", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "m" + }, + "state": { + "class_name": "Sensor", + "available": true, + "state": 0.0 + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:79:99:09:90-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:79:99:09:90", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": null, + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/tze284-7zazvlyn-ts0601.json b/tests/data/legacy_devices/tze284-7zazvlyn-ts0601.json new file mode 100644 index 000000000..c8d6351d7 --- /dev/null +++ b/tests/data/legacy_devices/tze284-7zazvlyn-ts0601.json @@ -0,0 +1,207 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:42:87:b0:e0", + "nwk": "0x1A74", + "manufacturer": "_TZE284_7zazvlyn", + "model": "TS0601", + "friendly_manufacturer": "_TZE284_7zazvlyn", + "friendly_model": "TS0601", + "name": "_TZE284_7zazvlyn TS0601", + "quirk_applied": false, + "quirk_class": "zigpy.device.Device", + "exposes_features": [], + "manufacturer_code": 4098, + "power_source": "Mains", + "lqi": null, + "rssi": null, + "last_seen": "2025-03-19T15:49:38", + "available": true, + "device_type": "Router", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "Router", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 142, + "manufacturer_code": 4098, + "maximum_buffer_size": 82, + "maximum_incoming_transfer_size": 82, + "server_mask": 11264, + "maximum_outgoing_transfer_size": 82, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "SMART_PLUG", + "id": 81 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0001", + "name": "app_version", + "zcl_type": "uint8", + "value": 69 + }, + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "_TZE284_7zazvlyn" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "TS0601" + } + ] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0005", + "endpoint_attribute": "scenes", + "attributes": [] + }, + { + "cluster_id": "0xed00", + "endpoint_attribute": null, + "attributes": [] + }, + { + "cluster_id": "0xef00", + "endpoint_attribute": null, + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x000a", + "endpoint_attribute": "time", + "attributes": [] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [ + { + "id": "0x0002", + "name": "current_file_version", + "zcl_type": "uint32", + "unsupported": true + } + ] + } + ] + } + }, + "zha_lib_entities": { + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:42:87:b0:e0-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:42:87:b0:e0", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:42:87:b0:e0-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:42:87:b0:e0", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:42:87:b0:e0-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:42:87:b0:e0", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": null, + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/tze284-ne4pikwm-ts0601-0x0000004d.json b/tests/data/legacy_devices/tze284-ne4pikwm-ts0601-0x0000004d.json new file mode 100644 index 000000000..8105dd05c --- /dev/null +++ b/tests/data/legacy_devices/tze284-ne4pikwm-ts0601-0x0000004d.json @@ -0,0 +1,735 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:06:a7:a1:e8", + "nwk": "0xB3B9", + "manufacturer": "_TZE284_ne4pikwm", + "model": "TS0601", + "friendly_manufacturer": "_TZE284_ne4pikwm", + "friendly_model": "TS0601", + "name": "_TZE284_ne4pikwm TS0601", + "quirk_applied": true, + "quirk_class": "zhaquirks.tuya.builder:(_TZE200_ne4pikwm / TS0601)", + "exposes_features": [], + "manufacturer_code": 4417, + "power_source": "Battery or Unknown", + "lqi": null, + "rssi": null, + "last_seen": "2025-03-04T06:20:03+00:00", + "available": true, + "device_type": "EndDevice", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "EndDevice", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 128, + "manufacturer_code": 4417, + "maximum_buffer_size": 66, + "maximum_incoming_transfer_size": 66, + "server_mask": 10752, + "maximum_outgoing_transfer_size": 66, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "SMART_PLUG", + "id": 81 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0001", + "name": "app_version", + "zcl_type": "uint8", + "value": 77 + }, + { + "id": "0xfffd", + "name": "cluster_revision", + "zcl_type": "uint16", + "value": 2 + }, + { + "id": "0x0008", + "name": "generic_device_class", + "zcl_type": "enum8", + "unsupported": true + }, + { + "id": "0x0009", + "name": "generic_device_type", + "zcl_type": "enum8", + "unsupported": true + }, + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "_TZE284_ne4pikwm" + }, + { + "id": "0x000c", + "name": "manufacturer_version_details", + "zcl_type": "string", + "unsupported": true + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "TS0601" + }, + { + "id": "0x000a", + "name": "product_code", + "zcl_type": "octstr", + "unsupported": true + }, + { + "id": "0x000e", + "name": "product_label", + "zcl_type": "string", + "unsupported": true + }, + { + "id": "0x000d", + "name": "serial_number", + "zcl_type": "string", + "unsupported": true + }, + { + "id": "0x0002", + "name": "stack_version", + "zcl_type": "uint8", + "value": 0 + } + ] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0005", + "endpoint_attribute": "scenes", + "attributes": [] + }, + { + "cluster_id": "0x0201", + "endpoint_attribute": "thermostat", + "attributes": [ + { + "id": "0x0004", + "name": "abs_max_heat_setpoint_limit", + "zcl_type": "int16", + "value": 3000 + }, + { + "id": "0x0003", + "name": "abs_min_heat_setpoint_limit", + "zcl_type": "int16", + "value": 500 + }, + { + "id": "0x001b", + "name": "ctrl_sequence_of_oper", + "zcl_type": "enum8", + "value": 2 + }, + { + "id": "0x0000", + "name": "local_temperature", + "zcl_type": "int16", + "value": 1930 + }, + { + "id": "0x0010", + "name": "local_temperature_calibration", + "zcl_type": "int8", + "unsupported": true + }, + { + "id": "0x0016", + "name": "max_heat_setpoint_limit", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x0015", + "name": "min_heat_setpoint_limit", + "zcl_type": "int16", + "unsupported": true + }, + { + "id": "0x0012", + "name": "occupied_heating_setpoint", + "zcl_type": "int16", + "value": 2000 + }, + { + "id": "0x0008", + "name": "pi_heating_demand", + "zcl_type": "uint8", + "unsupported": true + }, + { + "id": "0x0029", + "name": "running_state", + "zcl_type": "map16", + "value": 1 + }, + { + "id": "0x0030", + "name": "setpoint_change_source", + "zcl_type": "enum8", + "unsupported": true + }, + { + "id": "0x0032", + "name": "setpoint_change_source_timestamp", + "zcl_type": "UTC", + "unsupported": true + }, + { + "id": "0x001c", + "name": "system_mode", + "zcl_type": "enum8", + "value": 4 + } + ] + }, + { + "cluster_id": "0xed00", + "endpoint_attribute": null, + "attributes": [] + }, + { + "cluster_id": "0xef00", + "endpoint_attribute": "tuya_manufacturer", + "attributes": [ + { + "id": "0xef6a", + "name": "away_mode", + "zcl_type": "bool", + "value": 0 + }, + { + "id": "0xef69", + "name": "battery_low", + "zcl_type": "bool", + "value": 0 + }, + { + "id": "0xef28", + "name": "child_lock", + "zcl_type": "bool", + "value": 0 + }, + { + "id": "0xef0a", + "name": "frost_protection", + "zcl_type": "bool", + "value": 1 + }, + { + "id": "0xef1b", + "name": "local_temperature_calibration", + "zcl_type": "int32", + "value": 0 + }, + { + "id": "0xef82", + "name": "scale_protection", + "zcl_type": "bool", + "value": 1 + }, + { + "id": "0xef6c", + "name": "schedule_mode", + "zcl_type": "bool", + "value": 0 + }, + { + "id": "0xef08", + "name": "window_detection", + "zcl_type": "bool", + "value": 1 + } + ] + } + ], + "out_clusters": [ + { + "cluster_id": "0x000a", + "endpoint_attribute": "time", + "attributes": [] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [ + { + "id": "0x0002", + "name": "current_file_version", + "zcl_type": "uint32", + "value": 77 + } + ] + } + ] + } + }, + "zha_lib_entities": { + "binary_sensor": [ + { + "info_object": { + "fallback_name": "Battery low", + "unique_id": "ab:cd:ef:12:06:a7:a1:e8-1-battery_low", + "migrate_unique_ids": [], + "platform": "binary_sensor", + "class_name": "BinarySensor", + "translation_key": null, + "translation_placeholders": null, + "device_class": "battery", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:06:a7:a1:e8", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "battery_low" + }, + "state": { + "class_name": "BinarySensor", + "available": true, + "state": false + } + } + ], + "climate": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:06:a7:a1:e8-1-513", + "migrate_unique_ids": [], + "platform": "climate", + "class_name": "Thermostat", + "translation_key": "thermostat", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": true, + "device_ieee": "ab:cd:ef:12:06:a7:a1:e8", + "endpoint_id": 1, + "available": true, + "group_id": null, + "max_temp": 30.0, + "min_temp": 5.0, + "supported_features": 385, + "fan_modes": null, + "preset_modes": [], + "hvac_modes": [ + "off", + "heat" + ] + }, + "state": { + "class_name": "Thermostat", + "available": true, + "current_temperature": 19.3, + "outdoor_temperature": null, + "target_temperature": 20.0, + "target_temperature_high": null, + "target_temperature_low": null, + "hvac_action": "heating", + "hvac_mode": "heat", + "preset_mode": "none", + "fan_mode": "auto", + "system_mode": "[4]/heat", + "occupancy": null, + "occupied_cooling_setpoint": null, + "occupied_heating_setpoint": 2000, + "pi_heating_demand": null, + "pi_cooling_demand": null, + "unoccupied_cooling_setpoint": null, + "unoccupied_heating_setpoint": null + }, + "extra_state_attributes": [ + "occupancy", + "occupied_cooling_setpoint", + "occupied_heating_setpoint", + "pi_cooling_demand", + "pi_heating_demand", + "system_mode", + "unoccupied_cooling_setpoint", + "unoccupied_heating_setpoint" + ] + } + ], + "number": [ + { + "info_object": { + "fallback_name": "Local temperature calibration", + "unique_id": "ab:cd:ef:12:06:a7:a1:e8-1-local_temperature_calibration", + "migrate_unique_ids": [], + "platform": "number", + "class_name": "NumberConfigurationEntity", + "translation_key": "local_temperature_calibration", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:06:a7:a1:e8", + "endpoint_id": 1, + "available": true, + "group_id": null, + "mode": "auto", + "native_max_value": 6, + "native_min_value": -6, + "native_step": 1, + "native_unit_of_measurement": "\u00b0C" + }, + "state": { + "class_name": "NumberConfigurationEntity", + "available": true, + "state": 0 + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:06:a7:a1:e8-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:06:a7:a1:e8", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:06:a7:a1:e8-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:06:a7:a1:e8", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:06:a7:a1:e8-1-513-hvac_action", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "ThermostatHVACAction", + "translation_key": "hvac_action", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:06:a7:a1:e8", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "ThermostatHVACAction", + "available": true, + "state": "heating" + } + } + ], + "switch": [ + { + "info_object": { + "fallback_name": "Away mode", + "unique_id": "ab:cd:ef:12:06:a7:a1:e8-1-away_mode", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "ConfigurableAttributeSwitch", + "translation_key": "away_mode", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:06:a7:a1:e8", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "away_mode", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 0, + "on_value": 1 + }, + "state": { + "class_name": "ConfigurableAttributeSwitch", + "available": true, + "state": false, + "inverted": false + } + }, + { + "info_object": { + "fallback_name": "Child lock", + "unique_id": "ab:cd:ef:12:06:a7:a1:e8-1-child_lock", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "ConfigurableAttributeSwitch", + "translation_key": "child_lock", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:06:a7:a1:e8", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "child_lock", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 0, + "on_value": 1 + }, + "state": { + "class_name": "ConfigurableAttributeSwitch", + "available": true, + "state": false, + "inverted": false + } + }, + { + "info_object": { + "fallback_name": "Frost protection", + "unique_id": "ab:cd:ef:12:06:a7:a1:e8-1-frost_protection", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "ConfigurableAttributeSwitch", + "translation_key": "frost_protection", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:06:a7:a1:e8", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "frost_protection", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 0, + "on_value": 1 + }, + "state": { + "class_name": "ConfigurableAttributeSwitch", + "available": true, + "state": true, + "inverted": false + } + }, + { + "info_object": { + "fallback_name": "Scale protection", + "unique_id": "ab:cd:ef:12:06:a7:a1:e8-1-scale_protection", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "ConfigurableAttributeSwitch", + "translation_key": "scale_protection", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:06:a7:a1:e8", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "scale_protection", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 0, + "on_value": 1 + }, + "state": { + "class_name": "ConfigurableAttributeSwitch", + "available": true, + "state": true, + "inverted": false + } + }, + { + "info_object": { + "fallback_name": "Schedule mode", + "unique_id": "ab:cd:ef:12:06:a7:a1:e8-1-schedule_mode", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "ConfigurableAttributeSwitch", + "translation_key": "schedule_mode", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:06:a7:a1:e8", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "schedule_mode", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 0, + "on_value": 1 + }, + "state": { + "class_name": "ConfigurableAttributeSwitch", + "available": true, + "state": false, + "inverted": false + } + }, + { + "info_object": { + "fallback_name": "Open window detection", + "unique_id": "ab:cd:ef:12:06:a7:a1:e8-1-window_detection", + "migrate_unique_ids": [], + "platform": "switch", + "class_name": "ConfigurableAttributeSwitch", + "translation_key": "window_detection", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:06:a7:a1:e8", + "endpoint_id": 1, + "available": true, + "group_id": null, + "attribute_name": "window_detection", + "invert_attribute_name": null, + "force_inverted": false, + "off_value": 0, + "on_value": 1 + }, + "state": { + "class_name": "ConfigurableAttributeSwitch", + "available": true, + "state": true, + "inverted": false + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:06:a7:a1:e8-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:06:a7:a1:e8", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": "0x0000004d", + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/tze284-znvwzxkq-ts0601.json b/tests/data/legacy_devices/tze284-znvwzxkq-ts0601.json new file mode 100644 index 000000000..582927030 --- /dev/null +++ b/tests/data/legacy_devices/tze284-znvwzxkq-ts0601.json @@ -0,0 +1,207 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:12:bb:1b:9d", + "nwk": "0x2DC5", + "manufacturer": "_TZE284_znvwzxkq", + "model": "TS0601", + "friendly_manufacturer": "_TZE284_znvwzxkq", + "friendly_model": "TS0601", + "name": "_TZE284_znvwzxkq TS0601", + "quirk_applied": false, + "quirk_class": "zigpy.device.Device", + "exposes_features": [], + "manufacturer_code": 4098, + "power_source": "Mains", + "lqi": null, + "rssi": null, + "last_seen": "2025-02-16T03:04:49", + "available": true, + "device_type": "Router", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "Router", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 142, + "manufacturer_code": 4098, + "maximum_buffer_size": 82, + "maximum_incoming_transfer_size": 82, + "server_mask": 11264, + "maximum_outgoing_transfer_size": 82, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "SMART_PLUG", + "id": 81 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0001", + "name": "app_version", + "zcl_type": "uint8", + "value": 74 + }, + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "_TZE284_znvwzxkq" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "TS0601" + } + ] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0005", + "endpoint_attribute": "scenes", + "attributes": [] + }, + { + "cluster_id": "0xed00", + "endpoint_attribute": null, + "attributes": [] + }, + { + "cluster_id": "0xef00", + "endpoint_attribute": null, + "attributes": [] + } + ], + "out_clusters": [ + { + "cluster_id": "0x000a", + "endpoint_attribute": "time", + "attributes": [] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [ + { + "id": "0x0002", + "name": "current_file_version", + "zcl_type": "uint32", + "unsupported": true + } + ] + } + ] + } + }, + "zha_lib_entities": { + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:12:bb:1b:9d-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:12:bb:1b:9d", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:12:bb:1b:9d-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:12:bb:1b:9d", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:12:bb:1b:9d-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:12:bb:1b:9d", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": null, + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file diff --git a/tests/data/legacy_devices/yooksmart-d10110.json b/tests/data/legacy_devices/yooksmart-d10110.json new file mode 100644 index 000000000..9e31f8ba8 --- /dev/null +++ b/tests/data/legacy_devices/yooksmart-d10110.json @@ -0,0 +1,370 @@ +{ + "version": 2, + "ieee": "ab:cd:ef:12:02:71:81:ce", + "nwk": "0x1413", + "manufacturer": "yooksmart", + "model": "D10110", + "friendly_manufacturer": "yooksmart", + "friendly_model": "D10110", + "name": "yooksmart D10110", + "quirk_applied": false, + "quirk_class": "zigpy.device.Device", + "exposes_features": [], + "manufacturer_code": 4417, + "power_source": "Battery or Unknown", + "lqi": null, + "rssi": null, + "last_seen": "2023-08-20T17:09:32", + "available": true, + "device_type": "EndDevice", + "active_coordinator": false, + "node_descriptor": { + "logical_type": "EndDevice", + "complex_descriptor_available": false, + "user_descriptor_available": false, + "reserved": 0, + "aps_flags": 0, + "frequency_band": 8, + "mac_capability_flags": 128, + "manufacturer_code": 4417, + "maximum_buffer_size": 66, + "maximum_incoming_transfer_size": 66, + "server_mask": 10752, + "maximum_outgoing_transfer_size": 66, + "descriptor_capability_field": 0 + }, + "endpoints": { + "1": { + "profile_id": 260, + "device_type": { + "name": "WINDOW_COVERING_DEVICE", + "id": 514 + }, + "in_clusters": [ + { + "cluster_id": "0x0000", + "endpoint_attribute": "basic", + "attributes": [ + { + "id": "0x0004", + "name": "manufacturer", + "zcl_type": "string", + "value": "yooksmart" + }, + { + "id": "0x0005", + "name": "model", + "zcl_type": "string", + "value": "D10110" + } + ] + }, + { + "cluster_id": "0x0001", + "endpoint_attribute": "power", + "attributes": [ + { + "id": "0x0021", + "name": "battery_percentage_remaining", + "zcl_type": "uint8", + "value": 0 + }, + { + "id": "0x0033", + "name": "battery_quantity", + "zcl_type": "uint8", + "unsupported": true + }, + { + "id": "0x0031", + "name": "battery_size", + "zcl_type": "enum8", + "unsupported": true + }, + { + "id": "0x0020", + "name": "battery_voltage", + "zcl_type": "uint8", + "unsupported": true + } + ] + }, + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0004", + "endpoint_attribute": "groups", + "attributes": [] + }, + { + "cluster_id": "0x0005", + "endpoint_attribute": "scenes", + "attributes": [] + }, + { + "cluster_id": "0x0020", + "endpoint_attribute": "poll_control", + "attributes": [ + { + "id": "0x0000", + "name": "checkin_interval", + "zcl_type": "uint32", + "value": 13200 + } + ] + }, + { + "cluster_id": "0x0102", + "endpoint_attribute": "window_covering", + "attributes": [ + { + "id": "0x0008", + "name": "current_position_lift_percentage", + "zcl_type": "uint8", + "value": 0 + } + ] + } + ], + "out_clusters": [ + { + "cluster_id": "0x0003", + "endpoint_attribute": "identify", + "attributes": [] + }, + { + "cluster_id": "0x0019", + "endpoint_attribute": "ota", + "attributes": [] + } + ] + } + }, + "zha_lib_entities": { + "button": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:02:71:81:ce-1-3", + "migrate_unique_ids": [], + "platform": "button", + "class_name": "IdentifyButton", + "translation_key": null, + "translation_placeholders": null, + "device_class": "identify", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:02:71:81:ce", + "endpoint_id": 1, + "available": true, + "group_id": null, + "command": "identify", + "args": [ + 5 + ], + "kwargs": {} + }, + "state": { + "class_name": "IdentifyButton", + "available": true + } + } + ], + "cover": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:02:71:81:ce-1-258", + "migrate_unique_ids": [], + "platform": "cover", + "class_name": "Cover", + "translation_key": "cover", + "translation_placeholders": null, + "device_class": null, + "state_class": null, + "entity_category": null, + "entity_registry_enabled_default": true, + "enabled": true, + "primary": true, + "device_ieee": "ab:cd:ef:12:02:71:81:ce", + "endpoint_id": 1, + "available": true, + "group_id": null + }, + "state": { + "class_name": "Cover", + "available": true, + "current_position": 100, + "current_tilt_position": null, + "state": "open", + "is_opening": false, + "is_closing": false, + "is_closed": false, + "supported_features": 15 + } + } + ], + "sensor": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:02:71:81:ce-1-0-lqi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "LQISensor", + "translation_key": "lqi", + "translation_placeholders": null, + "device_class": null, + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:02:71:81:ce", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "LQISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:02:71:81:ce-1-0-rssi", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "RSSISensor", + "translation_key": "rssi", + "translation_placeholders": null, + "device_class": "signal_strength", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": false, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:02:71:81:ce", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": "dBm" + }, + "state": { + "class_name": "RSSISensor", + "available": true, + "state": null + } + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:02:71:81:ce-1-1", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "Battery", + "translation_key": null, + "translation_placeholders": null, + "device_class": "battery", + "state_class": "measurement", + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:02:71:81:ce", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": 0, + "unit": "%" + }, + "state": { + "class_name": "Battery", + "available": true, + "state": 0.0 + }, + "extra_state_attributes": [ + "battery_quantity", + "battery_size", + "battery_voltage" + ] + }, + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:02:71:81:ce-1-258-window_covering_type", + "migrate_unique_ids": [], + "platform": "sensor", + "class_name": "WindowCoveringTypeSensor", + "translation_key": "window_covering_type", + "translation_placeholders": null, + "device_class": "enum", + "state_class": null, + "entity_category": "diagnostic", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:02:71:81:ce", + "endpoint_id": 1, + "available": true, + "group_id": null, + "suggested_display_precision": null, + "unit": null + }, + "state": { + "class_name": "WindowCoveringTypeSensor", + "available": true, + "state": null + } + } + ], + "update": [ + { + "info_object": { + "fallback_name": null, + "unique_id": "ab:cd:ef:12:02:71:81:ce-1-25-firmware_update", + "migrate_unique_ids": [], + "platform": "update", + "class_name": "FirmwareUpdateEntity", + "translation_key": null, + "translation_placeholders": null, + "device_class": "firmware", + "state_class": null, + "entity_category": "config", + "entity_registry_enabled_default": true, + "enabled": true, + "primary": false, + "device_ieee": "ab:cd:ef:12:02:71:81:ce", + "endpoint_id": 1, + "available": true, + "group_id": null, + "supported_features": 7 + }, + "state": { + "class_name": "FirmwareUpdateEntity", + "available": true, + "installed_version": null, + "in_progress": false, + "update_percentage": null, + "latest_version": null, + "release_summary": null, + "release_notes": null, + "release_url": null + } + } + ] + }, + "neighbors": [], + "routes": [] +} \ No newline at end of file From 54fbdb51b82fda8909ad25ee4439427bfd9b0ecd Mon Sep 17 00:00:00 2001 From: puddly <32534428+puddly@users.noreply.github.com> Date: Thu, 25 Jun 2026 17:55:16 -0400 Subject: [PATCH 7/9] Make sure the device `last_seen` timestamp roundtrips correctly --- tools/import_diagnostics.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/import_diagnostics.py b/tools/import_diagnostics.py index 3e0ac19c0..d104ae405 100644 --- a/tools/import_diagnostics.py +++ b/tools/import_diagnostics.py @@ -10,12 +10,12 @@ import asyncio import contextlib from contextlib import suppress +from datetime import datetime import hashlib import json import logging import pathlib import re -import time from typing import Any from unittest.mock import AsyncMock, patch @@ -161,7 +161,7 @@ def zigpy_device_from_legacy_diagnostics( # noqa: C901 device.model = model device.node_desc = node_desc - device.last_seen = time.time() + device.last_seen = datetime.fromisoformat(device_data["last_seen"]) for epid, ep in endpoints.items(): # Old diagnostics just used strings for clusters, there was no cache From a5f067765cec4f44fbf0f3b145f7bfe8773b381b Mon Sep 17 00:00:00 2001 From: puddly <32534428+puddly@users.noreply.github.com> Date: Thu, 25 Jun 2026 18:09:08 -0400 Subject: [PATCH 8/9] Use better device diagnostics for unit tests --- tests/test_alarm_control_panel.py | 2 +- tests/test_binary_sensor.py | 2 +- tests/test_device.py | 2 +- tests/test_discover.py | 12 ++++++------ tests/test_sensor.py | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/tests/test_alarm_control_panel.py b/tests/test_alarm_control_panel.py index 5192d4460..c8115acc9 100644 --- a/tests/test_alarm_control_panel.py +++ b/tests/test_alarm_control_panel.py @@ -29,7 +29,7 @@ async def test_alarm_control_panel( """Test zhaws alarm control panel platform.""" zigpy_device: ZigpyDevice = await zigpy_device_from_json( zha_gateway.application_controller, - "tests/data/devices/frient-a-s-kepzb-110-0x00020005.json", + "tests/data/legacy_devices/frient-a-s-kepzb-110-0x00020005.json", ) zha_device: Device = await join_zigpy_device(zha_gateway, zigpy_device) cluster: security.IasAce = zigpy_device.endpoints[44].out_clusters[ diff --git a/tests/test_binary_sensor.py b/tests/test_binary_sensor.py index fbabc3713..64bcda45b 100644 --- a/tests/test_binary_sensor.py +++ b/tests/test_binary_sensor.py @@ -313,7 +313,7 @@ async def test_onoff_client_binary_sensor_on_with_timed_off( """ zigpy_device = await zigpy_device_from_json( zha_gateway.application_controller, - "tests/data/devices/ikea-of-sweden-tradfri-motion-sensor.json", + "tests/data/devices/ikea-of-sweden-vallhorn-wireless-motion-sensor-0x01000064.json", ) zha_device = await join_zigpy_device(zha_gateway, zigpy_device) diff --git a/tests/test_device.py b/tests/test_device.py index 8c9703555..6550b8427 100644 --- a/tests/test_device.py +++ b/tests/test_device.py @@ -1218,7 +1218,7 @@ async def test_styrbar_press_events(zha_gateway: Gateway) -> None: zigpy_dev = await zigpy_device_from_json( zha_gateway.application_controller, - "tests/data/devices/ikea-of-sweden-remote-control-n2.json", + "tests/data/legacy_devices/ikea-of-sweden-remote-control-n2.json", ) zha_device = await join_zigpy_device(zha_gateway, zigpy_dev) diff --git a/tests/test_discover.py b/tests/test_discover.py index a1b2f1eb5..cbb3a0d65 100644 --- a/tests/test_discover.py +++ b/tests/test_discover.py @@ -79,7 +79,7 @@ async def test_device_override( zigpy_device = await zigpy_device_from_json( zha_gateway.application_controller, - "tests/data/devices/sonoff-basiczbr3.json", + "tests/data/devices/sonoff-s31-lite-zb.json", ) zha_gateway.config.config.device_overrides = { @@ -181,13 +181,13 @@ async def test_device_override_filter_bypassing( ) -> None: """Test that profile filtering is only bypassed for the override platform.""" - # The sercomm device is an ON_OFF_LIGHT with a PowerConfiguration cluster. - # DeviceTracker matches PowerConfiguration but is restricted by profile_device_types - # to the SmartThings arrival sensor device type. A SWITCH override should not cause - # DeviceTracker to bypass that filter. + # The IKEA TRADFRI on/off switch is a battery remote with a PowerConfiguration + # cluster. DeviceTracker matches PowerConfiguration but is restricted by + # profile_device_types to the SmartThings arrival sensor device type. A SWITCH + # override should not cause DeviceTracker to bypass that filter. zigpy_device = await zigpy_device_from_json( zha_gateway.application_controller, - "tests/data/devices/sercomm-corp-sz-esw01-au.json", + "tests/data/devices/ikea-of-sweden-tradfri-on-off-switch.json", ) zha_gateway.config.config.device_overrides = { diff --git a/tests/test_sensor.py b/tests/test_sensor.py index 1759f2edd..1a8db1cab 100644 --- a/tests/test_sensor.py +++ b/tests/test_sensor.py @@ -1968,7 +1968,7 @@ async def test_ignore_non_value_quirks_v2(zha_gateway: Gateway) -> None: zigpy_dev = await zigpy_device_from_json( zha_gateway.application_controller, - "tests/data/devices/frient-a-s-aqszb-110-0x00040001.json", + "tests/data/legacy_devices/frient-a-s-aqszb-110-0x00040001.json", ) assert isinstance(zigpy_dev, CustomZigpyDevice) From 2ffa1ca84dcbb990bbf84a7ce6d7b0a2fb18ce0b Mon Sep 17 00:00:00 2001 From: puddly <32534428+puddly@users.noreply.github.com> Date: Thu, 25 Jun 2026 18:21:41 -0400 Subject: [PATCH 9/9] Remove unneeded `KNOWN_LEGACY_ATTRIBUTES` entries --- tools/const.py | 169 ------------------------------------------------- 1 file changed, 169 deletions(-) diff --git a/tools/const.py b/tools/const.py index b11d45035..f98f2b6f1 100644 --- a/tools/const.py +++ b/tools/const.py @@ -17,14 +17,6 @@ ("lumi.airrtc.agl001", "LUMI", 0xFCC0, "server", 0x027B, 0), ("lumi.airrtc.agl001", "LUMI", 0xFCC0, "server", 0x027D, 0), ("lumi.airrtc.agl001", "LUMI", 0xFCC0, "server", 0x027E, 0), - ( - "lumi.curtain.acn002", - "LUMI", - 0xFCC0, - "server", - 0x00F7, - b"\x03(\x17\x05!\x01\x00\t!\x00\x01\n!\x0c\x0e\x0b \x00\x0c \x01\r#\x1e\x0f\x00\x00\x11#\x01\x00\x00\x00d \x00e ,f \x80g (i \x02j!2\x1ck \x00", - ), ("lumi.curtain.acn003", "LUMI", 0xFCC0, "server", 0x0401, 0), ("lumi.curtain.acn003", "LUMI", 0xFCC0, "server", 0x0402, 1), ("lumi.curtain.acn003", "LUMI", 0xFCC0, "server", 0x0407, 0), @@ -49,21 +41,6 @@ ("lumi.switch.n1aeu1", "LUMI", 0xFCC0, "server", 0x00F0, 0), ("lumi.switch.n1aeu1", "LUMI", 0xFCC0, "server", 0x0200, 0), ("lumi.switch.n1aeu1", "LUMI", 0xFCC0, "server", 0x0203, 0), - ("RBSH-MMS-ZB-EU", "Bosch", 0xFCA0, "server", 0x0000, 1), - ("RBSH-MMS-ZB-EU", "Bosch", 0xFCA0, "server", 0x0001, 2), - ("RBSH-MMS-ZB-EU", "Bosch", 0xFCA0, "server", 0x0002, 200), - ("RBSH-MMS-ZB-EU", "Bosch", 0xFCA0, "server", 0x0003, 200), - ("RBSH-TRV0-ZB-EU", "BOSCH", 0x0201, "server", 0x4007, 1), - ("RBSH-TRV0-ZB-EU", "BOSCH", 0x0204, "server", 0x400B, 0), - ("RBSH-TRV0-ZB-EU", "BOSCH", 0x0201, "server", 0x4020, 0), - ("RBSH-TRV0-ZB-EU", "BOSCH", 0x0204, "server", 0x4039, 0), - ("RBSH-TRV0-ZB-EU", "BOSCH", 0x0204, "server", 0x403A, 10), - ("RBSH-TRV0-ZB-EU", "BOSCH", 0x0204, "server", 0x403B, 7), - ("RBSH-TRV0-ZB-EU", "BOSCH", 0x0201, "server", 0x4040, 0), - ("RBSH-TRV0-ZB-EU", "BOSCH", 0x0201, "server", 0x4042, 0), - ("RBSH-TRV0-ZB-EU", "BOSCH", 0x0201, "server", 0x4043, 0), - ("TRVZB", "SONOFF", 0xFC11, "server", 0x6002, 1000), - ("TRVZB", "SONOFF", 0xFC11, "server", 0x6007, 1414), ("TS0001", "_TZ3000_e2uieqop", 0x0006, "server", 0x8001, 0), ("TS0001", "_TZ3000_e2uieqop", 0x0006, "server", 0x8002, 0), ("TS0001", "_TZ3000_e2uieqop", 0xE001, "server", 0xD030, 1), @@ -71,9 +48,6 @@ ("TS0001", "_TZ3000_gjrubzje", 0x0006, "server", 0x8001, 1), ("TS0001", "_TZ3000_gjrubzje", 0x0006, "server", 0x8002, 2), ("TS0001", "_TZ3000_gjrubzje", 0xE001, "server", 0xD030, 0), - ("TS0001", "_TZ3000_mkhkxx1p", 0x0006, "server", 0x8001, 0), - ("TS0001", "_TZ3000_mkhkxx1p", 0x0006, "server", 0x8002, 2), - ("TS0001", "_TZ3000_mkhkxx1p", 0xE001, "server", 0xD030, 0), ("TS0001", "_TZ3000_npzfdcof", 0x0006, "server", 0x8001, 0), ("TS0001", "_TZ3000_npzfdcof", 0x0006, "server", 0x8002, 0), ("TS0001", "_TZ3000_npzfdcof", 0xE001, "server", 0xD030, 0), @@ -84,16 +58,12 @@ ("TS0001", "_TZ3210_dse8ogfy", 0xEF00, "server", 0x0067, 0), ("TS0001", "_TZ3210_dse8ogfy", 0xEF00, "server", 0x0068, 1), ("TS0001", "_TZ3210_dse8ogfy", 0xEF00, "server", 0x006A, 0), - ("TS0001", "_TZ3210_j4pdtz9v", 0xEF00, "server", 0xEF65, 0), - ("TS0001", "_TZ3210_j4pdtz9v", 0xEF00, "server", 0xEF65, 1), ("TS0004", "_TZ3000_xxacnuab", 0x0006, "server", 0x5000, 1), ("TS0004", "_TZ3000_xxacnuab", 0xE001, "server", 0xD010, 0), ("TS0011", "_TZ3000_hafsqare", 0x0006, "server", 0x8001, 1), ("TS0011", "_TZ3000_hafsqare", 0x0006, "server", 0x8002, 0), ("TS0013", "_TZ3000_09gto2zn", 0x0006, "server", 0x8001, 1), ("TS0013", "_TZ3000_09gto2zn", 0x0006, "server", 0x8002, 0), - ("TS0049", "_TZ3210_0jxeoadc", 0xEF00, "server", 0xEF6F, 1), - ("TS0049", "_TZ3210_0jxeoadc", 0xEF00, "server", 0xEF6F, 5), ("TS0049", "_TZ3210_ru41azca", 0xEF00, "server", 0xEF01, 5), ("TS0049", "_TZ3210_ru41azca", 0xEF00, "server", 0xEF02, b"\x00\x00"), ("TS004F", "_TZ3000_xabckq1v", 0x0006, "client", 0x8004, 0), @@ -126,39 +96,13 @@ ("TS011F", "_TZ3000_ynmowqk2", 0x0006, "server", 0x8002, 2), ("TS011F", "_TZ3000_ynmowqk2", 0xE001, "server", 0xD030, 0), ("TS0202", "_TZ3000_o4mkahkc", 0x0500, "server", 0xF001, 1), - ("TS0207", "_TZ3210_tgvtvdoc", 0xEF00, "server", 0xEF66, 4588), - ("TS0207", "_TZ3210_tgvtvdoc", 0xEF00, "server", 0xEF66, 91), - ("TS0207", "_TZ3210_tgvtvdoc", 0xEF00, "server", 0xEF67, 4901), - ("TS0207", "_TZ3210_tgvtvdoc", 0xEF00, "server", 0xEF67, 5262), - ("TS0207", "_TZ3210_tgvtvdoc", 0xEF00, "server", 0xEF68, 0), - ("TS0207", "_TZ3210_tgvtvdoc", 0xEF00, "server", 0xEF69, 0), - ("TS0207", "_TZ3210_tgvtvdoc", 0xEF00, "server", 0xEF69, 3104), - ("TS0601", "_TZE200_3towulqd", 0xEF00, "server", 0xEF09, 1), - ("TS0601", "_TZE200_3towulqd", 0xEF00, "server", 0xEF0A, 0), ("TS0601", "_TZE200_68nvbio9", 0x0102, "server", 0x8001, 0), - ("TS0601", "_TZE200_7ytb3h8u", 0xEF00, "server", 0xEF00, "1.0.0"), - ("TS0601", "_TZE200_7ytb3h8u", 0xEF00, "server", 0xEF01, 0), - ("TS0601", "_TZE200_7ytb3h8u", 0xEF00, "server", 0xEF65, "05:36:38"), - ("TS0601", "_TZE200_7ytb3h8u", 0xEF00, "server", 0xEF66, "05:36:38"), - ("TS0601", "_TZE200_7ytb3h8u", 0xEF00, "server", 0xEF67, 0), - ("TS0601", "_TZE200_7ytb3h8u", 0xEF00, "server", 0xEF68, 0), - ("TS0601", "_TZE200_7ytb3h8u", 0xEF00, "server", 0xEF69, 0), - ("TS0601", "_TZE200_7ytb3h8u", 0xEF00, "server", 0xEF72, "00:00:00,0"), - ("TS0601", "_TZE200_81isopgh", 0xEF00, "server", 0xEF00, "1.0.0"), ("TS0601", "_TZE200_81isopgh", 0xEF00, "server", 0xEF01, 600), ("TS0601", "_TZE200_81isopgh", 0xEF00, "server", 0xEF02, 2), ("TS0601", "_TZE200_81isopgh", 0xEF00, "server", 0xEF03, 0), ("TS0601", "_TZE200_81isopgh", 0xEF00, "server", 0xEF04, 0), ("TS0601", "_TZE200_a0syesf5", 0xEF00, "server", 0xEF00, "1.0.0"), ("TS0601", "_TZE200_a0syesf5", 0x0008, "server", 0xEF01, 2), - ("TS0601", "_TZE200_a7sghmms", 0xEF00, "server", 0xEF00, "1.0.0"), - ("TS0601", "_TZE200_a7sghmms", 0xEF00, "server", 0xEF01, 0), - ("TS0601", "_TZE200_a7sghmms", 0xEF00, "server", 0xEF65, "03:59:06"), - ("TS0601", "_TZE200_a7sghmms", 0xEF00, "server", 0xEF66, "04:00:56"), - ("TS0601", "_TZE200_a7sghmms", 0xEF00, "server", 0xEF67, 0), - ("TS0601", "_TZE200_a7sghmms", 0xEF00, "server", 0xEF68, 0), - ("TS0601", "_TZE200_a7sghmms", 0xEF00, "server", 0xEF69, 0), - ("TS0601", "_TZE200_a7sghmms", 0xEF00, "server", 0xEF72, "00:01:50,0"), ("TS0601", "_TZE200_akjefhj5", 0xEF00, "server", 0xEF00, "1.0.0"), ("TS0601", "_TZE200_aoclfnxz", 0xEF00, "server", 0x0101, 1), ("TS0601", "_TZE200_aoclfnxz", 0xEF00, "server", 0x0128, 0), @@ -277,20 +221,6 @@ ("TS0601", "_TZE200_byzdayie", 0xEF00, "server", 0x0212, 1499), ("TS0601", "_TZE200_byzdayie", 0xEF00, "server", 0x0213, 1848), ("TS0601", "_TZE200_byzdayie", 0xEF00, "server", 0x0214, 2297), - ("TS0601", "_TZE200_c88teujp", 0xEF00, "server", 0xEF00, "1.0.0"), - ("TS0601", "_TZE200_c88teujp", 0xEF00, "server", 0xEF08, 0), - ("TS0601", "_TZE200_c88teujp", 0xEF00, "server", 0xEF08, 1), - ("TS0601", "_TZE200_c88teujp", 0xEF00, "server", 0xEF0A, 1), - ("TS0601", "_TZE200_c88teujp", 0xEF00, "server", 0xEF1B, 0), - ("TS0601", "_TZE200_c88teujp", 0xEF00, "server", 0xEF28, 0), - ("TS0601", "_TZE200_c88teujp", 0xEF00, "server", 0xEF28, 1), - ("TS0601", "_TZE200_c88teujp", 0xEF00, "server", 0xEF69, 0), - ("TS0601", "_TZE200_c88teujp", 0xEF00, "server", 0xEF6A, 0), - ("TS0601", "_TZE200_c88teujp", 0xEF00, "server", 0xEF6C, 0), - ("TS0601", "_TZE200_c88teujp", 0xEF00, "server", 0xEF6C, 1), - ("TS0601", "_TZE200_c88teujp", 0xEF00, "server", 0xEF82, 0), - ("TS0601", "_TZE200_c88teujp", 0xEF00, "server", 0xEF82, 1), - ("TS0601", "_TZE200_cirvgep4", 0xEF00, "server", 0xEF00, "1.0.0"), ("TS0601", "_TZE200_cpmgn2cf", 0xEF00, "server", 0x0068, [10, 5, 0]), ( "TS0601", @@ -372,7 +302,6 @@ ("TS0601", "_TZE200_cpmgn2cf", 0x0204, "server", 0x5000, 0), ("TS0601", "_TZE200_cpmgn2cf", 0x0006, "server", 0x6000, 500), ("TS0601", "_TZE200_cpmgn2cf", 0x0006, "server", 0x6001, 10), - ("TS0601", "_TZE200_dwcarsat", 0x042E, "server", 0x0000, 0.0006799999999999999), ("TS0601", "_TZE200_dwcarsat", 0x0402, "server", 0xEF12, b"\x00\x00\x00\xea"), ("TS0601", "_TZE200_ewxhg6o9", 0xEF00, "server", 0x0101, 1), ("TS0601", "_TZE200_ewxhg6o9", 0xEF00, "server", 0x0211, 43385), @@ -386,15 +315,6 @@ ("TS0601", "_TZE200_g9a3awaj", 0xEF00, "server", 0x0402, 0), ("TS0601", "_TZE200_g9a3awaj", 0xEF00, "server", 0x0424, 0), ("TS0601", "_TZE200_gubdgai2", 0x0102, "server", 0x8001, 0), - ("TS0601", "_TZE200_h4cgnbzg", 0xEF00, "server", 0xEF00, "1.0.0"), - ("TS0601", "_TZE200_h4cgnbzg", 0xEF00, "server", 0xEF08, 1), - ("TS0601", "_TZE200_h4cgnbzg", 0xEF00, "server", 0xEF0A, 1), - ("TS0601", "_TZE200_h4cgnbzg", 0xEF00, "server", 0xEF1B, -4), - ("TS0601", "_TZE200_h4cgnbzg", 0xEF00, "server", 0xEF28, 1), - ("TS0601", "_TZE200_h4cgnbzg", 0xEF00, "server", 0xEF69, 0), - ("TS0601", "_TZE200_h4cgnbzg", 0xEF00, "server", 0xEF6A, 0), - ("TS0601", "_TZE200_h4cgnbzg", 0xEF00, "server", 0xEF6C, 0), - ("TS0601", "_TZE200_h4cgnbzg", 0xEF00, "server", 0xEF82, 1), ("TS0601", "_TZE200_hhrtiq0x", 0xEF00, "server", 0x0107, 0), ("TS0601", "_TZE200_hhrtiq0x", 0xEF00, "server", 0x0112, 0), ("TS0601", "_TZE200_hhrtiq0x", 0xEF00, "server", 0x0114, 1), @@ -402,13 +322,6 @@ ("TS0601", "_TZE200_hhrtiq0x", 0xEF00, "server", 0x0203, 237), ("TS0601", "_TZE200_hhrtiq0x", 0xEF00, "server", 0x0215, 5), ("TS0601", "_TZE200_hhrtiq0x", 0xEF00, "server", 0x0404, 2), - ("TS0601", "_TZE200_jva8ink8", 0xEF00, "server", 0xEF00, "2.0.9"), - ("TS0601", "_TZE200_jva8ink8", 0xEF00, "server", 0xEF02, 7), - ("TS0601", "_TZE200_jva8ink8", 0xEF00, "server", 0xEF03, 60), - ("TS0601", "_TZE200_jva8ink8", 0xEF00, "server", 0xEF04, 600), - ("TS0601", "_TZE200_jva8ink8", 0xEF00, "server", 0xEF06, 1), - ("TS0601", "_TZE200_jva8ink8", 0xEF00, "server", 0xEF65, 1), - ("TS0601", "_TZE200_jva8ink8", 0xEF00, "server", 0xEF66, 10), ("TS0601", "_TZE200_jva8ink8", 0xEF00, "server", 0xEF67, " "), ("TS0601", "_TZE200_la2c2uo9", 0xEF00, "server", 0xEF00, "2.0.2"), ("TS0601", "_TZE200_la2c2uo9", 0x0008, "server", 0xEF01, 0), @@ -419,18 +332,6 @@ ("TS0601", "_TZE200_laqjm8qd", 0xEF00, "server", 0xEF03, 0), ("TS0601", "_TZE200_laqjm8qd", 0xEF00, "server", 0xEF04, 0), ("TS0601", "_TZE200_laqjm8qd", 0xEF00, "server", 0xEF05, 0), - ("TS0601", "_TZE200_locansqn", 0xEF00, "server", 0xEF00, "1.0.0"), - ("TS0601", "_TZE200_locansqn", 0xEF00, "server", 0xEF09, 0), - ("TS0601", "_TZE200_locansqn", 0xEF00, "server", 0xEF0A, 390), - ("TS0601", "_TZE200_locansqn", 0xEF00, "server", 0xEF0B, 0), - ("TS0601", "_TZE200_locansqn", 0xEF00, "server", 0xEF0C, 60), - ("TS0601", "_TZE200_locansqn", 0xEF00, "server", 0xEF0D, 20), - ("TS0601", "_TZE200_locansqn", 0xEF00, "server", 0xEF0E, 2), - ("TS0601", "_TZE200_locansqn", 0xEF00, "server", 0xEF0F, 2), - ("TS0601", "_TZE200_locansqn", 0xEF00, "server", 0xEF11, 120), - ("TS0601", "_TZE200_locansqn", 0xEF00, "server", 0xEF12, 120), - ("TS0601", "_TZE200_locansqn", 0xEF00, "server", 0xEF13, 2), - ("TS0601", "_TZE200_locansqn", 0xEF00, "server", 0xEF14, 2), ("TS0601", "_TZE200_m9skfctm", 0xEF00, "server", 0x0401, 1), ("TS0601", "_TZE200_mz5y07w2", 0xEF00, "server", 0x0165, 0), ("TS0601", "_TZE200_mz5y07w2", 0xEF00, "server", 0x016C, 0), @@ -445,7 +346,6 @@ ("TS0601", "_TZE200_nklqjk62", 0xEF00, "server", 0xEF05, 3600), ("TS0601", "_TZE200_nklqjk62", 0xEF00, "server", 0xEF0B, 0), ("TS0601", "_TZE200_nklqjk62", 0xEF00, "server", 0xEF0C, 2), - ("TS0601", "_TZE200_ntcy3xu1", 0xEF00, "server", 0xEF00, "1.0.0"), ( "TS0601", "_TZE200_ny94onlb", @@ -473,7 +373,6 @@ ("TS0601", "_TZE200_ny94onlb", 0xEF00, "server", 0x0201, 26), ("TS0601", "_TZE200_pay2byax", 0xEF00, "server", 0xEF01, 0), ("TS0601", "_TZE200_pay2byax", 0xEF00, "server", 0xEF65, 481), - ("TS0601", "_TZE200_qyflbnbj", 0xEF00, "server", 0xEF00, "1.0.0"), ("TS0601", "_TZE200_r32ctezx", 0xEF00, "server", 0xEF00, "1.0.0"), ("TS0601", "_TZE200_r32ctezx", 0x0008, "server", 0xEF01, 0), ("TS0601", "_TZE200_rccxox8p", 0xEF00, "server", 0x0401, 1), @@ -487,7 +386,6 @@ ), ("TS0601", "_TZE200_v9hkz2yn", 0xEF00, "server", 0x0201, 2164), ("TS0601", "_TZE200_v9hkz2yn", 0xEF00, "server", 0x0202, 0), - ("TS0601", "_TZE200_vvmbj46n", 0xEF00, "server", 0xEF00, "1.0.0"), ("TS0601", "_TZE200_wfxuhoea", 0xEF00, "server", 0xEF00, "1.0.0"), ("TS0601", "_TZE200_wfxuhoea", 0xEF00, "server", 0xEF02, 0), ("TS0601", "_TZE200_wfxuhoea", 0xEF00, "server", 0xEF03, 1), @@ -495,32 +393,8 @@ ("TS0601", "_TZE200_wfxuhoea", 0xEF00, "server", 0xEF05, 0), ("TS0601", "_TZE200_wfxuhoea", 0xEF00, "server", 0xEF0B, 0), ("TS0601", "_TZE200_wfxuhoea", 0xEF00, "server", 0xEF0C, 2), - ("TS0601", "_TZE200_ya4ft0w4", 0xEF00, "server", 0xEF02, 7), - ("TS0601", "_TZE200_ya4ft0w4", 0xEF00, "server", 0xEF03, 75), - ("TS0601", "_TZE200_ya4ft0w4", 0xEF00, "server", 0xEF04, 900), - ("TS0601", "_TZE200_ya4ft0w4", 0xEF00, "server", 0xEF09, 0), - ("TS0601", "_TZE200_ya4ft0w4", 0xEF00, "server", 0xEF65, 1), - ("TS0601", "_TZE200_ya4ft0w4", 0xEF00, "server", 0xEF66, 0), - ("TS0601", "_TZE200_ya4ft0w4", 0xEF00, "server", 0xEF69, 2), - ("TS0601", "_TZE200_yjjdcqsq", 0xEF00, "server", 0xEF00, "1.0.0"), - ("TS0601", "_TZE200_yw7cahqs", 0xEF00, "server", 0xEF00, "1.0.0"), - ("TS0601", "_TZE200_yw7cahqs", 0xEF00, "server", 0xEF08, 0), - ("TS0601", "_TZE200_yw7cahqs", 0xEF00, "server", 0xEF0A, 0), - ("TS0601", "_TZE200_yw7cahqs", 0xEF00, "server", 0xEF28, 0), - ("TS0601", "_TZE200_yw7cahqs", 0xEF00, "server", 0xEF69, 0), - ("TS0601", "_TZE200_yw7cahqs", 0xEF00, "server", 0xEF6A, 0), - ("TS0601", "_TZE200_yw7cahqs", 0xEF00, "server", 0xEF6C, 0), - ("TS0601", "_TZE200_yw7cahqs", 0xEF00, "server", 0xEF82, 0), ("TS0601", "_TZE204_4fblxpma", 0xEF00, "server", 0xEF00, "1.0.14"), ("TS0601", "_TZE204_4fblxpma", 0xEF00, "server", 0xEF01, 66), - ("TS0601", "_TZE204_7ytb3h8u", 0xEF00, "server", 0xEF00, "1.0.0"), - ("TS0601", "_TZE204_7ytb3h8u", 0xEF00, "server", 0xEF01, 0), - ("TS0601", "_TZE204_7ytb3h8u", 0xEF00, "server", 0xEF65, "13:53:13"), - ("TS0601", "_TZE204_7ytb3h8u", 0xEF00, "server", 0xEF66, "13:53:19"), - ("TS0601", "_TZE204_7ytb3h8u", 0xEF00, "server", 0xEF67, 0), - ("TS0601", "_TZE204_7ytb3h8u", 0xEF00, "server", 0xEF68, 0), - ("TS0601", "_TZE204_7ytb3h8u", 0xEF00, "server", 0xEF69, 0), - ("TS0601", "_TZE204_7ytb3h8u", 0xEF00, "server", 0xEF72, "00:00:06,0"), ("TS0601", "_TZE204_81yrt3lo", 0xEF00, "server", 0x0268, 0), ("TS0601", "_TZE204_81yrt3lo", 0xEF00, "server", 0x0274, 1000), ("TS0601", "_TZE204_81yrt3lo", 0xEF00, "server", 0x0275, 1000), @@ -536,45 +410,23 @@ ("TS0601", "_TZE204_81yrt3lo", 0xEF00, "server", 0x5000, 3), ("TS0601", "_TZE204_81yrt3lo", 0xEF00, "server", 0x5020, True), ("TS0601", "_TZE204_81yrt3lo", 0xEF00, "server", 0xEF00, "1.1.1"), - ("TS0601", "_TZE204_c2fmom5z", 0x042E, "server", 0x0000, 1.2e-05), - ("TS0601", "_TZE204_c2fmom5z", 0x042E, "server", 0x0000, 2e-06), - ("TS0601", "_TZE204_c2fmom5z", 0x042E, "server", 0x0000, 3e-06), - ("TS0601", "_TZE204_c2fmom5z", 0xEF00, "server", 0xEF00, "1.0.0"), ("TS0601", "_TZE204_c2fmom5z", 0x0402, "server", 0xEF12, b"\x00\x00\x00\xa9"), ("TS0601", "_TZE204_c2fmom5z", 0x0402, "server", 0xEF12, b"\x00\x00\x00\xb9"), ("TS0601", "_TZE204_cjbofhxw", 0xEF00, "server", 0xEF00, "1.0.0"), - ("TS0601", "_TZE204_dtzziy1e", 0xEF00, "server", 0xEF00, "1.0.0"), - ("TS0601", "_TZE204_dtzziy1e", 0xEF00, "server", 0xEF02, 7), - ("TS0601", "_TZE204_dtzziy1e", 0xEF00, "server", 0xEF03, 60), - ("TS0601", "_TZE204_dtzziy1e", 0xEF00, "server", 0xEF04, 600), ("TS0601", "_TZE204_dtzziy1e", 0xEF00, "server", 0xEF06, 1), - ("TS0601", "_TZE204_dtzziy1e", 0xEF00, "server", 0xEF65, 10), - ("TS0601", "_TZE204_dtzziy1e", 0xEF00, "server", 0xEF66, 30), ("TS0601", "_TZE204_dtzziy1e", 0xEF00, "server", 0xEF67, ""), - ("TS0601", "_TZE204_dtzziy1e", 0xEF00, "server", 0xEF69, 5), - ("TS0601", "_TZE204_dtzziy1e", 0xEF00, "server", 0xEF6A, 60), - ("TS0601", "_TZE204_dtzziy1e", 0xEF00, "server", 0xEF6B, 0), - ("TS0601", "_TZE204_dtzziy1e", 0xEF00, "server", 0xEF6C, 0), - ("TS0601", "_TZE204_dwcarsat", 0x042E, "server", 0x0000, 0.000126), ("TS0601", "_TZE204_dwcarsat", 0x0402, "server", 0xEF12, b"\x00\x00\x00\xeb"), - ("TS0601", "_TZE204_ex3rcdha", 0xEF00, "server", 0xEF00, "1.0.2"), ("TS0601", "_TZE204_guvc7pdy", 0x0102, "server", 0xF000, 1), ("TS0601", "_TZE204_hlx9tnzb", 0x0008, "server", 0xEF01, 2), ("TS0601", "_TZE204_hlx9tnzb", 0x0008, "server", 0xEF02, 0), - ("TS0601", "_TZE204_iaeejhvf", 0xEF00, "server", 0xEF00, "1.0.4"), ("TS0601", "_TZE204_iaeejhvf", 0xEF00, "server", 0xEF06, 1), ("TS0601", "_TZE204_iaeejhvf", 0xEF00, "server", 0xEF67, ""), - ("TS0601", "_TZE204_kyhbrfyl", 0xEF00, "server", 0xEF00, "1.0.10"), ("TS0601", "_TZE204_lpedvtvr", 0xEF00, "server", 0x0101, 1), ("TS0601", "_TZE204_lpedvtvr", 0xEF00, "server", 0x0127, 0), ("TS0601", "_TZE204_lpedvtvr", 0xEF00, "server", 0x0210, 215), ("TS0601", "_TZE204_lpedvtvr", 0xEF00, "server", 0x0232, 200), ("TS0601", "_TZE204_lpedvtvr", 0xEF00, "server", 0x0402, 2), ("TS0601", "_TZE204_lpedvtvr", 0xEF00, "server", 0x042F, 1), - ("TS0601", "_TZE204_ltwbm23f", 0xEF00, "server", 0xEF2F, 0), - ("TS0601", "_TZE204_ltwbm23f", 0xEF00, "server", 0xEF72, 0), - ("TS0601", "_TZE204_ltwbm23f", 0xEF00, "server", 0xEF77, 170), - ("TS0601", "_TZE204_ltwbm23f", 0xEF00, "server", 0xEF78, 200), ("TS0601", "_TZE204_nklqjk62", 0xEF00, "server", 0xEF00, "1.0.0"), ("TS0601", "_TZE204_nklqjk62", 0xEF00, "server", 0xEF02, 0), ("TS0601", "_TZE204_nklqjk62", 0xEF00, "server", 0xEF03, 0), @@ -584,16 +436,6 @@ ("TS0601", "_TZE204_nklqjk62", 0xEF00, "server", 0xEF0B, 0), ("TS0601", "_TZE204_nklqjk62", 0xEF00, "server", 0xEF0C, 1), ("TS0601", "_TZE204_nklqjk62", 0xEF00, "server", 0xEF0C, 2), - ("TS0601", "_TZE204_nlrfgpny", 0xEF00, "server", 0xEF00, "1.1.1"), - ("TS0601", "_TZE204_qasjif9e", 0xEF00, "server", 0xEF00, "1.0.2"), - ("TS0601", "_TZE204_qasjif9e", 0xEF00, "server", 0xEF02, 0), - ("TS0601", "_TZE204_qasjif9e", 0xEF00, "server", 0xEF03, 0), - ("TS0601", "_TZE204_qasjif9e", 0xEF00, "server", 0xEF04, 9), - ("TS0601", "_TZE204_qasjif9e", 0xEF00, "server", 0xEF09, 0), - ("TS0601", "_TZE204_qasjif9e", 0xEF00, "server", 0xEF65, 1), - ("TS0601", "_TZE204_qasjif9e", 0xEF00, "server", 0xEF66, 20), - ("TS0601", "_TZE204_upagmta9", 0xEF00, "server", 0xEF00, "1.0.0"), - ("TS0601", "_TZE204_upagmta9", 0xEF00, "server", 0xEF09, 0), ("TS0601", "_TZE204_wbhaespm", 0xEF00, "server", 0x0201, 1003), ("TS0601", "_TZE204_xalsoe3m", 0xEF00, "server", 0x0101, 1), ("TS0601", "_TZE204_xalsoe3m", 0xEF00, "server", 0x0128, 0), @@ -602,22 +444,11 @@ ("TS0601", "_TZE204_xalsoe3m", 0x0201, "server", 0x4002, 1), ("TS0601", "_TZE204_xlppj4f5", 0xEF00, "server", 0xEF00, "1.0.0"), ("TS0601", "_TZE204_xu4a5rhj", 0x0102, "server", 0x8001, 1), - ("TS0601", "_TZE204_yjjdcqsq", 0xEF00, "server", 0xEF00, "1.0.0"), ("TS0601", "_TZE204_zenj4lxv", 0xEF00, "server", 0xEF00, "1.0.0"), ("TS0601", "_TZE204_zenj4lxv", 0x0008, "server", 0xEF01, 12), ("TS0601", "_TZE204_zenj4lxv", 0x0008, "server", 0xEF01, 2), ("TS0601", "_TZE204_zenj4lxv", 0x0008, "server", 0xEF02, 0), ("TS0601", "_TZE284_0zaf1cr8", 0xEF00, "server", 0x0401, 1), - ("TS0601", "_TZE284_ne4pikwm", 0xEF00, "server", 0xEF00, "1.0.0"), - ("TS0601", "_TZE284_ne4pikwm", 0xEF00, "server", 0xEF08, 1), - ("TS0601", "_TZE284_ne4pikwm", 0xEF00, "server", 0xEF0A, 1), - ("TS0601", "_TZE284_ne4pikwm", 0xEF00, "server", 0xEF1B, 0), - ("TS0601", "_TZE284_ne4pikwm", 0xEF00, "server", 0xEF28, 0), - ("TS0601", "_TZE284_ne4pikwm", 0xEF00, "server", 0xEF69, 0), - ("TS0601", "_TZE284_ne4pikwm", 0xEF00, "server", 0xEF6A, 0), - ("TS0601", "_TZE284_ne4pikwm", 0xEF00, "server", 0xEF6C, 0), - ("TS0601", "_TZE284_ne4pikwm", 0xEF00, "server", 0xEF6C, 1), - ("TS0601", "_TZE284_ne4pikwm", 0xEF00, "server", 0xEF82, 1), ("TS130F", "_TZ3000_qa8s8vca", 0x0102, "server", 0x8000, 0), ("TS130F", "_TZ3000_qa8s8vca", 0x0006, "server", 0x8001, 0), ("TS130F", "_TZ3000_qa8s8vca", 0x0102, "server", 0xF000, 0),