HMUARTLGW: Modul für HomeMatic UART-Modul (RPi) und HomeMatic LAN Gateway

Begonnen von mgernoth, 11 Juni 2016, 20:10:46

Vorheriges Thema - Nächstes Thema

Rampler

Hallo zusammen,

hiermit erteile ich die offizielle Freigabe LOL :)
Habe nun testweise statt drei HMLAN-Adapter einen UART am Start und bin absolut positiv überrascht.
Die Reichweite scheint besser zu sein als mit HMLAN.
Getestet habe ich:

- Keymatic
- Rauchmelder
- Wassermelder
- Bewegungsmelder
- 16-fach LED-Anzeige
- und Sonstiges (Schalter, Powermeter, usw.)

Ein dickes Lob an den Entwickler Michael!

Meine persönliche Wunschliste:
- Integration in das FHEM-Repository
- cond state

Viele Grüße
Klaus

3 HMUART (2 via ESP8266), 1 DUOFERN, 9 ESP8266, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

betateilchen

Auf meiner Wunschliste steht aktuell


  • Martin nimmt die notwendigen Änderungen möglichst bald in die 10_CUL_HM.pm auf.
  • Michael stellt das HMUARTLGW Modul während der weiteren Entwicklungsphase in ./contrib zu Verfügung, das erleichtert ein Update erheblich, wenn man sein fhem direkt aus svn aktualisiert. Man muss dann nicht jedesmal erst auf die Betriebssystemkonsole wechseln.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Wuppi68

Jetzt auf nem I3 und primär Homematic - kein Support für cfg Editierer

Support heißt nicht wenn die Frau zu Ihrem Mann sagt: Geh mal bitte zum Frauenarzt, ich habe Bauchschmerzen

betateilchen

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

Wuppi68

Zitat von: betateilchen am 14 Juni 2016, 11:34:06
attr <device> verbose 0

set <device> close

es war Global Verbose auf 0 gesetzt .... und (nur) ein Versuch auf dem GW selber hatte keinen Erfolg gehabt ....
jetzt klappt es

naja und der Close ..... tütelütütü wer um die Ecke denkt ist klar im Vorteil

Danke
Jetzt auf nem I3 und primär Homematic - kein Support für cfg Editierer

Support heißt nicht wenn die Frau zu Ihrem Mann sagt: Geh mal bitte zum Frauenarzt, ich habe Bauchschmerzen

betateilchen

Zitat
Zitat von: mgernoth
Bei einem Raspberry Pi 3 kann es (dank des Bluetooth-Moduls) zu weiteren Komplikationen kommen...

Zitat von: betateilchen
Das sollte sich aber lösen lassen.

So klappts auch auf dem RPi3:

Die Anleitung bezieht sich auf das aktuelle raspbian Jessie 4.4 von Ende Mai 2016, bei mir in der lite-Version.


1. Am Ende der Datei /boot/config.txt folgende Zeilen anfügen:


dtoverlay=pi3-miniuart-bt
enable_uart=1
force_turbo=1


2. In der Datei /boot/cmdline.txt den ersten console=... Eintrag entfernen, sodass die Zeile hinterher noch so aussieht:


dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait


3. In der Datei /lib/systemd/system/hciuart.service die beiden Einträge serial1 durch ttyS0 ersetzen


[Unit]
Description=Configure Bluetooth Modems connected by UART
ConditionPathIsDirectory=/proc/device-tree/soc/gpio@7e200000/bt_pins
Before=bluetooth.service
After=dev-ttyS0.device

[Service]
Type=forking
ExecStart=/usr/bin/hciattach /dev/ttyS0 bcm43xx 921600 noflow -

[Install]
WantedBy=multi-user.target


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

betateilchen

Mir deucht, da stimmt was nicht...


