Sonoff zigbee sensors

I recently got some sonoff sensors, specifically SNZB-04 door sensor and SNZB-02 temperature sensor to replace some of my aquara sensors which became quite unreliable. Both sensors were added using zigbee binding without much problems but after trying to configure them I have some questions.

The temperature sensor (SNZB-02) seems to have super short reporting interval, unlike aquara sensors it seems like its reporting temperature anywhere from 10s to 2minutes. Anyone know if there is a way to configure it to report less often? Seems like it must drain battery like crazy.

Speaking of battery, zigbee binding is not detecting battery related channels - the temperature sensor has only temperature/humidity, door sensor shows only low battery switch (no level). I’d expect to see at least low battery channel on both, is there any chance to get it working?

same problem here. SNZB-02 reports every 10 seconds and battery died after a few days.

Did you (or someone else) get any solution on changing the configuration?

Nope, I needed something reliable for outdoor sensor so I bought zwave sensor and it is way more reliable than zigbee.
What I noticed though is that the type of zigbee controller has a big impact on a device function. I had Bitron Video zigbee stick which has recommended ember chipset and my ikea rollershutters battery lasted month at most. Recently I switched to Elelabs dongle with a newer firmware and now its battery went down about 20% in 3 months and other devices are disconnecting way less (especially those xiaomi sensors).

1 Like

Can you or someone else recommend door and temperature/humidity sensors?

I am using a CC2531 controller and the aqara sensors right now. I am using the openhab zigbee binding. I could detect the sensors, but not getting values. As they might be unreliable anyway, I am thinking to change to other sensors.

I actually use aquara door and temperature sensors and they work fine with elelabs dongle. I remember having problems with cc2531, if thats all you have I’d consider switching to zigbee2mqtt. That seems to have better support for cc2531 and for aquara devices in general (for example battery channels do not work with zigbee binding at all).

I changed the report configuration of the devices via openhab-cli by using the zigbee:subscribe command. I set it to report at a minimum interval of 150sec and maximum of 3600sec at a change of value of 1.0.

I assume the (pre)configured values depend on the controller, I’m also using the Bitron Video zigbee stick and every change of value (temperature/humidity) was immediately reported.

Can you provide some detailed information how did you configured it? I wanted to try it, but cli says:

openhab:zigbee - reportcfg ENDPOINT CLUSTER ATTRIBUTE - Read the reporting configuration of an attribute.

And I can’t figre out where do I get the CLUSTER and ATTRIBUTE parameters from. I thought its from the endpoint command, which reports:

Input Clusters    : (Server)
   0402 Temperature Measurement
     - APS Security disabled
        S       0 r-s SIGNED_16_BIT_INTEGER     Measured Value                           Sat Jan 08 17:18:54 CET 2022 2354
        S       1 r-- SIGNED_16_BIT_INTEGER     Min Measured Value
        S       2 r-- SIGNED_16_BIT_INTEGER     Max Measured Value
        S       3 r-s UNSIGNED_16_BIT_INTEGER   Tolerance

But apparently 0402 0 is not it, since I get

 A cluster specified by 0402 is not found for endpoint 1

Sorry for the late answer.
First you need to get the node address

openhab:zigbee nodes

There will be a table printed out containing the members of your zigbee network. In the first column of each line there is the address of the device. You also need the value of the column EP later.

openhab:zigbee bindtable <node adress>

Shows another table containing Cluster address, it is a hex value in the last column. Now you have all information needed for the reportcfg command.

openhab:zigbee reportcfg <node address>/<EP> <cluster address e.g. 0x0402> 0

The output shows you the current configuration for the cluster address value. To change it, you need the subscribe command, it will overwrite the configuration for the mentioned cluster adress.

openhab:zigbee subscribe <node address>/<EP> <cluster address> 0 <min interval in secs> <max interval in secs> <reportable change>

The reportable change value had to be integer in my case, where 100 meant 1.00° for temperature or 1.00% for humidity.

CAVE: After changing the min interval to 150, I have no possibility to read or write values to the device again via zigbee commands. After removing and repairing, the initial values are restored and you can read/write again.

Thanks for the answer, I just realized you are supposed to input the cluster as 0x0402 not 0402, then it works. Setting the reporting interval seems to work, too bad there’s zero info about it in the zigbee binding documentation.

There is a section in the documentation about “binding and reporting” - so it is covered there and I guess you didn’t look too hard :wink: . As always, I’m sure it can be improved, so your addition will of course be appreciated :slight_smile: . User input into these docs really helps improve them, so please consider helping out.

1 Like

You’re right! There are actually two sections about reporting, the first one I saw but is just vague description of the concept. Looks like the second one under “When things don’t appear to be working” seems to have broken section header formatting so I missed that.