I have 8 radiators, each with with Sonoff TRVZB’s connected and a Tado Smart Thermostat (V3+) to control the boiler (a Grant, oil burner)
In addition, each room also has a Sonoff SNZB-02 temperature sensor on the ceiling of each room. The bathroom has a SNZB-03 opening sensor attached to the window (which is open when the shower or bath is in use)
Finally, the living room has 2 radiators. Both with the TRVs attached (included in the total count of 8)
What I’m trying to do, is have the boiler come on, when any of the TRVs call for heat, and turn off the boiler when not.
A deceptively simple idea, but I’m failing to try and understand the execution, or indeed how to actually go about it.
Obvioulsy, if one TRV is satisfied, but another is not, then I want to ensure the boiler stays on until all TRVs have met their heat requirements.
I’d rather not hard-code the TRVs temperature, as someone in the house may want to turn them up or down.
Could anyone give me some pointers on how to achieve this?
Can anyone elaborate a bit more on this? Like the OP I use SNZB-02 and TRVZB, I have Better Thermostat to link them.
‘Create a group with the switches’ seems simple enough except that the TRV does not expose any switch entities related to heat. The only switch entities are child lock and window open. Nor does Better Thermostat expose anything Groups can use.
The TRV has an MQTT property called running_state that contains heat or idle, can I create a switch from that?
I have a Sonoff Zigbee switch on my boiler’s demand wire. I then created a very simple automation that monitors the above sensor and turns on/off the boiler switch according to the heating demand.
@photomoose Would you be so kind as to explain the automation as im wanting to do this too, looking to create a card that has all the rooms (each room will have a Zigbee TRV and a temp sensor) and if any call for heat the boiler comes on, once none call for heat I want the boiler off.
Don’t over-focus on the front end design. The card simply shows what’s going on in the back end, which is where you need to focus your efforts.
You can create the binary template sensor in the UI under helpers, with a state template like the one in the post above (just the bit below, and excluding, the state: > line). although I’d write it thus (see the warning at the end of this section):
Then the automation is simply triggered when that binary sensor changes state and matches the boiler to the sensor. Something like this in YAML, which you can paste into the automations UI when set to “Edit in YAML” mode:
I’ve got a similar situation myself so this has been really useful thanks. I have a couple of questions though. First how do you turn off the boiler when the state of trvs combined is false? Second why does this work if the condition evaluates to “true” rather than any change of state I.e. from true to false?
Thanks again I understand your code now. Maybe I need to adapt this for my specific use case since I’m using an aqara t2 relay rather than a switch. Forgive me regarding the condition I understood the first “when” in the gui (which is where I started so I could figure out the entity names coming from zigbee2mqtt) was equivalent to an IF statement but I can see it’s different from that.