Alexa-Fhem: Unterschied zwischen den Versionen

Aus FHEMWiki
(Zwischenspeicherung aktueller Stand)
(Abschluss erste Version)
Zeile 21: Zeile 21:


=== Alexa-Fhem installieren ===
=== Alexa-Fhem installieren ===
* Die tgz-Datei entpacken (Quelle: https://forum.fhem.de/index.php/topic,60244.0.html)
# Die tgz-Datei entpacken (Quelle: https://forum.fhem.de/index.php/topic,60244.0.html)
* Verzeichnis ''package'' in ''alexa-fhem'' umbenennen
# Verzeichnis ''package'' in ''alexa-fhem'' umbenennen
* Durch <pre>cd alexa-fhem</pre> in das Verzeichnis wechseln
# Durch <pre>cd alexa-fhem</pre> in das Verzeichnis wechseln
* Mit <pre>npm install</pre> alle Abhängigkeiten installieren
# Mit <pre>npm install</pre> alle Abhängigkeiten installieren
* SSL Zertifikat erzeugen durch Aufruf von <pre>./createKey.sh</pre>. Hierbei beachten, dass ein Kennwort vergeben werden soll, das mindestens aus 4 Zeichen besteht.
# SSL Zertifikat erzeugen durch Aufruf von <pre>./createKey.sh</pre>. Hierbei beachten, dass ein Kennwort vergeben werden soll, das mindestens aus 4 Zeichen besteht.
* Die Datei ''config.json.sample'' nach ''config.json'' kopieren und die Werte auf die eigene Umgebung hin anpassen. Der Filter funktioniert hierbei wie bei [http://www.fhemwiki.de/wiki/Homebridge_einrichten#Einstellungen_f.C3.BCr_homebridge homebridge-fhem]
# Die Datei ''config.json.sample'' nach ''config.json'' kopieren und die Werte auf die eigene Umgebung hin anpassen. Der Filter funktioniert hierbei wie bei [http://www.fhemwiki.de/wiki/Homebridge_einrichten#Einstellungen_f.C3.BCr_homebridge homebridge-fhem]
* Durch Aufruf von <pre>bin/alexa</pre> den Dienst starten
# Durch Aufruf von <pre>bin/alexa</pre> den Dienst starten


=== Alexa Smart Home Skill anlegen ===
=== Alexa Smart Home Skill anlegen ===
Für folgende Schritte muss man unter der Adresse http://developer.amazon.com angemeldet sein
Für folgende Schritte muss man unter der Adresse http://developer.amazon.com angemeldet sein
* Anmeldung auswählen<br />[[Datei:Developer.amazon.com-01-login2.png|200px]]
# Anmeldung auswählen<br />[[Datei:Developer.amazon.com-01-login2.png|200px]]
* Anmeldedaten eingeben<br />[[Datei:Developer.amazon.com-02-userpass2.png|200px]]
# Anmeldedaten eingeben<br />[[Datei:Developer.amazon.com-02-userpass2.png|200px]]


==== Apps & Services ====
==== Apps & Services ====
* Klicke nach der Anmeldung auf ''APPS & SERVICES''<br />[[Datei:Developer.amazon.com-03-apps_and_services.png|200px]]
# Klicke nach der Anmeldung auf ''APPS & SERVICES''<br />[[Datei:Developer.amazon.com-03-apps_and_services.png|200px]]
* Klicke anschließend auf ''Security Profiles''<br />[[Datei:Developer.amazon.com-05-apps_and_services_-_security_profiles.png|200px]]
# Klicke anschließend auf ''Security Profiles''<br />[[Datei:Developer.amazon.com-05-apps_and_services_-_security_profiles.png|200px]]
* Wähle anschließend ''Create a New Security Profile'' aus<br />[[Datei:Developer.amazon.com-06-apps_and_services_-_create_a_new_security_profile.png|200px]]
# Wähle anschließend ''Create a New Security Profile'' aus<br />[[Datei:Developer.amazon.com-06-apps_and_services_-_create_a_new_security_profile.png|200px]]
* Gebe dann ein Namen und eine Beschreibung für das Profil ein und bestätige die Eingaben durch anklicken von ''Save''<br />[[Datei:Developer.amazon.com-07-apps_and_services_-_security_profile_management.png|200px]]
# Gebe dann ein Namen und eine Beschreibung für das Profil ein und bestätige die Eingaben durch anklicken von ''Save''<br />[[Datei:Developer.amazon.com-07-apps_and_services_-_security_profile_management.png|200px]]


==== Login with Amazon ====
==== Login with Amazon ====
* Nachdem du die vorherigen Schritte befolgt hast, siehst du im Browser das Profil dass du angelegt hast. Klicke jetzt oben rechts auf ''Login with Amazon''<br/>[[Datei:Developer.amazon.com-08-login_with_amazon.png|200px]]
# Nachdem du die vorherigen Schritte befolgt hast, siehst du im Browser das Profil dass du angelegt hast. Klicke jetzt oben rechts auf ''Login with Amazon''<br/>[[Datei:Developer.amazon.com-08-login_with_amazon.png|200px]]
* Auf der neu geladenen Seite klickst du dann auf ''Sign up''<br/>[[Datei:Developer.amazon.com-09-login_with_amazon_-_sign_up.png|200px]]
# Auf der neu geladenen Seite klickst du dann auf ''Sign up''<br/>[[Datei:Developer.amazon.com-09-login_with_amazon_-_sign_up.png|200px]]
* Wähle anschließend im Dropdown Menü das vorher angelegte Profil aus und bestätige das anschließend mit ''Confirm''<br/>[[Datei:Developer.amazon.com-10-login_with_amazon_-_create_new_profile.png|200px]] [[Datei:Developer.amazon.com-11-login_with_amazon_-_create_new_profile2.png|200px]]
# Wähle anschließend im Dropdown Menü das vorher angelegte Profil aus und bestätige das anschließend mit ''Confirm''<br/>[[Datei:Developer.amazon.com-10-login_with_amazon_-_create_new_profile.png|200px]] [[Datei:Developer.amazon.com-11-login_with_amazon_-_create_new_profile2.png|200px]]
* Im folgenden Fenster gibst du dann die Adresse [https://www.amazon.com/gp/help/customer/display.html?nodeId=468496 https://www.amazon.com/gp/help/customer/display.html?nodeId=468496] ein und bestätigst die Eingabe mit ''Save''<br/>[[Datei:Developer.amazon.com-12-login_with_amazon_-_enter_consent_screen_information.png|200px]]
# Im folgenden Fenster gibst du dann die Adresse [https://www.amazon.com/gp/help/customer/display.html?nodeId=468496 https://www.amazon.com/gp/help/customer/display.html?nodeId=468496] ein und bestätigst die Eingabe mit ''Save''<br/>[[Datei:Developer.amazon.com-12-login_with_amazon_-_enter_consent_screen_information.png|200px]]
* Klicke dann bei dem neu angelegten Eintrag auf der rechten Seite auf das Zahnrad und wähle ''Web Settings'' aus<br/>[[Datei:Developer.amazon.com-13-login_with_amazon_-_web_settings.png|200px]]
# Klicke dann bei dem neu angelegten Eintrag auf der rechten Seite auf das Zahnrad und wähle ''Web Settings'' aus<br/>[[Datei:Developer.amazon.com-13-login_with_amazon_-_web_settings.png|200px]]
* Im neu geladenen Fenster klickst du dann auf ''Edit''<br/>[[Datei:Developer.amazon.com-14-login_with_amazon_-_edit.png|200px]]
# Im neu geladenen Fenster klickst du dann auf ''Edit''<br/>[[Datei:Developer.amazon.com-14-login_with_amazon_-_edit.png|200px]]
* Füge zuletzt dann bei ''Allowed Return URLs'' die Adresse [https://layla.amazon.co.uk/api/skill/link/M33O7TOO1OKLPR https://layla.amazon.co.uk/api/skill/link/M33O7TOO1OKLPR], [https://pitangui.amazon.com/api/skill/link/M33O7TOO1OKLPR https://pitangui.amazon.com/api/skill/link/M33O7TOO1OKLPR], und [https://layla.amazon.com/api/skill/link/M33O7TOO1OKLPR https://layla.amazon.com/api/skill/link/M33O7TOO1OKLPR] hinzu<br/>[[Datei:Developer.amazon.com-15-login_with_amazon_-_allowed_return_urls.png|200px]]
# Füge zuletzt dann bei ''Allowed Return URLs'' die Adresse [https://layla.amazon.co.uk/api/skill/link/M33O7TOO1OKLPR https://layla.amazon.co.uk/api/skill/link/M33O7TOO1OKLPR], [https://pitangui.amazon.com/api/skill/link/M33O7TOO1OKLPR https://pitangui.amazon.com/api/skill/link/M33O7TOO1OKLPR], und [https://layla.amazon.com/api/skill/link/M33O7TOO1OKLPR https://layla.amazon.com/api/skill/link/M33O7TOO1OKLPR] hinzu<br/>[[Datei:Developer.amazon.com-15-login_with_amazon_-_allowed_return_urls.png|200px]]
 
==== Skill Kit einrichten ====
# Wähle im Menü den Punkt ''Alexa'' aus<br />[[Datei:Developer.amazon.com-03-apps_and_services.png|200px]]
# Klicke dann ''Get started'' beim Punkt ''Alexa Skills Kit'' an<br />[[Datei:Developer.amazon.com-17-alexa_-_alex_skills_kit_-_get_started.png|200px]]
# Wähle dann auf der neu geladenen Seite oben rechts ''Add a New Skill'' aus<br />[[Datei:Developer.amazon.com-18-alexa_-_alex_skills_kit_-_add_a_new_skill.png|200px]]
# Auf der folgenden Seite wählst du ''Smart Home Skill API'' sowie ''German'' als Sprache aus und gibst ein Name für den Skill ein was du dann mit ''Next'' bestätigst.<br />[[Datei:Developer.amazon.com-19-alexa_-_alex_skills_kit_-_skill_information.png|200px]]
# Die folgende Seite klickst du mit ''Next'' dann weiter<br />[[Datei:Developer.amazon.com-20-alexa_-_alex_skills_kit_-_interaction_model.png|200px]]
# Auf der Seite Configuration gibst du dann unter ''Authorization URL'' die Adresse [https://www.amazon.com/ap/oa https://www.amazon.com/ap/oa] an, bei Scope ''profile:user_id'' und bei ''Access Token URI'' [https://api.amazon.com/auth/o2/token https://api.amazon.com/auth/o2/token]<br /><br />Folgende Felder müssen individuell ausgefüllt werden:<br />* ''Service Endpoint Type'' -> Europe auswählen und im Textfeld den Wert aus Punkt 12 '''AWS Lambda Funktion anlegen''' eintragen<br />* ''Client Id'' -> ''Client Id'' aus Punkt 1. '''Login with Amazon'''<br />* ''Client Secret'' -> ''Client Secret'' aus Punkt 1. '''Login with Amazon'''<br /><br /><br />[[Datei:Developer.amazon.com-21-alexa_-_alex_skills_kit_-_configuration.png|200px]]
# <br />[[Datei:Developer.amazon.com-22-alexa_-_alex_skills_kit_-_test.png|200px]]
 
Zur späteren Verwendung unter Punkt 7 '''AWS Lambda Funktion anlegen''' wird noch die Application Id benötigt. An diese kommt man wie folgt:
# Wähle im Menü den Punkt ''Alexa'' aus<br />[[Datei:Developer.amazon.com-03-apps_and_services.png|200px]]
# Klicke dann ''Get started'' beim Punkt ''Alexa Skills Kit'' an<br />[[Datei:Developer.amazon.com-17-alexa_-_alex_skills_kit_-_get_started.png|200px]]
# Beim vorher angelegten Eintrag auf ''Edit'' klicken<br />[[Datei:Developer.amazon.com-23-alexa_-_alex_skills_kit_-_overview.png|200px]]
# Die Id, die nun oben angezeigt wird, ist die gesuchte <br />[[Datei:Aws.amazon.com-06-configure_triggers2.png|200px]]
 
=== AWS Lambda Funktion anlegen ===
Für folgende Schritte muss man unter der Adresse http://aws.amazon.com angemeldet sein
# Anmeldung auswählen<br />[[Datei:Aws.amazon.com-01-site.png|200px]]
# Anmeldedaten eingeben<br />[[Datei:Aws.amazon.com-02-login.png|200px]]
# Den Punkt ''Lambda'' links auf der Startseite auswählen<br />[[Datei:Aws.amazon.com-03-lambda.png|200px]]
# Anschließend den Punkt ''Get Started Now'' auswählen<br />[[Datei:Aws.amazon.com-04-get_started_now.png|200px]]
# Den Blueprint ''Blank function'' auswählen<br />[[Datei:Aws.amazon.com-05-select_blueprint.png|200px]]
# Im neuen Fenster dann auf den gestrichelten Kasten klicken und ''Alexa Skills Kit'' auswählen und mit ''Next'' bestätigen<br />[[Datei:Aws.amazon.com-06-configure_triggers1.png|200px]]
# Bei ''Application Id'' den Wert eintragen, dessen Ermittlung unter '''Skill Kit einrichten'''bei X beschrieben wird, den Haken bei ''Enable trigger'' setzen und mit ''Next'' bestätigen <br />[[Datei:Aws.amazon.com-06-configure_triggers3.png|200px]]
# Auf der Konfigurationsseite bei ''Name'' den Wert FHEM eingeben, bei ''Runtime'' Node.js 4.3. Bei ''Role'' den Wert ''Choose an existing role'' wählen und bei ''Existing role'' dann ''x'' wählen. Der Quellcode der Datei lambda.js aus dem Quellpaket wird dann an die Stelle des großen Textfeldes vollständig eingefügt. Dann noch den Hostname im Quellcode an den eigenen anpassen. Anschließend alles mit ''Next'' bestätigen.<br />[[Datei:Aws.amazon.com-07-configure_function.png|200px]]
# Auf der Übersichtsseite dann ''Create function'' anklicken<br />[[Datei:Aws.amazon.com-08-review.png|200px]]
# Klicke dann auf der Übersichtsseite oben links auf ''Function''<br />[[Datei:Aws.amazon.com-09-go_overview.png|200px]]
# Wähle dann die angelegte Funktion aus und klicke dann im Menü ''Action'' auf den Punkt ''Show ARN''<br />[[Datei:Aws.amazon.com-10-1-show_arn.png|200px]]
# Es wird nun eine ARN Adresse angezeigt, die für den Punkt 6 bei '''Skill Kit einrichten''' benötigt wird<br />[[Datei:Aws.amazon.com-10-2-arn.png|200px]]

Version vom 6. November 2016, 15:18 Uhr

Alexa-Fhem ist eine in JavaScript und auf NodeJS basierende Software, welche es ermöglicht, der digitalen Amazon Assistentin Alexa zusätzliche Skills für die Heimautomatisierung via FHEM beizubringen. Eine erste funktionierende Version wurde von justme1968 im Forum veröffentlicht. Das ist eine erste Version der Dokumentation zur Installation und Einrichtung, eine Erweiterung wird sicherlich in nächster Zeit noch folgen.

Alexa-Fhem
Zweck / Funktion
Anbindung von FHEM an Amazon Assistent Alexa
Allgemein
Typ Inoffiziell
Details
Dokumentation siehe Forum
Support (Forum) Sonstige Systeme
Modulname
Ersteller justme1968
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!


Installation

Grundvoraussetzung für alle folgenden Schritte ist, dass ein Amazon-Account vorhanden ist. Es wird davon ausgegangen, dass bereits für alle folgenden Amazon-Dienste vorab das Konto jeweils eingerichtet wurde, die Einrichtung dieser ist nicht Bestandteil dieser Anleitungen.

Voraussetzungen

Folgende grundlegende Voraussetzungen sollten erfüllt sein, bevor du mit der Einrichtung beginnst:

  • Amazon Echo oder Amazon Dot
  • node.js (vermutlich ab Vesion 0.12, getestet mit 4.2.6)
  • Weiterleitung von Port 3000 vom Router aus auf den Rechner, auf dem Alexa-Fhem läuft

Alexa-Fhem installieren

  1. Die tgz-Datei entpacken (Quelle: https://forum.fhem.de/index.php/topic,60244.0.html)
  2. Verzeichnis package in alexa-fhem umbenennen
  3. Durch
    cd alexa-fhem
    in das Verzeichnis wechseln
  4. Mit
    npm install
    alle Abhängigkeiten installieren
  5. SSL Zertifikat erzeugen durch Aufruf von
    ./createKey.sh
    . Hierbei beachten, dass ein Kennwort vergeben werden soll, das mindestens aus 4 Zeichen besteht.
  6. Die Datei config.json.sample nach config.json kopieren und die Werte auf die eigene Umgebung hin anpassen. Der Filter funktioniert hierbei wie bei homebridge-fhem
  7. Durch Aufruf von
    bin/alexa
    den Dienst starten

Alexa Smart Home Skill anlegen

Für folgende Schritte muss man unter der Adresse http://developer.amazon.com angemeldet sein

  1. Anmeldung auswählen
    Developer.amazon.com-01-login2.png
  2. Anmeldedaten eingeben
    Developer.amazon.com-02-userpass2.png

Apps & Services

  1. Klicke nach der Anmeldung auf APPS & SERVICES
    Developer.amazon.com-03-apps and services.png
  2. Klicke anschließend auf Security Profiles
    Developer.amazon.com-05-apps and services - security profiles.png
  3. Wähle anschließend Create a New Security Profile aus
    Developer.amazon.com-06-apps and services - create a new security profile.png
  4. Gebe dann ein Namen und eine Beschreibung für das Profil ein und bestätige die Eingaben durch anklicken von Save
    Developer.amazon.com-07-apps and services - security profile management.png

Login with Amazon

  1. Nachdem du die vorherigen Schritte befolgt hast, siehst du im Browser das Profil dass du angelegt hast. Klicke jetzt oben rechts auf Login with Amazon
    Developer.amazon.com-08-login with amazon.png
  2. Auf der neu geladenen Seite klickst du dann auf Sign up
    Developer.amazon.com-09-login with amazon - sign up.png
  3. Wähle anschließend im Dropdown Menü das vorher angelegte Profil aus und bestätige das anschließend mit Confirm
    Developer.amazon.com-10-login with amazon - create new profile.png Developer.amazon.com-11-login with amazon - create new profile2.png
  4. Im folgenden Fenster gibst du dann die Adresse https://www.amazon.com/gp/help/customer/display.html?nodeId=468496 ein und bestätigst die Eingabe mit Save
    Developer.amazon.com-12-login with amazon - enter consent screen information.png
  5. Klicke dann bei dem neu angelegten Eintrag auf der rechten Seite auf das Zahnrad und wähle Web Settings aus
    Developer.amazon.com-13-login with amazon - web settings.png
  6. Im neu geladenen Fenster klickst du dann auf Edit
    Developer.amazon.com-14-login with amazon - edit.png
  7. Füge zuletzt dann bei Allowed Return URLs die Adresse https://layla.amazon.co.uk/api/skill/link/M33O7TOO1OKLPR, https://pitangui.amazon.com/api/skill/link/M33O7TOO1OKLPR, und https://layla.amazon.com/api/skill/link/M33O7TOO1OKLPR hinzu
    Developer.amazon.com-15-login with amazon - allowed return urls.png

Skill Kit einrichten

  1. Wähle im Menü den Punkt Alexa aus
    Developer.amazon.com-03-apps and services.png
  2. Klicke dann Get started beim Punkt Alexa Skills Kit an
    Developer.amazon.com-17-alexa - alex skills kit - get started.png
  3. Wähle dann auf der neu geladenen Seite oben rechts Add a New Skill aus
    Developer.amazon.com-18-alexa - alex skills kit - add a new skill.png
  4. Auf der folgenden Seite wählst du Smart Home Skill API sowie German als Sprache aus und gibst ein Name für den Skill ein was du dann mit Next bestätigst.
    Developer.amazon.com-19-alexa - alex skills kit - skill information.png
  5. Die folgende Seite klickst du mit Next dann weiter
    Developer.amazon.com-20-alexa - alex skills kit - interaction model.png
  6. Auf der Seite Configuration gibst du dann unter Authorization URL die Adresse https://www.amazon.com/ap/oa an, bei Scope profile:user_id und bei Access Token URI https://api.amazon.com/auth/o2/token

    Folgende Felder müssen individuell ausgefüllt werden:
    * Service Endpoint Type -> Europe auswählen und im Textfeld den Wert aus Punkt 12 AWS Lambda Funktion anlegen eintragen
    * Client Id -> Client Id aus Punkt 1. Login with Amazon
    * Client Secret -> Client Secret aus Punkt 1. Login with Amazon


    Developer.amazon.com-21-alexa - alex skills kit - configuration.png

  7. Developer.amazon.com-22-alexa - alex skills kit - test.png

Zur späteren Verwendung unter Punkt 7 AWS Lambda Funktion anlegen wird noch die Application Id benötigt. An diese kommt man wie folgt:

  1. Wähle im Menü den Punkt Alexa aus
    Developer.amazon.com-03-apps and services.png
  2. Klicke dann Get started beim Punkt Alexa Skills Kit an
    Developer.amazon.com-17-alexa - alex skills kit - get started.png
  3. Beim vorher angelegten Eintrag auf Edit klicken
    Developer.amazon.com-23-alexa - alex skills kit - overview.png
  4. Die Id, die nun oben angezeigt wird, ist die gesuchte
    Aws.amazon.com-06-configure triggers2.png

AWS Lambda Funktion anlegen

Für folgende Schritte muss man unter der Adresse http://aws.amazon.com angemeldet sein

  1. Anmeldung auswählen
    Aws.amazon.com-01-site.png
  2. Anmeldedaten eingeben
    Aws.amazon.com-02-login.png
  3. Den Punkt Lambda links auf der Startseite auswählen
    Aws.amazon.com-03-lambda.png
  4. Anschließend den Punkt Get Started Now auswählen
    Aws.amazon.com-04-get started now.png
  5. Den Blueprint Blank function auswählen
    Aws.amazon.com-05-select blueprint.png
  6. Im neuen Fenster dann auf den gestrichelten Kasten klicken und Alexa Skills Kit auswählen und mit Next bestätigen
    Aws.amazon.com-06-configure triggers1.png
  7. Bei Application Id den Wert eintragen, dessen Ermittlung unter Skill Kit einrichtenbei X beschrieben wird, den Haken bei Enable trigger setzen und mit Next bestätigen
    Aws.amazon.com-06-configure triggers3.png
  8. Auf der Konfigurationsseite bei Name den Wert FHEM eingeben, bei Runtime Node.js 4.3. Bei Role den Wert Choose an existing role wählen und bei Existing role dann x wählen. Der Quellcode der Datei lambda.js aus dem Quellpaket wird dann an die Stelle des großen Textfeldes vollständig eingefügt. Dann noch den Hostname im Quellcode an den eigenen anpassen. Anschließend alles mit Next bestätigen.
    Aws.amazon.com-07-configure function.png
  9. Auf der Übersichtsseite dann Create function anklicken
    Aws.amazon.com-08-review.png
  10. Klicke dann auf der Übersichtsseite oben links auf Function
    Aws.amazon.com-09-go overview.png
  11. Wähle dann die angelegte Funktion aus und klicke dann im Menü Action auf den Punkt Show ARN
    Aws.amazon.com-10-1-show arn.png
  12. Es wird nun eine ARN Adresse angezeigt, die für den Punkt 6 bei Skill Kit einrichten benötigt wird
    Aws.amazon.com-10-2-arn.png