Datos de Telemetrías

Timeseries APIs

Las Timeseries APIs se utilizan principalmente cuando desea obtener, para un determinado tipo de datos, una tendencia detallada, que le permite realizar análisis y representaciones en tiempo real, para una ventana de tiempo personalizada.

Este tipo de APIs siempre se estructuran de la siguiente manera:

El path, que le permite apuntar a los recursos deseados, siempre requiere los siguientes parámetros:

  • {power,frequency,wind,temperature,voltage,current,energy,kpis}: el tipo de recurso al que apuntar. Este parámetro no especifica los datos reales que desea obtener, sino la categoría general a la que pertenecen los datos deseados (tenga en cuenta que una llamada API solo acepta una categoría a la vez, actualmente no es posible realizar llamadas BULK);
  • {entityID}: puede ser un EID de planta o de dispositivo. En el primer caso, el valor obtenido tiene en cuenta la agregación de todos los dispositivos, para los que existe ese valor, a nivel de planta; en el segundo caso, el valor obtenido se refiere al único dispositivo de interés;
  • {dataType}: representa los datos reales que se obtendrán. Los dataTypes disponibles varían según los recursos señalados, una descripción detallada está disponible directamente en OpenAPIs Swagger;
  • {valuetype}: {power,frequency,wind,temperature,voltage,current,energy,kpis}: el tipo de recurso al que apuntar. Este parámetro no especifica los datos reales que desea obtener, sino la categoría general a la que pertenecen los datos deseados (tenga en cuenta que una llamada API solo acepta una categoría a la vez, actualmente no es posible realizar llamadas BULK);
  • {entityID}: puede ser un EID de planta o de dispositivo. En el primer caso, el valor obtenido tiene en cuenta la agregación de todos los dispositivos, para los que existe ese valor, a nivel de planta; en el segundo caso, el valor obtenido se refiere al único dispositivo de interés;
  • {dataType}: representa los datos reales que se obtendrán. Los dataTypes disponibles varían según los recursos señalados, una descripción detallada está disponible directamente en OpenAPIs Swagger;
  • {valuetype}: representa el tipo de criterio de agregación con el que se solicitan los datos a obtener.

Las queries, que permiten filtrar los datos solicitados, requieren siempre los siguientes parámetros:

  • {sampleSize}: define la frecuencia de muestreo con la que se obtienen los datos. Cuanto mayor sea la frecuencia de muestreo, menor será la longitud de la matriz de datos obtenida en respuesta (a sampleTime igual a Min5 tendrá más muestras en la matriz de respuesta que un sampleTime igual a Min15);
  • {startDate}: el límite inferior que permite definir el comienzo de la ventana de tiempo de interés. Su formato siempre es YYYYMMGG (eg: 20220321);
  • {endDate}: el límite superior que permite definir el final de la ventana de tiempo de interés. Su formato es siempre YYYYMMGG (eg: 20220322) y debe ser temporalmente posterior a {startDate};
  • {timezone}: {startDate}: el límite inferior que permite definir el comienzo de la ventana de tiempo de interés. Su formato siempre es YYYYMMGG (eg: 20220321);
  • {endDate}: el límite superior que permite definir el final de la ventana de tiempo de interés. Su formato es siempre YYYYMMGG (eg: 20220322) y debe ser temporalmente posterior a {startDate};
  • {timezone}: permite guiar la llamada API a una correcta recuperación de datos según la zona horaria solicitada. La elección de la zona horaria afecta las épocas devueltas dentro de l’array de respuesta.

Una llamada de serie temporal generalmente proporciona un array de valores como respuesta.
La longitud de l’array depende directamente del valor {sampleSize} y de la ventana de tiempo definida por el parámetros {startDate} y {endDate} parameters. Una vez que se ha definido una ventana de tiempo de referencia, el valor {sampleSize} dividirá esa ventana con más o menos frecuencia, modificando así la longitud de l’array en respuesta: cuanto mayor sea {sampleSize} valor, la ventana de tiempo se dividirá escasamente, lo que dará como resultado menos elementos en la matriz de respuesta.
Vale la pena mirar un ejemplo directo para explicar mejor estos conceptos.

El principio sobre la presencia/ausencia de ciertos campos en los elementos de respuesta de una timeseries API (expresado en las últimas líneas del ejemplo anterior) es de fundamental importancia: no se aplica solo en el caso de futuras muestras, pero también y sobre todo en el caso de ausencia total de datos sobre Aurora Vision. Esto permite dar coherencia a las respuestas obtenidas de las API de telemetría, ya que cuando el value rchivado está presente, significa que ese valor realmente existe en Aurora Vision, de lo contrario no estaría presente.

Como fue el caso de las llamadas agregadas, también para las llamadas de series temporales el parámees de gran importancia porque varía según la categoría de recursos, por lo tanto de {dataType}, que se obtendrá y también se ve afectado por el {sampleSize}.

Para un {dataType} perteneciente a la categoría {power,frequency,wind,temperature,voltage,current,kpis}, el {valueType} puede asumir tres valores diferentes:

  • Maximum: devuelve el valor máximo encontrado entre todas las muestras dentro de cada intervalo de tiempo, determinado por el valor {sampleSize}, en el definido {startDate} y {endDate} ventana de tiempo, para el {dataType};
  • Minimum: devuelve el valor mínimo encontrado entre todas las muestras dentro de cada intervalo de tiempo, determinado por el valor {sampleSize}, en el definido {startDate} y {endDate} ventana de tiempo, para el {dataType};
  • Average: devuelve el valor promedio de todas las muestras dentro de cada intervalo de tiempo, determinado por el valor {sampleSize}, en el definido {startDate} y {endDate} ventana de tiempo, para el {dataType};

NOTA: para la categoría kpis , las consideraciones anteriores son válidas solo si se denominan Power-Based KPIs. Para obtener más detalles, consulte OpenAPIs Swagger.


Echemos un vistazo a algunos casos de uso, donde consideramos una planta ( entityID: 12345678 ) con un solo dispositivo inversor registrado ( entityID : 87654321 ):

Para un {dataType} perteneciente a la categoría {energy,kpis}, el {valueType} puede asumir dos valores diferentes:

  • Cumulative: devuelve el último valor acumulativo disponible dentro de cada segmento de tiempo, determinado por el valor {sampleSize}, en el definido {startDate} y {endDate} ventana de tiempo, para el {dataType};
  • Delta: devuelve el diferencia entre el último y el primer valor acumulativo disponible dentro de cada segmento de tiempo, determinado por el valor {sampleSize}, en el definido {startDate} y {endDate} ventana de tiempo, para el {dataType};

NOTA: para la categoría kpis , las consideraciones anteriores son válidas solo si se denominan Energy-Based KPIs. Para obtener más detalles, consulte OpenAPIs Swagger.


Echemos un vistazo a algunos casos de uso, donde consideramos una planta ( entityID: 12345678 ) con un solo dispositivo inversor registrado ( entityID : 87654321 ):