Alexwijn / SAT

The Smart Autotune Thermostat (SAT) is a custom component for Home Assistant that works with an OpenTherm Gateway (OTGW).
GNU General Public License v3.0
46 stars 11 forks source link

Multiroom implementation with TRV valves #43

Open SerialDestructor opened 1 month ago

SerialDestructor commented 1 month ago

First of all: thanks for putting in the effort, I'm following this with great interest. I would like to see if I can implement this in my case:

Currently, I have a basic logic.

But, there is a catch. The boiler has a minimum amount of heat it generates, which overwelms only one radiator (it can't get rid of the excess heat), which means is going to commute ('pendelen' in Dutch, the English translation doesn't quite fit it). That is bad for the boiler. My primitive implementation is to turn on another radiator when only one room requests heat. However, in some situations, the problem occurs again, especially with outside temperatures being very low.

Do you think this system could eventually fit my case, or is it simply put too specific?

sergeantd83 commented 1 month ago

Hi! Actually all your questions were considered when we were designing SAT for multiroom environments. But I will try to answer individually 🙂.

I would like to see if I can implement this in my case:

OpenTherm Boiler (Nefit ProLine NxT HRC24) OpenTherm Gateway Five rooms equipped with TRV's exposed as switches in Home Assistant Five temperature sensors, one for each room

Yes this is exactly the multiroom setup. Especially after this statement:

The TRV switches are coupled to climate entities. When the temperature is below the treshold, the TRV turns on.

The TRV's need time to open and close (by design), so before the central heating turns on, there is a configured delay of 2:30

We don’t support time delay, but I assume you control the 2:30 delay through your code.

The temperatures are synced to the 'master thermostat', which continuously reflects the highest Delta T.

In SAT you don’t need to do this. In the latest dev version we introduced the Heating Mode input select. You can choose either Comfort or Eco mode. In comfort mode we detect the highest error and SAT uses to it, while in Eco mode SAT uses as value only the main climate.

When the state of one of the climate entities is 'heating' (!= 'heat') and the delay since the last change has expired, the boiler is turned on

SAT when detects any of the thermostat’s hvac_action == heating then turns the heating ON. Otherwise if the TRVs or virtual thermostats are off ( `hvac_action == idle ) SAT doesn’t start the heating.

But, there is a catch. The boiler has a minimum amount of heat it generates, which overwelms only one radiator (it can't get rid of the excess heat), which means is going to commute ('pendelen' in Dutch, the English translation doesn't quite fit it). That is bad for the boiler.

We already solved this issue in the dev version. Since we continuously monitoring the boiler flow water temperature when SAT senses that the flow water temperature overshoots the Control Setpoint then we raise the Control Setpoint gradually in order to minimize cycling.

If you have any other question please don’t hesitate to ask!

SerialDestructor commented 1 month ago

Thanks for your in-depth reply! This system looks like it ticks all the boxes...

SAT when detects any of the thermostat’s hvac_action == heating then turns the heating ON. (...) SAT doesn’t start the heating.

I don't get this one, it looks like a contradiction to me.

We don’t support time delay, but I assume you control the 2:30 delay through your code.

I do, but this is exactly the code SAT would replace, as it handles the heating based on it's internal algorithms... So I'm not sure how I would fix that one. Each time a thermostat is turned off, the next time it's turned on, it needs this delay again.

If you have a hint on the latter, I will definitively give this a spin!

sergeantd83 commented 1 month ago

I don't get this one, it looks like a contradiction to me.

We sync the hvac_action of the thermostats with SAT. If none of your TRVs ask for heating the SAT hvac action remains idle. We use this logic in order to prevent any damage to boiler due to closed valves. But if any of your valves asks for heating then SAT resume heating.

I do, but this is exactly the code SAT would replace, as it handles the heating based on it's internal algorithms... So I'm not sure how I would fix that one. Each time a thermostat is turned off, the next time it's turned on, it needs this delay again.

When SAT starts heating always starts with 0% Max Modulation. So I don’t think that you will have any issue.