Sonoff SNZB-02D Temperature/Humidity Calibration / HA does not match LCD

I have two new Sonoff SNZB-02D Temperature/Humidity sensors with LCD display that I have added to my HA. Initially I used the Zigbee Home Automation (ZHA) integration and was able to add both sensors with no issue. I located both sensors in the same area of a room where I have other sensors and let them stabilize for a couple of hours. The temperature and humidity displayed on the LCD of both sensors agreed to within a tenth of a degree Fahrenheit and tenth of a percent humidity. They also closely match other temperature and humidity sensors I have. However, I noticed that the temperature and humidity reported in HA is significantly different than what is on the sensor LCD display.
I’ve read elsewhere that ZHA has no way to calibrate or create offsets for Zigbee sensor data, but the Zigbee2MQTT Add-On does. So I deleted the Sonoff SNZB-02D Temperature/Humidity sensors from ZHA and also removed ZHA. I installed the Zigbee2MQTT Add-On, configured it to use my Sonoff Zigbee coordinator and MQTT broker, and added the Sonoff SNZB-02D Temperature/Humidity sensors via the Zigbee2MQTT Add-On. The results were the same. That is, LCD display and what is reported in HA do not match. I tried using the “Settings (specific)” section in the Zigbee2MQTT Add-On to add temperature calibration and humidity calibrations, but I can’t find any documentation on how to use these fields. I assumed in the case of the temperature calibration that this would just be a positive or negative number of degrees to offset the sensor data before reporting it via MQTT message. When I tried this all I managed to do was cause the temperature to stop updating in HA.

  • Does anyone know how these temperature and humidity calibration fields should be used?
  • For temperature is this value in degrees, and if so, would it be degrees in the current display mode Celsius or Fahrenheit, or is the value always entered in one or the other regardless of display mode?

When I ran these test the firmware on the sensors was behind and I have since updated the firmware to the latest but haven’t done anymore testing yet. If anyone has any experience with the calibration process, please share any information that may be helpful.
Thanks.

Seeing the same behavior with mine, but I do not care much about it as the gap is neglectable.
I think it has to do with the devices MQTT reporting intervall and thresholds. The display updates immediately on every change, but MQTT reports are sent every X seconds and every change more than Y degress or percent.
Try to adjust the reporting intervall in Z2M

Ok, that may explain a few things. The updates did seem slow or no update in some cases.
I’m assuming Min Rep Interval and Max Rep Interval units are seconds, can you confirm? How do you interpret Min Rep Change? Are you saying those units are in degrees and percent? The example screen shot you sent wouldn’t seem to make sense if MQTT only reported temperature changes more than 100 degrees or 100 percent. Thanks for any additional information you can provide.

Here you go, directly from the docs MQTT Topics and Messages | Zigbee2MQTT

TLDR: Interval is in seconds. Change should be in whatever value that attribute reports, so eg. degrees for a Temperature sensor, and percentage for a humidity sensor.

Note that the underlying data might be raw data, so 100 reporting change might actually mean 1 degree in real world scenarios. The docs I linked explain it much better than I can, so do read the docs.