Funk-Handsender HM-RC-Key4-2 and FHEM via CUL

Begonnen von DerJens, 02 Januar 2015, 12:32:23

Vorheriges Thema - Nächstes Thema

DerJens

Hallo,
ich wollte kurz meine Erfahrungen und Erkenntnisse wieder ins Forum zurückspielen.

Worum geht es?
Ich habe bislang EnOcean Komponenten von Eltako verbaut und war auf der Suche nach einer schönen Fernbedienung für den Schlüsselbund, mit der ich z.B. das Garagentor öffnen und das Außenlicht an und ausschalten kann. Von EnOcean habe ich hier irgendwie nichts geeignetes gefunden, bei HomeMatic schon: den Funk-Handsender 130459 HM-RC-Key4-2. Als HomeMatic-Neueinsteiger habe ich mich dann durch diverse Threads und Wiki-Einträge gewühlt und habe es letztendlich geschafft, die Fernbedienung über das CUL Interface von Busware in FHEM einzubinden. Im Folgenden fasse ich kurz die notwendigen Schritte zusammen, sodass es eine vollständige und aktuelle Anleitung mit Stand 12/2014 ergibt. Die Infos habe ich wie schon erwähnt aus mehreren Quellen zusammengetragen, mein Dank an dieser Stelle an die Autoren dieser Beiträge!

Vorarbeiten
Damit FHEM das HomeMatik-Protokoll BidCoS verstehen und sprechen kann, habe ich mir von Busware  einen CUL868 in der Version 3.4 bestellt. Der USB-Stick kommt OHNE "Betriebssystem" und muss zunächst einmalig mit einer geeigneten Firmware bespielt werden. Die passende Firmware-Datei kann so heruntergeladen werden:
wget http://sourceforge.net/p/culfw/code/HEAD/tree/trunk/culfw/Devices/CUL/CUL_V3.hex?format=raw -O CUL_V3.hex
Diese Datei habe ich dann mit dem Tool FLIP http://www.atmel.com/tools/FLIP.aspx unter Windows auf den Stick gespielt. Wie das geht zitiere ich auszugsweise von hier http://www.steffen-sobe.de/sonstiges/fhem-fritzbox7270.shtml:

  • Run FLIP
  • Click "File - Load HEX file" and choose CUL_V3.hex
  • Click the buttons one after the other, e.g. choose the correct device (e.g. ATmega32U4), communication medium "USB", erase, program etc.
Nach einem Reboot blinkt der Stick dann im Sekundentakt.

CUL am Raspberry PI
Da schon EnOcean und JeeLink an meinem Raspberry Pi hingen und ich ein wenig Sorge um eine ausreichende Stromversorgung hatte, hab ich einen aktiven USB-Hub dazugekauft. Ich habe FHEM kurz gestoppt, CUL eingesteckt und FHEM wieder gestartet. Soweit ich gelesen habe kann man das auch "online" via usb scan machen. Es gibt jetzt ein neues Device CUL_0 mit der Firmware-Version 1.62 CUL868.

CUL konfigurieren
Meine Minimalkonfiguration sieht derzeit so aus:
define CUL_0 CUL /dev/ttyACM0@9600 0000
attr CUL_0 hmId XXXXXX
attr CUL_0 rfmode HomeMatic

Der Platzhalter XXXXXX wird durch eine frei gewählte hexadezimale Zahl zwischen 000000 und FFFFFF ersetzt und gibt die Adresse vom CUL an. Damit das Anlernen später funktioniert, wird der Stick auf das HomeMatic Protokoll eingestellt.

Fernbedienung anlernen
Ein Druck auf eine Taste der Fernbedienung findet sich jetzt schon im Log:
Unknown code A0B0B84402FB0BB0000000207::-66.5:CUL_0, help me!
Mit set CUL_0 hmPairForSec 60 setzt man dann FHEM in den Anlernmodus. Jetzt hat man 60 Sekunden Zeit, den kleinen Schalter auf der Rückseite der Fernbedienung einmal kurz zu drücken. Nach ein wenig Geblinke der LED gibt es ein neues Gerät im Raum CUL_HM. Das kann man auch im Log nachverfolgen:
2015.01.01 11:31:34 4: CUL_Parse: CUL_0 A 1A 29 8400 2FB0BB 000000 1200A64C4551303735343234364004000021 -57.5
2015.01.01 11:31:34 2: CUL_HM Unknown device CUL_HM_HM_RC_Key4_2_2FB0BB is now defined
2015.01.01 11:31:34 2: autocreate: define CUL_HM_HM_RC_Key4_2_2FB0BB CUL_HM 2FB0BB
2015.01.01 11:31:34 2: autocreate: define FileLog_CUL_HM_HM_RC_Key4_2_2FB0BB FileLog ./log/CUL_HM_HM_RC_Key4_2_2FB0BB-%Y.log CUL_HM_HM_RC_Key4_2_2FB0BB


Fernbedienung konfigurieren
Ich habe zunächst den recht langen Namen "CUL_HM_HM_RC_Key4_2_2FB0BB" umbenannt. Zudem gibt es 4 neue Channels, die diesem Device zugeordnet sind. Das sind die 4 Tasten auf der Fernbedienung, die ich ebenfalls umbenannt habe. Ab jetzt kann man schon die Tastendrücke im Eventlog sehen und in einem Notify verarbeiten.

Rückkanal
Beim Drücken der Fernbedienung bekommt man eine gelbe Rückmeldung über die LED. Wenn ich http://forum.fhem.de/index.php/topic,13050.90.html und http://forum.fhem.de/index.php?topic=25537.0 richtig verstanden habe, bedeutet dies, dass ein Signal gesendet wurde und keine Rückmeldung erwartet wird. Wenn FHEM den Empfang bestätigen soll, kann man das mit weiteren Kommandos erreichen:
set <Name des Channels von einer Taste> peerChan 0 <Name des CUL> single
Beispiel:
set RemoteControl1_light peerChan 0 CUL_0 single

Wichtig ist hier die Reihenfolge:

  • set-Befehl in FHEM absetzen
  • Einmal kurz auf die Anlern-Taste an der Fernbedienung drücken
  • Kurz warten, bis das Blinken durch Grün abgeschlossen wird
Das macht man dann 4x für jede Taste auf der Fernbedienung. Das war's auch schon.

Liebe Grüße
DerJens