2016.06.14 20:18:24 0: Featurelevel: 5.7
2016.06.14 20:18:24 0: Server started with 378 defined entities (fhem.pl:11655/2016-06-13 perl:5.020002 os:linux user:fhem pid:633)
2016.06.14 20:18:24 1: HMUARTLGW hmuart frame with wrong length received: 19, should: 4: FD00000E00010402436F5F4350555F417070F014
2016.06.14 20:18:24 1: HMUARTLGW hmuart frame with wrong length received: 19, should: 4: FD00000E00010402436F5F4350555F417070F014
2016.06.14 20:18:25 1: HMUARTLGW hmuart did not respond, reopening
2016.06.14 20:18:25 1: HMUARTLGW hmuart Reopen
2016.06.14 20:18:25 1: /dev/ttyAMA0 reappeared (hmuart)
2016.06.14 20:18:29 1: HMUARTLGW hmuart Ack with invalid counter received, dropping
2016.06.14 20:18:29 1: HMUARTLGW hmuart Ack with invalid counter received, dropping
2016.06.14 20:18:30 1: HMUARTLGW hmuart did not respond, reopening
2016.06.14 20:18:30 1: HMUARTLGW hmuart Reopen
2016.06.14 20:18:30 1: /dev/ttyAMA0 reappeared (hmuart)
2016.06.14 20:18:55 1: HMUARTLGW hmuart Ack with invalid counter received, dropping
2016.06.14 20:18:55 1: HMUARTLGW hmuart Ack with invalid counter received, dropping
2016.06.14 20:18:56 1: HMUARTLGW hmuart did not respond, reopening
2016.06.14 20:18:56 1: HMUARTLGW hmuart Reopen
2016.06.14 20:18:56 1: /dev/ttyAMA0 reappeared (hmuart)
2016.06.14 20:18:58 1: HMUARTLGW hmuart Ack with invalid counter received, dropping
2016.06.14 20:18:58 1: HMUARTLGW hmuart Ack with invalid counter received, dropping
2016.06.14 20:18:59 1: HMUARTLGW hmuart did not respond, reopening
2016.06.14 20:18:59 1: HMUARTLGW hmuart Reopen
2016.06.14 20:18:59 1: /dev/ttyAMA0 reappeared (hmuart)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

mgernoth

Hi,

Zitat von: betateilchen am 14 Juni 2016, 20:22:05
Mir deucht, da stimmt was nicht...


2016.06.14 20:18:25 1: HMUARTLGW hmuart Reopen
2016.06.14 20:18:25 1: /dev/ttyAMA0 reappeared (hmuart)
2016.06.14 20:18:29 1: HMUARTLGW hmuart Ack with invalid counter received, dropping


Gut, dass ich das Logging im Defaultfall abgedreht habe :-|
Setze mal bitte das Attribut logIDs auf "sys,all", dann sollte das ACK eigentlich gelogged werden.

Viele Grüße
  Michael

betateilchen


