Raspberry Pi

Raspberry Pi: Funksteckdosen steuern mit RC-Switch

Raspberry Pi: 433 MHz Funksteckdose schalten

Das Schalten von 433 MHz Funksteckdosen ist eine beliebte Aufgabe für den Raspberry Pi aus dem Bereich der Hausautomation. Eine eigene Hausautomatisierung mit dem Pi ist gegenüber einer fertigen Lösung aus dem Handel kostengünstiger und bietet mehr Raum für Individualität. Im Artikel Raspberry Pi: 433 MHz Funksteckdosen schalten wurde bereits gezeigt wie man mit dem Tool raspberrypi-remote einen 433 MHz Sender ansteuert und kompatible Geräte schaltet. Raspberrypi-remote basiert auf dem Programm RC-Switch: Die Installation von RC-Switch wird im Folgenden vorgestellt.

Kompatible Funksteckdosen

Funksteckdosen, welche auf der Frequenz 433 Mhz arbeiten, gibt es in diversen Ausführungen im Handel. Überlicherweise sind Funksteckdosen dahingehend konzipiert, dass man einen 1-0-Code über einen DIP-Schalter einstellen kann. Mit Hilfe von diesem kann dann die Steckdose angesprochen werden. Funksteckdosen vom Typ Elro AB440S sind für die Arbeit mit dem Raspberry Pi sehr beliebt und kompatibel. Konkret verwende ich für dieses Tutorial CSL Funksteckdosen von Amazon.

Neben Funksteckdosen mit konfigurierbarem DIP-Schalter sind einige neuere Modelle selbstlernend. Dabei ist kein DIP-Schalter an den Geräten vorhanden, sondern die Steckdose besitzt einen Lernmodus. Während des Lernmodus übernimmt diese das erste gültige Signal und ist anschließend immer darüber ansprechbar. Für selbstlernende Funksteckdosen müsste man mit dem 433 MHz Empfängermodul zunächst den Code empfangen, welches man auch von der Fernbedienung aus sendet um die Steckdose zu schalten. Ein Problem können dabei auch die abweichenden und herstellerspezifischen Protokolle sein.

433 MHz Funkmodul

Zum Schalten von Funksteckdosen benötigt man zunächst einen 433 MHz Sender. Dieses gibt es oftmals in Kombination mit einem Empfängermodul für wenig Geld.

433 MHz Sende- und Empängermodul

433 MHz Funk- Sende und Empfänger Modul

433 MHz Funk- Sende und Empfänger Modul

Links im Bild ist das für uns relevante 433 MHz Sendemodul dargestellt. Dieses verfügt über 3 bzw. 4 Anschlüsse:

  • Pin 1: ATAD (Daten)
  • Pin 2: VCC (Versorgungsspannung)
  • Pin 3: GND (Masse)
  • Pin 4: Ant (Antenne)

Pin 1, 2 und 3 verbinden wir mit dem Raspberry Pi. An Pin 4 (Ant) können wir eine Antenne anschließen bzw. anlöten um die Reichweite des Sendemoduls zu erhöhen. Für die Antenne genügt ein Stück Draht mit der Länge 17 cm. Die Pinbelegung von anderen Modulen kann abweichen, sollte aber dennoch eine ähnliche Struktur aufweisen.

Schaltungsaufbau

Versprgt wird der Sender mit einer Betriebsspannung von 3,3 Volt bis 5 Volt. Wir verwenden hier eine Betriebsspannung von 5Volt um eine größere Sendeleistung und damit auch eine größere Reichweite zu schaffen. Im Detail bedeutet das, dass wir den Pin 2 (VCC) des Moduls mit Pin 2 oder 4 (5V) am Raspberry Pi verbinden. Weiterhin verbinden wir Pin 3 GND mit einem Ground-Pin vom Pi. Für dieses Tutorial verwenden wir Pin 6 des Raspberry Pi. Zuletzt schließt man die Datenleitung des 433 MHz Sendemoduls (Pin 1 ATAD) an Pin 11 (GPIO-Pin 17) am Pi an.

Raspberry Pi 433 MHz Sendemodul Schaltung (Bild: Eagle)

Raspberry Pi 433 MHz Sendemodul Schaltung (Bild: Eagle)

WiringPi installieren

Auf dem Raspberry Pi benötigen wir zunächst die Programmbibliothek wiringPi zum ansteuern der GPIO-Pins. Dazu laden wir uns WiringPi von Guthub herunter:

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

Nachdem das Tool heruntergeladen wurde wechseln wir in das neue Verzeichnis und führen zur Instalaltion von WiringPi den Build-Skript aus.

cd wiringPi
./build

Ist die Installation abgeschlossen, welchseln wir zurück in das Homeverzeichnis.

cd

RC-Switch installieren

