Funksteckdosen mit dem Raspberry schalten


15.03.2016  |  Smarthome Server, Tutorial

Erster Schritt in Richtung Haussteuerung

Der erste Schritt, den viele in Richtung Smarthome bzw. Haussteuerung gehen, ist das Schalten von Funksteckdosen. Und das nicht ohne Grund. Zum einen sind die benötigten Teile recht günstig (ca. 15€ für 3 Steckdosen und einen Sender), zum Anderen ist die Einrichtung mehr als simpel. In diesem Tutorial erfährst du, wie du Funksteckdosen mit deinem Raspberry Pi ganz einfach schalten kannst.

Video: Funksteckdosen mit dem Raspberry schalten

Welche Teile werden benötigt?

Die Software installieren

Um die Funksteckdosen zu schalten, werden 2 Programme benötigt, die die Codes an die Steckdosen senden. Diese Programme sind WiringPi und Raspbery Remote. Bevor du jedoch etwas installierst, prüfst du, ob dein System auf dem neuesten Stand ist. Dazu gibst du die folgenden Befehle ins Terminal ein:
sudo apt-get update
sudo apt-get upgrade
Anschließend kannst du damit beginnen, die Software zu installieren.

WiringPi

Um WiringPi zu installieren, installierst du zunächst die Software gitcore:
sudo apt-get install git-core
Anschließend lädst du dir WiringPi herunter:
sudo git clone git://git.drogon.net/wiringPi
Jetzt wechselst du in das Verzeichnis von WiringPi und installierst es:
cd wiringPi
sudo ./build
Das Programm WiringPi ist nun installiert.

Raspberry Remote

Raspberry Remote wird mit folgenden Befehlen installiert:
cd ~
sudo git clone git://github.com/xkonni/raspberry-remote.git
cd raspberry-remote
Nun musst du die "send.cpp"-Datei noch mit folgendem Befehl kompilieren:
sudo make send
Beide Programme sind jetzt installiert. Bevor du aber Funksteckdosen schalten kannst, musst du diese erst konfigurieren.

Funksteckdosen konfigurieren

Damit die Steckdosen geschalten werden können, muss ihnen zuerst ein Hauscode und eine Nummer zugewiesen werden. Dies geschieht über die Dip-Schalter, die nach dem Entfernen einer Schraube und dem Öffnen einer Klappe zugänglich sind. Dort befinden sich 10 Schalter mit der Beschriftung 1-5 und A-E.
Mit den Dip-Schaltern werden den Steckdosen Nummern zugewiesen, um sie zu identifizieren.
Die 5 Schalter mit den Zeichen 1-5 stellen den Hauscode der Steckdose dar. Die Nummer der Steckdose wird über die 5 Schalter mit den Zeichen A-E festgelegt. Um den Hauscode und die Nummer nun einzustellen, stellst du links eine beliebige Kombination aus 'AN' und 'AUS' (AN entspricht 'Schalter oben' und AUS dementsprechend 'Schalter unten') ein und für die Steckdosennummer wählst du EINEN der Buchstaben aus. Um diese Kombination später per Raspberry Pi anzusprechen, wird der Hauscode binär angegeben (Beispiel: Sind die Schalter 1, 4 und 5 oben und die Schalter 2 und 3 unten, so ergibt sich der Code 10011, da die Schalter von links gesehen AN AUS AUS AN AN ergeben). Die Steckdosennummer wird nicht als Buchstabe, sondern als Zahl eingegeben, wobei das A einer 1 entspricht, das B einer 2, das C einer 3 und so weiter.

Funksender installieren

Um die Funksteckdosen mit dem Raspberry überhaupt ansprechen zu können, muss zuerst der Funksender mit dem Pi verbunden werden.
Mit diesem 433 Mhz-Funksender können die Funksteckdosen geschalten werden.
Dazu verbindet ihr die Pins des Funksenders folgendermaßen mit den Pins des Raspberry: VCC mit Pin 17 (3.3 Volt), GND mit Pin 20 (Masse) und Data mit Pin 22 (GPIO 6 - gibt Funksignal).
So sollte die Verkabelung am Raspberry aussehen.
Bevor die erste Funksteckdose geschalten werden kann, muss noch das Programm angepasst werden. Dieses benutzt momentan Pin 7 als Daten-Output, bei unserer Verkabelung muss jedoch Pin 22 verwendet werden. Der Grund dafür, weshalb ich Pin 22 benutze ist, dass ich zusätzlich zu diesem Funksender noch ein Z-Wave Modul (Zum Tutorial: RaZberry Modul auf Raspberry installieren) am Pi betreibe, welches Pin 7 belegt.

