Erstelle deinen eigenen Alexa Smart Home Skill

5
1657

Die folgende Schritt für Schritt Anleitung zeigt dir, wie du dir einen eigenen Alexa Smart Home Skill erstellen kannst. Dieser Skill wird nur für dich persönlich zur Verfügung stehen und nicht im SkillStore für jedermann zu aktivieren sein! Diese Anleitung setzt jedoch einige Grundlagen voraus, die zu erfüllen sind:

  • du solltest dich technisch etwas besser auskennen und im besten Fall etwas scripten/entwickeln können
  • du hast einen Anwendungsfall für den Skill (ein bestimmtes Gerät ein und ausschalten)
  • du benötigst bei dir im Haus einen Webserver, der von extern über HTTPS erreichbar ist (dieser nimmt den Steuerbefehl entgegen und führt diesen Schritt dann aus)
  • diese Anleitung basiert auf Version 3 der Smart Home Skill API (ggf. muss er für eine neuere Version entsprechend angepasst werden)
  • du besitzt eine Kreditkarte (nein… nicht, um mir etwas für diesen Beitrag zu überweisen, sondern für das Entwicklerkonto bei Amazon! Auch wenn es kostenlos ist [Freikontingent], muss dort zwingend eine Kreditkarte hinterlegt werden)

Solltest du einen der oben genannten Punkte nicht erfüllen können, ist diese Anleitung eher nichts für dich. Danke, dass du trotzdem bis hierher gelesen hast! 🙂

Was kann dein fertiger Alexa Smart Home Skill letztendlich?

Der Smart Home Skill wird mit dieser Anleitung dein Gerät ein-/ausschalten können. Natürlich kannst du ihn beliebig erweitern! Bei einem Smart Home Skill musst du keine Phrase und keinen Invocation Name nennen (Alexa, öffne [SKILLNAME]), sondern du sagst einfach Alexa, [Gerätename] einschalten.

In dieser Anleitung werde ich die Steuerung von 2 unterschiedlichen Geräten beschreiben. Einmal werden wir schlussendlich in der Lage sein, das Gäste WLAN der Fritzbox ein und auszuschalten und als zweites Gerät nehmen wir die Aktivierung einer Kamera, die an einer Synology angeschlossen ist (Gerät de-/aktivieren in der Synology Surveillance Station).

Diese Beispiele musst du natürlich auf deine Gegebenheiten anpassen! Bitte habe Verständnis dafür, dass wir hier nicht jedem dabei helfen können. Daher ist dieser Punkt oben als Voraussetzung genannt worden. Du musst etwas scripten bzw. programmieren können.

Im Besten Fall erstellst du dir also zuerst die notwendigen Dateien, um deine Geräte von außerhalb per WebRequest zu steuern. Das könnte z.B. mit einer PHP-Datei oder ähnlichem erfolgen. Erst nach diesem Schritt gehst du an die Einrichtung deines Alexa Smart Home Skill. Das lässt sich einfacher testen und erspart dir später die Fehlersuche! Erst wenn du mit einem Aufruf dein Gerät schalten kannst, gehst du zum nächsten Schritt über!

Update: Ein ganz neues Feature ist nun auch, dass man mit einem Smart Home Skill, Geräte über Wake-on-LAN (WoL) wecken kann. Hierzu benötigst du keinen eigenen Webserver bei dir lokal. Solltest du das ausprobieren möchten, dann sieh dir diesen Blogbeitrag auf der Amazon Developer Seite an.

Letzte Aktualisierung am 24.05.2019 um 20:49 Uhr / Affiliate Links / Bilder von der Amazon Product Advertising API

Also legen wir los…

Script zur Aktivierung der Kamera mit der Synology Surveillance Station per Sprachbefehl

Viel werde ich zu meinen Scripten nicht erklären, denn sie schalten, wie schon erwähnt, das Gerät nur ein oder aus. Auf ein paar Besonderheiten möchte ich trotzdem eingehen… Die Datei muss per GET Parameter den Befehl entgegen nehmen können (in diesem Fall „mode=on“ oder „mode=off„), anschließend schaltet die Kamera in den gewünschten Zustand und liefert dann das Ergebnis zurück. Außerdem habe ich noch einen Parameter, um den aktuellen Status abzufragen. Dies wird später noch im Smart Home Skill wichtig! Sollte dein Gerät die Abfrage beherrschen, dann solltest auch du das einbauen! Damit kannst du dann in der Alexa App den Status direkt anzeigen.

Außerdem benötigst du zur Steuerung der Kamera die ID. Diese musst du bei der Synology für deine Kamera herausfinden. Hast du nur eine einzige Kamera bisher hinzugefügt, dann ist die ID die „1“. Hast du deine Kamera mal durch eine neue ersetzt, dann eben die „2“ und so weiter…

Download:  camera.txt (Rechte Maustaste – Ziel/Link speichern unter)

Lege das Script auf deinem Webserver ab (Synology bringt bereits einen mit) und prüfe die Erreichbarkeit von außerhalb (z.B. Aufruf über dein Mobiltelefon)! Du musst die Datei von txt zu php umbenennen!

Script zur Aktivierung des Gäste WLAN auf deiner Fritzbox per Sprachbefehl

Hier nun beispielhaft mein zweites Script für das Gäste WLAN auf meiner Fritzbox. Dieses habe ich ebenfalls auf der Synology gespeichert. Damit du dich verbinden und das WLAN steuern darfst, musst du dir allerdings einen weiteren Benutzer auf deiner Fritzbox erstellen! Dafür findest du einige Anleitung im Netz. Hier aber meine Einstellungen:

Fritzbox Benutzer erstellen
Fritzbox Benutzer erstellen

Das Script erklärt sich dann auch wieder von alleine! Es wird wieder der GET Parameter „mode“ entgegengenommen, der Befehl wird ausgeführt und „0“ oder „1“ zurückgegeben. Der aktuelle Status lässt sich aber mit diesem Script nicht abfragen!
Passe das Script mit einem Editor auf deine Bedürfnisse an.

  • IP Adresse deiner Fritzbox
  • Fritzbox Benutzername
  • Fritzbox Passwort

Download: wlanguest.txt (Rechte Maustaste – Ziel/Link speichern unter)

Auch diese Datei musst du von txt zu php umbenennen!

Das waren erstmal die Basics, damit du weißt, was du für PHP Scripte für deine Geräte schreiben musst! Die beiden Scripte oben dienen nur zur Veranschaulichung. Du benötigst natürlich ein Script welches zu deinem Gerät passt!

Kurz zusammengefasst: Erstelle dir eine Datei, die per URL einen Befehl entgegen nehmen kann, dein Gerät steuert und dir einen Status mit „0“ oder „1“ zurückliefert. Erledigt? Dann weiter zur Seite 2, hier beschreibe ich die Einrichtung deines Entwickler-Kontos bei Amazon.

5 KOMMENTARE

  1. Gute Beschreibung. Nur ist mir nicht klar geworden, wie ich meinen Skill dann nutze. Muss ich das neue Gerät in der Alexa-App erst hinzufügen und einrichten, oder sollte es sofort zur Verfügung stehen? Ich bin mir nicht sicher, ob mein Lambda-Code überhaupt startet. Kann ich da testweise eine Kontroll-Sprachausgabe einbauen?

    • Hallo Uwe, es fehlte noch eine Kleinigkeit in der Anleitung. Habe ich nun korrigiert (letzter Abschnitt). Erstelle ein Security Profile und fülle dann die Account Linking Seite aus. Anschließend in der Alexa App den Skill verknüpfen und nach neuen Geräten suchen.

  2. Ich gehe davon aus, dass ich den Skill zuerst in der Alexa-App zur Verwendung aktivieren muss. Das funktioniert leider nicht. Der Button wird kurz grau, dann springt er zurück auf „Zur Verwendung aktivieren“. Fehlen eventuell Berechtigungen? Der Abschnitt zur Rolle ist schwer nachvollziehbar.

    • Da hast du vollkommen Recht. Ich wollte den Beitrag eigentlich schon vor 2 Wochen aktualisieren. Sorry! Das habe ich nun nachgeholt. Im letzten Abschnitt findest du die gesamten Neuerungen, denn du musst tatsächlich noch ein Security Profile erstellen und dann einige Daten beim Account Linking eintragen. Dann sollte es aber funktionieren.
      Wäre nett wenn du dich kurz zurück meldest, wenn es geklappt hat.

  3. Ahh, so funktioniert das! Jetzt konnte ich die Geräte aktivieren. Warum „zulässige Originale“ die eigene Domain meint, bleibt wohl ein LWA-Geheimnis. Wieder ein Schritt weiter. Nur habe ich keine Kamera, also muss ich jetzt noch den Lambda-Code für mein Gerät anpassen. Aber danke erstmal!

HINTERLASSEN SIE EINE ANTWORT

Please enter your comment!
Please enter your name here