Closed reven closed 1 year ago
FYI, Water Content Measurement clusters for Zigbee Soil Moisture and Leaf Wetness sensors were just added by @majkrzak to ZHA integration component in Home Assistant core dev branch two weeks ago so has not made it into a HA release as of yet, see:
home-assistant/core#59300
Also, for reference; I believe EFEKTA Plant Watering Sensor by @smartboxchannel uses the same design and code "DIYRuZ Flower" soil moisture sensor which is an open-source hardware project that is also used by a few other DIY project in the community (or?).
Know these is already supported by zigbee-herdsman-converters (used by Zigbee2MQTT) is; DIYRuZ Flower, EFEKTA Plant Watering Sensor, and ZeeFlora DIY Soil Moisture (keywords for searching pull requests are; "flower", "plant", "soil", and "moisture").
https://github.com/Koenkk/zigbee-herdsman-converters/blob/master/devices/custom_devices_diy.js
DIYRuZ Flower https://zigbee.blakadder.com/DIYRuZ_Flower.html
https://www.zigbee2mqtt.io/devices/DIYRuZ_Flower.html
https://github.com/diyruz/flower
EFEKTA Plant Watering Sensor https://zigbee.blakadder.com/EFEKTALAB_EFEKTA_PWS.html
https://www.zigbee2mqtt.io/devices/EFEKTA_PWS.html
https://github.com/smartboxchannel/Plant-Watering-Sensor-Zigbee/
https://www.tindie.com/products/diyberk/plant-watering-sensor-efekta-zigbee2mqtt/
ZeeFlora by Tech4You / TrimVa https://zigbee.blakadder.com/Zeeflora.html
https://www.zigbee2mqtt.io/devices/ZeeFlora.html
https://github.com/Koenkk/zigbee2mqtt.io/blob/master/docs/devices/ZeeFlora.md
https://oshwlab.com/DIY_and_Co/capteur-plantes-co_copy
PS: There is by the way discussions about these and other Zigbee Soil Moisture Sensors in Home Assistant community forum here:
Water Content Measurement clusters are still only available in Beta but Home Assistant 2021.12 is set to be released with it soon:
https://rc.home-assistant.io/blog/2021/12/03/release-202112/
Slightly off-topic, but FYI, there is also a Zigbee sensor called "Spruce" by Plaid Systems (that is marketed for "smart irrigation") which is another product that will likely need to use Water Content Measurement cluster for soil moisture sensors:
https://zigbee.blakadder.com/Plaid_PS-SPRZMS-SLP3.html
https://spruceirrigation.com/sensors/
https://spruceirrigation.com/order/
https://support.spruceirrigation.com/knowledge-base/gen3-spruce-sensor-guide/
https://support.spruceirrigation.com/article-categories/spruce-sensor/
If you don't count EFEKTA Plant Watering Sensor as a commercial product then Plaid Systems Spruce is the only commercially available Zigbee soil moisture sensor product on the market today (which is sad since it get very expensive if want to buy a lot).
In my case temperature is correct. It takes some time for this device to report state correctly. Temperature resolution is 1 degree.
I'm currently waiting when my changes to Home Assistant will be released. They seems to have awkward release strategy of cherypicking random commits from dev
branch to rc
and then merging to master
.
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.
@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.
FYI @smartboxchannel posted in the Home Assistant community forum about testing new firmware with ZHA compatibility:
https://github.com/smartboxchannel/Plant-Watering-Sensor-Zigbee/tree/main/PROJECT%20SOURCE
FYI, Water Content Measurement clusters for Zigbee Soil Moisture and Leaf Wetness sensors were just added by @majkrzak to ZHA integration component in Home Assistant core dev branch two weeks ago so has not made it into a HA release as of yet, see:
Again, Water Content Measurement clusters are still only in HA Beta but Home Assistant 2021.12 is set to be released with it soon:
https://rc.home-assistant.io/blog/2021/12/03/release-202112/
Hi @reven @smartboxchannel,
i'm trying to get an Efektalab Plant Watering Sensor to work with HomeAssistant and ZHA, it connects and pairs but it does not show any sensor value, even if the sensors seem to be listed in the "out_clusters". Do i need to switch to the custom FW package even if i am using a HA version which has the latest changes in?
I am using
Thanks!
- Electrolama zig-a-zig-ah! coordinator TI CC2652, Z-Stack 3.30+ (build 20201026)
Regardless if related or not you should definitely upgrade your Zigbee Coordinator firmware to at least Z-Stack 3.x.0 20211217:
https://github.com/Koenkk/Z-Stack-firmware/tree/master/coordinator/Z-Stack_3.x.0/bin
(alternatively latest FW from develop https://github.com/Koenkk/Z-Stack-firmware/tree/develop/coordinator/Z-Stack_3.x.0/bin )
Adapters based on CC1352 or CC2652 chips can be flashed over USB by putting them into bootloader mode (also known as Boot or BSL mode), se your adapter manual on how to do this. After have done that one of the following tools can be used to flash it:
Thanks @Hedda ! Will try that first, and then see how it goes :-)
[Not sure if it would be better to start a new Device Support Request, or keep hijacking this since same device...]
I updated the Zigbee Coordinator firmware to Z-Stack 3.x.0 version 20211217 first, and to version 20220219 now, and scratched the NAND to start from a clean config/re-pairing, but still can't see the sensor values (only the LQI, RSSI "sensors" but no measurements).
This is the device signature according to ZHA:
{ "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)", "endpoints": { "1": { "profile_id": 260, "device_type": "0x000c", "in_clusters": [ "0x0000" ], "out_clusters": [ "0x0001", "0x0402", "0x0408" ] } }, "manufacturer": "efektalab.ru", "model": "EFEKTA_ePWS", "class": "zigpy.device.Device" }
However, i only see "Diagnostics" entities, but no Sensors (nor Controls, but i guess that is expected):
HA is updated to the latest version: Home Assistant 2022.3.8 These are the logs from the pairing:
2022-04-02 11:15:53 INFO (MainThread) [zigpy_znp.zigbee.application] Permitting joins for 60 seconds 2022-04-02 11:15:53 DEBUG (MainThread) [zigpy_znp.api] Sending request: ZDO.MgmtPermitJoinReq.Req(AddrMode=<AddrMode.Broadcast: 15>, Dst=0xFFFC, Duration=60, TCSignificance=0) 2022-04-02 11:15:53 DEBUG (MainThread) [zigpy_znp.api] Received command: ZDO.MgmtPermitJoinReq.Rsp(Status=<Status.SUCCESS: 0>) 2022-04-02 11:15:53 DEBUG (MainThread) [zigpy_znp.api] Received command: ZDO.MgmtPermitJoinRsp.Callback(Src=0x0000, Status=<Status.SUCCESS: 0>) 2022-04-02 11:15:53 DEBUG (MainThread) [zigpy_znp.api] Received command: ZDO.MsgCbIncoming.Callback(Src=0x0000, IsBroadcast=<Bool.false: 0>, ClusterId=32822, SecurityUse=0, TSN=3, MacDst=0x0000, Data=b'\x00') 2022-04-02 11:15:53 DEBUG (MainThread) [zigpy_znp.api] Sending request: AF.DataRequestExt.Req(DstAddrModeAddress=AddrModeAddress(mode=<AddrMode.Broadcast: 15>, address=0xFFFC), DstEndpoint=0, DstPanId=0x0000, SrcEndpoint=0, ClusterId=54, TSN=8, Options=<TransmitOptions.NONE: 0>, Radius=0, Data=b'\x08\x3C\x00') 2022-04-02 11:15:53 DEBUG (MainThread) [zigpy.zdo] [0x0000:zdo] ZDO request ZDOCmd.Mgmt_Permit_Joining_rsp: [<Status.SUCCESS: 0>] 2022-04-02 11:15:53 DEBUG (MainThread) [zigpy.zdo] [0x0000:zdo] No handler for ZDO request:ZDOCmd.Mgmt_Permit_Joining_rsp([<Status.SUCCESS: 0>]) 2022-04-02 11:15:53 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.DataRequestExt.Rsp(Status=<Status.SUCCESS: 0>) 2022-04-02 11:16:15 DEBUG (MainThread) [zigpy_znp.api] Sending request: SYS.Ping.Req() 2022-04-02 11:16:15 DEBUG (MainThread) [zigpy_znp.api] Received command: SYS.Ping.Rsp(Capabilities=<MTCapabilities.APP_CNF|GP|UTIL|ZDO|AF|SYS: 1625>) 2022-04-02 11:16:34 DEBUG (MainThread) [zigpy_znp.api] Received command: ZDO.TCDevInd.Callback(SrcNwk=0x3CF5, SrcIEEE=00:12:4b:00:19:98:5c:7e, ParentNwk=0x0000) 2022-04-02 11:16:34 INFO (MainThread) [zigpy_znp.zigbee.application] TC device join: ZDO.TCDevInd.Callback(SrcNwk=0x3CF5, SrcIEEE=00:12:4b:00:19:98:5c:7e, ParentNwk=0x0000) 2022-04-02 11:16:34 DEBUG (MainThread) [zigpy_znp.api] Sending request: ZDO.ExtRouteDisc.Req(Dst=0x3CF5, Options=<RouteDiscoveryOptions.UNICAST: 0>, Radius=30) 2022-04-02 11:16:34 DEBUG (MainThread) [zigpy_znp.api] Received command: ZDO.ExtRouteDisc.Rsp(Status=<Status.SUCCESS: 0>) 2022-04-02 11:16:35 DEBUG (MainThread) [zigpy_znp.api] Received command: ZDO.EndDeviceAnnceInd.Callback(Src=0x3CF5, NWK=0x3CF5, IEEE=00:12:4b:00:19:98:5c:7e, Capabilities=<MACCapabilities.AllocateShortAddrDuringAssocNeeded: 128>) 2022-04-02 11:16:35 DEBUG (MainThread) [zigpy_znp.api] Command was not handled 2022-04-02 11:16:35 DEBUG (MainThread) [zigpy_znp.api] Received command: ZDO.MsgCbIncoming.Callback(Src=0x3CF5, IsBroadcast=<Bool.true: 1>, ClusterId=19, SecurityUse=0, TSN=0, MacDst=0x0000, Data=b'\xF5\x3C\x7E\x5C\x98\x19\x00\x4B\x12\x00\x80') 2022-04-02 11:16:35 INFO (MainThread) [zigpy_znp.zigbee.application] ZDO device announce: nwk=0x3CF5, ieee=00:12:4b:00:19:98:5c:7e, capabilities=128 2022-04-02 11:16:35 INFO (MainThread) [zigpy.application] New device 0x3cf5 (00:12:4b:00:19:98:5c:7e) joined the network 2022-04-02 11:16:35 DEBUG (MainThread) [zigpy.device] [0x3cf5] Scheduling initialization 2022-04-02 11:16:35 DEBUG (MainThread) [zigpy.application] Received frame on uninitialized device
from ep 0 to ep 0, cluster 19: b'\x00\xf5<~\\x98\x19\x00K\x12\x00\x80' 2022-04-02 11:16:35 DEBUG (MainThread) [zigpy.zdo] [0x3cf5:zdo] ZDO request ZDOCmd.Device_annce: [0x3CF5, 00:12:4b:00:19:98:5c:7e, 128] 2022-04-02 11:16:35 DEBUG (MainThread) [zigpy.util] Tries remaining: 3 2022-04-02 11:16:35 INFO (MainThread) [zigpy.device] [0x3cf5] Requesting 'Node Descriptor' 2022-04-02 11:16:35 DEBUG (MainThread) [zigpy.util] Tries remaining: 2 2022-04-02 11:16:35 DEBUG (MainThread) [zigpy.device] [0x3cf5] Extending timeout for 0x09 request 2022-04-02 11:16:35 DEBUG (MainThread) [zigpy_znp.api] Sending request: ZDO.ExtRouteChk.Req(Dst=0x3CF5, RtStatus=<RouteStatus.ACTIVE: 1>, Options=<RouteOptions.NO_ROUTE_CACHE|MTO_ROUTE: 3>) 2022-04-02 11:16:35 DEBUG (MainThread) [zigpy_znp.api] Received command: ZDO.ExtRouteChk.Rsp(Status=<RoutingStatus.SUCCESS: 0>) 2022-04-02 11:16:35 DEBUG (MainThread) [zigpy_znp.api] Sending request: AF.DataRequestExt.Req(DstAddrModeAddress=AddrModeAddress(mode=<AddrMode.NWK: 2>, address=0x3CF5), DstEndpoint=0, DstPanId=0x0000, SrcEndpoint=0, ClusterId=2, TSN=9, Options=<TransmitOptions.SUPPRESS_ROUTE_DISC_NETWORK|ACK_REQUEST: 48>, Radius=30, Data=b'\x09\xF5\x3C') 2022-04-02 11:16:35 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.DataRequestExt.Rsp(Status=<Status.SUCCESS: 0>) 2022-04-02 11:16:36 DEBUG (MainThread) [zigpy_znp.api] Received command: ZDO.NodeDescRsp.Callback(Src=0x3CF5, Status=<Status.SUCCESS: 0>, NWK=0x3CF5, NodeDescriptor=NullableNodeDescriptor(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)) 2022-04-02 11:16:36 DEBUG (MainThread) [zigpy_znp.api] Command was not handled 2022-04-02 11:16:36 DEBUG (MainThread) [zigpy_znp.api] Received command: ZDO.MsgCbIncoming.Callback(Src=0x3CF5, IsBroadcast=<Bool.false: 0>, ClusterId=32770, SecurityUse=0, TSN=9, MacDst=0x0000, Data=b'\x00\xF5\x3C\x02\x40\x80\x00\x00\x50\xA0\x00\x00\x00\xA0\x00\x00') 2022-04-02 11:16:36 DEBUG (MainThread) [zigpy.application] Received frame on uninitialized device from ep 0 to ep 0, cluster 32770: b'\t\x00\xf5<\x02@\x80\x00\x00P\xa0\x00\x00\x00\xa0\x00\x00' 2022-04-02 11:16:36 INFO (MainThread) [zigpy.device] [0x3cf5] 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) 2022-04-02 11:16:36 INFO (MainThread) [zigpy.device] [0x3cf5] Discovering endpoints 2022-04-02 11:16:36 DEBUG (MainThread) [zigpy.util] Tries remaining: 3 2022-04-02 11:16:36 DEBUG (MainThread) [zigpy.device] [0x3cf5] Extending timeout for 0x0a request 2022-04-02 11:16:36 DEBUG (MainThread) [zigpy_znp.api] Sending request: ZDO.ExtRouteChk.Req(Dst=0x3CF5, RtStatus=<RouteStatus.ACTIVE: 1>, Options=<RouteOptions.NO_ROUTE_CACHE|MTO_ROUTE: 3>) 2022-04-02 11:16:36 DEBUG (MainThread) [zigpy_znp.api] Received command: ZDO.ExtRouteChk.Rsp(Status=<RoutingStatus.SUCCESS: 0>) 2022-04-02 11:16:36 DEBUG (MainThread) [zigpy_znp.api] Sending request: AF.DataRequestExt.Req(DstAddrModeAddress=AddrModeAddress(mode=<AddrMode.NWK: 2>, address=0x3CF5), DstEndpoint=0, DstPanId=0x0000, SrcEndpoint=0, ClusterId=5, TSN=10, Options=<TransmitOptions.SUPPRESS_ROUTE_DISC_NETWORK|ACK_REQUEST: 48>, Radius=30, Data=b'\x0A\xF5\x3C') 2022-04-02 11:16:36 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.DataRequestExt.Rsp(Status=<Status.SUCCESS: 0>) 2022-04-02 11:16:36 DEBUG (MainThread) [zigpy_znp.api] Received command: ZDO.ActiveEpRsp.Callback(Src=0x3CF5, Status=<Status.SUCCESS: 0>, NWK=0x3CF5, ActiveEndpoints=[1]) 2022-04-02 11:16:36 DEBUG (MainThread) [zigpy_znp.api] Command was not handled 2022-04-02 11:16:36 DEBUG (MainThread) [zigpy_znp.api] Received command: ZDO.MsgCbIncoming.Callback(Src=0x3CF5, IsBroadcast=<Bool.false: 0>, ClusterId=32773, SecurityUse=0, TSN=10, MacDst=0x0000, Data=b'\x00\xF5\x3C\x01\x01') 2022-04-02 11:16:36 DEBUG (MainThread) [zigpy.application] Received frame on uninitialized devicefrom ep 0 to ep 0, cluster 32773: b'\n\x00\xf5<\x01\x01' 2022-04-02 11:16:36 INFO (MainThread) [zigpy.device] [0x3cf5] Discovered endpoints: [1] 2022-04-02 11:16:36 INFO (MainThread) [zigpy.device] [0x3cf5] Initializing endpoints [<Endpoint id=1 in=[] out=[] status=<Status.NEW: 0>>] 2022-04-02 11:16:36 INFO (MainThread) [zigpy.endpoint] [0x3cf5:1] Discovering endpoint information 2022-04-02 11:16:36 DEBUG (MainThread) [zigpy.util] Tries remaining: 3 2022-04-02 11:16:36 DEBUG (MainThread) [zigpy.device] [0x3cf5] Extending timeout for 0x0b request 2022-04-02 11:16:36 DEBUG (MainThread) [zigpy_znp.api] Sending request: ZDO.ExtRouteChk.Req(Dst=0x3CF5, RtStatus=<RouteStatus.ACTIVE: 1>, Options=<RouteOptions.NO_ROUTE_CACHE|MTO_ROUTE: 3>) 2022-04-02 11:16:36 DEBUG (MainThread) [zigpy_znp.api] Received command: ZDO.ExtRouteChk.Rsp(Status=<RoutingStatus.SUCCESS: 0>) 2022-04-02 11:16:36 DEBUG (MainThread) [zigpy_znp.api] Sending request: AF.DataRequestExt.Req(DstAddrModeAddress=AddrModeAddress(mode=<AddrMode.NWK: 2>, address=0x3CF5), DstEndpoint=0, DstPanId=0x0000, SrcEndpoint=0, ClusterId=4, TSN=11, Options=<TransmitOptions.SUPPRESS_ROUTE_DISC_NETWORK|ACK_REQUEST: 48>, Radius=30, Data=b'\x0B\xF5\x3C\x01') 2022-04-02 11:16:36 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.DataRequestExt.Rsp(Status=<Status.SUCCESS: 0>) 2022-04-02 11:16:36 DEBUG (MainThread) [zigpy_znp.api] Received command: ZDO.SimpleDescRsp.Callback(Src=0x3CF5, Status=<Status.SUCCESS: 0>, NWK=0x3CF5, SimpleDescriptor=SizePrefixedSimpleDescriptor(endpoint=1, profile=260, device_type=12, device_version=2, input_clusters=[0], output_clusters=[1, 1026, 1032])) 2022-04-02 11:16:36 DEBUG (MainThread) [zigpy_znp.api] Command was not handled 2022-04-02 11:16:36 DEBUG (MainThread) [zigpy_znp.api] Received command: ZDO.MsgCbIncoming.Callback(Src=0x3CF5, IsBroadcast=<Bool.false: 0>, ClusterId=32772, SecurityUse=0, TSN=11, MacDst=0x0000, Data=b'\x00\xF5\x3C\x10\x01\x04\x01\x0C\x00\x02\x01\x00\x00\x03\x01\x00\x02\x04\x08\x04') 2022-04-02 11:16:36 DEBUG (MainThread) [zigpy.application] Received frame on uninitialized device from ep 0 to ep 0, cluster 32772: b'\x0b\x00\xf5<\x10\x01\x04\x01\x0c\x00\x02\x01\x00\x00\x03\x01\x00\x02\x04\x08\x04' 2022-04-02 11:16:36 INFO (MainThread) [zigpy.endpoint] [0x3cf5:1] Discovered endpoint information: SizePrefixedSimpleDescriptor(endpoint=1, profile=260, device_type=12, device_version=2, input_clusters=[0], output_clusters=[1, 1026, 1032]) 2022-04-02 11:16:36 DEBUG (MainThread) [zigpy.device] [0x3cf5] Extending timeout for 0x0c request 2022-04-02 11:16:36 DEBUG (MainThread) [zigpy_znp.api] Sending request: AF.DataRequestExt.Req(DstAddrModeAddress=AddrModeAddress(mode=<AddrMode.NWK: 2>, address=0x3CF5), DstEndpoint=1, DstPanId=0x0000, SrcEndpoint=1, ClusterId=0, TSN=12, Options=<TransmitOptions.SUPPRESS_ROUTE_DISC_NETWORK|ACK_REQUEST: 48>, Radius=30, Data=b'\x00\x0C\x00\x04\x00\x05\x00') 2022-04-02 11:16:36 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.DataRequestExt.Rsp(Status=<Status.SUCCESS: 0>) 2022-04-02 11:16:37 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.DataConfirm.Callback(Status=<Status.SUCCESS: 0>, Endpoint=1, TSN=12) 2022-04-02 11:16:37 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.IncomingMsg.Callback(GroupId=0x0000, ClusterId=0, SrcAddr=0x3CF5, SrcEndpoint=1, DstEndpoint=1, WasBroadcast=<Bool.false: 0>, LQI=134, SecurityUse=<Bool.false: 0>, TimeStamp=4011083, TSN=0, Data=b'\x18\x0C\x01\x04\x00\x00\x42\x0C\x65\x66\x65\x6B\x74\x61\x6C\x61\x62\x2E\x72\x75\x05\x00\x00\x42\x0B\x45\x46\x45\x4B\x54\x41\x5F\x65\x50\x57\x53', MacSrcAddr=0x3CF5, MsgResultRadius=29) 2022-04-02 11:16:37 DEBUG (MainThread) [zigpy.zcl] [0x3cf5:1:0x0000] ZCL deserialize: <ZCLHeader frame_control= manufacturer=None tsn=12 command_id=Command.Read_Attributes_rsp> 2022-04-02 11:16:37 INFO (MainThread) [zigpy.device] [0x3cf5] Read model 'EFEKTA_ePWS' and manufacturer 'efektalab.ru' from <Endpoint id=1 in=[basic:0x0000] out=[power:0x0001, temperature:0x0402, soil_moisture:0x0408] status=<Status.ZDO_INIT: 1>> 2022-04-02 11:16:37 INFO (MainThread) [zigpy.device] [0x3cf5] Discovered basic device information for 2022-04-02 11:16:37 DEBUG (MainThread) [zigpy.application] Device is initialized 2022-04-02 11:16:37 DEBUG (MainThread) [zigpy.quirks.registry] Checking quirks for efektalab.ru EFEKTA_ePWS (00:12:4b:00:19:98:5c:7e) 2022-04-02 11:16:37 DEBUG (MainThread) [zigpy.quirks.registry] Considering <class 'zhaquirks.xbee.xbee_io.XBeeSensor'> 2022-04-02 11:16:37 DEBUG (MainThread) [zigpy.quirks.registry] Fail because endpoint list mismatch: {232, 230} {1} 2022-04-02 11:16:37 DEBUG (MainThread) [zigpy.quirks.registry] Considering <class 'zhaquirks.xbee.xbee3_io.XBee3Sensor'> 2022-04-02 11:16:37 DEBUG (MainThread) [zigpy.quirks.registry] Fail because endpoint list mismatch: {232, 230} {1} 2022-04-02 11:16:37 DEBUG (MainThread) [zigpy.quirks.registry] Considering <class 'zhaquirks.smartthings.tag_v4.SmartThingsTagV4'> 2022-04-02 11:16:37 DEBUG (MainThread) [zigpy.quirks.registry] Fail because input cluster mismatch on at least one endpoint 2022-04-02 11:16:37 DEBUG (MainThread) [zigpy.quirks.registry] Considering <class 'zhaquirks.smartthings.multi.SmartthingsMultiPurposeSensor'> 2022-04-02 11:16:37 DEBUG (MainThread) [zigpy.quirks.registry] Fail because device_type mismatch on at least one endpoint 2022-04-02 11:16:37 DEBUG (MainThread) [zigpy.quirks.registry] Considering <class 'zhaquirks.netvox.z308e3ed.Z308E3ED'> 2022-04-02 11:16:37 DEBUG (MainThread) [zigpy.quirks.registry] Fail because device_type mismatch on at least one endpoint 2022-04-02 11:16:37 DEBUG (MainThread) [zigpy.quirks.registry] Considering <class 'zhaquirks.gledopto.soposhgu10.SoposhGU10'> 2022-04-02 11:16:37 DEBUG (MainThread) [zigpy.quirks.registry] Fail because endpoint list mismatch: {11, 13} {1} 2022-04-02 11:16:37 DEBUG (MainThread) [zigpy.quirks.registry] Considering <class 'bellows.zigbee.application.EZSPCoordinator'> 2022-04-02 11:16:37 DEBUG (MainThread) [zigpy.quirks.registry] Fail because device_type mismatch on at least one endpoint 2022-04-02 11:16:37 DEBUG (MainThread) [homeassistant.components.zha.core.discovery] 'sensor' component -> 'RSSISensor' using ['basic'] 2022-04-02 11:16:37 DEBUG (MainThread) [homeassistant.components.zha.core.discovery] 'sensor' component -> 'LQISensor' using ['basic'] 2022-04-02 11:16:37 DEBUG (MainThread) [homeassistant.components.zha.core.gateway] device - 0x3CF5:00:12:4b:00:19:98:5c:7e entering async_device_initialized - is_new_join: True 2022-04-02 11:16:37 DEBUG (MainThread) [homeassistant.components.zha.core.gateway] device - 0x3CF5:00:12:4b:00:19:98:5c:7e has joined the ZHA zigbee network 2022-04-02 11:16:37 DEBUG (MainThread) [homeassistant.components.zha.core.device] 0x3CF5: started configuration 2022-04-02 11:16:37 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] 0x3CF5:ZDO: 'async_configure' stage succeeded 2022-04-02 11:16:37 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x3CF5:1:0x0000]: finished channel configuration 2022-04-02 11:16:37 DEBUG (MainThread) [zigpy.appdb] Error handling '_save_attribute' event with (00:12:4b:00:19:98:5c:7e, 1, 0, 4, 'efektalab.ru') params: FOREIGN KEY constraint failed 2022-04-02 11:16:37 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x3CF5:1:0x0000]: 'async_configure' stage succeeded 2022-04-02 11:16:37 DEBUG (MainThread) [zigpy.appdb] Error handling '_save_attribute' event with (00:12:4b:00:19:98:5c:7e, 1, 0, 5, 'EFEKTA_ePWS') params: FOREIGN KEY constraint failed 2022-04-02 11:16:37 DEBUG (MainThread) [homeassistant.components.zha.core.device] 0x3CF5: completed configuration 2022-04-02 11:16:37 DEBUG (MainThread) [homeassistant.components.zha.core.device] 0x3CF5: stored in registry: ZhaDeviceEntry(name='efektalab.ru EFEKTA_ePWS', ieee='00:12:4b:00:19:98:5c:7e', last_seen=1648890997.0809143) 2022-04-02 11:16:37 DEBUG (MainThread) [homeassistant.components.zha.core.device] 0x3CF5: started initialization 2022-04-02 11:16:37 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] 0x3CF5:ZDO: 'async_initialize' stage succeeded 2022-04-02 11:16:37 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x3CF5:1:0x0000]: initializing channel: from_cache: False 2022-04-02 11:16:37 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x3CF5:1:0x0000]: finished channel initialization 2022-04-02 11:16:37 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x3CF5:1:0x0000]: 'async_initialize' stage succeeded 2022-04-02 11:16:37 DEBUG (MainThread) [homeassistant.components.zha.core.device] 0x3CF5: power source: Battery or Unknown 2022-04-02 11:16:37 DEBUG (MainThread) [homeassistant.components.zha.core.device] 0x3CF5: completed initialization 2022-04-02 11:16:45 DEBUG (MainThread) [zigpy_znp.api] Sending request: SYS.Ping.Req() 2022-04-02 11:16:45 DEBUG (MainThread) [zigpy_znp.api] Received command: SYS.Ping.Rsp(Capabilities=<MTCapabilities.APP_CNF|GP|UTIL|ZDO|AF|SYS: 1625>) 2022-04-02 11:17:15 DEBUG (MainThread) [zigpy_znp.api] Sending request: SYS.Ping.Req() 2022-04-02 11:17:15 DEBUG (MainThread) [zigpy_znp.api] Received command: SYS.Ping.Rsp(Capabilities=<MTCapabilities.APP_CNF|GP|UTIL|ZDO|AF|SYS: 1625>)
Thanks for any hint!!
@majkrzak Are you using the default FW in the Efekta sensor or the _ZHA variant (needed before your PR #59300)? I see that my sensor gets discovered with "input_clusters=[0], output_clusters=[1, 1026, 1032]" which looks OK, i'd say, right? But then I do not see any messages like
bound 'power' cluster: Status.SUCCESS bound 'temperature' cluster: Status.SUCCESS
I only see
[homeassistant.components.zha.core.discovery] 'sensor' component -> 'RSSISensor' using ['basic'] [homeassistant.components.zha.core.discovery] 'sensor' component -> 'LQISensor' using ['basic']
Yes, I was working on the firmware which was shipped to me and reporting the moisture cluster data. I'm not sure some recent changes did not break support, but I can't check it right now as my device is not in the network at the moment.
I'm very confused now, since in @majkrzak 's pull request the soil_humidity cluster 0x408 seems to be an input_cluster, while my sensor is being detected with cluster 0x408 as output_cluster! @Hedda is it possible to "fix" that with a quirk?
I'm confused to 😅 I've added the cluster to the place where TODO marker was. This was enough to make my pwa work. Maybe there is really something wrong with firmware of yours?
Just for the record: my device had a messed up FW version which has the sensor clusters wrongly set as Output Clusters (there is even an #ifdef for that in the source code in the Efektalab repo). I could get the sensor to work without issues, by adding a ZHA quirk which sets the right type for the sensing clusters.
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.
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.
Additional context