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
752 stars 688 forks source link

[Device Support Request] TS0601 TZE200_sh1btabb Tuya Garden Water Valve #1622

Closed MQTT-ESP8266 closed 1 year ago

MQTT-ESP8266 commented 2 years ago

I cannot get this Tuya water valve to run. There are no entities shown in the device manager.

It would be great if this device could be added to tuva quirks so that it is usable with ZHA. There already exists a solution for zigbee2mqtt (link below). Maybe that makes it easier.

``` { "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=True, *is_full_function_device=False, *is_mains_powered=False, *is_receiver_on_when_idle=False, *is_router=False, *is_security_capable=False)", "endpoints": { "1": { "profile_id": 260, "device_type": "0x0051", "in_clusters": [ "0x0000", "0x0004", "0x0005", "0xef00" ], "out_clusters": [ "0x000a", "0x0019" ] } }, "manufacturer": "_TZE200_sh1btabb", "model": "TS0601", "class": "zigpy.device.Device" } ```
```yaml { "home_assistant": { "installation_type": "Home Assistant OS", "version": "2022.5.5", "dev": false, "hassio": true, "virtualenv": false, "python_version": "3.9.9", "docker": true, "arch": "x86_64", "timezone": "Europe/Berlin", "os_name": "Linux", "os_version": "5.15.45", "supervisor": "2022.05.3", "host_os": "Home Assistant OS 8.2", "docker_version": "20.10.14", "chassis": "vm", "run_as_root": true }, "custom_components": {}, "integration_manifest": { "domain": "zha", "name": "Zigbee Home Automation", "config_flow": true, "documentation": "https://www.home-assistant.io/integrations/zha", "requirements": [ "bellows==0.29.0", "pyserial==3.5", "pyserial-asyncio==0.6", "zha-quirks==0.0.73", "zigpy-deconz==0.16.0", "zigpy==0.45.1", "zigpy-xbee==0.14.0", "zigpy-zigate==0.7.4", "zigpy-znp==0.7.0" ], "usb": [ { "vid": "10C4", "pid": "EA60", "description": "*2652*", "known_devices": [ "slae.sh cc2652rb stick" ] }, { "vid": "10C4", "pid": "EA60", "description": "*sonoff*plus*", "known_devices": [ "sonoff zigbee dongle plus" ] }, { "vid": "10C4", "pid": "EA60", "description": "*tubeszb*", "known_devices": [ "TubesZB Coordinator" ] }, { "vid": "1A86", "pid": "7523", "description": "*tubeszb*", "known_devices": [ "TubesZB Coordinator" ] }, { "vid": "1A86", "pid": "7523", "description": "*zigstar*", "known_devices": [ "ZigStar Coordinators" ] }, { "vid": "1CF1", "pid": "0030", "description": "*conbee*", "known_devices": [ "Conbee II" ] }, { "vid": "10C4", "pid": "8A2A", "description": "*zigbee*", "known_devices": [ "Nortek HUSBZB-1" ] }, { "vid": "10C4", "pid": "8B34", "description": "*bv 2010/10*", "known_devices": [ "Bitron Video AV2010/10" ] } ], "codeowners": [ "@dmulcahey", "@adminiuga" ], "zeroconf": [ { "type": "_esphomelib._tcp.local.", "name": "tube*" } ], "after_dependencies": [ "usb", "zeroconf" ], "iot_class": "local_polling", "loggers": [ "aiosqlite", "bellows", "crccheck", "pure_pcapy3", "zhaquirks", "zigpy", "zigpy_deconz", "zigpy_xbee", "zigpy_zigate", "zigpy_znp" ], "is_built_in": true }, "data": { "ieee": "**REDACTED**", "nwk": 30371, "manufacturer": "_TZE200_sh1btabb", "model": "TS0601", "name": "_TZE200_sh1btabb TS0601", "quirk_applied": false, "quirk_class": "zigpy.device.Device", "manufacturer_code": 4417, "power_source": "Battery or Unknown", "lqi": null, "rssi": null, "last_seen": "2022-06-14T21:08:59", "available": true, "device_type": "EndDevice", "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=True, *is_full_function_device=False, *is_mains_powered=False, *is_receiver_on_when_idle=False, *is_router=False, *is_security_capable=False)", "endpoints": { "1": { "profile_id": 260, "device_type": "0x0051", "in_clusters": [ "0x0000", "0x0004", "0x0005", "0xef00" ], "out_clusters": [ "0x000a", "0x0019" ] } } }, "entities": [], "neighbors": [], "endpoint_names": [ { "name": "SMART_PLUG" } ], "user_given_name": null, "device_reg_id": "4a2865a9419105f14f181082bdc80c34", "area_id": "garten" } } ```
Additional logs ``` [0x0000:zdo] ZDO request ZDOCmd.Mgmt_Permit_Joining_req: [60, ] New device 0x7ca8 (a4:c1:38:4a:ea:11:11:2f) joined the network [0x7ca8] Scheduling initialization Tries remaining: 3 [0x7ca8] Requesting 'Node Descriptor' Tries remaining: 2 [0x7ca8] Extending timeout for 0x2d request [0xA546](TS0201): Device seen - marking the device available and resetting counter [0xA546](TS0201): Update device availability - device available: True - new availability: True - changed: False [0x2ADE](MS01): Device seen - marking the device available and resetting counter [0x2ADE](MS01): Update device availability - device available: True - new availability: True - changed: False Device 0x7ca8 (a4:c1:38:4a:ea:11:11:2f) joined the network [0x7ca8] Scheduling initialization [0x7ca8] Canceling old initialize call Tries remaining: 3 [0x7ca8] Requesting 'Node Descriptor' Tries remaining: 2 [0x7ca8] Extending timeout for 0x2f request Device 0x7ca8 (a4:c1:38:4a:ea:11:11:2f) joined the network [0x7ca8] Scheduling initialization [0x7ca8] Canceling old initialize call Received frame on uninitialized device from ep 0 to ep 0, cluster 19: b"'\xa8|/\x11\x11\xeaJ8\xc1\xa4\x80" [0x7ca8:zdo] ZDO request ZDOCmd.Device_annce: [0x7CA8, a4:c1:38:4a:ea:11:11:2f, 128] Tries remaining: 3 [0x7ca8] Requesting 'Node Descriptor' Tries remaining: 2 [0x7ca8] Extending timeout for 0x31 request Received frame on uninitialized device from ep 0 to ep 0, cluster 32770: b'/\x00\xa8|\x02@\x80A\x11BB\x00\x00*B\x00\x00' Received frame on uninitialized device from ep 0 to ep 0, cluster 32770: b'1\x00\xa8|\x02@\x80A\x11BB\x00\x00*B\x00\x00' [0x7ca8] Got 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=True, *is_full_function_device=False, *is_mains_powered=False, *is_receiver_on_when_idle=False, *is_router=False, *is_security_capable=False) [0x7ca8] Discovering endpoints Tries remaining: 3 [0x7ca8] Extending timeout for 0x33 request Received frame on uninitialized device from ep 0 to ep 0, cluster 32773: b'3\x00\xa8|\x01\x01' [0x7ca8] Discovered endpoints: [1] [0x7ca8] Initializing endpoints [>] [0x7ca8:1] Discovering endpoint information Tries remaining: 3 [0x7ca8] Extending timeout for 0x35 request Received frame on uninitialized device from ep 0 to ep 0, cluster 2: b'(\x00\x00' [0x7ca8:zdo] ZDO request ZDOCmd.Node_Desc_req: [0x0000] [0x7ca8:zdo] No handler for ZDO request:ZDOCmd.Node_Desc_req([0x0000]) Received frame on uninitialized device from ep 0 to ep 0, cluster 32772: b'5\x00\xa8|\x14\x01\x04\x01Q\x00\x01\x04\x04\x00\x05\x00\x00\xef\x00\x00\x02\x19\x00\n\x00' [0x7ca8:1] Discovered endpoint information: SizePrefixedSimpleDescriptor(endpoint=1, profile=260, device_type=81, device_version=1, input_clusters=[4, 5, 61184, 0], output_clusters=[25, 10]) Unknown cluster 0xEF00 [0x7CA8:1:0x0000] Sending request header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=False, is_reply=0, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True), tsn=55, command_id=, *is_reply=False) [0x7CA8:1:0x0000] Sending request: Read_Attributes(attribute_ids=[4, 5]) [0x7ca8] Extending timeout for 0x37 request [0x7ca8:zdo] ZDO request ZDOCmd.Mgmt_Permit_Joining_req: [180, ] [0x7CA8:1:0x0000] Received ZCL frame: b'\x187\x01\x04\x00\x00B\x10_TZE200_sh1btabb\x05\x00\x00B\x06TS0601' [0x7CA8:1:0x0000] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, is_reply=1, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=55, command_id=1, *is_reply=True) [0x7CA8:1:0x0000] Decoded ZCL frame: Basic:Read_Attributes_rsp(status_records=[ReadAttributeRecord(attrid=0x0004, status=, value=TypeValue(type=CharacterString, value='_TZE200_sh1btabb')), ReadAttributeRecord(attrid=0x0005, status=, value=TypeValue(type=CharacterString, value='TS0601'))]) [0x7ca8] Read model 'TS0601' and manufacturer '_TZE200_sh1btabb' from > [0x7ca8] Discovered basic device information for Device is initialized Checking quirks for _TZE200_sh1btabb TS0601 (a4:c1:38:4a:ea:11:11:2f) Considering Fail because endpoint list mismatch: {232, 230} {1} Considering Fail because endpoint list mismatch: {232, 230} {1} Considering Fail because device_type mismatch on at least one endpoint Considering Fail because device_type mismatch on at least one endpoint Considering Fail because device_type mismatch on at least one endpoint Considering Fail because endpoint list mismatch: {11, 13} {1} Considering Fail because device_type mismatch on at least one endpoint 'sensor' component -> 'RSSISensor' using ['basic'] 'sensor' component -> 'LQISensor' using ['basic'] device - 0x7CA8:a4:c1:38:4a:ea:11:11:2f entering async_device_initialized - is_new_join: True device - 0x7CA8:a4:c1:38:4a:ea:11:11:2f has joined the ZHA zigbee network [0x7CA8](TS0601): started configuration [0x7CA8:ZDO](TS0601): 'async_configure' stage succeeded Error handling '_save_attribute' event with (a4:c1:38:4a:ea:11:11:2f, 1, 0, 4, '_TZE200_sh1btabb') params: FOREIGN KEY constraint failed [0x7CA8:1:0x0000]: Configuring cluster attribute reporting [0x7CA8:1:0x0000]: finished channel configuration [0x7CA8:1:0x0019]: finished channel configuration Error handling '_save_attribute' event with (a4:c1:38:4a:ea:11:11:2f, 1, 0, 5, 'TS0601') params: FOREIGN KEY constraint failed [0x7CA8:1:0x0000]: 'async_configure' stage succeeded [0x7CA8:1:0x0019]: 'async_configure' stage succeeded [0x7CA8](TS0601): completed configuration [0x7CA8](TS0601): stored in registry: ZhaDeviceEntry(name='_TZE200_sh1btabb TS0601', ieee='a4:c1:38:4a:ea:11:11:2f', last_seen=1655237424.153496) [0x7CA8](TS0601): started initialization [0x7CA8:ZDO](TS0601): 'async_initialize' stage succeeded [0x7CA8:1:0x0000]: initializing channel: from_cache: False [0x7CA8:1:0x0000]: finished channel initialization [0x7CA8:1:0x0019]: initializing channel: from_cache: False [0x7CA8:1:0x0019]: finished channel initialization [0x7CA8:1:0x0000]: 'async_initialize' stage succeeded [0x7CA8:1:0x0019]: 'async_initialize' stage succeeded [0x7CA8](TS0601): power source: Battery or Unknown [0x7CA8](TS0601): completed initialization [0x7CA8:1:0xef00] Received ZCL frame: b'\t\x95\x11\x00o@' [0x7CA8:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=149, command_id=17, *is_reply=True) [0x7CA8:1:0xef00] Unknown cluster command 17 b'\x00o@' [0x7CA8:1:0xef00] Received command 0x11 (TSN 149): b'\x00o@' [0x7CA8:1:0xef00] No explicit handler for cluster command 0x11: b'\x00o@' [0x7CA8:1:0xef00] Received ZCL frame: b'\t\x95\x11\x00o@' [0x7CA8:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=149, command_id=17, *is_reply=True) [0x7CA8:1:0xef00] Unknown cluster command 17 b'\x00o@' [0x7CA8:1:0xef00] Received command 0x11 (TSN 149): b'\x00o@' [0x7CA8:1:0xef00] No explicit handler for cluster command 0x11: b'\x00o@' [0x7CA8:1:0xef00] Received ZCL frame: b'\t\x95\x11\x00o@' [0x7CA8:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=149, command_id=17, *is_reply=True) [0x7CA8:1:0xef00] Unknown cluster command 17 b'\x00o@' [0x7CA8:1:0xef00] Received command 0x11 (TSN 149): b'\x00o@' [0x7CA8:1:0xef00] No explicit handler for cluster command 0x11: b'\x00o@' [0x7C3F](TH01): Device seen - marking the device available and resetting counter [0x7C3F](TH01): Update device availability - device available: True - new availability: True - changed: False [0x7CA8:1:0x0000] Received ZCL frame: b'\x08\x96\n\x01\x00 F\xe2\xff 6\xe4\xff \x00' [0x7CA8:1:0x0000] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True), tsn=150, command_id=10, *is_reply=True) [0x7CA8: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))]) [0x7CA8:1:0x0000] Received command 0x0A (TSN 150): 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))]) [0x7CA8:1:0x0000] Attribute report received: app_version=70, 0xFFE2=54, 0xFFE4=0 [0x7CA8:1:0x0000] Sending reply header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=False, is_reply=1, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=150, command_id=, *is_reply=True) [0x7CA8:1:0x0000] Sending reply: Default_Response(command_id=10, status=) [0x7CA8:1:0x000a] Received ZCL frame: b'\x00\x97\x00\x07\x00' [0x7CA8:1:0x000a] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, is_reply=0, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True), tsn=151, command_id=0, *is_reply=False) [0x7CA8:1:0x000a] Decoded ZCL frame: Time:Read_Attributes(attribute_ids=[7]) [0x7CA8:1:0x000a] Received command 0x00 (TSN 151): Read_Attributes(attribute_ids=[7]) [0x7CA8:1:0x000a] Sending reply header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=False, is_reply=1, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=151, command_id=, *is_reply=True) [0x7CA8:1:0x000a] Sending reply: Read_Attributes_rsp(status_records=[ReadAttributeRecord(attrid=0x0007, status=, value=TypeValue(type=LocalTime, value=708559831))]) [0x7CA8:1:0x0000] Received ZCL frame: b'\x08\x98\n\xdf\xffB<\xc7\xc2;*i\xcd\xc2;*i\xe0\xc2;*i\xea\xc2;*i\xf4\xc2;*i\xfe\xc2;*i\x08\xc3;*i\xa9\xc3;*\x13\xa9\xc3;*e\xaa\xc3;*\x12\xc8\xc3;*er\xc2;*i' [0x7CA8:1:0x0000] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True), tsn=152, command_id=10, *is_reply=True) [0x7CA8:1:0x0000] Decoded ZCL frame: Basic:Report_Attributes(attribute_reports=[Attribute(attrid=0xFFDF, value=TypeValue(type=CharacterString, value='��;*i��;*i��;*i��;*i��;*i��;*i\x08�;*i��;*\x13��;*e��;*\x12��;*er�;*i'))]) [0x7CA8:1:0x0000] Received command 0x0A (TSN 152): Report_Attributes(attribute_reports=[Attribute(attrid=0xFFDF, value=TypeValue(type=CharacterString, value='��;*i��;*i��;*i��;*i��;*i��;*i\x08�;*i��;*\x13��;*e��;*\x12��;*er�;*i'))]) [0x7CA8:1:0x0000] Attribute report received: 0xFFDF='��;*i��;*i��;*i��;*i��;*i��;*i\x08�;*i��;*\x13��;*e��;*\x12��;*er�;*i' [0x7CA8:1:0x0000] Sending reply header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=False, is_reply=1, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=152, command_id=, *is_reply=True) [0x7CA8:1:0x0000] Sending reply: Default_Response(command_id=10, status=) [0x7CA8:1:0x0000] Received ZCL frame: b'\x08\x99\n\xdf\xffB({\xc2;*i\x84\xc2;*i\x89\xc2;*\x13\x89\xc2;*e\x8a\xc2;*\x12\xae\xc2;*e\xc5\xc2;*i\xc6\xc2;*i' [0x7CA8:1:0x0000] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True), tsn=153, command_id=10, *is_reply=True) [0x7CA8:1:0x0000] Decoded ZCL frame: Basic:Report_Attributes(attribute_reports=[Attribute(attrid=0xFFDF, value=TypeValue(type=CharacterString, value='{�;*i��;*i��;*\x13��;*e��;*\x12��;*e��;*i��;*i'))]) [0x7CA8:1:0x0000] Received command 0x0A (TSN 153): Report_Attributes(attribute_reports=[Attribute(attrid=0xFFDF, value=TypeValue(type=CharacterString, value='{�;*i��;*i��;*\x13��;*e��;*\x12��;*e��;*i��;*i'))]) [0x7CA8:1:0x0000] Attribute report received: 0xFFDF='{�;*i��;*i��;*\x13��;*e��;*\x12��;*e��;*i��;*i' [0x7CA8:1:0x0000] Sending reply header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=False, is_reply=1, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=153, command_id=, *is_reply=True) [0x7CA8:1:0x0000] Sending reply: Default_Response(command_id=10, status=) [0x7CA8:1:0xef00] Received ZCL frame: b'\t\x9a\x02\x00\x93j\x02\x00\x04\x00\x00\x00\x00' [0x7CA8:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=154, command_id=2, *is_reply=True) [0x7CA8:1:0xef00] Unknown cluster command 2 b'\x00\x93j\x02\x00\x04\x00\x00\x00\x00' [0x7CA8:1:0xef00] Received command 0x02 (TSN 154): b'\x00\x93j\x02\x00\x04\x00\x00\x00\x00' [0x7CA8:1:0xef00] No explicit handler for cluster command 0x02: b'\x00\x93j\x02\x00\x04\x00\x00\x00\x00' [0x7CA8:1:0xef00] Received ZCL frame: b'\t\x9a\x02\x00\x93j\x02\x00\x04\x00\x00\x00\x00' [0x7CA8:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=154, command_id=2, *is_reply=True) [0x7CA8:1:0xef00] Unknown cluster command 2 b'\x00\x93j\x02\x00\x04\x00\x00\x00\x00' [0x7CA8:1:0xef00] Received command 0x02 (TSN 154): b'\x00\x93j\x02\x00\x04\x00\x00\x00\x00' [0x7CA8:1:0xef00] No explicit handler for cluster command 0x02: b'\x00\x93j\x02\x00\x04\x00\x00\x00\x00' [0x7CA8:1:0xef00] Received ZCL frame: b'\t\x9a\x02\x00\x93j\x02\x00\x04\x00\x00\x00\x00' [0x7CA8:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=154, command_id=2, *is_reply=True) [0x7CA8:1:0xef00] Unknown cluster command 2 b'\x00\x93j\x02\x00\x04\x00\x00\x00\x00' [0x7CA8:1:0xef00] Received command 0x02 (TSN 154): b'\x00\x93j\x02\x00\x04\x00\x00\x00\x00' [0x7CA8:1:0xef00] No explicit handler for cluster command 0x02: b'\x00\x93j\x02\x00\x04\x00\x00\x00\x00' [0x7CA8:1:0xef00] Received ZCL frame: b'\t\x9a\x02\x00\x93j\x02\x00\x04\x00\x00\x00\x00' [0x7CA8:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=154, command_id=2, *is_reply=True) [0x7CA8:1:0xef00] Unknown cluster command 2 b'\x00\x93j\x02\x00\x04\x00\x00\x00\x00' [0x7CA8:1:0xef00] Received command 0x02 (TSN 154): b'\x00\x93j\x02\x00\x04\x00\x00\x00\x00' [0x7CA8:1:0xef00] No explicit handler for cluster command 0x02: b'\x00\x93j\x02\x00\x04\x00\x00\x00\x00' [0x7CA8:1:0xef00] Received ZCL frame: b'\t\x9a\x02\x00\x93j\x02\x00\x04\x00\x00\x00\x00' [0x7CA8:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=154, command_id=2, *is_reply=True) [0x7CA8:1:0xef00] Unknown cluster command 2 b'\x00\x93j\x02\x00\x04\x00\x00\x00\x00' [0x7CA8:1:0xef00] Received command 0x02 (TSN 154): b'\x00\x93j\x02\x00\x04\x00\x00\x00\x00' [0x7CA8:1:0xef00] No explicit handler for cluster command 0x02: b'\x00\x93j\x02\x00\x04\x00\x00\x00\x00' [0x7CA8:1:0xef00] Received ZCL frame: b'\t\x9a\x02\x00\x93j\x02\x00\x04\x00\x00\x00\x00' [0x7CA8:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=154, command_id=2, *is_reply=True) [0x7CA8:1:0xef00] Unknown cluster command 2 b'\x00\x93j\x02\x00\x04\x00\x00\x00\x00' [0x7CA8:1:0xef00] Received command 0x02 (TSN 154): b'\x00\x93j\x02\x00\x04\x00\x00\x00\x00' [0x7CA8:1:0xef00] No explicit handler for cluster command 0x02: b'\x00\x93j\x02\x00\x04\x00\x00\x00\x00' [0xBFE0](TS0201): Device seen - marking the device available and resetting counter [0xBFE0](TS0201): Update device availability - device available: True - new availability: True - changed: False [0x7CA8:1:0xef00] Received ZCL frame: b'\t\x9b\x02\x00\x94g\x02\x00\x04\x00\x00\x00\x00' [0x7CA8:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=155, command_id=2, *is_reply=True) [0x7CA8:1:0xef00] Unknown cluster command 2 b'\x00\x94g\x02\x00\x04\x00\x00\x00\x00' [0x7CA8:1:0xef00] Received command 0x02 (TSN 155): b'\x00\x94g\x02\x00\x04\x00\x00\x00\x00' [0x7CA8:1:0xef00] No explicit handler for cluster command 0x02: b'\x00\x94g\x02\x00\x04\x00\x00\x00\x00' [0x7CA8:1:0xef00] Received ZCL frame: b'\t\x9c\x02\x00\x95\x02\x01\x00\x01\x00' [0x7CA8:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=156, command_id=2, *is_reply=True) [0x7CA8:1:0xef00] Unknown cluster command 2 b'\x00\x95\x02\x01\x00\x01\x00' [0x7CA8:1:0xef00] Received command 0x02 (TSN 156): b'\x00\x95\x02\x01\x00\x01\x00' [0x7CA8:1:0xef00] No explicit handler for cluster command 0x02: b'\x00\x95\x02\x01\x00\x01\x00' [0x7CA8:1:0xef00] Received ZCL frame: b'\t\x9d\x02\x00\x96f\x03\x00\x0810:21:46' [0x7CA8:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=157, command_id=2, *is_reply=True) [0x7CA8:1:0xef00] Unknown cluster command 2 b'\x00\x96f\x03\x00\x0810:21:46' [0x7CA8:1:0xef00] Received command 0x02 (TSN 157): b'\x00\x96f\x03\x00\x0810:21:46' [0x7CA8:1:0xef00] No explicit handler for cluster command 0x02: b'\x00\x96f\x03\x00\x0810:21:46' ```

