Properly handle climate entities and windows

Hi everybody,

I found this blueprint here in the community and was exited to finally get rid off my automations that I wrote when just starting Home Assistant.

This usually works great: I open a window, the climate entity turns off, I close the window, it turns to auto (I modified the original blueprint so that it would set the climate entity to auto instead of heat, as heat seems to set my climate entities to full power).

However, I also have automations like the ones below; they will set particular climate entities to set degrees at set times. In other words, I don’t have them on <n>°C 24/7, but use helpers to change temperature values, for example, turn the kitchen radiator to 12°C at 23:00:00, to 25°C at 06:00:00, and to 17.5 at 07:30:00. So don’t waste heat at night, assure to have the room nicely heated when entering in the morning, then having it at another value throughout the day. That’s just an example.

The Issue

Let’s say that I had opened the kitchen window at 22:45:00. In this case, the automation via blueprint would have turned the climate entity off, which is the expected behavior. However, now that 23:00:00 has come, the temperature gets set to 12°C. And when it does, it seems like the hvac_mode also, unintentionally changes from off to auto. So even if the window is still open when changing the current_heating_setpoint, it will not retain it’s current status (off), but go to auto without checking whether the window is open or not.

Of course, I could use a condition that checks whether or not each window corresponding to each radiator is open, and -if so-, do not change the temperature. However, if this was the case, and I’d eventually shut the window, it’d still be at whatever value it was before, regardless of the time (and the appropriate set temperature it was supposed to be).

I also thought of something like time_pattern to check every x minutes whether a window is open, and -if so- then set hvac_mode: "off". But that didn’t seem like the best way to handle this, either.

Below are the automation based on the blueprint as well as the time-based heating setpoint one. What am I doing wrong, what do you suggest I change?

Thank you in advance for your ideas :slight_smile:

alias: Heizung KU von Blueprint
description: ''
use_blueprint:
  path: govido/window_controlled_heater.yaml
  input:
    heating_target: climate.kueche_heizung
    window_entity: binary_sensor.kueche_fenster_contact
    window_closed_wait: 1
    window_opened_wait: 1
input_datetime:
  ku_abends:
    has_date: false
    has_time: true
  ku_morgens:
    has_date: false
    has_time: true
  ku_nachts:
    has_date: false
    has_time: true
  ku_vormittags:
    has_date: false
    has_time: true

input_number:
  ku_abends:
    name: KU Abends
    min: 5
    max: 30
    step: 0.5
    mode: box
  ku_morgens:
    name: KU Morgens
    min: 5
    max: 30
    step: 0.5
    mode: box
  ku_nachts:
    name: KU Nachts
    min: 5
    max: 30
    step: 0.5
    mode: box
  ku_vormittags:
    name: KU Vormittag
    min: 5
    max: 30
    step: 0.5
    mode: box

automation:
  - alias: "Heizung KU Abends"
    trigger:
      - platform: time
        at: input_datetime.ku_abends
    variables:
      temperatur: input_number.ku_abends
      heizung: climate.kueche_heizung
    action:
      - service: climate.set_temperature
        data_template:
          entity_id: "{{ heizung }}"
          temperature: "{{ states(temperatur) }}"
  - alias: "Heizung KU Morgens"
    trigger:
      - platform: time
        at: input_datetime.ku_morgens
    variables:
      temperatur: input_number.ku_morgens
      heizung: climate.kueche_heizung
    action:
      - service: climate.set_temperature
        data_template:
          entity_id: "{{ heizung }}"
          temperature: "{{ states(temperatur) }}"
  - alias: "Heizung KU Nachts"
    trigger:
      - platform: time
        at: input_datetime.ku_nachts
    variables:
      temperatur: input_number.ku_nachts
      heizung: climate.kueche_heizung
    action:
      - service: climate.set_temperature
        data_template:
          entity_id: "{{ heizung }}"
          temperature: "{{ states(temperatur) }}"
  - alias: "Heizung KU Vormittags"
    trigger:
      - platform: time
        at: input_datetime.ku_vormittags
    variables:
      temperatur: input_number.ku_vormittags
      heizung: climate.kueche_heizung
    action:
      - service: climate.set_temperature
        data_template:
          entity_id: "{{ heizung }}"
          temperature: "{{ states(temperatur) }}"

Hi, check this one from me: Set thermostat temperature at specific time

Here the temp will saved and set when climate entity is going back to heat mode

Couple things. My thermostat won’t accept a temperature command if it is off. Can you send a service call from the developer tools section to the thermostat to make sure it is this automation? That might be a specific thermostat behavior.

I had a similar problem as well with keeping the windows open through a setpoint change. I created an automation to loop every 2 minutes after a setpoint change until the setpoints are correct.