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
- binary_sensor.fenster_werkstatt_open_close
- binary_sensor.schiebetuere_wz_open_close
- binary_sensor.fenster_sz_open_close
- binary_sensor.fenster_gruen_open_close
- binary_sensor.fenster_rosa_open_close
- binary_sensor.fenster_lydia_open_closefenster_lydi_open_close
- binary_sensor.fenster_carrera_open_close
- binary_sensor.fenster_dg_wc_open_closefenster_wcdg_open_close
- binary_sensor.fenster_studio_open_close
id: FensterAUF
to: "on"
- platform: state
entity_id:
- binary_sensor.fenster_wc_open_close
- binary_sensor.fenster_buero_open_close
- binary_sensor.fenster_werkstatt_open_close
- binary_sensor.schiebetuere_wz_open_close
- binary_sensor.fenster_sz_open_close
- binary_sensor.fenster_gruen_open_close
- binary_sensor.fenster_rosa_open_close
- binary_sensor.fenster_lydia_open_closefenster_lydi_open_close
- binary_sensor.fenster_carrera_open_close
- binary_sensor.fenster_wcdg_open_close
- binary_sensor.fenster_studio_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 }}"
climate_state: "{{ states('input_boolean.heizung_' + room + '_on_off') | bool }}"
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 }}"
store_temp: "{{ device_temp > eco_temp }}"
- choose:
- conditions:
- condition: trigger
id: FensterAUF
sequence:
- if:
- condition: template
value_template: "{{ scheduler_state }}"
then:
- service: script.turn_on
data:
variables:
room: "{{ room }}"
temp: "5"
target:
entity_id: script.heizung_set_temperature
else:
- if:
- condition: template
value_template: "{{ store_temp }}"
then:
- service: input_number.set_value
data_template:
value: "{{ device_temp }}"
target:
entity_id: "{{ comfort }}"
- service: script.turn_on
data:
variables:
room: "{{ room }}"
temp: "5"
target:
entity_id: script.heizung_set_temperature
- conditions:
- condition: trigger
id: FensterGESCHLOSSEN
- condition: template
value_template: "{{ climate_state }}"
sequence:
- if:
- condition: template
value_template: "{{ scheduler_state }}"
then:
- service: script.turn_on
data:
variables:
room: "{{ room }}"
temp: "{{ eco_temp }}"
target:
entity_id: script.heizung_set_temperature
else:
- service: script.turn_on
data:
variables:
room: "{{ room }}"
temp: "{{ comfort_temp }}"
target:
entity_id: script.heizung_set_temperature
max: 2010
mode: parallel