Telemetriedaten

Timeseries APIs

Timeseries APIs werden hauptsächlich verwendet, wenn sie für einen bestimmten datentyp einen detaillierten trend erhalten möchten, der es ihnen ermöglicht, echtzeitanalysen und-darstellungen für ein benutzerdefiniertes Zeitfenster durchzuführen.

Diese art von APIs sind immer wie folgt strukturiert:

Der path, mit dem sie auf die gewünschten ressourcen zeigen können, erfordert immer die folgenden parameter:

  • {power,frequency,wind,temperature,voltage,current,energy,kpis}:der ressourcentyp, auf den verwiesen werden soll. Dieser parameter gibt nicht die eigentlichen daten an, die sie erhalten möchten, sondern die allgemeine kategorie, zu der die gewünschten daten gehören (bitte beachten sie, dass ein API-Aufruf jeweils nur eine kategorie akzeptiert, es ist derzeit nicht möglich, BULK-Aufrufe durchzuführen);
  • {entityID}: es kann sich um eine anlagen-oder Geräte-EID handeln. Im ersten fall berücksichtigt der erhaltene wert die aggregation aller geräte, für die dieser wert existiert, auf anlagenebene; im zweiten fall bezieht sich der erhaltene wert auf das einzelne interessierende gerät;
  • {dataType}: stellt die tatsächlich zu erhaltenden daten dar. Die verfügbaren dataTypes variieren je nach ressource, auf die verwiesen wird, eine detaillierte beschreibung ist direkt in der OpenAPIs Swagger;
  • {valuetype}: stellt die art des aggregationskriteriums dar, mit dem die angeforderten daten vorliegen zu erhalten.

Die queries, mit denen sie die angeforderten daten filtern können, erfordern immer die folgenden parameter:

  • {sampleSize}: definiert die abtastrate, mit der daten abgerufen werden. Je länger die abtastrate, desto kürzer die länge des als antwort erhaltenen datenarrays (a sampleTime gleich Min5 hat mehr Samples im Antwortarray als ein sampleTime gleich Min15);
  • {startDate}: die untere grenze, die es ermöglicht, den beginn des interessierenden zeitfensters zu definieren. Sein Format ist immer YYYYMMGG (eg: 20220321);
  • {endDate}: die obergrenze, die es erlaubt definieren sie das ende des interessierenden zeitfensters. Sein format ist immer YYYYMMGG (eg: 20220322) und muss zeitlich nach dem {startDate} liegen;
  • {timezone}: ermöglicht es, den API-Aufruf zu einer korrekten datenwiederherstellung gemäß der angeforderten zeitzone zu leiten.

Ein Timeseries-Aufruf liefert normalerweise ein array von werten als antwortarray of values as response.
Die länge des arrays hängt direkt vom {sampleSize} wert und vom durch {startDate} und {endDate} definierten zeitfenster ab. Sobald ein referenzzeitfenster definiert wurde, wird der wert {sampleSize} dieses fenster mehr oder weniger häufig aufteilen, wodurch folglich die länge des arrays als antwort geändert wird: je größer der {sampleSize} desto spärlicher wird das zeitfenster aufgeteilt, was zu weniger elementen im antwortarray führt.
Es lohnt sich, sich ein direktes beispiel anzusehen, um diese konzepte besser zu erklären.

Das prinzip des vorhandenseins/fehlens bestimmter felder in den antwortelementen einer zeitreihen-API (in den letzten zeilen des obigen beispiels ausgedrückt) ist von grundlegender bedeutung: es gilt nicht nur in. Bei zukünftigen mustern, aber auch und vor allem bei völligem fehlen von daten zu Aurora Vision. Dies ermöglicht es, den von den Telemetrie-APIs erhaltenen antworten kohärenz zu verleihen, denn wenn der value abgelegt ist, bedeutet dies, dass dieser wert tatsächlich auf Aurora Vision vorhanden ist, andernfalls wäre er nicht vorhanden.

Wie bei aggregierten aufrufen ist auch bei zeitreihenaufrufen der Parameter {valuetype} on großer bedeutung, da er je nach ressourcenkategorie, also {dataType}, zu erhalten und wird auch von {sampleSize} beeinflusst.

Für einen {dataType} der zur kategorie {power,frequency,wind,temperature,voltage,current,kpis} gehört, wird der {valueType} annehmen kann drei verschiedene werte:

  • Maximum: gibt den maximalen wert zurück, der unter allen samples in jedem zeitabschnitt gefunden wurde, bestimmt durch den {sampleSize}, wert im definierten {startDate} und {endDate} zeitfenster, für den angeforderten {dataType};
  • Minimum: gibt den kleinsten wert zurück, der unter allen samples in jedem zeitabschnitt gefunden wurde, bestimmt durch den {sampleSize}, wert im definierten {startDate} und {endDate} zeitfenster, für den angeforderten {dataType};
  • Average: gibt den durchschnittswert aller samples in jedem zeitabschnitt zurück, bestimmt durch den {sampleSize}, wert im definierten {startDate} und {endDate} zeitfenster, für den angeforderten {dataType}

HINWEIS: für die kategorie kpis, gelten die obigen Überlegungen nur, wenn Power-Based KPIs genannt werden. Weitere einzelheiten finden sie unter OpenAPIs Swagger.


Werfen wir einen blick auf einige anwendungsfälle, in denen wir eine anlage ( entityID: 12345678 ) mit einem einzelnen registrierten wechselrichtergerät ( entityID: 87654321 ):

Für einen {dataType} der zur kategorie {energy,kpis}, gehört, kann der {valueType} zwei unterschiedliche werte annehmen:

  • Cumulative: gibt den letzten kumulativen wert zurück, der in jedem zeitabschnitt verfügbar ist, bestimmt durch den wert {sampleSize}, im definierten {startDate} und {endDate} zeitfenster, für den angeforderten {dataType};
  • Delta: gibt das zurück unterschied zwischen dem letzten und dem ersten kumulativen wert, der in jedem zeitabschnitt verfügbar ist, bestimmt durch den wert {sampleSize}, im definierten {startDate} und {endDate} zeitfenster, für den angeforderten {dataType};

HINWEIS: für die kategorie kpis, gelten die obigen Überlegungen nur, wenn Energy-Based KPIs genannt werden. Weitere einzelheiten finden sie unter OpenAPIs Swagger.


Werfen wir einen blick auf einige anwendungsfälle, in denen wir eine anlage ( entityID: 12345678 ) mit einem einzelnen registrierten wechselrichtergerät ( entityID: 87654321 ):