Funksteckdosen mit dem Raspberry Pi schalten

Nachtrag vom 17. August 2013: Diese Anleitung ist veraltet, es gibt eine neue aktualisierte Anleitung. Ich lasse den Artikel nur noch als Referenz online.

Im ersten Schritt zur Heimautomatisierung mit dem Raspberry Pi sollen beliebige Geräte ein- und ausschaltbar sein. Da das direkte schalten von 230V aus Sicherheitsgründen für mich nicht in Frage kommt, habe ich mich dafür entschlossen ein Intertechno Funksteckdosen auf 433MHz Basis über Funk zu schalten. Dies hat außerdem den Vorteil, das Verbraucher in der ganzen Wohnung geschaltet werden können. Ich habe mich für die Funksteckdosen von Intertechno entschieden, da diese einen niedrigere Standby Stromverbauch aufweisen.

Was wird benötigt:

1. Software Installation

Ich habe den 433.92-Raspberry-Pi Code von CurlyMoo benutzt. Dieser ist laut Beschreibung für die niederländischen „Klik Aan Klik Uit“-Steckdosen gedacht. Diese scheinen jedoch Baugleich mit den Intertechno Funksteckdosen zu sein.

Aber zuerst brauchen wir die WiringPi-Libraray welche CurlyMoo zur einfachen Ansteuerung der GPIO-Pins benutzt. Diese ist schnell installiert. Zuerst muss git installiert werden, wenn noch nicht geschehen:

sudo apt-get install git-core

Dann für WiringPi:

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

Nachtrag vom 12. Juni 2013: Mittlerweile wurde 433.92-Raspberry-Pi aktualisiert. Die neue Version scheint bei Einigen Probleme zu machen (siehe Kommentare), daher verwenden wir vorerst weiterhin die „alte“ Version vom 28. Januar 2013. Die Eingabe von git checkout aed0e8dd3f stellt sicher, dass die alte Version benutzt wird.

Nun kann 433.92-Raspberry-Pi installiert werden:

git clone https://github.com/CurlyMoo/433.92-Raspberry-Pi.git
cd 433.92-Raspberry-Pi
git checkout aed0e8dd3f
make

2. Hardware anschließen

Standardmäßig ist für den Sender/Transmitter Pin 11 (wiringPi Pin 0) und für den Empfänger/Receiver Pin 13 (wiringPi Pin 2) vorgesehen. VCC muss jeweils an den 3V3 Pin und GND an den Ground Pin. Mein Receiver benötigt laut Beschreibung 5V, dh. er müsste eigentlich an den 5V Pin. Dann benötigt man aber noch einen kleine Schaltung für den Data-Pin, da dieser maximal auf 3.3V liegen darf. Da wir den Receiver nur einmal benötigen im die Codierung der Fernbedienung auszulesen und dies auch mit 3.3V funktioniert wenn man die Fernbedienung direkt daneben hält,  habe ich auf den zusätzlichen Aufwand verzichtet.

Bei der Pin-Nummerierung ist Vorsicht geboten.  Zum einen sind alle Pins des GPIO-Connectors nach diesem Schema von 1-26 durchnummeriert. Zum anderen haben hier die GPIO-Pins spezielle Bezeichnungen: GPIO 0, GPIO 1, GPIO 4, GPIO 7. Diese Bezeichnung entspricht aber nicht der Nummerierung in wiringPi. Die Zuordnung der Pins in wiringPi ist auf Gordons Homepage zu finden. Bei beiden Quellen ist auf die richtige Raspberry Pi Board Revision zu achten. Die Pin-Belegung am besten lieber doppelt kontrollieren!

Skizze zum anschließen

Skizze zum anschließen

Zum anschließen sollte der Raspberry Pi vom Strom getrennt werden. Als erstes schließen wir den den Receiver an.

Nun ./receive starten, die Fernbedienung direkt daneben halten und eine Taste drücken:

receiver-connected

433MHz Transmitter-Receiver-Link-Kit Receiver am Raspberry Pi Board Revision 2.

pi@raspberrypi ~/433.92-Raspberry-Pi $ ./receive
Klik Aan Klik Uit
ID:             4762303
All/Single:     Single
On/Off:         ON
Unit:           0

Nun sich die ID aufschreiben und den Raspberry Pi wieder ausschalten. Danach kann der Transmitter angeschlossen werden:

transmitter-connected

