Home Automation mit OpenHAB

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.
OpenHAB Alexa Binding

Anschließend in Things das neue Binding auswählen und das Amazon Konto konfigurieren.

OpenHAB Alexa Amazon Konto

OpenHAB Alexa

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:

OpenHAB Alexa

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).

OpenHAB Alexa

Auf Amazon Konto klicken.
OpenHAB Alexa

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:

OpenHAB Alexa erfolgreich

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):

OpenHAB Alexa Echo Einbindung

Im Alexa Echo Thing Channels auswählen.

OpenHAB Alexa Echo Einbindung

Show advanced anklicken, um Zugriff auf den Channel Speak zu erhalten.

OpenHAB Alexa Echo Einbindung

Speak anklicken, Add Link To Item... wählen und eine neues Item erstellen (Create New Item).

OpenHAB Alexa Echo Einbindung

_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:

OpenHAB Alexa Echo Item Sprachausgabe

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.

OpenHAB Alexa Echo Einbindung

Mit Hilfe von Blockly können die erforderlichen Blöcke einfach zusammengestellt werden.

OpenHAB Alexa Echo Einbindung

In openHAB auf Items & Things klicken und send command auswählen.

OpenHAB Alexa Echo Einbindung

Einen beliebigen Text eingeben (hier: Balkontüre ist geöffnet) und das passende Item auswählen (hier: Echo_Wohnzimmer_Speak).

OpenHAB Alexa Echo Einbindung

Mit Click auf Run Now kann die Regel getestet werden.

OpenHAB Alexa Echo Einbindung

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:

2024-03-18 16:00:00.326 [ERROR] [ipt.internal.ScriptEngineManagerImpl] - ScriptEngine for language 'application/javascript' could not be found for identifier: 400f0d7e-b197-4599-b2c8-2ab99622eeb5

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:

OpenHAB Alexa Echo Einbindung

OpenHAB Alexa Echo Einbindung

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.