zigpy / zha-device-handlers

ZHA device handlers bridge the functionality gap created when manufacturers deviate from the ZCL specification, handling deviations and exceptions by parsing custom messages to and from Zigbee devices.
Apache License 2.0
721 stars 670 forks source link

[Device Support Request] _TZE200_x8fp01wi 3 phase meter #2726

Closed ha-primalb closed 4 months ago

ha-primalb commented 10 months ago

Problem description

Hello All,

I have bought 3 phase power meter /TS0601 _TZE200_x8fp01wi /. I have found something in: https://github.com/Koenkk/zigbee-herdsman-converters/blob/master/src/devices/tuya.ts but i don't know how to conver it to the ZHA quirk. Base on forum data i found, works with Z2M but i found nothing for ZHA.

Solution description

quirk welcome

Screenshots/Video

Screenshots/Video [Paste/upload your media here]

Device signature

Device signature ```json [Paste the device signature here] ```

Diagnostic information

Diagnostic information ```json data": { "ieee": "**REDACTED**", "nwk": 63134, "manufacturer": "_TZE200_x8fp01wi", "model": "TS0601", "name": "_TZE200_x8fp01wi TS0601", "quirk_applied": false, "quirk_class": "zigpy.device.Device", "manufacturer_code": 4417, "power_source": "Mains", "lqi": 255, "rssi": -32, "last_seen": "2023-11-07T16:29:01", "available": false, "device_type": "Router", "signature": { "node_descriptor": "NodeDescriptor(logical_type=, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=, mac_capability_flags=, manufacturer_code=4417, maximum_buffer_size=66, maximum_incoming_transfer_size=66, server_mask=10752, maximum_outgoing_transfer_size=66, descriptor_capability_field=, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=False, *is_full_function_device=True, *is_mains_powered=True, *is_receiver_on_when_idle=True, *is_router=True, *is_security_capable=False)", "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" ] } }, "manufacturer": "_TZE200_x8fp01wi", "model": "TS0601" }, "active_coordinator": false, "entities": [], "neighbors": [], "routes": [], "endpoint_names": [ { "name": "SMART_PLUG" }, { "name": "PROXY_BASIC" } ], "user_given_name": "Licznik", "device_reg_id": "7a027b8d3f5edcc279db19bb127e779c", "area_id": "piwnica", "cluster_details": { "1": { "device_type": { "name": "SMART_PLUG", "id": 81 }, "profile_id": 260, "in_clusters": { "0x0004": { "endpoint_attribute": "groups", "attributes": {}, "unsupported_attributes": {} }, "0x0005": { "endpoint_attribute": "scenes", "attributes": {}, "unsupported_attributes": {} }, "0xef00": { "endpoint_attribute": null, "attributes": {}, "unsupported_attributes": {} }, "0x0000": { "endpoint_attribute": "basic", "attributes": { "0x0001": { "attribute_name": "app_version", "value": 70 }, "0x0004": { "attribute_name": "manufacturer", "value": "_TZE200_x8fp01wi" }, "0x0005": { "attribute_name": "model", "value": "TS0601" } }, "unsupported_attributes": {} } }, "out_clusters": { "0x0019": { "endpoint_attribute": "ota", "attributes": {}, "unsupported_attributes": {} }, "0x000a": { "endpoint_attribute": "time", "attributes": {}, "unsupported_attributes": {} } } }, "242": { "device_type": { "name": "PROXY_BASIC", "id": 97 }, "profile_id": 41440, "in_clusters": {}, "out_clusters": { "0x0021": { "endpoint_attribute": "green_power", "attributes": {}, "unsupported_attributes": {} } } } } ```

Logs

