HomeMatic Wired - HMW-LAN-Gateway

Begonnen von Dirk, 02 September 2013, 21:38:44

Vorheriges Thema - Nächstes Thema

Dirk

Zitatwas soll ich tun damit  das 4er-RS485-I/O Modul implementiert werden kann?
Du meinst das HMW-IO-4-FM?
Ich muss noch ein paar Sachen aus dem Dev-Branch fertig machen. hier bin ich schon einiges weiter.
Dann muss das Device-File noch feritg gebaut werden.

ich habe grade noch mal geupdatet.
ich hoffe es gibt jetzt keine NACK's  mehr

Legt er ein Device bei dir an?

Gruß
Dirk

ManfredC

Zitat von: Dirk am 13 Oktober 2013, 21:02:06
Du meinst das HMW-IO-4-FM?

ja, genau das.

Zitat
ich habe grade noch mal geupdatet.
ich hoffe es gibt jetzt keine NACK's  mehr

Legt er ein Device bei dir an?

nein. Allerdings habe ich noch nicht upgedatet. Hier das Log beim Tastendrücken:

2013.10.13 21:08:31 5: SW: <FD>^BXK
2013.10.13 21:08:31 3: HM485_LAN: Alive: (88) 3030
2013.10.13 21:08:36 3: HM485_LAN: RX: I[1](0,Y,F,B)(9A) 00003337 -> FFFFFFFF [4] 4B(K) 01
2013.10.13 21:08:36 5: HM485_LAN dispatch <FD>^O^Be<FF><FF><FF><FF><9A>^@^@37K^A^@6
2013.10.13 21:08:36 1: Device (00003337) not defined yet. Query aditional informations.
2013.10.13 21:08:36 3: HM485_LAN: TX: (89) I[0](0,Y,F,B)(98) 00000001 -> 00003337 [3] 68(h)
2013.10.13 21:08:36 5: SW: <FD>^MYS<C8>^@^@37<98>^@^@^@^Ah
2013.10.13 21:08:36 3: HM485_LAN: TX: (90) I[0](0,Y,F,B)(98) 00000001 -> 00003337 [3] 6E(n)
2013.10.13 21:08:36 5: SW: <FD>^MZS<C8>^@^@37<98>^@^@^@^An
2013.10.13 21:08:36 3: HM485_LAN: Alive: (89) 3032
2013.10.13 21:08:36 3: HM485_LAN: NACK: 89
2013.10.13 21:08:36 5: HM485_LAN dispatch <FD>^CYa^B
2013.10.13 21:08:36 3: HM485_LAN: RX: I[2](0,Y,F,B)(9C) 00003337 -> FFFFFFFF [16] 41(A) 01100003064645513030373235
2013.10.13 21:08:36 5: HM485_LAN dispatch <FD>ESC^Ce<FF><FF><FF><FF><9C>^@^@37A^A^P^@^C^FFEQ0072586
2013.10.13 21:08:36 1: Device (00003337) not defined yet. Query aditional informations.
2013.10.13 21:08:36 3: HM485_LAN: TX: (91) I[0](0,Y,F,B)(98) 00000001 -> 00003337 [3] 68(h)
2013.10.13 21:08:36 5: SW: <FD>^M[S<C8>^@^@37<98>^@^@^@^Ah
2013.10.13 21:08:36 3: HM485_LAN: TX: (92) I[0](0,Y,F,B)(98) 00000001 -> 00003337 [3] 6E(n)
2013.10.13 21:08:36 5: SW: <FD>^M\S<C8>^@^@37<98>^@^@^@^An
2013.10.13 21:08:36 3: HM485_LAN: Alive: (91) 3032
2013.10.13 21:08:36 3: HM485_LAN: NACK: 91
2013.10.13 21:08:36 5: HM485_LAN dispatch <FD>^C[a^B
2013.10.13 21:08:36 1: NACK from 00003337 | 6E
2013.10.13 21:08:36 3: HM485_LAN: Response: (90) 46455130303732353836
2013.10.13 21:08:36 5: HM485_LAN dispatch <FD>^MZr^^FEQ0072586
2013.10.13 21:08:36 3: HM485_LAN: Response: (92) 46455130303732353836
2013.10.13 21:08:36 5: HM485_LAN dispatch <FD>^M\r^XFEQ0072586
2013.10.13 21:08:39 3: HM485_LAN: RX: I[1](0,Y,F,B)(9A) 00003337 -> FFFFFFFF [4] 4B(K) 01
2013.10.13 21:08:39 5: HM485_LAN dispatch <FD>^O^De<FF><FF><FF><FF><9A>^@^@37K^A^@:
2013.10.13 21:08:39 1: Device (00003337) not defined yet. Query aditional informations.
2013.10.13 21:08:39 3: HM485_LAN: TX: (93) I[0](0,Y,F,B)(98) 00000001 -> 00003337 [3] 68(h)
2013.10.13 21:08:39 5: SW: <FD>^M]S<C8>^@^@37<98>^@^@^@^Ah
2013.10.13 21:08:39 3: HM485_LAN: TX: (94) I[0](0,Y,F,B)(98) 00000001 -> 00003337 [3] 6E(n)
2013.10.13 21:08:39 5: SW: <FD>^M^S<C8>^@^@37<98>^@^@^@^An
2013.10.13 21:08:39 3: HM485_LAN: Alive: (93) 3032
2013.10.13 21:08:39 3: HM485_LAN: NACK: 93
2013.10.13 21:08:39 5: HM485_LAN dispatch <FD>^C]a^B
2013.10.13 21:08:39 1: NACK from 00003337 | 6E


