Home Automation mit openHAB 5
Amazon Alexa
Die Integration der Amazon Alexa ist einfach - vorausgesetzt im Amazon Konto ist die 2-Faktor-Authentifizierung aktiv, ansonsten scheitert die Einbindung. Vor der Konfiguration in openHAB die Sicherheitseinstellung in Amazon prüfen.
Im Add-on Store das Amazon Echo Control Binding installieren.

Anschließend in Things ein neues Thing hinzufügen. Amazon Echo Control Binding auswählen und Amazon Konto manuell hinzufügen.


Die Thing ID kann frei gewählt werden, muss aber innerhalb von openHAB eindeutig sein, hier: AmazonKonto. Im Geräteerkennungs-Modus stellt Direkt, über Alexa- und OpenHAB-Skill die beste Alternative dar. Die voreingestellten Abfrageintervalle können übernommen werden. Ein Klick auf:

erstellt das Thing und zeigt dieses als OFFLINE an, da die Amazon Zugangsdaten noch nicht registriert sind:

Um openHAB die Berechtigung für den Zugriff auf Amazon zu erteilen, muss die Seite http://192.168.0.xxx:8080/amazonechocontrol/ im Browser aufgerufen werden. xxx entspricht der für openHAB vergebenen IP Adresse (manche Router nutzen auch die IP Range 192.168.178.xxx).

... merkwürdige Schriftart
E-Mail Adresse vom Amazon Account eingeben und auf CONTINUE klicken:

Passwort vom Amazon Account eingeben und auf SIGN IN klicken:

Wie bereits oben erwähnt, muss der Amazon Zugang mit 2-Faktor Authentifizierung eingerichtet sein. Das Einmalpasswort (One Time Password = OTP, 6-stellig) wird in der Regel per SMS an die im Amazon Konto hinterlegte Mobilnummer geschickt. OTP eingeben und auf SIGN IN klicken:
Ist der Prozess erfolgreich ("Login succeeded") werden die gefundenen Devices angezeigt, zuerst mit OFFLINE, kurze Zeit später mit ONLINE. Sollte sich der Status nicht von alleine ändern, nach einiger Zeit das Browser Fenster mit F5 aktualisieren.

In meiner Umgebung sind drei Alexa Geräte integriert und werden korrekt angezeigt. Das Device Überall wird von Amazon automatisch generiert, um mehrere Alexa Geräte gleichzeitig anzusprechen.
Korrekterweise werden in der Spalte Thing alle Devices mit NONE angezeigt, denn die Geräte müssen im nächsten Schritt erst als Things hinzugefügt werden.
in openHAB werden unter Einstellungen - Things vier neue Einträge in der INBOX angezeigt:

Exemplarisch soll der Echo Dot im Wohnzimmer als Thing hinzugefügt werden. In der INBOX wird der Eintrag Wohnzimmer angeklickt und im Menü unten Add as Thing ausgewählt. openHAB schlägt die Device ID und den vergebenen Namen vor:

Die vorgeschlagenen Werte können übernommen werden, ich bevorzuge allerdings aussagekräftige Einträge. Dabei ist zu beachten, dass die Thing ID eindeutig ist und keine Leerzeichen enthalten darf. Als Thing label wähle ich meistens denselben Namen, allerdings mit Leerzeichen getrennt:

Anstelle von OK bevorzuge ich OK - Edit, um vor dem Speichern weitere Einstellungen vorzunehmen, beziehungsweise die Einträge nochmals zu überprüfen.

Nicht zwingend erforderlich, aber hilfreich ist der Eintrag Location (in diesem Beispiel: Wohnzimmer). Mit Klick auf Save (Ctrl-S) wird das Thing gepeichert.
Um jetzt den Echo Dot mit openHAB zu nutzen, muss noch Equipment hinzugefügt werden. Am einfachsten geht das mit dem Menüpunkt Model und Create Equipment from Things:

Thing anklicken.

Echo Dot Wohnzimmer anklicken.
Welche Channels zur Verfügung stehen, hängt vom jeweiligen Thing ab. Ein Amazon Echo (Alexa) bietet eine ganze Reihe von Kanälen zur Medienwiedergabe, Lautstärke, usw. an.

Ich möchte auf dem Echo einen beliebigen Text als Sprachnachricht ausgeben. Um diesen Channel zu nutzen muss das Häkchen bei Show advanced gesetzt werden. Sofort stehen viele weitere Channels zur Verfügung. Für die Sprachausgabe wird der Kanal Sprich (textToSpeech) benötigt:

Hinweis: Leider hat sich in meiner openHAB Version ein Sprachenmix eingestellt. Eigentlich wollte ich die Umgebung komplett in Englisch benutzen. Warum auch immer ist ein bunter Mix aus Englisch und Deutsch entstanden.
Übernimmt man die vorgeschlagenen Werte, erscheint das Item unter dem Namen Sprich und ist bei einer Vielziel von Things und Items nicht mehr so einfach zu finden. Daher ändere ich das Label ebenfalls auf Echo_Dot_Wohnzimmer_Sprich.

Nach Klick auf Add to Model steht das Item zur Verfügung.
Um auf dem Echo Dot jetzt testweise eine Sprachnachricht auszugeben, benötigt man lediglich eine Zeile JavaScript. Sollte ECMAScript noch nicht installiert sein, muss dieses nachinstalliert werden: Add-On Store, Automation (nicht Bindings!) und JavaScript Scripting installieren.
In Rules eine neue Regel anlegen (Plus-Zeichen rechts unten). Die Rule ID kann übernommen werden. Empfehlenswert ist allerdings einen aussagekräftigen Namen zu wählen, z.B. TestSprachausgabe und das Label ebenfalls so zu benennen: Test Sprachausgabe. Anschließend auf Save (Ctrl-S) klicken. Für den ersten Test benötigt man weder einen Trigger noch eine Condition, sondern lediglich eine Action

Auf Add Action klicken:

Auf Inline Script klicken und dann ECMAScript auswählen.
Zuerst diese Zeile mit Save (Ctrl-S) speichern und anschließend links unten auf Run Now (Ctrl-R) klicken. Der Echo Dot sollte jetzt diesen Text als Sprache ausgeben. Wenn nichts zu hören ist, ist die Lautstärke für die Sprachausgabe voraussichtlich auf 0 gesetzt. Dann wird ein weiterer Channel für den Echo Dot Wohnzimmer benötigt: Sprich Lautstärke (textToSpeechVolume). Wird dieses Item mit dem Namen Echo_Dot_Wohnzimmer_Sprich_Volume angelegt, kann die Lautstärke mit folgender JavaScript Zeile geändert werden (Werte zwischen 0 und 100):