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 🙂

233 Kommentare

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

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

      Antworten
    • Kann mir jemand helfen? Ich habe eine etwas andere Anleitung benutzt, wo man bei raspberry-remote die Datei send benutzt. Wenn ich das jedoch im Terminal eingebe steht dort nur command not found. Ich habe die Datei auch kompiliert. Hat jemand eine Idee woran das liegen könnte? Wäre sehr dankbar für eine Antwort.

      Antworten
      • Hast du `send` oder `./send` eingegeben? Unter Linux ist das notwendig, da die Shell sonst nur im PATH sucht, nicht im aktuellen Verzeichnis.

  2. 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 =(

    Antworten