Seit geraumer Zeit setzen wir in der Küche eine Sonos ONE ein, so konnten wir einen einzelnen Echo Dot und eine Sonos Play:1 in einem Device ersetzen. Die Sonos ONE bietet einen bereits integrierten Alexa-Service, grundsätzlich eine gute Idee, aber natürlich auch mit Schattenseiten. Wesentlicher Schmerzpunkt in unserem Nutzungskontext: Die Lautstärke der Alexa-Stimme ist direkt an die Abspiellautstärke des Sonos ONE gekoppelt. Wird die Musik sehr leise abgespielt, ist z.B. ein Timer-Alarm sehr leise und kann fast nicht wahrgenommen werden.
Das führt zur Fragestellung, ob wir den abgelaufenen Timer nicht als Trigger für eine Aktion in ioBroker nutzen können. Mit diesem Trigger könnten wir auf der Sonos ONE eine Ansage oder einen Ton abspielen oder vielleicht in der Küche das Licht blinken lassen.
Der Lösungsweg kann so aussehen:
Alexa Devices -> IFTTT mit aktiver Alexa-Integration -> Alexa-Trigger über IFTTT-Webhook-Aufruf an IoT-Adapter in ioBroker -> Nutzung Trigger für Aktion in ioBroker
Wir nutzen in IFTTT die Standard-Alexa-Integration um das Ende eines Timer als Trigger zu erkennen. Über die ebenfalls in IFTTT standardisierten Webhooks können wir einen Online-Request auslösen, der über den aktiven IoT-Adapter in ioBroker ein Datenobjekt steuert. Auf diesem Datenobjekt lassen wir ein Blocklyscript laufen, das die Veränderungen des Objekts ausliest und entsprechende Aktionen steuert.
Dieser Weg ist aktuell noch kostenfrei möglich, ein kostenloser IFTTT-Account mit maximal drei aktiven Applets sowie ein kostenfreier ioBrokerPRO-Account wird hierfür benötigt. Weil die Frage nach dem ioBrokerPRO-Account immer wieder aufkommt: In der kostenfreien Variante sind die notwendigen Services, z.B. Sprachsteuerung oder Webhooks für IFTTT, aktiv, allerdings ist die Nutzung auf maximal 20 Requests/Anfragen pro Tag begrenzt.
Beginnen wir mit den für die oben gezeigt Aktions-Kette notwendigen Integrationen:
- IFTTT Einrichtung
- In einem bestehenden IFTTT-Account müssen wir zunächst den Alexa- und Webhook-Service aktivieren.
- Der Alexa-Service wird über „explore“ gesucht und dann aktiviert, hierfür müssen wir uns mit dem Amazon-Account einloggen und den IFTTT-Zugriff zulassen.
- Im Anschluss suchen wir den Webhook-Service und aktivieren diesen. Danach rufen wir über Profile > My Services > Webhook den Service auf und klicken auf Documentation, es öffnet sich ein neue Seite, auf der der Webhook-Key angezeigt wird. Den Key benötigen wir im nächsten Schritt im IoT-Adapter in ioBroker.
- IoT-Adapter-Einrichtung
- In den IoT-Adapter-Einstellungen können wir im Bereich „Services und IFTTT“ den gespeicherten Webhook-Key im oberen Bereich einfügen und den Adapter speichern und schließen. Zuvor kopieren wir uns den direkt unterhalb des Keys angezeigten IFTTT-Link für den nächsten Schritt.
- IFTTT Applet für Alexa-Timer aktivieren
- Zurück im IFTTT-Account legen wir nun unser Applet für den Alexa-Timer-Trigger an.
-
Im Body des POST-Requests können wir einen eigenen, individuellen Namen setzen, dieser Inhalt wird dann als Trigger an ioBroker übertragen und im IoT-Objekt für IFTTT dargestellt.
- Wir schließen die Anlage des Applets mit „CREATE“ ab. Wir können die Integration mit einem Timer nun testen und sollten in den Objekten folgenden Inhalt finden:
Im nächsten Schritt nutzen wir dieses Objekt in einem Blockly-Script.
-
- Zurück im IFTTT-Account legen wir nun unser Applet für den Alexa-Timer-Trigger an.
- Blockly in ioBroker erstellen
- Wir legen ein neues Blockly-Script an. Die Logik des Scripts ist einfach:
Wenn sich der Datenpunkt des IFTTT-Services ändert, dann prüfen wir den Inhalt, wenn dieser „Alexa_alarm“ entspricht, dann steuern wir das Licht und die Sprachausgabe.
Um HUE-Lampen blinken zu lassen, können wir den Command-Befehl einer Lampe nutzen. Setzen wir „{„level“:100,“alert“:“lselect“, „transitiontime“:0}“ als command, sollte die Lampe ca. 15x blinken.
- Wir legen ein neues Blockly-Script an. Die Logik des Scripts ist einfach:
Wir haben mit einfachen Standard-Integrationen über IFTTT und ioBroker den Trigger eines Alexa-Timers in ioBroker als Aktion umgesetzt.
Hinterlasse einen Kommentar