Wir nutzen unsere ECHO-Devices im Haushalt vor allem für die Voice-Steuerung des Smarthomes, z.B. Licht und Rolläden, am häufigsten allerdings in der Küche als Timer beim Kochen.

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.

Nach kurzer Recherche ist klar, dass wir den ioBroker-Alexa2-Adapter dafür leider nicht nutzen können, weil dort kein Datenpunkt für Timer oder Alarme enthalten ist. Für die Anzeige der verbleibenden Laufzeit gibt es mittlerweile auch eine Lösung, die wir aber in diesem Artikel nicht näher beleuchten, da uns lediglich die Nutzung des Triggers eines abgelaufenen Timers interessiert. Die aktuelle Laufzeit eines Timers lässt sich leicht per Voice mit „Alexa, wie lange läuft mein Timer“ abfragen.

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:

  1. IFTTT Einrichtung
    1. In einem bestehenden IFTTT-Account müssen wir zunächst den Alexa- und Webhook-Service aktivieren.
    2. 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.
      Alexa Integration in IFTTT suchen

      Alexa Integration in IFTTT suchen

      Alexa Integration in IFTTT connect

      Alexa Integration in IFTTT connect



      Alexa Integration in IFTTT zulassen

      Alexa Integration in IFTTT zulassen

      Alexa Integration in IFTTT create

      Alexa Integration in IFTTT create

    3. 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.
      Webhooks in IFTTT suchen

      Webhooks in IFTTT suchen



      Webhooks in IFTTT aktivieren

      Webhooks in IFTTT aktivieren

      Documentation in Webhooks aufrufen

      Documentation in Webhooks aufrufen

      Webhook Key in IFTTT für ioBroker auslesen

      Webhook Key in IFTTT für ioBroker auslesen

  2. IoT-Adapter-Einrichtung
    1. 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.
      IoT Adapter in ioBroker mit IFTTT-Key konfigurieren

      IoT Adapter in ioBroker mit IFTTT-Key konfigurieren

  3. IFTTT Applet für Alexa-Timer aktivieren
    1. Zurück im IFTTT-Account legen wir nun unser Applet für den Alexa-Timer-Trigger an.
      1. IFTTT Applet für Alexa Timer Alarm anlegen

        IFTTT Applet für Alexa Timer Alarm anlegen

        Alexa Integration in IFTTT suchen

        Alexa Integration in IFTTT suchen

        Applet in IFTTT anlegen, Alexa Trigger auswählen

        Applet in IFTTT anlegen, Alexa Trigger auswählen

        Applet in IFTTT anlegen, Then auswählen

        Applet in IFTTT anlegen, Then auswählen



        Applet in IFTTT anlegen, Then webhook auswählen

        Applet in IFTTT anlegen, Then webhook auswählen

        Applet in IFTTT anlegen, Then webhook request auswählen

        Applet in IFTTT anlegen, Then webhook request auswählen

        Webhook Request Einstellungen in IFTTT für ioBroker

        Webhook Request Einstellungen in IFTTT für ioBroker

        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.

      2. 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:
        IFTTT Objekt in ioBroker bei Alexa Timer Alarm

        IFTTT Objekt in ioBroker bei Alexa Timer Alarm

        Im nächsten Schritt nutzen wir dieses Objekt in einem Blockly-Script.

  4. Blockly in ioBroker erstellen
    1. Wir legen ein neues Blockly-Script an. Die Logik des Scripts ist einfach:
      Blockly Script für Alexa Timer Alarm in ioBroker

      Blockly Script für Alexa Timer Alarm in ioBroker

      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 haben mit einfachen Standard-Integrationen über IFTTT und ioBroker den Trigger eines Alexa-Timers in ioBroker als Aktion umgesetzt.