HopHop

Zigbee Temperature Sensors: 2 Years of Experience and New Arrivals

home-assistant zigbee home-automation heating zigbee2mqtt sonoff

When you get into home automation and want to control your heating intelligently, there's one essential component: temperature sensors. Without them, it's impossible to know if it's 18°C or 22°C in the living room, and therefore impossible to regulate anything. After more than two years tinkering with my heating system using Home Assistant, I'm sharing my experience with two models of Zigbee sensors.

TL;DR

  • Tuya sensors at ~€5: reliable, 2 years without changing batteries, no complaints (except in humid environments)
  • SONOFF SNZB-02P at ~€12: promising but require manual configuration in Zigbee2MQTT
  • The trap: SONOFF's default settings (update every 30 min) are unusable for heating control
  • The solution: modify reporting parameters in Z2M (but watch out for deep sleep)

Tuya Sensors: 2 Years and Still Going Strong

I started with Tuya sensors at around €5 each. And honestly, these little guys ran for over 2 years without a hiccup. Not a single battery change, no connection issues, nothing. They allowed me to control my heating satisfactorily throughout that time.

The only casualty: the one in the shower room, which died after a month. But putting electronics in an environment where humidity regularly exceeds 90% is asking for trouble.

The New SONOFF SNZB-02P: Promising But...

Recently, as part of my project to improve the heating system with the OpenTherm Gateway (that'll be another article), I wanted to test something more "serious". So I ordered SONOFF SNZB-02P sensors at around €12 each.

And there, first disappointment. The default settings send an update every 30 minutes, or when there's a 1°C difference. Let me tell you, for a heating system that needs to react quickly, that's not great. You risk ending up with temperature oscillations worthy of a roller coaster.

Configuring SONOFF in Zigbee2MQTT

Fortunately, you can modify these parameters in Zigbee2MQTT. Here's the configuration I use:

Reporting parameters configuration in Zigbee2MQTT

These settings allow sending temperature much more frequently. Obviously, this comes at the expense of battery life, but for a responsive heating system, it's an acceptable trade-off.

However, be careful: changing these parameters doesn't work when the sensor is in deep sleep (which is almost all the time, to save battery). To make it work, I had to:

  1. Press the sensor button to wake it up
  2. Send the configuration command immediately after

It's a bit of a cat and mouse game, but once it's done, it's done.

Improvement Idea: Adapt Parameters by Season

An idea I haven't implemented yet but keeps running through my head: create an automation in Home Assistant that, each time a value is received from the sensor (when we're sure it's not sleeping), checks the season and adapts the reporting parameters accordingly.

The idea would be:

  • In winter: frequent reporting for responsive heating
  • In summer: less frequent reporting to preserve battery (temperature doesn't matter much when heating is off)

The problem is that configuring these values doesn't seem to be possible directly in Home Assistant for now:

Home Assistant interface showing configuration limitations

But there's surely a way to do something via MQTT directly or a Z2M service. Worth exploring.

Conclusion

These new SONOFF sensors are very promising after some tweaking. The value for money is good, accuracy seems decent, and once properly configured, they do the job for controlling a heating system.

However, I don't have enough hindsight yet on battery life with my aggressive reporting settings. I'll do an update in a few months to let you know if they hold up.

Hope this helps anyone struggling with the same topic!

Previous Post