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] EFEKTA Plant-Watering-Sensor-Zigbee

See original GitHub issue

Name: efektalab.ru EFEKTA_PWS. Custom DIY device. Pairs and appears in ZHA but fails to report soil moisture. Reported temperature and battery level are incorrect. Info and source: https://github.com/smartboxchannel/Plant-Watering-Sensor-Zigbee

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.

Sent 'mgmt_permit_joining_req' to 00:0d:6f:ff:fe:8e:7b:59: [<Status.SUCCESS: 0>]
[0xe213] Delivery error for seq # 0x72, on endpoint id 0 cluster 0x0034: message send failure
Sending 'zdo_leave_req' failed: [0xe213:0:0x0034]: Message send failure
Device 0xe213 (00:12:4b:00:24:42:d3:d2) left the network
Device 0xe213 (00:12:4b:00:24:42:d3:d2) left the network
New device 0xbf06 (00:12:4b:00:24:42:d3:d2) joined the network
[0xbf06] Scheduling initialization
Tries remaining: 3
[0xbf06] Requesting 'Node Descriptor'
Tries remaining: 2
[0xbf06] Extending timeout for 0x76 request
Device 0xbf06 (00:12:4b:00:24:42:d3:d2) joined the network
[0xbf06] Scheduling initialization
[0xbf06] Canceling old initialize call
Tries remaining: 3
[0xbf06] Requesting 'Node Descriptor'
Tries remaining: 2
[0xbf06] Extending timeout for 0x78 request
Device 0xbf06 (00:12:4b:00:24:42:d3:d2) joined the network
[0xbf06] Scheduling initialization
[0xbf06] Canceling old initialize call
Received frame on uninitialized device <Device model=None manuf=None nwk=0xBF06 ieee=00:12:4b:00:24:42:d3:d2 is_initialized=False> from ep 0 to ep 0, cluster 19: b'\x00\x06\xbf\xd2\xd3B$\x00K\x12\x00\x80'
[0xbf06:zdo] ZDO request ZDOCmd.Device_annce: [0xBF06, 00:12:4b:00:24:42:d3:d2, 128]
Tries remaining: 3
[0xbf06] Requesting 'Node Descriptor'
Tries remaining: 2
[0xbf06] Extending timeout for 0x7a request
Received frame on uninitialized device <Device model=None manuf=None nwk=0xBF06 ieee=00:12:4b:00:24:42:d3:d2 is_initialized=False> from ep 0 to ep 0, cluster 54: b'\x02\xb4\x01'
[0xbf06:zdo] ZDO request ZDOCmd.Mgmt_Permit_Joining_req: [180, <Bool.true: 1>]
Received frame on uninitialized device <Device model=None manuf=None nwk=0xBF06 ieee=00:12:4b:00:24:42:d3:d2 is_initialized=False> from ep 1 to ep 255, cluster 3: b'\x11\x01\x01'
[0xbf06] Received ZCL while uninitialized on endpoint id 1, cluster 0x0003 id, hdr: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=False disable_default_response=True> manufacturer=None tsn=1 command_id=1>, payload: b''
Received frame on uninitialized device <Device model=None manuf=None nwk=0xBF06 ieee=00:12:4b:00:24:42:d3:d2 is_initialized=False> from ep 0 to ep 0, cluster 32770: b'x\x00\x06\xbf\x02@\x80\x00\x00P\xa0\x00\x00\x00\xa0\x00\x00'
[0xbf06:zdo] ZDO request ZDOCmd.Node_Desc_rsp: [<Status.SUCCESS: 0>, 0xBF06, 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=0, maximum_buffer_size=80, maximum_incoming_transfer_size=160, server_mask=0, maximum_outgoing_transfer_size=160, 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)]
[0xbf06:zdo] Unsupported ZDO request:ZDOCmd.Node_Desc_rsp
Received frame on uninitialized device <Device model=None manuf=None nwk=0xBF06 ieee=00:12:4b:00:24:42:d3:d2 is_initialized=False> from ep 0 to ep 0, cluster 32770: b'z\x00\x06\xbf\x02@\x80\x00\x00P\xa0\x00\x00\x00\xa0\x00\x00'
[0xbf06] 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=0, maximum_buffer_size=80, maximum_incoming_transfer_size=160, server_mask=0, maximum_outgoing_transfer_size=160, 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)
[0xbf06] Discovering endpoints
Tries remaining: 3
[0xbf06] Extending timeout for 0x7c request
Received frame on uninitialized device <Device model=None manuf=None nwk=0xBF06 ieee=00:12:4b:00:24:42:d3:d2 is_initialized=False> from ep 0 to ep 0, cluster 32773: b'|\x00\x06\xbf\x01\x01'
[0xbf06] Discovered endpoints: [1]
[0xbf06] Initializing endpoints [<Endpoint id=1 in=[] out=[] status=<Status.NEW: 0>>]
[0xbf06:1] Discovering endpoint information
Tries remaining: 3
[0xbf06] Extending timeout for 0x7e request
Received frame on uninitialized device <Device model=None manuf=None nwk=0xBF06 ieee=00:12:4b:00:24:42:d3:d2 is_initialized=False> from ep 0 to ep 0, cluster 32772: b'~\x00\x06\xbf\x10\x01\x04\x01\x0c\x00\x02\x04\x00\x00\x01\x00\x02\x04\x08\x04\x00'
[0xe9c7:zdo] ZDO request ZDOCmd.NWK_addr_req: [00:0d:6f:00:15:44:ef:91, 0, 0]
[0xbf06:1] Discovered endpoint information: SizePrefixedSimpleDescriptor(endpoint=1, profile=260, device_type=12, device_version=2, input_clusters=[0, 1, 1026, 1032], output_clusters=[])
Unknown cluster 1032
[0xbf06] Extending timeout for 0x81 request
[0xbf06: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=129 command_id=Command.Read_Attributes_rsp>
[0xbf06] Read model 'EFEKTA_PWS' and manufacturer 'efektalab.ru' from <Endpoint id=1 in=[basic:0x0000, power:0x0001, temperature:0x0402, None:0x0408] out=[] status=<Status.ZDO_INIT: 1>>
[0xbf06] Discovered basic device information for <Device model='EFEKTA_PWS' manuf='efektalab.ru' nwk=0xBF06 ieee=00:12:4b:00:24:42:d3:d2 is_initialized=True>
Device is initialized <Device model='EFEKTA_PWS' manuf='efektalab.ru' nwk=0xBF06 ieee=00:12:4b:00:24:42:d3:d2 is_initialized=True>
Checking quirks for efektalab.ru EFEKTA_PWS (00:12:4b:00:24:42:d3:d2)
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 input cluster 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
device - 0xBF06:00:12:4b:00:24:42:d3:d2 entering async_device_initialized - is_new_join: True
device - 0xBF06:00:12:4b:00:24:42:d3:d2 has joined the ZHA zigbee network
[0xBF06](EFEKTA_PWS): started configuration
[0xBF06:ZDO](EFEKTA_PWS): 'async_configure' stage succeeded
Error handling '_save_attribute' event with (00:12:4b:00:24:42:d3:d2, 1, 0, 4, 'efektalab.ru') params: FOREIGN KEY constraint failed
[0xbf06] Extending timeout for 0x83 request
[0xbf06] Extending timeout for 0x85 request
[0xBF06:1:0x0000]: finished channel configuration
Error handling '_save_attribute' event with (00:12:4b:00:24:42:d3:d2, 1, 0, 5, 'EFEKTA_PWS') params: FOREIGN KEY constraint failed
[0xBF06:1:0x0001]: bound 'power' cluster: Status.SUCCESS
[0xbf06] Extending timeout for 0x87 request
[0xBF06:1:0x0402]: bound 'temperature' cluster: Status.SUCCESS
[0xbf06] Extending timeout for 0x89 request
[0xbf06:1:0x0001] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=135 command_id=Command.Configure_Reporting_rsp>
[0xBF06:1:0x0001]: Successfully configured reporting for '{'battery_voltage': (3600, 10800, 1), 'battery_percentage_remaining': (3600, 10800, 1)}' on 'power' cluster: [ConfigureReportingResponseRecord(status=0)]
[0xBF06:1:0x0001]: finished channel configuration
[0xbf06:1:0x0402] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=137 command_id=Command.Configure_Reporting_rsp>
[0xBF06:1:0x0402]: Successfully configured reporting for '{'measured_value': (30, 900, 50)}' on 'temperature' cluster: [ConfigureReportingResponseRecord(status=0)]
[0xBF06:1:0x0402]: finished channel configuration
[0xBF06:1:0x0001]: 'async_configure' stage succeeded
[0xBF06:1:0x0402]: 'async_configure' stage succeeded
[0xBF06:1:0x0000]: 'async_configure' stage succeeded
[0xBF06](EFEKTA_PWS): completed configuration
[0xBF06](EFEKTA_PWS): stored in registry: ZhaDeviceEntry(name='efektalab.ru EFEKTA_PWS', ieee='00:12:4b:00:24:42:d3:d2', last_seen=1637646370.1822302)
[0xBF06](EFEKTA_PWS): started initialization
[0xBF06:ZDO](EFEKTA_PWS): 'async_initialize' stage succeeded
[0xBF06:1:0x0001]: initializing channel: from_cache: False
[0xbf06] Extending timeout for 0x8b request
[0xBF06:1:0x0402]: initializing channel: from_cache: False
[0xbf06] Extending timeout for 0x8d request
[0xBF06:1:0x0000]: initializing channel: from_cache: False
[0xBF06:1:0x0000]: finished channel initialization
[0xbf06:1:0x0001] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=139 command_id=Command.Read_Attributes_rsp>
[0xbf06] Extending timeout for 0x8f request
[0xbf06:1:0x0402] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=141 command_id=Command.Read_Attributes_rsp>
[0xBF06:1:0x0402]: finished channel initialization
[0xbf06:1:0x0001] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=143 command_id=Command.Read_Attributes_rsp>
[0xBF06:1:0x0001]: finished channel initialization
[0xBF06:1:0x0001]: 'async_initialize' stage succeeded
[0xBF06:1:0x0402]: 'async_initialize' stage succeeded
[0xBF06:1:0x0000]: 'async_initialize' stage succeeded
[0xBF06](EFEKTA_PWS): power source: Battery or Unknown
[0xBF06](EFEKTA_PWS): completed initialization
Ignoring message (b'110201') on cluster 3: unknown endpoint or cluster id: 'No cluster ID 0x0003 on (00:12:4b:00:24:42:d3:d2, 1)'
[0x8012: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=11 command_id=Command.Report_Attributes>
[0x8012:1:0x0300] ZCL request 0x000a: [[Attribute(attrid=3, value=<TypeValue type=uint16_t, value=30138>), Attribute(attrid=4, value=<TypeValue type=uint16_t, value=26909>), Attribute(attrid=7, value=<TypeValue type=uint16_t, value=394>)]]
[0x8012:1:0x0300] Attribute report received: current_x=30138, current_y=26909, color_temperature=394
[0xa0da:1:0x0006] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=82 command_id=Command.Report_Attributes>
[0xa0da:1:0x0006] ZCL request 0x000a: [[Attribute(attrid=0, value=<TypeValue type=Bool, value=Bool.false>)]]
[0xa0da:1:0x0006] Attribute report received: on_off=0
[0x8483:1:0x0006] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=111 command_id=Command.Report_Attributes>
[0x8483:1:0x0006] ZCL request 0x000a: [[Attribute(attrid=0, value=<TypeValue type=Bool, value=Bool.false>)]]
[0x8483:1:0x0006] Attribute report received: on_off=0
[0x8483:1:0x0008] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=112 command_id=Command.Report_Attributes>
[0x8483:1:0x0008] ZCL request 0x000a: [[Attribute(attrid=0, value=<TypeValue type=uint8_t, value=254>)]]
[0x8483:1:0x0008] Attribute report received: current_level=254
[0x8483:1:0x0008]: received attribute: 0 update with value: 254
Ignoring message (b'110301') on cluster 3: unknown endpoint or cluster id: 'No cluster ID 0x0003 on (00:12:4b:00:24:42:d3:d2, 1)'
Ignoring message (b'110401') on cluster 3: unknown endpoint or cluster id: 'No cluster ID 0x0003 on (00:12:4b:00:24:42:d3:d2, 1)'
Ignoring message (b'110501') on cluster 3: unknown endpoint or cluster id: 'No cluster ID 0x0003 on (00:12:4b:00:24:42:d3:d2, 1)'
Ignoring message (b'110601') on cluster 3: unknown endpoint or cluster id: 'No cluster ID 0x0003 on (00:12:4b:00:24:42:d3:d2, 1)'
Ignoring message (b'110701') on cluster 3: unknown endpoint or cluster id: 'No cluster ID 0x0003 on (00:12:4b:00:24:42:d3:d2, 1)'

Additional context image

Issue Analytics

  • State:open
  • Created 2 years ago
  • Comments:15 (7 by maintainers)

github_iconTop GitHub Comments

9reactions
smartboxchannelcommented, Nov 23, 2021

the other day I tested a firmware specially created for zha, in which data from the humidity sensor is transmitted to the humidity cluster. I think this is also a working option. About the transmitted initial incorrect values. It is enough to press the button several times with a short click, this will lead to the fact that the data will not be sent according to the schedule. I think next week I will fix it and post it on github.

2reactions
revencommented, Nov 24, 2021

@Hedda, thanks for all the links and info. I was aware there was already zigbee2mqtt support for it, but didn’t know if that would be useful to make the quirk for zha. @majkrzak , you are 100% correct, the readings have stabilized after a (long) while. The battery no reads 100% instead of 126% and the temperature sensor reads 14C, though that is at least 6 to 7 degrees below ambient. @smartboxchannel , thanks for your great work! I love the sensor, though it’s also helped me realize that I’m getting to old to solder 0603 components. Looking forward to try the new firmware and the new addition to moisture content clusters to zha.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Plant Watering Sensor Zigbee - Share Project - PCBWay
Plant Watering Sensor Project for Zigbee Network. Powered by SoC CC2530, the sensor is based on a capacitive measurement method. The sensor.
Read more >
Plant Watering Sensor EFEKTA PRO(Zigbee) - Tindie
This is a compact wireless soil moisture sensor, supports working in Zigbee networks. (Zigbee2mqtt open source project, ZHA open source project). The device...
Read more >
Zigbee flower and plant sensors for soil moisture + light + ...
I've built one sensor (got pcbs made) and it binds to zha but only reports ... [Device Support Request] EFEKTA Plant-Watering-Sensor-Zigbee.
Read more >
EFEKTALAB Mini Plant Watering Sensor EFEKTA_miniPWS ...
Mini Plant Watering Sensor. Edit page · Tweet @blakadder_. Model EFEKTA_miniPWS manufactured by EFEKTALAB. Zigbee ID: EFEKTA_miniPWS. Mini Plant Watering ...
Read more >
Best Zigbee plant humidity sensor : r/homeassistant - Reddit
11 votes, 20 comments. Hi, what is the best zigbee sensor for plant moisture? Is the Aquara WSDCGQ01LM OK? or is it not...
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