sphings-dev.de

Rollläden morgens: Arbeitstag und freier Tag unterscheiden

Morgens um 5 Uhr soll nach der Arbeitswoche der Sollzustand „Rollladen oben“ gelten, am Wochenende und an Feiertagen erst um 7 Uhr. Statt dafür einen festen Fahrbefehl pro Rollladen mit Wochentagsliste zu pflegen, halte ich pro Rollladen einen Merker „soll unten sein“ und lösche ihn zur passenden Uhrzeit. Ob ein Tag ein Arbeitstag ist, entscheidet die Workday-Integration, die Feiertage kennt.

Was du brauchst

  • Die Integration Workday (binary_sensor.arbeitstag), konfiguriert mit deinem Bundesland und den Arbeitstagen
  • Pro Rollladen oder Raum einen input_boolean, der „soll unten sein“ bedeutet
  • Für die Abendautomation: input_button-Entitäten, die die Rollladen-Automationen als „runter“ auswerten (siehe den Beitrag zur Rollladen-Logik pro Raum)

So funktioniert es

Abends um 23:00 Uhr drückt eine Automation die „runter“-Taster von drei Räumen und schaltet für zwei davon den Merker an. Das Runterfahren selbst übernimmt die Rollladen-Automation des jeweiligen Raumes, die auf den Taster reagiert. Dabei gilt auch deren Fensterlogik: Ist das Fenster offen, wird das Schließen nur vorgemerkt.

Am Morgen gibt es zwei Automationen mit je einem Zeitpunkt und einer Bedingung. Die erste läuft um 05:00 Uhr und löscht die Merker nur, wenn der Workday-Sensor on ist. Die zweite läuft um 07:00 Uhr und löscht sie nur, wenn der Sensor off ist. An jedem Tag greift damit genau eine der beiden. Das Ergebnis ist in beiden Fällen dasselbe: Der Merker „soll unten sein“ steht auf off, der Sollzustand ist also „oben“.

Wichtig für das Verständnis: Diese beiden Automationen fahren selbst keinen Rollladen. Sie ändern ausschließlich den Merker. In meinen Automationen und Scripten wird dieser Merker nur von den hier gezeigten drei Automationen gesetzt oder gelöscht. Wo er gelesen wird, etwa auf einem Dashboard, hängt von deinem Aufbau ab. Wer die Rollläden am Morgen tatsächlich hochfahren lassen will, ergänzt in beiden Automationen eine Aktion, die den „hoch“-Taster des Raumes drückt.

Der Vorteil dieser Aufteilung liegt in der Lesbarkeit: Die Uhrzeit steht im Trigger, die Tagesart in der Bedingung, und beides ist in der Oberfläche auf einen Blick zu erkennen. Eine Wochentagsbedingung (condition: time mit weekday) kennt keine Feiertage. Der Workday-Sensor tut es, sobald das Bundesland oder Land in der Integration eingetragen ist.

Die Automation

Beispielhaft zwei Räume, Bad im Erdgeschoss und Küche. Für jeden weiteren Raum ergänzt du den Merker in den drei Listen.

alias: "Rollladen soll oben sein 05:00 Uhr (Arbeitstag)"
triggers:
  - trigger: time
    at: "05:00:00"
conditions:
  - condition: state
    entity_id: binary_sensor.arbeitstag
    state: ["on"]
actions:
  - action: input_boolean.turn_off
    target:
      entity_id:
        - input_boolean.bad_eg_rollladen_soll_unten_sein
        - input_boolean.kueche_rollladen_soll_unten_sein
mode: single
alias: "Rollladen soll oben sein 07:00 Uhr (kein Arbeitstag)"
triggers:
  - trigger: time
    at: "07:00:00"
conditions:
  - condition: state
    entity_id: binary_sensor.arbeitstag
    state: ["off"]
actions:
  - action: input_boolean.turn_off
    target:
      entity_id:
        - input_boolean.bad_eg_rollladen_soll_unten_sein
        - input_boolean.kueche_rollladen_soll_unten_sein
mode: single
alias: "Rollladen 23:00 Uhr runter"
triggers:
  - trigger: time
    at: "23:00:00"
actions:
  - action: input_button.press
    target:
      entity_id:
        - input_button.taste_rollladen_bad_eg_runter
        - input_button.taste_rollladen_kueche_runter
        - input_button.taste_rollladen_bad_1_og_runter
  - action: input_boolean.turn_on
    target:
      entity_id:
        - input_boolean.bad_eg_rollladen_soll_unten_sein
        - input_boolean.kueche_rollladen_soll_unten_sein
mode: single

Anpassen

  • Passe die Uhrzeiten an. Wer Schichtdienst hat, braucht ein zweites Workday-Profil oder einen eigenen Kalender.
  • Der Workday-Sensor entscheidet über freie Tage. Feiertage und eigene Ausnahmen trägst du in der Integration ein, nicht in der Automation.
  • Du kannst die beiden Morgenautomationen zu einer zusammenfassen, die choose über is_state('binary_sensor.arbeitstag', 'on') auswertet. Zwei getrennte Automationen sind übersichtlicher in der Oberfläche.

Stolpersteine

Beide Automationen laufen im Modus single, und der Workday-Sensor wird zum Zeitpunkt der Auslösung gelesen. Ändert sich sein Zustand wegen eines Neustarts oder einer Konfigurationsänderung rund um 05:00 Uhr, kann eine Automation übersprungen werden. Zeitauslöser holen nichts nach, wenn Home Assistant zur Auslösezeit nicht läuft.

Die Abendautomation drückt die „runter“-Taster von drei Räumen, setzt den Merker aber nur für zwei davon. Der dritte Raum bekommt keinen Merker. Bei der Übertragung auf dein Haus solltest du das konsistent halten.

Tags

Unterstützen

Diese Tools entstehen in meiner Freizeit und bleiben kostenlos, offen und cloud-frei. Wenn dir eins davon einen Nachmittag gespart hat, freue ich mich über einen Kaffee oder ein Stück Pizza.

Kaffee oder Pizza

Weitere Beiträge