• Blog
  • Raspberry Pi
  • Über mich
  • Projekte
  • devowl.io

Raspberry Pi: Funksteckdosen einrichten

18. April 2015
Raspberry Pi
64 Kommentare

Dem Thema Hausautomation kann man sich mit dem Raspberry Pi im Kleinen recht einfach nähern. So kann man mittels eines 433 MHz Funk-Sendemoduls Funksteckdosen intelligent steuern. Dies bietet nicht nur die Möglichkeit Steckdosen per Webinterface auf dem Rechner, am Smartphone oder gar aus der Ferne zu steuern, sondern auch abhängig von Zeit und anderen Faktoren zu entscheiden ob die Steckdose aktiviert oder deaktiviert werden soll. Im Folgenden erkläre ich wie man mit Hilfe eines 433 MHz Funk-Sendemoduls Funksteckdosen auf dem Raspberry Pi einrichtet, per Webinterface steuern kann und intelligente Schaltungen anlegt.

Funksteckdosen erhält man in der Regel in Elektrofachgeschäften oder in Onlineshops. Dabei ist zwischen zwei Arten dieser Geräte zu unterscheiden. Erstere haben einen DIP Schalter mit einem 1-0-Code, der es ermöglicht Ein und Aus zu steuern. Es gibt inzwischen jedoch auch selbstlernende Funksteckdosen, die eine gewisse Intelligenz mitbringen. Letztere benötigen wir nicht, da wir die Steckdosen selbst beeinflussen möchten.

Außerdem benötigen wir ein 433 MHz Funk-Sendemodul, welches meist in Kombination mit einem Empfänger zu erwerben ist. Dieses schließen wir über die GPIO-Pins am Raspberry Pi an, weshalb wir female-female Jumperwires benötigen.

  • Funksteckdosen von CSL (Amazon)
  • Aukru 433 MHz Funk-Sende- und Empfänger-Modul (Amazon)
  • Jumperwires female-female (Amazon)
Step 1

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

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

Der Pin 1 muss mit dem Pin 11 (GPIO-Pin 17) des Raspberry Pis verbunden werden. Der Sender benötigt eine Spannung von 3.5-12V, weshalb wir, um eine größtmögliche Sendeleistung zu erreichen, diesen an einen 5V Versorgungs-Pin des Raspberry Pis anschließen (bspw. Pin 2). Außerdem müssen wir Pin 3 mit einem GND Pin des Raspberry Pis verbinden (bspw. Pin 6). Diejenigen, die sich noch nicht mit GPIO auskennen, können die Belegungen und den Aufbau der GPIO-Schnittstelle in dem Artikel GPIO-Schnittstelle erklärt nachlesen.

Außerdem haben wir oben rechts einen Anschluss um eine Antenne anzubringen oder anzulöten, um die Reichweite des Sendemoduls zu erhöhen. Als Antenne genügt ein Stück gedrehter Draht mit der Länge 17,3 cm. Ohne Antenne konnte ich durch übliche Ziegelwände eine Reichweite von rund 8 Metern feststellen.

Step 2

Wir brauchen zum Installieren der benötigten Software Git und Screen, welche wir über den Paketmanager installieren.

sudo apt-get install git screen

Step 3

Zur Ansteuerung des 433 MHz Senders benötigen wir die Bibliothek WiringPi. Hiervon holen wir uns mittels Git den Quellcode und führen das Build-Script aus, welches einige Dateien kompiliert.

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

Step 4

Außerdem installieren wir Raspberry-remote. Diese Software bietet uns eine Anwendung mit der wir einfach die benötigten Funkbefehle absetzen können und beinhaltet außerdem ein Webinterface auf dem wir später die Steckdosen steuern können.

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

Step 5

Nachdem der Raspberry Pi präpariert ist, müssen wir an die Funksteckdosen. Diese können wir auf der Rückseite aufschrauben und finden darunter zehn sogenannte DIP Schalter. Diese setzen sich aus fünf Systemcode-Stellen (1-5) und fünf Unitcode-Stellen (A-E) zusammen. Man kann die einzelnen Schalter ein- (1) oder ausschalten (0). Dabei ließt man die Werte von links nach rechts einfach ab.

Der Systemcode ist sozusagen der Schlüssel um die Steckdose ansprechen zu können und sollte somit bei allen Steckdosen gleich sein. Dabei ist es empfehlenswert diesen zu verändern, damit nicht euer Nachbar versehentlich eure Steckdose übernimmt. Ich habe mir diesen Beispielsweise auf 01100 gestellt. Sofern ihr die Fernbedienung neben dem Raspberry Pi nutzen möchtet, müsst ihr dort im Batteriefach den Code in der selben Weise verändern.

Der Unitcode gibt hingegen die Nummer der Funksteckdose an. Folglich sollte diese bei jeder Steckdose verschieden sein, außer man möchte mehrere Steckdosen zugleich steuern. Zu beachten ist außerdem, dass man nur einen Schalter (A, B, C, D oder F) aktiviert. In meinem Fall habe ich bei meiner ersten Steckdose den Unitcode 10000 (A aktiv) und bei der zweiten 01000 (B aktiv). Der Unitcode lässt sich in Steckdosen-Nummern übersetzen, die wir im Folgenden benötigen werden.

Unitcode Steckdosen-Nummern
10000 1
01000 2
00100 3
00010 4
00001 5
Step 6

