Ich weiß ja nicht ganz, wie es gedacht ist,
aber anbei Daten von einer Mauellen Ablesung (also sehr lückenhaft!!)
"TIMESTAMP" "DEVICE" "TYPE" "EVENT" "READING" "VALUE" "UNIT" "Longterm"
"2008-01-11 00:00:00" "Manuell" "typ" "event" "Wasser" "335.61" "u" "0"
"2008-02-04 00:00:00" "Manuell" "typ" "event" "Wasser" "342.8" "u" "0"
"2008-02-29 00:00:00" "Manuell" "typ" "event" "Wasser" "349.635" "u" "0"
"2008-03-04 00:00:00" "Manuell" "typ" "event" "Wasser" "350.87" "u" "0"
"2008-03-27 00:00:00" "Manuell" "typ" "event" "Wasser" "356.581" "u" "0"
"2008-04-17 00:00:00" "Manuell" "typ" "event" "Wasser" "361.507" "u" "0"
"2008-05-07 00:00:00" "Manuell" "typ" "event" "Wasser" "366.283" "u" "0"
"2008-05-25 00:00:00" "Manuell" "typ" "event" "Wasser" "370.028" "u" "0"
"2008-06-03 00:00:00" "Manuell" "typ" "event" "Wasser" "371.447" "u" "0"
"2008-06-19 00:00:00" "Manuell" "typ" "event" "Wasser" "371.68" "u" "0"
"2008-06-20 00:00:00" "Manuell" "typ" "event" "Wasser" "372.251" "u" "0"
"2008-06-21 00:00:00" "Manuell" "typ" "event" "Wasser" "372.748" "u" "0"
"2008-07-13 00:00:00" "Manuell" "typ" "event" "Wasser" "377.134" "u" "0"
"2008-07-22 00:00:00" "Manuell" "typ" "event" "Wasser" "378.956" "u" "0"
"2008-07-23 00:00:00" "Manuell" "typ" "event" "Wasser" "379" "u" "0"
"2008-08-27 00:00:00" "Manuell" "typ" "event" "Wasser" "390.713" "u" "0"
"2008-09-18 00:00:00" "Manuell" "typ" "event" "Wasser" "396.529" "u" "0"
"2008-10-14 00:00:00" "Manuell" "typ" "event" "Wasser" "403.731" "u" "0"
"2008-10-30 00:00:00" "Manuell" "typ" "event" "Wasser" "408.307" "u" "0"
"2008-11-17 00:00:00" "Manuell" "typ" "event" "Wasser" "413.849" "u" "0"
"2008-12-03 00:00:00" "Manuell" "typ" "event" "Wasser" "417.307" "u" "0"
"2008-12-19 00:00:00" "Manuell" "typ" "event" "Wasser" "421.655" "u" "0"
"2008-12-31 00:00:00" "Manuell" "typ" "event" "Wasser" "425.871" "u" "0"
Hier ist der erste Eintrag 335,61 und der letzte ist 425,871.
Nun würde ich davon ausgehen, dass das Modul als Summe aller Monate irgendwas um die 90 aus gibt, da due Summe der Monate ja
weitestgehend der Differenz aus Jahresende-Jahresanfang entsprechen sollte.
Was ich jedoch erhalte ist: bei der monatlichen Zusammenfassung
0 7 6 0 4 1 2 0 0 5 0 9 sum(33)
also eine grobe Verzerrung der Daten.
Mir ist schon bewußt, dass diese großen Lücken das problem sind, dennoch sollte das Modul (meiner Meinung nach) keine solchen
Ergebnisse liefern.
Auch sollte der April hier im Beispiel niemals eine 0 liefern!
Die Ergebmisse waren übrigens mit der alten Version ebenfalls nicht korrekt.
Lösungsvorschlag:
Egal wie fein die Dateneinträge sind, denke ich, muss man die Lücken die differenzwerte in Minuten ausrechnen und auf jedes Ende eines Zeitblocks entsprechend die Minuten aufteilen.
Ansonsten verlierst du immer Werte dazwischen und die Gesamtzahl stimmt nicht!
Wenn der März also 31 Tage hat und die letzte Messung am 27.3. war, sollten vom nächsten Wert
Beispielsrechnung:
27.03.2008 356,58
17.04.2008 361,51
diffenzWert 4,93
differenzTage 21
diff in Minuten 30240
Betrag/Minute 0,000162897
TageMärz 5
TageApril 16
MinutenMärz 7200 (5*24*60)
EndstandMärz31.3.23:59:59 356,58 + 7200*0,000162897 = 357,7538571
Anbei noch meine Testdaten, falls Du damit direkt testen möchtest.
INSERT INTO `history` (`TIMESTAMP`, `DEVICE`, `TYPE`, `EVENT`, `READING`, `VALUE`, `UNIT`) VALUES ('2008-01-11 00:00:00', 'Manuell', 'typ', 'event', 'Wasser', '335.61', 'u');
INSERT INTO `history` (`TIMESTAMP`, `DEVICE`, `TYPE`, `EVENT`, `READING`, `VALUE`, `UNIT`) VALUES ('2008-02-04 00:00:00', 'Manuell', 'typ', 'event', 'Wasser', '342.8', 'u');
INSERT INTO `history` (`TIMESTAMP`, `DEVICE`, `TYPE`, `EVENT`, `READING`, `VALUE`, `UNIT`) VALUES ('2008-02-29 00:00:00', 'Manuell', 'typ', 'event', 'Wasser', '349.635', 'u');
INSERT INTO `history` (`TIMESTAMP`, `DEVICE`, `TYPE`, `EVENT`, `READING`, `VALUE`, `UNIT`) VALUES ('2008-03-04 00:00:00', 'Manuell', 'typ', 'event', 'Wasser', '350.87', 'u');
INSERT INTO `history` (`TIMESTAMP`, `DEVICE`, `TYPE`, `EVENT`, `READING`, `VALUE`, `UNIT`) VALUES ('2008-03-27 00:00:00', 'Manuell', 'typ', 'event', 'Wasser', '356.581', 'u');
INSERT INTO `history` (`TIMESTAMP`, `DEVICE`, `TYPE`, `EVENT`, `READING`, `VALUE`, `UNIT`) VALUES ('2008-04-17 00:00:00', 'Manuell', 'typ', 'event', 'Wasser', '361.507', 'u');
INSERT INTO `history` (`TIMESTAMP`, `DEVICE`, `TYPE`, `EVENT`, `READING`, `VALUE`, `UNIT`) VALUES ('2008-05-07 00:00:00', 'Manuell', 'typ', 'event', 'Wasser', '366.283', 'u');
INSERT INTO `history` (`TIMESTAMP`, `DEVICE`, `TYPE`, `EVENT`, `READING`, `VALUE`, `UNIT`) VALUES ('2008-05-25 00:00:00', 'Manuell', 'typ', 'event', 'Wasser', '370.028', 'u');
INSERT INTO `history` (`TIMESTAMP`, `DEVICE`, `TYPE`, `EVENT`, `READING`, `VALUE`, `UNIT`) VALUES ('2008-06-03 00:00:00', 'Manuell', 'typ', 'event', 'Wasser', '371.447', 'u');
INSERT INTO `history` (`TIMESTAMP`, `DEVICE`, `TYPE`, `EVENT`, `READING`, `VALUE`, `UNIT`) VALUES ('2008-06-19 00:00:00', 'Manuell', 'typ', 'event', 'Wasser', '371.68', 'u');
INSERT INTO `history` (`TIMESTAMP`, `DEVICE`, `TYPE`, `EVENT`, `READING`, `VALUE`, `UNIT`) VALUES ('2008-06-20 00:00:00', 'Manuell', 'typ', 'event', 'Wasser', '372.251', 'u');
INSERT INTO `history` (`TIMESTAMP`, `DEVICE`, `TYPE`, `EVENT`, `READING`, `VALUE`, `UNIT`) VALUES ('2008-06-21 00:00:00', 'Manuell', 'typ', 'event', 'Wasser', '372.748', 'u');
INSERT INTO `history` (`TIMESTAMP`, `DEVICE`, `TYPE`, `EVENT`, `READING`, `VALUE`, `UNIT`) VALUES ('2008-07-13 00:00:00', 'Manuell', 'typ', 'event', 'Wasser', '377.134', 'u');
INSERT INTO `history` (`TIMESTAMP`, `DEVICE`, `TYPE`, `EVENT`, `READING`, `VALUE`, `UNIT`) VALUES ('2008-07-22 00:00:00', 'Manuell', 'typ', 'event', 'Wasser', '378.956', 'u');
INSERT INTO `history` (`TIMESTAMP`, `DEVICE`, `TYPE`, `EVENT`, `READING`, `VALUE`, `UNIT`) VALUES ('2008-07-23 00:00:00', 'Manuell', 'typ', 'event', 'Wasser', '379', 'u');
INSERT INTO `history` (`TIMESTAMP`, `DEVICE`, `TYPE`, `EVENT`, `READING`, `VALUE`, `UNIT`) VALUES ('2008-08-27 00:00:00', 'Manuell', 'typ', 'event', 'Wasser', '390.713', 'u');
INSERT INTO `history` (`TIMESTAMP`, `DEVICE`, `TYPE`, `EVENT`, `READING`, `VALUE`, `UNIT`) VALUES ('2008-09-18 00:00:00', 'Manuell', 'typ', 'event', 'Wasser', '396.529', 'u');
INSERT INTO `history` (`TIMESTAMP`, `DEVICE`, `TYPE`, `EVENT`, `READING`, `VALUE`, `UNIT`) VALUES ('2008-10-14 00:00:00', 'Manuell', 'typ', 'event', 'Wasser', '403.731', 'u');
INSERT INTO `history` (`TIMESTAMP`, `DEVICE`, `TYPE`, `EVENT`, `READING`, `VALUE`, `UNIT`) VALUES ('2008-10-30 00:00:00', 'Manuell', 'typ', 'event', 'Wasser', '408.307', 'u');
INSERT INTO `history` (`TIMESTAMP`, `DEVICE`, `TYPE`, `EVENT`, `READING`, `VALUE`, `UNIT`) VALUES ('2008-11-17 00:00:00', 'Manuell', 'typ', 'event', 'Wasser', '413.849', 'u');
INSERT INTO `history` (`TIMESTAMP`, `DEVICE`, `TYPE`, `EVENT`, `READING`, `VALUE`, `UNIT`) VALUES ('2008-12-03 00:00:00', 'Manuell', 'typ', 'event', 'Wasser', '417.307', 'u');
INSERT INTO `history` (`TIMESTAMP`, `DEVICE`, `TYPE`, `EVENT`, `READING`, `VALUE`, `UNIT`) VALUES ('2008-12-19 00:00:00', 'Manuell', 'typ', 'event', 'Wasser', '421.655', 'u');
INSERT INTO `history` (`TIMESTAMP`, `DEVICE`, `TYPE`, `EVENT`, `READING`, `VALUE`, `UNIT`) VALUES ('2008-12-31 00:00:00', 'Manuell', 'typ', 'event', 'Wasser', '425.871', 'u');