Raspberry PI: Erste Schritte mit dem Steuern der Funksteckdosen

Mein Raspberry PI kam letzt Woche von de.farnell.com an.

Also auspacken und gleich mal installieren.

Als erstes den Standarddialog der Raspberry Config durchgeführt. Ich lasse das GUI nicht automatisch starten, da der RasPI bei mir Serverdienste übernimmt und nur per LAN erreichbar ist und keine Tastatur/Monitor angeschlossen ist. Daher war für mich das Aktivieren des SSH Server Dienstes ein muss.

Da ich das Funkmodul für meine 433,92MHz Funksteckdosen von Watterott direkt bestellt hatte, war das schon da.

Also Anschließen: Der Antennenanschluss ist Beschriftet. Dort habe ich Testhalber erstmal ein kurzes Kabel angesteckt. Der Kontakt neben der Antenne ist VCC und wird mit Pin 4 des RasPI verbunden. Der nächste Pin am Funkmodul ist DATA und wird mit dem Pin 11 des RPI verbunden. Der vierte PIN ist Masse und gehört auf den Pin 6.

Zur Übersicht noch mal:

Pin Funkmodul Funktion Pin Raspberry PI
1 ANT
2 VCC (+3~12V) 4
3 Data 11
4 GND (Masse) 6

Anschließend ein sudo apt-get update.
Nun habe ich den Apache2 und das PHP installiert:
sudo apt-get install apache2
sudo apt-get install php

Nun kann man mit einem anderen Browser testen, ob der Server erreichbar ist.

Nun bin ich über das Raspberry-Remote von xkonni gestolpert. Danke!

Installieren geht folgender maßen:
Als erstes benötigen wir das WiringPI von Godon:
sudo apt-get install git-core
git clone git://git.drogon.net/wiringPi
cd wiringPi
./build

Nun hab ich das Projekt von xkonni „installiert“:
cd ~
git clone git://github.com/xkonni/raspberry-remote.git
cd raspberry-remote

Nun habe ich als erstes die send.cpp compiliert: make send, um das Senden auzuprobieren.
Ein Erster Test: sudo ./send 00001 1 1 – Funktioniert, wenn der Jumper 5 und A auf On an der Steckdose gesetzt ist, Rest auf Off.

Jetzt gehts zum Webinterface, was xkoni direkt mitliefert. Dazu habe ich im Ordner /var/www einen Unterordner remote erstellt und diesen dem User pi zugeordnet mit sudo chown pi /var/www/remote. Anschließend den Inhalt von ~/raspberry-remote/webinterface dorthin verschoben: mv ~/raspberry-remote/webinterface/* /var/www/remote . Jetzt muss noch in der config.php Datei die IP Adresse des Raspberry PIs angepasst werden: dazu endweder den vi oder den nano verwenden.

Nun fehlt noch der Daemon, auf den das PHP-Script des Wibinterfaces zugreift. Dazu gehen wir in das Raspberry-Remote Verzeichnis zurück: cd ~/raspberry-remote und compilieren den daemon: make daemon
Nun können wir diesen Starten: sudo ./daemon & (Das & bewirkt, dass der Prozess im Hintergrund läuft.

Jetzt können wir unser Glück mit dem Webinterface probieren: Dazu rufen wir von einem anderen Rechner/Handy das Webinterface per http://192.168.12.2/remote/ (Eure IP einsetzen) auf. Wenn das geht und dort die verschiedenen Steckdosen sichtbar sind, dann muss man jetzt nur noch in der config.php die Steckdosen mit Namen versehen und evtl. die Codes, etc. anpassen.

Bei Fragen & Anmerkungen bin ich mal auf Kommentare gespannt.

Tags: , , , , ,

156 Responses to “Raspberry PI: Erste Schritte mit dem Steuern der Funksteckdosen”

  1. sporti sagt:

    Hallo ich hab ein kleines Problem mit der config.php und zwar weiß ich nicht wie die dort funktioniert:

    sudo ./send 11111 1 1
    sending systemCode[11111] unitCode[1] command[1]

    wie sieht das dann im Array der Config aus aus?
    array(„11111“, „01“, „Sofa Lampe“)

    ist das so Richtig oder nicht?

    Vielen Dank!

  2. daz sagt:

    Hi i have a problem with the web interface.. when loading the page it shows me the following error.. Could not connect to socket .. when i run from command lien the following code it switched my socket of send 11111 1 1 but nothing from the web interface.. plus i dont know how replicate the 11111 1 1 in the config file.. any help would be gratefully appreciated.. thanks

    • Felix Felix sagt:

      Hi daz,
      This error says, that the daemon is not running. Sure, it runs in the background?
      And do you have edit the ip in the config file?
      BR

  3. daz sagt:

    Hi Felix, thanks for the reply .. i didnt add a server ip address , i added the target ip.. the previous error has gone a new error is shown now Could not bind to socket.

    • Felix Felix sagt:

      Do you have installed the raspydaemon on the same as the webinterface is installed?
      You have to configure at config.php the ip, where the daemon is running.

  4. Hi, vielleicht ist ja jemand auch noch ein Android-App für die Steuerung interessiert.
    Mit dem Skript das in der Beschreibung zum Download angeboten wird, wird alles automatisch heruntergeladen, installiert und anschließend ein Benutzer erstellt, der die Rechte zum ausführen hat. Diesen dann noch in der App eintragen und fertig.
    Die App gibts im PlayStore:
    https://play.google.com/store/apps/details?id=store.cullmann.raspi.remote

  5. Michael sagt:

    Erst mal super Projekt, ich nutze es seit ca. 2 Jahren.
    Doch irgendwie bekomme ich es nicht mit Cronjob nicht hin. Kann das mal jemand kurz erläutern wie ich das was ich im terminal eingeb in eine passende datei packe?

    Ich danke für die Hilfe

    • Felix Felix sagt:

      Hallo Michael,
      Was hast du mit dem Cronjob vor?
      Du kannst per Cronjob den send befehl verwenden. Dann siehst du aber nicht das Resultat im Webinterface.
      Die andere Methode wäre, den Befehl an den laufenden Deamon zu senden.
      VG,
      Felix

    • Michael sagt:

      Hallo Felix
      Danke für die Idee habe das soweit auch alles hinbekommen!
      Das einzig Problem das ich habe ist das sich das Webinterface regelmäßig aufhängt. Recht häufig bei Doppelanfragen!
      Hat jemand da schon eine Idee das zu verhindern?
      Ein neustart Hilft!

    • Felix Felix sagt:

      Hi,

      Ich habe in crontab -e folgendes eingetragen:
      #For RaspyRemote
      */2 * * * * ps -ef |grep remote | grep -v grep > /dev/null || sudo /etc/init.d/remotecontrol start

      Hoffe das hilft, aber auch meins hängt regelmäßig 🙁

  6. Ridge sagt:

    Hallo, ich habe ein Problem.
    Auf meinem iPhone wird angezeigt: Could not bind to socket
    Meine config.php sieht so aus:

    Ich habe das mit der IP Adresse in der config Datei nicht so richtig verstanden :/
    Danke für jede Hilfe 🙂

  7. Ridge sagt:

    Außerdem wird mir angezeigt: ERROR on binding: Address already in use

  8. Lorenz sagt:

    Moin,

    vielen Dank erstmal für das tolle Tutorial,
    das Schalten der Steckdosen über das terminal funktioniert tadellos!

    Allerdings will das Ansteuern über das Webinterface nicht so richtig, habe alles wie beschrieben durchgeführt, allerdings kann ich die Webseite nicht aufrufen…
    Weiß jemand woran das liegen könnte?

    Vielen Dank schon mal 🙂

    • Felix Felix sagt:

      Hallo,
      Entschuldige die späte Reaktion, aber ich war erts im Urlaub und dann auf Dienstreise.

      Hast du im www Ordner die config.php angepasst?
      Dort gibt es den Eintrag für die IP Adresse. Der muss in etwa so aussehen:
      $source = $_SERVER['SERVER_ADDR'];
      $target = '192.168.12.2';
      $port = 11337;

      Die IP 192.168.12.2 muss für deinen PI angepasst sein.

      Viel Erfolg,
      Felix

  9. Norbert sagt:

    Hi,
    ich habe das gleiche Problem, wie Lorenz. Ich habe Deine Anleitung befolgt und kann den „Send“-Teil nicht aufrufen per 192.168.78.32/remote im Browser.
    in der /var/www/remote/config.php steht:

    $source = $_SERVER[‚SERVER_ADDR‘]; /*aufgrund des Kommentars bei Lorenz ergänzt */
    $target = ‚192.168.178.32‘;
    $port = 11337;

    hast Du evtl. einen Tipp?
    danke

  10. Peter sagt:

    Hallo Felix,
    sudo ./send 00001 1 1 bzw 0 funktioniert und schaltet die Elpro ein/aus.

    Das Webinterface läuft,
    aber in der config.php steht bei mir

    $config=array(
    array(„1“, „00001“, „01“, „Steckdose1“),

    Im Webinterface sehe ich dann 1:0001:1
    und das funktioniert natürlich nicht.

    Ändere ich auf
    array(„0“, „00001“, „01“, „Steckdose1“),
    oder
    array(„0“, „0001“, „01“, „Steckdose1“),
    oder
    array(„00001“, „01“, „Steckdose1“),

    erhalte ich in der Konsole
    pi@raspberrypi ~/raspberry-remote $ message: 00001012
    wrong systemkey!

    Gibt es da Hilfe?

    Danke

    • Felix Felix sagt:

      Hallo,
      also bei mir ist es beim untersten:

      array(„00010“, „02“, “ Stehlampe“),
      array(„00011“, „01“, “ Rolladen „),

      und zur Erklärung: die Stehlampe ist bei den Elro Steckdosen auf 00010 und B eingestellt.
      Und der Rollladen auf 00011 und A.

      Kannst du mir sonst mal die ganze Config.PHP schicken?

      Viel Erfolg

    • Peter sagt:

      Danke Felix,

      das Array kann ich ja passend auf meine Elro Dose einstellen und habe es auch gemacht.
      Die Array-zeile ist anders, siehe die vorangestekkte „1“.

      Ich habe das Problem aber lösen können,
      denn es gibt wohl eine neuere Raspberry-Remote von xkonni
      und die habe ich erwischt.

      Eine ältere Version installiert und das Problem ist weg.
      Es funktioniert dann alles wie von Dir beschrieben.

      Natürlich auch mit array(„00001“, „01“, „Steckdose1“),

      Danke, Peter

  11. Jan sagt:

    Hallo Felix & Hallo Peter,

    Ich habe genau das gleiche Problem mit der neueren Version, wie ist es denn möglich die ältere Version zu bekommen? Habt Ihr für einen Neueinsteiger ggf. eine Kurzanleitung?

    Schönes Wochenende

    Jan

  12. Jens sagt:

    Hallo,
    da mein Port 80 schon belegt ist, läuft das Webinterface nicht.
    Ich hatte den Port 8080 eingerichtet mit dem alles lief.
    Nach einer Neuinstallation der SD-Karte, schaffe ich es nicht mehr den Port 8080 einzurichten.
    Bin kein Linuxer aber es macht Freude mit dem Raspi zu arbeiten.
    Wie ist dafür die beste Lösung. Bitte verständliche Angaben machen.
    Danke einstweilen.

  13. Jens sagt:

    Hat sich erledigt. Habe ein Image wieder auf die SD-Karte zurückgespielt, welches noch keine Installationsleichen enthielt. Nach einer Neuinstallation hat dann alles so funktioniert wie es soll.

  14. Mr.H. sagt:

    Vielleicht hilft folgender Hinweis Nutzern weiter, welche die aktuellere Version von Raspberry-Remote (xkonni) nutzen.

    Haus-Code für alle Steckdosen: 00001
    Lampe01 = A
    Lampe02 = B
    Lampe03 = C

    Meine array in der config.php sieht wie folgt aus:

    $config=array(
    /*
    * Elro
    */
    array(„1“, „00001“, „16“, „Lampe01“),
    array(„1“, „00001“, „08“, „Lampe02“),
    array(„1“, „00001“, „04“, „Lampe03“)
    )

    Bin durch Zufall nach lesen des Abschnitts „Binary Mode“ auf https://github.com/xkonni/raspberry-remote darauf gekommen. Vermutlich steht meine Steckdose A für den Binärcode 10000 und Dezimal der 16. Keine Ahnung ob es Zufall ist, aber es funktioniert. 😉

Leave a Reply