Das Smart Home funktioniert nur so lange gut, bis alles so gelebt wird, wie man es gewohnt ist. Aber was ist, wenn mal etwas eben nicht „normal“ ist? Jemand übernachtet bei einem, man hat Urlaub oder man feiert eine Party. Der Besuch soll natürlich nicht den Alarm auslösen und trotzdem Licht haben, obwohl man im Bett liegt. Auch bei einer Party soll die Heizung nicht schon um 21 Uhr ausgeschaltet werden.
Um diese Ausnahmen mehr oder weniger in den Griff zu bekommen, habe ich mir einen separaten Google Kalender erstellt, den ich über die Google Calendar Integration in Home Assistant integriert habe.
Außerdem habe ich mir 3 Boolian Helfer erstellt: Urlaub, Besuch und Party.
In dem Home Assistant Kalender trage ich ganztägige Termine ein, die ebenfalls Urlaub, Besuch oder Party heißen.
Jeden Morgen um 4 Uhr läuft eine Automation, die diesen Kalender überprüft, ob Einträge mit den o.g. Namen existieren. Wenn ja, werden die Boolian Helfer eingeschaltet. Jede Nacht um 3 Uhr läuft eine Automation, die diese Werte wieder zurücksetzt.
Troubeshooting
Bei Tests ist mir aufgefallen, dass die Helfer einen Tag zu früh gesetzt werden. Das hat scheinbar damit zu tun, wie die ganztägigen Kalendereinträge gespeichert werden. Um dem entgegenzuwirken, habe ich in der Automation angegeben, dass der Kalendereintrag mindestens eine Dauer von 1 Stunde haben soll.
Der Code für die Automation sieht so aus:
alias: "Switch: HA Kalender"
description: ""
triggers:
- trigger: time
at: "04:00:00"
conditions: []
actions:
- choose:
- conditions:
- condition: state
entity_id: calendar.ha_calendar
attribute: message
state:
- Urlaub
for:
hours: 1
minutes: 0
seconds: 0
sequence:
- action: input_boolean.turn_on
metadata: {}
data: {}
target:
entity_id: input_boolean.urlaub
- conditions:
- condition: state
entity_id: calendar.ha_calendar
attribute: message
state:
- Besuch
for:
hours: 1
minutes: 0
seconds: 0
sequence:
- action: input_boolean.turn_on
metadata: {}
data: {}
target:
entity_id: input_boolean.besucher_modus
- conditions:
- condition: state
entity_id: calendar.ha_calendar
attribute: message
state:
- Party
for:
hours: 1
minutes: 0
seconds: 0
sequence:
- action: input_boolean.turn_on
metadata: {}
data: {}
target:
entity_id: input_boolean.party_taste
mode: single
Vorteile
Hierüber kann ich jetzt also folgendes steuern:
- Im Büro geht die Steckdose nicht um 7 Uhr an, wenn ich Urlaub habe
- Heizung geht nicht um 21 Uhr aus, wenn eine Party ansteht
- Wenn Besuch bei uns übernachtet, funktionieren die Bewegungsmelder, auch wenn wir schlafen (siehe dazu meinen Blog Eintrag zum Bett Sensor)






