Heizung Absenkung Zeit
Wenn der Status eines Zeitplans wechselt soll die dazugehörige Temperatur gesetzt werden.
Beim Wechsel von Komfort nach Absenkung wird die aktuelle Temperatur in die Komfort Temperatur Entität geschrieben.
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.
2023.02.19: Überprüfung ob Fenster geschlossen sind bevor die Komfort Temperatur gespeichert wird
Code
alias: Heizung Absenkung Zeit
description: ""
trigger:
- platform: state
entity_id:
- schedule.heizung_wc_eco
- schedule.heizung_eingang_eco
- schedule.heizung_flur_eco
- schedule.heizung_buero_eco
- schedule.heizung_werkstatt_eco
- schedule.heizung_ez_eco
- schedule.heizung_wz_eco
- schedule.heizung_sz_eco
- schedule.heizung_gruen_eco
- schedule.heizung_rosa_eco
- schedule.heizung_lydi_eco
- schedule.heizung_kinderbad_eco
- schedule.heizung_carrera_eco
- schedule.heizung_wcdg_eco
- schedule.heizung_studio_eco
id: AbsenkungStart
to: "on"
- platform: state
entity_id:
- schedule.heizung_wc_eco
- schedule.heizung_eingang_eco
- schedule.heizung_flur_eco
- schedule.heizung_buero_eco
- schedule.heizung_werkstatt_eco
- schedule.heizung_ez_eco
- schedule.heizung_wz_eco
- schedule.heizung_sz_eco
- schedule.heizung_gruen_eco
- schedule.heizung_rosa_eco
- schedule.heizung_lydi_eco
- schedule.heizung_kinderbad_eco
- schedule.heizung_carrera_eco
- schedule.heizung_wcdg_eco
- schedule.heizung_studio_eco
to: "off"
id: AbsenkungEnd
condition:
- condition: state
entity_id: input_boolean.urlaub
state: "off"
action:
- variables:
room: "{{ trigger.entity_id.split('_')[1] }}"
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 }}"
climate_state: "{{ states('input_boolean.heizung_' + room + '_on_off') | bool }}"
window_state: "{{ states('binary_sensor.fenster_' + room + '_open_close') }}"
temp: |
{% if scheduler_state %}
{{ eco_temp }}
{% else %}
{{ comfort_temp }}
{% endif %}
- if:
- "{{ scheduler_switch }}"
then:
- choose:
- conditions:
- condition: trigger
id: AbsenkungStart
sequence:
- if:
- "{{ window_state }} == 'off'"
- "{{ not scheduler_state }}"
then:
- service: input_number.set_value
data_template:
value: "{{ device_temp }}"
target:
entity_id: "{{ comfort }}"
- service: climate.set_temperaturescript.turn_on
data_template:data:
temperature:variables:
room: "{{ eco_temproom }}"
temp: "{{ temp }}"
target:
entity_id: "{{ device }}"
- conditions:
- condition: trigger
id: AbsenkungEnd
sequence:
- service: climate.set_temperature
data_template:
temperature: "{{ comfort_temp }}"
target:
entity_id: "{{ device }}"script.heizung_set_temperature
mode: parallel
max: 20