Raspberry Pi Funksteckdosen (433Mhz)Raspberry Pi Funksteckdosen (433Mhz)

GPIO, Projekte

Raspberry Pi Funksteckdosen (433MHz) steuern – Tutorial

Oftmals möchte man (Haushalts-)Geräte mit höherer Spannung auch mit dem Pi steuern können. Dafür eignen sich Raspberry Pi Funksteckdosen ideal, da sie sehr einfach zu steuern sind und man nicht in den Stromkreis eingreifen muss. Für solch ein und viele weitere Projekte bieten sich Funksteckdosen an, da sie sehr einfach auch über weitere Distanz im Haus mit kleinen Funksendern ferngesteuert werden können.

In diesem Tutorial zeige ich die Inbetriebnahme und Konfiguration von Raspberry Pi Funksteckdosen und wie sie mit dem Pi steuerbar sind.



Zubehör

Bei den Funksteckdosen ist es wichtig, dass man den Code per DIP-Schalter einstellen kann. Es gibt auch Modelle mit generischem Code. Ich habe einmal ein solches Gerät ausprobiert und konnte weder den richtigen Code auslesen, noch ein richtiges Signal senden. Zwar gibt es inzwischen auch Tabellen zu den angegeben Codes, aber wer auf der sicheren Seite sein will, nehme einfach z.B. die oben verlinkten (ohne generische Codes).

 

Aufbau

Der Aufbau unterscheidet sich nicht wirklich, dem hier gezeigten.

Raspberry Pi Funksteckdosen Steckplatine

Raspberry Pi 433Mhz Sender/Empfänger Aufbau

 

Kommen wir zur Einstellung der Steckdosen und Fernbedienung:

In der Fernbedienung kann ein 5-stelliger Code durch Einstellen der DIP-Schalter eingestellt werden. Diesen Code musst du auch in den Steckdosen einstellen (Öffnung auf der Rückseite). Daneben muss noch ein Name (A-E) angegeben werden. In meinem Beispiel habe ich die 00011 also Code genommen und die Steckdose als E gekennzeichnet.

 

Raspberry Pi Funksteckdosen Fernbedienung

Funksteckdosen Fernbedienung

 

Raspberry Pi Funksteckdosen (433MHz)

Raspberry Pi Funksteckdosen (433MHz) Hauscode

Durch die verschiedenen Codes ist es möglich quasi beliebig viele Steckdosen fernzusteuern.

 

Software zum Steuern der 433 Mhz Raspberry Pi Funksteckdosen

Es ist wichtig, dass du wiringPi bereits installiert hast. Falls noch nicht geschehen, steht hier beschrieben, wie es funktioniert.

Nun aktualisieren wir erst einmal alle Pakete und installieren git, falls noch nicht vorhanden:

sudo apt-get install git-core
sudo apt-get update
sudo apt-get upgrade

Wir holen uns nun die 433Mhz Bibliothek von Ninjablocks und kompilieren:

git clone --recursive https://github.com/ninjablocks/433Utils.git
cd 433Utils/RPi_utils
make all

Als erstes muss nun der Code der Fernbedienung ausgelesen werden. Falls du diesen bereits kennst, kannst du den Schritt überspringen. Ansonsten starten wir

sudo ./RFSniffer

und drücken auf der Fernbedienung die entsprechenden Tasten. Der empfangene Code wird nun angezeigt (bei mir ist es 5510417 für on und 5510420 für off). Nach Auslesen des Codes kannst du den 433Mhz Empfänger auch entfernen, falls er dich stört.

Jetzt erstellen wir eine neue C++ Datei mit folgendem Inhalt:

sudo nano steuerung.cpp

Anschließend muss die Datei auch noch kompiliert werden:

g++ -DRPI ../rc-switch/RCSwitch.cpp steuerung.cpp -o steuerung -lwiringPi

Und mittels

sudo ./steuerung 1

kannst du die Steckdose anschalten. Natürlich kann man sich hier noch ganz weitere Dinge überlegen und die Datei z.B. per Python einbinden. Da ist deine Kreativität gefragt 🙂



, , , , , , , ,


