OpenHAB 2 und Amazon Echo

Veröffentlicht von

Ich hatte vor einem guten Jahr schon mal mit Sprachsteuerung in meiner Hausautomatisierung zusammen mit einem Raspberry Pi und openHAB experimentiert. Die damalige Lösung war aber nicht zufriedenstellend, da ich kein gutes, bezahlbares Mikrofon gefunden habe und da das Verwenden der Google Spracherkennung mit dem Raspberry PI auch etwas hakelig war.
Seit ca. einer Woche bin ich Besitzer eines Amazon Echo und bin durchweg zufrieden.

Nach einigem Suchen habe ich dann folgende Vorlage für einen Skill gefunden um Amazon Echo mit openHAB zu verbinden:
https://github.com/openhab/openhab-alexa

Da ich mit der Anleitung dort aufgrund meiner nicht vorhandenen Erfahrung mit den Amazon Diensten etwas zu kämpfen hatte, versuche ich im Folgenden alle nötigen Schritte etwas detaillierter darzustellen.

Am besten beginnt man damit die Umgebung für das Deployment vorzubereiten. Ich habe das Ganze auf einem Raspberry Pi 2 gemacht.

Der erste Schritt ist nodejs & npm zu installieren. Dazu folgende Befehle ausführen:

Hier gibt’s die Anleitungen für alle anderen verfügbaren Umgebungen:
https://nodejs.org/en/download/package-manager/

Evtl. benötigt man noch die built-essentials:

Als letztes noch das node-lambda Paket installieren:
https://www.npmjs.com/package/node-lambda

 

Um das Deployment durchführen zu können muss man sich bei den Amazon AWS anmelden.
Um nachher das Skill zu erstellen zu können wird ein
Amazon Developer Account benötigt.
Beide Accounts sind in der Basisversion kostenlos.

In der AWS Konsole sollte man seinen Ort auf Ireland umstellen, da Alexa Skills als Region nur us-central-1 oder eu-west-1 haben können.

Um die in den späteren Schritten notwendigen Daten zu erhalten klickt man jetzt oben Rechts auf seinen Account Namen und wählt  My Security Credentials aus.
Auf der folgenden Seite kann man unter Access Keys einen Zugangsschlüssel erstellen. Dabei erhält man den AWS_ACCESS_KEY_ID und den AWS_SECRET_ACCESS_KEY.
Des Weiteren benötigt man die AWS_ROLE_ARN, dazu unter dem Menüpunkt Roles eine neue Rolle erstellen. Z.B. mit dem Namen lambda_basic_execution. Als AWS Service Roles AWS Lambda auswählen und in der folgenden Auswahl die AWSLambdaBasicExecutionRole. 
Die Role ARN findet man dann in der Zusammenfassung der Rolle.

Jetzt sind alle notwendigen Daten für das Deployment vorhanden.
Mit

openhab-alexa runterladen, entpacken und in den Ordner gehen.

Die Datei env_sample in .env umbenennen und die Werte für
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_ROLE_ARN
mit den entsprechenden Werten ersetzten.
Sowie den Wert für AWS_REGION in
eu-west-1
ändern.

Alle anderen Werte können so beibehalten werden.

Nun die Datei config_sample.js in config.js umbennen.
Hier muss die Adresse von openHAB eingetragen und ggf. die Zugangsdaten angepasst werden.

Nachdem das alles geschehen ist kann mit

das Deployment ausgeführt werden.
Nach erfolgreicher Ausführung sollte die Lambda Funktion in der AWS Konsole vorhanden sein. Hier muss jetzt noch als Trigger eine Alexa Smart Home App mit dem Namen openhab gesetzt werden.
Wenn ihr was in der Funktion ändert könnt ihr einfach das deploy erneut ausführen, dann wird der Skill automatisch aktualisiert.

Als nächsten Schritt wird das Alexa Skill erstellt.
Hierzu in den Amazon Developer Account gehen und im Reiter Alexa, Alexa Skill Kit auswählen und auf Add a New Skill klicken.
Folgende Einstellungen verwenden:
Skill Type: Smart Home Skill API auswählen
Language: German
Name: openhab

Unter Configuration Europe auswählen und die AWS Lambda ARN eintragen (In der Übersicht der Lambda Funktion zu finden).
Für das nötige Alexa Account Linking nach folgender Anleitung vorgehen:
https://developer.amazon.com/blogs/post/Tx3CX1ETRZZ2NPC/Alexa-Account-Linking-5-Steps-to-Seamlessly-Link-Your-Alexa-Skill-with-Login-wit

 

Auf der nächsten Seite noch “Show this skill in the Alexa App” aktivieren und sich bis zum Ende durchklicken.
Wenn alles geklappt hat solltet ihr jetzt in der Alexa App das erstellte Skill mit dem entsprechendem Namen finden wenn ihr oben rechts auf “Ihre Skills” klickt.
Damit die openHAB items gefunden werden müssen diese mit einem Homekit Tag versehen sein. (siehe https://github.com/openhab/openhab-alexa)

Quellen:
https://github.com/openhab/openhab-alexa
https://nodejs.org/en/download/package-manager/
https://www.npmjs.com/package/node-lambda
https://developer.amazon.com/blogs/post/Tx3CX1ETRZZ2NPC/Alexa-Account-Linking-5-Steps-to-Seamlessly-Link-Your-Alexa-Skill-with-Login-wit

Produktlinks:
Amazon Echo
Raspberry Pi 3
Bezerra BZ10

3 Kommentare

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.