HM-LGW-O-TW-W-EU Funk-LAN Gateway

Aus FHEMWiki
Version vom 30. August 2016, 17:09 Uhr von Mgernoth (Diskussion | Beiträge) (→‎Hinweise zum Betrieb mit FHEM: Definition hinzugefügt, Firmwareupdate erweitert)
HM-LGW-O-TW-W-EU Funk-LAN Gateway
HomeMatic Funk-LAN Gateway
Allgemein
Protokoll HomeMatic
Typ Gateway
Kategorie HomeMatic
Technische Details
Kommunikation 868,3/869,525 MHz
Kanäle n/a
Betriebsspannung 5V DC
Leistungsaufnahme 0,8W
Versorgung DC-Buchse
Abmessungen 116x150x34mm
Sonstiges
Modulname HMUARTLGW
Hersteller ELV / eQ-3


Das HM-LGW-O-TW-W-EU Funk-LAN Gateway ist ein Interface zu HomeMatic Geräten, ähnlich dem LAN Konfigurations-Adapter.

Features

(Noch zu ergänzen)

  • ...

Hinweise zum Betrieb mit FHEM

Juni 2016: Beginn der Entwicklung eines FHEM-Moduls (HMUARTLGW) für dieses Interface, beschrieben im Forum unter dem Titel Modul für HomeMatic UART-Modul (RPi) und HomeMatic LAN Gateway. Dieses Modul unterstützt gleichzeitig auch das Funkmodul für Raspberry Pi.

Juli 2016: HMUARTLGW wird über FHEM update verteilt, damit ist dieses Funkmodul offiziell unterstützt.

Definition

define meinLGW HMUARTLGW 192.168.42.23
attr meinLGW lgwPw LGWPasswort
attr meinLGW hmId xxxxxx

Firmware

Es sollte darauf geachtet werden, dass die beiden Firmware-Versionen des Funk-LAN Gateway aktuell sind (aktuell: Applikation: 1.4.1, LAN: 1.1.5). LAN-Firmwareversionen < 1.1.5 haben Stabilitätsprobleme. Beide Firmware-Versionen können mit den eQ-3-Tools unter Linux aktualisiert werden. Sollte das Update auf einem x86_64 System (amd64) erfolgen, müssen noch die 32bit Kompatibilitätsbibliotheken libc6-i386 und lib32stdc++6 installiert werden.

(Im folgenden "NEQ0218723" durch die eigene Seriennummer des Funk-LAN Gateway ersetzen und "geheimesLGWPasswort" durch das LGW-Passwort. Falls die Verschlüsselung deaktiviert wurde, dann das -k komplett weglassen.

Vorbereitung des Firmwareupdates

Installation der Kompatibilitätsbibliotheken (nur auf x86_64/amd64 ohne konfiguriertes Multiarch):

$ apt-get install libc6-i386 lib32stdc++6

Auschecken und Vorbereitung der eQ-3-Tools:

$ git clone https://github.com/eq-3/occu
...
$ cd occu
$ sudo ln -s $(pwd)/firmware /firmware

Auf arm:
$ cd arm-gnueabihf/packages-eQ-3/LinuxBasis/bin

Auf x86 bzw. x86_64:
$ cd X86_32_Debian_Wheezy/packages-eQ-3/LinuxBasis/bin (auf X86/X86_64)

Wieder gemeinsam auf allen Plattformen:
$ chmod 755 eq3configcmd

Update der LAN-Firmware

Um das Update durchzuführen, muss man sich im Verzeichnis occu/arm-gnueabihf/packages-eQ-3/LinuxBasis/bin bzw. occu/X86_32_Debian_Wheezy/packages-eQ-3/LinuxBasis/bin befinden.

$ LD_LIBRARY_PATH=../lib:../../RFD/lib ./eq3configcmd update-lgw-firmware -u ../../../../firmware/hm-lgw-o-tw-w-eu_update.eq3  -console -l 1 -s NEQ0218723 -k 'geheimesLGWPasswort'
2016/07/28 09:25:24.264 <Info> LAN Gateway Firmware Update...

2016/07/28 09:25:24.265 <Info> Gateway NEQ0218723
2016/07/28 09:25:26.273 <Info> Gateway type is eQ3-HM-LGW-App
cryptEnabled true2016/07/28 09:25:33.313 <Info> Updating firmware....

2016/07/28 09:25:38.467 <Info> Update performed. Waiting for gateway to get ready.

Update der Applikationsfirmware

Um das Update durchzuführen, muss man sich im Verzeichnis occu/arm-gnueabihf/packages-eQ-3/LinuxBasis/bin bzw. occu/X86_32_Debian_Wheezy/packages-eQ-3/LinuxBasis/bin befinden.

$ LD_LIBRARY_PATH=../lib:../../RFD/lib ./eq3configcmd update-coprocessor -u -f -c -l 0 -d ../../../../firmware -s NEQ0218723 -k 'geheimesLGWPasswort'
2016/07/28 09:33:03.791 <Debug> firmware filename is: coprocessor_update_hm_only.eq3

cryptEnabled true2016/07/28 09:33:05.801  LanConnection::connect
2016/07/28 09:33:05.802  LanConnection::connect done
2016/07/28 09:33:05.805 <Info> Lan Device Information:
Protocol-Version: 1
Product-ID: eQ3-HM-LGW
Firmware-Version: 1.1.5
Serial Number: NEQ0218723

2016/07/28 09:33:06.007  LanConnection::connect
2016/07/28 09:33:06.008  LanConnection::connect done
2016/07/28 09:33:06.010 <Info> Lan Device Information:
Protocol-Version: 1
Product-ID: eQ3-HM-LGW
Firmware-Version: 1.1.5
Serial Number: NEQ0218723

2016/07/28 09:33:07.516 <Debug> (NEQ0218723) CCU2CommControllerMod::handleIdentifyEvent(): Coprocessor is in application.
2016/07/28 09:33:07.516 <Debug> CCU2CoprocessorCommandMod::CCU2CoprocessorCommandMod(): System frame
2016/07/28 09:33:07.517 <Debug> CCU2CoprocessorCommandMod::isResponseStatusOk(): System status OK
2016/07/28 09:33:07.517 <Debug> CCU2CommControllerMod::handleIncomingResponse() System response OK
2016/07/28 09:33:07.517 <Debug> (NEQ0218723) CCU2CommControllerMod::handleIdentifyEvent(): Coprocessor is in application.
2016/07/28 09:33:07.535 <Debug>  deliver firmware...
2016/07/28 09:33:11.036 <Info> CCU2CommControllerMod::sendSystemCommand(): failed
2016/07/28 09:33:11.037  CoprocessorUpdate::startBootloader()
2016/07/28 09:33:11.039 <Debug> (NEQ0218723) CCU2CommControllerMod::startCoprocessorBootloader(): Trying to start coprocessor bootloader
2016/07/28 09:33:11.040 <Debug> CCU2CommControllerMod::sendSystemCommand(): Start Application / Bootloader
2016/07/28 09:33:11.044 <Debug> CCU2CoprocessorCommandMod::CCU2CoprocessorCommandMod(): System frame
2016/07/28 09:33:11.044 <Debug> CCU2CoprocessorCommandMod::isResponseStatusOk(): System status OK
2016/07/28 09:33:11.044 <Debug> CCU2CommControllerMod::handleIncomingResponse() System response OK
2016/07/28 09:33:13.149 <Debug> CCU2CoprocessorCommandMod::CCU2CoprocessorCommandMod(): System frame
2016/07/28 09:33:13.149 <Debug> (NEQ0218723) CCU2CommControllerMod::handleIdentifyEvent(): Coprocessor is in bootloader.
2016/07/28 09:33:13.540 <Debug> CoprocessorUpdate::startBootloader():Coprocessor entered bootloader.
2016/07/28 09:33:14.090 <Debug> CCU2CoprocessorCommandMod::CCU2CoprocessorCommandMod(): System frame
2016/07/28 09:33:14.090 <Debug> CCU2CoprocessorCommandMod::isResponseStatusOk(): System status OK
2016/07/28 09:33:14.090 <Debug> CCU2CommControllerMod::handleIncomingResponse() System response OK
...
2016/07/28 09:33:21.138 <Info> Firmwareupdate successfull

2016/07/28 09:33:21.139  LanConnection::disconnect
2016/07/28 09:33:21.141  Closing socket 3
2016/07/28 09:33:32.144 <Debug> Wait for disconnect timed out
...

Das "Wait for disconnect" kann man mit CTRL-C abbrechen.

Logbeispiel

Bekannte Probleme

Das LGW hat (anders als das UART-Modul) keine eigene hmId (das Reading D-HMIdOriginal ist auf FFFFFF gesetzt). Es muss also mit

attr meinLGW hmId xxxxxx

eine nach den in der commandref definierten Regeln gewählte Id gesetzt werden.

Links