Protkollieren und interpretieren SendStack

Begonnen von Wastl2017, 16 April 2017, 19:18:09

Vorheriges Thema - Nächstes Thema

Wastl2017

Seit gut einer Woche taste ich mich an fhem heran. Damit die Lernkurve steiler wird, würde ich gerne etwas hinter die Kulissen von fhem schauen, denn das Inkludieren eines FSDG002 war seeehr hakelig (genauer: Eine Woche lang erfolglos. Warum es dann funktioniert hat:?). Mein Minimalsystem besteht aus einem Lamobo-R1 (Armbian Ubuntu_xenial_next_4.9.7, 16.04.2), einem Z-Wave ZME_UZB1 Me USB Stick und dem Rauchmelder von Fibaro.
Ich habe die 10_ZWave.pm leicht geändert, Ausgabe vom diff, .save ist das Original:
root@lamobo-r1:/opt/fhem/FHEM# diff 10_ZWave.pm 10_ZWave.pm.save
4277c4277
<       return "$cmd Scheduled for sending after WAKEUP" if(!$hash->{wakeupAlive});
---
>       return "Scheduled for sending after WAKEUP" if(!$hash->{wakeupAlive});

Answer in pop up window to command:
get ZWave_SENSOR_NOTIFICATION_3 battery
13030280022501 Scheduled for sending after WAKEUP

13---- ZW_SEND_DATA (13), in ./fhem/FHEM/ZWLib.pm definiert
03---- NodeId 03hex
02---- 2Byte lange Nachricht (02hex) (gelernt von krikan, https://forum.fhem.de/index.php/topic,69756.msg612711.html#msg612711)
8002-- BATTERY => { id => '80',get => { battery => "02" } ...
2501-- ????????????

Wie kann ich den aktuellen Stand des SendStack finden (und protokollieren)?
Wie finde ich seine Struktur? 13 03 02 8002 ist anscheinend die relevante Payload. Warum in $cmd auch noch 2501 steht?
Gruß
Heiner

A.Harrenberg

Hi,

die 0x25 dürfte der Code für "ExplorerFrame" sein, die 0x01 dürfte die CB (CallBackId) sein.
Beide Werte werden ans Ende der Nachricht angehängt, und sind "erst einmal" nicht wichtig. Die 0x25 dürftest Du eigentlich immer finden, die CallBackId sollte hochzählen.

Den String mit der Nachricht findest Du auch im Log nach "SW:" (wenn verbose = 5 beim Dongle gesetzt ist).

Was möchstest Du denn am Stack "protokollieren"?

Gruß,
Andreas.
FB 7360, Homematic und ZWave
Support for ZWave-SECURITY

Wastl2017

Hi Andreas,
mit wenig bis keiner Ahnung, was auf der Luftschnittstelle abgeht, ist es ausgesprochen schwierig zu verstehen, warum etwas oder auch nichts auf dem Gerät geschieht. Drücken auf den (Aufweck-)Knopf am Sensor brachte einen Event oder auch nicht....
Ein schneller Blick auf den SendStack (Aufwecken des Geräts bei mir: alle 4200 Sekunden, kürzer geht nicht) hilft zu sehen, ob bzw. was abgeschickt werden soll.
Im Beitrag  https://forum.fhem.de/index.php/topic,69756.msg612711.html#msg612711 wurde das Thema angeschnitten, allerdings unter einem anderen Aspekt. Im Fehlerfall ist es natürlich auch nützlich zu sehen, was los ist / los sein soll, also die Kommandos auf dem Stack liegen, die man absetzen will.
Wie gesagt, ich bin ein absoluter Newbee in fhem / ZWave / SmartHome, wenn auch mit gewissem IT-Hintergrund.
Gruß
Heiner

A.Harrenberg

Hallo Heiner,

also das eigenltiche Funkprotokoll ist noch mal eine andere Nummer... Da kommen dann noch ein paar Spezialitäten hinzu die man normalerweise gar nicht zu sehen bekommt.

Im Sendstack landen leider nur die bereits enkodierten Befehle, ich hatte für den Security-Stack auch den Klartext mit abgelegt um set und get auseinanderhalten zu können und weil ich es auch "lesen" wollte.

Das "Dekodieren" dieser Nachrichten ist aktuell Hand-/ und Kopfarbeit ,-)

Das Prinzip hast Du ja bereits verstanden, eine grobe Dekodierung kannst Du anhand der Datei 10_ZWave.pm machen. Dort ist oben ja das hash %zwave_class, darin befinden sich alle Klassen und deren Befehle die FHEM implementiert hat. Meist reicht es aus dort die CC (CommandClass, bei Dir 0x80 = BATTERY) und die cmdId 0x02 -> get Battery zu identifizieren. Teilweise ist das ganze in Funktionen gekapselt falls die Syntax etwas komplexer wird.

Für die Details müsstest Du dann in die offiziellen Dokumente von Sigma reinschauen. Die Dateien bekommst Du hier.

Wichtig zu verstehen ist was "WakeUp"-Geräte sind und welche Besonderheiten dabei entstehen, hier ist der Artikel von Krikan im Wiki zu empfehlen.

Ansonsten kannst Du auch im Forum fragen, normalerweise findet sich immer mindestens einer der was dazu sagen kann.

Gruß,
Andreas.
FB 7360, Homematic und ZWave
Support for ZWave-SECURITY

Wastl2017

Hallo Andreas,
das nenne ich Support!!!!
Für Lesestoff für die nächste Zeit ist gesorgt.
Allergrößtes Lob an die fhem-Entwickler.
Gruß
Heiner