Selbstlernende Funksteckdosen (ohne DIP-Schalter) mit dem Raspberry Pi steuern

Schon länger wollte ich einmal Funksteckdosen mit einem Raspberry Pi steuern.  Also ein & ausschalten!

Und da ich mich in letzter Zeit sehr Intensiv mit meinem neuem 3D Drucker dem Creality Ender 3 Pro (*Amazon Link) beschäftige, musste ich mir die Zeit einfach einmal nehmen 😉

Da ich den 3D Drucker über den Raspberry Pi steuern & überwachen, sowie den Drucker & dessen Beleuchtung ein / ausschalten wollte, habe ich auf dem Raspberry Pi „Octoprint“ installiert.
Was im Prinzip ja nicht anderes ist als Raspbian Linux, nur eben mit der Steuerungssoftware „Octoprint“ bereits vorinstalliert 😉 

Es gibt zwar eine Menge an Tutorials dafür, die meisten davon verwenden aber noch alle „alte“ Funksteckdosen mit DIP-Schaltern.

Da ich aber solche Funksteckdosen kaum mehr zu bekommen sind, brauchte ich eine Lösung die auch mit den „neueren“ sogenannten selbstlernenden Funksteckdosen funktioniert 😎 

Daher möchte ich hier eine kleine Anleitung schreiben, wie das funktioniert & welche Teile / Hardware ich hierfür verwendet habe 😉

 

Folgende Hardware habe ich für meinen Testaufbau verwendet bzw. wird benötigt:

Software:

  • Win32DiskImager (um das Image auf die SD Karte zu schreiben)
  • Putty oder anderer SSH Client

Optional noch:

 

Hat man alles nötige beisammen, kann es auch schon losgehen 😉

In dieser Anleitung gehe ich übrigens davon aus, dass Raspbian oder Octoprint oder ein anderes Linux schon auf der SD-Karte installiert ist, bzw. auf dem Raspberry Pi läuft!
Auch gehe ich davon aus, dass jeder weiß wie man sich auf dem Pi verbindet & anmeldet 😉
Außerdem setzte ich hier auch grundlegende Linux & Raspberry Pi Kenntnisse voraus
😆
Falls das noch nicht der Fall ist, gibt es im Netz ja genügend gute Anleitungen.

(Sollte aber dennoch jemand Hilfe etc. brauchen, so kann er sich aber gerne an mich wenden!)

 