433MHz Transmitter-Receiver-Link-Kit Transmitter am Raspberry Pi Board Revision 2.

Nun kann eine angelernte Steckdose per Kommandozeile geschaltet werden:

pi@raspberrypi ~/433.92-Raspberry-Pi $ ./send -u 0 -i 4762303 -f
Lamp Uit
pi@raspberrypi ~/433.92-Raspberry-Pi $ ./send -u 0 -i 4762303 -t
Lamp Aan

Dabei gibt -u die Steckdose (von 0 bis 2) und -i die ID an.

 

51 Antworten

  1. Das Hama Funkset wird mit ./sendElro ebenso unterstützt

  2. Super Anleitung. Funktionierte super mit „Brennenstuhl“ Steckdosen.

  3. Könntest du vllt. ein besseres Bild mit der Verkabelung des Senders einstellen, Der teil oben links ist nur sehr schwer zu erkennen.

    Danke

    • Hallo Paul,

      ich habe ein Bild hinzugefügt, das keine Fragen mehr offen lassen sollte.

      Viele Grüße
      Oliver

  4. hallo paul,

    danke für die tolle anleitung. eine frage noch, kann man sender und empfänger gleichzeitig auch betreiben? ich denke da in richtung ninja blocks.

    lg und danke nochmal!

    • Hi,

      Theoretisch funktioniert es, wenn man den Empfänger „stoppt“ solange man sendet. Das große Problem ist, das das „abhören“ den Empfängers ziemlich viel CPU-Zeit kostet (nahe 100% Auslastung) und sehr zeitkritisch ist. Ich habe es nicht geschafft das Signal zuverlässig mit dem Pi zu empfangen da die Abfragerate zu sehr schwankt und das der Billig-Receiver nicht mit macht.

      Jedoch bin ich gerade daran mit einem Attiny als Co-Prozessor, welcher den Empfänger abfrägt und die Infos an den Pi sendet zu programmieren. Wenn das alles funktioniert und ausgetestet ist werde ich dazu wahrscheinlich auch ein Tutorial schreiben.

      Viele Grüße Oliver

      • Hallo Oliver, ich gehe aufdrund Deines Hinweisen mit den Empfangsproblemen wohl auch diesen Weg. Sobald meine 433Mhz Module ankommen geht’s los.
        Ich nehme mal einen ATmega in Form eines Adurino mit Ethernet Shield (Auch nur ein besserer Tiny :-) ) Hast Du vielleicht Sourcen auf denen ich aufbauen kann ? Aktuell starte ich hier:

        http://www.homecontrol4.me/de/?id=software

        – Pit

  5. […] Ich habe nun einen Hinweis gefunden, wie man 433MHz-Signale empfangen und lesen kann. http://sweetpi.h3llfire.de/119/funksteck…i-schalten […]

  6. Vielen Dank für das Tutorial. :)

    Leider bekomme ich nach dem ersten (Funk-)Tastendruck an der (brennenstuhl-)Fernbedienung nach ./receive immer einen Abbruch „Speicherzugriffsfehler“.

    Kennt jemand das Problem und/oder hat einen Tipp für mich?

    LG Raoul

  7. Moin, Moin,

    nachdem Download und ausführen von „make“ kann ich kein ./receive Ausführen.
    Wurde etwas am Projekt geändert?

    Gruß Alex

  8. Hallo Funker,
    leider bekomme ich nach Eingabe von: sudo ./receive die Meldung
    „connect: Connection refused“.
    Das passiert auch nach Eingabe von: sudo ./433-receive.
    Ohne sudo das gleiche Ergebnis.
    Hat jemand einen Tipp?

    FG Olaf

  9. Nachtrag
    Hurra es geht mit receive und send!
    Habe eine andere Konfiguration benutzt,
    statt wlan lan und statt einer OS-Installation auf einem USB-Stick
    eine etwas ältere auf einer USB-HDD. GPIO ist aber auf beiden v2.07.
    Woran es nun wirklich liegt kann ich nicht sagen.
    (Funksteckdosen sind von intertechno, RX und TX aus dem Shop von Jörg Neumann).

    Grüße Olaf

  10. 2. Nachtrag
    Inzwischen weiß ich den Grund, warum es erstmal nicht ging:

    Die Software 433.92 Raspberry-Pi, die ich vor einigen Tagen von hier unter 1. runtergeladen habe unterscheidet sich von der, die ich heute runtergeladen habe und mit letzterer geht es bei mir nicht.

    Gruß Olaf

    • Hallo Olaf,

      besten Dank für den Hinweis, da ich die „alte“ Version damals genommen habe und die Bestens funktioniert habe ich das natürlich noch nicht gemerkt. Ich habe die Anleitung entsprechend angepasst und einen Hinweis ergänzt.

      Viele Grüße
      Oliver

  11. Vielen Dank Oliver für deine prima Anleitung und die schnelle Reaktion.
    Nun gibt es wohl viele neue und zufriedene Raspi-Funker.

    Viele Grüße
    Olaf

  12. Wie viele Steckdosen kann man damit maximal ansteuern? Wenn ich mir 5 x 3 das Set von Intertechno kaufen würde könnte ich dann diese alle einzeln schalten?

    • Hallo Domi,

      das ist kein Problem. Es gibt 2 hoch 22 = 4194304 verschiedene IDs und du kannst je ID 16 Steckdosen ansteuern. Insgesamt sind also 4194304*16=67108864 Steckdosen möglich :). Du kannst aber immer nur 16 Steckdosen gleichzeitig mit einem Signal ein oder aus schalten. Alle angaben ohne Gewähr.

      Viele Grüße
      Oliver

  13. Hallo Oliver,

    ./receive funktioniert bei mir jetzt. Leider scheinen die Steckdosen von Globaltronics (Gibt es immer mal wieder bei Aldi, etc.) nicht zu funktionieren.
    Meine Ausgabe sieht wie folgt aus:

    Elro
    ID: 24
    House: 27

    Leider glaube ich nicht das diese Ausgabe durch mich ausgelöst wird sondern von irgendwelchen Nachbars Geräten.

    Hast du noch einen Tipp für mich was ich vielleicht falsch mache?

    • Hallo Alex,

      wenn du die Ausgabe reproduzieren kannst, dann ist es sehr wahrscheinlich, dass in deinen Steckdosen der gleiche Chip wie in den Elro’s steckt. Wenn du den gleichen Receiver hast, wie ich dann glaube ich nicht das der Code von einem Nachbar kommt, da dafür die Reichweite zu begrenzt ist (wenige cm.).

      Wenn nicht schau mal noch hier https://code.google.com/p/rc-switch/ in die wiki und forum.

      Viele Grüße
      Oliver

  14. Hallo Oliver,

    es handelt sich bei meinen Ausgaben scheinbar wirklich im werte der Nachbarn.
    Bei meinen Steckdosen (sind von Globaltronics/Quigg) passiert rein gar nichts. Scheinbar sind diese nicht Kompatibel.

    bei meinem Emfänger handelt es sich um diesen:
    http://www.exp-tech.de/Shields/433MHz-RF-Link-Kit.html

  15. Hallo Fachleute,
    ich trau ich ohne Ahnung von Linux etwas verschämt an dieses Projekt und scheitere schon bei der Installation von git-core.
    Fehlermeldungen: irgendwelche pfade zu debian.net sind falsch.
    Bin für jeden Tip dankbar.
    a) Wie kontrolliere ich meine Version? Da ich nur fertige images auf eine SD karte entpackt habe und das ganze so schnell (:-)) lief habe ich davon schon keine Ahnung.
    b) Welche Version setzt dieses Projekt voraus?
    Dank vorab

    • so, nun bin ich schon weiter, es lag an einem fehlenden update nach der grundinstallation. Aber: weder ./receive geht noch hilft der Hinweis auf der Seite mit git checkout…der wird mit Not a git repository…quittiert.
      Jetzt brauche ich Hilfe

      • Hallo Karl,

        wenn Du den Befehl ausführst musst du im Ordner „433.92-Raspberry-Pi“ sein.
        Also zuerst in den richtigen Ordner mit
        „cd 433.92-Raspberry-Pi“ wechseln und dann „git checkout aed0e8dd3f“ ausführen. Der Ordner sollte durch „git clone […]“ angelegt worden sein.

        Viele Grüße
        Oli

  16. Es ist möglich, dass der Empfänger eine Reichweite zu gering ist? Ich habe bei der Bestellung um Signale zu empfangen geklebt werden. (Ich bin mit Google Translate)

    • Hi,

      Yes, the range of the receiver is very poor. I think the Problem is that the receiver needs exactly 5V. The Raspberry Pi Voltage is slightly below (4.6-4.9V). So you need a good external 5V voltage source or a step-up circut. I’m currently experimenting, but have no results yet. Probably it is easier to buy a better receiver.

      Ja die Reichweite des Empfängers ist sehr schlecht. Ich denke es liegt daran, das dieser exakt 5V benötigt. Die Spannungsversorgung des Pis liegt aber leicht darunter. Eine Lösung wäre eine externe stabile 5V Stromquelle oder eine step-up Schaltung. Ich bin im Moment am experimentieren. Wahrscheinlich ist es aber einfacher einen besseren Empfänger zu suchen.

  17. Hallo,

    ist es auch möglich die ID von eine Rollade rauszufinden? Oder ist es nur bei Funksteckdosen möglich?

    • Hi Inan,

      theoretisch schon. Es kann nur sein das, dass Protokoll ein anderes als bei den Steckdosen ist. Einfach ist es dann auf jeden Fall nicht, aber mit dem Empfänger möglich, wenn die Rollladenfernbedienung auch auf 433 Mhz funkt. Du kannst dazu die neue Version der lib nutzten. Da gibt es die Möglichkeit sich die Empfangenen raw-Daten anzuzeigen. Man benötigt aber auf jeden Fall Programmierkenntnisse und sehr sehr viel Geduld und Zeit.

  18. Hallo zusammen,
    ich habe alles wie oben beschrieben (auch die ältere 433… Version) installiert, mit dem receive klappt es aber leider nicht wirklich.
    Nach dem Aufruf von „sudo ./receive“ erscheint eine Ausgabe „Start“. Betätige ich die Fernbedienung (Intertechno ITT-1500) kommt der Prompt zurück – mehr aber nicht. „receive -d“ gibt mir auch Werte aus (es funktioniert also grundsätzlich schon einmal), mit denen ich aber nichts anfangen kann. Bei receive ohne Parameter erscheint leider keine Ausgabe des Codes. Kann mir hier jemand weiterhelfen?

    Danke schon einmal.
    Gruß
    Volker

  19. Hi,

    danke für die Anleitung, hat Super geklappt.

    Ich kannte die Sende- und Empfangsleistung signifikant erhöhen, indem ich an den Lötpunkten, die mit ANT beschriftet sind einfach mal ein 30cm langes Kabel angelötet habe.

    Grüße und Danke

  20. […] Hausautomation (PDF) oder auf englisch (PDF) Aber auch dieser Beitrag geht einen ähnlichen Weg: Funksteckdosen mit dem Raspberry Pi schalten […]

  21. Hallo,

    bei mir funktioniert alles bestens bis zu dem Befehl:
    „git clone https://github.com/CurlyMoo/433.92-Raspberry-Pi.git

    Hier kommen dann folgende Fragen:
    „Username for https://github.com:
    Password for @https://github.com:“

    Da ich weder das Passwort noch den Usernamen weiß, lasse ich alles frei und bekomme dann:
    „fatal: Authentication failed“

    Was kann ich tun?

  22. hallo!

    ich habe alles einwandfrei einrichten können und wollte nun meine elektrischen rolläden, die über 433.92 Mhz laufen, ebenfalls steuern.
    die ID meiner funksteckdosen (intertechno) erkennt der empfänger einwandfrei, kann ich damit auch irgendwie die ID meiner rolläden herausbekommen?
    vielen dank im voraus!

  23. Hallo,

    nach langem hin und her habe ich dank dem parallelen Einsatz zweier Raspberry Pis (einer mit Receiver, der andere mit Sender) herausfinden können, dass der Sender funktioniert und mit Befehlen nach dem Schema ’sudo ./sendElro -i 15 -u 14 -f‘ auch alles korrekt beim Receiver ankommt. Die Werte entsprechen dabei denen, die auch durch die Originalfernbedienung gesendet werden.
    Seltsamerweise kann ich nun zwar sämtliche laufenden Geräte (8 an der Zahl) erfolgreich ausschalten, kann sie im ausgeschalteten Zustand aber nicht einschalten.

    Den einzigen Unterschied zu den Ausgaben der Originalfernbedienung stellt der Zusatz ‚On/Off: On‘ dar. Dieser wird nicht ausgegeben, wenn ich Tasten auf der Originalfernbedienung drücke.

    Was könnte ich noch versuchen/verändern?

    Gruß
    Stefan

    • Ich kann Dir nur raten, die neue Version der Bibliothek, die nun pilight heißt (https://github.com/pilight/pilight) auszuprobieren. Die Installation ist ein bisschen aufwendiger, aber sollte eigentlich kein Problem sein. Ich arbeite im Moment an einer neuen Anleitung. Sollte es mit der neuen Version auch nicht gehen, dann frage dort am Besten im Forum oder eröffne auf github eine issue.

  24. […] Funkmodul wurde nach der Anleitung von Oliver Schneider auf sweetpi.h3llfire.de mit dem Raspberry […]

  25. Hallo,

    ich habe das ganze auch mal getestet, allerdings habe ich im moment nur REV Funksteckdosen. Beim befehl ./receive gibt er eine ID von 28 aus und wenn ich on oder of mache kommt immer house 0 aber egal bei welcher Einstellung an den Steckdosen. Hat da jemand erfahrung bei den dingern.

    http://www.rev.de/DE_produkt_1417.ahtml

  26. Hi, ich probiere gerade verschiedene Varianten aus, meine selbstlernenden FS von Conrad anzusteuern.
    Zum Auslesen habe ich jetzt auch mal diese Variante benutzt. Hat offentsichtlich auch funktionier, nur ich lese folgendes aus:
    EIN-Taster:
    Elro
    ID: 2
    House: 25

    AUS-Taster:
    Elro
    ID: 0
    House: 25
    On/Off: On

    Weiß jetzt ehrlich gesagt nicht so recht, was ich damit nun anfangen soll. Sieht nunmal ein bisschen anders aus als hier im Beispiel. Und beim senden mit den „Werten“ funktioniert auch nichts -_-
    Jemand ne Idee?!

    • Hi,

      normalerweise sollte die ID aufjedenfall nicht unterschiedlich sein. Leider kann ich dazu sonst nicht viel sagen, da ich nur die intertechno Steckdosen habe.

      Aberfrag doch mal im pilight Forum nach.

      Viele Grüße
      Oliver

  27. Hi,

    ich hab mir gestern die Silvercrest Funksteckdosen von Lidl gekauft.
    Hergestellt wurden die von BAT was wohl irgendwie zu Brennenstuhl gehört.
    Ich habe im Moment das Problem dass ich nur einen RF Transmitter und keinen Receiver habe (kommt wohl erst in zwei Wochen).
    Die Steckdosen haben allerdings auch eine „Learn“ Funktion womit ich den Steckdosen einen Kanal (A-D) zuweisen kann.
    Nun meine Frage: Kann mir vielleicht irgendwer einen Systemcode von Brennenstuhl geben, dass ich einfach mal probieren kann ob ich die Steckdosen damit anlernen kann?
    Vielen Dank schon mal
    Gruß
    Scanto

    • Hi,

      schau mal „hier in die fhemwiki. Vielleicht stimmt dort ein Modell mit Deinen überein. Wenn Du ein passendes Model gefunden hast muss du noch das passende Protokoll in pilight finden und eventuell den Hauscode umrechnen.

      Viele Grüße
      Oliver

    • Hi Oliver,

      habe auch die Funksteckdosen von Lidl…hast Du es schon geschafft die Dosen zu steuern?

      Danke Daniel

      • Hi,

        leider besitze ich die Lidl Funksteckdosen nicht. Ich habe jediglich versucht Scanto zu helfen. Daher sollte die Frage wohl an ihn gehen.

        Viele Grüße
        Oliver

  28. Hallo,

    ich habe Funksteckdosen von Elro (HomeEasy) und da o. a. Projekt durchgeführt.
    Mein Problem ist das ich die nach dem Start des Raspberry (mit Raspian) einmal einen Befehl senden kann und die eine bei send angegebene Dose einmal schalten kann.
    Danach scheint der Sender nicht mehr zu reagieren.
    Kann ich irgendwo eine Art Timeout angeben oder so?

    Viele Grüße
    Frank

    • Hi Frank,

      das Problem ist wahscheinlich, dass das Einschalten funktioniert, das Ausschalten aber wohl nicht. Der gesendete Code zum Ausschalten ist selbst zwischen Elro Steckdosen verschieden.

      Hast Du die neuste Version von pilight? Du kannst auch mal die anderen Protokolle durchprobieren.

      Viele Grüße
      Oliver

  29. Bitte im neuen Artikel weiter kommentieren.

Home Hardware Funksteckdosen mit dem Raspberry Pi schalten
© sweet pi - sweet home
Top