Home Assistant Zeitschaltuhr erstellen (YAML)

Wie erstellt man eine Home Assistant Zeitschaltuhr im YAML-Modus? Automatische Licht oder Rollladensteuerung einfach mit der Home Assistant Zeitschaltuhr umgesetzt!

Immer wieder kommt (zurecht) die Frage auf, wie man mit Home Assistant eine Zeitschaltuhr umsetzt. Hierzu vielleicht zur Einordnung in der Home Assistant-Logik eine Anmerkung:

Eine Zeitschaltuhr in Home Assistant ist letzten Endes nichts anderes als eine Automation (also eine Automatisierung), welche auf zeitliche Vorgaben reagiert. Also zum Beispiel so etwas wie: ร–ffne die Rolllรคden jeden Tag um 07:00 Uhr!

Home Assistant Zeitschaltuhren

Der Vorteil einer Zeitschaltuhr mit Home Assistant gegenรผber nicht smarten Zeitschaltuhren ist eindeutig, dass man unendlich viele Regeln beziehungsweise Bedingungen einbauen kann und dann dies sogar noch um Zufallskomponenten ergรคnzen kann.

Inhaltsverzeichnis

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

Follow Home Assistant
( 500 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!

Home Assistant Zeitschaltuhr mit Zufallskomponente

Folgendes Beispiel: Viele nutzen klassische Zeitschaltuhren (Zeitschaltuhren bei Amazon), um zu Hause das Licht ein- und auszuschalten, wenn man im Urlaub ist. Das Problem bei einer solchen Nutzung liegt auf der Hand: Wenn jeden Tag um Punkt 18:00 Uhr im Wohnzimmer das Licht angeht, wird ein potentieller Einbrecher dies spรคtestens am zweiten Tag seiner Beobachtung bemerkt haben. Der Mehrwert einer solchen „alten“ Zeitschaltuhr geht also gegen Null (Einbruchschutz mit Zeitschaltuhren).

Anders ist dies, wenn aber ab 17:30 Uhr mit einer zufรคlligen Wartezeit von 5-45 Minuten das Licht im Wohnzimmer angeht. Das kann dann im Ergebnis nรคmlich heute um 17:38 Uhr sein, und morgen dann um 18:12 Uhr.

Aber der Reihe nach ๐Ÿ™‚

Home Assistant Zeitschaltuhr erklรคrt

Wie bereits zuvor gesagt, reden wir in diesem Beitrag รผber Automations und konzentrieren uns hierbei auf die Zeitkomponente. Entsprechend werde ich als auszufรผhrende Aktion auch immer nur eine einzuschaltende Lampe nutzen.

Du kannst dies natรผrlich nach deinem Bedarf beliebig anpassen und erweitern – bei konkreten Fragen dazu einfach gerne Kommentieren!

Zuallererst solltest du folgendes sicherstellen: Damit dein Home Assistant auch die richtige Uhrzeit hast, solltest du in deiner configuration.yaml (sofern es nicht bereits vorhanden ist) folgendes ergรคnzen:

homeassistant:
  time_zone: Europe/Berlin

Entscheidend ist hier natรผrlich die Angabe „time_zone“, wรคhrend „homeassistant:“ in der configuration.yaml bereits enthalten sein wird.

Durch diese Angabe sagst du dem System unmissverstรคndlich, welche Zeitzone genutzt werden soll!

Nachdem du diese Zeile ergรคnzt hast, solltest du dein System einmalig neustarten, damit die korrekte Uhrzeit gilt!

Home Assistant Zeitschaltuhr Beispiel

Nun kommen wir direkt zu einem konkreten Code-Beispiel einer Automation, welche als Zeitschaltuhr fungiert:

- alias: '[holidaymode] lights on'
  trigger:
  - platform: time
    at: '18:15'
  condition: []
  action:
  - delay: 00:{{ range(0,10) | random | int }}:00
  - action: light.turn_on
    metadata: {}
    data: {}
    target:
      entity_id: light.extended_color_light_13

Diesen Beispielcode nehmen wir nun Zeilenweise auseinander, damit du verstehst warum was da steht, wie eine Home Assistant Zeitschaltuhr funktioniert und wie du es anpassen kannst!

  • Der „alias“ ist der Name deiner Automation beziehungsweise Zeitschaltuhr. Diesen kannst du natรผrlich beliebig wรคhlen ๐Ÿ˜‰ Wรคhle ihn aber am besten so, dass er fรผr dich sprechend ist, damit dein Home Assistant รผbersichtlich bleibt!
  • Als Trigger haben wir die platform „time“ gewรคhlt. Mit „at: ’18:15′“ sagen wir, dass um 18:15 Uhr die Automatisierung ausgelรถst werden soll. Hier sind theoretisch auch Sekunden mรถglich (also 18:15:16), jedoch macht das wohl in den allermeisten Fรคllen keinen Sinn.
  • „condition“ lassen wir „leer“, also geben nichts ab. Man kรถnnte hier aber Bedingungen setzen, welche auf den aktuellen Zustand/Wert jeder in Home Assistant bekannten Entitรคt prรผfen.
  • Unter „action“ kommt dann die eigentliche Aktion (oder halt eben mehrere) die ausgefรผhrt werden soll(en). Als erste fรผhren wir einen „delay“ aus, also eine Verzรถgerung. Und diese ist dann mit einer Zufallskomponente kombiniert, welche einen Wert zwischen 0 und 10 zufรคllig wรคhlt. Als Ergebnis steht in dieser Zeile sinngemรครŸ „- delay: 00:01:00“ oder anstelle der 1 eben halt, was bei der Zufallskomponente zufรคllig herausgekommen ist. Dies ist natรผrlich optional, ich zeige es dir aber dennoch, da ich eingangs genau eine solche Zufallskomponente beschrieben hatte. Und dann kommt natรผrlich noch unsere eigentlich Action: Wir rufen die action „light.turn_on“ auf und diesen fรผr die „entity_id“: light.extended_color_light_13. Hier trรคgst du natรผrlich die von dir gewรผnschte Lampe in deinem Smart Home ein!

Diese Automation beziehungsweise Home Assistant Zeitschaltuhr kannst du also kopieren und selbst nutzen. Alles, was du anpassen musst, ist die von dir gewรผnschte Uhrzeit, sowie natรผrlich die Entity-ID deiner Lampe(n).

Und das Delay mit dem Zufallsgenerator von 0 bis 10 Minuten, musst du natรผrlich nicht nutzen! ๐Ÿ˜‰

Dieser Beitrag ist Teil einer kleinen Beitrags-Serie rund um den hass.io Home Assistant.

Foto des Autors
Autor
Olli
Ca. Ende 30, seit Windows 3.1 Fan von Computern, Gadgets, Handys und allem, was sich irgendwie programmieren lรคsst. Ich mag es gerne individuell und mรถglichst einfach, probiere aber auch gerne neue Dinge sofort aus. :) Konnte ich dir helfen? Dann wรผrde ich mich รผber ein Bier freuen ;) Bier-Spende

