Was können wir verbessern?

Dokumentation

AC_GetAggregatedValues

Benötigt: IP-Symcon >= 3.0

array AC_GetAggregatedValues (integer $InstanzID, integer $VariablenID, integer $Aggregationsstufe, integer $Startzeit, integer $Endzeit, integer $Limit)

Parameterliste

InstanzID ID zum Archiv
VariablenID ID der abzufragenden Variablen
Aggregationsstufe
Aggregationsstufe Beschreibung
0 Stündliche Aggregation
(00:00 - 59:59)
1 Tägliche Aggregation
(00:00:00 - 23:59:59)
2 Wöchentliche Aggregation
(Montag 00:00:00 - Sonntag 23:59:59)
3 Monatliche Aggregation
(Erster Monatstag 00:00:00 - Letzter Monatstag 23:59:59)
4 Jährliche Aggregation
(01.01. 00:00:00 - 31.12. 23:59:59)
5 5-Minütige Aggregation (Aus Rohdaten berechnet)
6 1-Minütige Aggregation (Aus Rohdaten berechnet)
Startzeit Datum/Zeit als Unix Zeitstempel
Endzeit Datum/Zeit als Unix Zeitstempel
Limit Maximale Anzahl an Datensätzen. (0 = Kein Limit, 10000 ist das harte Limit, welches immer greift)

Rückgabewerte

Ein Array mit folgenden key => value Paaren.

Die Ausgabe startet mit dem neusten Datensatz und dann absteigend mit den älteren Datensätzen.

Bedeutung der Felder beim Aggregationstyp Standard

Index Typ Beschreibung
Avg variant Durchschnittswert innerhalb dieses Aggregationszeitraums
Duration integer Dauer des Aggregationszeitraums in Sekunden
Max variant Größter Wert innerhalb dieses Aggregationszeitraums
MaxTime variant Datum/Zeit von Max als Unix Timestamp
Min variant Kleinster Wert innerhalb dieses Aggregationszeitraums
MinTime variant Datum/Zeit von Min als Unix Timestamp
TimeStamp integer Datum/Zeit vom Begin des Aggregationszeitraums als Unix Timestamp

Bedeutung der Felder beim Aggregationstyp Zähler

Index Typ Beschreibung
Avg variant Summe der positiven Delta innerhalb dieses Aggregationszeitraums
Duration integer Dauer des Aggregationszeitraums in Sekunden
Max variant Größter positives Delta innerhalb dieses Aggregationszeitraums
MaxTime variant Datum/Zeit von Max als Unix Timestamp
Min variant Kleinstes positives Delta innerhalb dieses Aggregationszeitraums
MinTime variant Datum/Zeit von Min als Unix Timestamp
TimeStamp integer Datum/Zeit vom Begin des Aggregationszeitraums als Unix Timestamp

Beschreibung

Dieser Befehlt gibt die aggregierten Daten zurück, die über das Archiv für eine Variable mit der VariablenID mitprotokolliert und berechnet wurden. Dabei können die Start- und Endzeit als Parameter angegeben werden. Der Parameter Limit limitiert die maximale Anzahl der zurückgegebenen Datensätze, wobei das Limit von 10000 Datensätzen pro Abfrage nie überschritten werden kann.

Diese Funktion garantiert, dass alle Datensätze zwischen Startzeit und Endzeit auch vorhanden sind und ausgegeben werden. Das bedeutet, dass es es keine zeitlichen Lücken zwischen den Datensätzen gibt. Datensätze werden maximal bis zum jetzigen Zeitpunkt ausgegeben.

Es werden immer ganze aggregierte Zeiträume abgefragt. Dafür muss der Startzeitpunkt (abhängig von der Aggregationsstufe) der/des Stunde/Tages/Woche/Monats/Jahr im Zeitraum von Startzeit und Endzeit umfasst sein.

Die Aggregationsstufen 5-Minütige/1-Minütige Aggregation werden aus den Rohdaten berechnet, sodass diese bei vielen Rohdaten ggf. mehr Systemleisung erfordern, als die anderen Aggregationsstufen

Beispiel

//Alle Datensätze vom 01.01.2013 bis zum 31.12.2013 abfragen (Tägliche Aggregationsstufe)
//z.B. um den Verbrauch am jeweiligen Tag zu ermitteln oder die Durchschnittstemperatur am jeweiligen Tag
$werte = AC_GetAggregatedValues(12345, 55554, 1 /* Täglich */, mktime(0, 0, 0, 1, 1, 2013), mktime(23, 59, 59, 12, 31, 2013), 0); //55554 ist die ID der Variable, 12345 vom Archiv        
 
//Alle heutigen Datensätze abfragen (Tägliche Aggregationsstufe)
//z.B. um den heutigen Verbrauch er ermitteln oder die heutige Durchschnittstemperatur
$werte = AC_GetAggregatedValues(12345, 55554, 1 /* Täglich */, strtotime("today 00:00"), time(), 0); //55554 ist die ID der Variable, 12345 vom Archiv        
 
//Alle gestrigen Datensätze abfragen (Stündlichen Aggregationsstufe)
//z.B. um den gesterigen Verbrauch oder die durchschittliche Windgeschwindigkeit jeder Stunde zu begutachten          
$werte = AC_GetAggregatedValues(12345, 55554, 0 /* Stündlich */, strtotime("yesterday 00:00"), strtotime("today 00:00")-1, 0); //55554 ist die ID der Variable, 12345 vom Archiv        
 
//Dieser Teil erstellt eine Ausgabe im Skriptfenster mit den abgefragten Werten        
foreach($werte as $wert) {
	echo date("d.m.Y H:i:s", $wert['TimeStamp']) . " -> " . $wert['Avg'] . PHP_EOL;
}
Haben Sie noch Fragen?