Zuwachs einer Zählervariable zwischen beliebigen Zeitpunkten

Hallo,

ich suche ein ressourcenschonenden Weg, um den Zuwachs einer Zählervariable zwischen beliebigen Zeitpunkten zu ermitteln.

Aktuell lief bei mir diese Variante:

Function GetCounterDelta($StromVar, $von, $bis)
{
	$l = AC_GetLoggedValues(20672 /*[Archive Handler]*/, $StromVar, $von, $bis, 0);
	if (count($l) > 1) {
		return $l[0]["Value"] - $l[count($l) -1]["Value"];
	} else {
	   return 0;
	}
}

Im Prinzip holt die Funktion alle geloggten Werte und ermittelt den Unterschied zwischen dem neusten und ältesten Eintrag.

Das ist natürlich eine extreme Belastung für den Server, deshalb dachte ich an eine Variante mit AC_GetAggregatedValues:

Function NeuGetCounterDelta($StromVar, $von, $bis)
{
	$werte = AC_GetAggregatedValues(20672 /*[Archive Handler]*/, $StromVar,2,$von,$bis,0);
	if (count($werte) > 0){
		return $werte[0]['Avg'];
	} else {
		return 0;
	}
		
}

Ich hatte gehofft, dass man bei Aggregationsstufe Jährlich nur ein Element zurück bekommt - ich bekomme aber keins, da ich erst wieder seit einer Woche Werte logge.

Würdet ihr AC_GetAggregatedValues nehmen und alle Elemente des Arrays summieren?

Ich hatte auch schon an zwei Aufrufe für AC_GetLoggedValues (von und bis) gedacht - aber dabei muss man Glück haben den richtigen Zeitraum zu erwischen, in dem auch tatsächlich Werte geloggt wurden.

Habt ihr eine bessere und einfachere Variante?

Grüße, Axel

Jemand eine Idee?