Pins ändern

Raspberry Remote benutzt zum Schalten der Steckdosen standardmäßig den WiringPi-Pin 7. Dieser wird im Folgenden auf den WiringPi-Pin 3 geändert. Um die Pins zu ändern, wechselst du zunächst in das "Raspberry Remote"-Verzeichnis.
cd raspberry-remote
Dort öffnest du die Datei "daemon.cpp"
sudo nano daemon.cpp
und suchst dort nach folgender Code-Zeile (standardmäßig in Zeile 53) (Mit STRG + C kannst du prüfen, in welcher Zeile du dich aktuell befindest):
mySwitch.enableTransmit(0);
Standardmäßig wird Pin 7 verwendet, ich möchte jedoch lieber den Pin 22 benutzen, da dieser nach der Z-Wave Platine wieder der erste freie Pin ist. Um nun Pin 22 zu benutzen, must du die 0 einfach in eine 3 ändern. Damit sieht deine Programmzeile nun folgendermaßen aus:
mySwitch.enableTransmit(3);
Nun drückst du STRG + X und danach "j" und ENTER um den Speichervorgang zu bestätigen. Anschließend muss der Daemon noch neu kompiliert werden. Dazu benutzt du den folgenden Befehl:
sudo make daemon
Danach startest du den Raspberry neu:
sudo reboot
Nach dem Neustart wird ab sofort Pin 22 für die Steuerung des Funksenders benutzt.

Nachtrag vom 19.08.2016

In der neuesten Version von raspberry-remote funktioniert das oben beschriebene Vorgehen nicht mehr. Statt der Datei "daemon.cpp" muss nun die Datei "send.cpp" angepasst werden. Dazu wird sie mit einem Editor geöffnet:
cd raspberry-remote
sudo nano send.cpp
Dort wird nun in Zeile 49 der Wert der Variable 'pin' von 0 auf 6 (für den GPIO-Pin 22) gesetzt:
int pin = 6;
Anschließend verlässt du mit [STRG] + [X] den Editor, bestätigst das Speichern mit [J] und den Dateinamen mit [ENTER]. Um die Änderungen nun anzuwenden, muss die Datei "send.cpp" neu kompiliert werden:
sudo make send

Funksteckdosen schalten

Falls noch nicht geschehen, musst du zuerst in das Raspberry-Remote Verzeichnis wechseln:
cd raspberry-remote
Um jetzt eine Funksteckdose von der Kommandozeile aus zu schalten, wird (zum Beispiel) der folgende Befehl benutzt:
sudo ./send 10011 3 1
Erklärung: 10011 ist der Hauscode der Steckdose, 3 ist die Nummer der Steckdose (entspricht C), die 1 am Ende des Befehls gibt den Zustand an, also ob die Steckdose eingeschaltet werden soll (1), oder ausgeschaltet (0).

Schaltung per Internet

Im einem der nächsten Teile dieser Tutorialreihe zeige ich dir, wie du die Funksteckdosen per Internet schalten kannst, um so deine eigenen Anwendungen damit zu erstellen. (Zum Tutorial: Funksteckdosen per Internet schalten) Ein Tutorial zur Programmierung einer Android App beginnt ebenfalls in der nächsten Zeit.

Über den Autor


Sascha Huber

Hallo, ich bin Sascha, der Gründer von Smarthome Blogger.

Mit einer Leidenschaft für Technologie und einem Hintergrund als Software Engineer habe ich 2016 Smarthome Blogger gegründet. Mein Ziel war es schon immer, innovative Lösungen zu entdecken, die unser Leben einfacher und intelligenter gestalten können. In meinem beruflichen Leben arbeite ich täglich mit Software und Technik, aber auch in meiner Freizeit bin ich stets auf der Suche nach neuen technischen Spielereien und Möglichkeiten, mein Zuhause zu automatisieren und zu verbessern.

Auf Smarthome Blogger teile ich mein Wissen, meine Erfahrungen und meine Begeisterung für alles rund um das Thema Smarthome.



Dieser Beitrag hat dir gefallen?

Dann abonniere doch unseren Newsletter!