Gruß,

Manfred

jkrogma

Hallo Dirk, hallo crazystone,

ich habe Eurer letztes Update eingespielt und es ist eine Menge mehr im Log zu sehen (s. Anhang)

Auf der Konsole erhalte ich außerdem in der Shell, mit der ich den Server gestartet habe beim Tasten auf dem IO Modul (HMW_IO_12_Sw7_DR) folgende Perl Fehler:
Use of uninitialized value $dev in hash element at fhem.pl line 2922.
Use of uninitialized value $dev in hash element at fhem.pl line 2922.
Use of uninitialized value $dev in hash element at fhem.pl line 2922.
Use of uninitialized value $dev in hash element at fhem.pl line 2922.
Use of uninitialized value $dev in hash element at fhem.pl line 2922.
Use of uninitialized value $dev in hash element at fhem.pl line 2922.
Use of uninitialized value $dev in hash element at fhem.pl line 2922.
Integer overflow in hexadecimal number at /opt/fhem/FHEM/10_HM485.pm line 524.
Hexadecimal number > 0xffffffff non-portable at /opt/fhem/FHEM/10_HM485.pm line 524.
$VAR1 = '4A455130373133353332';
Use of uninitialized value $retVal in substitution (s///) at /opt/fhem/FHEM/10_HM485.pm line 527.
Use of uninitialized value $model in string ne at /opt/fhem/FHEM/10_HM485.pm line 493.
Use of uninitialized value $model in concatenation (.) or string at /opt/fhem/FHEM/10_HM485.pm line 493.
Use of uninitialized value $dev in hash element at fhem.pl line 2922.
Use of uninitialized value $dev in hash element at fhem.pl line 2922.
Integer overflow in hexadecimal number at /opt/fhem/FHEM/10_HM485.pm line 524.
Hexadecimal number > 0xffffffff non-portable at /opt/fhem/FHEM/10_HM485.pm line 524.
$VAR1 = '4A455130373133353332';
Use of uninitialized value $retVal in substitution (s///) at /opt/fhem/FHEM/10_HM485.pm line 527.
Use of uninitialized value $model in string ne at /opt/fhem/FHEM/10_HM485.pm line 493.
Use of uninitialized value $model in concatenation (.) or string at /opt/fhem/FHEM/10_HM485.pm line 493.
Use of uninitialized value $dev in hash element at fhem.pl line 2922.
Use of uninitialized value $dev in hash element at fhem.pl line 2922.
Use of uninitialized value $dev in hash element at fhem.pl line 2922.
Use of uninitialized value $dev in hash element at fhem.pl line 2922.
Use of uninitialized value $dev in hash element at fhem.pl line 2922.
Use of uninitialized value $dev in hash element at fhem.pl line 2922.


Viele Grüße
Jan

Dirk

Hi Jan,

zumindestens Empfängt das HMW-LAN-GW schon was :)
Allerdings gibt es noch einige Bugs.

Ich werde vermutlich auch erst morgen abend zu weiteren Bugfixes kommen.

Gruß
Dirk

jkrogma

Hallo Dirk,

wenn ich Dich irgendwie unterstütze kann, sag Bescheid.

Grüße
Jan

Tobias

Kurze Frage da ich  mich auch gerade mit HMW auseinandersetze:
Arbeitet der HomeMatic Wired RS485 Schließerkontakt HMW-Sen-SC-12-FM nach dem PUSH prinzip?

Dh, meldet dieser selbständig eine Zustandsänderung (plus ev. ein tägliches Intervall bei Nichtänderung) oder muss permanent (wie bei 1wire) abgefragt werden?
Ich bin für meine Fensterkontakte auf der Suche nach fhem-kompatiblen, drahtgebundenen(!) Komponenten die dach dem PUSH-Prinzip arbeiten.
1Wire ist aufgrund des PULL-Prinzips eher suboptimal.
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Dirk

Zitat von: jkrogma am 14 Oktober 2013, 21:18:31
wenn ich Dich irgendwie unterstütze kann, sag Bescheid.
Mach ich.

Zitat von: Tobias am 15 Oktober 2013, 10:46:16
Arbeitet der HomeMatic Wired RS485 Schließerkontakt HMW-Sen-SC-12-FM nach dem PUSH prinzip?
Ja, Zustandsänderungen werden quasi in Echtzeit gesendet. Man kann den Status aber auch jederzeit vom Sensor anfordern. Und Somit Z.b. auch zyklisch "nachfragen".

Gruß
Dirk

Edit: Typo

UweH

Hallo Dirk,

mit den neuen Dateien habe ich folgendes Log:

2013.10.15 16:53:39 3: HM485: Loading available device files
2013.10.15 16:53:39 3: =====================================
2013.10.15 16:53:39 1: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw-sen-sc-12.pm
2013.10.15 16:53:39 1: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_io12_sw14_dr.pm
2013.10.15 16:53:39 1: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_io12_sw7_dr.pm
2013.10.15 16:53:39 1: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_lc_bl1_dr.pm
2013.10.15 16:53:39 1: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_lc_dim1l_dr.pm
2013.10.15 16:53:39 1: Including ./log/fhem.save
2013.10.15 16:53:40 1: statefile: Usage: setstate <name> <state>
where <name> is either:
- a single device name
- a list separated by komma (,)
- a regexp, if it contains one of the following characters: *[]^$
- a range separated by dash (-)

2013.10.15 16:53:44 0: Server started with 79 defined entities (version $Id: fhem.pl 3872 2013-09-07 11:58:33Z rudolfkoenig $, os linux, user fhem, pid 2790)
2013.10.15 16:53:45 3: HM485_LAN: Start HM485d with command line: ./FHEM/lib/HM485/HM485d/HM485d.pl --serialNumber SGW0123456 --device 192.168.178.47:5000 --verbose 4
2013.10.15 16:53:45 3: HM485_LAN: HM485d Could nor start
2013.10.15 16:54:54 3: HM485_LAN: TX: (0) I[0](0,Y,F,B)(98) 00000001 -> FFFFFFFF [3] 7A(z)
2013.10.15 16:54:54 3: HM485_LAN: TX: (1) I[0](0,Y,F,B)(98) 00000001 -> FFFFFFFF [3] 7A(z)


Seit dem "discovery start" rödelt FHEM da drauf rum, jede RS485-Aktion wird mit "Discovery is running. Pleas wait for finishing. " quittiert. Das hält er auch stundenlang durch, discovery hängt offenbar irgendwo. Kannst Du das reproduzieren?

Der Empfang funktioniert aber weiterhin auf der Konsole, FHEM läuft weiter und lässt sich auch beenden.

Gruß
Uwe

Dirk

Hi Uwe,

ZitatSeit dem "discovery start" rödelt FHEM da drauf rum, jede RS485-Aktion wird mit "Discovery is running. Pleas wait for finishing. " quittiert. Das hält er auch stundenlang durch, discovery hängt offenbar irgendwo. Kannst Du das reproduzieren?
Das ist ein Bug.
Während ein Discovery läuft werden alle Requests zum Interface geblockt und mit der benannten Meldung quitiert.
Wenn das Discovery beendet wurden, dann wird diese "Blockade" wieder aufgehoben.

Das Discovery hat bei dir aber nix gemacht und liefert daher auch kein Ergebniss. Daher bleibt das nun bis zum nächsten Start von FHEM in diesem Mode.
Da werde ich noch einen Timeout oder so einbauen.

Gruß
Dirk

UweH


Dirk

Hallo Zusammen,

ich habe heute den Masterbranch auf Github (https://github.com/kc-GitHub/FHEM-HM485) wieder aktualisiert.

Die Unterstützung des HMW-LAN-GW habe ich weitestgehend vervollständigt. Vielen Dank an crazystone für das Testen und analysieren an dieser Stelle.

Wer Zeit und Interesse hat bitte ich hiermit zum Test :)

Was geht hier derzeit alles?

- Discovery (Geräte am Bus finden und die Channels dafür anlegen)
- Config der Geräte und der Channels lesen und schreiben
- RAW-Befehle senden
- beim HMW_IO12_SW7_DR können die Schaltkanäle schon direkt geschaltet werden
- ein geänderter Status beim HMW_IO12_SW7_DR löst entsprechende Events aus

Die Unterstützung der weitere Geräte werde ich hoffentlich die nächsten Tage fertig bekommen.
Anschliessend geht es an das Peering.

Das Anlegen der Geräte scheint wohl noch nicht ganz reibungslos zu funktionieren.
- Wenn Discovery nicht alle Geräte findet, bitte noch einmal laufen lassen
- Falls nach dem Discovery noch nicht alle Informationen (Modultype, Seriennummer, Firmwareversion) vom Device ermittelt werden konnten bitte am device ein "get infos" ausführen

- Die Device-Config, also die Register im EEprom werden noch nicht automatisch gelesen. Hierfür erst ein "get config all" am Device ausführen. Auch werden erst danach die Konfigurationswerte korrekt angezeigt.


Viele Grüße
Dirk

matzefisi

Hi Dirk,

wenn ich Zeit finde, werde ich es am Wochenende direkt testen.

Danke schon mal.

MfG
Matthias

crazystone

Hi,

ich kann das ausprobieren nur wärmstens empfehlen, es war eine lange und intensive Testreihe, inklusive "over-Internet-testing" mit CCU emulation, sniffing sessions und allem pipapo. Am Ende steht ein zumindest mit meinen paar Geräten sehr gut funktionierendes discovery, keepalive, automatisch angelegte Geräte mit channels. Ein riesen Schritt, im Vergleich von vor drei Wochen.

Es steckt noch viel Arbeit drin, das Ganze abzuschließen, aber dank Dirks hochprofessioneller Arbeit an diesem Hobby geht es fast rasend schnell voran.

Ich freue mich drauf, noch vor Weihnachten endlich mein Garagentor mit dem Handy öffnen zu können ;-)

Viele Grüße an alle Mitstreiter, Testergebnisse und Feedback herzlich willkommen!

ManfredC

#88
Moin,


discovery findet den HMW_IO_12_Sw14_DR, Device wird angelegt. Ich kann aber nichts schalten und es wird auch kein Status angezeigt, nur ? ? ?

die Kanäle sehen so aus:
Zitatdigital_analog_input
HMW_IO_12_Sw14_DR_KEQ0182158_21  ? ? ?
HMW_IO_12_Sw14_DR_KEQ0182158_22  ? ? ?
HMW_IO_12_Sw14_DR_KEQ0182158_23  ? ? ?
HMW_IO_12_Sw14_DR_KEQ0182158_24  ? ? ?
HMW_IO_12_Sw14_DR_KEQ0182158_25  ? ? ?
HMW_IO_12_Sw14_DR_KEQ0182158_26  ? ? ?

digital_analog_output
HMW_IO_12_Sw14_DR_KEQ0182158_07  ? ? ?  on off
HMW_IO_12_Sw14_DR_KEQ0182158_08  ? ? ?
HMW_IO_12_Sw14_DR_KEQ0182158_09  ? ? ?
HMW_IO_12_Sw14_DR_KEQ0182158_10  ? ? ?
HMW_IO_12_Sw14_DR_KEQ0182158_11  ? ? ?
HMW_IO_12_Sw14_DR_KEQ0182158_12  ? ? ?
HMW_IO_12_Sw14_DR_KEQ0182158_13  ? ? ?
HMW_IO_12_Sw14_DR_KEQ0182158_14  ? ? ?

