question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

[Device Support Request] TZE200_ntcy3xu1 Smoke Detector (Tuya)

See original GitHub issue

Unable to get this device add to ZHA or Z2MQTT (TZE200_ntcy3xu1 TS0601)

  • No entities available
  • At least Smoke Alarm and Battery support would be great
  • Got 3 Smoke Detectors, maybe possible to make a group if 1 goes on all others also go on 😃

Link to the product: https://nl.aliexpress.com/item/1005004028271868.html?spm=a2g0o.detail.1000014.6.60ea58e9JKBVqU&gps-id=pcDetailBottomMoreOtherSeller&scm=1007.40050.274735.0&scm_id=1007.40050.274735.0&scm-url=1007.40050.274735.0&pvid=88b4e6bd-d89d-40be-8c8c-daf880cd73b7&_t=gps-id:pcDetailBottomMoreOtherSeller,scm-url:1007.40050.274735.0,pvid:88b4e6bd-d89d-40be-8c8c-daf880cd73b7,tpp_buckets:668%232846%238114%231999&pdp_ext_f=%257B%2522sku_id%2522%253A%252212000027793000075%2522%252C%2522sceneId%2522%253A%252230050%2522%257D&pdp_pi=-1%253B5.55%253B-1%253B-1%2540salePrice%253BEUR%253Brecommend-recommend

