Das Umsetzen der Zeitspanne ohne Strom erledigt die Python-Klasse. Der Code ab Zeile 24 läuft direkt nach dem Booten (etwa gestartet aus der Datei /etc/rc.local) und löscht vorsorglich alle Zeitpläne.
Unabhängig von diesem Beispiel hält die Klasse eine Reihe von weiteren Methoden bereit, wie etwa setRange(from,to,active=true). Diese Methode trägt eine Zeitspanne neu ein beziehungsweise löscht diese, ohne die existierenden Pläne zu löschen. Das ermöglicht, die Steckdose analog zur App für das Smartphone zu bedienen. Da die Edimax SP1101W die Daten speichert, gelingt sogar das Steuern sowohl mit dem RasPi als auch mit der App.
Listing 7
#!/usr/bin/python
import time
from ediplug import *
pf = PlugFinder(password='1234')
plugs = pf.search()
plug = plugs.values()[0]
# Strom aus in fünf Minuten, Strom an in einer Stunde
now = TPoint.now()
shutdownTime = now.createAfter(0,0,5)
bootTime = shutdownTime.createAfter(0,1,0)
# Programmieren der Zeitschaltuhr in der Dose:
# nur zwischen shutdownTime und bootTime gibt's keinen Strom
plug.setExclusiveState(shutdownTime,bootTime,active=False)
# System herunterfahren, bevor der Strom ausgeschaltet wird
os.system("sudo shutdown now")
# ----------- Nach dem Boot, etwa aus /etc/rc.local -------------
# pf = PlugFinder(password='1234')
# plugs = pf.search()
# plug = plugs.values()[0]
# plug.clearSchedule()
Fazit
Dank des Raspberry Pi nutzen Sie die Edimax SP1101W ganz ohne Überwachung und Kontrolle durch den Hersteller. Das ist nicht nur eine Frage des gesunden Misstrauens: Es kommt bekanntlich immer wieder einmal vor, dass ein Hersteller einen Cloud-Service einfach abschaltet und dadurch Hardware die Funktion verliert. Hier sorgt der RasPi für eine gewisse Sicherheit in Bezug auf die Investition.
Wer auf die Administration der Steckdose aus der Ferne nicht verzichten will, nutzt zähneknirschend die Smartphone-App. Als Alternative kommt das Steuern über eine SMS an den RasPi infrage – eine entsprechende Lösung haben wir Ihnen bereits in der vorigen Ausgabe vorgestellt [5].
Die Steckdose direkt aus dem Internet über einen durchgeschleiften Port anzusprechen, ist keine gute Idee, denn die Kommunikation verläuft unverschlüsselt. Ein VPN ins heimische Netz würde hier gegebenenfalls für mehr Sicherheit sorgen.
Für den ursprünglich geplanten Zweck als Wake-on-RTC-Ersatz eignet sich die Steckdose nicht optimal, da der zu kontrollierende Zeitraum mit einer Woche etwas kurz ausfällt. Solange der RasPi mindestens einmal die Woche bootet, stellt das aber keine echte Einschränkung dar.
Es bleibt zuletzt die Frage: Lohnt sich der Aufwand überhaupt? Die Steckdose zieht im ausgeschalteten Zustand 1 Watt, im Betrieb sogar 2 Watt. Es wäre möglich, dass es sich hier um einen Effekt beim Messen oder Runden handelt (zum Beispiel 1,4 Watt aus, 1,6 Watt an), aber der Verbrauch der Steckdose wirkt sich aus.
Für den RasPi alleine lohnt sich der Aufwand auf keinen Fall, es kommt also entscheidend auf den Verbrauch der angeschlossenen Peripherie an. Hängt etwa ein aktiver Hub am RasPi und darüber eine Festplatte sowie ein DVB-Stick, dann steigt der Verbrauch auf ein Vielfaches der 2 Watt, die der Plug alleine zieht.
Schade, dass es keinen offenen Zugang zum Betriebssystem der Steckdose gibt: Der eingebaute Rechner bringt ja offensichtlich genügend Leistung für den zwar kleinen, aber doch fähigen Webserver Lighttpd mit. Mit offener Software wäre es sicher möglich, weitere Aufgaben direkt an die Dose zu delegieren – und wenn es nur das Verwalten von Schaltzeitpunkten jenseits des Zeitraums von einer Woche wäre.
Infos
- Geräte steuern: Marc Staller, “Morgenstund”, RPG 05/2014, S. 60, http://www.raspi-geek.de/32598
- Einfacher Python-Code zum Steuern der Steckdose: https://gist.github.com/wendlers/a5fc0bf06bbe656c7291
- Steuern der Edimax-Dosen mit C#: https://github.com/contrequarte/SmartPlugSP2101W
- Python-Bibliothek zum Steuern von Edimax-Steckdosen: https://github.com/bablokb/ediplug
- SMS-Versand: Bernhard Bablok, “Robuster Oldie”, RPG 02/2016, S. 40, http://www.raspi-geek.de/36000






