Automation in Home Assistant mit if/else Logik

Mir ist es fast schon ein wenig peinlich, aber ich habe erst vor wenigen Tagen von der Möglichkeit erfahren, dass man in Automationen mit if/else-Konditionen arbeiten kann! Also wenn eine Automation getriggert wird, können mittels if/else Abfrage je nach Zustand einer Entität unterschiedliche Aktionen ausgelöst werden. Zum einen bedeutet dies natürlich geniale Lösungen im Smarthome und zum anderen erleichtert diese Möglichkeit natürlich das Handling solcher Automations deutlich!

Vermutlich habe ich diese Möglichkeit nicht früher entdeckt, weil ich ein bekennender Editor-User bin und noch aus einer Home Assistant Zeit stamme, in der über das Frontend bei weitem nicht so viel umgesetzt werden konnte, wie dies heute der Fall ist. „Damals“ musste man halt viel mehr direkt in YAML machen und somit war ich im Editor-Modus „gefangen“. Aber gut, mein Problem! 🙂

Nun aber zum eigentlichen Inhalt dieses Beitrages:

Bei uns hat ein neuer ZigBee-Schalter im Haus Einzug gefunden, den ich primär dafür nutzen möchte, im Wohnzimmer gewisse Aktionen ohne Handy ausführen zu können. Eine Aktion ist beispielsweise: Wenn das Radio (Sonos) nicht eingeschaltet ist, starte 1Live. Bzw.: wenn das Radio eingeschaltet ist, schalte es aus. Mit anderen Worten eine einfache Toggle-Funktion, für die ich auf dem ZigBee-Schalter nur eine Taste belegen möchte.

MOES 4 Gang ZigBee Wireless 12 Scene Switch Mechanischer...*
  • 1. Automatisieren Sie den kabellosen Tuya ZigBee-Szenenwechsel auf...
  • 2. Drei Pairing-Modi für jede Taste, um 3 Szenen aus einem...

Im Editor habe ich das dann dank der if/else-Logik für Automations wie folgt umgesetzt:

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

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

- alias: "Schalter-Küche Toggle Musik"
  trigger:
    platform: event
    event_type: deconz_event
    event_data:
      id: schalter_kuche
      event: 2002
  action:
    - choose:
      - conditions: "{{ is_state('media_player.wohnzimmer', 'paused') }}"
        sequence:
        - action: media_player.play_media
          target:
            entity_id: media_player.wohnzimmer
          data: 
            media_content_type: music
            media_content_id: x-rincon-mp3radio://https://d121.rndfnk.com/ard/wdr/1live/live/mp3/128/stream.mp3?aggregator=tunein&cid=01FBRZTS1K1TCD4KA2YZ1ND8X3&sid=2HAZHbwHkWHkItEZXaSv3tASIj6&token=2CgbOoCSdQN3uGs0uzisMY9Kse1DYgXkuzEGs0uftZM&tvf=fG8N8gYLJRdkMTIxLnJuZGZuay5jb20
            
      - conditions: "{{ is_state('media_player.wohnzimmer', 'playing') }}"
        sequence:
        - action: media_player.media_stop
          data: {}
          target:
            entity_id: media_player.wohnzimmer

Was passiert konkret:

Ich lausche ob der ZigBee-Schalter eine bestimmte Taste als gedrückt meldet (wie das geht, habe ich hier beschrieben). Dann kommt die Action der Automation, bei der mittels choose definiert wird, dass nun conditions folgen.

In meinem konkrete Fall gibt es nur zwei Konditionen, nämlich die Zustände des Sonos-Lautsprechers: paused oder playing. Je nach Zustand folgt dann in der sequence der eigentliche service. In dem einen Fall führe ich media_player.play_media aus und in dem anderen media_player.media_stop.

Die Werte bei data im Falle von media_player.play_media sind für das Abspielen von 1Live, das musst du für deinen Zweck entsprechend anpassen! 😉

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

Produktempfehlungen

2 Gedanken zu „Automation in Home Assistant mit if/else Logik“

    • Schlimm, ich hatte das sogar bei dem Release als eines meiner Release-Highlight genannt (https://smarterkram.de/2223/) und dann schön wieder vergessen… 🙂

      Ich finde die Funktion tatsächlich auch wirklich super!

Die Kommentare sind geschlossen.