Schalten und Steuern

Funksteckdosen mit dem Raspberry Pi nutzen

20.07.2014 von Thomas Springer
Ein Funkmodul für wenige Euro macht den Raspberry Pi zur heimischen Steuerzentrale, die über das Haus verteilte Funksteckdosen schaltet – bei Bedarf auch über das Netzwerk und mit dem Smartphone.

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.

Ungewöhnliche Raspberry Pi Projekte -
Raspberry Pi in der Praxis
Exotische Projekte rund um den Raspberry Pi.
Raspberry Pi in der Praxis
Kano: Bis auf den Bildschirm umfasst das über Kickstarter finanzierte Einsteigerset alles, um einen Computer mit dem enthaltenen Raspberry Pi zusammenzusetzen. Der Preis liegt bei 99 US-Dollar.
Raspberry Pi in der Praxis
Raspberry Pi als Internet- Radio: Als Player für eine Liste von vorbereiteten Streaming-URLs dient MPD. Dieser kann in diesem Projekt auch über die beiden Taster Radiostationen wechseln.
Raspberry Pi in der Praxis
H2O IQ: Das grüne Gehäuse beherbergt Feuchtigkeitssensor, Funkmodul und servogesteuerertes Ventil zur Bewässerung Ein Raspberry Pi dient als zentraler Bewässerungscomputer.
Raspberry Pi in der Praxis
Ein Gehäuse als PDF einfach ausdrucken: Aus Pappe lässt sich diese Einfassung namens „Punnet“ für den Raspberry Pi anfertigen, um die Platine vorerst provisorisch zu verstauen.
Raspberry Pi in der Praxis
Per Kopfdruck scannen und verschicken: Diese Scanner-Steuerung über das Raspberry Pi nimmt Dokumente über den USB-Port entgegen und leitet sie per E-Mail weiter.
Raspberry Pi in der Praxis
Hobby-Brauerei: Ein Mikro-Controller behält die Sensoren der Fermentierung im Blick, und ein Raspberry Pi sorgt für die richtige Temperatur während des Brauens.
Raspberry Pi in der Praxis
Lego Mindstorms mit dem Raspberry Pi als Schaltzentrale: Das Modul Brickpi vereinigt die Robotik-Plattform von Lego über eine separate Aufsteck-Platine mit dem Raspberry Pi.
Raspberry Pi in der Praxis
Kameramodul aus einer USB-Webcam: Viele der Billigkameras verstehen sich auch mit dem Raspberry PI beziehungsweise mit der dort installierten Linux-Distribution Raspbian.
Raspberry Pi in der Praxis
Raspberry Pi im Höhenrausch: Das Gehäuse in der passenden Form einer Himbeere (englisch „Raspberry“) schützt die Elektronik gegen die rauen Minustemperaturen auf 4 000 Metern.
Raspberry Pi in der Praxis
Zeitraffer und Dolly-Steuerung mit dem Raspberry Pi: Für beeindruckende Videos aus Einzelbildern lässt dieser Aufbau eine Kamera mit Motorsteuerung langsam über eine Schiene gleiten.
Raspberry Pi in der Praxis
Fernbedienung für den Raspberry Pi: Anstatt einen USB-Port mit einem IR-Receiver zu belegen, kann ein Sensor auch direkt an den GPIO-Pins der Platine angeschlossen werden.
Raspberry Pi in der Praxis
Blick über Südwest-England aus 40 Kilometern Höhe: An einem Wetterballon reiste der Raspberry Pi samt Kamera und CB-Funk-Transmitter in die Stratosphäre und wurde nach der Landung über GPS-Ortung geborgen.
Raspberry Pi in der Praxis
Tablet mit dem Raspberry Pi: Als Display kommt ein kapazitiver Touchscreen mit 10 Inch Bildschirmdiagonale zum Einsatz. Das Gehäuse besteht aus Birke und Kohlefaser und der Rahmen ist passgenau aus Sperrholz gefräst.

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.

Dankbares Einstiegsmodell: Die verbreitete Funksteckdosen-Variante mit zehn Dipschaltern ist das am einfachsten anzusteuernde und empfehlenswerte Modell zur Hausautomatisierung.
Foto:



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“

Belegung der GPIO-Pins: Diese hat sich zwischen den Raspberry-Pi-Revisionen und Versionen geringfügig geändert. Der hier vorgestellte Aufbau funktioniert aber mit allen Versionen des Raspberry Pi.



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.

Schalten der Funksteckdosen über den Browser: Eine simple Weboberfläche zum Ein- und Ausschalten von Funksteckdosen ist auf dem Raspberry Pi in wenigen Minuten installiert.

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.