HM-LC-Sw1PBU-FM Alternative Firmware

Aus FHEMWiki
Version vom 28. Januar 2015, 08:38 Uhr von Ph1959de (Diskussion | Beiträge) (diverse kleinere Korrekturen)
X mark.svgBei den hier gezeigten Modifikationen geht die Garantie verloren und das Gerät verliert seine Zertifizierungen!

Um die alternative Firmware auf den HM-LC-Sw1PBU-FM flashen zu können, muss das Gerät geöffnet und ein Programmer angelötet werden.

Neue Funktionen

  • Der Taster kann mit anderen Geräten gepeert werden. Das ist mit der Originalfirmware nicht möglich.
  • Die alternative Firmware hat eine Stromerkennung, die hardwaretechnisch immer vorhanden ist, aber von der eQ-3 Firmware nicht benutzt wird. Es ist möglich, damit eine Wechselschaltung zu implementieren.

Integration des Schalters in FHEM

Anlernen

In FHEM ist der HomeMatic-CUL in den Anlernmodus zu bringen. Der ConfigButton des Schalters ist nun länger als vier Sekunden zu drücken. Wichtig: die LED darf nach Loslassen des Button nicht aufblinken; sie gibt keine Rückmeldung über den Status des Anlernvorgangs.

Nach dem Anlernen sollte nochmal die aktuelle Config ausgelesen werden. Das kann ein paar Sekunden dauern und ist abgeschlossen, sobald der "state" = "cmds done" ist.

set <HM-LC-SW1PBU-FM_Device> getConfig

Möchte man erneut pairen, so geht dies am einfachsten mit:

set <HM-LC-SW1PBU-FM_Device> regSet pairCentral <123456>

Um den Schalter wie einen "normalen" Schalter wirken zu lassen, müssen noch die Buttons mit dem Switch gepeert werden. Danach bewirkt ein Tastendruck nach oben ein Einschalten, und ein Druck nach unten ein Ausschalten. Unterlässt man diesen Schritt, passiert bei einem Tastendruck am angeschlossenen Verbraucher nichts.

set <HM-LC-SW1PBU-FM_Btn_01 peerChan 0 <HM-LC-SW1PBU-FM_Sw_01 dual set 

Reset

Um den Schalter zu resetten ist der ConfigButton 2x hintereinander für > 4sek zu drücken. Auch hier liefert die LED keinerlei Rückmeldung über den Status. Blinks die LED trotzdem auf, so wurde das Drücken des Buttons nicht als "lang" erkannt. Alternativ kann ein Reset über FHEM ausgelöst werden:

set <HM-LC-SW1PBU-FM_Device> reset

Vorgehen zum Flashen

Anschluss der einzelnen PINs bei Verwendung der GPIO-Ports des Raspberry PI

Raspberry PIN | Beschreibung | HM-LC-Sw1PBU-FM
--------------|--------------|----------------
   Pin #17    |    3,3V      |    MP2
   Pin #19    |    MOSI      |    MP4
   Pin #21    |    MISO      |    MP5
   Pin #23    |    SCLK      |    MP6
   Pin #24    |    Reset     |    MP3
   Pin #25    |    GND       |    MP15

Wenn man den HM-LC-SW1PBU-FM vor sich liegen hat, liegen die Pins in folgender Reihenfolge:

Reihe 1: MP15 / MP5 / MP6
Reihe 2: MP3 / MP4 / MP2

Wichtig beim Raspberry Pi ist, dass man nicht die von Raspbian ausgelieferte Version des 'avrdude' nutzen kann, sondern eine adaptierte Version verwendet werden muss. Alle notwendigen Dateien zum Flashen (bereits alles fertig und lauffähig) inkl. einem kleinen HowTo sind im unten stehenden Link 'Flashen mit RaspberryPi' vorhanden.

Bootloader

  • Fuses setzen (wichtig)
  • Firmware bauen + flashen
  • HMID auf die des originalen Gerätes setzen
  • Seriennummer ist, wenn man sie nicht ändert, KEQ0123456
  • Gerät starten (LED blinkt einmal)

Firmware

  • Firmware mit arduino bauen
  • In eq3 File konvertieren

Firmware OTA flashen

  • Windows flasher: in den Flasher die Seriennummer eingeben und die Firmware laden (vorher tar.gz bauen)
  • flash-ota: eq3 File- und Seriennummer eingeben

Gerät nutzen

  • 99_Asksin_HM_LC_Sw1PBU_FM_CustomFW.pm in FHEM installieren
  • Gerät mit FHEM pairen (Config Taster drücken)
  • Andere Geräte mit dem Gerät peeren und Spaß haben

UART nutzen

Statt /dev/ttyXXX das eigene Interface einfügen:

  • /dev/ttyUSB0 (USB Interface)
  • /dev/ttyAMA0 (Raspberry PI)
  • /dev/ttyS0 (normaler Serieller Port)

Öffnen

  • Direkt in der Arduino IDE (Tools -> Serial Monitor)
  • Mit screen
screen /dev/ttyXXX 57600,CS8,ixon,ixoff
  • Mit minicom
sudo apt-get install minicom
minicom -b 57600 -o -D /dev/ttyXXX -w

Links

  • Firmware: [1]
  • Bootloader: [2]
  • Arduino Port für Atmega 644: [3]
  • Flashen mit RaspberryPi: [4]