Funksteckdosen mit dem Raspberry Pi steuern
Eine günstige Methode, heimische Geräte zu steuern und damit in die Thematik Hausautomatisierung einzusteigen, bieten Funksteckdosen. Diese sind bereits für 10-15€ im 3er Set in vielen Baumärkten erhältlich. Die hier gezeigte Methode wurde mit den Systemen der Firma Brennenstuhl erfolgreich getestet, es ist aber höchstwahrscheinlich möglich, dies auf ähnliche Sets anderer Hersteller anzuwenden.
Benötigtes Material
- Raspberry Pi mit allen notwendigen Komponenten (SD-Karte mit Raspian, Netzteil usw.)
- 433 MHz Funksender
(ich empfehle die mit 4 Anschlüssen, also mit einem Anschluss für eine externe Antenne) - optional Jumperkabel, wer nicht löten mag
- ein Funksteckdosenset, das auf der Frequenz 433 MHz empfängt
Vorgehensweise
1. Funksteckdose konfigurieren
An der Rückseite der Funksteckdose befindet sich mit einer Schraube verschlossen eine Klappe, hinter der sich die Steckdose konfigurieren lässt. Ist die Schraube gelöst und die Klappe geöffnet, besteht nun die Möglichkeit, mit den ersten 5 DIP-Schaltern den sog. Hauscode einzustellen und mit weiteren 5 DIP-Schaltern den Gerätecode. Im Einzelnen:
- Der Hauscode unterscheidet die einzelnen Systeme (bzw. Gruppen oder Sets) voneinander. So wird verhindert, dass der Nachbar mit einem gleichen System ausversehen unsere Geräte ein- und ausschaltet. Daher wird dringend empfohlen, diesen Hauscode zu ändern. Mit den 5 DIP-Schaltern in beliebiger Einstellung bieten sich somit 32 Möglichkeiten eines Hauscodes an. Dabei bedeutet ein nach oben geschobener DIP-Schalter (ON) eine 1 sowie ein sich unterer Position befindlicher Schalter (OFF) eine 0.In diesem Beispiel wurde der Hauscode 00010 eingestellt.
- Der Gerätecode identifiziert eine einzelne Funksteckdose in einem „Hauscode-Verbund“. Dadurch, dass sich hier nur ein DIP-Schalter in der „ON“-Position befinden darf, ergeben sich maximal 5 Endgeräte pro Hauscode. Sollten mehr Geräte benötigt werden bzw. sind mehr Funksteckdosen vorhanden, müssen mehrere Hauscodes verwendet werden. Das Ergebnis dieser Anleitung kann jedoch beliebig viele Hauscodes steuern.
Die DIP-Positionen 10000 beispielsweise identifizieren Gerät 1, die Einstellungen 01000 das Gerät 2 usw.
2. Sendemodul anschließen
Falls der Raspberry eingeschaltet sein sollte, diesen nun mittels
sudo shutdown -h now
herunterfahren und von der Spannungsversorgung trennen.
Nun den Anschluss VCC des Sendemoduls mit einem freien 5 Volt-Port (z.B. PIN 2) des Raspberrys verbinden, den GND-Anschluss mit einem Ground-PIN (z.B. PIN 6) und den DATA Port mit einem freien GPIO-Port (z.B. GPIO 17, also PIN 11). Die PIN-Belegung eures Raspberrys kann je nach Revision variieren, daher empfehle ich für eine Übersicht diese Seite.
Fehlt nur noch eine externe Antenne, die an den ANT-Anschluss des Sendemoduls angeschlossen wird. Dafür benötigen wir ein Kabel in einer Länge von 17,2 cm.
Ein sehr bequemer Weg, diese Verbindungen herzustellen, sind sogenannte Jumperkabel, die sehr günstig in Fernost zu beschaffen sind. Sind alle Anschlüsse hergestellt und kontrolliert, kann der Raspberry nun wieder gestartet werden.
3. Software installieren
Um nun die Steckdosen über das Funkmodul zu steuern, benötigen wir zwei Programme. Es wird davon ausgegangen, dass man als Nutzer „root“ auf dem System angemeldet ist.
- „wiringpi“ erlaubt eine unkomplizierte Nutzung der GPIO Ports und wird wie in diesem Beitrag beschrieben, installiert.
- „raspberry-remote“ stellt das für uns notwendige Binary zum Senden der Ein- oder Aus-Befehle über das Funkmodul zur Verfügung:
apt-get install libi2c-dev cd ~ git clone git://github.com/xkonni/raspberry-remote.git cd raspberry-remote make send cp send /usr/local/bin/
4. Das Funkmodul benutzen
Nach erfolgreicher Installation lassen sich die Funksteckdosen nun wie folgt ansteuern:
send 11011 2 1
In diesem Beispiel ist die angesprochene Funksteckdose auf den Hauscode 11011 und als 2. Gerät (DIP: 01000) eingestellt und wir mit der „1“ am Ende des Befehls eingeschaltet (Aus=0).
Eigentlich spaßig genug, nun sämtliche Geräte, die mit einer solchen Funksteckdose angeschlossen sind, per Befehlszeile ein- und auszuschalten, jedoch lässt sich diese Systematik natürlich auch noch optisch ansprechend bedienen.
Wie dies zu realisieren ist, zeigt dieser Artikel über die Applikation openHAB.
Nachtrag:
- In diesem Artikel wird beschrieben, wie die Funkleistung des 433MHz-Senders zu erhöhen ist.
- In diesem Artikel wird beschrieben, wie ein alternativer GPIO-Port genutzt werden kann.
Bernd
06.12.2015 @ 13:41
Hallo Daniel,
vielleicht ist es auch besser, den Empfänger abzufragen.
Ciao,
Bernd
Daniel Wenzel
06.12.2015 @ 09:17
Hallo Bernd,
den Innenwiderstand kann ich dir leider nicht nennen, aber die Korrektur der Fotos habe ich auf meine ToDo-Liste gepackt. Danke für den Hinweis.
Grüße, Daniel
Bernd
05.12.2015 @ 11:36
Hallo Daniel, vielen Dank für die ausführliche Beschreibung, es hat auf Anhieb geklappt.Eine Frage: Weisst Du, wie der Innenwiderstand des Sendemoduls ist? Ich würde gerne eine LED zwischen GPO und Sender schalten, um zu sehen ob auch wirklich hardwaremässig der Impuls kommt – die Frage ist, ob die Energie überhaupt ausreicht, das Leuchten zu erzeugen und/oder wahrzunehmen.
Eine Bemerkung: Am meisten half mir die Info, dass bei der Steckdosen-Kodierung oben 1 und unten 0 ist (war, aus welchen Gründe auch immer, von der umgekehrten Orientierung ausgegangen). Dabei fiel mir auf, dass in den Fotos ABCD auf 1 stehen, offenbar nicht vorgesehen ist. Das könnte zu Missverständnissen führen.
Herzliche Grüsse,
Bernd
Daniel Wenzel
12.11.2015 @ 04:30
Hallo,
offensichtlich unterscheiden sich Elro und Intertechno doch leicht in der Adressierung.
Schau mal beim folgenden Link, ob du da die passenden Antworten findest, ich habe leider noch nie ein Intertechno-Gerät in den Händen gehalten ;)
http://www.forum-raspberrypi.de/Thread-intertechno-funksteckdosen-schalten
Felix
11.11.2015 @ 18:44
Hi,
danke für die schnelle Antwort.
Die Steckdosen von Elro und Intertechno sind Bau gleich, auch die Frequenzen. Die Elro Steckdosen gibt es ja schon sehr lange.
Ich habe bei mir zuhause eine Hausautomation über eine Philips Pronto laufen. ( Infrarot der Pronto wird ber Mamitek Infrarot/Funkwandler gewandelt.)
Dabei kann man den Codegenerator der oben genannten HP benutzen. Das funktioniert tadelos. Jetzt ist halt nur, dass Problem, das die beiden Codiervarianten sich unterscheiden.Nur das Ansprechen des Geräts. Die Hauscodecodierung ist bei beiden gleich.
Zb. A1 wird noch Pi 11111 (1-5) 10000(A-E) codiert. Das gibt dann mit sudo send 11111(Hauscode) 1(Geräte ID) 1(On) funktioniert ja auch.
Nach der HP wird aber die Geräte ID anders gejumpert: A1 = 11111(1-5) (Hauscode) 11110(A-E) Geräte ID.
Ich müsste halt dem Sudo send sagen das Gerät 1. 11110(A-E) gejumpert ist anstatt 10000(A-E)
Gibt es dazu die Möglichkeit `?
Danke für Eure Hilfe :)
Grüße
Daniel Wenzel
11.11.2015 @ 13:17
Hallo,
leider kenne ich mich mit Intertechno gar nicht aus. Vielleicht kann ein anderer Besucher dazu Auskunft geben.
Ich kann dir nur sagen, dass bei den DIP-Schaltern A-E nur einer aktiviert, also oben stehen darf. Damit ergeben sich 5 schaltbare Geräte pro Hauscode.
Felix
11.11.2015 @ 12:36
Hallo,
danke für die tolle Anleitung. Soweit funktioniert auch alles. Problematisch wird es jetzt nur wenn ich versuche meine bereits eingestellten Steckdosen anzusteuern. Diese wurden nach http://isn-systems.com/tools/it2elro/ gedippt. Wenn ich versuche die anzusteuern per Sudo funktioniert es nicht.
zb A1 gedippt nach der HP : 11111(1-5) 11110(A-E)
dippe ich die Steckdose um auf 11111 (1-5) 10000(A-E)
funktioniert auch der sudo send. gibt es eine Möglichkeit das codierverfahren an das der HP anzupassen ? Ich hoffe es ist verständlich :D
Danke für die Hilfe. Grüße Felix
Tobias Claren
11.07.2015 @ 01:22
Wie habe ich das zu verstehen. Max 32 Funksteckdosen?
Das scheint doch recht wenig zu sein.
Oder vervielfacht sich das mit der zweiten Hälfte der Dip-Schalter?
Wenn ja, wäre interessant wie viele Empfänger sich dadurch dann maixmal ergeben.
Und was ist mit diesen kleinen Kästchen aus China. Quasi Funkrelais ohne die Steckdose. Je nach Platz kann man so ein Teil in Lampen oder Steckdosen etc. einsetzen.
Sind aber was ich bisher fand alle mit eigener Fernbedienung. Ich glaube 4-Kanal (Achtung, ein[ige] Händler zählen die Tasten auf der FB als „Kanäle“, also auch On und Off für alles, 2-Kanal als 4- Kanal) mit FB für 9,32 Euro. Wenn man die FB nicht braucht, wäre es natürlich auch interessant, wenn man die Teile einzeln bzw. in größerer Stückzahl ohne Fernbedienung billiger bekäme.
Keine Ahnung ob und wie man die einstellen könnte. Ob die Dip-Schalter haben.
KNX wäre auch gar nicht so teuer wie es scheint, wenn man 12 Aktoren für 120-150 Euro bekommt.
Mit graut es nur vor dem Unbekannten der Programmierung. Wenn die mangels frei verfügbarer Software/Hardware nicht möglich ist, sind die Aktorpreise wertlos.
Und die Preise ür den Loxone-Server sind auch beachtlich.
Interessant wäare ein einfaches günstiges DIY-System (aber möglicht aus fertiger erhältlicher Hardware) für einen Schaltschrank.
Alles im Schaltschrank aus dem dann eine 1,5mm²-Leitung zu jedem Verbraucher läuft.
Gerne mit einem Raspberry PI als Server, der müsste dann aber (billige) Aktoren bzw. „Relais“ schalten die Stromleitungen mit 230V versorgen. In den meisten Fällen wohl nur geringe Stromstärken wie bei Lampen.
1techone
05.07.2015 @ 17:37
Hallo,
danke für die schnelle Antwort.
Heute habe ich „make send“ und „cp send /usr/local/bin/ als „root“ wiederholt. Es funktionierte!
Nun läuft der „send 11011 1 1“ einwandfrei, meine Steckdose funktioniert wie sie soll.
Kann es sein, dass zwischendurch irgendwo ein „reboot“ erforderlich ist?
Wie dem auch sei, danke für die tollen, gut nachvollziehbaren und lehrreichen Beschreibungen.
Daniel Wenzel
04.07.2015 @ 19:39
Hallo,
ein frisches Raspbian kann ich da leider nicht nachvollziehen, wenn bereits (fehlende) Abhängigkeiten zu Minecraft und anderen Paketen bestehen. Ich schlage mal folgendes vor:
1) Du kopierst mal die komplette Meldung, wenn du versuchst, „send“ zu kompilieren
2) Wenn dir was an deiner jetzigen Installation von Raspbian liegt, nimmst du eine zweite SD-Karte und packst das Raspbian-Image frisch drauf. Dann versucht du noch einmal der Anleitung zu folgen.
1techone
04.07.2015 @ 18:30
Leider klappt es bei mir nicht.
Nach dem Updaten und Upgraten kommt folgende Meldung:
Die folgenden Pakete wurden zurückgehalten;
lxpanel, lxpanel-data, minecraft-pi und raspberrypi-ui-mode.
Genau diese Daten werden vermisst, wenn ich make send ausführen will.
Das alles ist auf einem Raspi 2 mit neuem Raspian installiert.
Wo hackt es? Was kann ich tun?
pj
14.03.2015 @ 00:06
habe auch das Schalterset von elro. Installation etc hat soweit geklappt. Bei send 11111 1 1 messe ich mit dem Voltmeter an dem http://www.pollin.de/shop/dt/MTU5OTgxOTk-/Bausaetze_Module/Module/Funkmodul_RFM02_433_Sendemodul.html Modul kurzzeitig eine Spannung von 0,8V an dem Datenpin. Leider schaltet die Steckdose nicht. Irgendwelche Tipps?
Daniel Wenzel
07.03.2015 @ 16:20
Hallo,
ich habe mir soeben mal ein paar Bilder von den Sets angeschaut. Auf der Rückseite der Steckdose sollte mit einer Kreuzschlitzschraube eine Klappe verschlossen sein, hinter der sich die DIP-Schalter befinden. Grundsätzlich sind die günstigen Funksteckdosen alle gleich aufgebaut (vielleicht sogar vom gleichen Hersteller): Elro, Mumbi, B1 (Toom).
Martin
07.03.2015 @ 16:14
Hallo Herr Wenzel,
vielen Dank für die Anleitung. Ich habe mir das von Ihnen im Artikel oben genannte Funksteckdosen-Set von Mumbi gekauft. Dieses hat allerdings leider keine Möglichkeit über einfache Schiebeschalter den Code einzustellen.
Wie gehe ich bei diesen Steckdosen vor? Oder klappt es damit nicht?
Daniel Wenzel
11.12.2014 @ 12:29
Danke für den Hinweis, dass natürlich zuvor noch eine „Konfiguration“ angepasst werden muss.
Dafür habe ich folgenden Beitrag erstellt: https://klenzel.de/3075
Ich hoffe, es klappt wie beschrieben und ich konnte dir damit helfen.
Anonymous
08.12.2014 @ 19:14
Super, danke :) – Muss man das in irgendwelchen configs hinterlegen (arbeite zu ersten mal mit dem pi)?
Daniel Wenzel
08.12.2014 @ 05:29
Ja, das ist natürlich möglich.
Du kannst beispielsweise genauso gut die GPIO-Ports 22, 23, 24 oder 25 nutzen.
Tobi
04.12.2014 @ 17:16
Hi,
Danke erstmal für die tolle Beschreibung. Kannst du mir sagen, ob es möglich ist den Data Port auf einen andern PIN als GPIO 17 zu verschieben. Ich würde nämlich gern noch einen IR-Sender betreiben und der braucht GPIO 17 und 18.
Danke im Voraus