Basic Boiler control approach with TRVZB & Homeassistant

Apologies if this is duplicated elsewhere but as per my previous posts, I am new to Homeassistant and so catching up.
I’ve come up with a basic Homeassistant native automation based boiler control approach that doesn’t use Node Red etc and looking for comments /suggestions for improvement:

  • I have had Tado thermostats on my radiators and my central heating system is split into two zones each with a diverter valve for historical reasons. As things stood I had a single Tado Room thermostat that did the relay switching of power to both diverter valves. My Viessman boiler doesn’t have the interface to control it directly. Therefore it relies on the boiler cutting out due to the valves shutting off when there is no demand.

  • I’ve replaced the thermostatic valves with TRVZBs and looking to replace the Tado room thermostat with a pair of ZBminis, one per zone.

  • The automation I’ve tested has an HA automation for each room that has a ‘IF the TRVZB has Heating Switch turned ON’ then turn on the ZBmini for that zone.

  • I then have another automation for each zone than has a time template of 5,10,15, etc minutes past each hour as a trigger. It has a condition of an ‘AND Heating Thermostat for room X is Off’ for each room in that zone. The action is to turn OFF the ZBmini for that zone.

I understand that this is really clunky, uses a lot of automations, doesn’t turn off the heating for potentially up to 5 mins after there is no demand, and also only turns the valves on or off, not set them to a temperature.

However, I wanted to try something that was HA native without having to also run Node Red in the first place, and in basic tests it seems to work.

Any suggestions for improvement?

Ship sank when I discovered the “Idle” state that the valves sit in when required temp has been reached

I haven’t tried connecting the TVRZB to ZHA or Zigbee2MQTT. I guess you are using a Zigbee dongle and home assistant with ZHA or Zigbee2MQTT? If so what options does it give you?

Install the Node Red add on in Home assistant

Using the built in switch node and a change node you can identify “idle” and then set the msg.payload to false if it is false. And whatever else it says to true.
Also you can use

To combine logical AND and OR easily with the two zones and only need 1 Zigbee switch. Just remember to use a change node to set the msg.topic to different topics or it won’t work.

Thanks for this. I’m slowly getting there. It in general seems to be working except I’m not 100% getting the turn off to work. Ideally I was thinking that it would be useful to create a “clean-up” flow that ran on a timed basis that effectively looked at current state rather than be triggered by changes, Is this possible?

Yes. As regards figuring out errors just put loads of debug nodes everywhere so you can figure out what is going on. Often nodes don’t believe how you think they will.

As regards your main point: aswell as the msg that flows around there are two types of variables you can set. The ‘flow’ variable which is only limited to the flow page it is in and ‘global’ which is everywhere.

For example you could use a change node to set flow.BoilerON to the Boolean true when the boiler is on and a second change node to set BoilerON to the Boolean false when it isn’t. Then you can just check the state of that Boolean anywhere in a flow with a switch node on that flow page (eg. Switch Node set to if flow.BoilerON boolean true output 1, if false output 2)

The default is for the status of that variable to be saved in memory. That might be okay but you might want it saved to file. In that case you need to edit the settings file for the node Red docker.

This details how to save variables to storage rather than memory

There is a guide here in how to manage files

While you are editing the configuration file you could also turn on password protection so not everyone on your local network can edit your node Red.

Just beware when it says password in the text it means the hashed version of the password (either done easily locally in Linux or using an online tool).

Thanks it’s looking good