I would like to share some details about what is happening under the “hood” when SAT is working.
We intentionally wanted to keep this development as simple as it can be for the end-users. That’s why we worked really hard for the past 2 years to deliver an apparently simple OpenTherm thermostat. A LaPlace transform function ( Heat Curve ) delivers the optimal boiler flow temperature to keep the temperature on setpoint while a PID algorithm controls the internal temperature and adjusts accordingly the control setpoint.
Q: OK, but why you don’t let the users define their own PID gains?
A: When you try to tune at the same time the heating curve coefficient, kP, kI and kD it’s like trying to tune a 4-axis system. As a result, tuning the correct gains would be a painful procedure and time-consuming process, that’s why we designed the automatic gains. This development changes dynamically the gains based on the Heat curve algorithm output. This means that there isn’t any need to tune the PID gains and at the same time they are always perfectly tuned, even if you change the heat curve coefficient the PID gains stay well-tuned. This development can save a lot of time in tuning the system while we ensure the seamless heating operation.
Q: Why don’t use a typical PID controller?
A: A typical PID controller has 2 major flaws.
a) Integral windup. When you open a window then the controller needs some time to stabilize the integral and resume heating. SAT hasn’t that kind of issue because the heat curve value acts as a fast and low amplitude modulation of the integral value and the integral value as a low speed losses compensation. Given these circumstances SAT will resume its operation immediately.
b) No need to tune the kI value in different max boiler temperatures or various heating systems ( underfloor or radiators ).
Q: Why SAT acts as an ON/OFF thermostat and the control setpoint sent to the boiler is higher than the calculated control setpoint value?
A: Nowadays most modulating boilers are oversized because of heavy insulation on most homes. That leads the energy that is needed to heat a home, most of the times, to be lower than the minimum boiler capacity at 0% modulation. This led us to create the overshoot protection mechanism ( Low-Load Control ). SAT calculates the higher boiler water temperature when running at 0% modulation and then uses this value to calculate the ON and OFF times in a 15 minutes intervals while respects a minimum 3 minutes ON time in order to prevent wear to boiler. But in mild weather the 3 minutes ON time condition cannot be met, that’s why we created the automatic duty cycle and we extend the duty cycle while respecting the 3 minutes ON of the boiler. As a result of this sequence SAT sends the calculated Overshoot protection value as control setpoint, lower the max modulation to 0% and then manipulates the ON/OFF times.
Q: Are you going to let users use their own PID values for experimental purposes?
A: It is already an option in the new version that we are currently working. During the config flow the user can choose the manual tuning. But of course we discourage everyone to choose that path. We also intent to let the user out of the tuning process, because we are working on a new heating curve coefficient fuzzy tuner. When this development will be ready, SAT would become a completely autotuned controller.
Q: SAT overshoots/undershoots the room setpoint, what steps should I follow to correctly tune it?
A: If SAT undershoots use a higher heating curve coefficient value in the General tab until
the room temperature is equal to setpoint, if overshoots then use a lower heating curve coefficient.
Q: Is SAT only an OpenTherm Thermostat?
A: No, while our primary purpose is to control opentherm boilers through mqtt or serial connection, we also support ON/OFF boilers. Latest beta version supports during the config flow the configuration of an ON/OFF PID Thermostat. Moreover SAT is modular, so it can easily support more protocols ( EMS, modbus etc. ). If anyone interests to contribute, please contact with us.
Q: How many persons developed SAT?
A: Alex - Integration developer, George - Heating algorithm.