Home Assistant: Weihnachtsbeleuchtung nur zur Weihnachtszeit schalten

Zur Weihnachtszeit kann man mit Home Assistant beindruckende Sachen machen, beispielsweise die Weihnachtsbeleuchtung nach Sonnenuntergang automatisch ein- und um 01:00 Uhr wieder auszuschalten.

Ich hatte das schon letztes Jahr programmiert und war dann im Sommer verwundert, warum immer Abends die Dekoleuchte im Wohnzimmer „mysteriös“ anging… Des Rätsels Lösung war, dass eben an der Steckdose über Weihnachten die Christbaum Beleuchtung hing und die Automatisierung noch immer Griff.

Besser wäre es also diese Automatisierung noch auf einen gewissen Zeitraum einzuschränken.
Home Assistant hält mit dem templating zwei Möglichkeiten dafür bereit.

Inhalt

Zeitraum direkt in der Aktion als Bedingung einbinden

Dafür editiert man die entsprechende Automatisierung und trägt als Bedingung einen Zustand ein.

Darin definiert man dann die folgenden zwei Zeilen:

 {% set today = now() %}
 {{ today.month == 12 or ( today.month == 1 and ( 1 <= today.day <= 6 )) }}

Nach dem Speichern wird diese Automatisierung beim Sonnenuntergang nur noch dann starten, wenn es Entweder Dezember- oder Januar, aber vor dem 7. ist.

Zeitraum als binären Sensor zur Wiederverwendung konfigurieren

Man hat in dem Szenario schon mal zwei Aktionen und muss die template Zeilen zweimal hinzufügen.
Und möglicherweise möchte man auch noch andere Aktionen auf einen bestimmten Zeitraum einschränken.

Damit bietet es sich an ein binary_sensor Template in Home Assistant zu erstellen, auf welchen man dann in den Aktionen referenzieren kann.

Als erstes bindet man für die Templates am besten eine include Datei in ~/config/configuration.yaml ein:

default_config:

# [...]

template: !include templates.yaml

# [...]

Und dann noch die Datei mit den Templates ~/config/templates.yaml:

- binary_sensor:
    - name: "Christmas Time"
      state: >
        {% set today = now() %}
        {{ today.month == 12 or ( today.month == 1 and ( 1 <= today.day <= 6 )) }}

Nachdem man die Dateien dann gespeichert- und in Home Assistant Entwicklerwerkzeuge -> TEMPLATE-ENTITÄTEN neu geladen hat, kann man diese in der Aktion als Bedingung die Entität des Sensors Angeben:

Grundsätzlich kann das auf mehrere Arten gemacht werden, auch z.B: mit der (externen) scheduler Komponente.

Die folgenden Referenzen liefern noch weitere Inputs:

Published by

Steven Varco

Steven ist ein Redhat RHCE- und Kubernetes CKA Zertifizierter Linux-Crack und ist seit über 20 Jahren sowohl beruflich wie auch privat auf Linux spezialisiert. In seinem Keller steht ein Server Rack mit diversen ESX und Linux Servern.

4 thoughts on “Home Assistant: Weihnachtsbeleuchtung nur zur Weihnachtszeit schalten”

  1. Wunderschönen guten Abend,
    die configuration.yaml hab ich vorbereitet und den Sensor bekomme ich auch angelegt. Jedoch bekomme ich es nicht hin, dass die Weihnachtszeit zB. von Ende November 23.11- 15.01 festgelegt wird. Könnten Sie mir hiermit helfen?

    MfG
    Sven

    1. In dem Fall müsste man die Bedingung wahrscheinlich mit zwei AND Direktiven verknüpfen:

      {{ (today.month >= 11 and today.day >= 23) or ( today.month == 1 and ( 1 <= today.day <= 15 )) }}

      1. Vielen lieben Dank

        Tatsächlich hab ich, mir heut über Tag, diese Lösung erarbeitet.

        {% set today = now() %}
        {{ today.month >= 11 and ( 25 >= today.day ) or ( today.month <= 1 and ( today.day <= 10 )) }}

        Echt vielen lieben Dank. Diese Lösung hab ich auch nur durch ihren Beitrag erarbeiten können. 👍
        Schön, dass es euch gibt, die ihr euch um uns Nichtwissende kümmert. 🤣🤣🤣

        Mit freundlichen Grüßen
        Sven Flaßhaar

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert