Alexa Skill zur Steuerung der Fritzbox (Gäste WLAN)


Wir haben uns einen sogenannten Custom Skill erstellt, mit dem es möglich sein soll, gewisse Dinge der Fritzbox zu steuern. In diesem Beispiel demonstrieren wir dies am Beispiel des Gäste WLAN. Der Skill wird am Ende das WLAN ein- und ausschalten können und deinen Gästen das Passwort vorlesen können. Natürlich wäre es mit diesem Skill auch möglich, andere Einstellungen auf der Fritzbox zu verändern oder Dinge abzufragen wie z.B. die Anrufliste oder aktuelle Datenverbindung usw.! In diesem Beispiel geht es jedoch nur um das Gäste WLAN!

wichtige Dinge vorab

Wir müssen allerdings ein paar Dinge im Voraus klären:

  • du benötigst dazu ein Developer Konto bei Amazon, da dieser Skill nur für dich sein wird (kein offizieller Skill im Store)
  • du benötigst außerdem einen Webserver mit PHP (z.B. eine Synology, Raspi, etc.), der bei dir zu Hause steht und von extern erreichbar ist
  • den Skill solltest du nicht zur Freigabe in den Store einreichen. Zum einen wird er in diesem Stadium sowieso nicht freigegeben, zum anderen ist er genau auf ein Gerät ausgerichtet – deine Fritzbox!

Sind diese Dinge klar, können wir auch loslegen!

FRITZ!Box Benutzer erstellen

Um die Funktion zur Verfügung zu stellen, erstelle dir zunächst einen neuen Fritzbox User. Dieser wird für den externen Zugriff benötigt (System->FRITZ!Box-Benutzer).

Fritzbox Benutzer Einstellungen
Neuen Benutzer auf der Fritzbox erstellen

Dateien auf deinem Webserver

Anschließend erstellst du 2 Dateien (wlan_ein.php / wlan_aus.php) auf deinem Webserver. Die 2 Dateien haben den folgenden Inhalt:

wlan_ein.php
wlan_aus.php

*Credits liegen bei jemand anderes für diese beiden Dateien* – diesen Quellcode habe ich irgendwo mal in den weiten des www gefunden. Danke an den unbekannten Ersteller für’s teilen!

Die Dateien sind hier zum Download mit der Endung “txt” gespeichert. Klicke mit der rechten Maustaste auf den Link und wählen dann “Ziel speichern unter”. Anschließend gib den Dateien wieder die Endung “php”!

Generell unterscheiden sich beide Dateien nur in der letzten Zeile (0 und 1). Mit entsprechenden Kenntnissen kannst du diese Dateien auch zusammenfassen. Für das Beispiel soll es aber der Einfachheit halber mit diesen beiden Dateien demonstriert werden.

In den Dateien musst du natürlich deinen neuen Benutzer und das Passwort hinterlegen!

Versuche nun die Dateien im Browser über deine externe URL zu erreichen. In unserem Fall wäre dies eine https Domain (https://sub.meinServer.de/wlan_ein.php). Kontrolliere anschließend auf der Fritzbox, ob dein Gäste WLAN nun aktiviert wurde und teste im Anschluss das deaktivieren durch den Aufruf der zweiten Datei.

Bis hierher sollte das alles noch kein Problem gewesen sein.

Kommen wir nun also zum nächsten Schritt, erstelle dir eine Lambda Funktion für den Alexa Skill.

Lambda Funktion erstellen

Erstelle dir eine neue Lambda Funktion unter https://aws.amazon.com/de/console/.

Wähle hier wie im ersten Bild zu sehen ist, die Vorlage “Alexa Fact Skill” (4. Karte) und gib deiner neuen Funktion einen Namen und wähle als Rolle “lambda_basic_execution”. Klicke nun ganz unten auf “Create function”.

Auf der nächsten Seite kannst du nun den Code ändern. Markiere den gesamten Quellcode und entferne diesen…

Benutze nun den Code aus der folgenden Datei: Lambda_Function und füge diesen per Copy& Paste ein.

Passe zuvor noch die URL zu deinem Webserver und das WLAN Passwort, welches Alexa vorlesen soll, an! Dies findest du alles ganz am Anfang der Datei. Sollte dein Webserver nur über “http” anstatt “https” erreichbar sein, dann tausche die erste Zeile in der Funktion getValue aus:



Suche nach:
var https = require(‘https’);
Ersetze mit:
var https = require(‘http’);

Das war es fast!

Scrolle nochmal nach ganz oben und wechsele auf das Register “Triggers”. Füge hier einen neuen Trigger hinzu und wähle “Alexa Skills Kit”

Nun kopierst du dir noch die ARN am oberen Rand (wird später benötigt) und klickst auf “Save and Test”.

Alexa Skill erstellen

Nun geht es darum, den Skill für Alexa bekannt zu machen. Öffne dazu die Seite https://developer.amazon.com/ und gehe zu “Alexa->Alexa Skills-Kit” und klicke auf “Add a New Skill”. Vergebe hier einen Namen für deinen Skill und einen Invocation Name. Der letztere dient dazu wie du später deinen Skill aufrufen möchtest (Alexa, öffne “Invocation Name”). Nenne es Gäste WLAN, Fritzbox oder wie auch immer du den Skill später verwenden möchtest!

Weiter geht es auf das zweite Register “Interaction Model”.

Nutze hier den Skill Builder Beta und füge dann folgendes in den “Code Editor” ein.

Inhalt für CodeEditor

Anschließend noch auf “Build Model” um die ganzen Sachen zu speichern.

Im dritten Register “Configuration” ist nun noch die Lambda ARN zu hinterlegen. Diese hast du dir ja vorhin kopiert. An den anderen Einstellungen muss nichts geändert werden.

Weiter zum letzten Schritt, dem Register “Test“. Hier einfach den Schalter umlegen, sofern das nicht automatisch geschehen ist.

Nun kannst du den Skill mit deiner Alexa ausprobieren.
Sage dazu einfach “Alexa, öffne Gäste WLAN [bzw. den Namen den du vergeben hast]”. Im Skill stehen dir die Befehle “Menü”, “WLAN einschalten”, “WLAN ausschalten” und “Passwort” zur Verfügung.

Viel Spaß damit! Solltest du den Skill weiter ausbauen, dann freuen wir uns über Rückmeldungen, was du damit alles so realisiert hast. Gerne auch ein Video dazu!

Bitte habe Verständnis, das wir bei Problemen nicht weiter unterstützen können! Ein gewisses Grundverständnis setzen wir hier einfach voraus. Danke!

 

Letzte Aktualisierung am 23.09.2018 / Affiliate Links / Bilder von der Amazon Product Advertising API