esphome-opentherm
esphome-opentherm copied to clipboard
Max CH water temeprature
Hi, First of all I would like to thanks for you work. I'm trying to use it with my Immergas Victrix Tera 28 1 but it looks like CH max water point cannot be changed. I've underfloor heating system and I wanted to change maximum water temperature in CH. It should be 40 degrees but this limit doesn't work. How can I set a max water temperature? Is it possible without recompilation of Opentherm library?
Thanks, Seba
My boiler does not allow setting the CH max water setpoint, but when you limit the values in the t_set output, it effectively does the same:
output:
- platform: opentherm
t_set:
id: boiler_ch_setpoint
min_value: 20
max_value: 40
zero_means_zero: true
Make sure you check out actual output water temperature of the boiler though, I get a few degrees of overshoot, don't want to damage those floors.
Hi @wildekek , thanks for you answer. I don't know if my boiler id supporting changing CH max water setpoint. I used your suggestion and it look like it is working thanks!
I have another question. How it is working with your heating system? I have a feeling that water temperature is offten close to max. It looks like PID controller is setting max water temp and after few hours I have overheated home and for net few hours PIC controller turns everything off... It doesn't look like optimal/comfort solution.
@wildekek I was able to make it working. I created a simply function to set t_set value based on heating curve and outside temperature. It looks like it is working. I'm wondering if it is possible to combine your PID controller configuration with outside temperature sensor...
@SebuZet I think combining those would be possible by influencing the PID factors based on the error between inside and outside temp, climate.pid.set_control_parameters
is very useful.
What helped me a great deal in tuning PID was to use a sensor to check the boiler setpoint temp, and graph it together with the PID terms:
# Get the boiler setpoint in celcius
- platform: template
id: boiler_setpoint_temperature
name: "Boiler central heating setpoint"
lambda: |-
return id(boiler_ch_setpoint).state;
update_interval: 1s
unit_of_measurement: "°C"
device_class: "temperature"
state_class: "measurement"
accuracy_decimals: 2
Thanks for your answer. I will try to play with it.