Alexa über OpenHab steuern mit einem Binding
Dieser Beitrag wurde am 25.05.2018 überarbeitet. Vielen Dank an dieser Stelle an Michael Geramb für die hilfreichen Informationen und die Hilfestellung.
Wer sich übrigens für Fotografie interessiert, sollte definitiv einen Blick auf Michaels Seite werfen!
Außerdem solltest du diese Ankündigung zur Weiterentwicklung lesen, wenn du daran interessiert bist, deine Lampen von Alexa in OpenHab zu integrieren.
Bisher befassen sich sämtliche Blogger, Bastler und Smarthome-Freunde mit der Steuerung ihrer Geräte über Sprache und nicht mit der Steuerung von Alexa über OpenHab.
Viele greifen hierfür zu Alexa, weil diese einfach ein absolut tolles Produkt ist. Doch es gibt tatsächlich Situationen, in denen man Alexa über ein Webinterface steuern möchte.
Das klingt jetzt kurios, ich gebe es zu. Und sicherlich fragst du dich, was für komische Einfälle manche Personen haben. Doch lass mich dir genau erklären, wieso das durchaus Sinn machen kann. Ob du es dann schlussendlich selbst brauchst, ist eine andere Sache.
Ein Klick um die Wohnung anzupassen
Damit du besser verstehst, wo der Sinn im Vorhaben liegt, möchte ich dir kurz unser Smarthome erläutern.
Wir haben einen Raspberry Pi mit OpenHab, Pilight und Lirc. OpenHab stellt die Oberfläche für die gesamte Steuerung des Smarthome, Pilight steuert 433 MHz Steckdosen und Lirc sendet IR-Kommandos an den TV und die Stereoanlage. Dazu haben wir einen Amazon Echo Plus, welcher für Musik, Nachrichten sowie Steuerung von Osram * und Philips * sorgt. Der Plan sieht vor, dass eines Tages ein Tablet im Flur angebracht ist, über das man zentral die Wohnung kontrollieren kann. Bisher läuft die Steuerung von OpenHab – wenn nicht sprachgesteuert – über das Smartphone oder den Computer.
Wenn man nun von der Arbeit heim kommt, kann man über einen Klick Musik starten, Lichter einschalten und in den Abend starten. Ohne ein Steuerung von Alexa über OpenHab müsste man die Musik extra einschalten. Na ja gut, Lichter funktionieren zum aktuellen Zeitpunkt nur, wenn diese nicht über den Echo Plus * laufen. Aber dazu später mehr.
Da Alexa jedoch nur die Steuerung der einzelnen Smarthome-Komponenten übernimmt und dazu den Befehl an OpenHab weiterleitet, wäre es nicht möglich die Musik zu starten. Ein Entwickler hat jedoch Skripte geschrieben, mit denen man den Amazon Echo fernsteuern kann. Den Beitrag Amazon Alexa per Shell fernsteuern findet man in seinem Blog. Hier erläutert er, wie genau man die Steuerung einrichtet und nutzt.
Wie sich das Skript einbinden lässt
Nun, damit du auch deinen Amazon Echo mit diesem Skript steuern kannst, müsstest du über das Exec-Binding jedes Mal das Skript aufrufen mit den richtigen Parametern – also Übergabewerten. Das würde funktionieren und sieht auf den ersten Blick einfach aus.
Du brauchst lediglich dein Amazonkonto und das zugehörige Passwort. Das muss in das Skript eingetragen werden und es kann losgehen. Achte unbedingt darauf, dass niemand auf deinem Raspberry Pi entsprechende Rechte hat, um das Skript zu öffnen. Dein Amazonkonto könnte sonst durch diese Person benutzt werden und du würdest ziemlich hilflos aussehen.
Deine Alexa über Openhab steuern
Ich sag dir ganz ehrlich, spar dir die Mühe mit dem Skript. Es geht einfacher. Ein weiterer Entwickler hat ein Binding geschrieben, welches du in deine OpenHab-Konfiguration einfügen kannst. Dieses Amazon Echo Control Binding macht deine Echos ausfindig und du kannst sie per Klick hinzufügen. Auch die Installation ist viel einfacher als das Skript bei jedem Item zu hinterlegen. Damit kannst du super einfach deine Alexa über OpenHab steuern.
Nichts gegen das Skript, es funktioniert und sieht super aus, aber wieso kompliziert wenn es auch einfacher geht? Aus diesem Grund solltest du dir einmal das Amazon Echo control binding von Michael Geramb ansehen. Im Grunde basiert dieses Binding auf dem Skript, welches ich dir gerade vorgestellt habe. Es wurde nur etwas erweitert und eben als Binding für OpenHab veröffentlicht. Derzeit befindet es sich noch in der Beta-Phase, was bedeutet, dass sich noch viel verändern wird und die Installation nicht per Klick über die Oberfläche ablaufen kann.
Doch das wird sich bald ändern.
Lade dir das Binding auf der verlinkten Seite herunter. Es sollte eine .jar-Datei sein, welche du erst einmal auf deinen Computer abspeicherst. Danach baust du eine Verbindung zu deinem Raspberry Pi auf, beispielsweise über VNC. Damit kannst du bequem auf ein NAS zugreifen, sofern du eines nutzt. Dort navigierst du in den Speicherort und kopierst es in den folgenden Ordner auf deinem Raspberry Pi: /usr/share/openhab2/addons/
Du musst die Datei weder entpacken, noch sonst irgendwie modifizieren. Einfach rein damit.
Das Binding einrichten
Nachdem das Binding eingefügt ist, musst du dich an deinem Konto anmelden. Derzeit ist es noch nicht möglich, die Zwei-Faktor-Authentifizierung zu nutzen. Da das Binding jedoch noch im Beta-Stadium ist, könnte sich das noch ändern. Klicke für die Einrichtung auf Things und dort auf Amazon Account. Wähle nun oben den Stift für das Bearbeiten aus. Füge dort die geforderten Infos ein und speichere die Konfiguration ab.
Du bekommst daraufhin in der Inbox Benachrichtigungen für die zur Verfügung stehenden Geräte. Füge deinen Echo hinzu. Dieser wird als neues Thing angelegt und kann anschließend davon ausgehend in OpenHab integriert werden. Du kannst dann Items anlegen, diese in die Sitemap einfügen und deinen Echo steuern.
Beachten musst du folgendes
Beachte bitte, dass noch nicht alle Funktionen reibungslos funktionieren.
Bei uns funktionierte Prime Music leider nicht, sondern nur die Playlists, welche für den hinterlegten Account angelegt wurden. Diese Playlists lassen sich auch auswählen und abspielen.
Der Alarmsound lässt sich aktivieren, jedoch nicht mehr deaktivieren. Der Alarmsound lässt sich inzwischen aktivieren und auch wieder deaktivieren.
Die Lautstärke wird in Prozent von 0 – 100 angegeben.
Routinen konnten wir noch nicht erfolgreich starten, da müssen wir nochmals nachbessern, um Fehler auf unserer Seite auszuschließen. Routinen funktionieren laut Michael problemlos. Sie müssen so aufgerufen werden, wie man sie auch normal per Sprache aufrufen muss. Getestet haben wir das aktuell noch nicht, das folgt allerdings bald.
Beispielkonfigurationen
Der Einstieg in das Binding kann eventuell etwas verwirrend sein, besonders mit der Auswahl von Radiosendern. Ich habe dir daher einmal beispielhaft unsere Konfiguration der Sitemap rausgesucht und möchte dir kurz zu den einzelnen Punkten etwas erklären.
Tägliche Zusammenfassung
Die tägliche Zusammenfassung ist ein Switch, welcher die Funktion Start bietet. Das bedeutet, dass du in diesem Fall die Zusammenfassung lediglich starten kannst. Meist bricht man diese allerdings sowieso nicht ab, weshalb ich denke, dass das ausreicht.
Der Inhalt der täglichen Zusammenfassung kannst du über die Alexa-App bestimmen.
Wetterbericht
Auch der Wetterbericht lässt sich in dieser Konfiguration lediglich starten und nicht stoppen. die Begründung ist analog zur täglichen Zusammenfassung.
TuneInRadioStationID
Jetzt wird es etwas komplizierter. Um ein Radio abzuspielen, benötigt Alexa die ID des Radiosenders. Diese bekommst du raus, indem du Alexa sagst, welchen Radiosender du hören möchtest. Die ID wird dir daraufhin in der PaperUI angezeigt, wenn du unter den Things bei deinem Echo ein Item zum Channel TuneIn Radio Stations ID hinzugefügt hast. Beispielhafte IDs findest du im Screenshot.
Füge deiner Sitemap dann eine Selection mit den unterschiedlichen Stationen hinzu, welche du hören möchtest. Füge außerdem zu Beginn eine leere ID hinzu, damit du das Radio per Oberfläche auch wieder ausschalten kannst.
Alarm Sound
Der Alarm Sound spielt – wie der Name bereits sagt – einen Sound ab. Dieser ließ sich bei uns nicht mehr über die Oberfläche stoppen und daher solltest du dir überlegen, ob du das integrieren möchtest und ob du daraus einen Nutzen ziehen kannst. Der Sound ist analog zum Wecksound von Alexa.
Aktueller Titel
Der aktuelle Titel zeigt dir in deiner Oberfläche an, wie sich der Titel nennt, den du gerade anhörst. Wenn du Radio hörst, wird dir hier der Sendername angezeigt. Das Element soll nicht beschreibbar sein, da es automatisch durch das Binding gesetzt wird.
Amazon Music
Über diesen Eintrag solltest du Amazon Music * starten und stoppen können. Bei uns funktioniert das bislang nicht, daher kann ich dir nicht all zu viel darüber erzählen.
Lautstärke
Die Lautstärke gibt an, wie laut Alexa den Titel oder das Radio abspielt, bzw. wie laut sie mit dir spricht. Die Schritte werden in Prozent angegeben, jedoch ohne Prozentzeichen. Du kannst hier auch Schritte auslassen, so dass man über OpenHab nicht die volle Lautstärke ausreizen kann.
Erinnerung
Diese Funktion sollte dazu dienen, eine Text To Speech Funktion aus den OpenHab Rules zu haben. Es gab bislang keine Funktion, dass man Alexa zum Sprechen bewegen konnte. Alle Erinnerungen werden sofort wieder gelöscht und tauchen aus diesem Grund nie in der Alexa-App auf.
Die neuere Version des Bindings unterstützt aber nun eine Text To Speech Funktion, die im Übrigen wirklich cool ist! Es lassen sich in den Rules eigene Texte anlegen, die dann von Alexa gesprochen werden.
Routinen
Hier solltest du eine Routine starten können. Ich vermute, dass wir noch einen Fehler in der Konfiguration haben, weshalb das bei uns nicht funktioniert. Es wäre jedoch eine tolle Möglichkeit, um die Lampen des Amazon Echo Plus ansteuern zu können, da man diese in eine Routine aufnehmen kann. Wird die Routine ausgelöst, schalten sich die Lichter ein oder aus.
Diese Anwendung ist leider sehr kompliziert, aber wäre grundsätzlich möglich. Wie du Routinen in deinem Smart Home einsetzt, wirst du selbst am besten wissen. Du weißt allerdings nun, wie du sie über OpenHab ausführen kannst.
Zusammenfassend lässt sich sagen …
… das Binding ist trotz Beta-Stadium wirklich toll. Es funktioniert schon sehr gut, trotz mancher Fehler. Man darf allerdings auch nicht vergessen, dass Beta nur bedeutet, dass man es öffentlich testen kann, während es noch in der Entwicklung ist.
Außerdem solltest du wissen, dass das Update auf eine neuere Version der Bindings etwas mühsam sein kann. Der Entwickler gibt an, dass man alle Dinge, die mit dem Binding zutun haben entfernen soll und nach dem Update neu hinzufügen soll. Vor der stabilen offiziellen Version wird sich das nicht ändern. Also entweder man bleibt bei einer Betaversion bis die richtige Version vorhanden ist oder man muss wirklich bei jeder neuen Betaversion ein umständliches Update machen.
Dennoch lohnt sich der Aufwand, denn nur so bekommt man auch eine vollständige Smarthome-Integration der Alexa.
Übrigens soll demnächst die Freigabe des Bindings stattfinden (Stand: 25.05.2018), so dass du es ganz unkompliziert nutzen kannst. Ich bin wirklich sehr gespannt und freue mich auf diesen Tag. Michael hat sehr viel Arbeit in dieses Binding gesteckt und ich bin begeistert, was er da auf die Beine gestellt hat. Aus diesem Grund möchte ich dich dazu motivieren, diesem Binding auf alle Fälle eine Chance zu geben.
In diesem Sinne, los geht’s!
Nachtrag
Das Amazon Echo Control Binding (von manchen auch Alexa Binding genannt) wurde inzwischen in der finalen Version veröffentlicht. Nun lässt es sich ganz einfach über die Paper UI in OpenHab installieren, ohne dass du eine .jar-Datei herunterladen und kopieren musst.
Auch die Einrichtung erfolgt komplett über die Paper UI und ist damit noch viel einfacher geworden. Damit kannst du deine Alexa über OpenHab endlich steuern!
4 Kommentare
Smart Home als Helfer im Pflegefall - Hobbyblogging · 16. Juni 2019 um 13:19
[…] habe für mein Zuhause eine Integration in OpenHab geschaffen, die es mir erlaubt, per Button eine Sprachausgabe auf dem Amazon Echo zu tätigen. So kann in jedem Raum ein benutzerdefinierter Text ausgegeben werden, wenn ein bestimmtes Ereignis […]
Deine Waschmaschine smart machen - Die Wäsche ist fertig! - Hobbyblogging · 15. Juni 2019 um 18:29
[…] setze ich auf OpenHab in der Version 2.4 und eine Fritz!DECT 200 Steckdose. Außerdem lasse ich Alexa durch das Amazon Echo Binding sprechen. Die Vorarbeit hierzu hat Michael Geramb geleistet, der Alexa erfolgreich in OpenHab integriert […]
Amazon Echo Control - Integration von Lampen - Hobbyblogging · 19. April 2019 um 15:30
[…] seit geraumer Zeit verfolgen wir die Entwicklung des Amazon Echo Control Bindings. Besonders auffällig ist dabei, dass von den Nutzern immer wieder die Funktion gewünscht wird, […]
Drahtlose Fensterkontakte für dein Smart Home mit Openhab · 20. September 2018 um 15:09
[…] dir ein Binding vorgestellt, das die Steuerung des Amazon Echo mit Hilfe von Openhab erlaubt. Das Amazon Echo Control Binding. Wenn du dieses Binding einsetzt, kannst du die Regel oben entsprechend anpassen und folgendes […]