Automagic Premium steuert Fritzbox

Die Firma AVM bietet einige Produkte im Bereich Smarthome. Dazu zählen Steckdose, Heizungsregler und inzwischen sogar Glühbirnen. AVM war hier relativ früh dran, so dass meine ersten "Smarthome" Geräte DECT Steckdosen von AVM waren. Diese funktionieren bis heute super!
 
Die Steckdosen lassen sich durch die Fritzbox auch automatisch schalten, aber die Möglichkeiten sind bis heute recht begrenzt. Ich vergleiche das mit den Steckdosen des Homematic Systems auf das ich inzwischen umgestiegen bin.
 
Ich habe daher eine Möglichkeit gesucht den Automatisierungsgrad der Steckdosen zu erhöhen und diese an meine Homematic anzubinden. Dieser Artikel beschreibt den ersten Schritt zur Lösung:
 
Die Android App Automagic Premium steuert die Fritzbox
 
Die App läuft auf einem Andoird-Gerät und muss die Fritzbox erreichen. Bei mir ist das gegeben, weil ich ein Tablet zu Steuerung des Smarthomes habe das dauert im WLAN der Fritzbox.
 
Grundsätzlich meldet sich Automagic Premium dabei mit einem vorhandenen User und dem zugehörigen Passwort an der Fritzbox an und schaltet über Webservices die AVM FRITZ!DECT 200.
 
Der Flow in Automagic sieht dann wie folgt aus:
 
 
Zum einfacheren Nachbau habe ich noch die einzelnen Schritte im Detail aufgeführt:
 
HTMl Get 1:
 
 
Anschließend steht folgendes in der Variable response:
 
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<SessionInfo>
<SID>0000000000000000</SID>
<Challenge>fd1003f2</Challenge>
<BlockTime>0</BlockTime>
<Rights/>
</SessionInfo>
 
Bei diesem Aufruf ändert sich jedes mal die Challenge.
 
Script 1:
 
username = "test";
password = "test123";
challenge = findAll(response, "<Challenge>(.*)</Challenge>", true)[0][1]; chapass = challenge + "-" + hash(challenge + "-" + password, "UTF-16LE", "MD5");
url = "http://fritz.box/login_sid.lua?username={username}&response={chapass}"
 
Script 2:
 
sid = findAll(response, "<SID>(.*)</SID>", true)[0][1]; command = "http://fritz.box/webservices/homeautoswitch.lua?ain=123456789012&switchcmd=setswitchon&sid="; commandurl = command + sid;

Die Command URL ist dann der eigentliche Schaltbefehl.

Wichtig:
Damit das ganze funktioniert muss natürlich der Username und das Passwort angepasst werden. Zusätzlich muss die AIN angepasst werden. Die AIN findet man am einfachsten in der Weboberfläche der Fritzbox:


Damit lassen sich meine AVM FRITZ!DECT 200 zuverlässig mit Automagic Premium schalten.

Der eigentlich Schaltbefehl ist letztlich nichts weiter als ein HTTP-Befehl der einen Webservice aufruft.

http://fritz.box/webservices/homeautoswitch.lua?ain=123456789012&switchcmd=setswitchon&sid=0000000000000000
 
Folgende Befehl gibt es:
 
 
Ich habe bisher nur die Befehle zum Ein- und Ausschalten im Einsatz!
 
Hier noch ein Link zu AVM: https://avm.de/service/schnittstellen/
 
 
 
 

Drucken