Dane Telemetryczne

Timeseries APIs

Timeseries APIs szeregów czasowych są używane głównie, gdy chcesz uzyskać, dla określonego typu danych, szczegółowy trend, który pozwala na przeprowadzanie analiz i reprezentacji w czasie rzeczywistym dla dostosowanego okna czasowego.

Tego typu interfejsy APIs mają zawsze następującą strukturę:

Ten path, która umożliwia wskazanie żądanych zasobów, zawsze wymaga następujących parametrów:

  • {power,frequency,wind,temperature,voltage,current,energy,kpis}: typ zasobu, na który należy wskazać. Ten parametr nie określa rzeczywistych danych, które chcesz uzyskać, ale ogólną kategorię, do której należą żądane dane (proszę zauważyć, że wywołanie API akceptuje tylko jedną kategorię na raz, obecnie nie jest możliwe wykonywanie wywołań BULK);
  • {entityID}: może to być EID zakładu lub urządzenia. W pierwszym przypadku uzyskana wartość uwzględnia agregację wszystkich urządzeń, dla których ta wartość istnieje, na poziomie zakładu; w drugim przypadku uzyskana wartość odnosiła się do pojedynczego urządzenia będącego przedmiotem zainteresowania;
  • {dataType}: reprezentuje rzeczywiste dane do uzyskania. Dostępne dataTypes różnią się w zależności od wskazanych zasobów, szczegółowy opis jest dostępny bezpośrednio w OpenAPIs Swagger;
  • {valuetype}: reprezentuje typ kryterium agregacji, z którym żądane dane są do uzyskania.

Ten queries, które umożliwiają filtrowanie żądanych danych, zawsze wymagają następujących parametrów:

  • {sampleSize}: określa częstotliwość próbkowania, z jaką należy uzyskać dane. Im dłuższa częstotliwość próbkowania, tym krótsza długość tablicy danych uzyskanej w odpowiedzi (i sampleTime równa się Min5 będzie miał więcej próbek w tablicy odpowiedzi niż sampleTime równa się Min15);
  • {startDate}: dolna granica, która pozwala zdefiniować początek interesującego okna czasowego. Jego format to zawsze YYYYMMGG (eg: 20220321);
  • {endDate}: górna granica, która umożliwia zdefiniować koniec interesującego okna czasowego. Jego format to zawsze YYYYMMGG (eg: 20220322) i musi być czasowo następujący po {startDate};
  • {timezone}: pozwala poprowadzić wywołanie API do prawidłowego odzyskiwania danych zgodnie z żądaną strefą czasową.

Wywołanie serii czasowej zwykle dostarcza array wartości jako odpowiedź.
Długość tablicy zależy bezpośrednio od wartości {sampleSize} i od okna czasowego zdefiniowanego przez {startDate} i {endDate}. Po zdefiniowaniu referencyjnego okna czasowego wartość {sampleSize} będzie dzielić to okno z większą lub mniejszą częstotliwością, w ten sposób konsekwentnie modyfikując długość tablicy w odpowiedzi: im większy jest {sampleSize}, okno czasowe zostanie podzielone, co spowoduje zmniejszenie liczby elementów w tablicy odpowiedzi.
Warto spojrzeć na bezpośredni przykład, aby lepiej wyjaśnić te koncepcje.

Zasada obecności/nieobecności pewnych pól w elementach odpowiedzi interfejsu API serii czasowych (wyrażona w ostatnich wierszach powyższego przykładu) ma fundamentalne znaczenie: nie ma ona zastosowania tylko w w przypadku przyszłych próbek, ale także i przede wszystkim w przypadku całkowitego braku danych na temat Aurora Vision. Pozwala to zapewnić spójność odpowiedzi otrzymanych z interfejsów API telemetrii, ponieważ gdy podana jest podana value oznacza to, że ta wartość faktycznie istnieje w Aurora Vision, w przeciwnym razie nie byłaby obecna.

Podobnie jak w przypadku wywołań agregowanych, również w przypadku wywołań szeregów czasowych parametr {valuetype} ma ogromne znaczenie, ponieważ różni się w zależności od kategorii zasobów, a zatem {dataType}, który ma zostać uzyskany i na który ma również wpływ {sampleSize}.

Dla {dataType} należącego do kategorii {power,frequency,wind,temperature,voltage,current,kpis}, ten {valueType} może przyjmować trzy różne wartości:

  • Maximum: zwraca maksymalną wartość znalezioną wśród wszystkich próbek w każdym przedziale czasu, określoną przez wartość {sampleSize}, zdefiniowanym oknie czasowym {startDate} i {endDate} przedział czasowy dla żądanego {dataType};
  • Minimum: zwraca minimalną wartość znalezioną wśród wszystkich próbek wewnątrz każdego wycinka czasu, określoną przez wartość {sampleSize}, zdefiniowanym oknie czasowym {startDate} i {endDate} przedział czasowy dla żądanego {dataType};
  • Average: zwraca średnią wartość wszystkich próbek wewnątrz każdego wycinka czasu, określone przez wartość {sampleSize}, zdefiniowanym oknie czasowym {startDate} i {endDate} przedział czasowy dla żądanego {dataType};

UWAGA: dla kategorii kpis , powyższe uwagi są ważne tylko wtedy, gdy Nazywane są Power-Based KPIs. Więcej informacji znajdziesz w OpenAPIs Swagger.


Rzućmy okiem na kilka przypadków użycia, w których rozważamy instalację ( entityID: 12345678 ) z jednym zarejestrowanym falownikiem ( entityID : 87654321 ):

Dla {dataType} należącego do kategorii {energy,kpis}, ten {valueType} może przyjąć dwie różne wartości:

  • Cumulative: zwraca ostatnią skumulowaną wartość dostępną w każdym przedziale czasu, określoną przez wartość {sampleSize}, w zdefiniowanym oknie czasowym {startDate} i {endDate}, okno czasowe dla żądanego {dataType};
  • Delta: zwraca różnica między ostatnią a pierwszą skumulowaną wartością dostępną w każdym przedziale czasu, określona przez wartość {sampleSize}, w zdefiniowanym oknie czasowym {startDate} i {endDate}, okno czasowe dla żądanego {dataType};

UWAGA: dla kategorii kpis , powyższe uwagi są ważne tylko wtedy, gdy Nazywane są Energy-Based KPIs. Więcej informacji znajdziesz w OpenAPIs Swagger.


Rzućmy okiem na kilka przypadków użycia, w których rozważamy instalację ( entityID: 12345678 ) z jednym zarejestrowanym falownikiem ( entityID : 87654321 ):