433MHz Funksteckdosen mit dem Raspberry Pi fernsteuern

RaspberryPi2 mit 433MHz Modul

Funksteckdosen gibt es mittlerweile schon für kleines Geld beim Baumarkt um die Ecke. Damit lassen sich elektrische Geräte mit Hilfe einer Fernbedienung fernsteuern, besser gesagt, die Geräte lassen sich damit an- und ausschalten. Die Funktion der Fernbedienung kann mit einem passenden Modul auch vom Raspberry Pi übernommen werden, damit lassen sich günstige 433MHz Steckdosen in die eigene Home-Automation integrieren.

Benötigte Komponenten

Voraussetzung ist natürlich ein bereits konfigurierter Raspberry Pi. Um die Funksteckdosen steuern zu können benötigen wir noch folgende Zusatzkomponenten:

Installation der Komponenten

Als Erstes trennen wir sämtliche Verbindungen mit unserem Raspberry Pi, vor allem das Netzkabel! Jetzt öffnen wir den Deckel des Gehäuses, dass wir an die GPIO-Anschlüsse kommen. Die GPIOs sind die 26 kleinen Pins auf dem Board des PIs. Mit drei Jumperkabeln verbinden wir das 433MHz Sende-Modul wie folgt mit dem Pi:

RaspberryPi2 Jumper Kabel

Nachfolgend eine schematische Darstellung. Wichtig ist, dass die Perspektive so gewählt wurde, dass das 433MHz Sende-Modul mit der Spule auf dem Kopf liegt.

RaspberryPi2 Jumper Schema

Sind alle drei Jumperkabel korrekt verbunden, so können wir die restliche Peripherie wieder an den RaspberryPi anschließen und ihn mit Strom versorgen.

Installation der Software

Um das 433MhZ Sende-Modul dazu zu bewegen, dass wir es mittels der GPIOs ansprechen können, müssen wir noch die passende Software (wiringPi und raspberry-remote) installieren. Im ersten Schritt aktualisieren wir die Paketliste via:

sudo apt-get update

Danach installieren wir die Updates aus der Liste:

sudo apt-get upgrade

Um wiringPi und raspberry-remote installieren zu können, benötigen wir git auf unserem RaspberryPi, solltet ihr git bereits für ein vorhergehendes Projekt installiert haben, könnt ihr den nächsten Schritt überspringen:

sudo apt-get install git-core

Nach der Installation von git können wir das Repository von wiringPi auf unsere lokale Maschine klonen:

git clone git://git.drogon.net/wiringPi

Danach wechseln wir in das neu erstelle Verzeichnis:

cd wiringPi

Jetzt muss wiringPi aus dem Source Code kompiliert werden, das übernimmt build:

./build

Anschließend wechseln wir wieder in das übergeordnete home directory:

cd ..

Nun können wir raspberry-remote installieren, dazu klonen wir das Repository:

git clone git://github.com/xkonni/raspberry-remote.git

Im letzten Schritt kompilieren wir auch raspberry-remote aus dem Source Code, dazu wechseln wir in das neue Verzeichnis und kompilieren das Tool via make:

make send

Die Software ist jetzt installiert und können uns dem Konfigurieren der Funksteckdosen widmen.

Konfiguration der Funksteckdosen

Die Funksteckdosen von ELRO haben hinten eine kleine Klappe. Schraubt man sie auf, so sieht man acht kleine Schalter:

Elro Steckdose

Die ersten fünf Zahlen geben den sogenannten “Hauscode” an, auf einem “Hauscode” können vier verschiedene Geräte geschaltet werden. Die hinteren vier Buchstaben geben die Geräte an. Bei der gezeigten Steckdose ist der Hauscode folglich “11111” und die angesteuerte Steckdose heißt “A”, also “1”. Will man eine weitere Steckdose mit dem gleichen Hauscode ansteuern, so müsste man den Schalter bei “B” auf 1 stellen, bei A, C, D und E auf 0.

Mit diesem System könnt ihr folglich mehrere Funksteckdosen in Euer Netzwerk aufnehmen, es ist auch möglich den gleichen Code an unterschiedliche Steckdosen zu vergeben, diese werden dann gleichzeitig geschaltet, sobald sie den Befehl empfangen.

Ansteuern der Funksteckdosen

Um die Funksteckdose(n) jetzt anzusteuern, wechselt man in das Verzeichnis von raspberry-remote. Hier können jetzt die Funksteckdose mittels des Hauscodes und der passenden Steckdosen-Kennung angesteuert werden. In meinem Beispiel schalte ich die oben beschrieben Steckdose mittels dem folgenden Befehl:

sudo ./send 11111 1 1

Ändert man die Befehlskette am Ende auf eine 0, so schaltet man die entsprechende Steckdose wieder aus:

sudo ./send 11111 1 0

Hätte man beispielsweise eine weitere Steckdose mit dem gleichen Hauscode auf Kanal B, so könnte man sie mit folgendem Befehl anschalten:

sudo ./send 11111 2 1

Wichtig ist, dass man sich im Verzeichnis von raspberry-remote befinden muss, um den Steuerungsbefehl abzusetzen. Wenn man nicht immer extra in das Verzeichnis von raspberry-remote wechseln möchte, so kann mit folgendem Befehl die Steuerung auslöst werden (hier schalten wir wieder Steckdose A an):

sudo /home/pi/raspberry-remote/send 11111 1 1

Anmerkungen

433MHz Steckdosen sind sehr günstig erhältlich, bergen jedoch auch einen erheblichen Nachteil: sie sind selbst stateless. Es kann nicht festgestellt werden, ob eine Steckdose gerade ON oder OFF ist. In unserem Beispiel haben wir keinen Rückkanal, da der Client (die Steckdose) nur einen Empfänger besitzt und somit weder zurückgeben kann, ob die entsprechende Steckdose gerade ON oder OFF ist, noch ob sie den Schaltbefehl wirklich erhalten hat. Es ist zudem ratsam, den Befehl mehrmals kurz hintereinander zu senden, um sicherzustellen, dass der Befehl wirklich bei der Steckdose ankam.

Möchte man ein stateful Environment aufbauen, lohnt es sich, sich mit WLAN Steckdosen auseinanderzusetzen. Diese sind mittlerweile auch relativ günstig erhältlich und können, wenn auch mit etwas Mehraufwand verbunden, einfach in ein Home-Automation Setup eingebunden werden.