The Hive thermostat sat in the hallway and made decisions on behalf of a four room house it could not see. The bedroom was cold. The dining room was roasting. The hallway, where the sensor lived, was somewhere in the middle, and that’s the temperature the boiler answered to. Hive called this ‘smart’.
It worked for years. It was fine. Then I noticed it wasn’t.
The fix was four Sonoff TRVZB valves on the radiators that mattered – bedroom, living room, dining room, office – each one paired with a Sonoff SNZB-02D temperature sensor placed somewhere in the room that wasn’t six inches from a hot radiator. At the boiler, a Sonoff ZBMINIR2 took the place of Hive’s receiver. From there it was Home Assistant’s job.
The problem nobody warns you about with smart TRVs: the temperature sensor inside the valve head sits two inches from the radiator. When the radiator is hot, the valve reads hot. When the valve reads hot, it closes. The room is still cold. The valve thinks the job is done.
The fix is a weighted-average template in Home Assistant. Take the standalone room sensor and give it the lion’s share of the vote. Ignore the TRV’s own reading or weight it near zero. Feed that average back to the valve as its ‘current temperature’. The valve now opens and closes based on what the room actually feels like, not what the valve thinks the room feels like. A small bit of YAML solved a problem Sonoff’s own product hadn’t quite solved, which is the kind of thing that should annoy me more than it does.
There was a Zigbee mesh wobble in the middle. The TRVs are battery-powered end devices and won’t route traffic, so the network was thin until I added enough mains-powered routers to give the mesh some backbone. Once it had that, it settled.
The boiler now fires when a room asks it to and stays off when no room is asking. The bedroom is warm when I go to bed and cool by the time I’m asleep, on its own, without me touching anything. Hive’s servers no longer have an opinion on whether my boiler runs. The boiler still fires the same way. It just answers to me now.
That’s the bit I keep coming back to. Not the energy saving, not the per-room control – the small fact that the heating in my house is, finally, doing what a heating system should always have done, which is heat the rooms people are in.