Automating Radiator Valves (TRV) with a boiler and Hive thermostat

I’ve just purchased the below Zigee TRV’s (Rebranded Tuya/Moes HY367) - Tuya Thermostatic Radiator Valve Controller (HY367) Zigbee compatibility

Link to TRV:

At the price of £26 each I thought it’s worth a go.

I already have the Hive active heating thermostat integrated in to my Home Assistant and have a simple automation to set the temp higher at 07:30 and then lower at 21:30 respectively. This works fine, and it uses its own thermostat (in the living room) to determine whether it needs to send a signal to the boiler to turn on the heating.

I previously had a manual TRV on each of the 5 radiators in my house. These have now been swapped out for the HY367 model listed above. They all paired with the ZHA integration and I can manually adjust/turn on/set each one individually.

The problem lies with how to automate this together with the Hive thermostat.

I want a pretty basic system, but I’m getting my head in a muddle trying to work out the automations required. I am looking for the following:

  • At 07:30, set all TRV’s to a temp of 19.5
    → If any of the TRV’s report their current temp as lower than 19.5, switch on the boiler via the Hive thermostat control (climate.set_temperature). But, because of Hive’s own thermostat, it uses this to determine when to call for heat from the boiler. So, I think I would need to artificially set the Hive thermostat to something higher, say 25, so that it initiates that call for heat.
    → If all of the TRV’s report their current temp as 19.5 or above, no need to call for heat at this time.

Then, ongoing throughout the day, if the temp of any TRV falls below the set temp, do the same as above by calling for heat via the Hive thermostat

Once any/all TRV’s reach their set temp, turn the call for heat off by setting the Hive thermostat down to something like 15, to force it.

Additionally, if any of the TRV’s are manually adjusted using the TRV head itself, again, call for heat by setting the Hive thermostat to 25 to force the it.

  • At 21:30, set all TRV’s to a temp of 17 which will also turn off the boiler via the Hive thermostat (set to something like 15 to force it)

As you can see, a lot relies on having to force/override the existing Hive thermostat to do the call for heat to turn the boiler on, as without this, no hot water will be pumping round the system regardless of what the TRV’s want to do.

Am I overthinking this, or missing something else? What is the best way to achieve this?

I am also happy to drop the Hive system now I have individual TRV’s but presume I need some kind of zigbee dry contact relay wired in to the boiler instead of the Hive receiver I currently have. Then, I can just say “turn the boiler on” when a TRV needs it, and off again when not.

Thanks for helping :slight_smile:


Slight update, I’ve now removed my Hive Hub and integrated the Hive Receiver and Thermostat directly in to Home Assistant (paired with ZHA), so I can use it locally and not through the Hive Cloud. This also now allows me to directly control turning the call for heat on/off but it still requires me to set a temperature that is higher than what the thermostat shows…

I am also in process of buying TRVs. Can you confirm that the TRVs are pairing with ZHA? I ordered the new Sonoff Zigbee 3.0 dongle, which should work with ZHA. So hopefully the TRVs will also connect without any issues.

Yes, if it is zigbee based, it should pair straight to Home Assistant. I am using the ZHA integration with my USB zigbee dongle.

How to add Zigbee devices to Home Assistant via SONOFF Zigbee 3.0 USB Dongle Plus? How to flash firmware to Cc2652P? - SONOFF Official - this has instructions on how to enable your USB dongle with ZHA, after which, you can pair your TRV’s if they are supported.

My HY367 wasn’t supported, added support here: