I think it will work well! What I really enjoy is the independence of choosing what thermostat to use. The only think I am thinking of is that you perhaps need to try out the on/off period. I am using TWA(Thermal Wax Actuators) driven by a LED-dimmer so for me the period doesn´t matter, anything from 10ms to 10 min would work. If you have a mechanical switch on the opposite you don´t want it to click several times per minute. But that is very easy to change in the configuration file.
I don´t now about anything that would suite you better.
I have used it for over a week now, it’s working as intended. The only thing that takes some getting used to is that the heater doesn’t turn on immediately after increasing temperature.
The temperature overall is more stable than before.
Try this and see if it’s any better:
kp: 4
ki 0.01
kd: 0
With kd completely off you can see how quickly the ki finds the proper level. Once that is found you can improve the responsiveness by adding ki: 1000 or ki: 10000
Start the heating at 17:00 from 20 degrees and the boiler turn on for 3 minutes then off and after 17 minutes turn on for 3minutes then off
after 12 minutes turn on for 3 minutes then off
after 9 minutes turn on for 3 minutes then off
after 8 minutes turn on for 3 minutes then off
after 7 minutes turn on for 3 minutes then off
after 7 minutes turn on for 3 minutes then off
after 7 minutes turn on for 3 minutes then off
after 7 minutes turn on for 3 minutes then off reach 21degrees
after 7 minutes turn on for 3 minutes then off 21.1 degrees
after 7 minutes turn on for 3 minutes then off 21.1 degrees
after 8 minutes turn on for 3 minutes then off 21.2 degrees
after 8 minutes turn on for 3 minutes then off 21.3 degrees
after 9 minutes turn on for 3 minutes then off 21.3 degrees here manually turned off the heater.
So what can I do now? It was very slow heating. (Outside temp was 16 degrees.) This is 2 (not too big) kids rooms with gas boiler. With the old wall thermostat this same heating period was about 20 minutes or maybe less and not over heating. So I think not see the proper level.
Ok, don’t know where it come from this numbers, but set it up across call service, and cleared integral too. After some minutes hear that the boiler is turned on for 3 minutes (where does this 3 minute operating time come from?), don’t know why because the room temp was 20.0 degrees and the setted temp 19.5 degrees??
Just leave it today and see what happening.
The boiler switched on due to the derivative part. Pid_d = -dTemp/dTime ; that means if the temperature decreases quickly the d part will increase the heating. The Kd should be adjusted depending on the sampling rate of your thermal sensor.
Your pid_d is at 300 while pid_p is at -32, you may divide Kd to 1250 as it seems your sensor is faster than mine.
Do you see any other fine tuning for me? Or is it the best?
If I want to use the outside temp “Ke” how can I set it up? In the configuration use outdoor sensor.
It looks perfect, would be difficult to optimize more. You could probably increase the Kp for faster response to target temperature steps, but it may then overshoot a bit.
Ki may be a little high, the temperature remains between target and target +0.1°C, but adding Ke is quite easy and may already compensate the integral, just provide the outdoor sensor ID in the configuration yaml, and set Ke to the standard 0.6 and it should already give good results.
I ended up with these gains after a lot of trials and errors followed by fine tuning.
In the end the optimal settings may differ a lot depending on the temperature regulation requirement : if you leave the target temperature flat, you can keep low Kp and Kd to have a slow but stable feedback loop, relying more on integral to regulate the current temperature. If you create steps on the target (as we do), higher Kp will allow faster response time with very high Kd to detect fast temperature transients to anticipate the switching on or off to reduce the overshooting.
I may not understand everything you wrote, but thank you for your help. For now, it stays that way, and then I watch things. I’ll report if something isn’t clear.