Den aktuellen Monat als Bedingung in Automatisierungen nutzen

Heute hat mich vom Leser Theo die Frage erreicht, wie man bei einer Automatisierung den aktuellen Monat als Bedingung nutzen kann. Konkrete Frage war: Die Automatisierung soll nur ausgeführt werden, wenn man sich in den Monaten Oktober bis März befindet – wie macht man das? Mein erster Gedanke war, dies mit einer Template-Bedingung und irgendwie mit einer Timestamp-Umwandlung zu machen. Tatsächlich ist mein Vorschlag nun eine Template-Bedingung mit einer super einfachen Überprüfung, welchen Monat wir aktuell haben. Los geht’s! 😉

Bevor ich meinen Lösungsvorschlag zeige, zunächst noch ein Mini-Exkurs, wie man in einer Automatisierung als Bedingung ein Template nutzt:

In deiner Automatisierung klickst du auf BEDINGUNG HINZUFÜGEN woraufhin sich ein Dialog öffnet.

In diesem Dialog klickst du dann auf Andere Bedingungen:

Den aktuellen Monat als Bedingung in Automatisierungen nutzen

Du magst Home Assistant? Dann abonniere kostenlos meine Beiträge mit Tipps, Tricks und Anleitungen rund um Home Assistant:

Follow Home Assistant
( 421 Followers )
X

Follow Home Assistant

E-mail : *
* Ich stimme der Datenschutzerklärung zu!

Garantiert kein Spam, keine Werbung und immer mit Abmelde-Link, solltest du es dir anders überlegen!

Die Ansicht im Dialog wechselt und als nächstes wählst du Template:

Den aktuellen Monat als Bedingung in Automatisierungen nutzen

Hiernach solltest du (in etwa) folgende Ansicht haben:

Den aktuellen Monat als Bedingung in Automatisierungen nutzen

Und in die Text-Area mit dem Namen Wert-Template * können wir nun die eigentliche Logik unserer Bedingung eintragen.

Kommen wir nun zur Template-Logik, über welche wir prüfen wollen, ob wir uns aktuell in einer Liste von Monaten (bspw. Oktober bis März, also 10, 11, 12, 1, 2, 3) befinden.

Hierzu musst du wissen, dass Bedingungen ja letztlich Prüfungen sind. Wenn die Bedingung erfüllt wird (also true ist), soll die Automatisierung ausgeführt werden.

Die benötigte Template-Bedingung muss also bei der Prüfung des aktuellen Monats true liefern, wenn der Monat 10, 11, 12, 1, 2 oder 3 ist.

Home Assistant ist zu einem nicht geringen Teil in Python geschrieben, so dass wir bei Templates sehr oft mit regulären Python-Funktionen oder Operatoren arbeiten können.

Für uns nun hilfreich ist, dass Python eine Funktion now() bereitstellt, welche die Uhrzeit und das Datum (also auch den Monat) zum Zeitpunkt des Aufrufes der Funktion liefert. Und darüber hinaus kann man sich bspw. mit now().month den aktuellen Monat als Integer ausgeben lassen.

Nun müssen wir also lediglich prüfen, ob der Wert von now().month in unserer Liste 10, 11, 12, 1, 2, 3 enthalten ist.

In der Syntax von Home Assistant sieht das dann wie folgt aus:

{{ now().month in [10, 11, 12, 1, 2, 3] }}

Ist now().month in der Liste enthalten, liefert die Zeile/Prüfung true als Ergebnis zurück.

Hast du den Code eingegeben, kannst du die korrekte Funktionsweise auch direkt testen, in dem du auf die 3 vertikalen Punkte und dann Testen klickst:

Den aktuellen Monat als Bedingung in Automatisierungen nutzen

Im Falle dass dein Code true als Ergebnis liefert, wird dir BEDINUNG ERFÜLLT angezeigt:

Den aktuellen Monat als Bedingung in Automatisierungen nutzen

Anderenfalls wird dir in orange ein BEDINGUNG NICHT ERFÜLLT angezeigt.

Mit dem gezeigten Code-Template kannst du nun also Automatisierungen erstellen, die als Bedingung die Prüfung des aktuellen Monats haben, also nur in jenen Monaten ausgeführt werden, in denen du dies wünschst. Die Monatsliste 10, 11, 12, 1, 2, 3 kannst du natürlich beliebig anpassen!

Dieser Beitrag ist Teil einer Beitrags-Serie rund um Home Assistant.

1 Gedanke zu „Den aktuellen Monat als Bedingung in Automatisierungen nutzen“

  1. Hallo Olli. Was ein Service an Deine Leserinnen und Leser.

    Das Problem hat mich seit Tagen nicht mehr los gelassen und Du konntest den entscheidenden Tipp mittels der Wert-Template Bedingung geben. Sensationell.

    Ich konnte es mundgerecht in die bestehende Automatisierung einbauen, welche bisher ganzjähig den Schalter ausschaltete. Das passiert nun nur noch in den Wintermonaten, wenn ich es wirklich benötige. Stark.

    Ich glaube, ich muss mich mal tiefer in die Wert-Templates einarbeiten. Damit ist ja noch mehr möglich als ohnehin schon.

    Vielen Dank, Theo

    Antworten

Schreibe einen Kommentar