Home Automation mit OpenHAB 4
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 das neue Binding auswählen und das Amazon Konto konfigurieren.
Die Unique ID kann frei gewählt werden, muss aber innerhalb von openHAB eindeutig sein, hier: AmazonKonto. Im Geräteerkennungs-Modus stellt Direkt und über Alexa-Skill die beste Alternative dar. Ein Klick auf:
schließt die Thing Erstellung ab. Im nächsten Schritt muss openHAB die Berechtigung für den Zugriff auf Amazon erhalten. Dazu 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).
Auf Amazon Konto klicken.
Nach Eingabe der Amazon Zugangsdaten und Klick auf SIGN IN wird ein Einmalpasswort an die bei Amazon hinterlegte Mobilnummer geschickt. Diese eingeben und bestätigen. Wichtig: ohne 2FA scheitert die Authentifizierung. Auch wenn das Bilderrätsel korrekt eingegeben wird und die SMS am Smartphone ankommt, besteht keine Möglichkeit, die 6-stellige Nummer einzugeben. Nach wenigen Sekunden erfolgt der Redirect auf die Anmeldeseite!
Ist der Prozess erfolgreich ("Login succeeded") werden die gefundenen Devices angezeigt:
In der INBOX werden die über die Alexa Skill erreichbaren Devices angezeigt und können als Thing hinzugefügt werden.
Beispiel:
Über Alexa ist eine schaltbare Steckdose mit dem Namen Lampe eingebunden. Diese erhält den Namen LampeFensterbrett und wird als Thing hinzugefügt. Anschließend kann diese über openHAB ein- bzw. ausgeschaltet werden.
Der Amazon Echo selbst kann zur Sprachausgabe genutzt werden. Zuerst wird der Echo als Thing eingebunden (über Eintrag in INBOX):
Im Alexa Echo Thing Channels auswählen.
Show advanced anklicken, um Zugriff auf den Channel Speak zu erhalten.
Speak anklicken, Add Link To Item... wählen und eine neues Item erstellen (Create New Item).
_Speak wird automatisch an den Namen (Unique ID) angehängt (bei Bedarf ändern). Ein aussagekräftiges Label wählen (hier: Sprachausgabe Alexa Wohnzimmer). Alexa soll zur Alarmierung beim Öffnen einer Türe genutzt werden, daher Category=alarm, Semantic Class=Alarm und Semantic Property=Opening. Nach Klick auf Item steht das neue Item zur Verfügung:
Jetzt eine neue Regel erstellen (in Rules rechts unten auf das Plus-Zeichen klicken). Nach Vergabe einer eindeutigen ID (hier: SprachausgabeEchoWohnzimmer), einem Namen (hier: Sprachausgabe Echo Wohnzimmer) diese Regel mit Klick auf Save speichern. eine neue Aktion hinzufügen (Add Action). Um Alexa zum Sprechen zu bringen, wird ein Inline Script benötigt.
Mit Hilfe von Blockly können die erforderlichen Blöcke einfach zusammengestellt werden.
In openHAB auf Items & Things klicken und send command auswählen.
Einen beliebigen Text eingeben (hier: Balkontüre ist geöffnet) und das passende Item auswählen (hier: Echo_Wohnzimmer_Speak).
Mit Click auf Run Now kann die Regel getestet werden.
Alexa spricht nicht?
Wenn Alexa nicht spricht, hilft ein Blick in das Logbuch von openHAB, konkret in die Datei openhab.log. Am Dateiende stand bei mir:
Das deutet darauf hin, dass das JavaScript Add-on nicht vorhanden ist und nachinstalliert werden muss. Das erforderliche Binding befindet sich nicht in den Bindings, sondern in Automation:
Nach der Installation sollte die Sprachausgabe am Alexa Echo funktionieren. In der Regel kann jetzt noch ein Trigger hinzugefügt werden, der dann die Sprachausgabe initiiert.