How to adjust Sonoff snzb-02 humidity sensitivity / frequency?

My sensors give out this unnecessary zigzag:
image

Apparently it’s possible to configure the sensitivity over zigbee - at least with zb2mqtt and ZHA. How would I proceed to do this with deconz?

Hey!

Depending on the sensor, you can do that with the rest API:
https://dresden-elektronik.github.io/deconz-rest-doc/endpoints/sensors/#change-sensor-config

Check the parameter list for what you need for your endpoint. Sensors - deCONZ REST-API

1 Like

Thank you! Seems like zb2mqtt exposes some different attributes than deconz, but I will try if this has an effect. I will report back.

1 Like

I tried
curl -X PUT -i 'http://10.0.0.9:80/api/123456789/sensors/33/config' --data '{ "sensitivity": 1 }'
and got back
[{"error":{"address":"/sensors/33/config/sensitivity","description":"parameter, sensitivity, not available","type":6}}].

According to a comment on the linked thread, this command works with zha: bellows -v INFO -d socket://192.168.192.47:8888 zcl -D /home/homeassistant/.homeassistant/zigbee.db '00:12:4b:00:23:ad:cf:a1' 1 1026 configure-reporting 0 10 1200 10. If only I could translate that to deconz api. I think the last 3 values represent min_interval (s), max_interval (s), and min_change (*0.001).

I also found this in the deconz VNC:


It however looks like read-only, and I haven’t yet succeeded in reading or writing the Reporting Configuration. Anyway this looks like exactly what I’m looking for.

EDIT: The correct row is probably 0x0000 (Measured Value), and reading it succeeded. The defaults seem to be:

Min Report Interval: 10
Max Report Interval: 300
Reportable Change: 100

I’m still trying to write changes, but don’t expect it to work as it seems to be read-only.

Would adjusting the values in DDF Editor work?

They don’t use a “sensibility” setting, they just changes the reporting values.
On your last capture, select the attribute 0x0000 'measured value", than double clic on the new panel you will see the same thing

  • Min report Interval
  • Max report interval
  • Reportable change

It’s the setting they have changed on your both links.

But this device is a lazy device (sleeping) so the change is not immediate (or need to wake up the device)

Can use too the button" read config" to retreive them (with wake up the device in same time)

Would adjusting the values in DDF Editor work?

Sure, and it s the better way, because deconz can try to overwrite your setting from the GUI, but it never overwrite DDF setting.

You have the same value here in the DDF (its an exemple)

      "bind": "unicast",
      "src.ep": 1,
      "cl": "0x0405",
      "report": [
        {
          "at": "0x0000",
          "dt": "0x21",
          "min": 60,
          "max": 300,
          "change": "0x00000064"
        }
      ]

I changed the values in DDF and it made no difference. I edited in DDF editor bindings tab, saved file, and hot reloaded. No difference. I then re-paired the devices. No difference. The sensors act as before and the deconz gui shows the same values as before. Actually the displayed config values differ from actual behavior; min change for tenperature is 20 (0.2 degrees I assume) and it updated every 0.1 degrees.

The change can be not immediate (it’s boring on sleeping device).
Wich one value are you using ? Even with a change =20 min and max are used too.
You can try to read them in deconz to set if they are correclty set.

It might be very well the case the device can’t report faster.

I think he want to try to make the device report slower to have better graph.
From his link from ZHA and z2m it seem working, but seriously, how a device can send so close report with 2 °C difference, and why only on a short period.

Does it report temperature in the same time it reports humidity ? Does the humidity graph has the same shape during the same time ?

From the graph it appears to report humidity and temperature separately at different times.

I actually want it to report slower :-), since it seems to be the only way to reduce noise.

I now circumvented the problem by making a filter-sensor (in home-assistant) for all sonoff humidity and temperature entities, with the following:

  filters:
    - filter: lowpass
      time_constant: 2
      precision: 1
    - filter: time_throttle
      window_size: "00:01"
    - filter: lowpass
      time_constant: 3
      precision: 1

The first lowpass practically filters out the to-and-fro bounces. The second lowpass is just for typical smoothing. The time_throttle eliminates the high frequency and makes the second lowpass behavior consistend - so it doesn’t update really fast during those unnecessarily noisy bursts.

My conclusion is: don’t buy Sonoff snzb-02 sensors. And since they don’t know how to make a sensor report sensible data, I wouldn’t buy their other stuff either :laughing:

Which sensor would you recommend instead? :slight_smile:

Aqara zigbee sensors produce sensible data. They’re 3x the price though.

1 Like

Note that the recently added DDF enforces more inert reporting, the sensor now behaves for me similar like the Aqara multi sensor (link). The PR is here. Personally, I started to replace Aqara with other vendors due to the frequent drops from the network. They are the only ones I could find which report air pressure, though.