[0x0000:zdo] ZDO request ZDOCmd.Mgmt_Permit_Joining_rsp: [<Status.SUCCESS: 0>] [0x0000:zdo] No handler for ZDO request:ZDOCmd.Mgmt_Permit_Joining_rsp([<Status.SUCCESS: 0>]) New device 0xaaf3 (a4:c1:38:0e:9d:6f:69:67) joined the network [0xaaf3] Scheduling initialization Received frame on uninitialized device <Device model=None manuf=None nwk=0xAAF3 ieee=a4:c1:38:0e:9d:6f:69:67 is_initialized=False> from ep 0 to ep 0, cluster 19: b’\x07\xf3\xaagio\x9d\x0e8\xc1\xa4\x80’ [0xaaf3:zdo] ZDO request ZDOCmd.Device_annce: [0xAAF3, a4:c1:38:0e:9d:6f:69:67, 128] Tries remaining: 3 [0xaaf3] Requesting ‘Node Descriptor’ Tries remaining: 2 [0xaaf3] Extending timeout for 0xd2 request Received frame on uninitialized device <Device model=None manuf=None nwk=0xAAF3 ieee=a4:c1:38:0e:9d:6f:69:67 is_initialized=False> from ep 0 to ep 0, cluster 32770: b’\xd2\x00\xf3\xaa\x02@\x80A\x11BB\x00\x00*B\x00\x00’ [0xaaf3] 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=4417, maximum_buffer_size=66, maximum_incoming_transfer_size=66, server_mask=10752, maximum_outgoing_transfer_size=66, 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) [0xaaf3] Discovering endpoints Tries remaining: 3 [0xaaf3] Extending timeout for 0xd3 request Received frame on uninitialized device <Device model=None manuf=None nwk=0xAAF3 ieee=a4:c1:38:0e:9d:6f:69:67 is_initialized=False> from ep 0 to ep 0, cluster 32773: b’\xd3\x00\xf3\xaa\x01\x01’ [0xaaf3] Discovered endpoints: [1] [0xaaf3] Initializing endpoints [<Endpoint id=1 in=[] out=[] status=<Status.NEW: 0>>] [0xaaf3:1] Discovering endpoint information Tries remaining: 3 [0xaaf3] Extending timeout for 0xd4 request Received frame on uninitialized device <Device model=None manuf=None nwk=0xAAF3 ieee=a4:c1:38:0e:9d:6f:69:67 is_initialized=False> from ep 0 to ep 0, cluster 32772: b’\xd4\x00\xf3\xaa\x14\x01\x04\x01Q\x00\x01\x04\x04\x00\x05\x00\x00\xef\x00\x00\x02\x19\x00\n\x00’ [0xaaf3: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 [0xAAF3:1:0x0000] Sending request header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=False, is_reply=0, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True), tsn=213, command_id=<GeneralCommand.Read_Attributes: 0>, *is_reply=False) [0xAAF3:1:0x0000] Sending request: Read_Attributes(attribute_ids=[4, 5]) [0xaaf3] Extending timeout for 0xd5 request [0xAAF3:1:0x0000] Received ZCL frame: b’\x18\xD5\x01\x04\x00\x00\x42\x10\x5F\x54\x5A\x45\x32\x30\x30\x5F\x6E\x74\x63\x79\x33\x78\x75\x31\x05\x00\x00\x42\x06\x54\x53\x30\x36\x30\x31’ [0xAAF3:1:0x0000] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, is_reply=1, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=213, command_id=1, *is_reply=True) [0xAAF3:1:0x0000] Decoded ZCL frame: Basic:Read_Attributes_rsp(status_records=[ReadAttributeRecord(attrid=0x0004, status=<Status.SUCCESS: 0>, value=TypeValue(type=CharacterString, value=‘_TZE200_ntcy3xu1’)), ReadAttributeRecord(attrid=0x0005, status=<Status.SUCCESS: 0>, value=TypeValue(type=CharacterString, value=‘TS0601’))]) [0xaaf3] Read model ‘TS0601’ and manufacturer ‘_TZE200_ntcy3xu1’ from <Endpoint id=1 in=[groups:0x0004, scenes:0x0005, None:0xEF00, basic:0x0000] out=[ota:0x0019, time:0x000A] status=<Status.ZDO_INIT: 1>> [0xaaf3] Discovered basic device information for <Device model='TS0601' manuf='_TZE200_ntcy3xu1' nwk=0xAAF3 ieee=a4:c1:38:0e:9d:6f:69:67 is_initialized=True> Device is initialized <Device model='TS0601' manuf='_TZE200_ntcy3xu1' nwk=0xAAF3 ieee=a4:c1:38:0e:9d:6f:69:67 is_initialized=True> Checking quirks for _TZE200_ntcy3xu1 TS0601 (a4:c1:38:0e:9d:6f:69:67) Considering <class ‘zhaquirks.xbee.xbee_io.XBeeSensor’> Fail because endpoint list mismatch: {232, 230} {1} Considering <class ‘zhaquirks.xbee.xbee3_io.XBee3Sensor’> Fail because endpoint list mismatch: {232, 230} {1} Considering <class ‘zhaquirks.smartthings.tag_v4.SmartThingsTagV4’> Fail because device_type mismatch on at least one endpoint Considering <class ‘zhaquirks.smartthings.multi.SmartthingsMultiPurposeSensor’> Fail because device_type mismatch on at least one endpoint Considering <class ‘zhaquirks.netvox.z308e3ed.Z308E3ED’> Fail because device_type mismatch on at least one endpoint Considering <class ‘zhaquirks.gledopto.soposhgu10.SoposhGU10’> Fail because endpoint list mismatch: {11, 13} {1} Considering <class ‘bellows.zigbee.application.EZSPCoordinator’> Fail because device_type mismatch on at least one endpoint ‘sensor’ component -> ‘RSSISensor’ using [‘basic’] ‘sensor’ component -> ‘LQISensor’ using [‘basic’] device - 0xAAF3:a4:c1:38:0e:9d:6f:69:67 entering async_device_initialized - is_new_join: True device - 0xAAF3:a4:c1:38:0e:9d:6f:69:67 has joined the ZHA zigbee network 0xAAF3: started configuration 0xAAF3:ZDO: ‘async_configure’ stage succeeded [0xAAF3:1:0x0000]: finished channel configuration [0xAAF3:1:0x0019]: finished channel configuration Error handling ‘_save_attribute’ event with (a4:c1:38:0e:9d:6f:69:67, 1, 0, 4, ‘TZE200_ntcy3xu1’) params: FOREIGN KEY constraint failed [0xAAF3:1:0x0000]: ‘async_configure’ stage succeeded [0xAAF3:1:0x0019]: ‘async_configure’ stage succeeded Error handling ‘save_attribute’ event with (a4:c1:38:0e:9d:6f:69:67, 1, 0, 5, ‘TS0601’) params: FOREIGN KEY constraint failed 0xAAF3: completed configuration 0xAAF3: stored in registry: ZhaDeviceEntry(name=‘TZE200_ntcy3xu1 TS0601’, ieee=‘a4:c1:38:0e:9d:6f:69:67’, last_seen=1649867790.7504046) 0xAAF3: started initialization 0xAAF3:ZDO: ‘async_initialize’ stage succeeded [0xAAF3:1:0x0000]: initializing channel: from_cache: False [0xAAF3:1:0x0000]: finished channel initialization [0xAAF3:1:0x0019]: initializing channel: from_cache: False [0xAAF3:1:0x0019]: finished channel initialization [0xAAF3:1:0x0000]: ‘async_initialize’ stage succeeded [0xAAF3:1:0x0019]: ‘async_initialize’ stage succeeded 0xAAF3: power source: Battery or Unknown 0xAAF3: completed initialization [0xAAF3:1:0xef00] Received ZCL frame: b’\x09\xB4\x02\x00\x5C\x01\x04\x00\x01\x01’ [0xAAF3:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=180, command_id=2, *is_reply=True) [0xAAF3:1:0xef00] Unknown cluster command 2 b’\x00\\x01\x04\x00\x01\x01’ [0xAAF3:1:0xef00] Received command 0x02 (TSN 180): b’\x00\\x01\x04\x00\x01\x01’ [0xAAF3:1:0xef00] No explicit handler for cluster command 0x02: b’\x00\\x01\x04\x00\x01\x01’ [0xAAF3:1:0xef00] Received ZCL frame: b’\x09\xB4\x02\x00\x5C\x01\x04\x00\x01\x01’ [0xAAF3:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=180, command_id=2, *is_reply=True) [0xAAF3:1:0xef00] Unknown cluster command 2 b’\x00\\x01\x04\x00\x01\x01’ [0xAAF3:1:0xef00] Received command 0x02 (TSN 180): b’\x00\\x01\x04\x00\x01\x01’ [0xAAF3:1:0xef00] No explicit handler for cluster command 0x02: b’\x00\\x01\x04\x00\x01\x01’ [0xAAF3:1:0xef00] Received ZCL frame: b’\x09\xB4\x02\x00\x5C\x01\x04\x00\x01\x01’ [0xAAF3:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=180, command_id=2, *is_reply=True) [0xAAF3:1:0xef00] Unknown cluster command 2 b’\x00\\x01\x04\x00\x01\x01’ [0xAAF3:1:0xef00] Received command 0x02 (TSN 180): b’\x00\\x01\x04\x00\x01\x01’ [0xAAF3:1:0xef00] No explicit handler for cluster command 0x02: b’\x00\\x01\x04\x00\x01\x01’ [0xAAF3:1:0xef00] Received ZCL frame: b’\x09\xB4\x02\x00\x5C\x01\x04\x00\x01\x01’ [0xAAF3:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=180, command_id=2, *is_reply=True) [0xAAF3:1:0xef00] Unknown cluster command 2 b’\x00\\x01\x04\x00\x01\x01’ [0xAAF3:1:0xef00] Received command 0x02 (TSN 180): b’\x00\\x01\x04\x00\x01\x01’ [0xAAF3:1:0xef00] No explicit handler for cluster command 0x02: b’\x00\\x01\x04\x00\x01\x01’ [0xAAF3:1:0xef00] Received ZCL frame: b’\x09\xB4\x02\x00\x5C\x01\x04\x00\x01\x01’ [0xAAF3:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=180, command_id=2, *is_reply=True) [0xAAF3:1:0xef00] Unknown cluster command 2 b’\x00\\x01\x04\x00\x01\x01’ [0xAAF3:1:0xef00] Received command 0x02 (TSN 180): b’\x00\\x01\x04\x00\x01\x01’ [0xAAF3:1:0xef00] No explicit handler for cluster command 0x02: b’\x00\\x01\x04\x00\x01\x01’ [0xAAF3:1:0xef00] Received ZCL frame: b’\x09\xB4\x02\x00\x5C\x01\x04\x00\x01\x01’ [0xAAF3:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=180, command_id=2, *is_reply=True) [0xAAF3:1:0xef00] Unknown cluster command 2 b’\x00\\x01\x04\x00\x01\x01’ [0xAAF3:1:0xef00] Received command 0x02 (TSN 180): b’\x00\\x01\x04\x00\x01\x01’ [0xAAF3:1:0xef00] No explicit handler for cluster command 0x02: b’\x00\\x01\x04\x00\x01\x01’ [0xB3A6:1:0x0b04]: async_update [0xB3A6:1:0x0b04] Sending request header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=False, is_reply=0, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True), tsn=214, command_id=<GeneralCommand.Read_Attributes: 0>, *is_reply=False) [0xB3A6:1:0x0b04] Sending request: Read_Attributes(attribute_ids=[1291, 1288, 1285]) [0xB3A6:1:0x0b04] Received ZCL frame: b’\x18\xD6\x01\x0B\x05\x00\x29\x00\x00\x08\x05\x00\x21\x00\x00\x05\x05\x00\x21\xE8\x00’ [0xB3A6:1:0x0b04] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, is_reply=1, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=214, command_id=1, *is_reply=True) [0xB3A6:1:0x0b04] Decoded ZCL frame: TuyaZBElectricalMeasurement:Read_Attributes_rsp(status_records=[ReadAttributeRecord(attrid=0x050B, status=<Status.SUCCESS: 0>, value=TypeValue(type=int16s, value=0)), ReadAttributeRecord(attrid=0x0508, status=<Status.SUCCESS: 0>, value=TypeValue(type=uint16_t, value=0)), ReadAttributeRecord(attrid=0x0505, status=<Status.SUCCESS: 0>, value=TypeValue(type=uint16_t, value=232))]) [0xAAF3:1:0xef00] Received ZCL frame: b’\x09\xB5\x02\x00\x5D\x0E\x04\x00\x01\x02’ [0xAAF3:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=181, command_id=2, *is_reply=True) [0xAAF3:1:0xef00] Unknown cluster command 2 b’\x00]\x0e\x04\x00\x01\x02’ [0xAAF3:1:0xef00] Received command 0x02 (TSN 181): b’\x00]\x0e\x04\x00\x01\x02’ [0xAAF3:1:0xef00] No explicit handler for cluster command 0x02: b’\x00]\x0e\x04\x00\x01\x02’ [0xAAF3:1:0xef00] Received ZCL frame: b’\x09\xB6\x02\x00\x5E\x0E\x04\x00\x01\x02’ [0xAAF3:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=182, command_id=2, *is_reply=True) [0xAAF3:1:0xef00] Unknown cluster command 2 b’\x00^\x0e\x04\x00\x01\x02’ [0xAAF3:1:0xef00] Received command 0x02 (TSN 182): b’\x00^\x0e\x04\x00\x01\x02’ [0xAAF3:1:0xef00] No explicit handler for cluster command 0x02: b’\x00^\x0e\x04\x00\x01\x02’ [0xAAF3:1:0xef00] Received ZCL frame: b’\x09\xB7\x02\x00\x5F\x0E\x04\x00\x01\x02’ [0xAAF3:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=183, command_id=2, *is_reply=True) [0xAAF3:1:0xef00] Unknown cluster command 2 b’\x00\x0e\x04\x00\x01\x02’ [0xAAF3:1:0xef00] Received command 0x02 (TSN 183): b’\x00\x0e\x04\x00\x01\x02’ [0xAAF3:1:0xef00] No explicit handler for cluster command 0x02: b’\x00\x0e\x04\x00\x01\x02’ [0xAAF3:1:0xef00] Received ZCL frame: b’\x09\xB8\x11\x00\x37\x40’ [0xAAF3:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=184, command_id=17, *is_reply=True) [0xAAF3:1:0xef00] Unknown cluster command 17 b’\x007@’ [0xAAF3:1:0xef00] Received command 0x11 (TSN 184): b’\x007@’ [0xAAF3:1:0xef00] No explicit handler for cluster command 0x11: b’\x007@’ [0xAAF3:1:0x0000] Received ZCL frame: b’\x08\xB9\x0A\x01\x00\x20\x48\xE2\xFF\x20\x38\xE4\xFF\x20\x00’ [0xAAF3:1:0x0000] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True), tsn=185, command_id=10, *is_reply=True) [0xAAF3:1:0x0000] Decoded ZCL frame: Basic:Report_Attributes(attribute_reports=[Attribute(attrid=0x0001, value=TypeValue(type=uint8_t, value=72)), Attribute(attrid=0xFFE2, value=TypeValue(type=uint8_t, value=56)), Attribute(attrid=0xFFE4, value=TypeValue(type=uint8_t, value=0))]) [0xAAF3:1:0x0000] Received command 0x0A (TSN 185): Report_Attributes(attribute_reports=[Attribute(attrid=0x0001, value=TypeValue(type=uint8_t, value=72)), Attribute(attrid=0xFFE2, value=TypeValue(type=uint8_t, value=56)), Attribute(attrid=0xFFE4, value=TypeValue(type=uint8_t, value=0))]) [0xAAF3:1:0x0000] Attribute report received: app_version=72, 0xFFE2=56, 0xFFE4=0 [0xAAF3:1:0x0000] Sending reply header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=False, is_reply=1, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=185, command_id=<GeneralCommand.Default_Response: 11>, *is_reply=True) [0xAAF3:1:0x0000] Sending reply: Default_Response(command_id=10, status=<Status.SUCCESS: 0>) [0xAAF3:1:0xef00] Received ZCL frame: b’\x09\xBA\x02\x00\x60\x0E\x04\x00\x01\x02’ [0xAAF3:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=186, command_id=2, *is_reply=True) [0xAAF3:1:0xef00] Unknown cluster command 2 b’\x00\x0e\x04\x00\x01\x02' [0xAAF3:1:0xef00] Received command 0x02 (TSN 186): b'\x00\x0e\x04\x00\x01\x02’ [0xAAF3:1:0xef00] No explicit handler for cluster command 0x02: b’\x00\x0e\x04\x00\x01\x02' [0xAAF3:1:0xef00] Received ZCL frame: b'\x09\xBA\x02\x00\x60\x0E\x04\x00\x01\x02' [0xAAF3:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=186, command_id=2, *is_reply=True) [0xAAF3:1:0xef00] Unknown cluster command 2 b'\x00\x0e\x04\x00\x01\x02’ [0xAAF3:1:0xef00] Received command 0x02 (TSN 186): b’\x00\x0e\x04\x00\x01\x02' [0xAAF3:1:0xef00] No explicit handler for cluster command 0x02: b'\x00\x0e\x04\x00\x01\x02’ [0xAAF3:1:0xef00] Received ZCL frame: b’\x09\xBA\x02\x00\x60\x0E\x04\x00\x01\x02’ [0xAAF3:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=186, command_id=2, *is_reply=True) [0xAAF3:1:0xef00] Unknown cluster command 2 b’\x00\x0e\x04\x00\x01\x02' [0xAAF3:1:0xef00] Received command 0x02 (TSN 186): b'\x00\x0e\x04\x00\x01\x02’ [0xAAF3:1:0xef00] No explicit handler for cluster command 0x02: b’\x00\x0e\x04\x00\x01\x02' [0xAAF3:1:0xef00] Received ZCL frame: b'\x09\xBA\x02\x00\x60\x0E\x04\x00\x01\x02' [0xAAF3:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=186, command_id=2, *is_reply=True) [0xAAF3:1:0xef00] Unknown cluster command 2 b'\x00\x0e\x04\x00\x01\x02’ [0xAAF3:1:0xef00] Received command 0x02 (TSN 186): b’\x00\x0e\x04\x00\x01\x02' [0xAAF3:1:0xef00] No explicit handler for cluster command 0x02: b'\x00\x0e\x04\x00\x01\x02’ [0xAAF3:1:0xef00] Received ZCL frame: b’\x09\xBB\x02\x00\x61\x0E\x04\x00\x01\x02’ [0xAAF3:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=187, command_id=2, *is_reply=True) [0xAAF3:1:0xef00] Unknown cluster command 2 b’\x00a\x0e\x04\x00\x01\x02’ [0xAAF3:1:0xef00] Received command 0x02 (TSN 187): b’\x00a\x0e\x04\x00\x01\x02’ [0xAAF3:1:0xef00] No explicit handler for cluster command 0x02: b’\x00a\x0e\x04\x00\x01\x02’ [0xAAF3:1:0xef00] Received ZCL frame: b’\x09\xBC\x02\x00\x62\x0E\x04\x00\x01\x02’ [0xAAF3:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=188, command_id=2, *is_reply=True) [0xAAF3:1:0xef00] Unknown cluster command 2 b’\x00b\x0e\x04\x00\x01\x02’ [0xAAF3:1:0xef00] Received command 0x02 (TSN 188): b’\x00b\x0e\x04\x00\x01\x02’ [0xAAF3:1:0xef00] No explicit handler for cluster command 0x02: b’\x00b\x0e\x04\x00\x01\x02’ [0xB3A6:1:0x0b04]: async_update [0xB3A6:1:0x0b04] Sending request header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=False, is_reply=0, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True), tsn=215, command_id=<GeneralCommand.Read_Attributes: 0>, *is_reply=False) [0xB3A6:1:0x0b04] Sending request: Read_Attributes(attribute_ids=[1291, 1288, 1285]) [0xB3A6:1:0x0b04] Received ZCL frame: b’\x18\xD7\x01\x0B\x05\x00\x29\x00\x00\x08\x05\x00\x21\x00\x00\x05\x05\x00\x21\xE9\x00’ [0xB3A6:1:0x0b04] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, is_reply=1, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=215, command_id=1, *is_reply=True) [0xB3A6:1:0x0b04] Decoded ZCL frame: TuyaZBElectricalMeasurement:Read_Attributes_rsp(status_records=[ReadAttributeRecord(attrid=0x050B, status=<Status.SUCCESS: 0>, value=TypeValue(type=int16s, value=0)), ReadAttributeRecord(attrid=0x0508, status=<Status.SUCCESS: 0>, value=TypeValue(type=uint16_t, value=0)), ReadAttributeRecord(attrid=0x0505, status=<Status.SUCCESS: 0>, value=TypeValue(type=uint16_t, value=233))]) [0xAAF3:1:0x000a] Received ZCL frame: b’\x00\xBD\x00\x07\x00’ [0xAAF3:1:0x000a] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, is_reply=0, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True), tsn=189, command_id=0, *is_reply=False) [0xAAF3:1:0x000a] Decoded ZCL frame: Time:Read_Attributes(attribute_ids=[7]) [0xAAF3:1:0x000a] Received command 0x00 (TSN 189): Read_Attributes(attribute_ids=[7]) [0xAAF3:1:0x000a] Sending reply header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=False, is_reply=1, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=189, command_id=<GeneralCommand.Read_Attributes_rsp: 1>, *is_reply=True) [0xAAF3:1:0x000a] Sending reply: Read_Attributes_rsp(status_records=[ReadAttributeRecord(attrid=0x0007, status=<Status.SUCCESS: 0>, value=TypeValue(type=LocalTime, value=703190233))]) [0xAAF3:1:0x0000] Received ZCL frame: b’\x08\xBE\x0A\xDF\xFF\x42\x23\x79\xD4\xE9\x29\x13\xA8\xD4\xE9\x29\x65\xA9\xD4\xE9\x29\x12\xB1\xD4\xE9\x29\x69\xB3\xD4\xE9\x29\x69\xB4\xD4\xE9\x29\x69\xB5\xD4\xE9\x29\x69’ [0xAAF3:1:0x0000] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True), tsn=190, command_id=10, *is_reply=True) [0xAAF3:1:0x0000] Decoded ZCL frame: Basic:Report_Attributes(attribute_reports=[Attribute(attrid=0xFFDF, value=TypeValue(type=CharacterString, value=‘y )\x13 )e )\x12 )i )i )i )i’))]) [0xAAF3:1:0x0000] Received command 0x0A (TSN 190): Report_Attributes(attribute_reports=[Attribute(attrid=0xFFDF, value=TypeValue(type=CharacterString, value=‘y )\x13 )e )\x12 )i )i )i )i’))]) [0xAAF3:1:0x0000] Attribute report received: 0xFFDF=‘y )\x13 )e )\x12 )i )i )i )i’ [0xAAF3:1:0x0000] Sending reply header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=False, is_reply=1, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=190, command_id=<GeneralCommand.Default_Response: 11>, *is_reply=True) [0xAAF3:1:0x0000] Sending reply: Default_Response(command_id=10, status=<Status.SUCCESS: 0>) [0xAAF3:1:0x0000] Received ZCL frame: b’\x08\xBF\x0A\xDF\xFF\x42\x32\x79\xD4\xE9\x29\x13\xA8\xD4\xE9\x29\x65\xA9\xD4\xE9\x29\x12\xB1\xD4\xE9\x29\x69\xB3\xD4\xE9\x29\x69\xB4\xD4\xE9\x29\x69\xB5\xD4\xE9\x29\x69\xBD\xD4\xE9\x29\x69\xC8\xD4\xE9\x29\x69\xD2\xD4\xE9\x29\x69’ [0xAAF3:1:0x0000] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True), tsn=191, command_id=10, *is_reply=True) [0xAAF3:1:0x0000] Decoded ZCL frame: Basic:Report_Attributes(attribute_reports=[Attribute(attrid=0xFFDF, value=TypeValue(type=CharacterString, value=‘y )\x13 )e )\x12 )i )i )i )i )i )i )i’))]) [0xAAF3:1:0x0000] Received command 0x0A (TSN 191): Report_Attributes(attribute_reports=[Attribute(attrid=0xFFDF, value=TypeValue(type=CharacterString, value=‘y )\x13 )e )\x12 )i )i )i )i )i )i )i’))]) [0xAAF3:1:0x0000] Attribute report received: 0xFFDF=‘y )\x13 )e )\x12 )i )i )i )i )i )i )i’ [0xAAF3:1:0x0000] Sending reply header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=False, is_reply=1, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=191, command_id=<GeneralCommand.Default_Response: 11>, *is_reply=True) [0xAAF3:1:0x0000] Sending reply: Default_Response(command_id=10, status=<Status.SUCCESS: 0>) [0xB3A6:1:0x0b04]: async_update [0xB3A6:1:0x0b04] Sending request header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=False, is_reply=0, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True), tsn=216, command_id=<GeneralCommand.Read_Attributes: 0>, *is_reply=False) [0xB3A6:1:0x0b04] Sending request: Read_Attributes(attribute_ids=[1291, 1288, 1285]) [0xB3A6:1:0x0b04] Received ZCL frame: b’\x18\xD8\x01\x0B\x05\x00\x29\x00\x00\x08\x05\x00\x21\x00\x00\x05\x05\x00\x21\xE8\x00’ [0xB3A6:1:0x0b04] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, is_reply=1, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=216, command_id=1, *is_reply=True) [0xB3A6:1:0x0b04] Decoded ZCL frame: TuyaZBElectricalMeasurement:Read_Attributes_rsp(status_records=[ReadAttributeRecord(attrid=0x050B, status=<Status.SUCCESS: 0>, value=TypeValue(type=int16s, value=0)), ReadAttributeRecord(attrid=0x0508, status=<Status.SUCCESS: 0>, value=TypeValue(type=uint16_t, value=0)), ReadAttributeRecord(attrid=0x0505, status=<Status.SUCCESS: 0>, value=TypeValue(type=uint16_t, value=232))]) [0xB3A6:1:0x0b04]: async_update [0xB3A6:1:0x0b04] Sending request header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=False, is_reply=0, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True), tsn=217, command_id=<GeneralCommand.Read_Attributes: 0>, *is_reply=False) [0xB3A6:1:0x0b04] Sending request: Read_Attributes(attribute_ids=[1291, 1288, 1285]) [0xB3A6:1:0x0b04] Received ZCL frame: b’\x18\xD9\x01\x0B\x05\x00\x29\x00\x00\x08\x05\x00\x21\x00\x00\x05\x05\x00\x21\xE8\x00’ [0xB3A6:1:0x0b04] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, is_reply=1, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=217, command_id=1, *is_reply=True) [0xB3A6:1:0x0b04] Decoded ZCL frame: TuyaZBElectricalMeasurement:Read_Attributes_rsp(status_records=[ReadAttributeRecord(attrid=0x050B, status=<Status.SUCCESS: 0>, value=TypeValue(type=int16s, value=0)), ReadAttributeRecord(attrid=0x0508, status=<Status.SUCCESS: 0>, value=TypeValue(type=uint16_t, value=0)), ReadAttributeRecord(attrid=0x0505, status=<Status.SUCCESS: 0>, value=TypeValue(type=uint16_t, value=232))])

