arthurrump / esphome-opentherm

Create your own smart modulating thermostat using the OpenTherm component for ESPHome
BSD 2-Clause "Simplified" License
72 stars 40 forks source link

Max CH water temeprature #22

Open SebuZet opened 10 months ago

SebuZet commented 10 months ago

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

wildekek commented 10 months ago

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.

SebuZet commented 10 months ago

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.

SebuZet commented 10 months ago

@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...

wildekek commented 10 months ago

@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
SebuZet commented 10 months ago

Thanks for your answer. I will try to play with it.