Im Home-Office ist es natürlich praktisch, das eigene Zuhause direkt per Tastatur steuern zu können. Da ich mir dieses Jahr ein Elgato Stream Deck zugelegt habe, war es naheliegend dies hierfür zu nutzen. Ich habe mir eine “Seite” nur mit Smart-Home-Funktionen (s. Titelfoto) und eine Seite mit Sonos-Funktionen angelegt. Letztendlicher Empfänger der Tastendrücke ist mein neues Smart-Home-System “Home Assistant“, welches auf meinem alten Mac mini installiert ist.
Automatisierung in Home Assistant
Die beiden Systeme zu verknüpfen, ist gar nicht so schwierig. Schauen wir uns zunächst an, was wir in Home Assistant tun müssen. Hier müssen wir eine neue Automatisierung anlegen. Ich habe diese direkt in YAML erstellt, weil der Inhalt für alle Stream-Deck-Dinge recht ähnlich ist. Ihr könnt aber genauso gut den visuellen Editor von Home Assistant verwenden. Der YAML-Code sieht so aus:
alias: Rollo per Webhook steuern description: '' trigger: - platform: webhook webhook_id: automation_cover_djfjgfh3746FShg2327gfw3 condition: [] action: - service: cover.toggle target: entity_id: cover.rollo mode: single
Das System definiert Automatisierungen grundsätzlich über Trigger (Auslöser), Bedingungen (die zusätzlich erfüllt sein müssen, optional) und Aktionen. Der Auslöser ist in unserem Fall ein sogenannter Webhook. Den legen wir selber fest und können ihn uns als Zeichenkette vorstellen, die wir vom Stream Deck an Home Assistant senden müssen, um unsere Automatisierung loszutreten. Die Zeichenkette sollte dabei so ähnlich wie ein gutes Passwort aufgebaut sein. Wenn nämlich jemand die externe Webadresse unseres Home-Assistant-Systems und den Webhook kennt, kann diejenige/derjenige ebenfalls die Automatisierung starten. In meinem Beispiel oben seht ihr daher auch nicht meine tatsächliche Zeichenkette. Im visuellen Editor sieht der Auslöser so aus:
Der Auslösertyp ist “Webhook” und die Webhook ID unsere selbstgewählte Zeichenkette. Eine weitere Bedingung brauchen wir nicht, was in YAML zu der Zeile “condition: []” führt.
Die Aktion ist in diesem Fall “Dienst ausführen” und der Dienst heißt im visuellen Editor “Abdeckung: Toggle”. Als Entität wählen wir das gewünschte Rollo:
Knopf-Belegung in Stream Deck
Weiter geht es in der Stream-Deck-Software. Hier müssen wir zunächst – falls noch nicht geschehen – ein Plugin aus dem Stream-Deck-Store (kostet nichts) installieren. Es nennt sich “Web Requests”:
Nun suchen wir uns ein freies Plätzchen auf unserem Stream Deck und belegen dieses mit einer Aktion des Typs “HTTP Request”. Die gibt es nur, wenn wir das o.g. Plugin installiert haben:
Ausfüllen müssen wir die Felder “URL” und “Method”. Letztere braucht den Wert “POST”. Die URL ist nach folgendem Schema einzutragen:
http://IP-ADRESSE-EURES-HOME-ASSISTANT:8123/api/webhook/EUER-WEBHOOK
Mit dem Webhook aus dem Beispiel oben und der Beispiel-IP-Adresse 192.168.12.24 wäre das in diesem Fall:
http://192.168.12.24:8123/api/webhook/automation_cover_djfjgfh3746FShg2327gfw3
Ich müsst hier natürlich eure tatsächlichen Daten einsetzen. Nun noch ein schönes Icon aussuchen oder zeichnen und der erste Smart-Home-Button sollte funktionieren. Nach diesem Schema könnt ihr alles steuern, was sich irgendwie als Aktion in Home Assistant lostreten läßt, ein Soundsystem wie Sonos inklusive.
Hi Markus,
ich habe ein Plugin für das StreamDeck entwickelt, welches Entitäten nicht nur kontrollieren, sondern auch die Werte von Sensoren in den Buttons anzeigen kann. Vielleicht ist das auch interessant für Dich:
https://github.com/cgiesche/streamdeck-homeassistant
Viele Grüße
Christoph
Danke für die Info! Werde ich mir auf jeden Fall mal anschauen.
PS: Ich sehe gerade, dass du einen Mac nutzt. Dort muss man das Plugin (aus noch unbekannten Ursachen) manuell installieren:
https://www.reddit.com/r/homeassistant/comments/laq2g4/comment/glsfayz/
[…] Anleitungen zum Thema Stream Deck und Smart Home. Unter anderem bin ich dabei auf einen Artikel im Blog von Dr. Markus Jasinksi gestoßen. Er realisiert im Grunde genau die gleichen Funktionen mit seinem Stream Deck, um im […]
Konnte das Plugin leider mangels HomeAssistant nicht testen, aber das sieht echt klasse aus. Hut ab für Deine Arbeit. Das ist genau das was ich suche. Dieses Plugin für den Iobroker wäre die Macht! Habe leider nirgends etwas finden können. Hast Du zufällig Tipps Christoph?