This entry is part 1 of 1 in the series Heimautomatisierung mit dem Pi


  • Steckdosen via Raspberry Pi und Webinterface steuern

Um sein Zuhause oder Büro kostengünstig mit einem Raspberry Pi zu steuern benötigt es garnicht mal so viel. Steuerbare Funksteckdosen, einen Pi und ein 433 Mhz Sendemodul reichen schon aus.

Diese Woche geht es um die Steuerung der Funksteckdosen per Komandozeile und Webinterface.

pi
Raspberry Pi mit 433 MHz Sender

Hier erstmal die Liste der genutzen Teile:

Funksteckdosen von Brennenstuhl (Amazon)
433 MHz Funk-Sende- und Empfänger-Modul (Amazon)
Jumperwires female (Amazon)
Antenne (Amazon)

Schritt 1:
Zunächst müssen wir das Sendemodul an den Raspberry Pi anschließen. Bei dem vorgeschlagenen 433 MHz Sender ist dies die quadratische Platine mit drei Pins und einem Anschluss oben rechts (ANT beschriftet).

  • Pin 1 (links): ATAD (Daten)
  • Pin 2 (mitte): VCC (Versorgungsspannung)
  • Pin 3 (rechts): GND (Masse)

Anschluss: Ant (Antenne)Die ersten 3 Pins verbinden wir mit dem Raspberry Pi. Pin 1 kommt hierfür (wie in der untenstehenden Grafik zu sehen) an Pin 11 (GPIO-Pin 17) auf dem Raspberry Pi. Danach bekommt das Modul noch Strom. Dafür den Pin 2 auf Pin 4 am Raspberry Pi anschließen (Auf diesem sind 5V angelegt). Pin 3 (GND) kommt an den Groundpin des Pi’s (Pin 6).

Um die Reichweite zu erhöhen muss noch die Antenne an (ANT) angelötet werden . Ansonsten hat das Modul nur eine Reichweite von ungefähr 2 Metern. Mit Antenne beträgt die Reichweite ca. 30 Meter.rpi_433cct
(Quelle: Einplatinencomputer)

Schritt 2:
Zuerst bringen wir unser Pi auf den neusten Stand. Außerdem brauchen wir zum Installieren der benötigten Software Git , welches wir über den Paketmanager installieren.

sudo apt-get install git

Schritt 3:
Zur Ansteuerung des 433 MHz Senders benötigen wir WiringPi. Hiervon holen wir uns mit Hilfe von Git den Quellcode und führen das Build-Script aus, welches uns einige Dateien kompiliert.

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

Schritt 4:
Außerdem brauchen wir Raspberry-remote. Diese Software bietet uns eine Anwendung mit deren Hilfe wir die benötigten Funkbefehle absetzen können.

git clone git://github.com/xkonni/raspberry-remote.git
cd raspberry-remote
make send

Schritt 5:
Nun müssen wir noch unsere Funksteckdose einstellen (um an die Pins ranzukommen muss man die kleine Schraube an der Rückseite der Dose öffnen). Damit niemand anderes auf diese zugreifen kann, werden wir zuerst einen zufälligen Code einstellen. Dazu einfach die Kippschalter (1, 2, 3, 4, 5) hoch oder runter stellen. In meinem Fall habe ich jetzt alle Schalter hoch gestellt, was dem Unitcode 1 1 1 1 1 entspricht. Danach stellen wir noch ein auf welchem Channel die Dose hören soll. Ich habe hier “B” gewählt. Um den Channel zu setzen muss man einfach nur den gewünschten Buchstaben auf 1 (hochstellen) setzen.

dose

Schritt 6:
Nachdem alles nach unserem Wunsch eingestellt ist können wir nun testen ob wir die Funksteckdose ansteuern können. Dazu geben wir den folgenden Befehl ein:

sudo ~/raspberry-remote/send [Systemcode] [Steckdosen-Nummer] [Zustand]

Beispiel: Unsere Steckdose einschalten

sudo ~/raspberry-remote/send 11111 2 1

Schritt 7:
Um die Steckdose jetzt per Handy oder Laptop zu steuern können wir gleich das von Raspberry-Remote mitgebrachte Webinterface nutzen. Um dieses zu benutzen müssen noch weitere Pakete installiert werden. Ich werde in diesem Fall den Apache 2 Webserver und PHP5 verwenden. Zusätzlich installieren wir noch den Texteditor VIM.

sudo apt-get install apache2 php5 vim

Nun müssen wir noch den Order in das richtige Verzeichnis kopieren. Das machen wir mit:

mv ~/raspberry-remote/webinterface/* /var/www/send443

Damit das PHP-Skript ordnungsgemäßg funktioniert müssen wir noch die Datei config.php bearbeiten.

cd /var/www/send443
vim config.php

In der Datei ändern wir den Inhalt der Variable $target auf die IP-Adresse unseres Pi´s. Gleichzeitig können wir im unteren Bereich der Konfigurationsdatei die Hauscodes und Funksteckdosennummern, sowie deren Bezeichnung im Webinterface festlegen. Anschließend kann die Datei geschlossen und gespeichert werden. Damit wir diesen nutzen können, muss dieser erstmal installiert bzw. kompiliert werden.

cd raspberry-remote
make daemon

Ist der Daemon installiert können wir ihn mit folgendem Befehl starten. Das & im in der folgenden Zeile bewirkt, dass der Prozess im Hintergrund ausgeführt wird.

sudo ./daemon &

Nun können wir das Webinterface mit einem Browser unter http://<IP>/send433 erreichen.

Screenshot from 2015-11-25 09:28:42

Schritt 8:
Damit wir den Daemon nicht bei jedem Systemstart manuell starten müssen, schreiben wir uns kurz ein kleines Skript dafür:

sudo vim /home/pi/raspberry-remote/send443.sh

In die Datei schreiben wir folgenden Inhalt:

#!/bin/bash
cd /home/pi/raspberry-remote/
sudo ./daemon &
exit 0

Abschließend setzen wir noch die entsprechenden Rechte.

sudo chmod 755 /home/pi/raspberry-remote/send443.sh

Damit sich das Skript automatisch startet müssen wir noch was in der /etc/rc.local ändern.

sudo vim /etc/rc.local

Dort fügen wir folgende Zeile ein und speichern die Datei.

/home/pi/raspberry-remote/send443.sh

Geschafft! Jetzt können wir sowohl über die Konsole, als auch bequem über ein Webinterface unsere Funksteckdosen steuern.

Kay Probst

Autor: Kay Probst

Nachdem ihm sein Praktikum bei uns gefallen hat, kam Kay im September 2015 zu NETWAYS, um seine Ausbildung zum Fachinformatiker für Systemintegration zu beginnen. Er kann es schon jetzt kaum abwarten, bald an eigenen Projekten arbeiten zu dürfen. Auch privat beschäftigt er sich mit dem Computer und versetzt sich bei diversen Computerspielen gerne in andere Charaktere hinein.