HomeMatic USB Konfigurations-Adapter (HM-CFG-USB) in Fhem nutzen

Begonnen von mgernoth, 30 Mai 2013, 17:06:32

Vorheriges Thema - Nächstes Thema

marc2

Hi !

Ich bekomme morgen hoffentlich meine HM-CFG-USB und will ihn an meine 7390 stecken.
Als Vorbereitung habe ich den hmland mal für die 7390 übersetzt. Startet erst einmal
ganz normal. Ob es läuft, werde ich sehen, sobald ich den Stick habe. So Interesse
anbei das zugehörige Tar-File. Ich habe die usblib-1 dazu gepackt, weil auf einer
7390 im Regelfall fehlt.

Gruß, Marc

betateilchen

Inzwischen sind auch die oben aufgeführten, bis dahin noch mit HMLAN gesteuerten, Geräte mit dem USB-Stick verbunden und der HMLAN wurde komplett abgeschaltet.

Es funktioniert auch alles - bis auf zwei Kleinigkeiten. Die Fernbedienung mault wieder rum (das Theater mit der hakligen Kommunikation hatte ich aber am HMLAN auch schon) und im WindowRec sehe ich keinen Status des gepeerten Fensterkontaktes (ist aber auch ein Punkt, der bei HMLAN bisher noch ungelöst war)

Warum habe ich die Umstellung eigentlich gemacht?

  • weil ich kein zusätzliches Gerät mit Steckernetzteil und Netzwerkkabel in Betrieb haben muss
  • weil der USB Stick nun direkt am RaspberryPi in Betrieb ist, auf dem auch FHEM läuft
  • weil die Putzfrau nun nicht mehr versehentlich irgendwelche Stecker ziehen oder Kabel abreißen kann (der Raspberry ist vandalismussicher in der Wohnung untergebracht)


-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

was bedeuten eigentlich die Overload-Meldungen in den Readings?


Internals:
   DEF        127.0.0.1:1234
   DeviceName 127.0.0.1:1234
   FD         15
   HMUSB_MSGCNT 312
   HMUSB_TIME 2013-07-07 00:33:23
   HM_CMDNR   82
   NAME       HMUSB
   NR         324
   NTFY_TRIGGERTIME 2013-07-07 00:30:35
   PARTIAL    
   RAWMSG     E1D919A,0000,0A49AD29,FF,FFC6,AD86701D919A00000000E638
   RSSI       -58
   STATE      opened
   TYPE       HMLAN
   assignIDs  2123FC,1F10D8,1EFD9B,1D919A,1B029E
   assignIDsCnt 5
   assignIDsReport 5
   firmware   0.963
   hmPair     1
   msgParseDly min:-3382 max:3089 last:19 cnt:297
   owner      AABBCC
   serialNr   JEQ0534751
   uptime     001 47:56:40.617
   Readings:
     2013-07-07 00:30:35   Xmit-Events     Overload-released:4 ERROR-Overload:5 ok:5 Warning-HighLoad:4
     2013-07-07 00:30:35   cond            Overload-released
   Helper:
     HMcnd      254
     keepAliveRec 1
     keepAliveRpt 0
     1b029e:
       chn        02
       flg        0
       msg        
       name       wz_Ventilator
       newChn     +1B029E,00,01,
       to         1373147061.11112
     1d919a:
       chn        02
       flg        0
       msg        
       name       wz_FHT
       newChn     +1D919A,00,01,
       to         1373148025.83447
     1efd9b:
       chn        02
       flg        0
       msg        SB61AE9C5,00,00000000,01,B61AE9C5,52B011AABBCC1EFD9B0201000000
       name       HM_scharf2
       newChn     +1EFD9B,00,01,
       to         1373149784.57097
     1f10d8:
       chn        01
       flg        0
       msg        
       name       Melder_Balkon
       newChn     +1F10D8,00,01,
       to         1373144804.64984
     2123fc:
       chn        01
       flg        0
       msg        
       name       HMFB01
       newChn     +2123FC,01,01,FE1F
       to         1373149674.43028
     Aabbcc:
       flg        0
     Cnd:
       0          5
       2          4
       254        4
       4          5
     Dly:
       cnt        297
       lst        19
       max        3089
       min        -3382
     Nextsend:
       1CCA12     1373149891.50172
       1D919A     1373150003.62168
     Ref:
       drft       0.000139944022391044
       hmtL       172597916
       kTs        0
       offL       1372977402903
       sysL       1373150000819
Attributes:
   group      Hardware
   hmId       AABBCC
   room       99_System
   wdTimer    25
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

mgernoth

