Funksteckdosen mit dem Raspberry schalten

Teile diesen Beitrag

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.

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.

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

Mit diesem 433 Mhz-Funksender können die Funksteckdosen geschalten werden.

Mit diesem 433 Mhz-Funksender können die Funksteckdosen geschalten werden.

Um die Funksteckdosen mit dem Raspberry überhaupt ansprechen zu können, muss zuerst der Funksender mit dem Pi verbunden werden. Dazu verbindet ihr die Pins des Funksenders (Abbildung rechts) folgendermaßen mit den Pins des Raspberry (Abbildung unten): VCC mit Pin 17 (3.3 Volt), GND mit Pin 20 (Masse) und Data mit Pin 22 (GPIO 6 – gibt Funksignal). 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.

So sollte die Verkabelung am Raspberry aussehen.

So sollte die Verkabelung am Raspberry aussehen.

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.

Dieses Tutorial als Video

Teile diesen Beitrag
,
Vorheriger Beitrag
Raspberry einrichten: Die ersten Schritte
Nächster Beitrag
Datenbank anlegen & verwalten

Ähnliche Beiträge

Menü

Wir nutzen Cookies, um dir passende Inhalte zu präsentieren und dein Surfvergnügen zu optimieren, aktivieren Cookies aber erst, wenn du auf akzeptieren klickst. Weitere Informationen

Wir benutzen Google Analytics, um zu ermitteln, welche Inhalte unsere Besucher sehen wollen und welche nicht. Eingebettete YouTube-Videos helfen dir mittels Cookies nur die Videos zu sehen, die du sehen willst.

Schließen