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.
- 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
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:
- 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! ๐
Produktempfehlungen
Puh 😀 Gibt es seit 2022.05. und ist imho eines der besten Features seit langem …
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!