IFTTT

Nach all den ober-langweiligen Beiträgen der letzten Wochen, wird es mal Zeit etwas Spaß zu haben.

Dieses Thema hier ist das Resultat aus der Fusion, der folgenden Beiträge:

Das Smart-Home per Sprachassistent zu steuern ist in etwa genau so geil, wie ein eiskaltes Bier, an einem schönen Sommerabend am See..

Im Gegensatz zu manch anderen Smart-Home-Servern hat Fhem leider weder für Alexa, noch für Google-Assistant einen eigenen Skill. Man ist also gezwungen eine alternative Möglichkeit zu nutzen, um Sprachbefehle für Fhem zu realisieren.

IFTTT

Diese fünf Buchstaben stehen für IF This Than That. Das ist eine Plattform für Plattform-übergreifende Verbindungen von externen Programmen/Diensten.

Klingt kompliziert – ist es aber gar nicht. Im Fall von meinem Sprachassistenten funktioniert das wie folgt:

Ich spreche den Satz: „Hey Google, schalte Stehlampe“ -> der Google-Assistant versteht den Befehl und sucht nun nach einer Möglichkeit auf den Satz zu reagieren -> ein bei IFTTT selbst erstelltes Applet behandelt genau diesen Satz und löst als Reaktion einen HTTP-Befehl aus -> im selben Applet ist auch vorgegeben, was der Assistant antworten soll, wenn der Befehl verstanden und ausgeführt wurde -> Google-Assistant antwortet „Okay“ -> Stehlampe schaltet ein.

Voraussetzungen

Wie oben schon genannt, benötigt man natürlich erstmal einen Sprachassistenten (in meinem Fall einen Google-Home mini) und einen Fhem-Webhook, der über das Internet erreichbar ist.

Wie diese Sachen, unter anderem auch sicher, einzurichten sind, habe ich an anderen Stellen bereits ausführlich dokumentiert.

Bei IFTTT selbst kann man sich entweder selbst registrieren, oder sein vorhandenes Google-Konto nutzen (so habe ich es gemacht).

IFTTT hat unzählige Services im Angebot, die miteinander verknüpft werden können, je nach dem was man genau machen möchte sollte man vorher nachschauen ob die gewünschten Services auch vorhanden sind.

Applet erstellen

Für dieses Beispiel erstelle ich ein neues Applet, mit dem ich ein Fhem-Backup per Sprachbefehl anstoßen kann.

Nachdem man sich bei IFTTT angemeldet hat, kann man sich über die IFTTT-Platform eigene Applets erstellen.

image130

image131.png

In meinem Fall sind dort schon eigene Applets in der Übersicht vorhanden, um ein Neues zu erstellen, klickt man rechts auf „New Applet“

image132.png

Über den markierten Link gelangt man auf die IFTTT-Platform. Falls man dort noch neu ist, wird man dazu aufgefordert einige Angaben über seine, nennen wir es mal Absichten, zu machen.

Neben eigenen, privaten Applets, ist es nämlich auch möglich seine Applets zu publizieren – im Fall meiner Fhem-Steuerung wahrscheinlich eher ungünstig.

image133.png

Wenn man alle Angaben gemacht hat, erreicht man über das rot markierte Applets den Bereich, wo eigene Services erstellt werden können.

image134.png

Hier hat man wieder eine Übersicht der bereits erstellten Applets. Um ein Weiteres zu erstellen -> New Applet

Ab hier wird es dann endlich interessant.

image135

image136.png

Hier werden nun die einzelnen Services miteinander verknüpft und die entsprechenden Parameter eingetragen.

In den if-Teil kommt der Google-Assistant, dieser muss ja nicht viel mehr tun als einen (oder mehrer) Satz/Sätze zu interpretieren:

image137

image138

Im Folgenden werden die Sätze, die der Google-Assistant interpretieren soll, nach belieben eingetragen. Wie sich im Praxistest herausgestellt hat müssen die Sätze sehr exakt gesprochen werden, daher sollte man es nicht unnötig kompliziert machen.

image139.png

Insgesamt kann man drei Sätze angeben, die den selben Befehl ausführen, angeben. Anschließend kann noch die Antwort, die Google-Assistant nach erfolgtem Befehl, geben soll, selber wählen.

image141.png

Abschließend wird noch die Sprache gewählt, danach kann es mit der Ausführung des Befehls weitergehen.

image142

Nach einem Klick auf Add action kann man nun wieder einen Service auswähle. Um Fhem per Web-Api / Webhook zu steuern benötigt man einen HTTP-Request, dieser wird mit dem Service Webhooks bereitgestellt.

image143

image144

image145

In die Value Zeile wird die URL eingetragen, die bei erfolgtem Sprachbefehl aufgerufen werden soll.

Meine Fhem Web-Api wird über die Domain meines MyFritz-Kontos aufgerufen, des weitern müssen noch Nutzername und Passwort vom Apache-Server mit in die Domain einfließen. Zu allem Überfluss dann auch noch der Befehl. Aber auch das klingt alles wieder viel schlimmer als es eigentlich ist.

