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] Tuya ZG-102ZL / _TZE200_pay2byax

See original GitHub issue

Is your feature request related to a problem? Please describe. The device is not supported, I request a full support of this device.

Describe the solution you’d like Full support for the device, primarily to check “open” and “close” of a window / door.

Device signature - this can be acquired by removing the device from ZHA and pairing it again from the add devices screen. Be sure to add the entire content of the log panel after pairing the device to a code block below this line. New device 0x0df7 (a4:c1:38:4d:82:df:a6:b0) joined the network [0x0df7] Scheduling initialization Received frame on uninitialized device <Device model=None manuf=None nwk=0x0DF7 ieee=a4:c1:38:4d:82:df:a6:b0 is_initialized=False> from ep 0 to ep 0, cluster 19: b'\x00\xf7\r\xb0\xa6\xdf\x82M8\xc1\xa4\x80' [0x0df7:zdo] ZDO request ZDOCmd.Device_annce: [0x0DF7, a4:c1:38:4d:82:df:a6:b0, 128] Tries remaining: 3 [0x0df7] Requesting 'Node Descriptor' Tries remaining: 2 [0x0df7] Extending timeout for 0x77 request Received frame on uninitialized device <Device model=None manuf=None nwk=0x0DF7 ieee=a4:c1:38:4d:82:df:a6:b0 is_initialized=False> from ep 0 to ep 0, cluster 32770: b'w\x00\xf7\r\x02@\x80A\x11BB\x00\x00*B\x00\x00' [0x0df7] 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) [0x0df7] Discovering endpoints Tries remaining: 3 [0x0df7] Extending timeout for 0x79 request light.hue_runner_spot_1_1: polling current state [0x3808:11:0x0006] 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=123, command_id=<GeneralCommand.Read_Attributes: 0>, *is_reply=False) [0x3808:11:0x0006] Sending request: Read_Attributes(attribute_ids=[0]) Received frame on uninitialized device <Device model=None manuf=None nwk=0x0DF7 ieee=a4:c1:38:4d:82:df:a6:b0 is_initialized=False> from ep 0 to ep 0, cluster 32773: b'y\x00\xf7\r\x01\x01' [0x0df7] Discovered endpoints: [1] [0x0df7] Initializing endpoints [<Endpoint id=1 in=[] out=[] status=<Status.NEW: 0>>] [0x0df7:1] Discovering endpoint information Tries remaining: 3 [0x0df7] Extending timeout for 0x7d request [0x3808:11:0x0006] Received ZCL frame: b'\x18{\x01\x00\x00\x00\x10\x00' [0x3808:11:0x0006] 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=123, command_id=1, *is_reply=True) [0x3808:11:0x0006] Decoded ZCL frame: OnOff:Read_Attributes_rsp(status_records=[ReadAttributeRecord(attrid=0x0000, status=<Status.SUCCESS: 0>, value=TypeValue(type=Bool, value=<Bool.false: 0>))]) [0x3808:11:0x0008] 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=127, command_id=<GeneralCommand.Read_Attributes: 0>, *is_reply=False) [0x3808:11:0x0008] Sending request: Read_Attributes(attribute_ids=[0]) [0x3808:11:0x0008] Received ZCL frame: b'\x18\x7f\x01\x00\x00\x00 \xfe' [0x3808:11:0x0008] 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=127, command_id=1, *is_reply=True) [0x3808:11:0x0008] Decoded ZCL frame: LevelControl:Read_Attributes_rsp(status_records=[ReadAttributeRecord(attrid=0x0000, status=<Status.SUCCESS: 0>, value=TypeValue(type=uint8_t, value=254))]) [0x3808:11:0x0008]: received attribute: 0 update with value: 254 [0x3808:11:0x0300] 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=129, command_id=<GeneralCommand.Read_Attributes: 0>, *is_reply=False) [0x3808:11:0x0300] Sending request: Read_Attributes(attribute_ids=[8, 7, 3, 4, 16386]) Received frame on uninitialized device <Device model=None manuf=None nwk=0x0DF7 ieee=a4:c1:38:4d:82:df:a6:b0 is_initialized=False> from ep 0 to ep 0, cluster 32772: b'}\x00\xf7\r\x12\x01\x04\x01\x02\x04\x01\x03\x01\x00\x00\x05\x00\x00\x02\x19\x00\n\x00' [0x0df7:1] Discovered endpoint information: SizePrefixedSimpleDescriptor(endpoint=1, profile=260, device_type=1026, device_version=1, input_clusters=[1, 1280, 0], output_clusters=[25, 10]) [0x0DF7: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=131, command_id=<GeneralCommand.Read_Attributes: 0>, *is_reply=False) [0x0DF7:1:0x0000] Sending request: Read_Attributes(attribute_ids=[4, 5]) [0x0df7] Extending timeout for 0x83 request [0x3808:11:0x0300] Received ZCL frame: b'\x18\x81\x01\x08\x00\x000\x02\x07\x00\x00!n\x01\x03\x00\x00!\x0fu\x04\x00\x00!\xf5h\x02@\x86' [0x3808:11:0x0300] 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=129, command_id=1, *is_reply=True) [0x3808:11:0x0300] Decoded ZCL frame: Color:Read_Attributes_rsp(status_records=[ReadAttributeRecord(attrid=0x0008, status=<Status.SUCCESS: 0>, value=TypeValue(type=enum8, value=<enum8.undefined_0x02: 2>)), ReadAttributeRecord(attrid=0x0007, status=<Status.SUCCESS: 0>, value=TypeValue(type=uint16_t, value=366)), ReadAttributeRecord(attrid=0x0003, status=<Status.SUCCESS: 0>, value=TypeValue(type=uint16_t, value=29967)), ReadAttributeRecord(attrid=0x0004, status=<Status.SUCCESS: 0>, value=TypeValue(type=uint16_t, value=26869)), ReadAttributeRecord(attrid=0x4002, status=<Status.UNSUPPORTED_ATTRIBUTE: 134>)]) [0x0DF7:1:0x0000] Received ZCL frame: b'\x18\x83\x01\x04\x00\x00B\x10_TZE200_pay2byax\x05\x00\x00B\x06TS0601' [0x0DF7: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=131, command_id=1, *is_reply=True) [0x0DF7:1:0x0000] Decoded ZCL frame: Basic:Read_Attributes_rsp(status_records=[ReadAttributeRecord(attrid=0x0004, status=<Status.SUCCESS: 0>, value=TypeValue(type=CharacterString, value='_TZE200_pay2byax')), ReadAttributeRecord(attrid=0x0005, status=<Status.SUCCESS: 0>, value=TypeValue(type=CharacterString, value='TS0601'))]) [0x0df7] Read model 'TS0601' and manufacturer '_TZE200_pay2byax' from <Endpoint id=1 in=[power:0x0001, ias_zone:0x0500, basic:0x0000] out=[ota:0x0019, time:0x000A] status=<Status.ZDO_INIT: 1>> [0x0df7] Discovered basic device information for <Device model='TS0601' manuf='_TZE200_pay2byax' nwk=0x0DF7 ieee=a4:c1:38:4d:82:df:a6:b0 is_initialized=True> Device is initialized <Device model='TS0601' manuf='_TZE200_pay2byax' nwk=0x0DF7 ieee=a4:c1:38:4d:82:df:a6:b0 is_initialized=True> Checking quirks for _TZE200_pay2byax TS0601 (a4:c1:38:4d:82:df:a6:b0) 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 input cluster mismatch on at least one endpoint Considering <class 'zhaquirks.netvox.z308e3ed.Z308E3ED'> Fail because input cluster 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 'binary_sensor' component -> 'IASZone' using ['ias_zone'] 'sensor' component -> 'Battery' using ['power'] 'sensor' component -> 'RSSISensor' using ['basic'] 'sensor' component -> 'LQISensor' using ['basic'] device - 0x0DF7:a4:c1:38:4d:82:df:a6:b0 entering async_device_initialized - is_new_join: True device - 0x0DF7:a4:c1:38:4d:82:df:a6:b0 has joined the ZHA zigbee network [0x0DF7](TS0601): started configuration [0x0DF7:ZDO](TS0601): 'async_configure' stage succeeded [0x0DF7:1:0x0500] 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=133, command_id=<GeneralCommand.Read_Attributes: 0>, *is_reply=False) [0x0DF7:1:0x0500] Sending request: Read_Attributes(attribute_ids=[1]) [0x0df7] Extending timeout for 0x85 request [0x0DF7:1:0x0000]: finished channel configuration [0x0df7] Extending timeout for 0x87 request [0x0DF7:1:0x0019]: finished channel configuration Error handling '_save_attribute' event with (a4:c1:38:4d:82:df:a6:b0, 1, 0, 4, '_TZE200_pay2byax') params: FOREIGN KEY constraint failed Error handling '_save_attribute' event with (a4:c1:38:4d:82:df:a6:b0, 1, 0, 5, 'TS0601') params: FOREIGN KEY constraint failed Ignoring message (b'09940200020101000101') on cluster 61184: unknown endpoint or cluster id: 'No cluster ID 0xef00 on (a4:c1:38:4d:82:df:a6:b0, 1)' [0x0DF7:1:0x0500] Received ZCL frame: b'\x18\x85\x01\x01\x00\x001(\x00' [0x0DF7:1:0x0500] 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=133, command_id=1, *is_reply=True) [0x0DF7:1:0x0500] Decoded ZCL frame: IasZone:Read_Attributes_rsp(status_records=[ReadAttributeRecord(attrid=0x0001, status=<Status.SUCCESS: 0>, value=TypeValue(type=enum16, value=<enum16.undefined_0x0028: 40>))]) [0x0DF7:1:0x0500]: started IASZoneChannel configuration [0x0df7] Extending timeout for 0x89 request [0x0DF7:1:0x0001]: bound 'power' cluster: Status.SUCCESS [0x0DF7:1:0x0001] 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=139, command_id=<GeneralCommand.Configure_Reporting: 6>, *is_reply=False) [0x0DF7:1:0x0001] Sending request: Configure_Reporting(config_records=[AttributeReportingConfig(direction=0, attrid=0x0020, datatype=32, min_interval=3600, max_interval=10800, reportable_change=1), AttributeReportingConfig(direction=0, attrid=0x0021, datatype=32, min_interval=3600, max_interval=10800, reportable_change=1)]) [0x0df7] Extending timeout for 0x8b request Ignoring message (b'09940200020101000101') on cluster 61184: unknown endpoint or cluster id: 'No cluster ID 0xef00 on (a4:c1:38:4d:82:df:a6:b0, 1)' [0x0DF7:1:0x0500]: bound 'ias_zone' cluster: Status.SUCCESS [0x0DF7:1:0x0500] 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=141, command_id=<GeneralCommand.Write_Attributes: 2>, *is_reply=False) [0x0DF7:1:0x0500] Sending request: Write_Attributes(attributes=[Attribute(attrid=0x0010, value=TypeValue(type=EUI64, value=00:21:2e:ff:ff:07:79:3e))]) [0x0df7] Extending timeout for 0x8d request Ignoring message (b'09940200020101000101') on cluster 61184: unknown endpoint or cluster id: 'No cluster ID 0xef00 on (a4:c1:38:4d:82:df:a6:b0, 1)' [0x0DF7:1:0x0001] Received ZCL frame: b'\x18\x8b\x07\x00\x00 \x00\x00\x00!\x00' [0x0DF7:1:0x0001] 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=139, command_id=7, *is_reply=True) [0x0DF7:1:0x0001] Decoded ZCL frame: PowerConfiguration:Configure_Reporting_rsp(status_records=[ConfigureReportingResponseRecord(status=0), ConfigureReportingResponseRecord(status=0)]) [0x0DF7:1:0x0001]: Successfully configured reporting for '{'battery_voltage', 'battery_percentage_remaining'}' on 'power' cluster [0x0DF7:1:0x0001]: Failed to configure reporting for '[]' on 'power' cluster: [ConfigureReportingResponseRecord(status=0), ConfigureReportingResponseRecord(status=0)] [0x0DF7:1:0x0001]: finished channel configuration [0x0DF7:1:0x0500] Received ZCL frame: b'\x18\x8d\x04\x00' [0x0DF7:1:0x0500] 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=141, command_id=4, *is_reply=True) [0x0DF7:1:0x0500] Decoded ZCL frame: IasZone:Write_Attributes_rsp(status_records=[WriteAttributesStatusRecord(status=<Status.SUCCESS: 0>)]) [0x0DF7:1:0x0500]: wrote cie_addr: 00:21:2e:ff:ff:07:79:3e to 'ias_zone' cluster: [WriteAttributesStatusRecord(status=<Status.SUCCESS: 0>)] [0x0DF7:1:0x0500]: Sending pro-active IAS enroll response [0x0DF7:1:0x0500] Sending request header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=False, is_reply=0, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=143, command_id=0, *is_reply=False) [0x0DF7:1:0x0500] Sending request: enroll_response(enroll_response_code=<EnrollResponse.Success: 0>, zone_id=0) [0x0DF7:1:0x0500]: finished IASZoneChannel configuration [0x0df7] Extending timeout for 0x8f request [0x0DF7:1:0x0500]: 'async_configure' stage succeeded [0x0DF7:1:0x0000]: 'async_configure' stage succeeded [0x0DF7:1:0x0001]: 'async_configure' stage succeeded [0x0DF7:1:0x0019]: 'async_configure' stage succeeded [0x0DF7](TS0601): completed configuration [0x0DF7](TS0601): stored in registry: ZhaDeviceEntry(name='_TZE200_pay2byax TS0601', ieee='a4:c1:38:4d:82:df:a6:b0', last_seen=1650114287.8170516) [0x0DF7](TS0601): started initialization [0x0DF7:ZDO](TS0601): 'async_initialize' stage succeeded [0x0DF7:1:0x0500]: initializing channel: from_cache: False [0x0DF7:1:0x0500] 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=145, command_id=<GeneralCommand.Read_Attributes: 0>, *is_reply=False) [0x0DF7:1:0x0500] Sending request: Read_Attributes(attribute_ids=[0]) [0x0df7] Extending timeout for 0x91 request [0x0DF7:1:0x0000]: initializing channel: from_cache: False [0x0DF7:1:0x0000]: finished channel initialization [0x0DF7:1:0x0001]: initializing channel: from_cache: False [0x0DF7:1:0x0001] 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=147, command_id=<GeneralCommand.Read_Attributes: 0>, *is_reply=False) [0x0DF7:1:0x0001] Sending request: Read_Attributes(attribute_ids=[32, 33]) [0x0df7] Extending timeout for 0x93 request [0x0DF7:1:0x0019]: initializing channel: from_cache: False [0x0DF7:1:0x0019]: finished channel initialization [0x0DF7:1:0x0500] Received ZCL frame: b'\x18\x8f\x0b\x00\x00' [0x0DF7:1:0x0500] 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=143, command_id=11, *is_reply=True) [0x0DF7:1:0x0500] Decoded ZCL frame: IasZone:Default_Response(command_id=0, status=<Status.SUCCESS: 0>) [0x0DF7:1:0x0500] Received ZCL frame: b'\x18\x91\x01\x00\x00\x000\x00' [0x0DF7:1:0x0500] 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=145, command_id=1, *is_reply=True) [0x0DF7:1:0x0500] Decoded ZCL frame: IasZone:Read_Attributes_rsp(status_records=[ReadAttributeRecord(attrid=0x0000, status=<Status.SUCCESS: 0>, value=TypeValue(type=enum8, value=<enum8.undefined_0x00: 0>))]) [0x0DF7:1:0x0500]: finished channel initialization [0x0DF7:1:0x0001] Received ZCL frame: b'\x18\x93\x01 \x00\x00 \x00!\x00\x00 \x00' [0x0DF7:1:0x0001] 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=147, command_id=1, *is_reply=True) [0x0DF7:1:0x0001] Decoded ZCL frame: PowerConfiguration:Read_Attributes_rsp(status_records=[ReadAttributeRecord(attrid=0x0020, status=<Status.SUCCESS: 0>, value=TypeValue(type=uint8_t, value=0)), ReadAttributeRecord(attrid=0x0021, status=<Status.SUCCESS: 0>, value=TypeValue(type=uint8_t, value=0))]) [0x0DF7:1:0x0001] 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=149, command_id=<GeneralCommand.Read_Attributes: 0>, *is_reply=False) [0x0DF7:1:0x0001] Sending request: Read_Attributes(attribute_ids=[49, 51]) [0x0df7] Extending timeout for 0x95 request [0x0DF7:1:0x000a] Received ZCL frame: b'\x00\x95\x00\x07\x00' [0x0DF7: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=149, command_id=0, *is_reply=False) [0x0DF7:1:0x000a] Decoded ZCL frame: Time:Read_Attributes(attribute_ids=[7]) [0x0DF7:1:0x000a] Received command 0x00 (TSN 149): Read_Attributes(attribute_ids=[7]) [0x0DF7: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=149, command_id=<GeneralCommand.Read_Attributes_rsp: 1>, *is_reply=True) [0x0DF7:1:0x000a] Sending reply: Read_Attributes_rsp(status_records=[ReadAttributeRecord(attrid=0x0007, status=<Status.SUCCESS: 0>, value=TypeValue(type=LocalTime, value=703436690))]) Duplicate 149 TSN [0x0DF7:1:0x0001] Received ZCL frame: b'\x18\x95\x011\x00\x863\x00\x86' [0x0DF7:1:0x0001] 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=149, command_id=1, *is_reply=True) [0x0DF7:1:0x0001] Decoded ZCL frame: PowerConfiguration:Read_Attributes_rsp(status_records=[ReadAttributeRecord(attrid=0x0031, status=<Status.UNSUPPORTED_ATTRIBUTE: 134>), ReadAttributeRecord(attrid=0x0033, status=<Status.UNSUPPORTED_ATTRIBUTE: 134>)]) [0x0DF7:1:0x0001]: finished channel initialization [0x0DF7:1:0x0500]: 'async_initialize' stage succeeded [0x0DF7:1:0x0000]: 'async_initialize' stage succeeded [0x0DF7:1:0x0001]: 'async_initialize' stage succeeded [0x0DF7:1:0x0019]: 'async_initialize' stage succeeded [0x0DF7](TS0601): power source: Battery or Unknown [0x0DF7](TS0601): completed initialization [0x0DF7:1:0x000a] Received ZCL frame: b'\x00\x95\x00\x07\x00' [0x0DF7: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=149, command_id=0, *is_reply=False) [0x0DF7:1:0x000a] Decoded ZCL frame: Time:Read_Attributes(attribute_ids=[7]) [0x0DF7:1:0x000a] Received command 0x00 (TSN 149): Read_Attributes(attribute_ids=[7]) [0x0DF7: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=149, command_id=<GeneralCommand.Read_Attributes_rsp: 1>, *is_reply=True) [0x0DF7:1:0x000a] Sending reply: Read_Attributes_rsp(status_records=[ReadAttributeRecord(attrid=0x0007, status=<Status.SUCCESS: 0>, value=TypeValue(type=LocalTime, value=703436691))]) Ignoring message (b'09960200020101000101') on cluster 61184: unknown endpoint or cluster id: 'No cluster ID 0xef00 on (a4:c1:38:4d:82:df:a6:b0, 1)' Ignoring message (b'09960200020101000101') on cluster 61184: unknown endpoint or cluster id: 'No cluster ID 0xef00 on (a4:c1:38:4d:82:df:a6:b0, 1)' Ignoring message (b'09960200020101000101') on cluster 61184: unknown endpoint or cluster id: 'No cluster ID 0xef00 on (a4:c1:38:4d:82:df:a6:b0, 1)' [0x3808:11:0x0300] Received ZCL frame: b'\x18y\n\x04\x00!\xf5h\x03\x00!\x0fu\x07\x00!n\x01' [0x3808:11:0x0300] 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=121, command_id=10, *is_reply=True) [0x3808:11:0x0300] Decoded ZCL frame: Color:Report_Attributes(attribute_reports=[Attribute(attrid=0x0004, value=TypeValue(type=uint16_t, value=26869)), Attribute(attrid=0x0003, value=TypeValue(type=uint16_t, value=29967)), Attribute(attrid=0x0007, value=TypeValue(type=uint16_t, value=366))]) [0x3808:11:0x0300] Received command 0x0A (TSN 121): Report_Attributes(attribute_reports=[Attribute(attrid=0x0004, value=TypeValue(type=uint16_t, value=26869)), Attribute(attrid=0x0003, value=TypeValue(type=uint16_t, value=29967)), Attribute(attrid=0x0007, value=TypeValue(type=uint16_t, value=366))]) [0x3808:11:0x0300] Attribute report received: current_y=26869, current_x=29967, color_temperature=366 Ignoring message (b'09970200020101000101') on cluster 61184: unknown endpoint or cluster id: 'No cluster ID 0xef00 on (a4:c1:38:4d:82:df:a6:b0, 1)' Ignoring message (b'09970200020101000101') on cluster 61184: unknown endpoint or cluster id: 'No cluster ID 0xef00 on (a4:c1:38:4d:82:df:a6:b0, 1)' Ignoring message (b'09970200020101000101') on cluster 61184: unknown endpoint or cluster id: 'No cluster ID 0xef00 on (a4:c1:38:4d:82:df:a6:b0, 1)' Ignoring message (b'09980200090202000400000064') on cluster 61184: unknown endpoint or cluster id: 'No cluster ID 0xef00 on (a4:c1:38:4d:82:df:a6:b0, 1)' Ignoring message (b'09980200090202000400000064') on cluster 61184: unknown endpoint or cluster id: 'No cluster ID 0xef00 on (a4:c1:38:4d:82:df:a6:b0, 1)' Ignoring message (b'09980200090202000400000064') on cluster 61184: unknown endpoint or cluster id: 'No cluster ID 0xef00 on (a4:c1:38:4d:82:df:a6:b0, 1)' Additional context Add any other context or screenshots about the feature request here. Device signature: { “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)”, “endpoints”: { “1”: { “profile_id”: 260, “device_type”: “0x0402”, “in_clusters”: [ “0x0000”, “0x0001”, “0x0500” ], “out_clusters”: [ “0x000a”, “0x0019” ] } }, “manufacturer”: “_TZE200_pay2byax”, “model”: “TS0601”, “class”: “zigpy.device.Device” }

