Zeitlich Aggregiert



Quelle “Aggregated timeseries”

Über die Quelle “Aggregated timeseries” kannst du aus einen bestehenden Datenpunkt mit seinen historischen Daten einen neuen Datenpunkt berechnen.

Dies ist z.B. nützlich, wenn Du den Maximalwert der letzten Stunde oder den Verbrauch von gestern berechnen willst.

Folgende Optionen stehen Dir allgemein zur Konfiguration zur Verfügung:

  • zeitlich aggregierter Datenpunkt [1] : wähle hier den für die Berechnung zu verwendenden Datenpunkt aus
  • Operation [2]: wähle aus, was mit den historischen Daten des Datenpunkts passieren soll:
    • AVG: Berechne den Durchschnitt
    • MIN: Bestimme das Minimum
    • MAX: Bestimme das Maximum
    • SUM: Berechne die Summe
    • MEDIAN: Bestimme den Median
    • COUNT: Zähle die Anzahl der Datenpunkte
    • Differenz zu letzte Periode: Bestimme die Differenz der Maximalwerte von der ausgewählten und vorherigen Periode
    • Differenz zum letzten Wert: Ermitteln Sie die Differenz der beiden zuletzt eingegangenen Werte. Hilfreich ist diese Funktion beispielsweise um Lastgänge zu berechnen.

Für einfache Anwendungsfälle kann im ersten grauen Kasten (“Vordefinierte Zeiträume”) folgende Einstellung vorgenommen werden:

  • Aggregation Dauer [3]: wähle den Zeitraum für die historischen Daten des Datenpunkts aus. Dieser wird berechnet ausgehend von der aktuellen Uhrzeit. D.h. wenn es 13:00 Uhr ist und eine Aggregation Dauer von 1 Stunde ausgewählt wird, werden alle Datenpunkte bis 12:00 Uhr für die Berechnung herangezogen.

  • Fester Zeitstempel [4]: wähle hier, ob die Aggregationsdauer relativ zum aktuellen Zeitpunkt sein soll (z.B. eine in die Vergangenheit ab dem Zeitpunkt, zu dem die Aggregation ausgelöst wird) oder ob ein fester Zeitstempel genutzt werden soll (um z.B. Werte immer zur vollen Stunde zu berechnen). Bitte beachte, dass auch bei der Option “Fester Zeitstempel” nur eine Berechnung stattfindet, wenn ein Ereignis eintritt, welches die Berechnung auslöst. Das ist eine Änderung am aggregierten Datenpunkt [1] (z. B. durch den Empfang eines Sensorpakets), eine Regel mit zeitlichem Auslöser, welche eine Auswertung dieses Datenpunktes triggert, oder ein Zeitplan im Bereich Auslöser. Werden im Zeitraum keine Daten gefunden so ist als Ergebnis null zu erwarten (nicht 0).

Alternativ steht auch im zweiten grauen Kasten darunter der “Expertenmodus” zur Verfügung, mit dem Du noch detaillierter Einstellungen vornehmen kannst. Im Gegensatz zu der “Aggregation Dauer” zuvor lässt sich hier einstellen, dass ausgehend von vollen Kalendertagen, -monaten etc. zurückgerechnet wird (anstatt von der aktuellen Uhrzeit).

  • Offset: Gibt an, wie viele Einheiten (z.B. Tage, Monate) zurückgegangen werden soll. Ein Wert von 0 entspricht dabei der aktuellen Einheit (z.B. aktueller Tag, aktueller Monat). Negative Werte sind hierbei nicht zulässig.
  • Offset Einheit: Gibt die Einheit für den Offset an
  • Zeitdauer: Gibt den Zeitraum an, ab dem - ausgehend vom Offset - vorwärts die Daten aggregiert werden sollen
  • Zeiteinheit: Gibt die Einheit für die Zeitdauer an

Auslöser

Im Bereich Auslöser des Datenpunkt-Dialogs wird festgelegt, wann der zeitlich aggregierte Datenpunkt neu berechnet wird. Der Bereich erscheint nur, wenn im Bereich Quelle die Quelle Zeitlich aggregiert gewählt ist, und liegt zwischen Quelle und Visualisierung.

Es stehen zwei Auslöser zur Verfügung, die einzeln oder gemeinsam aktiv sein können:

  • Bei jeder Datenpunkt-Aktualisierung neu berechnen: Der Wert wird neu berechnet, sobald sich der referenzierte Datenpunkt ändert. Das entspricht dem bisherigen Verhalten. Bei vielen Referenzen (z. B. viele Objekte, die häufig Daten senden) kann das sehr oft passieren.
  • Geplante Neuberechnung: Der Wert wird zu festen Zeitpunkten nach einem Zeitplan berechnet. Über Zeitplan hinzufügen wird ein Zeitplan angelegt, über Zeitplan entfernen wieder gelöscht.

