Donnerstag, 5. Oktober 2017

Homematic Nachrichten sniffen

Der Wiki Artikel dazu ist ziemlich kurz.
Nachrichten Sniffen ist im Prinzip loggen mit speziellen Einstellungen. Dazu wird vor allem der HM IO in einen speziellen Log Modus versetzt. Die Nachrichten landen in der zentralen Logdatei von FHEM.

Durch setzen bzw. modifizieren folgender Attribute wird er Sniffer Modus beim Homematic IO aktiviert:
attr global verbose 1
attr global mseclog 1
attr <IO> logIDs <ID1>,<ID2>

Was genau passiert dadurch?
  • verbose 1 schaltet so ziemlich alles aus. Konzentration aufs Wesentliche!
  • mseclog 1 schaltet die "exakte" Zeit ein, es werden die Millisekunden geloggt.
  • logIDs schaltet das Logging für bestimmte HM Komponenten wieder ein. Dabei können mehrere Angaben mit Komma getrennt werden:
    • all - steht für alle Homematic Geräte
    • sys - steht für Systemnachrichten
    • <HMID> - HMID des Gerätes/Channels für ein oder mehrere selektive Geräte/Kanäle

Normales Logging - Sniffen wieder ausschalten


Ist man fertig mit Sniffen löscht man einfach die zusätzlichen Attribute und versetzt das globale Logging wieder in den gewünschten Zustand (Standard verbose 3)
deleteattr global mseclog
deleteattr <IO> logIDs
attr global verbose 3

Mehrere IOs setzen


Man kann den Namen des <IO> durch einen devSpec ersetzen. Z.B. alle IOs die der VCCU zugeordnet sind.
attr owner_CCU=VCCU logIDs ID1,ID2

deleteattr owner_CCU=VCCU logIDs

Praktisches Beispiel


Ich logge in einer zweiten FHEM Instanz, mein produktives System bleibt wie es ist. Ich sniffe zwei Fernbedienungen
attr global verbose 1
attr global mseclog 1
attr myHmUARTLGW logIDs 101E78,53F520

Wenn man parallel den Event Monitor öffnet kann man sehr gut verfolgen welche Nachrichten und Events zusammengehören. Im Event Monitor muss man dazu folgendes Regexp im Filter eintragen
101E78|53F520

Drücke ich jetzt auf beiden Fernbedienungen kurz eine Taste bekomme ich folgende Einträge im Log

2017.10.05 14:50:57.978 0: HMUARTLGW myHmUARTLGW recv: 01 05 00 00 31 msg: A2 A4 40 101E78 152B02 0264
2017.10.05 14:50:58.110 0: HMUARTLGW myHmUARTLGW recv: 01 05 00 00 3F msg: A2 80 02 152B02 101E78 0101C80048
2017.10.05 14:51:02.752 0: HMUARTLGW myHmUARTLGW recv: 01 05 01 00 37 msg: 3A A2 40 53F520 200DB8 0305

Dazu gehört diese Bild im Event Monitor


Erste einfache Auswertung

Die Nachrichten werden pro Gerät fortlaufend Hex nummeriert (Zahl vor msg:)

Der erste Tastendruck (msg 31) geht von Gerät (101E78) zu Gerät (152B02) und wird quittiert (msg 3F). Diese Taste ist gepeert. 

Der zweite Tastendruck geht (msg 37) vom Gerät (53F520) zur Zentrale (200DB8) und wird nicht quittiert. Diese Taste ist nicht gepeert.

Keine Kommentare:

Kommentar veröffentlichen