Die Heizsaison startet bald, wird Zeit sich mit der Heizung auseinanderzusetzen.
Hier mal eine Automatisierung zur Fenster Offen Erkennung in Zusammenspiel mit der Scheduler Componente aus dem HACS.
Benötigt wird ebenfalls die Scheduler Card .
Das besondere daran ist, dass wenn Ihr eine bestimmte Namenskonvention für die Entitäten verwendet. Eine einzige Automatisierung für die Fenster Offen Erkennung ausreicht und zwar für alle Räume!
Es sind insgesamt drei Domains im Spiel:
- binary_sensor -> Das Fenster
- climate -> Die Heizung
- switch -> der Scheduler Schalter
Die Idee ist über den Raum Namen alle beteiligten generisch anzusprechen.
Die Namenskonvention sieht folgendermassen aus:
- binary_sensor_fenster_{{raum}} , Friendly Name = Fenster {{raum}}
- climate.heizung_{{raum))
- switch.schedule_heizplan_{{raum}}
Am Beispiel Bad heissen die Entitäten:
- binary_sensor.fenster_bad , Friendly Name = Fenster Bad
- climate.heizung_bad
- switch.schedule_heizplan_bad
Habt ihr mehrere Heizkörper-Thermostate oder Fenster im Raum, könnt Ihr diese zu einer Gruppe zusammenführen und die Gruppe ansprechen.
Hier mal die Automatisierung für Heizkörper-Thermostate ohne OFF Modus.
Wird eine Fenster im Raum geöffnet und es ist gerade Heizsaison. Wird der Heizplan ausgeschaltet und die Soll-Temperatur auf 7°C gestellt.
Wird das Fenster wieder geschloßen, wird der Heizplan eingeschaltet und die im Heizplan hinterlegte Soll-Temperatur eingestellt.
Das Template
Code: Alles auswählen
{{ trigger.to_state.name.split(' ')[1] | lower }}
ermittelt den Namen des Sensors der die Automatisierung ausgelöst hat. Teilt den String auf, da wo ein Leerzeichen erkannt wird und gibt den 2ten String in Kleinbuchstabeen als Ergebnis aus.
Am Beispiel "Fenster Bad",lautet das Ergebnis "bad", also unser Raum.
Das Template
Code: Alles auswählen
{{ trigger.id }}
ermittelt die Trigger-ID, in unserem Fall "on" oder "off"
Somit lässt sich dann in Abhängigkeit der Trigger-ID der dienst switch.turn__{{ trigger.id }} nutzen.
Code: Alles auswählen
alias: Heizung Fenster Automatik Temperatur
description: ""
trigger:
- platform: state
entity_id:
- binary_sensor.fenster_bad
from: "off"
to: "on"
for:
hours: 0
minutes: 0
seconds: 0
id: "off"
- platform: state
entity_id:
- binary_sensor.fenster_bad
from: "on"
to: "off"
for:
hours: 0
minutes: 0
seconds: 0
id: "on"
condition:
- condition: state
entity_id: input_boolean.heizsaison
state: "on"
action:
- choose:
- conditions:
- condition: trigger
id: "off"
sequence:
- service: switch.turn_{{ trigger.id }}
data: {}
target:
entity_id: >
switch.schedule_heizplan_{{ trigger.to_state.name.split(' ')[1] | lower }}
- service: climate.set_temperature
data:
temperature: 7
target:
entity_id: >-
climate.heizung_{{ trigger.to_state.name.split(' ')[1] | lower }}
- conditions:
- condition: trigger
id: "on"
sequence:
- service: switch.turn_{{ trigger.id }}
data: {}
target:
entity_id: >
switch.schedule_heizplan_{{ trigger.to_state.name.split(' ')[1] | lower }}
mode: parallel
max: 10
Für Heizkörper-Thermostate mit einem Off-Modus, können wir das theermostt auf Off setzen anstatt eine niedrige Soll-Temperatur vorzugeben.
Code: Alles auswählen
alias: Heizung Fenster Automatik Off-Modus
description: ""
trigger:
- platform: state
entity_id:
- binary_sensor.fenster_bad
from: "off"
to: "on"
for:
hours: 0
minutes: 0
seconds: 0
id: "off"
- platform: state
entity_id:
- binary_sensor.fenster_bad
from: "on"
to: "off"
for:
hours: 0
minutes: 0
seconds: 0
id: "on"
condition:
- condition: state
entity_id: input_boolean.heizsaison
state: "on"
action:
- choose:
- conditions:
- condition: trigger
id: "off"
sequence:
- service: switch.turn_{{ trigger.id }}
data: {}
target:
entity_id: >
switch.schedule_heizplan_{{ trigger.to_state.name.split(' ')[1] | lower }}
- service: climate.set_hvac_mode
data:
hvac_mode: "off"
target:
entity_id: >-
climate.heizung_{{ trigger.to_state.name.split(' ')[1] | lower
}}
- conditions:
- condition: trigger
id: "on"
sequence:
- service: switch.turn_{{ trigger.id }}
data: {}
target:
entity_id: >
switch.schedule_heizplan_{{ trigger.to_state.name.split(' ')[1] | lower }}
mode: parallel
max: 10
Diesmal wird der mode: parallel verwendet, schließlich können gleichzeitig in mehreren Räumen die Fenster geöffnet oder geschlossen werden.
Um weitere Räume in der Automatisierung zu berücksichtigen, müssen nur noch die jeweiligen Fenster Sensoren als Entitäten für die bereits definierten Trigger hinzugefügt werden.
Code: Alles auswählen
trigger:
- platform: state
entity_id:
- binary_sensor.fenster_bad
- binary_sensor.fenster_buero
- binary_sensor.fenster_kueche
- binary_sensor.fenster_wz
- binary_sensor.fenster_sz
from: "off"
to: "on"
for:
hours: 0
minutes: 0
seconds: 0
id: "off"
- platform: state
entity_id:
- binary_sensor.fenster_bad
- binary_sensor.fenster_buero
- binary_sensor.fenster_kueeche
- binary_sensor.fenster_wz
- binary_sensor.fenster_sz
from: "on"
to: "off"
for:
hours: 0
minutes: 0
seconds: 0
id: "on"
Diese Automatisierung lässt sich natürlich auch ohne der Scheduler Componente verwenden, allerdings sinnvoll nur bei Thermostaten mit einen Off-Modus. Da nur dann die gleiche Soll-Temperatur beim schließen des Fenster wiederhergestellt wird, die auch vor dem öffnen des Fensters vorgeherrscht hat.
Beim Erstellen der Heizpläne über die Scheduler Karte wäre noch wichtig zu erwähnen, das ihr als Entität sowohl das Heizungsthermostat wie auch den Fenster Sensor hinzufügt. Wichtig, da wir das Fenster als Bedingungen verwenden möchten, sprich der Plan soll nur dann die vorgegebene Soll- Temperatur setzen, wenn das Fenster geschlossen ist. Ebenfalls müsst ihr "Erneut prüfen wenn sich die Zustände ändern" anwählen.
Die Bedingung sorgt dafür, dass wenn das Fenster offen steht und ihr aus welchen Grund auch immer den Heizplan einschaltet, die Soll Temperatur nicht eingestellt wird. Das geschieht erst wenn das Fenster geschlossen wird.
Wichtig auch, das Ihr hier an dieser Stelle den Namen Heizplan {{raum)), also Heizplan Bad vergibt und nicht die Entität des switches ändert.
Code: Alles auswählen
type: custom:scheduler-card
include:
- climate.heizung_bad
- binary_sensor.fenster_bad
title: Heizplan Bad
discover_existing: false
Auch wenn Ihr die Automatisierung in der Form nicht gebrauchen könnt oder anwenden wollt.
Zeigt das Bsp. wie Ihr die trigger.id und oder trigger.to_state in anderem Zusammenhang verwenden könnt.
Gruß
Osorkon