Zeitplan konfigurieren

  • Wie oft: Stündlich, Täglich, Wöchentlich oder Monatlich. Beim Hinzufügen eines Zeitplans wird die Häufigkeit passend zur gewählten Aggregationsdauer vorbelegt (z. B. Täglich bei “Gestern”).
  • Ab Minute (nur Stündlich): Minute innerhalb der Stunde, in 5-Minuten-Schritten (:00 bis :55).
  • Am (nur Wöchentlich / Monatlich): Wochentag bzw. Tag des Monats. Zur Auswahl stehen die Tage 1 bis 28, damit keine Ausführung in kürzeren Monaten entfällt.
  • Um (nicht bei Stündlich): Uhrzeit der Ausführung (Vorbelegung 06:00).
  • Zeitzone: Zeitzone, in der der Zeitplan ausgewertet wird. Vorbelegt wird die Zeitzone der Aggregation bzw. des Browsers.

Darunter fasst eine Zusammenfassung den Zeitplan zusammen (z. B. “Läuft täglich um 06:00 (Europe/Berlin)”) und zeigt die nächste Ausführung an. Der Bereich Ergebnis beschreibt, wann der Wert mit der aktuellen Einstellung insgesamt neu berechnet wird.

Mindestens einer der beiden Auslöser muss aktiv sein. Ist die Neuberechnung bei Aktualisierung deaktiviert und kein Zeitplan vorhanden, wird ein Hinweis angezeigt und der Datenpunkt kann nicht gespeichert werden.

Verhalten der geplanten Neuberechnung

  • Zeitraum und Zeitstempel: Zeitraum und Zeitstempel der Berechnung beziehen sich auf den geplanten Zeitpunkt, nicht auf den Zeitpunkt der tatsächlichen Ausführung. Beispiel: Zeitplan täglich 06:00, Aggregationsdauer “Gestern” → aggregiert wird der gestrige Tag. Ist “Fester Zeitstempel” aktiviert, erhält der Wert den Zeitstempel am Ende des Zeitraums (heute 00:00), andernfalls den geplanten Zeitpunkt (heute 06:00).
  • Beide Auslöser aktiv: Liegt bereits ein neuerer Wert aus einer Berechnung bei Aktualisierung vor, wird der geplante Wert nicht gespeichert.
  • Keine Daten im Zeitraum: Das Ergebnis entspricht dem der Berechnung bei Aktualisierung (in der Regel null). Bei “Differenz zu letzte Periode” wird ohne Daten kein Wert gespeichert. Ein Zeitplan sollte daher so gewählt werden, dass der Zeitraum zum geplanten Zeitpunkt bereits Daten enthält – z. B. bei “Diese Stunde” nicht genau zu Beginn der Stunde.
  • Fehlgeschlagene Ausführung: Eine fehlgeschlagene Berechnung wird nach 5 Minuten erneut versucht, insgesamt maximal dreimal und höchstens bis zur nächsten regulären Ausführung.
  • Genauigkeit: Fällige Zeitpläne werden minütlich abgearbeitet. Die Ausführung kann daher einige Sekunden bis Minuten nach dem geplanten Zeitpunkt erfolgen; Zeitraum und Zeitstempel bleiben davon unberührt.

Zeitplan in Gerätetemplates

Ist der Datenpunkt in einem Gerätetemplate definiert, wird der Auslöser im Gerätetemplate konfiguriert und gilt für alle daraus erstellten Digitalen Zwillinge. Im Datenpunkt-Dialog des einzelnen Digitalen Zwillings ist der Bereich dann nur lesbar.

Damit nicht alle Digitalen Zwillinge eines Gerätetemplates gleichzeitig berechnet werden, verteilen sich die Ausführungen über die Stunde nach dem geplanten Zeitpunkt. Jeder Digitale Zwilling behält dabei bei jeder Ausführung denselben Zeitschlitz. Da Zeitraum und Zeitstempel vom geplanten Zeitpunkt ausgehen, beschreiben die Werte aller Digitalen Zwillinge trotzdem denselben Zeitraum und bleiben vergleichbar – sie können aber bis zu einer Stunde nach ihrem Zeitstempel gespeichert werden.

Bestehende Datenpunkte

Bereits vorhandene zeitlich aggregierte Datenpunkte werden weiterhin bei jeder Datenpunkt-Aktualisierung neu berechnet und haben keinen Zeitplan. Das Verhalten ändert sich erst, wenn der Auslöser angepasst wird.

Hinweise

Hinweis 1: Die Aggregation funktioniert nur korrekt, falls alle Werte numerisch sind, also keine Zeichenketten, boolesche Werte oder JSON-Werte in der Historie vorkommen.

Hinweis 2: Unabhängig von dem ausgewählten Zeitraum werden maximal die neusten 5000 Werte aggregiert.

Hinweis 3: Die zeitlich aggregierten Datenpunkte speichern einen eigenen Wert in der Datenbank und werden – je nach Einstellung im Bereich Auslöser – neu berechnet, wenn der verbundene Datenpunkt sich aktualisiert und/oder nach Zeitplan. D.h. wird die Konfiguration des zeitlich aggregierten Datenpunkts nachträglich geändert, werden die bereits berechneten Werte nicht neu berechnet.