2016.06.14 21:08:21 0 : HMUARTLGW hmuart GetSet Ack: 02, state 98
2016.06.14 21:08:29 0 : HMUARTLGW hmuart recv: 01 05 00 00 34 msg: B9 86 10 228734 000000 0A60EA0D0000
2016.06.14 21:08:29 0 : HMUARTLGW hmuart recv: 01 05 00 00 23 msg: 15 84 70 261866 000000 00EA31
2016.06.14 21:08:36 0 : HMUARTLGW hmuart send: 00 08
2016.06.14 21:08:36 0 : HMUARTLGW hmuart recv: 00 04021C, state 98
2016.06.14 21:08:36 0 : HMUARTLGW hmuart GetSet Ack: 02, state 98
2016.06.14 21:08:37 0 : HMUARTLGW hmuart recv: 01 05 01 00 3E msg: 39 A2 70 B4889A 127000 00D1002718000000300E74
2016.06.14 21:08:37 0 : HMUARTLGW hmuart send: 01 06B4889A000101
2016.06.14 21:08:37 0 : HMUARTLGW hmuart recv: 01 0408, state 90
2016.06.14 21:08:37 0 : HMUARTLGW hmuart GetSet Ack: 08, state 90
2016.06.14 21:08:37 0 : HMUARTLGW hmuart send: 01 06B4889A000101
2016.06.14 21:08:37 0 : HMUARTLGW hmuart recv: 01 04070101002AFFFFFFFFFFFFFFFF, state 90
2016.06.14 21:08:37 0 : HMUARTLGW hmuart GetSet Ack: 07, state 90
2016.06.14 21:08:37 0 : HMUARTLGW hmuart send: 01 0AB4889A000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B
2016.06.14 21:08:37 0 : HMUARTLGW hmuart recv: 01 0401, state 91
2016.06.14 21:08:37 0 : HMUARTLGW hmuart GetSet Ack: 01, state 91
2016.06.14 21:08:37 0 : HMUARTLGW hmuart send: 01 09B4889A
2016.06.14 21:08:37 0 : HMUARTLGW hmuart recv: 01 0401, state 92
2016.06.14 21:08:37 0 : HMUARTLGW hmuart GetSet Ack: 01, state 92
2016.06.14 21:08:37 0 : HMUARTLGW hmuart send: 01 08
2016.06.14 21:08:37 0 : HMUARTLGW hmuart recv: 01 0407010922B309FFFFFFFFFFFFFFFF0023701CFFFFFFFFFFFFFFFF002749A3FFFFFFFFFFFFFFFF001F1AEAFFFFFFFFFFFFFFFF001E2ECBFFFFFFFFFFFFFFFF00, state 93
2016.06.14 21:08:37 0 : HMUARTLGW hmuart GetSet Ack: 07, state 93
2016.06.14 21:08:37 0 : HMUARTLGW hmuart known peer: 22B309, aesChannels: FFFFFFFFFFFFFFFF, flags: 0
2016.06.14 21:08:37 0 : HMUARTLGW hmuart known peer: 23701C, aesChannels: FFFFFFFFFFFFFFFF, flags: 0
2016.06.14 21:08:37 0 : HMUARTLGW hmuart known peer: 2749A3, aesChannels: FFFFFFFFFFFFFFFF, flags: 0
2016.06.14 21:08:37 0 : HMUARTLGW hmuart known peer: 1F1AEA, aesChannels: FFFFFFFFFFFFFFFF, flags: 0
2016.06.14 21:08:37 0 : HMUARTLGW hmuart known peer: 1E2ECB, aesChannels: FFFFFFFFFFFFFFFF, flags: 0
2016.06.14 21:08:37 0 : HMUARTLGW hmuart send: 01 02 00 00 01 msg: 02 B1 12 127000 B4889A
2016.06.14 21:08:37 0 : HMUARTLGW hmuart recv: 01 0407020920DACDFFFFFFFFFFFFFFFF004987D5FFFFFFFFFFFFFFFF001B029EFFFFFFFFFFFFFFFF00258C6AFFFFFFFFFFFFFFFF00258C6FFFFFFFFFFFFFFFFF00, state 100
2016.06.14 21:08:37 1 : HMUARTLGW hmuart Ack with invalid counter received, dropping
2016.06.14 21:08:37 0 : HMUARTLGW hmuart recv: 01 040703091E59B4FFFFFFFFFFFFFFFF0039D35AFFFFFFFFFFFFFFFF001E7BA8FFFFFFFFFFFFFFFF00202DF1FFFFFFFFFFFFFFFF00252E34FFFFFFFFFFFFFFFF00, state 100
2016.06.14 21:08:37 1 : HMUARTLGW hmuart Ack with invalid counter received, dropping
2016.06.14 21:08:37 0 : HMUARTLGW hmuart recv: 01 0407040921C0B8FFFFFFFFFFFFFFFF002286BCFFFFFFFFFFFFFFFF003840DEFFFFFFFFFFFFFFFF00261866FFFFFFFFFFFFFFFF001C4085FFFFFFFFFFFFFFFF00, state 100
2016
.06.14 21:08:37 1 : HMUARTLGW hmuart Ack with invalid counter received, dropping2016.06.14 21:08:37 0 : HMUARTLGW hmuart recv: 01 04070509258AD5FFFFFFFFFFFFFFFF0024ED70FFFFFFFFFFFFFFFF00228734FFFFFFFFFFFFFFFF0026C5FEFFFFFFFFFFFFFFFF0024E6BFFFFFFFFFFFFFFFFF00, state 1002016.06.14 21:08:37 1 : HMUARTLGW hmuart Ack with invalid counter received, dropping2016.06.14 21:08:38 0 : HMUARTLGW hmuart recv: 01 04070609398C12FFFFFFFFFFFFFFFF001F10D8FFFFFFFFFFFFFFFF0021CCB3FFFFFFFFFFFFFFFF003F8D03FFFFFFFFFFFFFFFF00B48898FFFFFFFFFFFFFFFF00, state 1002016.06.14 21:08:38 1 : HMUARTLGW hmuart Ack with invalid counter received, dropping2016.06.14 21:08:38 0 : HMUARTLGW hmuart recv: 01 04070709B48899FFFFFFFFFFFFFFFF00B4889AFFFFFFFFFFFFFFFF0024356EFFFFFFFFFFFFFFFF0020EC04FFFFFFFFFFFFFFFF001E2E05FFFFFFFFFFFFFFFF00, state 1002016.06.14 21:08:38 1 : HMUARTLGW hmuart Ack with invalid counter received, dropping
2016.06.14 21:08:38 0 : HMUARTLGW hmuart recv: 01 04070809261B9EFFFFFFFFFFFFFFFF0022A760FFFFFFFFFFFFFFFF002F6A65FFFFFFFFFFFFFFFF00258DF4FFFFFFFFFFFFFFFF0023C776FFFFFFFFFFFFFFFF00, state 100
2016.06.14 21:08:38 1 : HMUARTLGW hmuart Ack with invalid counter received, dropping
2016.06.14 21:08:38 0 : HMUARTLGW hmuart recv: 01 04070909202CF9FFFFFFFFFFFFFFFF001F49C0FFFFFFFFFFFFFFFF00, state 100
2016.06.14 21:08:38 1 : HMUARTLGW hmuart Ack with invalid counter received, dropping
2016.06.14 21:08:38 0 : HMUARTLGW hmuart recv: 01 05 00 00 46 msg: 97 86 5A 261B9E 000000 28E133


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

