Funksteckdosen sind im Dreier- oder Sechserpack samt Fernbedienung in fast jedem Baumarkt erhältlich, oft schon für wenige Euro. Für sich alleine sind die Steckdosen begrenzt interessant: Die mitgelieferte Fernbedienung ist nie zur Hand, wenn man Sie braucht, und ist so klein, dass sie gerne zwischen den Sofaritzen verschwindet. Mit einem günstigen Sender und ein wenig Software machen Sie den Raspberry zur Schaltzentrale, die Steckdosen per Browser, Makro oder Handy von überall her steuert. Was Sie dafür benötigen, ist ein Funkmodul mit 433 MHz. Ein Set mit Sender und Empfänger kostet bei Ebay oder Amazon zwischen 1 Euro (aus China) und rund 4 Euro (aus Deutschland) und ist über eine Suche nach „RF Link Arduino“ schnell zu finden. Die Sets werden in erster Linie für den Arduino-Mikro- Controller verkauft, funktionieren aber mit einer entsprechenden Software-Bibliothek auch am Raspberry Pi.
Auswahl: Nicht jede Funksteckdose ist geeignet
Funksteckdosen gibt es inzwischen nicht nur optisch, sondern auch technisch in großer Vielfalt. Fast alle Arten lassen sich auch mit dem Raspberry steuern. Am einfachsten und zuverlässigsten funktionieren Steckdosen, die sich über zehn Dipschalter einstellen lassen, die hinter einer kleinen Klappe mit kleiner Kreuzschlitzschraube verborgen sind. Steckdosen ohne Dipschalter, insbesondere die aktuell oft als Billigware verkauften selbstlernenden Dosen, lassen sich über den Raspberry oft nur nach längeren Versuchen ansteuern und erfordern je nach Hersteller Software-Anpassungen auf dem Raspberry Pi.
Ein weiterer Nachteil der Billigware ist, dass viele Modelle nach einem Stromausfall oder auch nur einem Wechsel der Steckdose ihre Codierung vergessen und dann neu eingelernt werden müssen. Wir raten deshalb deshalb zu Steckdosenmodellen, das sich mit zehn Dipschaltern programmieren lassen. Je nach Hersteller sind die Dipschalter mit 1 bis 10 oder mit 1 bis 5 und A bis D beschriftet – beide Versionen sind gleichermaßen nutzbar. Aktuell kostet ein Dreierset etwa bei Online-Versandhäusern rund 10 Euro.
Zunächst sollten Sie Fernbedienung und Steckdosen aufeinander abstimmen. Dazu wird an den fünf Dipschaltern der Fernbedienung und den linken fünf Dipschaltern der Steckdosen der Systemcode eingestellt, über den die Dosen erreichbar sind. Vorsicht: Die Verwendung von 00000 oder 11111 als Systemcode bietet gute Chancen, dass einer Ihrer Nachbarn denselben Code verwendet und damit unter Umständen Ihre Steckdosen schaltet. Funktioniert die Steckdose mit der Fernbedienung, kann die Einrichtung des Raspberry Pi als Schaltzentrale beginnen.
Schalten übers Netz: Automatisch per Script
Die Steckdosen über eine SSH-Konsole schalten zu können ist ein nettes Spielzeug, für eine echte Anwendung aber etwas unpraktisch – weder kann man übers Netz schalten noch kann man externe Geräte einbinden. Interessanter wird es, wenn man den in Rasberry Remote enthaltenen Server startet. Dazu müssen Sie den Quellcode etwas anpassen. Verwenden Sie den Befehl nano ~/raspberry-re mote/daemon.cpp und ändern Sie die Zeile „nPlugs=10“ zu „nPlugs=1110“
Standardmäßig ist der Server im Netzwerk über den Port 11337 erreichbar. Wem Sie dies ändern wollen, tragen Sie eine andere Nummer hinter „Port“ im übersichtlichen Quellcode von daemon.h ein. Mit sudo make daemon wird der Hintergrundprozess (Daemon) dann kompiliert. Mit
sudo ./daemon >/dev/null &
starten Sie den Server als Hintergrundprozess. Bedient wird der Dämon über eine simple TCP-Netzwerkverbindung, zum Beispiel über Netcat oder ähnliche Programme. Um beispielsweise eine Steckdose anzuschalten, geben Sie auf der Kommandozeile an:
echo -en "Codierung"|nc -w 1 <ip> <port>
Als IP geben Sie die IP-Nummer ihres Raspberry Pi an und als Port den TCP-Port, auf den der Server lauscht. „Codierung“ besteht aus dem Systemcode wie bei send, gefolgt von „0“ und der Dosennummer. In unserem Fall wäre das etwa
echo -en "1000101"|nc -w 1 192.168.178.25 11337
wobei der Parameter „-w“ dafür sorgt, dass Netcat die Verbindung zum Dämon nach einer Sekunde selbsttätig wieder trennt. Damit ist die Funksteckdose also schon mal am Netz und kann von beliebigen Applikationen ein- und ausgeschaltet werden, sofern diese TCP-Socket- Verbindungen aufbauen können. Sinnvoll ist diese Art der Ansteuerung in erster Linie für Script-Sprachen wie Python oder Perl, die man auf diese Weise zum Steuern von Funksteckdosen über das lokale Netzwerk oder das Internet verwendet. Es besteht jedoch ein gewisses Risiko, wenn man den Port des Dämons für das gesamte Internet freigibt. Ein Missbrauch könnte unter Umständen das Raspberry-Pi- System samt dem dahinterliegenden Netzwerk für einen Angreifer offenlegen. Wenn Sie das System also in einem fremden Netz oder dem Internet über TCP-Sockets erreichbar machen, sollten Sie unbedingt den Zugriff über IP-Tables oder ein VPN auf autorisierte Kommunikationspartner beschränken.
Universelles Schalten: Ein und Aus per Browser
Die Socket-Verbindung des Dämons bringt die Funksteckdosen ans Netz, die Bedienung erfordert aber immer noch ein wenig Programmierung oder den Aufruf hässlicher Befehlszeilen auf der Konsole. Raspberry Remote hat auch hier Abhilfe: Im Verzeichnis „./webinterface“ finden Sie eine Weboberfläche, mit der man die Funksteckdosen in den Browser bringt. Die Weboberfläche benötigt einen Webserver wie Apache und PHP. Dies lässt sich mit dem Kommando
sudo apt-get install apache2 php5
installieren, falls noch nicht vorhanden. Bringen Sie dann das Script-Verzeichnis in das Wurzelverzeichnis des Webservers:
mv ~/raspberry-remote/ webinterface/*/var/www/funk
und passen Sie dort die Konfigurationsdatei an:
nano /var/www/funk/config.php
Wenn der Dämon auf dem selben Raspberry Pi läuft wie der Webserver, setzen Sie
$target=$_SERVER['SERVER_ADDR']
Laufen Webserver und Dämon auf verschiedenen Rechnern, geben Sie hier die IP-Nummer des Dämons an, den der Webserver ansprechen soll. Die Variable „$port“ setzen Sie auf die Portnummer, unter welcher der Dämon erreichbar ist. Unter „$config“ können Sie in einem Array beliebig viele Schaltaktoren definieren. Sie geben wie gehabt als Parameter den Systemcode, die Dosennummer und eine frei wählbare Textbeschreibung für diese Dose an. Nun können Sie über den Browser unter http://<ip>/funk das Kommando-Interface zum Schalten aufrufen.
Mit der Weboberfläche ergibt sich die Möglichkeit, das Schalten auf anderen, tastaturlosen Geräten wie etwa einem Smartphone oder einem Tablet zu erledigen. Sie können dafür einfach ein Lesezeichen auf dem Desktop des Gerätes hinterlegen. Für kleinere Displays können Größe und Layout der Schalterquadrate im Quellcode leicht verändert werden, so dass bei Bedarf auch mehr Geräte auf das Handydisplay passen.
Auch über das Webinterface kann nicht nur per Fingerzeig oder Mausklick, sondern auch ganz direkt geschaltet werden. Geben Sie dafür einfach gleich beim Aufruf die Parameter in der URL an. Ein Beispiel:
http://<ip>/funk/index.php?group= 10001&switch=01&action=1
Die Parameter sind dieselben wie oben, „action= 1“ heißt, dass die Steckdose eingeschaltet wird. Dafür gibt es dafür viele nützliche Anwendungen: So können Sie etwa den Strom an Peripheriegeräten wie Scanner, Drucker oder externer Festplatte einschalten, indem Sie die URL in einer Verknüpfung ablegen Tipp: Eine alternative Methode mit Android- App und Sprachsteuerung ist in diesem Blog beschrieben.
Dieser Artikel basiert auf einem Beitrag der TecChannel-Schwesterpublikation PC-Welt.