zha-device-handlers
zha-device-handlers copied to clipboard
[Device Support Request] tuya neo siren _TZE200_d0yu2xgi
I am writing to see if you are able to make this device work, I have been reading through several messages and through the homeassistant forum and I have seen that a user changed the peculiarity and it worked for him that is why I ask here if you could review it and see what is wrong now It seems that the manufacturer has modified something and now the switch does not work and the two entities of temperature and humidity do not give any value, I give you a little information about the device such as the signature: { "node_descriptor": "NodeDescriptor (byte1 = 2, byte2 = 64, 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_outgoing_transfer_size = 82, descriptor_complex_capability = 0, alloaddescriptor_complex_capability_ = False, * 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_routerty = False_capable, * is logicalid = False, * is_routerty = False_capable = False, * is_routerty = False_capable = = <LogicalType.EndDevice: 2>, * user_descriptor_available = False) ", "endpoints": { "1": { "profile_id": 260, "device_type": "0x0403", "in_clusters": [ "0x0000", "0x0003", "0x0006", "0x0402", "0x0405", "0xef00" ], "out_clusters": [ "0x0003", "0x0019" ] } }, "manufacturer": "_TZE200_d0yu2xgi", "model": "TS0601", "class": "zhaquirks.tuya.siren.TuyaSiren2" }
[0x0000:zdo] ZDO request ZDOCmd.Mgmt_Permit_Joining_req: [60, <Bool.false: 0>] Device 0x685e (80:4b:50:ff:fe:04:84:6d) joined the network [0x685e] Requesting 'Node Descriptor' Tries remaining: 2 [0x685e] Extending timeout for 0x0b request Device 0x685e (80:4b:50:ff:fe:04:84:6d) joined the network Skip initialization for existing device 80:4b:50:ff:fe:04:84:6d [0x685e:zdo] ZDO request ZDOCmd.Device_annce: [0x685E, 80:4b:50:ff:fe:04:84:6d, 128] [0x685e] Node Descriptor: NodeDescriptor(byte1=2, byte2=64, 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, *allocate_address=True, *complex_descriptor_available=False, *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, *is_valid=True, *logical_type=<LogicalType.EndDevice: 2>, *user_descriptor_available=False) [0x685e] Discovering endpoints Tries remaining: 3 [0x685e] Extending timeout for 0x0d request [0x685e] Discovered endpoints: [1] [0x685e:1] Discovering endpoint information Tries remaining: 3 [0x685e] Extending timeout for 0x0f request [0x685e:1] Discovered endpoint information: SizePrefixedSimpleDescriptor(endpoint=1, profile=260, device_type=81, device_version=1, input_clusters=[0, 4, 5, 61184], output_clusters=[25, 10]) Unknown cluster 61184 [0x685e] Extending timeout for 0x11 request [0x685e:1:0x0000] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=17 command_id=Command.Read_Attributes_rsp> [0x685e:1] Manufacturer: _TZE200_d0yu2xgi [0x685e:1] Model: TS0601 Checking quirks for _TZE200_d0yu2xgi TS0601 (80:4b:50:ff:fe:04:84:6d) Considering <class 'zhaquirks.tuya.siren.TuyaSiren2'> Found custom device replacement for 80:4b:50:ff:fe:04:84:6d: <class 'zhaquirks.tuya.siren.TuyaSiren2'> device - 0x685E:80:4b:50:ff:fe:04:84:6d entering async_device_initialized - is_new_join: True device - 0x685E:80:4b:50:ff:fe:04:84:6d has joined the ZHA zigbee network 0x685E: started configuration 0x685E:ZDO: 'async_configure' stage succeeded [0x685E:1:0x0405]: bound 'humidity' cluster: Status.SUCCESS [0x685E:1:0x0405]: reporting 'measured_value' attr on 'humidity' cluster: 30/900/100: Result: '[ConfigureReportingResponseRecord(status=0)]' [0x685E:1:0x0006]: bound 'on_off' cluster: Status.SUCCESS [0x685E:1:0x0006]: reporting 'on_off' attr on 'on_off' cluster: 0/900/1: Result: '[ConfigureReportingResponseRecord(status=0)]' [0x685E:1:0x0000]: finished channel configuration [0x685E:1:0x0402]: bound 'temperature' cluster: Status.SUCCESS [0x685E:1:0x0402]: reporting 'measured_value' attr on 'temperature' cluster: 30/900/50: Result: '[ConfigureReportingResponseRecord(status=0)]' [0x685E:1:0x0019]: finished channel configuration [0x685E:1:0x0405]: 'async_configure' stage failed: 'ConfigureReportingResponseRecord' object is not subscriptable [0x685E:1:0x0006]: 'async_configure' stage failed: 'ConfigureReportingResponseRecord' object is not subscriptable [0x685E:1:0x0000]: 'async_configure' stage succeeded [0x685E:1:0x0402]: 'async_configure' stage failed: 'ConfigureReportingResponseRecord' object is not subscriptable [0x685E:1:0x0019]: 'async_configure' stage succeeded 0x685E: completed configuration 0x685E: stored in registry: ZhaDeviceEntry(name='_TZE200_d0yu2xgi TS0601', ieee='80:4b:50:ff:fe:04:84:6d', last_seen=1620462642.1414979) [0x685e] Extending timeout for 0x13 request [0x685e:1:0x0003] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=19 command_id=Command.Default_Response> [0x685E:1:0x0003]: executed 'trigger_effect' command with args: '(2, 0)' kwargs: '{}' result: [64, <Status.UNSUPPORTED_CLUSTER: 195>] 0x685E: started initialization 0x685E:ZDO: 'async_initialize' stage succeeded [0x685E:1:0x0405]: initializing channel: from_cache: False [0x685E:1:0x0405]: finished channel configuration [0x685E:1:0x0006]: initializing channel: from_cache: False [0x685E:1:0x0006]: finished channel configuration [0x685E:1:0x0000]: initializing channel: from_cache: False [0x685E:1:0x0000]: finished channel configuration [0x685E:1:0x0402]: initializing channel: from_cache: False [0x685E:1:0x0402]: finished channel configuration [0x685E:1:0x0019]: initializing channel: from_cache: False [0x685E:1:0x0019]: finished channel configuration [0x685E:1:0x0405]: 'async_initialize' stage succeeded [0x685E:1:0x0006]: 'async_initialize' stage succeeded [0x685E:1:0x0000]: 'async_initialize' stage succeeded [0x685E:1:0x0402]: 'async_initialize' stage succeeded [0x685E:1:0x0019]: 'async_initialize' stage succeeded 0x685E: power source: Battery or Unknown 0x685E: completed initialization [0x685E:1:0x0006]: attempting to update onoff state - from cache: True [0x685e:zdo] ZDO request ZDOCmd.Node_Desc_req: [0x0000] [0x685e:zdo] Unsupported ZDO request:ZDOCmd.Node_Desc_req Ignoring message (b'0000000700') on cluster 10: unknown endpoint or cluster id: 'No cluster ID 0x000a on (80:4b:50:ff:fe:04:84:6d, 1)' Ignoring message (b'0000000700') on cluster 10: unknown endpoint or cluster id: 'No cluster ID 0x000a on (80:4b:50:ff:fe:04:84:6d, 1)' Ignoring message (b'0000000700') on cluster 10: unknown endpoint or cluster id: 'No cluster ID 0x000a on (80:4b:50:ff:fe:04:84:6d, 1)' Ignoring message (b'0000000700') on cluster 10: unknown endpoint or cluster id: 'No cluster ID 0x000a on (80:4b:50:ff:fe:04:84:6d, 1)' Ignoring message (b'0000000700') on cluster 10: unknown endpoint or cluster id: 'No cluster ID 0x000a on (80:4b:50:ff:fe:04:84:6d, 1)' Ignoring message (b'0000000700') on cluster 10: unknown endpoint or cluster id: 'No cluster ID 0x000a on (80:4b:50:ff:fe:04:84:6d, 1)' Ignoring message (b'0000000700') on cluster 10: unknown endpoint or cluster id: 'No cluster ID 0x000a on (80:4b:50:ff:fe:04:84:6d, 1)' [0x685e:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=1 command_id=36> Failed to parse message (b'1901240005') on cluster 61184, because Data is too short to contain 1 bytes [0x685e:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=2 command_id=17> [0x685e:1:0xef00] Unknown cluster-specific command 17
There are several of us who have the same problem to see if they can create a new peculiarity or tell us that we must modify and where, thank you very much
Some debugging information that might be relevant is posted here: https://github.com/Koenkk/zigbee2mqtt/issues/7407#issuecomment-853120732
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.
Yes, please add the support for this device. According to HA community thare are many users reporting the same issue (inlcluding me). Thank you.
+1 I have the siren sitting in a drawer and haven't managed to make it work. Please :)
Thanks!
I dont have the device but have doing little work on tuya TRVs and its looks little strange in the first logs :-((
The ground of the quirk looks OK but the last added device class TuyaSiren2
is not having one replacement that looks Zigpy is using it from the first class but not successful.
Its making the sensor cluster but time is being ignored then its not configured and the tuya cluster is having problems being used = one large mess !!
I have trying adding the replacement with the new cluster from the first class but i dont knowing if its working OK or not.
Download the zip file, Configure local quirk in HA https://github.com/zigpy/zha-device-handlers/discussions/693#discussioncomment-857274 and putting the unzipped quirk in the new local quirk folder and restart HA.
Have little extra logging in HA so you can see if the quirk is doing it work or its still having problem.
If not working pleas post logs then adding the device and then its trying communicating with the system. ts0601_siren.zip
Does not work. It exposes the same useless entity switch and keeps blinking (pairing mode). Tried the modified quirk and captured the log shown by my ikea bulb while trying to add the siren:
==============
Sent 'mgmt_permit_joining_req' to ec:1b:bd:ff:fe:9c:19:c7: [<Status.SUCCESS: 0>]
New device 0x3152 (b4:e3:f9:ff:fe:02:dd:b7) joined the network
[0x3152] Scheduling initialization
Tries remaining: 3
[0x3152] Requesting 'Node Descriptor'
Tries remaining: 2
[0x3152] Extending timeout for 0x5d request
Device 0x3152 (b4:e3:f9:ff:fe:02:dd:b7) joined the network
[0x3152] Scheduling initialization
[0x3152] Canceling old initialize call
Tries remaining: 3
[0x3152] Requesting 'Node Descriptor'
Tries remaining: 2
[0x3152] Extending timeout for 0x5f request
Device 0x3152 (b4:e3:f9:ff:fe:02:dd:b7) joined the network
[0x3152] Scheduling initialization
[0x3152] Canceling old initialize call
Received frame on uninitialized device <Device model=None manuf=None nwk=0x3152 ieee=b4:e3:f9:ff:fe:02:dd:b7 is_initialized=False> from ep 0 to ep 0, cluster 19: b'\x81R1\xb7\xdd\x02\xfe\xff\xf9\xe3\xb4\x80'
[0x3152:zdo] ZDO request ZDOCmd.Device_annce: [0x3152, b4:e3:f9:ff:fe:02:dd:b7, 128]
Tries remaining: 3
[0x3152] Requesting 'Node Descriptor'
Tries remaining: 2
[0x3152] Extending timeout for 0x61 request
Received frame on uninitialized device <Device model=None manuf=None nwk=0x3152 ieee=b4:e3:f9:ff:fe:02:dd:b7 is_initialized=False> from ep 0 to ep 0, cluster 32770: b'_\x00R1\x02@\x80\x02\x10RR\x00\x00,R\x00\x00'
[0x3152:zdo] ZDO request ZDOCmd.Node_Desc_rsp: [<Status.SUCCESS: 0>, 0x3152, NodeDescriptor(logical_type=<LogicalType.EndDevice: 2>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress: 128>, manufacturer_code=4098, maximum_buffer_size=82, maximum_incoming_transfer_size=82, server_mask=11264, maximum_outgoing_transfer_size=82, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *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)]
[0x3152:zdo] Unsupported ZDO request:ZDOCmd.Node_Desc_rsp
Received frame on uninitialized device <Device model=None manuf=None nwk=0x3152 ieee=b4:e3:f9:ff:fe:02:dd:b7 is_initialized=False> from ep 0 to ep 0, cluster 32770: b'a\x00R1\x02@\x80\x02\x10RR\x00\x00,R\x00\x00'
[0x3152] Got Node Descriptor: NodeDescriptor(logical_type=<LogicalType.EndDevice: 2>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress: 128>, manufacturer_code=4098, maximum_buffer_size=82, maximum_incoming_transfer_size=82, server_mask=11264, maximum_outgoing_transfer_size=82, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *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)
[0x3152] Discovering endpoints
Tries remaining: 3
[0x3152] Extending timeout for 0x63 request
Received frame on uninitialized device <Device model=None manuf=None nwk=0x3152 ieee=b4:e3:f9:ff:fe:02:dd:b7 is_initialized=False> from ep 0 to ep 0, cluster 32773: b'c\x00R1\x01\x01'
[0x3152] Discovered endpoints: [1]
[0x3152] Initializing endpoints [<Endpoint id=1 in=[] out=[] status=<Status.NEW: 0>>]
[0x3152:1] Discovering endpoint information
Tries remaining: 3
[0x3152] Extending timeout for 0x65 request
Received frame on uninitialized device <Device model=None manuf=None nwk=0x3152 ieee=b4:e3:f9:ff:fe:02:dd:b7 is_initialized=False> from ep 0 to ep 0, cluster 32772: b'e\x00R1\x14\x01\x04\x01Q\x00\x01\x04\x00\x00\x04\x00\x05\x00\x00\xef\x02\x19\x00\n\x00'
[0x3152:1] Discovered endpoint information: SizePrefixedSimpleDescriptor(endpoint=1, profile=260, device_type=81, device_version=1, input_clusters=[0, 4, 5, 61184], output_clusters=[25, 10])
Unknown cluster 61184
[0x3152] Extending timeout for 0x67 request
[0x3152:1:0x0000] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=103 command_id=Command.Read_Attributes_rsp>
[0x3152] Read model 'TS0601' and manufacturer '_TZE200_d0yu2xgi' from <Endpoint id=1 in=[basic:0x0000, groups:0x0004, scenes:0x0005, None:0xEF00] out=[ota:0x0019, time:0x000A] status=<Status.ZDO_INIT: 1>>
[0x3152] Discovered basic device information for <Device model='TS0601' manuf='_TZE200_d0yu2xgi' nwk=0x3152 ieee=b4:e3:f9:ff:fe:02:dd:b7 is_initialized=True>
Device is initialized <Device model='TS0601' manuf='_TZE200_d0yu2xgi' nwk=0x3152 ieee=b4:e3:f9:ff:fe:02:dd:b7 is_initialized=True>
Checking quirks for _TZE200_d0yu2xgi TS0601 (b4:e3:f9:ff:fe:02:dd:b7)
Considering <class 'zhaquirks.tuya.ts0601_siren.TuyaSiren2'>
Found custom device replacement for b4:e3:f9:ff:fe:02:dd:b7: <class 'zhaquirks.tuya.ts0601_siren.TuyaSiren2'>
device - 0x3152:b4:e3:f9:ff:fe:02:dd:b7 entering async_device_initialized - is_new_join: True
device - 0x3152:b4:e3:f9:ff:fe:02:dd:b7 has joined the ZHA zigbee network
[0x3152](TS0601): started configuration
[0x3152:ZDO](TS0601): 'async_configure' stage succeeded
Error handling '_save_attribute' event with (b4:e3:f9:ff:fe:02:dd:b7, 1, 0, 4, '_TZE200_d0yu2xgi') params: FOREIGN KEY constraint failed
[0x3152:1:0x0405]: bound 'humidity' cluster: Status.SUCCESS
[0x3152:1:0x0405]: Successfully configured reporting for '{'measured_value': (30, 900, 100)}' on 'humidity' cluster: [ConfigureReportingResponseRecord(status=0)]
[0x3152:1:0x0405]: finished channel configuration
[0x3152:1:0x0000]: finished channel configuration
[0x3152:1:0x0402]: bound 'temperature' cluster: Status.SUCCESS
[0x3152:1:0x0402]: Successfully configured reporting for '{'measured_value': (30, 900, 50)}' on 'temperature' cluster: [ConfigureReportingResponseRecord(status=0)]
[0x3152:1:0x0402]: finished channel configuration
[0x3152:1:0x0006]: bound 'on_off' cluster: Status.SUCCESS
[0x3152:1:0x0006]: Successfully configured reporting for '{'on_off': (0, 900, 1)}' on 'on_off' cluster: [ConfigureReportingResponseRecord(status=0)]
[0x3152:1:0x0006]: finished channel configuration
[0x3152:1:0x0019]: finished channel configuration
Error handling '_save_attribute' event with (b4:e3:f9:ff:fe:02:dd:b7, 1, 0, 5, 'TS0601') params: FOREIGN KEY constraint failed
[0x3152:1:0x0405]: 'async_configure' stage succeeded
[0x3152:1:0x0000]: 'async_configure' stage succeeded
[0x3152:1:0x0402]: 'async_configure' stage succeeded
[0x3152:1:0x0006]: 'async_configure' stage succeeded
[0x3152:1:0x0019]: 'async_configure' stage succeeded
[0x3152](TS0601): completed configuration
[0x3152](TS0601): stored in registry: ZhaDeviceEntry(name='_TZE200_d0yu2xgi TS0601', ieee='b4:e3:f9:ff:fe:02:dd:b7', last_seen=1638382310.8693228)
[0x3152](TS0601): started initialization
[0x3152:ZDO](TS0601): 'async_initialize' stage succeeded
[0x3152:1:0x0405]: initializing channel: from_cache: False
[0x3152:1:0x0405]: finished channel initialization
[0x3152:1:0x0000]: initializing channel: from_cache: False
[0x3152:1:0x0000]: finished channel initialization
[0x3152:1:0x0402]: initializing channel: from_cache: False
[0x3152:1:0x0402]: finished channel initialization
[0x3152:1:0x0006]: initializing channel: from_cache: False
[0x3152:1:0x0006]: finished channel initialization
[0x3152:1:0x0019]: initializing channel: from_cache: False
[0x3152:1:0x0019]: finished channel initialization
[0x3152:1:0x0405]: 'async_initialize' stage succeeded
[0x3152:1:0x0000]: 'async_initialize' stage succeeded
[0x3152:1:0x0402]: 'async_initialize' stage succeeded
[0x3152:1:0x0006]: 'async_initialize' stage succeeded
[0x3152:1:0x0019]: 'async_initialize' stage succeeded
[0x3152](TS0601): power source: Battery or Unknown
[0x3152](TS0601): completed initialization
[0x3152:1:0x0006]: attempting to update onoff state - from cache: True
Error handling '_unsupported_attribute_added' event with (b4:e3:f9:ff:fe:02:dd:b7, 1, 1029, 0) params: FOREIGN KEY constraint failed
Error handling '_unsupported_attribute_added' event with (b4:e3:f9:ff:fe:02:dd:b7, 1, 1026, 0) params: FOREIGN KEY constraint failed
Error handling '_unsupported_attribute_added' event with (b4:e3:f9:ff:fe:02:dd:b7, 1, 6, 0) params: FOREIGN KEY constraint failed
[0x3152:zdo] ZDO request ZDOCmd.Node_Desc_req: [0x0000]
[0x3152:zdo] Unsupported ZDO request:ZDOCmd.Node_Desc_req
[0x3152:1:0x0000] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=0 command_id=Command.Report_Attributes>
[0x3152:1:0x0000] ZCL request 0x000a: [[Attribute(attrid=1, value=<TypeValue type=uint8_t, value=85>), Attribute(attrid=65506, value=<TypeValue type=uint8_t, value=31>), Attribute(attrid=65508, value=<TypeValue type=uint8_t, value=1>)]]
[0x3152:1:0x0000] Attribute report received: app_version=85, 65506=31, 65508=1
[0x3152:1:0x000a] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=False disable_default_response=False> manufacturer=None tsn=1 command_id=Command.Read_Attributes>
[0x3152:1:0x000a] ZCL request 0x0000: [[7]]
[0x3152:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=2 command_id=36>
[0x3152:1:0xef00] ZCL request 0x0024: [[0, 5]]
[0x3152:1:0xef00] No handler for cluster command 36
[0x0566:1:0x0300] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=21 command_id=Command.Report_Attributes>
[0x0566:1:0x0300] ZCL request 0x000a: [[Attribute(attrid=1, value=<TypeValue type=uint8_t, value=161>), Attribute(attrid=0, value=<TypeValue type=uint8_t, value=28>)]]
[0x0566:1:0x0300] Attribute report received: current_saturation=161, current_hue=28
===============
No critical errors then the system is loading the quirl for the device only some problem with the state of the OnOff cluster that can being little strange then its made of the quirk and time request looks working OK.
Can you putting in zhaquirks: debug
i HA logging configuration in the section for ZHA so we can see if the device is sending some useful information and if its being piped to the right new cluster.
Just posting that I have the same issue, the device is useless as entities are empty. Happy to help where I can, but will need instructions on what to post. Thanks
No critical errors then the system is loading the quirl for the device only some problem with the state of the OnOff cluster that can being little strange then its made of the quirk and time request looks working OK.
Can you putting in
zhaquirks: debug
i HA logging configuration in the section for ZHA so we can see if the device is sending some useful information and if its being piped to the right new cluster.
I will do that asap this afternoon
@MattWestb as for your Python file one mistake was class TuyaSiren2(TuyaSiren): -> class TuyaSiren2(CustomDevice):
For OnOff command function is for switching Switch itself. Missing overrided function write_attributes is doing writes to attribute of the device itself. You have to write that write_attribute function because you also have there LocalDataCluster, which fakes all writes through Zigbee It prevents remote writes: https://github.com/zigpy/zha-device-handlers/blob/master/zhaquirks/init.py#L92
tuya_manufacturer is actually a class TuyaManufCluster
class TuyaManufCluster(CustomCluster):
"""Tuya manufacturer specific cluster."""
name = "Tuya Manufacturer Specicific"
cluster_id = TUYA_CLUSTER_ID
ep_attribute = "tuya_manufacturer"
set_time_offset = 0
set_time_local_offset = None
I sit mostly on TRV but that siren could work with the modified file below ts0601_siren.py.zip
BTW Best debug level is:
logger:
default: info
logs:
homeassistant.components.zha: debug
zigpy: debug
zhaquirks: debug
Great thanks @jacekk015 !!
I was only putting in the muíssing cluster in replacement and fixing the changed ones so its shall using the time cluster that is missing on the old Zigbee module.
I can't understand how the last PR that adding this was working at all for that user but is not my problem if hi as not testing it.
Some brave user more testing ??
I can test this out this weekend!
Where do I find the file to be replaced in HomeAssistant? Can you share a "path" for VSCode?
Thanks!
Great !
Last updated local quirk is in: https://github.com/zigpy/zha-device-handlers/issues/877#issuecomment-984731160 install it as local quirk is easyest https://github.com/zigpy/zha-device-handlers/discussions/693#discussioncomment-857274.
Actually they made some magic commits to make this Siren works in Z2M - need to take a look, but now's time for dinner ;-)
Does not work even with the second quirk. It stucks on configuration popup. If I restart HA, zha does not load anymore with the attached zha_error.txt Debug log during pair attempt is attached as well. home-assistant.log zha_error.txt
@JackTalisker ZHA is totally right with that error - there were missing some lines ts0601_siren.py.zip
Now the configuration ends but does not work. It exposes the same useless entity switch and keeps blinking (pairing mode).
Log with debug attached below home-assistant.log
That device in Z2M received special treatment for pairing. It's kind a hard to debug if you don't have this device in your hand. Trying to port that fix to ZHA but it's not a 1:1 code https://github.com/Koenkk/zigbee-herdsman-converters/commit/368983787934a8a5b64e6169d4f518c930926d75 https://github.com/Koenkk/zigbee-herdsman/commit/e0b6ceaeca24ede57930f2552b2332b7108ca211
Ops i think its need updating one APS key that is disabled in ZHA if i remember right.
@puddly can ZHA updating APS key on device request ?
Added parameter SKIP_CONFIGURATION which should skip some config issues. Worth to try: ts0601_siren.py.zip
After a couple of tries now 3 entities appeared (no battery entity anyway) but aren't working. The siren keeps flashing as in pairing mode.
Image and log attached.
home-assistant.log
This was the same behaviour I've been seeing from the very first paring process. I haven't been able to try the updated script but it wouldn't seem to be affecting the results.
Here's a screenshot of what I saw in the HA panel, and the blinking light looks the same to me.
More details in the HA thread: https://community.home-assistant.io/t/no-entities-in-zigbee-tuya-siren-with-zha/256927/43
Thanks!
@JackTalisker There's definitely a problem with initialization at the pairing process. I've spend over 4 hours on detecting process of pairing in ZHA. Tried to add missing command and mimic action that was made in code of Z2M. I know what to do, but not sure if I do it in the right place. If someone willing to try the code here it is: ts0601_siren.py.zip
@jacekk015 I really appreciate your efforts Jacek, and shure other users as well. After a couple of pairing tries the single useless switch entity appeared again. No Humidity or Temp entities this time. Leds keeps blinking. Log attached. home-assistant.log
I'll try myself tomorrow and include the logs I get from the "vanilla" ZHA installation, as well as the modified py script and see if I can share something relevant from the DIFF.
Thanks for your help!
El vie, 3 dic 2021 a la(s) 18:33, JackTalisker @.***) escribió:
I really appreciate your efforts Jacek, and shure other users as well. After a couple of pairing tries the single useless switch entity appeared again. No Humidity or Temp entities this time. Leds keeps blinking. Log attached. home-assistant.log https://github.com/zigpy/zha-device-handlers/files/7652428/home-assistant.log
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/zigpy/zha-device-handlers/issues/877#issuecomment-985842106, or unsubscribe https://github.com/notifications/unsubscribe-auth/AA27JMUVXPU77BXXJEM2Q7TUPEZRBANCNFSM44GXDL2Q . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
@JackTalisker Error is here. But is good to see that since now I know that code responded to command 17 - that was the case here. When I get command 17, then I'm sending two commands 0x003 and 0x0010, like Z2M does here: https://github.com/Koenkk/zigbee-herdsman-converters/commit/368983787934a8a5b64e6169d4f518c930926d75
self.create_catching_task(super().command(0x0003, None, expect_reply=False)) That None is a problem for now. To be hones we need to send empty command. Will take a look at this.
2021-12-03 22:27:01 WARNING (MainThread) [zigpy.zcl] [0xaf75:1:0xef00] Unknown cluster-specific command 17
2021-12-03 22:27:01 DEBUG (MainThread) [zigpy.zcl] [0xaf75:1:0xef00] ZCL request 0x0011: b'\x00\x0bD'
2021-12-03 22:27:01 ERROR (MainThread) [bellows.ezsp] Exception running handler
Traceback (most recent call last):
File "/srv/homeassistant/lib/python3.8/site-packages/bellows/ezsp/__init__.py", line 301, in handle_callback
handler(*args)
File "/srv/homeassistant/lib/python3.8/site-packages/bellows/zigbee/application.py", line 242, in ezsp_callback_handler
self._handle_frame(*args)
File "/srv/homeassistant/lib/python3.8/site-packages/bellows/zigbee/application.py", line 297, in _handle_frame
self.handle_message(
File "/srv/homeassistant/lib/python3.8/site-packages/zigpy/application.py", line 214, in handle_message
return sender.handle_message(
File "/srv/homeassistant/lib/python3.8/site-packages/zigpy/device.py", line 354, in handle_message
return endpoint.handle_message(
File "/srv/homeassistant/lib/python3.8/site-packages/zigpy/endpoint.py", line 210, in handle_message
handler(hdr, args, dst_addressing=dst_addressing)
File "/srv/homeassistant/lib/python3.8/site-packages/zigpy/zcl/__init__.py", line 205, in handle_message
self.handle_cluster_request(hdr, args, dst_addressing=dst_addressing)
File "/home/homeassistant/.homeassistant/custom_zha_quirks/ts0601_siren.py", line 91, in handle_cluster_request
self.create_catching_task(super().command(0x0003, None, expect_reply=False))
File "/srv/homeassistant/lib/python3.8/site-packages/zigpy/quirks/__init__.py", line 182, in command
return self.request(
File "/srv/homeassistant/lib/python3.8/site-packages/zigpy/util.py", line 132, in wrapper
return func(*args, **kwargs)
File "/srv/homeassistant/lib/python3.8/site-packages/zigpy/zcl/__init__.py", line 142, in request
optional = len([s for s in schema if hasattr(s, "optional") and s.optional])
TypeError: 'NoneType' object is not iterable
@JackTalisker Could you retest new file and post some logs? After file change HA restart needed. ts0601_siren.py.zip
Here it is. Same results. One entity not working and leds blinking. home-assistant.log
Las try, I think. I did override initialization function and add there those two needed commands. Tested on my TRV - I don't have that Siren, but I see that commands are send and it interrupts a normal flow of pairing. If you could try it and put some logs. Another step is to ask admins who know internals process of pairing well, to put needed commands in a right place. After file change HA restart needed. ts0601_siren.py.zip
Same results. One entity not working and leds blinking. log attached home-assistant.log