Zeitbedingungen in Home Assistant – Werktage, Kalender & Adventszeit nutzen!

In deinem Smart Home sind Automationen der Schlüssel zu einem intelligenten und reibungslosen Ablauf. Doch was passiert, wenn bestimmte Aktionen nur an Werktagen, zu einer bestimmten Jahreszeit oder während eines Kalendereintrags stattfinden sollen? Genau hier kommen smarte Zeitbedingungen in Home Assistant ins Spiel!

In diesem Blogbeitrag zeige ich dir, wie du Zeitbedingungen optimal in deinen Automationen einsetzt, um noch spezifischere und intelligentere Abläufe zu erstellen. Egal, ob es um Feiertage, die Adventszeit oder deinen Urlaubszeitraum geht – ich erkläre dir Schritt für Schritt, wie du Home Assistant dafür nutzen kannst.

https://youtu.be/qboY7hIPtn8

1. Werktage abfragen: Die Werktag-Integration

Mit der Werktag-Integration kannst du in deinen Automationen zwischen Feiertagen / Wochenenden und Werktagen unterscheiden. Diese Integration ist konfigurierbar für dein Bundesland und bietet dir die Möglichkeit, deine Automationen präzise an deinen Alltag anzupassen.
Beispiel:

  • Deine smarte Kaffeemaschine startet nur an Werktagen automatisch. 😉
  • Die Beleuchtung im Garten wird angeschaltet, da du am Wocheende zu Hause bist.

Die Webseite zur Konfiguration des richtigen Bundeslandes: https://pypi.org/project/holidays/

2. Automationen nach Jahreszeiten gestalten

Die Jahreszeit spielt in vielen Automationen eine wichtige Rolle. Mit der Integration Jahreszeit kannst du abfragen, ob wir uns gerade im Frühling, Sommer, Herbst oder Winter befinden. So kannst du deine Abläufe ideal an die saisonalen Gegebenheiten anpassen.
Beispiele:

  • Im Winter wird die Heizung automatisch hochgefahren, wenn die Außentemperatur sinkt.
  • Im Sommer schließt sich die Markise automatisch bei starker Sonneneinstrahlung.

3. Den aktuellen Monat berücksichtigen

Neben der Jahreszeit ist auch der Monat eine wichtige Bedingung für spezifische Automationen. Diese Funktion ermöglicht dir, Aktionen auf bestimmte Monate zu begrenzen, ohne dabei zusätzliche Datenquellen einrichten zu müssen.
Beispiele:

  • Die Gartenbewässerung wird nur von Mai bis September aktiviert.
  • Karnevals-Dekorationslicht wird automatisch im Feburar eingeschaltet.

4. Adventsbedingungen: Smarte Automationen in der Vorweihnachtszeit

Ein echtes Highlight: die Abfrage der Adventszeit! Gerade in der Vorweihnachtszeit kannst du dein Zuhause noch festlicher und smarter gestalten.
Beispiele:

  • Die Weihnachtsbeleuchtung schaltet sich automatisch ein, wenn es dunkel wird.
  • Ein adventliches Playlist-Setup startet im Hintergrund, sobald ein bestimmtes Datum erreicht ist.

5. Kalendereinträge in Automationen nutzen

Manchmal möchtest du Automationen an persönliche Termine koppeln – beispielsweise an deinen Urlaub oder besondere Ereignisse. Mit der Nutzung von Kalendereinträgen und einem passenden Helfer (+Helfer-Automatisierung) in Home Assistant kannst du genau das tun!
Beispiele:

  • Während deines Urlaubs wird die Beleuchtung simuliert, um Anwesenheit vorzutäuschen.
  • Ein „Nicht stören“-Modus wird während eines wichtigen Meetings aktiviert.

Hier noch ein paar Code-Schnipsel und Erklärungen

Aventszeit-Helfer Erklärung

  {% set today = now() %}   {#'today' wird mit dem aktuellem Datum definiert #}
  {% set first_advent = today.replace(day=25, month=12) {#von dem festen Wert 25.12 (als Datum)#}
     - timedelta(days=21 + today.replace(day=25, month=12).isoweekday()) %} {#werden 21 Tage + der Tagwert vom 25.12 abgezogen (Montag=1, Dienstag=2..) #}
  {% set ende1 = today.replace(day=31, month=12) %} {#Definiert den 31. Dezember#}
{% set ende2 = today.replace(day=6, month=1) %} {#Definiert den 6. Januar#}
  {{ first_advent <= today <= ende1 or today <= ende2 }} {#wenn der aktuelle Tag zw. dem ermittelten Datum und Endedatum1 ist oder kleiner kleiner als Endedatum2 ist, ist die Bedingung wahr #}

und als Copy & Paste für Home Assistant

{% set today = now() %}
          {% set first_advent = today.replace(day=25, month=12) - timedelta(days=21 + today.replace(day=25, month=12).isoweekday()) %}{% set ende = today.replace(day=31, month=12)%}{% set ende2 = today.replace(day=6, month=1)%}
          {{ first_advent <= today <= ende or today <= ende2}}

Helper-Automation als YAML:

alias: Urlaubs-Helper einschalten
description: ""
triggers:
  - trigger: calendar
    entity_id: calendar.urlaub
    event: start
    offset: "0:0:0"
    id: urlaub-an
    alias: Kalendereintrag Urlaub startet [urlaub-an]
  - trigger: calendar
    entity_id: calendar.urlaub
    event: end
    offset: "0:0:0"
    id: urlaub-aus
    alias: Kalendereintrag Urlaub ended [urlaub-aus]
conditions:
  - condition: state
    entity_id: calendar.urlaub
    attribute: message
    state: Urlaub
    alias: Wenn Kalendereintrag 'Urlaub' lautet
actions:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - urlaub-an
        sequence:
          - action: input_boolean.turn_on
            metadata: {}
            data: {}
            target:
              entity_id: input_boolean.tristan_urlaub
            alias: Helfer 'Tristan Urlaub' einschalten
        alias: "Urlaub an: Helfer einschalten"
      - conditions:
          - condition: trigger
            id:
              - urlaub-aus
        sequence:
          - action: input_boolean.turn_off
            target:
              entity_id:
                - input_boolean.tristan_urlaub
            data: {}
            alias: Helfer 'Tristan Urlaub' ausschalten
        alias: "Urlaub aus: Helfer ausschalten"
mode: single

Dieim Video gezeigte Automation als YAML

alias: Tagabhängige Beleuchtung
description: ""
triggers:
  - trigger: sun
    event: sunset
    offset: "-00:30:00"
    alias: es 30min vor Sonnenuntergang ist
conditions:
  - condition: state
    entity_id: binary_sensor.workday_sensor
    state: "on"
    alias: es ein Arbeitstag ist
  - condition: state
    entity_id: sensor.season
    state: autumn
    alias: es Herbst ist
  - condition: state
    entity_id: input_boolean.tristan_urlaub
    state: "on"
    alias: Tristan im Urlaub ist
  - alias: es Dezember oder Januar ist
    condition: template
    value_template: "{{ now().month in [12,1] }}"
  - alias: es Adventszeit ist
    condition: state
    entity_id: binary_sensor.adventszeit
    state: "on"
actions:
  - action: light.turn_on
    metadata: {}
    data: {}
    target:
      entity_id: light.wz_stripe
    alias: schalte WZ Stripe ein
mode: single

Kommentare

Schreibe einen Kommentar

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