Steckdosen mit Terminal, Webbrowser oder Mobile Device steuern oder wie man die Beleuchtung seines Weihnachtsbaums mit dem Handy einschaltet

Wer kennt das nicht:

Endlich hat man den Weihnachstbaum am Heiligen Abend geschmückt, aber die Weihnachtsbaumbeleuchtung lässt sich leider nur schwer zugänglich ein- und ausschalten.

Oder: Man würde gerne seinen Drucker, der sich im Keller befindet remote ein- und ausschalten, da er auch im Standby einiges an Strom zieht und man ungern für jeden Druck erstmal in den Keller laufen möchte, um ihn einzuschalten und dann wieder auszuschalten.

Fein wäre es auch ein billiges Baumarkt Heizungsthermostat zur intelligenten Heizungssteuerung einzusetzen, vielleicht auch noch das Garagentor mit dem Handy zu öffnen, oder einfach aus dem Urlaub zuhause die Jalousien zu öffnen. Die Anwendung sollte es auch gestatten, sich wiederholende Tätigkeiten zu automatisieren (z. B. das Öffnen von Rollläden und Jalousien am Morgen und ihr Schließen am Abend, die Betätigung einer Terrassenmarkise, das Schließen aller Jalousien, das Öffnen eines Tors…

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

Aber jetzt zum Projekt selbst:

Die Hardware

Alles was man braucht sind folgende Dinge:

  1. Raspberry Pi
  2. 433 MHz Funk-Sende- und Empfänger-Modul
  3. Jumperwires female
  4. 433MHz Antenne
  5. Funkschalt-Set RCS 1000 N Comfort

Das Assembly der Hardware

Zunächst müssen wir das Sendemodul mit Hilfe der Jumperkabel an den Raspberry Pi anschließen. Bei dem vorgeschlagenen 433 MHz Sender ist dies mit drei Pins und einem Anschluss oben rechts (ANT beschriftet) möglich.

433mhz-sendemodul
433Mhz Sendemodul

Die Anschlüsse auf dem Sendemodul sind wie folgt:

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

Die drei oben angeführten Pins sind mit den Jumperkabeln an folgende GPIO-Pins am Raspberry Pi durch einfaches Stecken zu verbinden:

rpi-433mhz-transmitter_neu_steckplatine
Anschluss des Sendemoduls an den Raspberry Pi (Quelle: Alex bloggt, https://alexbloggt.com/)

Um die Reichweite zu erhöhen kann man optional noch die 433MHz Antenne an die onboard-Antenne (ANT) anlöten, Tests ohne angelötete 433MHz Antenne waren bei unserem Versuchsaufbau im Labor von mizziTANTE.at aber auch äußerst zufriedenstellend.

Etwas technischer und formal dargestellt kann man das natürlich auch so darstellen:

rpi_433cct
Anschluss des Sendmoduls an den Raspberry Pi, (Quelle: https://blog.netways.de/author/kprobst/)

wobei hier der zweite +5V-GPIO-Port des Raspberry Pi für die Stromversorgung verwendet wird.

Funkschalt-Set RCS 1000 N Comfort

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
Pins des RCS 1000 N Comfort (Quelle: https://blog.netways.de/author/kprobst/)

Damit ist das Hardware-Assembly auch schon abgeschlossen, nun kommen wir  zur Installation und Konfiguration der Software.

Die Software

Raspberry Pi System-Update

Optional, aber empfohlen: Raspberry Pi auf neusten Software-Stand bringen und build-essentials installieren.

sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get install build-essentials checkinstall

Git-Softwarepaket

Für das Installieren weiterer benötigter Software-Module installieren wir uns erstmals die Software Git , welches wir über den Paketmanager installieren.

sudo apt-get install git

WiringPi

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 ..

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
make daemon

Manueller Start des 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 &

Automatischer Start des Daemon

Damit der Daemon nicht bei jedem Systemstart manuell gestartet werden muss, geht man wie folgt vor:

sudo vi /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 vi /etc/rc.local

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

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

Steckdose über Terminal schalten

Das war es auch schon mit der Basis! Jetzt kann man schon über das Terminal Befehle an eure Steckdosen schicken, um sie aus- und anzuschalten.

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

Webinterface

Natürlich ist es etwas umständlich und unkomfortabel, das Ganze immer über das Terminal/eine SSH-Verbindung machen zu müssen. Aber kein Problem! Raspberry-Remote liefert auch gleich ein passendes Webinterface mit. Damit ihr das nutzen könnt, solltet ihr erst mal Apache und PHP installieren auf eurem Raspberry:

Apache 2 Webserver und PHP5

sudo apt-get install apache2 php5 vim

Jetzt gehts zum Webinterface, was xkonni im Paket Raspberry-remote direkt mitliefert. Dazu müssen wir noch den Order in das richtige Verzeichnis kopieren. Das machen wir mit:

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

Jetzt muss noch die Datei /var/www/send443/config.php des Raspberry Pis angepasst werden: dazu einfach vi verwenden:

sudo vi /var/www/send443

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.

Nun können wir das Webinterface mit einem Browser unter

http://[your-raspberry-ip]/send433

erreichen.

xkonni-webinterface
XKonni Webinterface (Quelle: https://blog.netways.de/author/kprobst)

Bemerkung 1:

Falls ihr eine Fehlermeldung wie „Switch out of range: GET /:XY“ bekommt, keine Sorge! In der daemon.cpp sind standardmäßig nur die Hauscodes 00000 & 00001 & 00010 abgedeckt. Das lässt sich aber einfach ändern. Geht dazu wieder ins Verzeichnis von Raspberry Remote (bei mir /home/pi/raspberry-remote/, also via cd /home/pi/raspberry-remote/) und öffnet die daemon.cpp mit nano. Darin befindet sich der Eintrag „nPlugs=10;“, welche ihr einfach durch „nPlugs= 1110;“. Anschließend über sudo make daemon  neu kompilieren und über sudo ./daemon &  wieder starten. Jetzt sollte auch bei euch das Webinterface funktionieren.

Bemerkung 2:

Es gibt natürlich bereits einige alternative Webinterfaces als jenes, das im Paket Raspberry-remote direkt mitgeliefert wird in der Community. Natürlich kann man sich auch recht einfach sein eigenes Webinterface implementieren.

Bemerkung 3:

Wem selbst das Webinterface noch zu kompliziert ist (oder wer lieber redet statt zu tippen und zu klicken), der kann die Steuerung auch in Siri integrieren. Das funktioniert auch ohne Jailbreak. Wer seine Steckdosen mit iOS 7 aufwärts per Sprachsteuerung schalten möchte, kann das nach dieser Anleitung machen, in der beschrieben wird, wie man die Sprachsteuerung und Widgets für iOS einrichtet.

Credits:

Steckdosen via Raspberry Pi und Webinterface steuern by

Funksteckdosen via Raspberry Pi über das Terminal, Webinterface oder Siri steuern by alex bloggt

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s