mgernoth

Hi,

Zitat von: betateilchen am 14 Juni 2016, 21:08:40
reicht das schon?

Ja, danke. Du hast zu viele Devices ;-) und das Modul verhält sich hier bei der Abfrage der known peers unerwartet und schickt mehrere Nachrichten mit dem gleichen Counter. Damit habe ich bisher nicht gerechnet.

Viele Grüße
  Michael

betateilchen

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

mgernoth

Hi,

Zitat von: betateilchen am 14 Juni 2016, 21:48:40
oha... was ist denn das Maximum?

Wahrscheinlich ein unerreichbares, aber anscheinend passen in eine Teilnachricht immer nur 5 Geräte, und genau die hatte ich in meinem Testaufbau...
Habe jetzt mal eine neue Version gepushed, die hoffentlich mit fragmentierten known-Peer Nachrichten klarkommen sollte.

Viele Grüße
  Michael

betateilchen


2016.06.14 22:15:24 1: HMUARTLGW hmuart Ack with invalid counter received, dropping. We: 15, device: 14
2016.06.14 22:15:24 1: HMUARTLGW hmuart Ack with invalid counter received, dropping. We: 15, device: 14
2016.06.14 22:15:25 1: HMUARTLGW hmuart did not respond, reopening
2016.06.14 22:15:25 1: HMUARTLGW hmuart Reopen
2016.06.14 22:15:25 1: /dev/ttyAMA0 reappeared (hmuart)
2016.06.14 22:15:27 1: HMUARTLGW hmuart Ack with invalid counter received, dropping. We: 15, device: 14
2016.06.14 22:15:27 1: HMUARTLGW hmuart Ack with invalid counter received, dropping. We: 15, device: 14
2016.06.14 22:15:28 1: HMUARTLGW hmuart did not respond, reopening
2016.06.14 22:15:28 1: HMUARTLGW hmuart Reopen
2016.06.14 22:15:28 1: /dev/ttyAMA0 reappeared (hmuart)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

mgernoth

Hi,

Zitat von: betateilchen am 14 Juni 2016, 22:16:18

2016.06.14 22:15:24 1: HMUARTLGW hmuart Ack with invalid counter received, dropping. We: 15, device: 14


Das sollte jetzt nicht mehr kommen :-(
Log? (gern auch per PM/Mail)

EDIT: Hab gerade mal 100 zusätzliche Geräte angelegt, war kein Problem, hier läuft der Init damit durch :-(

Viele Grüße
  Michael

betateilchen

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