Wer nach Steckdosen sucht, die sich über das Netzwerk schalten lassen, wird schnell feststellen, dass das ein teueres Vergnügen sein kann. Wer aber einen Raspberry Pi besitzt, kann mit ein wenig Basteln eine eigene, flexible Lösung bauen, mit der sich z.B. Steckdosen fernsteuern lassen.

Das Prinzip ist dabei relativ einfach: Anstatt für jedes zu schaltende Gerät eine Steckdose mit Netzwerkschnittstelle zu kaufen, wird der Raspberry mit einem Funksender und -empfänger ausgestattet, so dass er einfache 433MHz Funksteckdosen schalten kann. Über ein Web-Frontend auf dem Pi werden über das Lokale Netzwerk z.B. per Handy die Steckdosen ein und ausgeschaltet.

Bei meiner Recherche bin ich über das pilight-Projekt gestolpert, das genau hierfür entwickelt wurde. pilight ist damit die ideale Grundlage für das Bastelprojekt “Netzwerksteckdose” und kann später bei Bedarf über ein Plugin sogar auch in komplexe Heimautomatisierungslösungen wie FHEM eingebunden werden.

Hardware

Damit pilight funktioniert muss an den Raspberry ein Sender (und am Besten auch ein Empfänger) angeschlossen werden, damit der Pi mit den Steckdosen kommunizieren kann.

433MHz Sender und Empfänger für den Pi

Beim Kauf der Funkmodule ist allerdings etwas Vorsicht geboten. Bei einigen Modellen lässt die Reichweite sehr zu Wünschen übrig. Auf der pilight-Seite gibt es eine Übersicht welche Sender und Empfänger zu empfehlen sind.

Wer auf Nummer sicher gehen will, kann über den pilight-Shop gleich ein komplettes Set kaufen. Das erspart nicht nur unnötige Fehlkäufe und lange Versandzeiten aus China, sondern unterstütz auch  das pilight-Projekt. Hierbei reicht eigentich das Sender & Receiver-Kit ohne Band-Passfilter für die ersten Versuche. Wird der Empfänger jedoch ohne einen Band-Pass-Filter betrieben, so werden alle Daten die der Receiver empfängt  ungefiltert am GPIO-Pin des Raspberry Pi weitergeleitet. Aus all diesen Daten muss der Pi dann die richtigen Daten heraussuchen und dekodieren. Mit einem Band-Pass-Filter wird bereits eine erste Filterung der eingehenden Daten vorgenommen und von vorne herein viel weniger Daten an den Pi durchgereicht. Daher wird mit einem Band-Pass Filter deutlich weniger CPU-Leistung verbraucht als ohne (ca. 1/10).

Wer sich also nicht vor kleineren Lötarbeiten zurückschreckt sollte direkt das Komplett-Paket im pilight-Shop bestellen.

Devices

Neben Sender um Empfänger für den pilight müssen natürlich auch noch Steckdosen besorgt werden, die mit dem Pi über funk geschaltet werden können. Hier ist pilight relativ flexibel und unterstützt Protokolle von unterschiedlichen Marken. Hier werden bis jetzt eigentlich nur Geräte unterstützt , die mit 433MHz senden.

Ich verwende folgende Steckdosen erfolgreich zusammen mit pilight:

  • Elro AB440S Funksteckdosen
  • KlikAanKlikUit AGDR-200 Dimmer für Außensteckdose

Falls Du schon Funksteckdosen besitzt, lohnt sich aber der Blick in das pilight-Wiki. Hier findet sich eine Übersicht welche Protokolle und somit auch Geräte unterstütz werden. Mit etwas Glück werden vielleicht auch schon die bereits vorhandenen Steckdosen unterstützt. Selbst wenn der Hersteller in der Liste nicht auftaucht, lohnt sich ggf. ein Test mit der mitgelieferten Fernbedienung, da einige Protokolle von unterschiedlichen Herstellern genutzt werden. Wie mit pilight-receive das Protokoll von unterstützten Steckdosen ermittelt werden kann beschreibe ich im zweiten Teil der Artikelreihe.

Hardware anschließen

Damit der Raspberry die Steckdosen schalten kann, muss mindestens der Funksender angeschlossen werden. Die Konfiguration von pilight ist jedoch deutlich einfacher wenn auch einen Empfänger angeschlossen wird. Wird auf den Band-Pass-Filter verzichtet und sollen nur Sender und Empfänger angeschlossen werden, so muss noch nicht mal gelötet werden. Die Komponenten können einfachmittels Steckbrücken angeschlossen werden (siehe Abbildung 1).

Warnung: Die Komponenten sollten nur dann an den GPIO-Header des Raspberry angeschlossen werden, wenn dieser ausgeschaltet ist. Ansonsten kann der Raspberry beschädigt werden.

Wenn auch noch die Temperatur erfasst werden soll, so kann ein DHT22-Sensor integriert werden. Der ca. 5 kOhm Widerstand zwischen Daten-PIN des DHT22 und 5 V des Raspberry sorgt dafür, dass die Daten korrekt ausgelesen werden (siehe Abbildung 2).

Wer vor ein wenig Löten nicht zurückschreckt, der sollte auch den von pilight empfohlenen Band-Pass-Filter integrieren. Wenn das oben genannte Komplettpaket von der pilight-Web-Seite bestellt wurde, dann kommt das Kit mit allen Bauteilen und einer sehr übersichtlichen Anleitung, wie der Filter zusammengelötet wird. Mit Filter werden die Komponenten wie in Abbildung 3 angeschlossen.

Anmerkung: Die PINs des Schnittstelle am Raspberry Pi haben auf unterschiedlichen Webseiten jeweils auch eine unterschiedliche Bezeichnung. Beispielsweise nutzt die Wiring Pi Bibliothek eine komplett eigene Bezeichnung der PINs. Das ist gerade am Anfang verwirrend. Eine gute Übersicht der unterschiedlichen PIN-Bezeichnungen findet sich unter http://pi.gadgetoid.com/pinout.

Zusammengebaut sieht das Ganze bei mir so aus:

Installation von pilight

Da es ein pilight-Paket gibt, ist die Installation denkbar einfach. Zunächst muss folgende Zeile in /etc/apt/sources.list ergänzt werden, damit per apt auf das pilight-Repository zugegriffen werden kann:

deb http://apt.pilight.org/ stable main

Danach muss der Schlüssel des pilight-Repository für die Signatur-Überprüfung installiert werden:

wget -O - http://apt.pilight.org/pilight.key | apt-key add -

Nun kann pilight per apt-get installiert werden:

apt-get update
apt-get install pilight

Wird der Band-Pass-Filter eingesetzt, so sollte auch das Tool zum Update der Filter-Software installiert und die Firmware aktualisiert werden. Dabei sollte vor der Aktualisierung der Firmware unbedingt geprüft werden, ob der Band-Pass-Filter korrekt angeschlossen ist (s.o.).

apt-get install pilight-firmware
pilight-flash -f /etc/pilight/pilight_firmware_t45_v3.hex
service pilight restart

Jetzt fehlt eigentlich nur noch die Konfiguration der pilight-Software. Da diese etwas umfangreicher ist, habe ich mich entschlossen die Konfiguration in den nächsten Tagen in einem zweiten Teil zu veröffentlichen.