Hallo Udo,

Zitat von: betateilchen schrieb am So, 07 Juli 2013 00:39was bedeuten eigentlich die Overload-Meldungen in den Readings?


...
     2013-07-07 00:30:35   Xmit-Events     Overload-released:4 ERROR-Overload:5 ok:5 Warning-HighLoad:4
     2013-07-07 00:30:35   cond            Overload-released
...


Das ist eine Aufschlüsselung der Status-Antworten auf Sendeversuche und betrifft die 1%-Regel. HighLoad gibt an, dass die 1%-Regel bald erreicht ist, die Nachricht aber noch gesendet wurde. Bei Overload ist keine Sendezeit mehr verfügbar und die Nachricht wurde nicht abgesendet.

Die 1%-Regel schlägt eigentlich nur zu, wenn Du viel mit einem Burst-Device sprichst. Schaltest Du Deinen Batterieaktor (das einzige Burst-Device, das ich in Deiner Liste entdeckt habe) häufig oder machst Du eine regelmäßige Statusabfrage?

Eine normale Funkmeldung dauert ungefähr (Anzahl Bytes * 8)ms, beim Burst kommen dann immer 360ms dazu, also bei 15 Bytes ca. 120ms bzw. 480ms.

Gruß
  Michael

betateilchen

Zitat von: mgernoth schrieb am So, 07 Juli 2013 09:24Schaltest Du Deinen Batterieaktor (das einzige Burst-Device, das ich in Deiner Liste entdeckt habe) häufig oder machst Du eine regelmäßige Statusabfrage?

Könnte durchaus sein, dass dieses Overload mit meinen aktuellen Tests an der Fernbedienung zusammenhängt.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

mgernoth

Hallo,

ich habe soeben eine neue Version gepusht, die jetzt einen Workaround für die Timingprobleme auf dem Raspberry Pi enthält. Jetzt wird jede Sekunde ein Null-Frame an den HM-CFG-USB geschickt, was (zumindest bei mir) die Kommunikationslatenz meist in den einstelligen (aber auf jeden Fall zweistelligen) Millisekundenbereich drückt.

Dieser Workaround wird mit dem neuen Kommandozeilenparameter -R aktiviert.

Gruß
  Michael

betateilchen

Hallo,

wo finde ich diese Version und welche Kommandozeile meinst Du denn?

Viele Grüße
Udo

--- edit ---

ahrg.... es ist schon spät, sorry für die blöde Frage. Alles klar.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Ok, mit der neuen Programmversion bekomme ich jetzt in den meisten Fällen eine korrekte grüne Rückmeldung, wenn ich die Buttons mit einem virtuellen Aktor peere. Ist zwar nicht meine Traumlösung, aber immerhin besser als vorher.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

marc2

Moin !

Die Lieferung meines hmcfgusb hat leider etwas auf sich warten lassen.
Nach ersten Tests an der 7390 habe ich derzeit folgenden Status mit den
folgenden getesteten Versionen des hmland: 5e961a8, 1180600, aktuelles git

* Mit einem USB HUB zwischen 7390 und hmcfgusb läuft es bei mit generell
  nicht. Mag am USB HUB liegen, aber es kommt zu kontinuierlichen CONNECTS/DISCONNECTs

* Ohne USB HUB funktioniert es, wobei 5e961a8 ohne Fehlermeldungen läuft, die
  neueren (incl. aktuelle Version aus dem git), durchgängig die folgende Meldung loggen:

Can't send data: Input/output error
Can't send data: Input/output error
Can't send data: Input/output error
Can't send data: Input/output error
Can't send data: Input/output error
Can't send data: Input/output error
Can't send data: Input/output error
Can't send data: Input/output error
Can't send data: Input/output error


Hat sonst schon jemand Erfahrungen mit dem hmland auf der 7390, am besten bei Nutzung
eines USB HUBs ?

Gruß, Marc

mgernoth

Hallo Marc,

Zitat von: marc2 schrieb am Sa, 13 Juli 2013 14:15* Mit einem USB HUB zwischen 7390 und hmcfgusb läuft es bei mit generell
  nicht. Mag am USB HUB liegen, aber es kommt zu kontinuierlichen CONNECTS/DISCONNECTs

Hmm, war das ein Hub mit eigener Spannungsversorgung oder ohne? Ich kann mir vorstellen, dass der Stick zuviel Strom zieht...

Zitat* Ohne USB HUB funktioniert es, wobei 5e961a8 ohne Fehlermeldungen läuft, die
  neueren (incl. aktuelle Version aus dem git), durchgängig die folgende Meldung loggen:

