Funksteckdosen mit dem Raspberry PI steuern
Mit dem in einem anderen Artikel vorgestellten RaspyRFM Modul ist es möglich verschiedene Funksteckdosen vom Raspberry PI aus anzusprechen und die Aussendungen der Fernbedienung einzulesen. Es gibt eine Vielzahl unterschiedlicher Funksteckdosen, die mit unterschiedlichen Funkprotokollen arbeiten. Für die verbreitetsten Typen gibt es Pythonskripte, mit denen die Funksteckdosen geschaltet werden können. Eine (unvollständige) Übersicht aller Funksteckdosen die mit dem RaspyRFM und den verfügbaren Skripten gesteuert werden können findet man in diesem Artikel.
Protokolltyp I: Tristate 434 MHz
Viele Funksteckdosen arbeiten mit dem IC HX2262 oder Kompatiblen. Das IC hat 12 Dateneingänge (A0-A11), wobei jeder Eingang auf Low, High oder offen gelegt werden kann. Eine 0 an einem Eingang erzeugt zwei kurze Impulse, eine 1 zwei lange Impulse und ein offener Eingang einen kurzen Impuls gefolgt von einem Langen.
____ ____
Bit 0 : _| |____________| |____________
|<4a>|<---12a---->|<4a>|<---12a--->|
____________ ____________
Bit 1 : _| |____| |____
|<---12a---->|<4a>|<---12a---->|<4a>|
____ ____________
Bit f: _| |____________| |____
|<4a>|<---12a---->|<---12a---->|<4a>|
____
Sync : _| |___________ _ _ _ ____________
|<4a>|<-----------124a------------->|
Ein Frame besteht aus 12 dieser Doppelimpulse („0“, „1“, oder „F“), gefolgt von einem Synchronisationsimpuls. Die Zeitbasis a schwankt von Hersteller zu Hersteller. Um ein Telegram mit diesem Protokoll mit dem RaspyRFM auszusenden kann das mitgelieferte Skript „rcpulse.py“ verwendet werden:
./rcpulse.py -p tristate -c 000000000FFF
Die Eingänge sind je nach Hersteller unterschiedlich beschaltet, etwa mit Hexdrehrädchen, DIP-Schaltern, Tastern oder fest verdrahtet. Manche Hersteller schalten die Eingänge gegen GND, oder gegen Plus. Im folgenden sind einige Modelle mit ihrer Beschaltung aufgelistet:
Intertechno (tristate)
Dieses System arbeitet mit Hauscode A-P, Gruppe 1-4 und Kanal (Taste) 1-4, welche wie folgt in Tristatecode umgewandelt wird:
Bit 1-4 | Bit 5-6 | Bit 7-8 | Bit 9-10 | Bit 11-12 |
Hauscode A-P A=“0000″ B=“F000″ … P=“FFFF“ | Kanal 1-4 1=“00″ 2=“F0″ 3=“0F“ 4=“FF“ | Wahlschalter Gruppe 1-4 1=“00″ 2=“F0″ 3=“0F“ 4=“FF“ | Fest „0F“ | Kommando On=“FF“ Off=“F0″ |
Für diese Steckdosen können an das Skript direkt die Parameter Hauscode, Gruppe und Kanal übergeben werden um sich so die manuelle Umcodierung zu sparen:
sudo ./rcpulse.py -p ittristate -o A -g 1 -u 1 -a on
Brennenstuhl RCS 1000
Bei den Steckdosen von Brennenstuhl kann der Code über DIP Schalter eingestellt. Auch für diese Steckdose kann das rcpulse Skript direkt die Parameter für die Brennenstuhlsteckdose aufnehmen, also 5 Bits Systemcode, die Kanalnummer (Taste) und den Zustand:
Bit 1-5 | Bit 6-9 | Bit 10 | Bit 11-12 |
5 Dipschalter Hauscode Jeweils „0“ für ON und „F“ für OFF | Kanal 1-4 Jeweils „0“ für gedrückt, „F“ für nicht gedrückt | Fest „F“ | On=“0F“, Off=“F0″ |
./rcpulse.py -p tristate -c 00FF000FFFF0F
Aufbau der MQTT-Nachrichten mit rcpulsegw Skript:
home/rcpulse/brennenstuhl
RSL366
An den Steckdosen RSL366 wird jeweils Hauscode und Kanal (Taste) über ein Drehrädchen eingestellt:
Bit 1-4 | Bit 5-8 | Bit 9-11 | Bit 12 |
Hauscode „0FFF“, „F0FF“, „FF0F“, oder „FFF0“ | Kanal 1-4 Jeweils „0“ für gedrückt, „F“ für nicht gedrückt | Fest „F“ | On=“F“, Off=“0″ |
Auch diese Steckdosen können direkt unter Angabe des Hauscodes und des Kanals gesteuert werden:
./rcpulse.py -p tristate -c 0FFF0FFFFFFF
Goobay 94503
Diese Funksteckdose kann lediglich mit einem Schiebeschalter von 1-4 auf eine Adresse konfiguriert werden, die Symbole sond wie folgt belegt:
- Symbol 1-3: 0
- Symbol 4-7: Schalterstellung 1: FF0F, Schalterstellung 2: FFF0, Schalterstellung 3: F0FF, Schalterstellung 4: 0FFF
- Symbol 8-10: 00F
- Symbol 11-12: FF für ein, F0 für aus
Protokolltyp II: PPM 32 Bit
Pulse Position Modulation 32 bit. Neben allen selbstlernenden Intertechno-Funksteckdosen verwenden auch andere Hersteller wie Hama diesen Protokolltyp. Dabei werden folgende Symbole benutzt:
____ ____
Bit 0 : _| |____| |____________________
|<1T>|<1T>|<1T>|<--------5T-------->|
____ ____
Bit 1 : _| |____________________| |____
|<1T>|<--------5T-------->|<1T>|<1T>|
____ ____
Bit X : _| |____| |____
|<1T>|<1T>|<1T>|<1T>|
____
Sync : _| |_________ _ _ _ ________
|<1T>|<----------11T--------->|
____
Pause : _| |___________ _ _ _ ____________
|<1T>|<-----------39T-------------->|
Ein Telegram besteht aus einem Syncsymbol, 32 Datenbits und einem Pausesymbol. Ein Telegram wird für eine Aussendung 4x wiederholt. Das Datenfeld ist folgendermaßen aufgebaut:
- 26 Bits Systemcode
- 1 Bit Gruppe (0=einzeln, 1=Gruppe)
- 1 Bit ein/aus
- 4 Bit Kanal (0000 = 0, 0001 = 1, …)
Die Bedeutung der Bits und die Pulsdauer ist unter den Herstellern leicht unterschiedlich:
Selbstlernende Intertechno Steckdosen („Intertechno neu“)
Die Schrittdauer beträgt ca. 275 µS. Mit dem rcpulse Skript können diese Steckdosen unter Angabe des Systemcodes (26 Bits) und der Kananlnummer (1-16) folgendermaßen angesprochen werden:
./rcpulse.py -p intertechno -i 47113 -u 1 -a on
Einige selbstlernenden Intertechnoaktoren unterstützen die Funktion dimmen. Dazu wird an der Stelle des „ein-aus“-Bits (Bit 28) das X Symbol gesendet und am Ende noch 4 weitere Bits für die Helligkeit (0-15) gesendet:
- 26 Bits Systemcode
- 1 Bit Gruppe (0=einzeln, 1=Gruppe)
- 1 Bit X
- 4 Bit Kanal (0000 = 0, 0001 = 1, …)
- 4 Bit Helligkeit (0000 = 0 %, 1000 = 50 %, 1111 = 100 %)
Soll ein Intertechnoaktor über MQTT gedimmt werden, wird statt „on“ im MQTT Payload einfach die Dimmstufe von 0 – 100 % angegeben:
./rcpulse.py -p intertechno -i 47113 -u 1 -a 60
Hamafunksteckdosen HAMA 00121938
Diese Geräte funktionieren ähnlich wie die „Intertechno neu“ Geräte, allerdings mit einer Schrittdauer von 250 µS und die 4 Kanalbits müssen invertiert werden, das erledigt das Skript.
./rcpulse.py -p hama -i 47113 -u 1 -a on
Protokoll III: Voltcraft/Silvercrest Sender TR502MSV, Steckdose RC30ADX
Pulse Position Modulation, 20 bit. Impuls in Symbolmitte = 0, Impuls am Symbolende = 1
- 12 Bit ID
- 2 Bit Unit
- 3 Bit Command
- 1 Füllbit = 0
- 2 Bit Prüfsumme
Protokoll IV: PWM1 24 Bit
Pulse Width Modulation, breiter Impuls = 1, kurzer Impuls = 0. Dieses Protokoll wird u. a. von den Herstellern Logilight, emylo, u. a. verwendet. Die 24 Bits werden mit folgenden Symbole kodiert. Die Pulsdauer schwankt von Modell zu Modell.
____
Bit 0 : _| |____________
|<1a>|<---3a---->|
____________
Bit 1 : _| |____
|<----3a---->|<1a>|
____
Sync : _| |___________ _ _ _ ____________
|<1a>|<-----------31a------------->|
Nach einem Block bestehend aus 24 Bit Daten folgt ein Syncpuls. Die 24 Datenbits werden unter den Herstellern unterschiedlich verwendet, oft ist ein Frame wie folgt codiert:
- Sync
- 20 Bits unit code
- 4s Bit data (Taste)
Logilight Funksteckdosen EC0001-EC0004
Die Schrittdauer beträgt hier ca. 300 µs. Die 24 Datenbits sind wie folgt zugeteilt:
- 20 Bits Systemcode
- Bit 21 für ein/aus
- Bits 22-24: 111 = Kanal 1, 011 = Kanal 2, 101 = Kanal 3
Die Logilightsteckdosen brauchen zum Anlernen mehr Wiederholungen in der Aussendung damit der Lerncode zuverlässig erkannt wird. Zum Anlernen muss das Datenpaket länger gesendet werden, was durch das Kommando „learn“ angegeben werden kann. Kanal 2 mit einem Systemcode 4113 anlernen:
./rcpulse.py -p logilight -i 47113 -u 1 -a learn
eMylo Schaltmodule
Die Schrittdauer der eMylo Module liegt bei ca. 350 µs.
- 20 Bits Systemcode
- 4 Bits Taste, A = 0001, B = 0010, C = 0100, D = 1000
Der Code für die eMylo Module kann mit diesem Kommando ausgesendet werden:
./rcpulse.py -p emylo -i 4711 -k A
ELV FS20 Steckdosen steuern
Mit der 868 MHz Version oder dem RaspyRFM Twin können auch die ELV Steckdosen im 868 MHz Band gesteuert und die Fernbedienung empfangen werden.
Die Fernbedienungen können wie folgt empfangen und dekodiert werden:
./rcpulse.py -m 2 -f 868.35
Für ein RaspyRFM Einzelmodul wird -m 1 verwendet. Eine FS20 Steckdose mit obigen empfangenen Parameteren wird so ausgesendet:
./rcpulse.py -m 2 -f 868.35 -p fs20 -i 46434 -u 1 -a 16
Protokoll V: PWM 32 bit
Dieses Protokoll wird u. a. vom Hersteller Pilota Casa verwendet. Die Schrittweite beträgt 600 µS, ein schmaler Impulse entspricht Bit 1, ein breiter Impuls Bit 0.
- 2 Bit Gerätetyp, 01 = Funktaster
- 6 Bit Gruppe, Unit, on/off
- 16 Bit ID
- 8 Bit immer 1
Steckdosen mit der App PowerSwitch steuern
Die App PowerSwitch kann die kommerziellen Gateways Brennenstuhl Brematic, Connair 433 und Intertechno ITGW-433 über Netzwerk ansteuern. Beim RaspyRFM wird ein Pythonprogramm mitgeliefert welches diese Gateways emuliert und so mit Hilfe der App Funksteckdosen steuern kann.
Empfänger und Fernbedienungen mit Node Red nutzen
Für das Tool Node Red wird eine Implementierung (node-red-contrib-raspyrfm) zur Verfügung gestellt mit dem Schaltabläufe mit Timern usw. einfach graphisch erstellt werden können. Über Node Red mit dem Raspy RFM gibt es einen eigenen Artikel.
Fernbedienungen empfangen
Die Signale aller obenstehenden Empfänger können mit dem RaspyRFM auch empfangen werden:
./rcpulse.py RFM69 found on CS 0 Init complete. {'code': '10111100011101011111111110001110', 'timebase': 250, 'group': 0, 'state': 0, 'protocol': 'it32', 'id': 49403902, 'unit': 15} {'code': '011001010101101111101011', 'timebase': 302, 'state': 1, 'protocol': 'switch15', 'id': 415166, 'unit': 2} {'timebase': 290, 'code': '0000f0f00fff', 'protocol': 'ittristate'}
Die so empfangenen Codes können wieder direkt mit dem selben Skript gesendet werden.
Guten Tag Herr Seegel,
ich habe Interesse an Ihrem RaspyRFM-II, allerdings hätte ich noch Fragen dazu.
Mit welchem Raspberry Pi‘s ist das Modul kompatibel?
Auch mit einem RP Zero oder RP 2 Model B?
Mittlerweile sind die Raspberry Pi‘s sehr teuer geworden, vermutlich gibt es auch keine anderen, günstigeren Alternativen oder?
Außerdem würde ich gerne wissen wie groß die Reichweite des Models ohne Antenne, mit 4 cm Antenne und 10 cm Antenne ist?
Hallo Herr Seegel,
es ist aktuell für mich nicht erkennbar, ob Sie noch aktiv sind und die Module weiterhin bei Ihnen erworben werden können.
Bitte hierzu eine kurze Nachricht, wie ggfs. Artikel bestellt werden können.
Danke
M. Volkens
Die Module sind nach wie vor im Shop bestellbar, und es kommt immer mehr Software dazu.
Wie kann ich die Hama-Steckdosen ansteuern? Bitte vervollständigen 🙂
Schaffe es bisher nur die Codes Auszulesen.
Kann ich auch mehr als 3 Steckdosen ansteuern?
Gruß Stephan
Die Hamasteckdosen werden fast wie die selbstlernenden Intertechnosteckdosen angesprochen, nur dass die Zeitbasis 250 µS beträgt und dass die 4 Bits für die Kanalnummer invertiert üertragen werden.