Mit Home Assistant lassen sich spielen Automatisierungen erstellen, das eigene zu Hause erst zum wahren Smarthome machen. In diesem Beitrag beschriebe ich, wie man mit Home Assistant Automatisierung nicht am Wochenende ausführen lässt – denn tatsächlich währe es denkbar doof, wenn deine Rollläden auch am Samstag um 6:30 Uhr hochfahren, oder? 😉
Mit nur ein paar Zeilen Code hat man in Home Assistant eine Automatisierung (Automation) erstellt, die einem ab diesem Augenblick den Alltag vereinfachen kann. So könnte deine Automatisierung zum Öffnen der Rollläden wie folgt aussehen:
- id: 'shutters up' alias: 'Shutters up' trigger: - platform: time at: 07:01 action: - service: cover.open_cover data: entity_id: cover.fibaro_system_fgrm222_roller_shutter_controller_2_level_7,cover.fibaro_system_fgrm222_roller_shutter_controller_2_level_8
Mit diesen wenigen Zeilen YAML-Code (Wikipedia: YAML) öffnet Home Assistant morgens um 7:01 Uhr zwei Rollläden, die mit Fibaro-Aktoren in Home Assistant eingebunden sind. Um konkreter zu sein, wird Home Assistant diese Automatisierung an jedem Morgen um 7:01 Uhr ausführen – also auch an Wochenenden oder Feiertagen!
Automatisierung abhängig vom Wochentag
Viel sinnvoller und hilfreicher wäre es jedoch, wenn bei Automatisierungen neben der Uhrzeit (oder einem anderen Auslöser) zum Beispiel auch der Wochentag Berücksichtigung finden würde. Denn tatsächlich wird es auf den Alltag der allermeisten Smart Home-Besitzer zutreffen, dass man am Wochenende oder an Feiertagen andere typische Verhaltensweisen hat, als unter der Woche an einem normalen Arbeitstag!
Bis vor Kurzem habe ich selbst hierfür immer manuell die relevanten Automatisierungen (und hier insbesondere die Rollladen-Steuerung) vor dem Wochenende oder einem Feiertag manuell ausgeschaltet!
Da Home Assistant aber so ein geniales System ist, wird selbst für dieses „Problem“ ein Bordmittel geboten. Leider versteckt sich dieses Bordmittel jedoch ein wenig im System bzw. springt einem nicht sofort ins Auge. Auch ich musst erst ein wenig suchen und recherchieren, bis ich es entdeckt habe.
Home Assistant Bordmittel workday
Home Assistant bietet einen Binary Sensor namens workday an, so dass Home Assistant immer weiß, ob er aktuelle Tag ein Arbeitstag ist oder nicht. Berücksichtigt werden hierbei die typischen Arbeitstage Montag bis Freitag (wobei auch dies per Konfiguration nach Belieben angepasst werden kann!), als auch „alle“ bekannten Feiertage.
Bei der Berücksichtigung der Feiertage werden sowohl das Land, als auch das Bundesland berücksichtigt, so dass der absolute Großteil der geltenden Feiertage auch Home Assistant bekannt sein sollten!
Alles, was man hierfür tun muss, ist in der configuration.yaml beispielsweise folgende Zeilen Code zu ergänzen:
binary_sensor: - platform: workday country: DE province: NW
Über diese Zeilen Code definiere ich zunächst, dass ich mich in Deutschland befinde (country: DE) und zusätzlich, dass die Feiertage von NRW (province: NW) berücksichtigt werden sollen.
Die Liste der zur Verfügung stehenden Werte für country und province findet sich hier.
Ich habe wirklich nur diese vier Zeilen Code in meiner configuration.yaml ergänzt und Home Assistant weiß nun, ob der aktuelle Tag ein Arbeitstag ist, oder nicht:
Home Assistant Automatisierung nicht am Wochenende ausführen
Da der workday als Binary-Sensor integriert wird, kann der Zustand entweder on oder off betragen. Die einfache Bedingung (=Condition) state = on kann somit in Automatisierungen zum Beispiel eingebaut werden!
Dies bedeutet nun, dass unser eigentlicher YAML-Code für die Automatisierung lediglich um die Condition (=Bedingung) workday_sensor erweitert werden muss:
- id: 'shutters up' alias: 'Shutters ' trigger: - platform: time at: 07:01 condition: condition: state entity_id: 'binary_sensor.workday_sensor' state: 'on' action: - service: cover.open_cover data: entity_id: cover.fibaro_system_fgrm222_roller_shutter_controller_2_level_7,cover.fibaro_system_fgrm222_roller_shutter_controller_2_level_8
Produktempfehlungen
Hallo,
herzlichen dank. Genau das hat mir weiter geholfen. Prima.
Als Erweiterung des ganzen werde ich mal versuchen ob man über einen input_boolean.titivirtualswitch noch einfach so etwas wie einen Urlaubsschalter einzubauen. Müsste ja eigentlich gehen.
Als nächste könnte man das etl. noch einen Helfer zur Eingabe der Uhrzeit für die UI realisieren z.B. über input_number?
Gruß, besten Dank und weiter so
Tom
Hi Tom,
du meinst einen Urlaubsschalter, so dass bei aktivem Urlaub Dinge nicht ausgeführt werden? Ich habe das „anders“ gelöst, nämlich „so rum“, dass ich bei aktivem Urlaub gewisse Dinge anders mache (Lichter, Rolläden etc.). Das ist eine separate Urlaubs-Automation, welche ich nach Bedarf einschalten kann!
Die Uhrzeit über die UI/Lovelace steuerbar zu machen, klingt spannend. Schaue ich mir mal an!
Beste Grüße
Olli
Hi Olli,
habe mir jetzt über Helfer einen Datum Urzeit helfer in die UI gelegt und zusätzlich eine weitere condition in der Automation mit einem Urlaubsschalter. Sollte so erst mal gehen.
Danke
Tom
Danke für dein Feedback, gute Idee!
hi. Was mich wirklich interessieren würde, wie kann ich testen/sehen, ob dieser Sensor korrekt arbeitet?
Ich meine, kann man irgendwie eine Liste ausgeben o.ä., in der man sieht, ob ein bestimmter Tag ein Feiertag ist usw …
Hi Marco,
mit „korrekt“ meinst du, ob wirklich alle Feiertage bekannt sind?
Mir ist keine Möglichkeit bekannt, dies sich anzeigen zu lassen. Ich kann dir aber nach knapp 1,5 Jahren Nutzung sagen, dass es für Nordrhein-Westfalen bislang keine Probleme gab 😉
VG
Olli