Can't send data: Input/output error
Can't send data: Input/output error
Can't send data: Input/output error
Can't send data: Input/output error
Can't send data: Input/output error
Can't send data: Input/output error
Can't send data: Input/output error
Can't send data: Input/output error
Can't send data: Input/output error


Das ist der Workaround für den Raspberry Pi. Da kann das Wakeup-Frame nicht gesendet werden, was eigentlich kein Problem ist. Ich habe mal die Fehlermeldung in diesem speziellen Fall deaktiviert, die aktuelle git-Version sollte also jetzt ruhig sein.

Gruß
  Michael

marc2

Hallo Michael,

nein, das ist USB HUB mit eigener Stromversorgung. Werde die aktuelle
Version im git morgen testen ! Vielen Dank !

Gruß, Marc

marc2

Hallo Michael,

die aktuelle Version aus dem git (g1e79d00) funktioniert jetzt
wieder wunderbar an der 7390. Für alle die Interesse haben sollen,
anbei die aktuelle Version übersetzte für die 7390 inkl. der
benötigten libusb-1.0.

Gruß, Marc

Gerhard

Hallo Marc,

ich hätte Interesse an den HM-CFG-USB auf meinen 7390.
Könntest du eine kurze Anleitung wie mann es auf der FritzBox instaliert?
z.B wohin die Dateien kopiert werden müssen, chmod Rechte und Aufruf in fhem.cfg

define hmusb HMLAN 127.0.0.1:1234
attr hmusb hmId 424242
(woher 424242? frei wählbar?)

Ist das Handling mit den HmDevices wie bei dem hmLAN Konfigurator?
Braucht man ein USB-Hub oder kann man es direkt an 7390 stecken?

Danke, Gerhard
FB6890LTE, cubietruck, orangePi, raspberry 2/3/4, HM/HMIP, shelly > 50, etc.

marc2

Hallo Gerhard,

wo Du die Binaries und die libusb hinkopierst sollte egal sein. Bei mir liegen sie
unter /var/media/ftp/bin. Meine 7390 hat ein gefreeztes FRITZ!OS 05.52, wo ich
die libusb direkt einkompiliert habe. Wenn Du eine Standard Firmware laufen hast,
musst Du den LD_LIBRARY_PATH setzen, sonst findet der Runtime Linker die usblib
nicht, Beispiel:

* libusb-1.0.so.0.1.0 nach /var/media/ftp/lib kopieren
* Links für libusb-1.0.so.0 und libusb-1.0.so.0 anlegen (z.B ln -s libusb-1.0.so.0.1.0 libusb-1.0.so.0)
* export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/var/media/ftp/lib
* execute Rechte für die Binaries setzen (chmod 755 hmland hmsniff)
* hmland testweise starten: ./hmland -l 127.0.0.1 -p 1000

Wenn das funktioniert die startfhem erweitern. Sieht bei mir wie folgt aus:

ps | grep hmland | grep -v -q grep || /var/media/ftp/bin/hmland -l 127.0.0.1 -p 1000 -d
sleep 2


Bei Dir müsste dann noch der "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/var/media/ftp/lib" rein.

Wenn Du noch keine HM-Komponenten am Laufen hast (über einen HMLAN, CUL, CUNO, was auch immer)
kannst Du die HMID frei wählen (beliebige 6stellige hex Adresse). Falls Dein Nachbar Homematic
nutzt, kannst Du mit hmsniff seine HMID sniffen. Die solltest Du dann vielleicht nicht unbedingt
nehmen :-) Falls Du schon einen CUL, HMLAN, etc. haben solltest, kannst Du dessen HMID nutzen,
wenn der USB Stick parallel dazu laufen soll.

Wie ja in der FHEM-Doku beschrieben, hat Michael hier wirklich eine Art HMLAN Emulator gebaut.
Aus FHEM Sicht ist der Stick also wirklich ein HMLAN, und alles was FHEM-seitig für den HMLAN
gilt, sollte auch für den Stick am hmland gelten.

Bei mir tut der Stick glücklich und zufrieden direkt an der 7390. Über einen USB HUB sollte es
auch funktionieren. Das hat - da bin ich mir inzwischen recht sicher - bei mir nur deshalb nicht
funktioniert, weil mein Netzteil, das ich für meinen USB HUB (aus der Kramkiste) genutzt habe,
zu wenig Leistung hatte.

Gruß, Marc




Tobias

Dumme frage' kann man das nicht so umbauen, dass man fhem ein neues Modul fuer den stick spendiert anstatt ein extra stueck Software laufen zu lassen und warten zu müssen?
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