FHEM Forum

FHEM => Automatisierung => Thema gestartet von: kaarsten am 30 Oktober 2022, 15:35:37

Titel: Patch: Fehlerhafte DbLog Delta-Berechung (delta-d,delta-h) ohne Vorgängerwerte
Beitrag von: kaarsten am 30 Oktober 2022, 15:35:37
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.
Titel: Antw:Patch: Fehlerhafte DbLog Delta-Berechung (delta-d,delta-h) ohne Vorgängerwerte
Beitrag von: DS_Starter am 30 Oktober 2022, 15:41:39
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
Titel: Antw:Patch: Fehlerhafte DbLog Delta-Berechung (delta-d,delta-h) ohne Vorgängerwerte
Beitrag von: DS_Starter am 06 November 2022, 20:33:30
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
Titel: Antw:Patch: Fehlerhafte DbLog Delta-Berechung (delta-d,delta-h) ohne Vorgängerwerte
Beitrag von: kaarsten am 07 November 2022, 19:28:36
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
Titel: Antw:Patch: Fehlerhafte DbLog Delta-Berechung (delta-d,delta-h) ohne Vorgängerwerte
Beitrag von: DS_Starter am 07 November 2022, 20:54:55
Habs eingecheckt. Ist morgen früh im update.

LG