Logs not sure what can be helpfull .. ```python 023-11-07 16:28:06.042 DEBUG (MainThread) [zigpy.zcl] [0xF69E:1:0xef00] No explicit handler for cluster command 0x02: b'\x00 \t\x02\x00\x04\x00\x00\x00\x00\x01\x02\x00\x04\x00\x00\x00\x00\x02\x02\x00\x04\x00\x00\x00\x00' 2023-11-07 16:28:06.437 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=, address=0xF69E), src_ep=1, dst=AddrModeAddress(addr_mode=, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=24, profile_id=260, cluster_id=61184, data=Serialized[b'\t\xcd\x02\x00!\t\x02\x00\x04\x00\x00\x00\x00\x01\x02\x00\x04\x00\x00\x00\x00\x02\x02\x00\x04\x00\x00\x00\x00'], tx_options=, radius=0, non_member_radius=0, lqi=255, rssi=-32) 2023-11-07 16:28:06.437 DEBUG (MainThread) [zigpy.zcl] [0xF69E:1:0xef00] Received ZCL frame: b'\t\xcd\x02\x00!\t\x02\x00\x04\x00\x00\x00\x00\x01\x02\x00\x04\x00\x00\x00\x00\x02\x02\x00\x04\x00\x00\x00\x00' 2023-11-07 16:28:06.438 DEBUG (MainThread) [zigpy.zcl] [0xF69E:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, direction=, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=205, command_id=2, *direction=) 2023-11-07 16:28:06.438 WARNING (MainThread) [zigpy.zcl] [0xF69E:1:0xef00] Unknown cluster command 2 b'\x00!\t\x02\x00\x04\x00\x00\x00\x00\x01\x02\x00\x04\x00\x00\x00\x00\x02\x02\x00\x04\x00\x00\x00\x00' 2023-11-07 16:28:06.442 DEBUG (MainThread) [zigpy.zcl] [0xF69E:1:0xef00] Received command 0x02 (TSN 205): b'\x00!\t\x02\x00\x04\x00\x00\x00\x00\x01\x02\x00\x04\x00\x00\x00\x00\x02\x02\x00\x04\x00\x00\x00\x00' 2023-11-07 16:28:06.442 DEBUG (MainThread) [zigpy.zcl] [0xF69E:1:0xef00] No explicit handler for cluster command 0x02: b'\x00!\t\x02\x00\x04\x00\x00\x00\x00\x01\x02\x00\x04\x00\x00\x00\x00\x02\x02\x00\x04\x00\x00\x00\x00' 2023-11-07 16:28:12.549 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0xF69E](TS0601): Device seen - marking the device available and resetting counter 2023-11-07 16:28:12.549 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0xF69E](TS0601): Update device availability - device available: True - new availability: True - changed: False 2023-11-07 16:29:01.847 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=, address=0xF69E), src_ep=1, dst=AddrModeAddress(addr_mode=, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=25, profile_id=260, cluster_id=0, data=Serialized[b'\x08\xce\n\x01\x00 F\xe2\xff 6\xe4\xff \x00'], tx_options=, radius=0, non_member_radius=0, lqi=255, rssi=-31) 2023-11-07 16:29:01.848 DEBUG (MainThread) [zigpy.zcl] [0xF69E:1:0x0000] Received ZCL frame: b'\x08\xce\n\x01\x00 F\xe2\xff 6\xe4\xff \x00' 2023-11-07 16:29:01.848 DEBUG (MainThread) [zigpy.zcl] [0xF69E:1:0x0000] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, direction=, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True), tsn=206, command_id=10, *direction=) 2023-11-07 16:29:01.849 DEBUG (MainThread) [zigpy.zcl] [0xF69E:1:0x0000] Decoded ZCL frame: Basic:Report_Attributes(attribute_reports=[Attribute(attrid=0x0001, value=TypeValue(type=uint8_t, value=70)), Attribute(attrid=0xFFE2, value=TypeValue(type=uint8_t, value=54)), Attribute(attrid=0xFFE4, value=TypeValue(type=uint8_t, value=0))]) 2023-11-07 16:29:01.849 DEBUG (MainThread) [zigpy.zcl] [0xF69E:1:0x0000] Received command 0x0A (TSN 206): Report_Attributes(attribute_reports=[Attribute(attrid=0x0001, value=TypeValue(type=uint8_t, value=70)), Attribute(attrid=0xFFE2, value=TypeValue(type=uint8_t, value=54)), Attribute(attrid=0xFFE4, value=TypeValue(type=uint8_t, value=0))]) 2023-11-07 16:29:01.850 DEBUG (MainThread) [zigpy.zcl] [0xF69E:1:0x0000] Attribute report received: app_version=70, 0xFFE2=54, 0xFFE4=0 2023-11-07 16:29:01.853 DEBUG (MainThread) [zigpy.zcl] [0xF69E:1:0x0000] Sending reply header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=False, direction=, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=206, command_id=, *direction=) 2023-11-07 16:29:01.853 DEBUG (MainThread) [zigpy.zcl] [0xF69E:1:0x0000] Sending reply: Default_Response(command_id=10, status=) 2023-11-07 16:29:01.915 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=, address=0xF69E), src_ep=1, dst=AddrModeAddress(addr_mode=, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=26, profile_id=260, cluster_id=0, data=Serialized[b'\x08\xcf\n\xdf\xffB2\x10"\xdd,i\x13"\xdd,i\x13"\xdd,i\x14"\xdd,i\x14"\xdd,i\x15"\xdd,i\x15"\xdd,i\x16"\xdd,i\x17"\xdd,i\x17"\xdd,i'], tx_options=, radius=0, non_member_radius=0, lqi=255, rssi=-32) 2023-11-07 16:29:01.916 DEBUG (MainThread) [zigpy.zcl] [0xF69E:1:0x0000] Received ZCL frame: b'\x08\xcf\n\xdf\xffB2\x10"\xdd,i\x13"\xdd,i\x13"\xdd,i\x14"\xdd,i\x14"\xdd,i\x15"\xdd,i\x15"\xdd,i\x16"\xdd,i\x17"\xdd,i\x17"\xdd,i' 2023-11-07 16:29:01.917 DEBUG (MainThread) [zigpy.zcl] [0xF69E:1:0x0000] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, direction=, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True), tsn=207, command_id=10, *direction=) 2023-11-07 16:29:01.918 DEBUG (MainThread) [zigpy.zcl] [0xF69E:1:0x0000] Decoded ZCL frame: Basic:Report_Attributes(attribute_reports=[Attribute(attrid=0xFFDF, value=TypeValue(type=CharacterString, value='\x10"�,i\x13"�,i\x13"�,i\x14"�,i\x14"�,i\x15"�,i\x15"�,i\x16"�,i\x17"�,i\x17"�,i'))]) 2023-11-07 16:29:01.918 DEBUG (MainThread) [zigpy.zcl] [0xF69E:1:0x0000] Received command 0x0A (TSN 207): Report_Attributes(attribute_reports=[Attribute(attrid=0xFFDF, value=TypeValue(type=CharacterString, value='\x10"�,i\x13"�,i\x13"�,i\x14"�,i\x14"�,i\x15"�,i\x15"�,i\x16"�,i\x17"�,i\x17"�,i'))]) 2023-11-07 16:29:01.919 DEBUG (MainThread) [zigpy.zcl] [0xF69E:1:0x0000] Attribute report received: 0xFFDF='\x10"�,i\x13"�,i\x13"�,i\x14"�,i\x14"�,i\x15"�,i\x15"�,i\x16"�,i\x17"�,i\x17"�,i' 2023-11-07 16:29:01.920 DEBUG (MainThread) [zigpy.zcl] [0xF69E:1:0x0000] Sending reply header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=False, direction=, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=207, command_id=, *direction=) 2023-11-07 16:29:01.921 DEBUG (MainThread) [zigpy.zcl] [0xF69E:1:0x0000] Sending reply: Default_Response(command_id=10, status=) ```

Custom quirk

Custom quirk ```python [Paste your custom quirk here] ```

Additional information

No response

github-actions[bot] commented 4 months ago

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates. Please make sure to update to the latest version and check if that solves the issue. Let us know if that works for you by adding a comment 👍 This issue has now been marked as stale and will be closed if no further activity occurs. Thank you for your contributions.