Am besten speichert man sich seine Basis-URL in einer Text-Dabei ab, dann braucht man nur die Befehle anhängen:

https://NUTZERNAME:PASSWORT@beispieladresse.myfritz.net/fhem

Fhem-Befehle über eine Weboberfläche sind in der Regel immer HTTP-Befehle. Das heißt nichts anderes, als dass bei einem Klick auf ein Kommando in der Fhem-Weboberfläche sowas wie

https://NUTZERNAME:PASSWORT@beispieladresse.myfritz.net/fhem?cmd=set%20BEISPIELDEVICE%20ON

aufgerufen wird und das entsprechende Device geschaltet wird. %20 steht in diesem Fall für ein Leerzeichen. Wie ihr alle wisst gibt es in URLs normalerweise keine Leerzeichen, damit der Browser dennoch eines setzt, kommt %20 ins Spiel.

Alles hinter dem Fragezeichen, nach dem /fhem wird also quasi vom Browser in das Kommandozeilenfenster eingetragen.

Für mein Backup-Beispiel sollte also ein /fhem?cmd=backup ausreichen.

image146.png

In den kommenden beiden Optionen wird folgendes aus den Dropdown-Menüs ausgewählt, die letzte Option erhält keinen Eintrag.

image147.png

Zum Abschluss noch einen Namen und eine Beschreibung,

image149

danach auf Save klicken und schon ist das Applet fertig erstellt.

image150.png

Das Applet muss nun nur noch aktiviert werden, dazu klickt man auf den rot markierten Link

image151.png

und klickt dann auf Turn on. Das Applet wird dann noch von IFTTT geprüft und ist nach erfolgreicher Prüfung auch direkt einsatzbereit. Bei anderen Services können auch noch einige Feineinstellungen gemacht werden, dazu aber später mal.

In der Liste der My Applets auf IFTTT sollte das neue Fhem Backup nun ebenfalls auftauchen

image152

Als ich grade über einen Test nachgedacht habe fiel mir auf, dass Fhem [für meine Begriffe wie Fämm gesprochen]  vermutlich vom Google-Assistant nicht korrekt verstanden werden wird, daher habe ich das Wort Fhem in den Einstellungen des Applets für den Test entfernt.

Änderungen an bestehenden Applets sind jederzeit und ziemlich problemlos möglich.

Spaß mit Google-Assistant

Ich habe ein paar Applets erstellt, die in meinem Zuhause bzw. in meinem Wohnzimmer ein paar Aktionen durchführen, hier zwei Beispiele.

Erstmal das Backup-Beispiel aus diesem  Thema:

Und meine Bürolampe, die ich mit einem Sonoff-Basic bestückt habe. In Smartify your Lights habe ich diesen Vorgang genau beschrieben. Per IFTTT-Applet kann ich nun auch bequem auf der Couch liegen und das Licht schalten lassen, der Vorgang wird mit einem schlichten „Okay“ quittiert:

Amazons Alexa ist übrigens in der Lage die mit Tasmota geflashten Sonoff-Komponenten über die aktivierte Hue-Bridge Emulation auch ohne IFTTT zu schalten. Google-Assistant bietet diese Möglichkeit nicht (mehr) an. Meiner Meinung nach aber auch kein Problem. So ein Applet bei IFTTT ist sehr schnell gemacht.

IFTTT kann übrigens auch mit Telegram verknüpft werden 😉

Fazit

So ein Sprachassistent ist eine sehr feine Sache. Nicht nur die Steuerung des Smart-Home, sondern auch alltägliche Dinge wie Termine, lassen sich per Google-Assistant sehr bequem managen. In meiner, von Google dominierten, smarten Gerätelandschaft, lassen sich so viele Dinge sehr komfortabel regeln. Die Möglichkeit per IFTTT einen Fhem-Befehl abzusetzen setzt dem Ganzen natürlich die Krone auf.

Mir ist auf der anderen Seite aber auch bewusst, dass der Google-Assistant, genau so wie Amazons Alexa – mehr oder weniger Wanzen sind, die man sich freiwillig in das Haus stellt und das Risiko eingeht, abgehört zu werden.

Mittlerweile gibt es Projekte, wie z.B. das Mozilla Voice -Projekt, wo Cloud-Lösungen ggf. künftig umgangen werden können. In diesem Fall wird der Sprach-Assistent selbst gehostet. Projekte dieser Art machen vielversprechende Fortschritte. Sobald die Möglichkeit besteht so ein Projekt praktikabel zu benutzen, werde ich es natürlich auch damit einmal ausprobieren.

Whistle

An dieser Stelle möchte ich auch noch meinem, leider verstorbenen, Graupapagei Cuba gedenken. Ebenso wie dieser Kollege hier

bin ich mir sicher, dass auch du deinen Spaß gehabt hättest, mein kleiner Freund..