Nun kann es los gehen 😉

  1. Zuerst verbindet man sich mit Putty oder einem anderen SSH Client auf den Raspberry Pi, und loggt sich dort ein.
  2. Als nächstes aktualisieren wir den Pi nochmals, bevor wir die benötigten Programme installieren mit:
    apt-get update
    apt-get upgrade
  3. Danach installieren wir „GIT“ und „WiringPi„:
    apt-get install git
    git clone git://git.drogon.net/wiringPigit
    cd wiringPi
    ./build
  4. Als nächstes müssen wir das Empfangsmodul & das Sendemodul am RPi bzw. dessen GPIO Pin’s anschließen:Für das Sendemodul verbinden wir nun folgende Pin’s mit dem Pi:

    Raspberry Pi GPIO 17 -> DATA 433Mhz Sendemodul
    Raspberry Pi GND -> GND 433Mhz Sendemodul
    Raspberry Pi 5V -> VCC 433Mhz Sendemodul

    Für das Empfangsmodul verbinden wir die folgenden Pin’s mit dem Pi:
    (hier sieht man übrigens auch gleich nochmal das vorhin angeschlossene Sendemodul 😉 )Raspberry Pi GPIO 27 -> DATA 433Mhz Sendemodul
    Raspberry Pi GND -> GND 433Mhz Sendemodul
    Raspberry Pi 5V -> VCC 433Mhz Sendemodul

    Und hier auch noch (falls es jemand braucht) die Belegung der GPIO Pin’s auf dem Raspberry Pi selbst:


    ➡  Falls auch noch jemand sehen möchte wie es bei mir im angeschlossenen Zustand ausgesehen hat….. 😎

  5. Um den 433 MHz Sender & den 433Mhz Empänger nun ansprechen zu können, benötigen wir noch die Bibliothek „433UtilsVorher müssen wir aber noch „Git-Core“ installieren mit:
    apt-get install git-core
    apt-get update
    apt-get upgrade

    Danach installieren wir die „433Utils“:
    git clone --recursive https://github.com/ninjablocks/433Utils.git
    cd 433Utils/RPi_utils
    make all
  6. Im nächsten Schritt lesen wir den Code für jede Taste der Fernbedienung aus.
    Sprich für die erste Steckdose Taste EIN & Taste AUS, gibt es jeweils einen eigenen Code!Hierfür welchen wir in nun in den Unterordner „. /RFSniffer„, und starten das gleichnamige Programm „RFSniffer
    cd RFSniffer
    ./RFSniffer
  7. Jetzt halten wir die Fernbedienung zum Empängermodul, und drücken dort z.B. für die erste Steckdose die Taste EIN.
    In Putty bekommen wir danach eine Meldung die uns den CODE der jeweiligen Taste mitteilt:
    ➡  Recieved XXXXXXX (wobei die X hier für die Zahlenkombination der jeweiligen Taste steht!)Das ganze wiederholt Ihr nun mit jeder Taste, und das jeweils für EIN & AUS!

    Notiert auch diese Codes, penibel!
    Also welcher Code für welche Taste ist, und auch ob dieser für EIN oder für AUS ist!
    😉
    💡  Achja, am besten steckt Ihr bevor Ihr das macht, die Funksteckdosen auch noch in eine richtige Steckdose, mit einem kleinem Verbraucher wie einer Lampe… 😉
  8. Hat man alle Codes ausgelesen & notiert, beenden wir das Programm „RFSNiffer“ , indem wir „STRG+Cdrücken.
  9. Jetzt kommen wir zu dem Teil des ganzen hier, der richtig Spaß macht!
    Wir steuern erstmals die Funksteckdosen über den Raspberry Pi bzw. eben über SSH….Dafür nutzen wir das Programm „codesend„, dass ebenfalls im Ordner „RPI_utils“ liegt 😉
    Steckdose 1 einschalten:
    codesend XXXXXXX (hier wieder die XXX durch die vorhin notierte Zahlenkombination von Steckdose 1 für EIN ersetzen!)

    Als reines Beispiel:
    codesend 1234567
    Natürlich muss dafür die Steckdose 1 auch in einer richtigen Steckdose stecken, und natürlich sollte auch ein Verbraucher wir z.B. eine Lampe angeschlossen sein, um zu sehen ob auch alles funktioniert hat 😉

    Steckdose 1 ausschalten:
    codesend XXXXXXX (hier wieder die XXX durch die vorhin notierte Zahlenkombination von Steckdose 1 für AUS ersetzen!)Als reines Beispiel:
    codesend 0234567

     

  10. Hat man alles richtig gemacht, haben wir gerade erfolgreich einen Verbraucher auf Funksteckdose 1 ein & wieder aus geschaltet 😉
    Das ganze lässt sich nun mit den vorhin notierten Codes, auch für die anderen Funksteckdosen wiederholen!
    Auch kann man diesen Befehl zum ein & ausschalten nun in seinen eigenen Skripts / Webseiten etc. einbinden.:arrow:  Ich z.B: habe bei mir in Octoprint 4x Buttons hinzugefügt, mit denen ich jeweils einmal den 3D Drucker und die Beleuchtung dafür  ein & ausschalten kann :mrgreen:

 

Ich hoffe ich konnte mit dieser kleinen überschaubaren Anleitung dem ein oder anderen ein bisschen weiterhelfen.
Natürlich gäbe es noch 10000 weitere Möglichkeiten, das ganze zu optimieren bzw. das ganze auf die „Spitze“ zu treiben…. 😆

Das würde hier aber den Rahmen sprengen 😆

 

Permanentlink zu diesem Beitrag: http://blog.adminweb.at/selbstlernende-funksteckdosen-ohne-dip-schalter-mit-dem-raspberry-pi-steuern/

7 Kommentare