8 Gedanken zu „Home Assistant Zeitschaltuhr erstellen (YAML)“

  1. @olli Danke fรผr diesen Tipp! Ich habe das ganze mal รผber den Automationen-Pflegedialog eingegeben und dann geschaut, wie der entsprechende YAML-Code aussieht. Die entity_id war tatsรคchlich eine andere.
    Hier ist mein Code, der jetzt endlich funktioniert. Ich habe ein paar Zeilen inzugefรผgt, damit sich der Stecker bzw. das Licht auch wieder zu einem zufรคlligen Zeitpunkt ausschaltet.
    alias: Ferienmodus Stecker Flur
    description: >-
    Ferienmodus schaltet *DEIN GERร„T, hier โ€œStecker Flurโ€ gennant* zu einem zufรคlligen Zeitpunkt
    zwischen 18 und 19 Uhr an und zu einem zufรคlligen Zeitpunkt zwischen 22 und 23
    Uhr aus
    trigger:
    – platform: time
    at: „18:00:00“
    alias: Stecker Flur an
    id: Stecker Flur an
    – platform: time
    at: „22:00:00“
    alias: Stecker Flur aus
    id: Stecker Flur aus
    condition: []
    action:
    – if:
    – condition: trigger
    id:
    – Stecker Flur an
    then:
    – delay: 00:{{ range(0,60) | random | int }}:00
    – type: turn_on
    device_id: *DEINE DEVICE ID*
    entity_id: *DEINE ENTITY ID*
    domain: switch
    – if:
    – condition: trigger
    id:
    – Stecker Flur aus
    then:
    – delay: 00:{{ range(0,60) | random | int }}:00
    – type: turn_off
    device_id: *DEINE DEVICE ID*
    entity_id: *DEINE ENTITY ID*
    domain: switch
    mode: single

  2. Hallo Olli,vielen Dank fรผr den Artikel zum Thema Zeitschaltuhr! Ich finde die Idee genial und wollte es auch gleich mal selber ausprobieren. Ich habe eine neue Automation erstellt und in „Als YAML bearbeiten“ deinen Code eingefรผgt (natรผrlich angepasst auf meinen smarten Stecker):
    – alias: ‚[holidaymode] Nous Stecker on’trigger:- platform: timeat: ’18:15’condition: []action:- delay: 00:{{ range(0,10) | random | int }}:00- service: switch.turn_ondata:entity_id: switch.nous_stecker_flur
    Leider kommt jetzt immer die Fehlermeldung: Message malformed: extra keys not allowed @ data[‚0‘]
    Wenn jemand Ideen oder Lรถsungsvorschlรคge hat bin ich sehr dankbar! Ich bin noch relativ neu bei Home Assistant und noch nicht wirklich vertraut mit der Thematik.
    Viele GrรผรŸe,Lorenz

    Screenshot 2024 09 10 093049

    ย 

    • @l-38 Hi Lorenz, danke fรผr das Feedback und zeitgleich sorry fรผr den Code, der mittlerweile wie folgt aussehen muss, da sich die Syntax zwischenzeitlich geรคndert hat:

        - action: light.turn_on
          metadata: {}
          data: {}
          target:
            entity_id: light.extended_color_light_13

      Ich habe das oben im Beitrag angepasst und hoffe, dass es fรผr dich nun wie gewรผnscht funktioniert!

      VG

      Olli

      • @olli Danke fรผr die schnelle Antwort und die Aktualisierung der Beschreibung!
        Ich habe den neuen Code gleich ausprobiet, leider ohne Erfolg. Die Fehlermeldung Message malformed: extra keys not allowed @ data[‚0‘] kommt immer noch.
        Hat jemand eine Idee, was ich noch รคndern kรถnnte? Funktioniert der neue Code bei Euch?
        ย 
        Hier ein Screenshot:

        Screenshot 2024 09 11 215159
        • @l-38 Hast du die Automatisierung mal รผber den Pflegedialog von Home Assistant erstellt? Irgendwie habe ich das Gefรผhl, dass die genutzte Entitรคt „was besonderes“ ist. Hast du das mal versucht und die den hieraus resultierenden YAML-Code angeschaut?

  3. Hallo Olli,

    eine Frage zu Deinem Beitrag รผber die Zeitschaltuhr: Ich kann aber trotzdem z.B. die Lampe, die รผber die Zeitschaltuhr gesteuert wird, auch manuell ein-oder ausschalten?

    Servus
    Peter

Kommentare sind geschlossen.