Additional context

KikoSerranoH commented 1 year ago

Debe presionar el "atributo read" para obtener el valor actual. ¿Has presionado para leer?

Perfect!!! Now I can do it!

Thank you very much!!!

hedefalk commented 1 year ago

Sorry to ask this here, but since there seem to be success going on here I figured it'd be the best place. I just got two of these valves in the mail, but I haven't even figured out how to pair them. https://www.aliexpress.com/item/1005005196816776.html?spm=a2g0o.order_list.order_list_main.40.72851802bjMZd5

Using ZHA with a Sonoff USB dongle. Just updated firmware on the dongle to this one https://github.com/Koenkk/Z-Stack-firmware/raw/master/coordinator/Z-Stack_3.x.0/bin/CC1352P2_CC2652P_launchpad_coordinator_20221226.zip

Tried pairing both straight from the coordinator as well as via some Tuya mains dimmers that will be closer.

I long-press the only button for 5 sec until the light goes out and then it starts blinking but only for a short while. I guess this could be one of these battery-powered-device-that-timeouts-during-pairing issues? Is there any remedy for that?

I've struggled a lot with Ikea shortcut buttons too and still haven't fixed the battery drain on them.

hmmmonteiro commented 3 months ago

Hi everyone.

Just to let know that the https://raw.githubusercontent.com/zigpy/zha-device-handlers/dev/zhaquirks/tuya/ts0601_valve.py, which includes @mbo18 PR, is apparently working on a _TZE204_a7sghmms (https://pt.aliexpress.com/item/1005005879940870.html), with just the addition to MODELS_INFO.


--- ts0601_valve.py.orig
+++ ts0601_valve.py
@@ -381,7 +381,7 @@
     """GiEX valve device."""

     signature = {
-        MODELS_INFO: [("_TZE200_sh1btabb", "TS0601"), ("_TZE200_a7sghmms", "TS0601"), ( "_TZE204_7ytb3h8u", "TS0601")],
+        MODELS_INFO: [("_TZE200_sh1btabb", "TS0601"), ("_TZE200_a7sghmms", "TS0601"), ( "_TZE204_7ytb3h8u", "TS0601"), ("_TZE204_a7sghmms", "TS0601")],
         ENDPOINTS: {
             # <SimpleDescriptor endpoint=1 profile=260 device_type=0x0051
             # input_clusters=[0x0000, 0x0004, 0x0005, 0xef00]