Issue Analytics

  • State:open
  • Created a year ago
  • Comments:35 (6 by maintainers)

github_iconTop GitHub Comments

2reactions
javicallecommented, Apr 26, 2022

I believe that can be done. Device reports 2 DP:

  • DP1, command_id=257 --> 0/1 values
  • DP2, command_id=514 --> constant 100 value

DP1 is the sensor status. DP2 seems to be battery percentage remaining Maybe there is also a tamper sensor (when battery closure is opened) and/or a low battery sensor (not clear in the vendor site).

I have followed a different approach than @Tropaion . Neither better nor worse, just my approach. ts0601_magnet.py.txt

Download, rename (remove the .txt in filename) and replace your local quirk with this one. Remove any local cache (__pycache__ folder) and restart.

I’m ‘coding’ from secondary laptop and can’t validate code. Lots of compile errors can be expected.

1reaction
centershockcommented, May 29, 2022

The update for ias_zone works now. Values are “on” for an “open window”, “off” for a “closed window”. Thank you very much so far!

For the battery_percentage_remaining. I tried to get battery_percentage_remaining (id: 0x0021) from DoublingPowerConfigurationCluster (Endpoint id: 1, ...) but there is no incoming value. Following the log, I can see an error but don’t know what it means 😉

2022-05-29 20:20:50 DEBUG (MainThread) [zigpy.zcl] [0x711F:1:0x0001] 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=69, command_id=<GeneralCommand.Read_Attributes: 0>, *is_reply=False)
2022-05-29 20:20:51 DEBUG (MainThread) [zigpy.zcl] [0x711F:1:0x0001] Sending request: Read_Attributes(attribute_ids=[33])
2022-05-29 20:20:51 DEBUG (MainThread) [zigpy.device] [0x711f] Extending timeout for 0x45 request
2022-05-29 20:20:51 DEBUG (MainThread) [zigpy_deconz.zigbee.application] Sending Zigbee request with tsn 69 under 70 request id, data: b'0045002100'
2022-05-29 20:20:51 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_request (20, 70, <DeconzSendDataFlags.NONE: 0>, <DeconzAddressEndpoint address_mode=2 address=0x711F endpoint=1>, 260, 1, 1, b'\x00E\x00!\x00', <DeconzTransmitOptions.USE_NWK_KEY_SECURITY: 2>, 0)
2022-05-29 20:20:51 DEBUG (MainThread) [zigpy_deconz.api] APS data request response: [2, <DeviceState.APSDE_DATA_REQUEST_SLOTS_AVAILABLE|2: 34>, 70]
2022-05-29 20:20:58 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [<DeviceState.128|APSDE_DATA_REQUEST_SLOTS_AVAILABLE|APSDE_DATA_CONFIRM|2: 166>, 0]
2022-05-29 20:20:58 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_confirm (0,)
2022-05-29 20:20:58 DEBUG (MainThread) [zigpy_deconz.api] APS data confirm response for request with id 70: f0
2022-05-29 20:20:58 DEBUG (MainThread) [zigpy_deconz.api] Request id: 0x46 'aps_data_confirm' for <DeconzAddressEndpoint address_mode=ADDRESS_MODE.NWK address=0x711f endpoint=1>, status: 0xf0
2022-05-29 20:20:58 DEBUG (MainThread) [zigpy_deconz.zigbee.application] Error while sending 70 req id frame: TXStatus.MAC_TRANSACTION_EXPIRED
2022-05-29 20:20:58 DEBUG (MainThread) [zigpy.device] [0x711f] Delivery error for seq # 0x45, on endpoint id 1 cluster 0x0001: message send failure
Read more comments on GitHub >

github_iconTop Results From Across the Web

Contact Us | Tuya Smart
Submit a request to speak with our IoT experts. Company Name. Contact Person.
Read more >
Tuya Smart - Global IoT Development Platform Service Provider
Customer Service System. View requests, support online responses and progress management. App Value-Added Services. Siri access, App Watch access, phone ...
Read more >
Customer Service System | Tuya Smart
Conveniently view device information and user information to quickly locate issues, quickly and regularly obtain gateway logs, allocate user issues into ...
Read more >
Device Management - Tuya Smart
Register, monitor, remotely manage, and update connected devices on a global scale.
Read more >
What should I do when my device fails to connect ... - Tuya.com
Dear user, if you are using "Auto Scan" to add devices, please click ... our device cannot support WPA2-CERT and WPA3, and the...
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