Dokumentation
AC_GetAggregatedValues
Benötigt: IP-Symcon >= 3.0
array AC_GetAggregatedValues (int $InstanzID, int $VariablenID, int $Aggregationsstufe, int $Startzeit, int $Endzeit, int $Limit)
Parameterliste
InstanzID | ID zum Archiv |
||||||||||||||||
VariablenID | ID der abzufragenden Variablen |
||||||||||||||||
Aggregationsstufe |
|
||||||||||||||||
Startzeit | Datum/Zeit als Unix Zeitstempel (0 = von Anfang an) |
||||||||||||||||
Endzeit | Datum/Zeit als Unix Zeitstempel (0 = bis jetzt) |
||||||||||||||||
Limit | Maximale Anzahl an Datensätzen. (0 = Kein Limit, 10000 ist das harte Limit, welches immer greift) |
Rückgabewert
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;
}