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 Automatisierungen 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:

- 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:
        - service: 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:
        - service: 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 hass.io Home Assistant.

AngebotBestseller Nr. 1
KETOTEK Smart Heizkörperthermostat Zigbee, Elektrische...*
  • 【Zusatzprodukt für Starter-Kit】 Besitzen Sie bereits unser...
  • 【Flexible Steuerung】 Stellen Sie die Temperatur am...

*= Preis inkl. MwSt., ggf. zzgl. Versandkosten. Letzte Aktualisierung vor 60 Minuten / Affiliate Links / Bilder von der Amazon Product Advertising API. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen.

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

Schreibe einen Kommentar

Die folgenden im Rahmen der DSGVO notwendigen Bedingungen müssen gelesen und akzeptiert werden:
Durch Abschicken des Formulares wird dein Name, E-Mail-Adresse und eingegebene Text in der Datenbank gespeichert. Für weitere Informationen wirf bitte einen Blick in die Datenschutzerklärung.