Skip to main content

Heizung Absenkung Fenster

Wenn der Status eines Fenster Sensors wechselt, wird das Thermostat An- oder ausgeschaltet.

Im Komfort Zeitfenster wird hierzu die aktuelle Temperatur gesichert.

Alle nötigen Stati und Entitäten werden im Variablen Block gesetzt, damit bleibt die Sequence schön kurz.

Wichtig ist der Modus "parallel" und max sollte größer sein als die Anzahl der Räume! Ansonsten ist die Gefahr groß, dass Automatisierungsläufe nicht ausgeführt werden.

Als Optimierung könnte man noch einen Zeit Trigger einbauen, so dass die Aktion erst nach 1 oder 2 Minuten ausgeführt wird. Die wird auf jeden Fall der Batterie Laufzeit des Thermostates zu Gute kommen.

Code:

alias: Heizung Fenster Absenkung
description: ""
trigger:
    - platform: state
      entity_id:
        - binary_sensor.fenster_wc_open_close
        - binary_sensor.fenster_buero_open_close
        - ...
      id: FensterAUF
      to: "on"
    - platform: state
      entity_id:
        - binary_sensor.fenster_wc_open_close
        - binary_sensor.fenster_buero_open_close
        - ...
      id: FensterGESCHLOSSEN
      to: "off"
condition:
    - condition: state
      entity_id: input_boolean.urlaub
      state: "off"
action:
    - variables:
        room: "{{ trigger.entity_id.split('_')[2] }}"
        device: "{{ 'climate.thermostat_' + room }}"
        comfort: "{{ 'input_number.thermostat_' + room + '_comfort' }}"
        eco: "{{ 'input_number.thermostat_' + room + '_eco' }}"
        device_temp: "{{ state_attr( device, 'temperature') }}"
        eco_temp: "{{ states(eco) }}"
        comfort_temp: "{{ states(comfort) }}"
        scheduler: "{{ 'schedule.heizung_' + room + '_eco' }}"
        scheduler_state: "{{ states(scheduler) | bool }}"
        scheduler_switch: "{{ states('input_boolean.heizung_' + room + '_zeitplan') | bool }}"
    - choose:
        - conditions:
            - condition: trigger
              id: FensterAUF
          sequence:
            - if:
                - "{{ scheduler_state }}"
              then:
                - service: climate.set_temperature
                  data:
                    temperature: "5"
                  target:
                    entity_id: "{{ device }}"
              else:
                - service: input_number.set_value
                  data_template:
                    value: "{{ device_temp }}"
                  target:
                    entity_id: "{{ comfort }}"
                - service: climate.set_temperature
                  data:
                    temperature: "5"
                  target:
                    entity_id: "{{ device }}"
        - conditions:
            - condition: trigger
              id: FensterGESCHLOSSEN
          sequence:
            - if:
                - "{{ scheduler_state }}"
              then:
                - service: climate.set_temperature
                  data:
                    temperature: "{{ eco_temp }}"
                  target:
                    entity_id: "{{ device }}"
              else:
                - service: climate.set_temperature
                  data:
                    temperature: "{{ comfort_temp }}"
                  target:
                    entity_id: "{{ device }}"
mode: parallel
max: 20