Hinweis 4: Wird für den zeitlich aggregierten Datenpunkt eine Aggregationsdauer ausgewählt, die kleiner ist als das Sendeintervall des Sensors, kann es passieren, dass in einem Aggregationsintervall kein Paket einging. Dann wird für dieses Intervall eine 0 für die Berechnung in der Operation verwendet.

Hinweis 5: Sobald die “Aggregation Dauer” ausgewählt wird, füllen sich automatisch die Felder im Bereich “Expertenmodus”. Umgekehrt deaktiviert sich die “Aggregation Dauer”, wenn die Felder aus dem “Expertenmodus” manuell ausgefüllt werden.

Hinweis 6: Je nach Wahl der Aggregation Dauer wird der Startpunkt der Aggregation unterschiedlich gesetzt.

  • Bei Auswahl “Diese Woche” wird der Startzeitpunkt montags um 00:00:00 Uhr gesetzt und die Status-Updates ab diesem Zeitpunkt zurückgegeben. Beispiel: wenn jetzt der 8. Februar um 13:37:37.020 UTC+2 ist, werden alle Status-Updates ab dem 1. Februar 13:37:37.020 UTC+2 zurückgegeben

  • Bei Auswahl “7 Tage” werden die Status-Updates der letzten 7 Tage auf die Sekunde genau zurückgegeben. Beispiel: wenn jetzt Mittwoch, der 8. Februar um 13:37:37.020 UTC+2 ist, werden die Status-Updates ab Montag, dem 6. Februar um 00:00:00.000 UTC+2 zurückgegeben

  • Bei Auswahl “7 Tage” im Expertenmodus werden die letzten vollen 7 Tage zurückgegeben. Beispiel: Wenn jetzt der 8. Februar um 13:37:37.020 UTC+2 ist, werden die Zustandsänderungen ab dem 1. Februar 00:00:00.000 UTC+2 zurückgegeben

Beispiele

Beispiel 1 zu den Konfigurationsmöglichkeiten

Um die vielfältigen Konfigurationsmöglichkeiten zu verdeutlichen, hier ein Beispiel:

Ausgangssituation ist ein Datenpunkt mit den in den ersten beiden Spalten aufgeführten, eingegangenen Temperaturen.

Ziel ist es, mittels eines zeitlich aggregierten Datenpunkts die Maximaltemperatur der letzten 15 min. herauszufinden.

Wähle hierzu über die Fläche “Zeitlich aggregierter Datenpunkt” den entsprechenden Datenpunkt (in diesem Beispiel wäre “Temperatur”) aus, von dem eine Aggregation über einen Zeitraum erstellt werden soll. Wähle unter “Operation” den Maximalwert (“MAX”), danach unter “Aggregation Dauer” einen Zeitraum von 15 Minuten und im Feld “Typ” den Typ “Number” für die Visualisierung. Du kannst im Feld “Wert” optional den ersten Wert festlegen (der Wert wird bei der ersten Aktualisierung von der Datenquelle überschrieben). Klicke auf “sichern”, dann erscheint der zeitlich aggregierte Datenpunkt im Dashboard und in der Liste der Datenpunkte.

In unserem Beispiel von oben wird der Wert 22 °C als maximale Temperatur in den letzten 15 Minuten gezeigt (vgl. Spalte 3: aus den Daten von 10:00 Uhr bis 09:45 wird das Maximum genommen). Das gleiche Prinzip kannst du mit anderen Operationen durchführen (z.B. “MIN”).

Wenn du hingegen bei dem gleichen Beispiel die Operation “Differenz zur letzten Periode” und einen Zeitraum von 15 Minuten auswählst, dann wird hier die Differenz der Maximaltemperaturen zwischen den letzten beiden Intervallen gezeigt.

Für unser Beispiel wären das die Differenz aus:

  • Dem 1. Intervall (von 9:45 bis 10:00), wo die maximale Temperatur 22 °C ist.
  • Dem 2. Intervall (von 9:30 bis 9:45), wo die maximale Temperatur 35 °C ist.

Angezeigt wird die Differenz beider Temperaturen; d.h. 22°C-35°C = 13°C.

Beispiel 2 zu den Konfigurationsmöglichkeiten

Wenn das Ziel hingegen ist, für die oben angegebenen Temperaturwerte die maximale Temperatur von vor 2 Tagen von dem gesamten (Kalender-)Tag zu erfahren, dann musst Du den Expertenmodus wähle.

Mit dem “Offset” von 2 und der Offset-Einheit “Tag” wählst Du den vorgestrigen Tag (vor 2 Tagen) aus. Nachfolgende Tabelle gibt ein Beispiel für die Funktion des Offsets:

Als Zeitdauer wählst Du 1 und Zeiteinheit “Tag”, um den gesamten Kalendertag als Zeitraum für die Auswertung zu berücksichtigen.