Issue Analytics

  • State:closed
  • Created a year ago
  • Comments:46 (15 by maintainers)

github_iconTop GitHub Comments

4reactions
goldfoxocommented, Apr 21, 2022

I’ve just received one of the same sensors, and the quirk here works, thanks!

Playing around a little bit I think I those can confirm those values a little.

The 0x0104 attribute is the tamper sensor. It sets to 1 when the backplate is off, and 0 when put back on and the tamper button gets pressed in. Funnily though mine wasn’t being reliable and I discovered it’s stuck, I need to give it a jolt to realise the cover is off and send 1.

0x040e does seem like it’s a battery quality type thing. With fresh batteries it reports 2 on every update of anything else. Then I swapped one almost dead battery in, and it reported 0 once when it started up, but then didn’t report again ever. Then I charged two dead batteries up just a tiny bit and tried those. It reported 2 just like brand new batteries for a few minutes, until it reported 0 just once and stopped again.

I suppose 0 does mean very low battery, then it stops sending updates (maybe to save battery). I haven’t seen 1 yet.

2reactions
mwitloxcommented, Apr 21, 2022

Ok sorry forget it. I readd the device, reboot HA serval times now all works again. Maybe something to do with todays update HA Core 2022.4.6

Back to the Smoke sensors.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Tuya Smart Smoke Detector not supported? (TS0601 by ...
I am able to add it as a Zigbee device (ZHA) but it is not detected as a smoke detector. The info that...
Read more >
Smart Sensor Solutions - Tuya Smart
Smoke Detector. Link with multiple alarms, timely push messages through text message and phone calls, and support device linkage.
Read more >
How To Connect The WIFI Smoke Detector To Tuya App
This MINI Smart WIFI smoke detector can not only work as a smoke alarm, but also can send in-time alarm messages to your...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found