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:
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:
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.
Dort öffnest du die Datei "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:
Danach startest du den Raspberry neu:
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:
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:
Funksteckdosen schalten
Falls noch nicht geschehen, musst du zuerst in das Raspberry-Remote Verzeichnis wechseln:
Um jetzt eine Funksteckdose von der Kommandozeile aus zu schalten, wird (zum Beispiel) der folgende Befehl benutzt:
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.
Dieser Beitrag hat dir gefallen?
Dann abonniere doch unseren Newsletter!