digital_input
HMW_IO_12_Sw14_DR_KEQ0182158_15  ? ? ?
HMW_IO_12_Sw14_DR_KEQ0182158_16  ? ? ?
HMW_IO_12_Sw14_DR_KEQ0182158_17  ? ? ?
HMW_IO_12_Sw14_DR_KEQ0182158_18  ? ? ?
HMW_IO_12_Sw14_DR_KEQ0182158_19  ? ? ?
HMW_IO_12_Sw14_DR_KEQ0182158_20  ? ? ?

digitaloutput
HMW_IO_12_Sw14_DR_KEQ0182158_01  ? ? ?  on off
HMW_IO_12_Sw14_DR_KEQ0182158_02  ? ? ?  on off
HMW_IO_12_Sw14_DR_KEQ0182158_03  ? ? ?  on off
HMW_IO_12_Sw14_DR_KEQ0182158_04  ? ? ?  on off
HMW_IO_12_Sw14_DR_KEQ0182158_05  ? ? ?  on off
HMW_IO_12_Sw14_DR_KEQ0182158_06  ? ? ?  on off

Mit einem USB_RS485 Adapter bekomme ich das gleiche Ergebnis. Kann es sein das es am Device File liegt?

Grüße,

Manfred

Dirk

Hi Manfred,

der HMW_IO_12_Sw14_DR ist noch nicht fertig.
Kommt in den nächsten Tagen.

Gruß
Dirk