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
743 stars 680 forks source link

[Device Support Request] tuya neo siren _TZE200_d0yu2xgi #877

Closed dryros closed 1 year ago

dryros commented 3 years ago

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](TS0601): started configuration
[0x685E:ZDO](TS0601): '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](TS0601): completed configuration
[0x685E](TS0601): 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](TS0601): started initialization
[0x685E:ZDO](TS0601): '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](TS0601): power source: Battery or Unknown
[0x685E](TS0601): 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

Sverto commented 3 years ago

Some debugging information that might be relevant is posted here: https://github.com/Koenkk/zigbee2mqtt/issues/7407#issuecomment-853120732

github-actions[bot] commented 2 years 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.

JackTalisker commented 2 years ago

Yes, please add the support for this device. According to HA community thare are many users reporting the same issue (inlcluding me). Thank you.

nachobazz commented 2 years ago

+1 I have the siren sitting in a drawer and haven't managed to make it work. Please :)

Thanks!

MattWestb commented 2 years ago

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

JackTalisker commented 2 years ago

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

===============

MattWestb commented 2 years ago

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.

DM-AU commented 2 years ago

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

JackTalisker commented 2 years ago

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

jacekk015 commented 2 years ago

@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
MattWestb commented 2 years ago

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 ??

nachobazz commented 2 years ago

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!

MattWestb commented 2 years ago

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.

jacekk015 commented 2 years ago

Actually they made some magic commits to make this Siren works in Z2M - need to take a look, but now's time for dinner ;-)

JackTalisker commented 2 years ago

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

jacekk015 commented 2 years ago

@JackTalisker ZHA is totally right with that error - there were missing some lines ts0601_siren.py.zip

JackTalisker commented 2 years ago

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

jacekk015 commented 2 years ago

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

MattWestb commented 2 years ago

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 ?

jacekk015 commented 2 years ago

Added parameter SKIP_CONFIGURATION which should skip some config issues. Worth to try: ts0601_siren.py.zip

JackTalisker commented 2 years ago

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 sirena2

nachobazz commented 2 years ago

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.

1aa47f8d25b3a330d1a25f2dc49ff17d7a2cae3e

More details in the HA thread: https://community.home-assistant.io/t/no-entities-in-zigbee-tuya-siren-with-zha/256927/43

Thanks!

jacekk015 commented 2 years ago

@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

JackTalisker commented 2 years ago

@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

nachobazz commented 2 years ago

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.

jacekk015 commented 2 years ago

@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
jacekk015 commented 2 years ago

@JackTalisker Could you retest new file and post some logs? After file change HA restart needed. ts0601_siren.py.zip

JackTalisker commented 2 years ago

Here it is. Same results. One entity not working and leds blinking. home-assistant.log

jacekk015 commented 2 years ago

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

JackTalisker commented 2 years ago

Same results. One entity not working and leds blinking. log attached home-assistant.log

jacekk015 commented 2 years ago

@JackTalisker In the logs I see problems that Siren ask for time sync

2021-12-04 22:14:54 DEBUG (MainThread) [zigpy.zcl] [0x5b49:1:0xef00] ZCL request 0x0024: [[0, 5]]
2021-12-04 22:14:54 DEBUG (MainThread) [zigpy.zcl] [0x5b49:1:0xef00] No handler for cluster command 36

Was wonder why it isn't supported, because our TRVs are syncing nicely. Found that replacement element of quirk was missing some clusters, one of them was responsible for time request. Check it, if you have time, and post the logs ts0601_siren.py.zip

JackTalisker commented 2 years ago

This time it stucks on configuration popup and the search ends. Log attached. home-assistant.log sirena3

jacekk015 commented 2 years ago

@JackTalisker battery_bus was missing in INIT function ts0601_siren.py.zip

JackTalisker commented 2 years ago

I forgot to remove the partially configured device after the previous attempt and after uploaded the new quirk I deleted the pycache and restarted HA. The not removed device was there with all the entities but blinking and not working. Then I removed it and tried to readd with the new quirk but only two non working entities appeared and always blinking. I think you are approaching to the solution... Images and log (log with several pairing attempts) attached. home-assistant.log

sirena4 sirena5

JackTalisker commented 2 years ago

Hello Jacek, are there any news abiut this device? Thank you

nachobazz commented 2 years ago

Just FYI I switched to zigbee2mqtt and re-setup all my devices there.

The siren works natively without issues using z2m. I saw a few additional upgrades in the process like some motion sensors that now show additional temperature sensors and better stability.

Best.

rbert001 commented 2 years ago

still looking forward to a solution in zha, in z2m it's working nicely..

amokrunner commented 2 years ago

Seeing the same as noted by @JackTalisker above... flashing pairing light and only have an on/off entity in HA. Any update on this PR for integration w/ ZHA?

alexsands commented 2 years ago

I'm seeing this as well. Looks like the same issue as #1136

rbert001 commented 2 years ago

Same issues.. not working in ZHA yet

ioExpander commented 2 years ago

Hi there. Just purchased this siren as well and getting the same behavior as described : the paring process seems to work in ZHA but the siren device keeps on blinking. Device info TS0601 by _TZE200_d0yu2xgi

Since I'm a newbie with ZHA and HomeAssistant I don't really know where to start. But I'm willing to try is there any way I can help resolve this issue ? I would really like to avoid switching all my devices to Z2M. Thank you.

officedrone commented 2 years ago

+1 for this one, hoping someone can update the quirk as the one included with HA, even version 2022.10 is not working for _TZE200_d0yu2xgi siren. Same issue here, it seems the siren is partially picked up in HA (initialization completed and , some limited but non-working entities show up, however the device itself seems to not think it has completed the pairing as it is stuck in flashing lights /pairing mode.

RealKanashii commented 2 years ago

Same here, it's a nice siren. Right now the trigger works also the temp and humidity but is not possible to change tune or volume. image

Craig01988 commented 1 year ago

Having all the same issues Although I don't get temp or humidity sensors showing. Has anyone managed to get this siren working with ZHA?

RealKanashii commented 1 year ago

Having all the same issues Although I don't get temp or humidity sensors showing. Has anyone managed to get this siren working with ZHA?

Mine is working but with default tune. Sometime takes two o three retries to bind correctly: image

officedrone commented 1 year ago

Having all the same issues Although I don't get temp or humidity sensors showing. Has anyone managed to get this siren working with ZHA?

Mine is working but with default tune. Sometime takes two o three retries to bind correctly: image

Is this with ZHA or Zigbee2MQTT ?

RealKanashii commented 1 year ago

ZHA

alexsands commented 1 year ago

@officedrone can you post your device diagnostics (three dots next to Reconfigure > Download diagnostics)? I've been working on this a little the past week and now have mine pairing with a custom quirk, but I'm curious how you have temperature and humidity using what I assume is TuyaSiren2 since that doesn't seem to work for anyone else.

RealKanashii commented 1 year ago

@officedrone can you post your device diagnostics (three dots next to Reconfigure > Download diagnostics)? I've been working on this a little the past week and now have mine pairing with a custom quirk, but I'm curious how you have temperature and humidity using what I assume is TuyaSiren2 since that doesn't seem to work for anyone else.

Me or @officedrone ?

alexsands commented 1 year ago

@officedrone can you post your device diagnostics (three dots next to Reconfigure > Download diagnostics)? I've been working on this a little the past week and now have mine pairing with a custom quirk, but I'm curious how you have temperature and humidity using what I assume is TuyaSiren2 since that doesn't seem to work for anyone else.

Me or @officedrone ?

Sorry, yes I meant you @RealKanashii