Danach kommt die Steckdose in die Wand, und Sie warten, bis die Edimax durch eine langsam rot blinkende LED den Installationsmodus signalisiert. Android-Nutzer wählen dann die Dose direkt in der App aus, als Nutzer von iOS-Geräten wechseln Sie erst in das durch die Dose aufgespannte Funknetz.
Anschließend erlaubt die App das Setzen der SSID und des Passworts des eigenen WLANs. Nach einem Neustart meldet sich die Edimax direkt im WLAN an, verbindet sich mit der Edimax-Cloud und erhält von dort (falls die direkte Kommunikation zwischen Smartphone und Dose nicht klappt) die Schaltbefehle beziehungsweise die Zeitpläne.
Möchten Sie sich nicht in die Abhängigkeit einer externen Firma begeben und sehen das Überwachen aller Vorgänge kritisch, sollten Sie per Zugangskontrolle im Router der Steckdose den Kontakt ins Internet verbieten. Üblicherweise gelingt das über eine Negativliste von sogenannten MAC-Adressen (Hardware-Adresse des WLAN-Moduls in der Steckdose).
Ohne Zugang ins Internet ist allerdings die Smartphone-App ebenfalls nutzlos, aber Datensicherheit und Bequemlichkeit lassen sich nun mal nur in seltenen Fällen vereinen. Zum Glück kann der Raspberry Pi alle sonst von der Cloud bereitgestellten Funktionen übernehmen.
Kommunikation
Die Edimax SP1101W verfügt über einen eingebauten Webserver, es werkelt dort der bekannte kleine Lighttpd. Sie steuern die Steckdose über sogenannte HTTP-Post-Requests. Ein beliebiges Skript beziehungsweise Programm (etwa die zitierte App) schickt die Befehle verpackt in XML an den Webserver und bekommt die Antwort ebenfalls als XML zurück.
Um die Steckdose zu aktivieren, kopieren Sie die Zeilen aus Listing 1 in die Datei an.xml und rufen danach das folgende Kommando auf:
$ curl [email protected] http://admin:[email protected]:10000/smartplug.cgi
Falls Sie das Programm Curl noch nicht installiert haben, finden Sie es wie üblich in der Paketverwaltung. In der URL passen Sie die IP-Adresse der Steckdose an Ihr lokales Netz an, ersetzen also 192.168.1.4 mit der korrekten Adresse in Ihrem LAN. Diese finden Sie normalerweise in einer Übersicht im Router – diese führen Buch über angemeldete Geräte und deren Adressen. Haben Sie bei der ersten Konfiguration das Passwort der Steckdose geändert, ersetzen Sie 1234 durch den entsprechenden Wert.
Listing 1
<?xml version="1.0" encoding="utf-8"?>
<SMARTPLUG id="edimax">
<CMD id="setup">
<Device.System.Power.State>ON</Device.System.Power.State>
</CMD>
</SMARTPLUG>
Analog funktionieren das Ausschalten (hierzu setzen Sie in der vierten XML-Zeile ein OFF statt des ON ein) und diverse weitere Befehle. Neben den Setup-Kommandos (Zeile 3: id="setup") gibt es Kommandos zur Abfrage mit id="get" als Attribut. Mit dem XML-Format aus Listing 2 gibt die Steckdose den aktuellen Status zurück.
Listing 2
<?xml version="1.0" encoding="UTF8"?>
<SMARTPLUG id="edimax">
<CMD id="get">
<Device.System.Power.State></Device.System.Power.State>
</CMD>
</SMARTPLUG>
Damit können Sie bereits auf einen Teil der Funktionen der Edimax-Steckdose zugreifen. Da die Befehle und damit die XML-Dateien statisch ausfallen, läge es nahe, es beim Skripting mit Curl zu belassen. Das Steuern nach einem Zeitplan ist aber etwas komplexer, weil hier erst eine Kodierung stattfindet – deshalb weichen Sie dazu auf Python aus.
Zeitsteuerung
Die Smartplug SP1101W unterstützt Zeitpläne sowohl über programmierte Schaltzeitpunkte als auch durch eine Art Stundenplan. Widersprechen sich die Schaltzeitpunkte und der Stundenplan, so sticht der (in der App übrigens unsichtbare) Stundenplan. Warum Edimax die Daten doppelt speichert, ließ sich im Test nicht nachvollziehen. Da aber normalerweise das Steuern rein über die App passiert, stellt das in der Praxis kein Problem dar.
Für jeden Wochentag getrennt legen Sie fest, wann der Strom fließt und wann nicht (Abbildung 2). Das ist zwar einerseits nicht optimal, denn auf diese Weise lässt sich der Zeitpunkt für den Start nur innerhalb der kommenden sieben Tage festlegen; andererseits genügt das aber den Anforderungen vieler Einsatznischen. Listing 3 zeigt die Abfrage des aktuell gespeicherten Plans, Listing 4 die (um einige Nullen gekürzte) Antwort des Webservers.

Abbildung 2: Der Zeitplan – hier im Screenshot der Android-App – erlaubt es Ihnen, die Zeitpunkte für Anschalten und Abschalten festzulegen.
Listing 3
<?xml version="1.0" encoding="UTF8"?>
<SMARTPLUG id="edimax">
<CMD id="get">
<SCHEDULE/>
</CMD>
</SMARTPLUG>