Nachdem das Sendemodul angeschlossen und WiringPi heruntergeladen wurde, kann das Tool RC-Switch zum Ansteuern des Sendemoduls bzw. zum Schalten der Funksteckdosen installiert werden. RC-Switch laden wir uns ebenfalls von Github herunter.

git clone https://github.com/r10r/rcswitch-pi.git

Anschließend wechseln wir in das neue Verzeichnis und führen zum installieren das Makefile aus.

cd rcswitch-pi
make

Fertig! Jetzt können wir mit RC-Switch unsere Funksteckdosen schalten. Dazu muss der konfigurierte 1-0-Code über das Funkmodul gesendet werden. Der einzustellende Code setzt sich wie folgt zusammen:

(Systemcode, 5 Stellen)(Unitcode, 5 Stellen)

Der Systemcode, oder auch Hausecode genannt, sollte einheitlich sein. Weiterhin empfiehlt es sich den Hauscode entwas abzuändern, damit nicht zufällig der Nachbar den gleichen verwendet und eure Geräte schaltet – oder umgekehrt. Der Unitcode spiegelt die Steckdosennummer wieder und sollte bei jeder Steckdose unterscheidlich sein, es sei denn, mann will 2 Steckdosen gleichzeitig senden. Der Unitcode ist wie folgt zu übersetzen:

(Unitcode) = 01000 bedeutet Steckdosennummer:2
(Unitcode) = 00001 bedeutet Steckdosennummer:5

Mehr Informationen zur Zusammensetzung und Bedeutung des 1-0-Codes sind im Artikel zu raspberrypi-remote nachzulesen.

Zum Senden des 1-0-Codes an die Steckdose führen wir den Send-Skript von RC-Switch mit entsprechenden Parametern aus.

sudo ./send (Systemcode)(Steckdosennummer)(Zustand 1 An, 0 Aus)

Der Systemcode wird dabei als 1-0-Code eingegeben, die Steckdosennummer jedoch als Übersetzung. Mit dem folgenden Befehl schalten wir zum Beispiel die Steckdose mit der Nummer 2 und dem Systemcode 11101 auf An (1):

sudo ./send 11101 2 1

Die hier vorgestellte Funktionsweise und Handhabung der Send-Funktion ist auf andere Funksteckdosen mit DIP-Konfiguration übertragbar.

Quelle (Stand 08.06.2015): raspberrypi.org

Hinterlasse eine Antwort

Kommentare

  • HI Tony

    Ich hab deine Konfig für das Schalten von Funksteckdosen übernommen, funktioniert super :)
    vielen Dank dafür …
    Nun hab ich noch ein Empfängermodul eingebaut, und möchte damit auch noch codes von Intertechno Funksendern auffangen, um meine Anlage ein wenig zu erweitern.
    Da ich leider nicht so der Rpi guru bin, wollt ich fragen, ob du nicht auch eine Anleitung dazu hättest :)
    ich hab im Netz noch nix gefunden, mit dem ich klar komme. :(

    vielen Dank schonmal
    grüße
    Chris

    • Wenn diese über einen 433 MHz Funkempfänger ansprechbar sind, dann ja. Aber ohne das Datenblatt jetzt zu lesen, wird das Protokoll anders aussehen und nicht mit den Funksteckdosen übereinstimmen.

  • Servus, leider geht’s bei mir gar nicht. Habe alle Schritte erfolgreich ohne Fehlermeldung durchgeführt, Steckdose ist auch in Ordnung. Wie kann ich debuggen, ob meine GPIO-Pins bspw funktionieren oder die Antenne geht?

    Danke für jede Hilfe

    • Hallo Georg,

      du kannst zunächst mal eine LED mit Vorwiderstand an den GPIO Pin gegen Masse hängen um zu schauen ob sich da was tut. Welche Antenne verwendest du?

  • Hi Tony,
    tolle Beschreibung! Ich habe eine Frage an dich. Ist es mit möglich dieses Sende Modul ohne Raspberry zu verwenden sodass wenn eine Spannung an das Sende Modul kommt sendet es eine bestimmte Frequenz/Signal an einen Raspberry mit Empfänger.

    LG Roland

  • Hallo Tony,
    Ich wollte eben die Anleitung befolgen um den Raspberry mit dem Sender zu verwenden. Jedoch scheint es, als wäre wiringPi nicht mehr verfügbar, hast du praktikable Alternativen
    Viele Grüße
    Fabian

  • Hallo Tony,
    Vielen Dank für deine Anleitung.
    Würde das steuern der Steckdosen dann auch über Node Red “funk”-tionieren?

    Gruß und danke

  • Nach dem Wechsel in das Verzeichnis rcswitch-pi und dem Befehl make erhalte ich immer allerhand Warnungen und Fehlermeldungen, bis dann der Befehl mit der Meldung Fehler 1 abgebrochen wird. Komme an der Stelle nicht weiter.