Zum Kommentar-Formular springen

    • Bastian Schremmer auf 3. Juni 2020 bei 4:10

    Hi Daniel!
    Ich habe es erfolgreich geschafft mit dem obigen Aufbau Funksteckdosen mit dip-schaltern zu steuern.
    Jetzt habe ich zudem Funksteckdosen von „dewenwils“

    https://www.amazon.de/dp/B07VKNXGKW/ref=sr_1_1?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&dchild=1&keywords=dewenwils&qid=1591149976&sr=8-1

    und habe auch den Code meiner ersten Steckdose per Fernbedienung, so wie du es beschrieben hast, ausgelesen. Zuvor habe ich sie natürlich erst angelernt.
    Jedoch wenn ich für Steckdose EIN diesen Code jetzt mit ./codesend 12720076 sende, passiert gar nichts auch wenn ich den Sender direkt neben die Steckdose halte.
    Hast du eine Idee, wie man das dennoch hinbekommen könnte?
    Bzw. brauch man vielleicht ein anderes Protokoll?
    Musste die Fernbedienung beim Auslesen auch ganz nah an den Empfänger halten damit es funktionierte.

    LG Bastian

      • Daniel auf 3. Juni 2020 bei 7:03
        Autor

      Hallo!
      und du hast den Sender auch richtig angeschlossen?
      was passiert wenn du die Steckdose ganz nahe zum Sender hältst?
      Bzw. kommt eine Fehlermeldung?

      Stimmt der Code auch wirklich?
      Ich hab auch schon Funksteckdosen gesehen die vorher ein Sonderzeichen zb benötigen.
      Aber wenn das alles nicht geht, hilft da nur googlen. Bei einer brauchte ich mal ein # vorher was ich auch erst durch google gefunden hatte 😉

      LG
      Daniel

    • Michael auf 18. Mai 2020 bei 0:26

    Hab mir mal ein nettes Wardriving-Script geschrieben, das alle Codes rund um meine Codes ausprobiert hat – meine 433MHz-Steckdosen von Aldi haben vielleicht verrückt gespielt – hahaha, das war mal ein Feuerwerk. Dabei habe ich übrigens noch sehr mehr Codes entdeckt, die funktionieren, als solche die von der Fernbedienung rausgesendet wurden. Daraus lässt sich vielleicht sogar ein Algorithmus reverse-engineeren. Ich hoffe, die Nachbarn haben keine solche Sets. 😉

    • Hartmut auf 21. April 2020 bei 18:47

    Hallo Daniel,
    prinzipiell eine gute Anleitung, alle Achtung!
    Dumm nur, dass meine Steckdosen mit 10-stelligen Codes funktionieren und bei mehr als 8 Stellen macht „codesend“ totalen Mist. Es sendet einen völlig anderen Code als den, den ich eigegeben habe.
    Hast Du dafür vielleicht auch eine Lösung?

    LG
    Hartmut

      • Daniel auf 22. April 2020 bei 7:41
        Autor

      Hallo Hartmut!

      Da ich leider gerade keine anderen Dosen mit einem 10-stelligen Code hier habe , kann ich dir da leider nicht weiterhelfen.
      Ehrlich gesagt wusste ich gar nicht das es auch 10-stellige gibt.

      Ich mach mich mal im Internet schlau, und sollte ich fündig werden, melde ich mich hier nochmal 😉

      LG
      Daniel

    • Friedrich auf 20. Oktober 2019 bei 14:34

    Hallo Daniel,

    ich habe leider das Problem, dass meine Fernbedienung bei jedem Betätigen einen anderen Code sendet. Selbst, wenn ich mir einen davon aussuche, reagiert die Steckdose leider nicht. Kannst du mir dabei weiterhelfen?
    Ansonsten gut geschriebene Anleitung 🙂

      • Daniel auf 21. Oktober 2019 bei 7:17
        Autor

      Hallo Friedrich!

      Und das obwohl du immer die gleiche Taste nimmst?
      Sprich immer für z.B. die erste Steckdose die TASTE EIN?

      Welches Steckdosen Set hast du den?

      Leider kann ich dir dies aber auch zurzeit nicht beantworten, da ich selbst ja nur ein solches SET habe und lange an dieser funktionierenden Lösung gebastelt & getüftelt habe 😉

      Hier, dieses Set habe ich:
      https://amzn.to/35SGjl1

      LG
      Daniel

Schreibe einen Kommentar

Deine Email-Adresse wird nicht veröffentlicht.