Heizung An- / Aus
Wenn der Status eines Switches wechselt wird das Thermostat an- oder ausgeschaltet.
Beim Wechsel nach Aus innerhalb des Komfort Zeitplanes 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.
Code:
alias: Heizung An / Aus
description: ""
trigger:
- platform: state
entity_id:
- input_boolean.heizung_buero_on_off
- input_boolean.heizung_wc_on_off
- ... alle weiteren Switche
id: HeizungAN
to: "on"
- platform: state
entity_id:
- input_boolean.heizung_buero_on_off
- input_boolean.heizung_wc_on_off
- ... alle weiteren Switche
id: HeizungAUS
to: "off"
condition:
# Prüfung dass kein Urlaub ist
- condition: state
entity_id: input_boolean.urlaub
state: "off"
action:
- variables:
# Trigger "input_boolean.heizung_buero_on_off"
# der Split teilt den String in Textblöcke getrennt durch das '_' Zeichen.
# wir zählen ab 0 somit ist der Raum der 2te Block
room: "{{ trigger.entity_id.split('_')[2] }}"
# Einfache Templates zum setzen der Entities
device: "{{ 'climate.thermostat_' + room }}"
comfort: "{{ 'input_number.thermostat_' + room + '_comfort' }}"
eco: "{{ 'input_number.thermostat_' + room + '_eco' }}"
# die aktuelle Temperatur des Thermostates
device_temp: "{{ state_attr( device, 'temperature') }}"
# die aktuell gespeicherten Werte für Komfort- und Absenkung (Eco) Temperatur
eco_temp: "{{ states(eco) }}"
comfort_temp: "{{ states(comfort) }}"
# Die Zeitplan Entitiät
scheduler: "{{ 'schedule.heizung_' + room + '_eco' }}"
# Der Status des Zeitplanes und des An-/Aus Switches als BOOL Wert
# Damit kann der Status direkt in Bedingungen verwendet werden
scheduler_state: "{{ states(scheduler) | bool }}"
scheduler_switch: "{{ states('input_boolean.heizung_' + room + '_zeitplan') | bool }}"
- choose:
- conditions:conditions
# Heizung wird aus geschaltet
- condition: trigger
id: HeizungAUS
sequence:
- if:
# Prüfung dass mit Zeitplan gesteuert wird
- "{{ scheduler_state }}"
then:
# Wenn "scheduler_state" ist WAHR (also state: On) ist der Zeitplan im Eco Mode!
# dann wird nur Aus geschaltet
- service: climate.set_temperature
data:
temperature: "5"
target:
entity_id: "{{ device }}"
else:
# Wenn "scheduler_state" ist FALSE (also state: Off) ist der Zeitplan im Komfort Mode!
# dann wird die aktuelle Temperatur gesichert und dann erst Aus geschaltet.
- 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:
# Heizung wird Ein geschaltet
- condition: trigger
id: HeizungAN
sequence:
- if:
# Prüfung dass mit Zeitplan gesteuert wird
- "{{ scheduler_state }}"
then:
# die entsprechende Temperatur wird gesetzt
- 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