Problem mit Hourcounter-Logeinträgen

Begonnen von wowogiengen, 27 November 2019, 17:52:54

Vorheriges Thema - Nächstes Thema

wowogiengen

Hallo,
ich habe momentan noch die Events meiner Hourcounter-Devices in einem Logfile.
Das sieht dann z.B. so aus (nur mal die Readings von pulseTimePerDay, weil mich das später interessiert:

2019-11-26_21:00:00 HzgHC_Schlafzimmer pulseTimePerDay: 496
2019-11-26_21:00:00 HzgHC_Buero pulseTimePerDay: 256
2019-11-26_21:00:00 HzgHC_Bad pulseTimePerDay: 5833
2019-11-26_21:00:00 HzgHC_Wohnzimmer pulseTimePerDay: 37676
2019-11-26_21:22:08 HzgHC_Bad pulseTimePerDay: 5833
2019-11-26_21:28:09 HzgHC_Bad pulseTimePerDay: 6194
2019-11-26_21:44:10 HzgHC_Bad pulseTimePerDay: 6675
2019-11-26_21:56:11 HzgHC_Schlafzimmer pulseTimePerDay: 496
2019-11-26_21:58:11 HzgHC_Bad pulseTimePerDay: 7036
2019-11-26_22:00:00 HzgHC_Schlafzimmer pulseTimePerDay: 725
2019-11-26_22:00:00 HzgHC_Buero pulseTimePerDay: 256
2019-11-26_22:00:00 HzgHC_Wohnzimmer pulseTimePerDay: 37676
2019-11-26_22:40:15 HzgHC_Bad pulseTimePerDay: 7036
2019-11-26_22:46:18 HzgHC_Bad pulseTimePerDay: 7399
2019-11-26_23:00:00 HzgHC_Bad pulseTimePerDay: 7740
2019-11-26_23:00:00 HzgHC_Schlafzimmer pulseTimePerDay: 4325
2019-11-26_23:00:00 HzgHC_Buero pulseTimePerDay: 256
2019-11-26_23:00:00 HzgHC_Wohnzimmer pulseTimePerDay: 37676
2019-11-26_23:02:19 HzgHC_Bad pulseTimePerDay: 7879
2019-11-26_23:15:20 HzgHC_Bad pulseTimePerDay: 8179
2019-11-26_23:50:23 HzgHC_Bad pulseTimePerDay: 8179
2019-11-26_23:56:23 HzgHC_Bad pulseTimePerDay: 8539
2019-11-27_00:00:00 HzgHC_Bad pulseTimePerDay: 0
2019-11-27_00:00:00 HzgHC_Buero pulseTimePerDay: 256
2019-11-27_00:00:00 HzgHC_Buero pulseTimePerDay: 0
2019-11-27_00:00:00 HzgHC_Schlafzimmer pulseTimePerDay: 7925
2019-11-27_00:00:00 HzgHC_Schlafzimmer pulseTimePerDay: 0
2019-11-27_00:00:00 HzgHC_Wohnzimmer pulseTimePerDay: 37676
2019-11-27_00:00:00 HzgHC_Wohnzimmer pulseTimePerDay: 0
2019-11-27_00:00:24 HzgHC_Wohnzimmer pulseTimePerDay: 24
2019-11-27_00:01:28 HzgHC_Buero pulseTimePerDay: 88
2019-11-27_00:06:24 HzgHC_Bad pulseTimePerDay: 384
2019-11-27_00:20:28 HzgHC_Bad pulseTimePerDay: 807
2019-11-27_01:00:00 HzgHC_Wohnzimmer pulseTimePerDay: 24

Diese Werte hab ich jetzt noch nicht in einem DB-Log, werde es aber zu einem späteren Zeitpunkt eventuell machen  ;)


Mein Problem sind grade die Einträge jeden Tag um 00:00:00...  da steht zum einen immer der Endwert des letzten Tages drin, aber zum anderen auch der erste (0-) Wert des nächsten Tags.
Wenn ich jetzt mit SQLite diese Daten pro Tag gruppiere und dann Min und Max ausrechnen lasse,  wird es ja so sein, dass eventuell der Wert um 00:00:00 größer sein könnte, als der Wert um 23:59:59 (wenn es denn einen gäbe)...
Damit würde aber dann der Tageshöchstwert falsch sein...


2019-11-26_23:56:23 HzgHC_Bad pulseTimePerDay: 8539
2019-11-27_00:00:00 HzgHC_Bad pulseTimePerDay: 0
2019-11-27_00:06:24 HzgHC_Bad pulseTimePerDay: 384


Auch die FHEM-spezifischen DB-Cleaner werden diesen Fehler machen, denke ich.
In SQL kann ich zwar den Wert um 00:00:00 (eigentlich ist das ja dann 24:00:00) irgendwie ausblenden, aber es ist damit dann wiederum nicht sichergestellt, dass der letzte Wert an dem Tag auch der wirklich höchste war.

Was soll ich tun?
Viele Grüße
Wolfgang

amenomade

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Wzut

Zitat von: wowogiengen am 27 November 2019, 17:52:54
dass eventuell der Wert um 00:00:00 größer sein könnte, als der Wert um 23:59:59 (wenn es denn einen gäbe)...
das ist ein Problem wo eigentlich der Modul Autor gefordert ist. Ich hatte bei zwei meiner Module auch das Problem das ich die ersten Werte des neuen Tages/Woche/Monat auch gern zurückdatiert hätte um den Tag vorher quasi sauber abzuschliessen. Ich habe das dann so gelöst intern vor Ausgabe der Werte zu prüfen ob die aktuellen Werte eventuell die letzten für diesen Tag sein könnten bzw. die ersten des neuen Tages ( last_day_run & first_day_run)

Du könntest dir aber eventuell helfen wenn du die min / max Berechnung nicht selbst machst sondern sie dem statistics Modul überlässt, das rechnet sauber den letzten Tag/Monat/Jahr ab. 
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher