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. Es gibt eine Vielzahl unterschiedlicher Funksteckdosen, von denen im Folgenden einige näher unter die Lupe genommen werden.

Bisher in Software umgesetzte Steckdosentypen:

  • Systeme mit HX2262 / PT 2262 & Kompatible (434 MHz)
    Dazu gehören z.B. viele Intertechno, Brennenstuhl, REV, Elro, uvm.
    Senden:

    sudo ./xx2262.py 000000000FFF
    
  • Intertechno (ältere Versionen mit HX2262 kompatiblem Chip)
    Senden:
    Aufrufparameter: <Hauscode> <Group> <Channel> on|off

    sudo ./intertechno.py A 1 3 on
    
  • Brennenstuhl RCS 1000 (HX2262 kompatibel)
    Senden:
    Aufrufparameter: <DIP switches> <channel> on|off

    sudo ./rcs1000.py 00110 2 on
    
  • Logilight (434 MHz)
    Zu den Logilight-Funksteckdosen gibt es einen eigenen Artikel in dem deren Protokoll besprochen wird.
    Empfang:

    sudo ./logilightrx.py
    RFM69 found!
    INIT COMPLETE
    Systemcode 415166 onoff 0 ch 7
    Systemcode 415166 onoff 0 ch 7
    Systemcode 415166 onoff 0 ch 5
    Systemcode 415166 onoff 0 ch 5
    

    Senden:

    sudo ./logilighttx.py 415166 1 7 4
    RFM69 found!
    INIT COMPLETE
    
  • Hama (434 MHz) senden
  • Hama (434 MHz) empfangen
    Zu den Hamafunksteckdosen gibt es einen eigenen Artikel mit der Protokollbeschreibung.

    sudo ./hamarx.py
    

Außerdem gibt es einen Conair-Emulator für das RaspyRFM, mit dem mit Hilfe der App Power Switch eine große Anzahl an Steckdosentypen angesteuert werden kann

 

Protokoll mit IC HX2262, PT2262 & Kompatible

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.

hx2262-high-low-float

Ein gesamtes Packet besteht dann aus 24 Impulsen (12 Bit á 2 Impulse) gefolgt von einem Synchronisationsimpuls. Um nun diese Daten mit einem OOK-fähigen Modul mit FIFO wie dem RFM69CW aussenden zu können, müssen noch die langen und kurzen Impulse konvertiert werden. Die kürzeste Zeit die in den Impulsen vorkommt sind 350 µs für den kurzen Impuls. Wenn das Funkmodul nun auf 2857 bit/s OOK eingestellt wird, kann damit ein kurzer Impuls ausgesendet werden in dem die Bitfolge „1000“ in den FIFO geschrieben wird. Eine lange Bitfolge entspricht dann „1110“. In hexadezimaler Schreibweise entspricht das 0x8 bzw, 0xE. So wird also für jeden Datenpin, also insgesamt 12x, jeweils der Wert 0x88 für Low, der Wert 0xEE für high und 0x8E für einen offenen Eingang ans Funkmodul übergeben. Solch ein Packet wird mit einem Synchronisationsimpuls abgeschlossen, welches mit dem Wert 0x80000000 auf dem FIFO generiert werden kann.

      • Bit“0″ -> 0b1000, 0b1000 -> 0x88
      • Bit“1″ -> 0b1110, 0b1110 -> 0xEE
      • Bit“f“ -> 0b1000, 0b1110 -> 0x8E

Die verschiedenen Hersteller beschalten nun das IC unterschiedlich, so dass sehr unterschiedliche Regeln von den Codierschalter- / Tastenkombinationen zustande kommen:

Brennenstuhl

Die Funksteckdosen von Brennenstuhl sind hier günstig zu beziehen. Die ersten 5 Eingänge des ICs sind mit einem Codierschalter („SYSTEM-CODE“) auf GND geschaltet. D. h. ein aktivierter Schalter sendet einen Bit“0″-, ein deaktivierter einen Bit“f“-Doppelimpuls. Darauf folgen 4 Doppelimpulse für die 4 Tasten; für jede gedrückte ein Bit“0″, für jede nicht gedrückte ein Bit“f“. Der nächste Eingang bleibt unbeschaltet, A10 wird für „Taster On“ auf low gezogen, A11 für „Taster Off“. Die Kodierregel im Kurzen:

      • 5x für jeden Codierschalter ein Bit“0″ für aktiv, ein Bit“f“ für nicht aktiv
      • 4x für jede gedrückte Taste ein Bit“0″, für jede nicht gedrückte Bit“f“
      • 1x fest Bit“f“
      • Bit“0″ – Bit“f“ für „Taster on“, Bit“f“- Bit“0″ für „Taster off“

RSL366

2015-08-27 10.35.132015-08-27 10.35.212015-08-27 10.36.23

Am Sender befindet sich ein Schiebeschalter, mit dem einer der ersten 4 Datenleitungen auf GND gelegt wird. Die nächsten 4 Datenleitungen werden von den Tasten auf low gezogen, dann folgen 3 ungenutzte Eingänge (also Bit“f“), und der letzte Eingang wird jeweils für die „OFF“-Tasten auf GND gezogen.

    • 4 Doppelimpulse, davon genau einer entsprechend des Schiebeschalters Bit“0″, der Rest Bit“f“
    • 4x für jede gedrückte Taste ein Bit“0″, für jede nicht gedrückte Bit“f“
    • 3x fest Bit“f“
    • 1x Bit“0″ für „OFF“, Bit“f“ für „ON“

Schreibe einen Kommentar