Seite wählen

Steckdosen via Raspberry Pi und Webinterface steuern

von | Nov 25, 2015 | Linux, Windows, Hardware, Team, Mac

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.

4 Kommentare

  1. Markus

    Toller Beitrag. Weiter so! Die Technik ist echt einfach.

    Antworten
  2. CJ

    Gute Erklärung,
    Kann man das mit beliebig vielen steckdosen machen ??

    Antworten
  3. interessierterzuhöhrer

    tolles tutorial!
    Frage: muss ab einer bestimten php version die Datei nicht unter /var/www/html liegen?

    Antworten
  4. Walter

    Hallo Kay,

    vielen Dank für diese tolle Anleitung. Ich habe jedoch bei Schritt 7 ein Problem mit dem verschieben des Ordners. Der Befehl:
    mv ~/raspberry-remote/webinterface/* /var/www/send443

    löst bei mir den Fehler:
    mv: der Aufruf von stat für ‚/home/pi/raspberry-remote/webinterface/*‘ ist nicht möglich: Datei oder Verzeichnis nicht gefunden

    aus. Ich finde jedoch mit cd alle nötigen Verzeichnisse und auch das manuelle Schalten per Putty Konsole funktioniert korrekt.
    Allerdings musste ich PHP 7.0 installieren, da PHP5 nicht mehr verfügbar scheint. Aber damit soll es doch nichts zutun haben.

    Ich muss gestehen, ich bin absoluter Linux Laie 🙁

    Vielen Dank für einen hilfreichen Tipp,
    Walter

    Antworten

Trackbacks/Pingbacks

  1. Raspberry PI 2 – Funksteckdosen steuern – Sven Wildermann - […] um diese dann mit dem Raspberry PI 2 zu steuern. Bei der Umsetzung bin ich in erster Linie dieser…
  2. Monthly Snap November: OSMC, Icon Fonts & Jaspersoft Studio › NETWAYS Blog - […] Christoph looked at Jaspersoft Studio and Kay shared a guide to control home automation components with Rasperry PI and…

Einen Kommentar abschicken

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Mehr Beiträge zum Thema Linux | Windows | Hardware | Team | Mac