Patch: Fehlerhafte DbLog Delta-Berechung (delta-d,delta-h) ohne Vorgängerwerte

Begonnen von kaarsten, 30 Oktober 2022, 15:35:37

Vorheriges Thema - Nächstes Thema

kaarsten

Hallo zusammen,

aufgrund der Berechnungsweise der Delta-Werte in DbLog können unerwartet große (und mMn. aus Sicht des Endnutzers falsche) Delta-Werte entstehen. Im Anhang befindet sich ein Patch (00-DbLog-delta.patch) welcher das Problem löst.

Beispiel:
- Für einen Tag T existiert nur ein Log-Wert V zur Uhrzeit 14:15
- Tag T wird für die delta-h Berechnung in 24 1-Stunden Blöcke gruppiert (GROUP BY)
- Der Maximalwert eines jeden Blocks wird gesucht (MAX)
- Für Tag T gibt es also nur einen Maximalwert V, welcher dem Block 14:00-15:00 zugeordnet ist
- Die delta-h Berechnung im Perl-Modul versucht vom Maximalwert von 14:00-15:00 den Maximalwert von 13:00-14:00 abzuziehen
- Der Maximalwert von 13:00-14:00 existiert nicht, wodurch als Ersatz der kleinstmöglich darstellbare Wert verwendet wird (~0 >> 1)
- Somit ist die berechnete Differenz: V - (~0 >> 1) ≅ -(~0 >> 1)

Der Endnutzer sieht das Ergebnis der Berechnung in mindestens zwei Arten (siehe Anhang fhem-dblog-delta-broken.png):
- Die automatische Skalierung im Plot ist nicht mehr sinnvoll
- Variablen wie $data{sum2} sind nicht mehr sinnvoll gefüllt

Der sich im Anhang befindende Patch verändert die Berechnungslogik der Delta-Werte dahingehend, dass das Ergebnis einer Delta-Berechnung ohne Vorgängerwert einen 0-Wert ist. Ich halte es für nicht sinnvoll die interne Darstellungsweise eines fehlenden Wertes ±(~0 >> 1) an den Endnutzer durchzureichen.
Anhang fhem-dblog-delta-fixed.png zeigt das Verhalten nach der Anwendung des Patches.

DS_Starter

Danke Kaarsten für den Patch.
Ich nehme es mir die kommenden Tage vor ins DbLog einzubauen und zu testen.
Melde mich wieder.

LG,
Heiko
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DS_Starter

Hallo Kaarsten,

ich habe deinen Patch integriert und angetestet.
Negative Dinge konnte ich nicht bemerken.
Die neue DbLog Version liegt in meinem Contrib (siehe Fußnote).

Bitte teste die V auch nochmal bei dir.

Grüße,
Heiko
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

kaarsten

Hallo Heiko,

vielen Dank für die schnelle Antwort! Ich habe deine Version seit gestern in Betrieb und konnte auch keine Fehler feststellen, sieht gut aus!

Viele Grüße,
kaarsten

DS_Starter

Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter