AC_GetAggregatedValues über Jahresgrenze Problem?

Hi,
ich berechne für diverse Zimmer den Verbrauch der letzten 12 Monate. Das habe ich gemacht mit


$summeID = 18122 /* ID Verbrauch */;
$ErgebnisID = 58938; /*ID Variable für 12 Monatsverbrauch */
$werte = AC_GetAggregatedValues(32968, $summeID, 4 , time() - 365*86400, time(), 1); 
SetValue($ErgebnisID, $werte[0]['Avg']);
echo $werte[0]['Avg'].PHP_EOL;

jetzt habe ich festgestellt das alle meine 12 Monatsverbräuche viel zu gering sind. Wenn ich die einfachere Methode


$werte1 = AC_GetLoggedValues(32968, $summeID, time() - 365*86400, time() - 364*86400, 1); 
$werte2 = AC_GetLoggedValues(32968, $summeID, 0, 0, 1);
echo $werte2[0]['Value']-$werte1[0]['Value'].PHP_EOL;

benutze bekomme ich wieder die erwarteten Werte. Für Keller z.B. alt 10kWh und neu 266 kWh. Da die neue Variante wohl auch Rechenzeit spart werde ich wohl dabei bleiben aber mich würde schon interessieren wo ich mit AC_GetAggregatedValues im ersten Fall einen Fehler gemacht haben könnte. Wie gesagt das letzte Mal als ich nachgeschaut hatte waren die Werte noch glaubhaft.

Ralf

In deinem ersten Skript fragst du nur den Verbrauch des aktuellen Jahres an. Da dies ja noch recht jung ist, wird das im Vergleich recht kleine Zahlen ausgeben.

Ich würde dir sonst mal das Modul „Verbrauch in Zeitspanne“ nahelegen. Das findest du im Module Store. Vielleicht kannst du dann auf eigene Skripte verzichten.

Hi,
die 4 war also der Fehler oder? Die Summe der letzten 12 Monate kann man so dann wohl nicht bestimmen oder?

Ralf

Du kannst schon über die letzten 12 Monate gehen. Dann müsstest du als Aggregationstyp 3 (für monatlich) angeben. Wobei der „Fehler“ dadurch nur gemildert wird, da du den aktuellen Monat ja noch drin hast und der ja noch nicht vollständig ist. Sprich im Laufe des Januars wird die Zahl einfach nur ansteigen und zum 1. Februar dann runtergehen, weil der Februar 2020 wegfällt. Wenn du die 12 Monate „fließend“ haben möchtest, dann wird es ein bisschen komplizierter, daher auch die Modulempfehlung. Falls du das nicht verwenden möchtest, kannst du da ja aber mal in den Quellcode schauen.