Nachdem wir alle Informationen haben, können wir die Steckdose über den Raspberry Pi schalten. Dazu bedienen wir uns des send Kommandos von Raspberry-remote, bei dem wir den Systemcode, die Steckdosen-Nummer und den gewünschten Zustand (1 für einschalten, 0 für ausschalten) angeben müssen. Hat es funktioniert, so hören wir das Schalten der Steckdose.

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

Beispiel: Zweite Steckdose einschalten
sudo ~/raspberry-remote/send 01100 2 1

Step 7

Der grundsätzliche Aufbau steht und die Steckdosen sind ansprechbar. Damit ist es an der Zeit ein Webinteface in Betrieb zu nehmen, damit wir die Steckdosen bequem steuern können. Hierzu benötigen wir den Webserver nginx mit php5-fpm. Wie man diese Software installiert erklärte ich in dem Artikel Webserver Nginx installieren.

Step 8

Nun verschieben wir die Webinterface Dateien in einen Ordner namens remote-power-plug im Verzeichnis des Webservers.

sudo mkdir /usr/share/nginx/www/remote-power-plug
sudo mv ~/raspberry-remote/webinterface/* /usr/share/nginx/www/remote-power-plug

Step 9

Außerdem müssen wir die Konfigurationsdatei des Webinterfaces bearbeiten. In dieser müssen wir bei $target die IP-Adresse durch 127.0.0.1 (lokal; der Raspberry Pi selbst) ersetzen. Außerdem muss der Block $config durch unsere zuvor getroffenen Einstellungen ersetzt werden. Bei jeder Steckdose, als Array geschrieben, muss zunächst der Systemcode, anschließend die Steckdosen-Nummer mit anführender Null und abschließend ein Bezeichner für die Steckdose angegeben werden. Im Folgenden habe ich dies beispielhaft für die oben eingestellte Konfiguration umgesetzt. In dem Editor nano kann man mittels STRG + X, Y und Enter speichern.

sudo nano /usr/share/nginx/www/remote-power-plug/config.php

$target = '192.168.11.124';

ersetzen durch

$target = '127.0.0.1';

und

$config=array(
  array("00010", "01", "Schreibtisch"),
  array("00010", "02", "Laptop"),
  "",
  "",
  array("00001", "01", "Sofa Lampe"),
  array("00001", "02", "Sofa Steckdose"),
  array("00001", "03", "TV"),
  array("00001", "04", "Verstaerker"),
)

ersetzen durch (Beispiel)

$config=array(
  array("11111", "01", "Computer"),
  array("11111", "02", "Nachttischlampe"),
)
Step 10

Damit das Webinterface nun Befehle senden kann, benötigen wir noch den Raspberry-remote Daemon, welchen wir zunächst kompilieren und anschließend dafür ein kleines Startscript schreiben, welchem wir die Rechte ausgeführt zu werden geben müssen.

cd ~/raspberry-remote
make daemon
nano start.sh

#!/bin/bash
cd ~/raspberry-remote/
sudo screen -dmS RaspberryPiRemoteDaemon ./daemon &
exit 0

chmod +x start.sh

Step 11

Anschließend müssen wir das Startscript ausführen und man kann unter http://IP/remote-power-plug/ (IP durch IP-Adresse des Raspberry Pis ersetzen) das Webinterface aufrufen wie auch die Funksteckdosen schalten.

./start.sh

Step 12

Abschließend müssen wir den Daemon in den Autostart legen, sodass das Webinterface auch nach einem Neustart des Raspberry Pis einwandfrei funktioniert. Dazu fügen wir folgende Zeile am Ende der Crontab Datei ein.

crontab -e

@reboot /home/pi/raspberry-remote/start.sh

Damit sind die Funksteckdosen eingerichtet und über das Webinterface ansprechbar. Für die meisten Zwecke sollte diese Art der Steuerung reichen, jedoch könnte man diese natürlich um Intelligenzen erweitern.

Allgemeine Steuerung

Die Funksteckdosen lassen sich wie in Step 6 beschrieben ansprechen. Damit ist die Funktionalität der Steuerung allgemein geben – denn mehr als ein und aus geht im Grunde nicht.

Zeitsteuerung

Möchte man die Steckdosen zeitlich steuern, so bietet es sich an Crontabs zu verwenden. Wer deren Syntax nicht kennt kann einfach auf einen der diversen Crontab Generatoren zurückgreifen. Diese liefern einem die Angabe wann ein Befehl ausgeführt wird. Den Befehl kann man aus Step 6 übernehmen und die daraus resultierende Zeile am Ende der Crontab Datei eintragen.

Beispiel: Zweite Steckdose wird um 23:00 Uhr aus- und um 06:00 Uhr eingeschaltet
crontab -e

0 23 * * * ~/raspberry-remote/send 01100 2 0 >/dev/null 2>&1
0 6 * * * ~/raspberry-remote/send 01100 2 1 >/dev/null 2>&1

Es wäre möglich abhängig von weiteren Faktoren die Schaltung der Funksteckdosen zu beeinflussen. Jedoch ist dies je nach Anwendung individuell und muss folglich mit der allgemeinen Funktion des Steuerungsbefehls zusammenspielen.

Quellen: Einplatinencomputer, alex bloggt und Twitter @Landei00

64 Kommentare. Hinterlasse eine Antwort

  • Alexander
    April 19, 2015 10:14 am

    Moin,
    interessantes Thema 😉
    Du hast ja die mumbi-Steckdosen verlinkt. Bei diesen steht in der Amazon-Beschreibung “HausCode: Selbstlern-Funktion”. Bist du sicher, dass die Steckdosen noch DIP-Schalter haben? Irgendwie scheinen die meisten Hersteller mittlerweile auf die selbstlernenden Dosen zu setzen und welche mit DIP-Schalter sind nur noch vereinzelt erhältlich (das war vor 1-2 Jahren irgendwie noch anders…).

    Antworten
    • Jan Karres
      April 19, 2015 9:51 pm

      Stimmt, das steht in der Beschreibung. Bei der Nutzung konnte ich diese Funktion jedoch nicht bemerken.

      Antworten
      • Alexander
        April 20, 2015 7:02 pm

        Wenn die noch die DIP-Schalter haben werden es auch keine selbstlernenden sein, dort sind die Schalter nämlich überflüssig 😉
        Aber gut zu wissen, dass hier auch noch die „alte“ Variante verbaut wird. Danke!

        Antworten
  • Thomas
    April 20, 2015 9:02 am

    Hi,

    klasse Turorial, wie immer!
    Kl.Anm.: im Crontab muß es
    0 6 * * * ~/raspberry-remote/send 01100 2 1 >/dev/null 2>&1
    lauten, damit die Stecktose um Sechs Uhr angeschaltet wird.

    Antworten
    • Jan Karres
      April 20, 2015 5:06 pm

      Stimmt natürlich, ist verbessert. War ich beim Schreiben wohl zu schnell 😉 Danke!

      Antworten
  • Jörg
    April 20, 2015 10:31 am

    Hallo Jan,
    danke für Deinen Artikel. War auch gerade an der Planung und Hardwaresuche für so ein Projekt. Da kam Dein Artikel sehr gelegen. Frage: Muss es für das Einschaltkommando in crontag um 6 Uhr statt: „0 6 * * * ~/raspberry-remote/send 01100 2 0 >/dev/null 2>&1“ nicht „send 01100 2 1“ heissen? Oder habe ich etwas falsch verstanden?

    Antworten
    • Jan Karres
      April 20, 2015 5:08 pm

      Alles richtig verstanden. Danke für den Hinweis! Der Fehler ist korrigiert.

      Antworten
  • Christian Hesseling
    April 20, 2015 1:52 pm

    Hey!

    Tolle Anleitung, ich werde sie mir mal zu Herzen nehmen und durcharbeiten.

    Eine Frage habe ich aber:
    – Läuft das Daemon-Script auch mit Apache?

    Gruß
    Christian

    Antworten
    • Jan Karres
      April 20, 2015 5:10 pm

      Ich nehme an, dass es auch mit Apache2 und php5-fpm einwandfrei läuft, aber habe es nicht getestet.

      Antworten
    • Alexander
      April 20, 2015 7:01 pm

      Der Daemon arbeitet auch wunderbar mit Apache2 und PHP5 zusammen 😉
      Kurze Erklärung: Der Daemon an sich läuft ja erst einmal nur auf dem Raspberry Pi. Damit wird ein (web-) Socketserver zur Verfügung gestellt, mit dem sich hier eben das Webinterface via PHP verbindet. Man kann den Socketserver übrigens auch von außerhalb des Pis erreichen (sofern keine Firewall das verhindert), um z.b. mit Python oder einer anderen Programmiersprache einen Socket-Client umzusetzen, der sich damit verbindet und z.B. Schaltbefehle absetzt oder den Status abruft.

      Antworten
  • Björn
    April 21, 2015 11:10 pm

    Danke für die tolle Anleitung.
    Besteht die Möglichkeit noch zu erklären wie man von unterwegs, d.h. aus dem Internet per ddns die Steckdosen schalten kann? Dazu müsste man den WebServer mit einem Passwort sichern. Leider bin ich nicht in der Lage den Zugriff von außen mit einem Passwort abzusichern.

    Antworten
    • ALi
      April 22, 2015 9:50 am

      @Björn: VPN ist dein Freund…

      Antworten
    • Jan Karres
      April 22, 2015 5:42 pm

      Das Stichwort nach dem du hierfür suchen müsstest wäre „nginx basic auth“ und der Port 80 müsste freigeben werden. Ich werde die Anleitung (vorerst) nicht um diesen Punkt erweitern, da man sich bei Funksteckdosen, da diese im Falle eines erfolgreichen Angriffs durchaus Schadenspotenzial bieten, meiner Meinung nach mit dem Thema Sicherheit umfassender informieren sollte.

      Antworten
      • Christian Hesseling
        April 22, 2015 6:05 pm

        Entweder wie ALI schon sagt per VPN oder per NAT auf dem Port 80 greifen, von außen ist er dann z. B. 12398, dann wird er nicht mehr so oft abgeklopft.

        Antworten
      • Björn
        März 7, 2016 11:13 pm

        Hallo nochmals, ich habe mich dem Thema wieder gewidmet. Ich habe durch Ihre OpenVPN Anleitung jetzt Zugriff auf meine Steckdosen über das Internet. Muß ich hierbei noch etwas beachten?

        Antworten
        • hotspot0001Ulrich
          März 18, 2016 11:41 pm

          Hi Björn,
          ich habe meinen RasPi jetzt so weit, daß ich meine Funksteckdosen über den Webserver steuern kann. Wie kann ich das aber machen, daß ich nun aus der Ferne übers Internet meine Steckdosen schalten kann? Deine kurze Bemerkung oben habe ich nicht so recht kapiert (bin hier Anfänger). Ich habe meine Anfrage auch schon an Christian geschickt.

          Antworten
          • Björn
            Dezember 19, 2016 7:23 pm

            Hallo Ulrich,
            Ich habe die Openvpn Anleitung von dieser Seite hier befolgt und konnte so von außen in mein Heimnetzwerk. D.h. Ich kann dann über den internen Webserver zugreifen und so die Dosen z.B. Von meinem Smartphone Steuern.

  • [email protected]
    April 24, 2015 12:09 pm

    Hi – gibts hardwareseitig (nicht den rasp an sich) sondern das modul – keine fertige lösung, die man einfach aufstecken kann und gut ist?

    Antworten
    • Jan Karres
      April 26, 2015 9:49 pm

      Du könntest die Fernbedienung der Funksteckdosen nutzen. Der Zweck des Raspberry Pis ist es jedoch das ganze dynamischer gestalten zu können. Wenn du das nicht brauchst benötigst du keinen Raspberry Pi zur Steuerung.

      Antworten
  • Achim
    Mai 26, 2015 4:53 pm

    Ich bin etwas von den male/male Steckern verwirrt. Meinst du nicht female/female? An dem Funk-/Sendemodul sind doch Pins dran, auf die female-Stecker gehören 🙂

    Antworten
    • Jan Karres
      Mai 29, 2015 2:25 pm

      Vollkommen richtig, da hab ich einen Fehler gemacht. Habe es verbesset. Dankre dir!

      Antworten
  • Sebastian
    Juni 10, 2015 6:31 pm

    Wie sieht eigentlich die Reichweite des Senders aus? Kann ich dann nur Steckdosen um selben Raum ansteuern oder ist es auch raumübergreifend möglich?

    Antworten
    • Jan Karres
      Juni 16, 2015 1:48 pm

      Ich habe es ohne Antenne versucht und konnte damit aus ein Raum weiter auch noch steuern. Mehr jedoch nicht mehr.

      Antworten
      • Sebastian
        Juni 21, 2015 5:14 pm

        Danke. Also sollte es kein Problem sein, wenn der Sender relativ zentral im Flur steht.

        Antworten
        • Alexander
          Juni 22, 2015 4:33 pm

          Also bei mir steht der Raspberry im Keller und ich kann damit problemlos Steckdosen im ersten Stock schalten. Am Sender habe ich einen ca. 17cm langen Draht als Antenne angebracht, der Sender hängt bei mir nur an 3.3V. Kommt aber wahrscheinlich auch darauf an, wo du wohnst. Das 433MHz-Band ist ja sehr beliebt bei allen möglichen Fernbedienungen, das kann sich natürlich gegenseitig stören.

          Antworten
  • Robsn
    Juli 1, 2015 11:25 am

    Moin,

    zunächst ein Lob an deine Seite, ich habe schon einige deiner Tutorials erfolgreich realisiert.
    Bei diesem habe ich allerdings ein Problem bei der Ansteuerung der Funksteckdosen (3 von CSL und 2 von ELRO).
    Ich kann alle mit den Befehlen send 01100 2 1 jeweils nur einschalten aber KEINE mit send 01100 2 0 ausschalten, das geht dann leider nur über die dazugehörige Fernbedienung der Funksteckdosen.
    Komme hier irgendwie nicht weiter… Hast Du eine Idee?

    Antworten
    • Jan Karres
      August 3, 2015 10:40 pm

      Mhhh… das klingt strange. Anhand deiner Beschreibung klingt alles richtig. Habe da auf Anhieb leider auch keine Idee für dich, sorry.

      Antworten
      • Robsn
        August 11, 2015 10:04 pm

        Hat sich erledigt. Es war ein Problem mit der Reichweite des Transmitters.
        Nach anlöten einer Antenne hat funktionierte es.

        Antworten
  • Manuel
    Juli 13, 2015 9:15 pm

    Hey,

    erstaml danke für die super Anleitung von dir. Ich konnte sie jedoch bereits noch nicht so ganz umsetzten. 😛

    Ich hab das Problem, dass mein nginx Server mir die Fehlermeldung „504 Gateway Time-out“ liefert, wenn ich in der Adresszeile des Browser >> http://„meineIP“/remote-power-plug/ << eingebe.

    Vielleicht hatte das Problem ja auch schon jemand und weis wie man es beheben kann?
    Würde mich freuen wenn sich jemand meldet und mir dabei hilft es doch noch über den Webserver steuern zu können! 😛

    Antworten
    • Jan Karres
      August 3, 2015 11:10 pm

      Hast du denn php5-fpm, wie in Step 7 beschrieben, installiert? Ob php5-fpm läuft kannst du auch mit folgendem Kommando überprüfen.

      sudo /etc/init.d/php5-fpm status

      Antworten
  • cptwinter
    Juli 23, 2015 11:09 pm

    Hallo zusammen.

    Als blutiger Anfänger der bisher ein paar LED´s hat blinken lassen, habe ich nach einiger Web-Recherche hier eine super Anleitung gefunden. Vielen Dank dafür.
    Die Anleitung funktioniert auch mit Steckdosen aus dem T00m-Baumarkt. Was ich leider nicht hingekriegt habe, ist das aufsetzen des Webservers.

    Da ich ein Anfänger bin, habe ich beim Link wie ein Nginx-Server aufgesetzt wird erst nur die Anleitung bis Step 3 befolgt und dann hier in der Anleitung weitergemacht. Am Ende habe ich beim Aufrufen der http://“meineIP”/remote-power-plug/ nur ein 403 Forbidden Fenster erhalten.
    Habe dann noch die Steps für die PHP Installtion durchgeführt (Step 4-8). Danach wurde/wird die Index-datei mit der Fehlermeldung „php_network_getaddresses: getaddrinfo failed: No address associated with hostname (0)“ angezeigt.

    Weiß einer wo ich hier den Fehler gemacht habe? Muss ich alles nochmal neu aufsetzen und erst die Steps 1 – 8 aus der Nginx Anleitng befolgen, bevor ich hier weitermache? Das war mir hier nicht so ganz klar.

    Ich hoffe ihr könnt mir helfen!!! Danke im Voraus

    Antworten
    • Jan Karres
      August 3, 2015 11:35 pm

      Das könnte ein Rechteproblem sein. Versuch doch mal ob folgendes Kommando Abhilfe schafft.

      chown -R www-data:www-data /usr/share/nginx/www/remote-power-plug

      Antworten
  • Kelle
    August 25, 2015 7:34 pm

    Hallo Jan,
    Super Beschreibung hat alles wunderbar funktioniert.
    Eine Frage habe ich als Laie da aber noch.
    Ist es möglich die Funksteckdose per Fotosensor(oder widerstand) schalten zu lassen.
    also wenn es draussen hell wird das dann die Beleuchtung draussen aus geht.

    gruss
    Kelle

    Antworten
    • Jan Karres
      August 25, 2015 8:06 pm

      Wäre denkbar, dass man das als Bedingung zum Enden des Kommandos macht. Dazu müsste man ein entsprechendes Script für einen Sensor schreiben – das wäre aber schon wieder ein ganzer weiterer Artikel 😉

      Antworten
  • brocel1
    September 8, 2015 9:10 pm

    Guten Abend zusammen,

    habe das Tutorial wie oben beschrieben durchgeführt.
    Wenn ich in meinem Browser (Firefox, Chrome) die IP meines Raspberrys eingebe,
    erscheint der Text: Welcome to nginx! – Schönchen. Das bedeutet, dass der Server funktioniert.
    Anschließend habe ich IP/remote-power-plug eingegeben. (IP = IP-Adresse meines Raspb)
    Das Endergebnis war eine schwarze Seite. Innerhalb dieser die Meldung connection refused (111)

    Wie in Step 9 beschrieben hatte ich die IP
    $target = ‚192.168.11.124‘; auf 127.0.0.1 gesetzt.

    Da mein Raspberry aber eine statische IP besitzt, habe ich nun diese mal eingegeben. Wenn ich nun IP/remote-power-plug eingebe, so erscheint eine weiße Seite, auf der nichts angezeigt wird.

    Zu einem bin ich mir nicht sicher, warum vorher die Anfrage verweigert wurde. Muss man in der Fritzbox noch einen Port freigeben? Habe mal Port 11337(den hab ich aus der config.php des Ordner remote-power-plug) freigegeben.

    Oder kann es sein, dass das Webinterface angezeigt wird, aber keinen Inhalt besitzt? Wie soll das denn genau am Ende ausschauen?

    Ich hoffe, ihr könnt mir ein wenig weiter helfen.

    Gruß
    Marcel

    Antworten
    • Paul
      Januar 13, 2016 10:02 pm

      Antwortet Marcel doch mal bitte, habe ein ähnliches Problem

      Antworten
    • ralf
      Februar 16, 2016 11:35 pm

      Der daemon läuft nicht und muss gestartet werden.
      Dann gibts keine Fehlermeldung „connection refused“ mehr.
      Gruß Ralf

      Antworten
  • manuelgaviria
    September 21, 2015 4:25 pm

    Hallo Jan,

    erstmal super Tutorial! So, ich arbeite mit selbstlernenden Funksteckdosen (also ohne DIP Schalter) und möchte diese eben auch übers Raspi steuern. Ich habe über die normale Fernsteuerung (4 Kanäle + Master) jeder Steckdose einen Kanal zugewiesen. Danach habe ich über einen RFSniffer (von 433Utils) Dezimal-Codes für jeden Knopf herausbekommen und mir die Binärcodes kalkuliert, zB bei Kanal 1:

    ON 4542741 010001010101000100010101
    OFF 4542740 010001010101000100010100

    Kannst du (oder jemand anderer hier^^) mir sagen, ob ich diese Steckdosen mit Raspberry-remote steuern kann und wenn ja, wie der send-Befehl ausschauen soll?

    Gruß, Manuel

    Antworten
  • Rudi Röchel
    September 26, 2015 7:18 pm

    Hallo Jan,
    wollte mich auch für das schöne TUT bedanken und einen kleine Info hinterlassen, die anderen vielleicht auch hilft.

    Wenn mann beim Webinterface den „Hauscode“ 00000 verwendet funktioniert es nicht!!!
    Benutzt man einen anderen wo mind. eine 1 enthalten ist, dann funktioniert alles reibungslos 😉

    Warum bleib mir zwar ein Rätsel, ist aber so….

    Hat mich einiges an Zeit gekostet, bis ich auf die Idee gekommen bin, den Code mal zu ändern.
    Nur zum Verständniss ich hatte natürlich im Webinterface und an den Steckdosen immer den selben Code eingestellt.

    Gruß,

    Ralf

    Antworten
  • Horst
    November 17, 2015 2:03 pm

    Hi!

    Ist es möglich mit diesem Tutorial auch meinen bestehenden Raspy 2 und der laufenden HDD 2,5„ mittels phyton and the commend GPIO.output(38, True) und einen anderen GPIO Ausgang z.B. [url=http://abload.de/image.php?img=1yasp6.png][img]http://abload.de/img/1yasp6.png[/img][/url] eine elektrischen Verbraucher von 230V zu schalten – ohne, dass ich ein anderes Netzgerät bei Raspy 2 verwende?

    Antworten
  • Paul
    Januar 12, 2016 10:04 pm

    Kann man auch mehr als Fünf Funksteckdosen verwenden?

    Antworten
    • Paul
      Januar 13, 2016 2:53 pm

      ???

      Antworten
    • Marvin
      Januar 25, 2016 3:30 pm

      Das würde mich auch interessieren. Angenommen ich stelle an einer Steckdose die Dips bei A und B auf 1. Wie spreche ich diese Steckdose dann korrekt an?

      Antworten
  • Christoph
    Januar 17, 2016 12:31 pm

    Hallo Jan,

    erst einmal auch von mir vielen Dank für das tolle Tutorial. Das hat mir als blutigem Anfänger wirklich sehr geholfen!

    Leider habe ich ein kleines Problem mit dem Webzugriff. Wenn ich auf http://“meineIP”/remote-power-plug/ mit der IP des Raspberry zugreife erhalte ich die 404 – Not found von nginx. Ich bin jeden Schritt gewissenhaft durchgegangen, mein PHP5 Server steht auf active und bis Punkt 8 hat auch alles funktioniert..

    Kann mir hier jemand helfen?

    Vielen Dank schon mal!

    Beste Grüße

    Christoph

    Antworten
  • Michael L
    Januar 19, 2016 10:37 am

    Ich kann Dir dazu keine direkte Antwort/Lösung geben. Der beste Schritt bei der Behebung solcher Probleme ist, sich auch das Error-Log von nginx anzusehen. Der 404 wird sicherlich mit den Details geloggt, die Du brauchst um herauszufinden auf welche Resource er versucht zuzugreifen.

    Antworten
  • René Körner
    Januar 29, 2016 12:47 pm

    Hallo Jan,

    in Step 4 bekomme ich folgende Fehlermeldung:

    pi@raspberrypi:~/raspberry-remote $ make send
    g++ -Wall -lwiringPi -c -o RCSwitch.o RCSwitch.cpp
    RCSwitch.cpp:31:42: warning: converting to non-pointer type ‘long unsigned int’ from NULL [-Wconversion-null]
    unsigned long RCSwitch::nReceivedValue = NULL;
    ^
    RCSwitch.cpp: In constructor ‘RCSwitch::RCSwitch()’:
    RCSwitch.cpp:41:28: warning: converting to non-pointer type ‘long unsigned int’ from NULL [-Wconversion-null]
    RCSwitch::nReceivedValue = NULL;
    ^
    RCSwitch.cpp: In member function ‘void RCSwitch::enableReceive()’:
    RCSwitch.cpp:569:30: warning: converting to non-pointer type ‘long unsigned int’ from NULL [-Wconversion-null]
    RCSwitch::nReceivedValue = NULL;
    ^
    RCSwitch.cpp:570:34: warning: converting to non-pointer type ‘unsigned int’ from NULL [-Wconversion-null]
    RCSwitch::nReceivedBitlength = NULL;
    ^
    RCSwitch.cpp: In member function ‘bool RCSwitch::available()’:
    RCSwitch.cpp:582:38: warning: NULL used in arithmetic [-Wpointer-arith]
    return RCSwitch::nReceivedValue != NULL;
    ^
    RCSwitch.cpp: In member function ‘void RCSwitch::resetAvailable()’:
    RCSwitch.cpp:586:28: warning: converting to non-pointer type ‘long unsigned int’ from NULL [-Wconversion-null]
    RCSwitch::nReceivedValue = NULL;
    ^
    g++ -Wall -lwiringPi -c -o send.o send.cpp
    send.cpp: In function ‘int multipleSwitch(int, char**)’:
    send.cpp:36:17: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
    if (argv[1] = „-b“) {
    ^
    send.cpp:36:23: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
    if (argv[1] = „-b“) {
    ^
    send.cpp:85:61: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
    mySwitch.send(„010101010001000101010001“);
    ^
    send.cpp:89:57: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
    mySwitch.sendTriState(„FFFF0F0FFF0F“);
    ^
    send.cpp: In function ‘int main(int, char**)’:
    send.cpp:224:57: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
    mySwitch.send(„010101010001000101010001“);
    ^
    send.cpp:228:53: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
    mySwitch.sendTriState(„FFFF0F0FFF0F“);
    ^
    g++ RCSwitch.o send.o -o send -Wall -lwiringPi

    Ne Idee was das ist/ bzw. wie ich das beheben kann?

    LG René

    Antworten
  • hotspot0001Ulrich
    Januar 30, 2016 10:32 am

    Hallo alle zusammen,
    ich bin auch ganz neu mit dem RasPi und habe dasselbe Problem wie
    brocel1 vom 8. September 2015 um 21:10. Ich habe die IP meine RasPi eingegeben und erhalte die Meldung „Connection refused (111)“ . Kann mir jemand helfen?

    Antworten
  • David Berger
    Februar 14, 2016 9:22 am

    Hallo zusammen.

    Als erstes mal ein echt schön beschriebenes TUT, aber leider hab ich damit ein Problem.

    Ich habe mich genau nach der Beschreibung gehalten, auch bei dem nginx Server, der auch tadellos läuft.

    Doch leider bekomme ich wenn immer wenn ich mich auch http://meineip/remote-power-plug verbinden will, den Fehler 404.

    Habe auch schon in der Error.log von Nginx nach geschaut, ob dort ein Fehler vorliegt, aber in dem Fall leider nicht.

    Falls jemand eine Lösung für dieses Problem hat, wäre ich sehr verbunden

    MFG

    Antworten
  • Tim57
    Februar 17, 2016 5:47 pm

    Vielleicht hilft das:
    In der nginx config
    sudo nano /etc/nginx/sites-available/default
    einfach:
    alt: root /var/www/html
    ändern in
    neu: root /usr/share/nginx/www/
    speichern und neustarten:
    sudo /etc/init.d/nginx restart

    Möglicherweise noch:
    cd /usr/share/nginx/www/
    sudo chown -R www-data:www-data remote-power-plug/
    sudo find baikal/ -type d -exec chmod 755 {} \;
    –> sudo reboot

    Antworten
    • Tim57
      Februar 17, 2016 5:49 pm

      es muss natürlich (3. Zeile on unten)
      sudo find remote-power-plug/ -type d -exec chmod 755 {} \;
      heißen

      Antworten
  • Kokscola
    Februar 18, 2016 11:14 pm

    Vielen Dank für das super Tutorial!

    Ich bekomme aber bei eingabe von „http://xxx.xxx.xxx.xxx/remote-power-plug/“ nur eine Seite ohne Inhalt angezeigt.
    Kann mir jemand bei diesem Problem weiterhelfen?

    Danke!

    Antworten
  • Nzm
    März 14, 2016 3:09 pm

    Deine Anleitungen sind wie immer sehr gut! Bitte weiter so! Ich habe hierzu eine ähnliche Anleitung, allerdings unter Verwendung von 433Utils und einem Webserver, mit dem man über schlichte PHP-Dokumente die Funksteckdosen auch per Webinterface von anderen Computern oder Smartphones aus steuern kann: http://www.nazim-kenan.de/wie-man-mit-dem-raspberry-pi-und-einem-webserver-einfach-und-schnell-funksteckdosen-steuert/#more-439

    Antworten
  • hotspot0001Ulrich
    März 18, 2016 11:39 pm

    Hi Christian,
    ich habe meinen RasPi jetzt so weit, daß ich meine Funksteckdosen über den Webserver steuern kann. Wie kann ich das aber machen, daß ich nun aus der Ferne übers Internet meine Steckdosen schalten kann? Deine kurze Antwort oben habe ich nicht so recht kapiert (bin hier Anfänger).

    Antworten
  • quark007
    April 11, 2016 8:02 pm

    Ou man, ich hänge nun schon 2 Tage an dem blöden Webzugriff und bekomme es nicht zum laufen.
    Ich kann einrichten was ich will, sobald ich auf den Link klicke wird zwar registriert, dass das Gerät angeschaltet worden sein soll, es macht aber nix. Mit „send“ kann ich das Gerät aber einschalten.
    Gibt es seit einer neuen PHP oder NGINX Version vielleicht Probleme mit Rechten? Warum kann php sonst nicht mit dem Daemon kommunizieren? Auch mit „echo….“ bekomme ich es nicht hin. Die Steckdose geht einfach nicht an.

    Ich hoffe du kannst mir weiterhelfen.

    Antworten
  • dukennstmichnicht
    April 28, 2016 7:27 am

    Hallo,
    Ich habe mir mal selbstlernende Funksteckdosen bestellt und möchte nun wissen wie ich an den Geräte Code komme und was ich sonst noch anderes nach der Anleitung machen muss.

    Ich hoffe jemand hat hier schon Erfahrung damit.

    Antworten
  • Immanuel Simon
    Juni 2, 2016 6:45 pm

    Super Anleitung, Jan!
    Kann ich am PI erkennen ob eine Steckdose angeschalten ist und deren Status abfragen?

    Antworten
  • Patrick
    Juli 20, 2016 8:39 am

    Hallo Jan, ich überlege mir auch diese Steuerung zu basteln, gibt es auch eine Möglichkeit die Dosen danach mit einem Iphone (ab Modell 5 IOS 9.3.3) zu steuern?

    Antworten
  • Patrick
    Juli 21, 2016 6:07 pm

    Hi Jan,
    ich schon wieder, ich hab n problem mit dem anzeigen der Website und zwar bekomme ich wie Kokscola nur eine leere seite. Hat irgendjemand eine Lösung dazu?

    Antworten
  • Thorsten
    Januar 10, 2017 11:06 am

    Hallo,

    Hatte am Anfang Probleme verschiedene Funksteckdosen im Haus zu schalten. Anscheinend hat die Reichweite nicht gepasst. Habe mir dann dieses Set mit Antennen (http://www.ebay.de/itm/433-Mhz-Sender-Empfanger-Komplett-Set-Raspberry-Pi-Arduino-Modul-Funkmodul-/252713874872) geholt, und jetzt klappt es.

    Konnte die Reichweite mehr als verdoppeln. Ich denke, man kann die Antenne auch selber basteln mit einem Stück Draht. Hier ist dann aber wichtig, dass die Länge exakt zur 433 Mhz Funkfreuquenz passt.

    LG

    Antworten
  • Andy
    Juli 28, 2017 9:31 am

    Hallo,

    vielen Dank für das hilfreiche Tutorial! Leider hänge ich bei Schritt 6 fest.
    „pi@raspberrypi:~/raspberry-remote $ sudo ~/raspberry-remote/send 10011 3 1
    using pin 0
    sending systemCode[10011] unitCode[3] command[1]“

    Ich verstehe nicht wieso er mit Pin 0 senden will, muss ich doch noch irgendwo etwas einstellen?
    Übrigens würde mich die Meldung nicht weiter stören, aber er schaltet (dadurch?) eben auch nicht.
    Kannst Du mir ggf dazu etwas sagen bitte?

    Beste Grüße und vielen Dank

    Andy

    Antworten
  • Knut
    September 17, 2017 5:12 pm

    Hi Jan,

    vielen Dank für die super Anleitung, bei mir funktioniert auch alles so wie es soll.
    Aber ich hätte da noch eine Frage, kann man den GPIO ändern?
    Ich würde den GPIO 17 gerne für den OnOff SHIM nutzen.
    Oder gibt es evtl. eine andere Lösung?

    Schönen Gruß
    Knut

    Antworten
  • Knut
    September 21, 2017 6:41 pm

    Hi Jan,

    kaum liest man das README vom Raspberry-remote-Paket, schon findet man den Parameter p und alles ist gut. 🙂

    Schönen Gruß
    Knut

    Antworten
  • DreiBaer
    November 23, 2017 11:07 pm

    Hallo Jan,

    auch von mir: super Anleitungen! Vielen Dank dafür.

    Bei dieser hier musste ich auf PHP7 umsteigen, da das PHP5 nicht recht funktionieren wollte.
    Das hat auch alles funktioniert. Aber ich kriege die Adresse http:///remote-power-plug nicht aufgerufen. Da lädt der Browser ewig und irgendwann kommt dann die Gateway Timeout-Meldung.
    Kannst Du mir bei der Fehlerbehebung helfen?

    Gruß
    Björn

    Antworten
    • DreiBaer
      November 24, 2017 11:36 pm

      Ich habe jetzt die Sache etwas eingrenzen können. Es liegt scheinbar am Sendkommando des Webinterfaces zum Daemon. Dort wird noch eine Rückmeldung erwartet. Und die scheint nicht zu kommen.
      Habe ich evtl. falsche Angaben in der config.php eingetragen?
      Ich finde auf meinen Steckdosen immer nur einen 5-stelligen Systemcode und einen Buchstaben (A-E). Den Systemcode kann ich in der Konfiguration zuordnen. Aber was ist Group und was ist Plug?

      Antworten

Schreibe einen Kommentar Antworten abbrechen

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

Bitte füllen Sie dieses Feld aus.
Bitte füllen Sie dieses Feld aus.
Bitte gib eine gültige E-Mail-Adresse ein.
Sie müssen den Bedingungen zustimmen, um fortzufahren.

Jan Karres
Jan Karres
Wirtschaftsinformatiker
Facebook
Twitter
YouTube
LinkedIn
Xing
GitHub

Themen

  • Blogging
  • Debian (Linux)
  • Eine Geschichte aus dem Leben des Jan
  • Fotos
  • Gaming
  • Gedanken
  • Linksammlungen
  • Privates
  • Projekte
  • Raspberry Pi
    • Einplatinencomputer (außer Raspberry Pi)
  • Schule und Studium
  • Tipps und Tricks
  • Videos
  • Vorgestellt
  • WordPress

Projekte

Dieser Blog ist meine kleine Base im Internet, in der ich über Themen schreibe, die mich persönlich beschäftigen. Abseits davon habe ich weitere Projekte im Netz, die teils aus Spaß entstanden, jedoch zum Teil auch meinen Kühlschrank füllen.

Alle Projekte

JanKarres.de © 2007-2022

Neueste Beiträge

  • Raspberry Pi: WLAN Access Point mit NordVPN (VPN Router) einrichten Dezember 5, 2020
  • Real Cookie Banner: Wie das Opt-in Cookie Banner für WordPress entstand November 18, 2020
  • Blog Setup erneut: Aufräumen einer kleinen Historie Oktober 13, 2020
  • devowl.io: Auf geht’s in das WordPress Business! März 10, 2020
  • Kuschelpartys: Nähe und Geborgenheit einfach erleben September 30, 2018

devowl.io

Meine Brötchen verdiene ich im Internet. Dazu habe ich gemeinsam mit meinem Kollegen Matze die devowl.io GmbH gegründet. Gemeinsam entwickeln und vertreiben wir in unser Plugins und Entwickler-Tools im WordPress Umfeld.

Mehr erfahren
  • Datenschutzerklärung
  • Impressum