RSSI plotten

Begonnen von Flachzange, 04 August 2022, 08:31:28

Vorheriges Thema - Nächstes Thema

Flachzange

Hallo zusammen,

ich schlage mich hier mit idealen Aufstellorten und Ausrichtungen von Antennen rum und würde mir gerne zur Auswertung die RSSI-Werte über die Zeit plotten. Gibt es einen einfachen/eleganten Weg, die RSSI-Werte bei EnOcean Devices mitzuloggen, also im Prinzip aus dem Internal ein Reading zu machen? Bei HM hatte ich gesehen, dass es dafür ein Attribut gibt.

Der Workaround ist vermutlich über ein Userreading bei allen / den in Frage kommenden Devices zu gehen. Hier scheint aber immer der vorherige internal-Werte genommen zu werden (userreading wird gesetzt bevor internal gesetzt wird).

Danke und Gruß
Chris

kassi

Das geht über userReadings, hier ein Beispiel (mein IODev heisst USB300, der Sensor heisst EnO_0420812A):
   
RSSI {InternalVal("EnO_0420812A","USB300_RSSI",0)},TIME {InternalVal("EnO_0420812A","USB300_TIME",0)}

Das kannst Du dann loggen und plotten, das Ergebnis sieht bei mir so wie beigefügt aus.
Man sieht da sehr schön wie die Anwesenheit von Leuten den RSSI beeinflusst.


Flachzange

Das mit dem UserReading als Workaround scheint bei mir leider nicht zu klappen. Da ich mehrere Gateways habe, muss ich erstmal bestimmen, ob überhaupt das zu loggenden Gateway der Auslöser für das Event war. Andernfalls würde ich auch eine (alte) RSSI loggen, wenn gar nichts empfangen wurde. Das ließe sich theoretisch lösen, in dem man das Internal "TIME" vom TCM nimmt. Aber wie oben beschrieben wird die UserReading-Auswertung getriggered bevor die Internals aktualisiert werden. Ich kann also nicht vergleichen, weil TIME immernoch alt ist.

Wenn jemand noch eine Idee hat... :)