Wunsch: Verbesserte Möglichkeiten fürs Archiv

Hi

ich hätte gerne die Möglichkeit das Archiv zu durchlaufen:

Ich stelle mir das so vor, dass die Funktion AC_GetLoggedValues über einen optionalen Parameter Ascending sortiert wird. Alternativ über einen zweiten Funktionsnamen AC_GetLoggedValuesAsc() oder AC_GetLoggedRawValues();

Das Ganze könnte dann so grob aussehen.

$start = 0;
$end = 0;

while(true) {
  $list = AC_GetLoggedValuesAsc($archiv, $object, $start, $end, 1000);
  if (count($list) == 0) break;
  
  foreach($list as $data) {
    $start = $data['TimeStamp'] + 1;

    // Tue was zu tun ist.
  }
}

War mir hierbei noch gefallen ist:

  • Durch das Löschen mit AC_DeleteVariableData($a, $b, 0, 0), wird nicht nur der Inhalt gelöscht, sondern auch Archivieren deaktiviert!
  • AC_GetLoggedValues liefert bei einem Limit von 1 immer zwei Werte

Ich möchte gern bei einer geloggten Variable (z.B. Energiezähler) zwei Zeitpunkte miteinander vergleichen, um so z. B. den Verbrauch vom 11.09.2022 00:00 bis zum 12.09.2022 00:00 zu ermitteln.

Mit AC_GetLoggedValues kann ich mir zwar alle Werte für eine Zeitspanne aus dem Archiv holen, ich bräuchte jedoch einen Zeitpunkt. Im Zweifel weiß ich nicht, wieviel Werte geloggt sind und erhalte über die o.a. Funktion entweder sehr viele Werte oder eben gar keinen.

Gibt es denn eine Möglichkeit, dass mir z.B. per 11.09.2022 00:00 der letzte davor liegende Wert angezeigt wird (egal, wie alt dieser ist), ohne selber in den .csv zu suchen?