kann mir jemand sagen, warum eine jährliche (4) „AC_GetAggregatedValues“ plötzlich keine Min/Max Werte mehr liefert. Funktionierte bisher Einwandfrei… Das Array ist leer obwohl im Archiv die Werte (ab März) da sind. Habe nix verändert. Monatlich (3) geht…
$werte = AC_GetAggregatedValues(48521, 56220, 4, /* Jährlich */ strtotime(„first day of this year 00:00:00“), strtotime(„last day of this year 23:59:59“), 0);
Das sollte eigentlich genau so funktionieren. Probier sonst mal die Variable zu reaggregieren. Vielleicht ist die Aggregation ja kaputt und daher wird die aktuelle Stufe nicht berechnet?
Das ist doch aber ein wichtiges Ergebnis !? Wenn auch der Graph keine Daten anzeigt, dann passt dies zur Fehlermeldung in deinem Script. Dann würde ich mal in die entsprechende Datei schauen und ggf eine Neuerstellung erzwingen durch Löschen und neue Aggregation.
Nachtrag: Ich bekomme auch ein leeres Array, wenn ich diese Abfrage bei mir verwende.
Ist die Abfrage mit jährlicher Aggregation so wirklich richtig, bei diesem Datumsbereich? Der letzte Zeitstempel der Jahresaggregation ist bei mir der 31.12.2021, daher ist erklärlich warum die Abfrage eines späteren Zeitraums kein Ergebnis liefert.
Ich vermute dass die Aggregationsstufe Monat hier schon richtig wäre und dieses Script mit Aggregation Jahr noch nie funktioniert hat.
strtotime() liefert für die Ausdrücke „first day of this year“ und „last day of this year“ einen Timestamp für den ersten bzw. letzen Tag des aktuellen Monats. Das funktioniert dann natürlich nicht. Der zweite Ausdruck ist bei deiner Abfrage ja nicht weiter schlimm. Ob letzter Tag des Jahres oder letzter Tag des aktuellen Monats läuft in dem Fall aufs gleiche Ergebnis hinaus.
Warum sich die Funktion so verhält, keine Ahnung… Vielleicht ein Bug oder das Konstrukt geht einfach nicht?!
<?php
$a = strtotime("first day of january 00:00:00");
$b = strtotime("last day of december 23:59:59");
echo date("d.m.Y H:i:s", $a) . PHP_EOL;
echo date("d.m.Y H:i:s", $b) . PHP_EOL;
Verständnisfrage: Woher kommen die Daten der Aggregation 4 (jährlich)?
Ich hatte angenommen, dass ich damit die Daten aus der Datei der jährlichen Aggregation auslese. Das ist aber offenbar nicht der Fall, denn die enthält soweit ich es sehen kann nur die Vorjahre. Dennoch funktioniert die Abfrage auch für das aktuelle Jahr - warum eigentlich und wo kommen die Daten her?
Unvollständige Aggregationssätze wie das aktuelle Jahr werden im Speicher gehalten und kontinuierlich aktualisiert. Abgeschlossene werden in die Datei geschrieben und dann entsprechend auch einfach von dort abgefragt.