Hallo Sailor,
bei den Werte, die Buderus liefert muß man teilweise echt raten und außerdem passen diese auch irgendwie nicht wirklich zusammen. Ich versuche auch gerade noch herauszubekommen, wie diese gerechnet werden müssen und was sie im Detail bedeuten.
Da ich meine Ansätze auch aus anderen Foren bisher hatte, war mein Ansatz bisher folgender:
Die Werte y und c hast du ja schon richtig erkannt. Y ist aus meiner Sicht wohl die Leistung in Watt in Bezug auf die Zeiteinheit c. Bei der Tagesauswertung bekommt man 24 Stundenwerte und c ist meist 60 (manchmal auch 59). Das dürften dann die Minuten sein, in der die Leistung gemessen wurde. Um nun Y in kWh zu erhalten habe ich einfach Y / 60 oder richtiger wäre wohl y / c geteilt.
Bei den Monatsauswertungen habe ich mittlerweile festgestellt, dass auch hier der Wert y durch 60 geteilt werden muß bzw. durch (c / 60) wegen der 59er Zahlen am Tag.
Damit bekomme ich jedenfalls Werte, die in etwa den Darstellungen meiner Anlage entsprechen, wenn ich mir die Werte im Schnitt der letzten 24 Stunden anschaue. Allerdings war das leider bisher nur sehr ungenau möglich.
Die Jahreswerte sind ganz komisch. Wenn ich es richtig mitprotokolliert habe, dann waren die um kurz nach 0:00 Uhr für den Januar auf 0. Nun stehen dort aber Werte drin, die ich überhaupt nicht zuordnen kann. Ich habe den Eindruck, dass die irgendwelche Durchschnittswerte der letzten Tage sind. Eventuell wird dieser Wert erst nach einer Woche oder am Ende des Januar korrekt dargestellt.
Weiterhin bin ich irritiert, dass die Summe der Werte aus Warmwasser (DHWPower) und Heizkreis (CHPower) nicht dem Gesamtwert entspricht. Ich habe hier aktuell eine Differenz von etwa 2kWh (das würde aber evtl. auch mit deiner These der Mittelwerte zusammenhängen).
Was natürlich auch noch nicht passt, ist die Umrechnung in Bezug auf den tatsächlichen Gasverbrauch. Hier würde ich aber mal deinen Ansatz verfolgen und meine Zahlen auch mal entsprechend mit den Mittelwerten vergleichen.
Übringens ist mir bei meinem Code noch ein Detail aufgefallen, was du vielleicht direkt mit übernehmen kannst bzw. dir ja auch schon aufgefallen ist. Die Ermittlung des Verbrauchs erfolgt immer mit dem Wechsel von einer auf die anderen Stunde. Daher wird bei meiner bisherigen Funktion nie der Wert für die Zeit von 23:00 bis 24:00 Uhr ermittelt. Den Fehler kann man beheben, in dem die Datumsangaben für das Interval mit einer Stunde verzug ermittelt werden:
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time()-3600);
Sobal ich ein paar neue Erkenntnisse habe, gebe ich gerne Bescheid.