Multiple Shelly TRV to control a single relay

I’m new to Home Assistant and i would ask help on how to configure multiple TRV to control a single relay (eg sonoff basic).
The relay will close contact which allows to energize the zone valve to open the hydraulic circuit of the floor, starting the boiler.

I haven’t chosen yet the valve to use, but I’d like to try the Shelly TRVs.
They offer a cool functionality in my opinion as they send a GET request to an endpoint every 5 minutes when the valve is requesting for heat.
When the valve is not sending the request anymore I can assume the valve is closed, or offline (and in this case is ok to turn the heat off)
The logic I would like to implement is:

  • if any of the valve is sending the periodic request for heat the relay is closed
  • if no valves are requesting for heat, the relay is open

I’ve already implemented some test helpers buttons to simulate the event from the valve:

  • When the event is received a timer is started (or restarted) with a value of 6 minutes and a virtual toggle is turned on.
  • When the timer reaches 0 the toggle is turned off

What i miss is the REST api to receive the signal from Shelly TRV, but this is another story; I will analyze later

The part i would get an help from the community is how to close the relay when at least one of the toggles is ON and of course open it when all toggles are OFF

Thanks in advance

Hi, I had a look at my Shelly TRV as I was not sure if you actually needed the GET request in this case.
What I see is that the TRV has a number of states:
Heating - calling for heat.
Idle - not calling for heat.
Off - Off.

I believe in that case that you can perform an OR (or might be better with an AND) across all of the TRV’s in your zone and use the “hvac_action” value to trigger the sonoff as the heating controller.

An example of a template could be based on this one:

Hi Ronnie,
thanks a lot for the answer. But what if the TRV stops sending its data? (battery low, wifi problem…)
the point of using the GET is to avoid stale situations

Thanks for the link, it seems exactly what i needed for the OR logic

If you have a WiFi problem then you also don’t have a GET request, right?

I’m trying to understand your requirement here. Are you intending on operating the system in without a dependancy on HA? For example: do you want the TRVs and the sonoff to manage the heating without having to send data back to HA and have it manage the sonoff switch state?

Exactly, if for some reason (wifi loss, battery or faulty device) any of the TRV (I will install 4 devices) is not communicating anymore I want to “exclude” the device from the “logic OR” and I thought this was the best solution

If HA checks just the last “hvac_action” value sent by the devices, it could be stuck on “heating” and keeps on requesting for heat to the boiler.
Using timers I can avoid this unintended behaviour

I have a similar solution to RonnieLast, but since somehow I do not succeed to master YAML, I have done it via AppDaemon where I can program the logic in Python. My inspiration came from

I still should work out a solution in case one or more TRV’s “dissapear” and were in the heating status, but until now I did not experience this problem. Would add code here but the forum only allows images to be uploaded…