83 Kommentare

  1. hanspeter sagt:

    Hi,
    ich habe versucht, das mal nachzumachen. Allerdings:
    ich empfange den code der Fernbedienung, kann ihn auch senden (zumindest sagt der Sniffer, dass der Sender gesendet hat) nur die Steckdose reagiert nicht.
    Habe die Entfernung auf ein paar cm reduziert, nichts.
    Was mache ich falsch?

    • Felix sagt:

      Du benutzt Steckdosen, bei denen du den Code selbst einstellen kannst oder? Hast du den ausgelesenen Code der Fernbedienung oder den eingestellten Code gesendet?

  2. hanspeter sagt:

    Hi,
    danke schonmal fürs Antworten. 😉
    Ich habe die Fernbedienung ausgelesen (so als Plausibilitätscheck: 5263637=on, 5263636=off).
    Vergessen zu erwähnen: hab es erst mit verschiedenen Drähten, und dann auch mit einer speziellen 433mhz Antenne getestet, und da ich dachte ich wäre einfach zu doof dazu nochmal ein sender/empfänger mit bereits vorhandener Antenne bestellt.
    Keine Änderung =(

    • Felix sagt:

      Solange die Module nicht defekt sind, sollte es auch ohne Antenne funktionieren. Du hast aber in der Fernbedienung / Steckdose auch solche DIP Schalter oder? Falls nicht ändert sich der Code jedes mal (generisch) und du solltest mal pilight probieren.

    • hanspeter sagt:

      Hi,

      nope, haben sie nicht. Der Code den die FB sendet ist aber immer identisch (auch stromlos machen der Funksteckdosen ändert daran nichts bzw ich muss nichts neu „anlernen“)

    • Felix sagt:

      Das Problem bei solchen „generischen“ Steckdosen ist eben, dass du den Code nicht einfach auslesen und senden kannst. Daher habe ich extra solche mit DIP Schalter verlinkt. Je nach Modell könnten deine Steckdosen von pilight unterstützt werden.

  3. hanspeter sagt:

    Die hatte ich mir leider vorher schon gekauft ^^
    Anyway, mit „den richtigen“ klappte es auf Anhieb.
    Danke für den Tip, wäre ich neverever drauf gekommen ,)

    • Felix sagt:

      Das Problem kenne ich 😀 Hatte mir am Anfang auch ein Produkt mit generischem Code geholt (auf der Verpackung stand kein Wort davon) und diese wurden leider nicht von pilight unterstützt.
      Naja hauptsache ist ja, dass es nun bei dir klappz 🙂

  4. Flo sagt:

    Hallo,

    ich habe schon bei wünsch dir ein Tutorial erwähnt wie cool ich diese Seite finde! die Steuerung der Funksteckdosen sieht schonmal vielversprechend aus. Jedoch noch ein Zusatz, bzw. ein zusätliches Anliegen: Wie kann ich es realisieren, diese Steckdosen automatisch per Zeitschaltung anzusteuern? Besser wäre noch einen Dämmerungssensor mit einzubinden 🙂

    • Felix sagt:

      Wenn du zu gewissen Uhrzeiten etwas ausführen willst, bietet sich Cron an. Bsp. schreibst du zwei Skripte (zum an/ausschalten) und rufst sie zu gewissen Uhrzeiten auf.
      Leider kann man diese Steckdosen nicht zum dimmen benutzen, da sie nur an/aus gehen. Allerdings suche ich schon etwas länger nach einer dimmbaren Lösung (für Glühbirnen), aber die meisten sind entweder sehr teuer oder sind nicht über das Pi ansprechbar. Sollte ich eine gute Möglichkeit finden, wird es aber ein Tutorial dazu geben 🙂

  5. Max sagt:

    Ist, es möglich, statt einem C++ auch ein Python Script zu verwenden, und wenn Ja, wie genau bindet man dies in sein Script ein? Ich bin noch ein Anfänger und versuche es zu lernen, Danke schon mal im Voraus!

    • Felix sagt:

      Ich weiß nicht, ob es eine Python Bibliothek gibt, womit man Funksygnale senden/Empfangen kann. Ansonsten einfach ein C++ Skript aus Python aufrufen, dass den entsprechenden Code sendet (os.system(..)).

  6. Ingo sagt:

    Hallo,

    mir ist aufgefallen, daß in diesem Tut bei dem Sender VCC an GPIO und ATAD an 5V angeschlossen sind. Beim Empfänger ist der rechte Datenpin an GPIO angeschlossen.
    Bei dem anderen Tut (Raspberry Pi’s über Funk kommunizieren lassen)
    ist VCC=5V, ATAD an GIPO und beim Empfänger soll der Linke DATA genutzt werden.

    Ist das so beabsichtigt?

    Gruß Ingo

    • Kai sagt:

      Dasselbe habe ich mir auch gedacht. Es wird ein Fehler sein! Das „gelbe“ muss an ATAD und rot wie rechts auch an VCC (5V).

    • Felix sagt:

      Hey,
      danke für den Hinweis, ihr habt natürlich beide Recht! Habe es nun verbessert 🙂

  7. danilu sagt:

    Hallo,

    hab genau so eine Anleitung wie hier gesucht.
    Nur leider funktioniert bei mir das Auslesen des Codes schon nicht. Ich hab genau die Module von deinem Bild und hab sie auch so angeschlossen, wie du es eingezeichnet hast. RFSniffer zeigt aber einfach keine empfangenen Daten an.
    Das Empfangsmodul hoffe ich doch nicht, dass es defekt ist, da ich drei von denen getestet habe.
    Dass man den Empfänger an GPIO27 anschließen muss, bestimmt dieses WiringPi, ist das richtig?

    Hast du einen Tipp, was der Fehler sein könnte oder was ich probieren könnte, um den Fehler einzugrenzen?

    MfG Danilu

    • Felix sagt:

      Hey,
      einer der häufigsten „Fehler“ ist die Benutzung von generischen Codes. Leider werden viele solcher Steckdosen verkauft, bei denen man den Code nicht selbstständig einstellen kann. Damit wird es extrem schwierig, da sich die Codes ständig ändern (generiert werden). Das wäre also die erste Frage, ob du den Code (mit Dipschaltern) einstellen kannst?
      Der GPIO ist bisher so gesetzt, du kannst ihn allerdings auch ändern. Dazu schaust du dir die WiringPi Tabelle an und wählst einen anderen Pin. Die Nummer gibst du im Skript an und kompilierst erneut.
      Du kannst auch noch etwas anderes testen: Entweder du nutzt eine andere Funkfermbedienung (Garagentor, etc.) oder aber du wirfst einen Blick in dieses Tutorial (gleichzeitig vom Pi senden und empfangen): Raspberry Pi’s über 433 MHz Funk kommunizieren lassen
      LG Felix

  8. Sven sagt:

    Super Anleitung alles hat geklappt
    Aber wenn ich RFSniffer starten will kommt immer command Not found was mache ich falsch

    • Felix sagt:

      Kannst du den genauen Befehl kopieren, den du eingibst? Und bitte führ auch mal ein ls im Verzeichnis aus und kopiere auch den Inhalt hier rein.

  9. Lars sagt:

    Wie kann ich die Befehle zum einschalten einer Steckdose über einen Webserver verknüpfen?

    Danke im voraus

  10. Torsten sagt:

    Hallo,

    ich bekomme leider beim Kompilieren folgenden Fehler:
    steuerung.cpp:2:10: error: #include expects „FILENAME“ or
    #include <stdlib.h>
    ^
    steuerung.cpp:3:10: error: #include expects „FILENAME“ or
    #include <stdio.h>
    ^
    steuerung.cpp: In function ‘int main(int, char**)’:
    steuerung.cpp:15:17: error: ‘atoi’ was not declared in this scope
    if (atoi(argv[1]) == 1) { // hier kannst du deine eigenen Bedingungen setzen

    Auch beim Auslesen des Senders bekomme ich immer andere Werte angezeigt mal 5471 dann wieder 21855 ich dachte eigentlich diese Steckdosen (http://www.amazon.de/Elro-AB440S-3C-Funksteckdosen-Funksteckdose/dp/B002QXN7X6) wären dafür geeignet da diese ebenfalls auf der Rückseite 10 Pins haben.

    Hast du für diese zwei „Probleme“ eine Idee?

    Danke für jeden Tipp

    Gruß
    Torsten

    • Felix sagt:

      Die Fehler liegen daran, dass WordPress aus den eckigen Klammern <> immer &lt;&gt; macht. Ich habe das wieder gefixt. Wenn du den Code nun nimmst, klappt es, ansonsten einfach entsprechend durch eckige Klammern ersetzen.
      Bzgl deines zweiten Problems: Wichtig ist, dass du den Code auslesen kannst (durch einstellen der Pins). Kommen bei der selben Taste verschiedene Codes? Könnte es ggf. von anderen Geräten in der Umgebung kommen?
      LG Felix

  11. Torsten sagt:

    Danke für die schnelle Antwort, das erste Problem konnte ich damit auch lösen (hätte ich wohl auch selbst drauf kommen können :-))

    Allerdings bekomme ich mit der Fernbedienung immer noch unterschiedliche Nummern angezeigt.

    Andere Geräte habe ich eigentlich nicht in der nähe und ich erhalte mit dem Sniffer auch nur Werte (Received 4433 oder Received 5471 usw.) wenn ich die Taste an der Fernbedienung betätige.

    Hast du noch eine Idee?

    Gruß
    Torsten

  12. Torsten sagt:

    Ein noch: Wenn ich sudo ./send 11111 (Hauscode) 2 (Steckdose) 1 (on) eingebe erhalte ich Received 4433 und bei sudo ./send 11111 2 0 eingebe dann bekomme ich Received 4436
    Dies sind genau die Daten die ich auch mit der Fernbedienung erhalte 4433 für On und 4436 für Off

    Schalten kann ich die Steckdose aber leider auch hier nicht.

    Gruß
    Torsten

    PS: Die Steckdose ist im gleichen Raum und ca 2. Meter entfernt.

  13. Torsten sagt:

    Nachtrag: Es geht es lag wohl an der Reichweite… Ich werde mir wohl eine Antenne dran löten.

    Viele Grüße
    Torsten

  14. Timo sagt:

    Huhu, ich frage mich, ob ich bei dem standard 433MHz Sender die Data und VCC Leitung kombinieren kann, wenn ich den Sender an den Stromkreis einer Klingel (Batteriebetrieb) klemme. Denn der Sender soll nur Strom bekommen, wenn jemand klingelt und in diesem Moment soll der Sender auch Daten verschicken. Ich würde noch eine Schutzdiode einbauen und evtl. noch einen Kondensator, um Spikes abzufangen.
    Irgendwie finde ich keine genauen Specs vom Sender und der Data Leitung.

    • Felix sagt:

      Würde dann ein brauchbares Signal verschickt werden? Ich nehme an, dass du dann auf den Raspberry Pi komplett verzichtest (Sender)?

  15. derAuge sagt:

    Hallo
    Super Anleitung !

    Habe nach einigen Startschwirigkeiten alles ans laufen gebracht.

    Der Empfänger (am Pi) ist ohne Antenne doch etwas „schlecht“ beim Empfang
    Der Sender (am Arduino) schafft auch ohne Antenne eine kurze Reichweite (ein Raum weiter)

    Nun werde ich es noch in meine ioBroker – Installation einbinden müssen. Das sollte mit JS irgendwie klappen.

    • Felix sagt:

      Danke 🙂 Liegt wahrscheinlich daran, dass die 433Mhz Module für den Arduino gedacht sind, dessen Pins mit 5V arbeiten. 3.3V des Pi’s funktionieren auch, aber lassen das Signal etwas abschwächen.

    • Felix sagt:

      Sieht aus, als wird dabei ein generischer Code verwendet, was es sehr schwierig macht. Du könntest dir aber mal PiLight mal ansehen, das hat einige Codes gespeichert, vielleicht klappt es damit.

  16. Hagi sagt:

    Hallo alle zusammen,

    hab mal ne Frage, wenn ich den Sender Ansprechen will (sudo/raspberry-Remote / send 00100 1 1) bekomme ich eine Meldung “using pin 0” , was soll mir die Meldung sagen…….

    Hier der Auszug vom Terminal

    pi@raspberrypi ~ $ sudo ~/raspberry-remote/send 00100 1 1
    using pin 0
    sending systemCode[00100] unitCode[1] command[1]
  17. Hagi sagt:

    Ok aber warum bekomme ich die Ausgabe und warum schalten die Funk Dosen nicht ???? Wo ist mein Fehler

    • Felix sagt:

      Du hast bisher nicht gesagt gehabt, dass die Steckdosen nicht schalten. Versuch mal einen anderen Code in den Steckdosen einzustellen bzw. nutze mein Skript anstelle von dem send-Skript. Auch kannst du einen anderen wiringPi Pin probieren (neu kompilieren nicht vergessen).

  18. Ryz3D sagt:

    Hi!
    Ich dachte, ich würde keinen Empfänger brauchen, da ich vermutete, die Codes online zu finden. Ich habe exakt die gleichen Steckdosen wie im Tutorial, könnte jemand die Codes für A, B und C jeweils An und Aus schreiben? Würde mir sehr helfen!

    • Sven sagt:

      Im gleichen Verzeichnis findet du das kleine Programm send.
      Damit kannst du via ./send 00000 1 0 die Steckdosen schalten, ohne den Code vorher sniffen zu müssen. Das Verfahren ist ganz einfach:
      Die ersten 5 Stellen sind der Code der Steckdose
      Die 6. Stelle ist der Buchstabe (1=A, 2=B, 3=C, 4=D, E=E)
      Die 7. Stelle ist ein/aus 1/0
      Dabei sind Leerzeichen zu beachten.

      sudo ./send xxxxx x x

      Es reicht also für 160 Steckdosen aus 🙂

  19. Marko sagt:

    Hallo Felix,
    Erstmal: super Seite! Werde versuchen einige deiner Tutorials nachzumachen. Starten möchte ich mit diesem hier.
    Frage: die von dir verlinkten Steckdosen sind ziemlich „klobig“. Gibt es eigentlich keine Funksteckdosen? Man sieht immer nur diese großen. Wäre doch super wenn es richtig kleine gibt, von denen man Dan möglichst mehrere in eine Mehrfachstockdose bekommt.

    Gibt’s da welche die mit deinem Tutorial hier funktionieren?

    Lg
    Marko

    • Marko sagt:

      Ich meine „gibt es eigentlich keine kleinen Funksteckdosen“
      (blöde autokorrektur)

    • Felix sagt:

      Hallo Marko,
      erst einmalo danke für das Lob 🙂
      Alle Funksteckdosen, welche ich bisher in den Fingern hatte, waren recht groß und nicht für den Einsatz in Mehrfachsteckdosen geeignet (zumindest nicht zwei nebeneinander). Wichtig ist aber eigentlich nur, dass man den Code manuell eingeben kann. Es gibt wahrscheinlich auch kleinere, jedoch meist mit genereischem Code. Das hat den Nachteil, dass man diese Codes nur schwer auslesen und senden kann.
      LG, Felix

  20. Björn sagt:

    Hallo,

    leider bekomme ich den Fehler auch:

    pi@raspberrypi:~/433Utils/RPi_utils $ sudo ./RFSniffer
    sudo: ./RFSniffer: command not found

    Im Verzeichnis /rc-switch ist nichts

    pi@raspberrypi:~ $ git clone https://github.com/ninjablocks/433Utils.git && cd 433Utils/RPi_utils && make all
    Cloning into ‚433Utils’…
    remote: Counting objects: 191, done.
    remote: Total 191 (delta 0), reused 0 (delta 0), pack-reused 191
    Receiving objects: 100% (191/191), 38.54 KiB | 0 bytes/s, done.
    Resolving deltas: 100% (84/84), done.
    Checking connectivity… done.
    make: *** No rule to make target ‚../rc-switch/RCSwitch.o‘, needed by ’send‘. Stop.

    Somit schlägt auch das make all fehl.

    pi@raspberrypi:~/433Utils/rc-switch $ ls
    pi@raspberrypi:~/433Utils/rc-switch $

    Jemand eine Idee, wäre sehr nett, danke.

  21. Daniel sagt:

    git clone --recursive git://github.com/ninjablocks/433Utils.git verwenden.

    Siehe https://github.com/ninjablocks/433Utils

  22. Nico sagt:

    Hi, nachdem ich nun alles durchgemacht habe und auch die Codes ausgelesen, sowie in die Steuerung.cpp eingetragen habe, würde ich es gerne kompilieren.

    Mir wird leider angezeigt:

    g++: error: RCSwitch.cpp: Datei oder Verzeichnis nicht gefunden

    Was genau mache ich denn falsch?

    LG
    Nico

  23. Nico sagt:

    danke, das war es! 🙂
    Super Blog übrigens. Gefällt mir sehr gut!

  24. Filip sagt:

    Hallo,

    1) in dem git clone Befehl sind falsche striche. Wenn man 1:1 kopiert kommt ein Fehler.
    Richtig:
    git clone --recursive https://github.com/ninjablocks/433Utils.git && cd 433Utils/RPi_utils && make all

    Weiterhin habe ich beim Kompilieren ein Fehler.

    pi@raspberrypi:~/433Utils/rc-switch $ g++ -g RCSwitch.cpp steuerung4.cpp -o steuerung4 -lwiringPi
    In file included from RCSwitch.cpp:34:0:
    RCSwitch.h:45:26: fatal error: WProgram.h: Datei oder Verzeichnis nicht gefunden
         #include "WProgram.h"
                              ^

    Habe die Datei Steuerung 4 für die 4te Fernbedienung genannt. Das dürfte nicht der Fehler sein.

    Ich vermute das hier ein Fehler bei C++ vorliegt. Habe vorher ein Update und ein Upgrade gemacht, wie beschrieben.

    Weiterhin fällt mir auf das Ihr einfach immer mit SUDO im Hauptverzeichnis rummacht, aber bei mir muss ich immer in das entsprechende Verzeichnis wechseln. z.B. cd 433….

    Wie kann ich hier die Locate Funktion nachinstallieren? Ich komme mit find nicht so gut klar.

    • Felix sagt:

      Danke für den Hinweis, nun ist der richtige Bindestrich wieder drin.
      In der neuen Version wird der Parameter RPI auf dem Raspberry Pi gesetzt. Daher lautet der neue Befehl zum kompilieren:

      g++ -DRPI ../rc-switch/RCSwitch.cpp steuerung.cpp -o steuerung -lwiringPi

      Außerdem musst du den Pfad zur RCSwitch.h Header Datei im Code anpassen.
      Bezüglich des cd Befehls: Ich habe ihn davor schon ausgeführt und befinde mich anschließend im Verzeichnis (Du hast ihn ja auch korrekterweise mit kopiert). Welche Locate Funktion meinst du?

  25. Filip sagt:

    Ich habe es schon anders gelöst. Ich habe es direkt manuell gesendet.

    pi@raspberrypi:~/433Utils $ sudo ./codesend 5510420

    also direkt über

    sudo ./codesend 5510420

    Man kann auch dann bei anderen Herstellern das hier vielfach beschriebene

    sudo ./send 1234 1 0

    für die Steckdosenreihe 1234 Steckdose 1 Zustand 0

    Weiterhin habe ich ein Webserver installiert. Apache php usw. das kann man überall nachlesen. Mit den apt-get befehl.

    Dann habe ich mir ein Script gebastelt:

    <?php
    $output = shell_exec('sudo /home/pi/433Utils/RPi_utils/codesend 5510420');
    echo "$output";
    ?> 

    Am Anfang funktioniert es nicht. Dann las ich nach.
    Möglicher Fehler php und Apache SAFE Mode
    Da ich aber die neueste PHP Version habe, scheint es so als wenn die Funktion abgeschafft wurde. Ich habe ja keine Rechte als Webserver die SUDO Funktion zu nutzen. Daher habe ich mir für das eine Script die Rechte beschafft:

    Lösung:

    sudo visudo

    Die Zeile einfügen:

    www-data ALL=NOPASSWD:/home/pi/433Utils/RPi_utils/codesend

    zur Sicherheit habe ich dem Script mit chmod ne 777 gegeben, damit ich mich nicht mit den Rechten nicht rumärgern muss.

    dann habe ich mich beim https://www.noip.com/ KOSTENLOS eine DYN DNS Adresse beschafft. Die habe ich zur Vereinfachung über mein online Server auf über auf eine sub Domain geleitet. Also z.B. subdomain.mainserver.de

    hier habe ich dann in
    /var/www/html/schalter41.php

    die Steckdose 4 zustand 1 mit dem oberen Script bestückt.

    Es klappt wunderbar. Ich konnte jetzt über das iPhone oder Samsung Galaxy auf

    subdomain.mainserver.de/schalter41.php

    zugreifen dann ging die Steckdose an. Das habe ich mir mit einen Symbol auf dem iPhone Desktop abgelegt. Schon kann ich mit iPhone meine Steckdosen über den Raspberry PI steuern.

    Heute Nacht ging alles wunderbar. Heute morgen allerdings nicht. Ich komme nicht mehr über den link auf den Rasbperry. Ich lande im Time Out. Obwohl ich es im internen Netzwerk trotzdem über 192.168.2.78/schalter41.php ansteuern kann.

    Den Fehler finde ich aber auch noch :0)

    Eines ist mir aufgefallen. Entweder habe ich Eure Zeichnung falsch gedeutet oder die ist falsch. Bei meinen Raspberry PI war die Verschaltung nicht so wie hier:

    Der Pin Rechts 1 und 2 sind jeweils 5 Volt Anschlüsse. Bei Dir steht hier der Pin 1 als + Anschluss. Das funktionierte bei mir ums verrecken nicht. Fragt nicht wieso. Beim Empfänger ging es. Beim sender musste ich auf den 2 Pin ausweichen. Das geht jetzt.

    Für die Leute die sich so eine Anschluss Platine nicht dazu geholt haben, liest erstmal die Zahlen der Funkfernbedienung mit dem Empfänger raus (Klemmt also nur die eine direkt Platine an) und dann macht die ab und klemmt den Sender an. Dann müsst Ihr nichts notdürftiges basteln, sondern nimmt die kleinen zugekauften Kabel.

    Zu meinen Locate:

    Es gibt sicherlich viele Wege um Dateien im Linux System zu suchen.

    eine davon ist find.

    Ich bevorzuge locate. Das kann man mit apt-get nachinstallieren. Dann muss man aber den Befehl

    updatedb

    ausführen, dann wird eine Datenbank der Dateien auf dem Rechner erstellt. Dann kann man mit einen einfachen Befehl suchen:

    locate bild.jpg

    noch ein Tipp für Anfänger. Wenn Ihr nicht wisst wie man Dateien hin und her kopiert, Rechte vergibt usw. Installiert Euch den Midnigt Commander kurz mc

    sudo apt-get install mc

    das ist ein Dateimanager wie damals ähnlich den unter Windows 95.

    • Felix sagt:

      Hallo Filip,
      erst einmal danke für deinen ausführlichen Kommentar. Zum Aufbau („Der Pin Rechts 1 und 2 sind jeweils 5 Volt Anschlüsse.“): Du meinst Pin 2 und 4, nehme ich an? Da beide 5V liefern, sollte es keinen Unterschied machen.
      LG, Felix

    • Ralph sagt:

      Zitat: „Heute Nacht ging alles wunderbar. Heute morgen allerdings nicht. Ich komme nicht mehr über den link auf den Rasbperry. Ich lande im Time Out. Obwohl ich es im internen Netzwerk trotzdem über 192.168.2.78/schalter41.php ansteuern kann.

      Den Fehler finde ich aber auch noch :0)“

      Falls Du den Fehler noch nicht gefunden haben solltest: DynDNS funktioniert nur bis zur Zwangstrennung durch Deinen Provider. Danach hast Du eine neue IP-Adresse (meistens jedenfalls) und die musst Du Deinem DynDNS-Anbieter erst einmal mitteilen. Geht am Einfachsten durch die passende Einstellung im Router.

      Zum Autor dieses Tutorials: Schön geschrieben, nachvollziehbar. Danke dafür.

      Ralph
      Ralph

  26. Leon sagt:

    Hi,
    klasse Tutorial gibt es eine Möglichkeit einen Bestimmten Code den der RFSniffer empfängt eine bestimmte Aktion auszuführen? Bspw. mehrere Funksteckdosen einzuschalten.
    Danke im voraus

  27. TimL. sagt:

    Moin ihr Lieben,
    habe seit gestern angefangen, mich mit dem raspberry pi zu beschäftigen. Da ich von Programmieren &Co keine Ahnung habe, hielt ich Ausschau nach einfachen Tutorials und das mit den Funksteckdosen (habe sie überall im Einsatz sehr umständlich mit 3 Fernbedienungen) wäre so mein Beginner-Projekt. Ich muss mich erstmal rantasten und checken, ob sich die Ausgaben für den Spaß lohnen, meistens scheitert es an der fehlenden Zeit, sich mit sowas intensiv zu befassen. Bis hier hin erstmal tolle Arbeit, so erscheint das Komplizierte doch auch für Einsteiger einfach.
    Allerdings ist mir eines noch nicht so ganz klar, kann man einen raspberry auch für mehrere Zwecke einsetzen oder beschränkt sich das immer auf eine Sache ? (mein Plan war es sowohl die Steckdosen zu schalten als auch daran angeschlossene LED-Stripes zu steuern)

    Aber das war nicht meine ursprüngliche Frage 😀 : Gibt es eine Art Webinterface fürs Tablet und Smartphone mit einfacher Erklärung ?

    Viele Grüße
    Tim

  28. Simon sagt:

    Hallo,
    generell erstmal danke für die echt tolle Seite und die super Tutorials die du hier vorstellst.

    Leider habe ich jetzt ein Problem bei diesem Tutorial:

    Wenn ich den Befehl zum kompilieren der zwei Dateien eingebe erhalte ich folgenden Error:

    g++: error: ../rc-switch/RCSwitch.cpp: No such file or directory
    g++: error: steuerung.cpp: No such file or directory

    Was mach ich falsch?

    Gruß

  29. Günther sagt:

    Günni
    Hallo Felix,
    habe alles so nachgebaut wie beschrieben. Ich kann auch die Funksteckdose mit dem Befehl sudo ./steuerung 1 einschalten aber nicht mehr ausschalten. Hatte eigentlich erwartet, dass ich mit dem Befehl sudo ./steuerung 0 die Steckdose wieder ausschalten kann! Geht aber nicht. Ich kann die Funksteckdose über den Handsender wieder ausschalten, aber danach mit sudo ./steuerung 1 nicht wieder einschalten. Erst nach dem Neustart des Raspi kann ich die Funksteckdose wieder genau einmal einschalten.
    Woran kann das liegen?
    LG Günni

  30. Bernd sagt:

    Hallo,

    erst mal danke für die Anleitung, war ein prima Start. Leider hatte ich lernende Steckdosen (Flamingo, elro) bekommen, obwohl in der Beschreibung stand „Sendesignal mit einstellbaren Codes“. Die Codes der Fernbedienung konnte ich mit dem Sniffer wunderbar empfangen. Das ganze wieder zu Senden hat aber zunächst nichts bewirkt. Ich habe dann ein zusätzliches Protokoll in RCSwitch.cpp eingefügt:
    { 300, { 1, 15 }, { 1, 3 }, { 3, 1 } }, // Protocol 6
    Außerdem müssen 28 Bits anstatt der 24 im Code gesendet werden.

    LG,
    Bernd

  31. Justin sagt:

    Ich bekomme immer den Fehler „undefined reference to… „

  32. Dikiva sagt:

    Hallo
    Danke für die super Anleitung. Alle Wegen haben geklapt. Für das erste Projekt ein echtes Erfolgserlebnis.
    z.b. ./send 10101 4 0 als auch sudo ./codesend 1119505
    kann man das umrechnen? Ich habe Steckdosen von Intertechno, Die haben keine Dipschalter, senden aber auf dem konstanten Code. mit sudo ./RFSniffer
    kann ich die Fernbedienung einlesen und auch den Befehl wieder senden. Leider ist die Reichweite noch zu klein. Die Antenne wird in den nächsten Tagen angepasst.

  33. LarsMq sagt:

    Hi,
    habe gerade schon in einem anderen Artikel eine Frage gestellt, und da etwas sehr sehr wichtiges vergessen:

    DANKE für die super einfachen (auch für Laien verständlichen) Erläuterungen in den ganzen Artikeln!
    Super Seite!

    Gruß,
    LarsMq

  34. Maximilian sagt:

    Guten Tag,
    bezüglich der PIN Belegung habe ich eine Frage.
    Ich habe Euer Projekt mit der IR-Diode (http://tutorials-raspberrypi.de/raspberry-pi-fernbedienung-infrarot-steuerung-lirc/) erfolgreich umgesetzt und wollte meinen Raspberry gleichzeitig als 433MHz Sender zum schalten der Funksteckdosen nutzen, wie in diesem Projekt beschrieben (ebenfalls erfolgreich umgesetzt).
    Jedoch werden in beiden Projekten der GPIO PIN17 verwendet. Gibt es eine Möglichkeit in einer der beiden „Software-Pakete“ (LIRC und/oder 433Utils) den „Data-PIN“ zu wechseln?
    Vielen Dank im Voraus für eine kurze Rückmeldung.

    Grüße
    Max

    • Felix sagt:

      Du kannst den LIRC Pin ändern, dann musst du dies in den Einstellungen anpassen (siehe auch dieses Tutorial). Wenn du den Pin für den 433 MHz Sender/Empfänger änderst, musst du die WiringPi Belegung verwenden und den C++ Code neu kompilieren, nachdem du die Pnnummer angepasst hast.

  35. digitalnaive sagt:

    Hi Felix,

    auch von mir erst mal ein Kompliment für die tolle Seite. Jetzt habe ich soweit alles nachgemacht wie im Tutorial angegeben und den Snif Befehl ausgeführt.

    Wenn ich auf meiner Fernbedienung die Taste A On drücke, kommen bei mir im Raspberry 2 verschiedene Ergebnisnummern.

    Ich hab jetzt mal beide versucht in der steuerung.cpp einzubinden und mit dem ./steuerung 1 die Steckdose anzuschalten. Das klappt leider nicht.

    Es könnte natürlich an der Qualität der Sender/Empfänger (FS1000A) liegen. Finde ich das wirklich nur raus wenn ich die Steckdose direkt neben den Pi stelle? Sniffen konnte ich die Befehle ja durchaus. Zwischen Pi und Steckdose liegen ca. 3 Meter. Die Fernbedienung sniffen habe ich mit ca. 1,5 Metern gemacht.

    Gibts noch eine andere Idee?

    • digitalnaive.de sagt:

      Kommando zurück. Ich habe testweise die Steckdose direkt neben den Pi, da kommt das Kommando 1a an. Dann muss ich mir wohl einen qualitativ hochwertigeren Sender holen.

    • Felix sagt:

      Ich hatte auch schon öfters, dass zwischendrin irgendwelche anderen Codes empfangen wurden. Ich denke, dass der Code einfach nur nicht richtig empfangen werden konnte. Der Code, der häufiger gleich empfangen wird, ist (meist) der richtige 🙂

  36. Jörg sagt:

    Ich wollte nur kurz Danke für das Tutorial sagen. Klappt wunderbar und mit einer Modifikation des PHP Skriptes von Filip lässt es sich auch von der Hausautomation ansteuern.

  37. Wie kann man es steuern ? sagt:

    moin moin

    wie kann ich die dosen denn steuern wenn alles fertig ist ?
    per app `?

    Ich habe eine harmony elite fernbedienung… damit würde ich sie am liebsten ansteuern

  38. Peter sagt:

    Hallo,
    ich möchte (weil die Funkfernbedienung nur eine begrenzte Anzahl Tasten hat) die Tasten „doppelt“ belegen, also kurz drücken soll was anderes machen als lang drücken. Wie kann ich das in einem Skript unterscheiden?

    • Felix sagt:

      Reagiert deine Steckdose auf die verschiedenen Signale? Wenn ja, könntest du die Codes evtl. mehrfach hintereinander schicken. Müsstest du aber ausprobieren, kann dir nicht 100% sagen, ob das klappen wird.

  39. Anonym sagt:

    Es wäre interessant, sofern möglich, ob man die hier verlinkten Funksteckdosen mit dem Sender per Webinterface steuern kann

Schreibe einen Kommentar

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

Blog abonnieren

Abonniere Tutorials-RaspberryPi, um kein Tutorial mehr zu verpassen!