Dados de Telemetria

Timeseries APIs

As Timeseries APIs são usadas principalmente quando você deseja obter, para um determinado tipo de dados, uma tendência detalhada, que permite realizar análises e representações em tempo real, para uma janela de tempo personalizada.

Esse tipo de APIs é sempre estruturado da seguinte forma:

As path, que permite apontar para os recursos desejados, sempre requer os seguintes parâmetros:

  • {power,frequency,wind,temperature,voltage,current,energy,kpis}: o tipo de recurso para apontar. Este parâmetro não especifica os dados reais que você deseja obter, mas a categoria geral à qual os dados desejados pertencem (observe que uma chamada de API só aceita uma categoria por vez, atualmente não é possível fazer chamadas BULK);
  • {entityID}: pode ser uma planta ou um dispositivo EID. No primeiro caso, o valor obtido leva em consideração a agregação de todos os dispositivos, para os quais esse valor existe, em nível de planta; no segundo caso, o valor obtido refere-se ao único dispositivo de interesse;
  • {dataType}: representa os dados reais a serem obtidos. Os dataTypes disponíveis variam de acordo com os recursos apontados, uma descrição detalhada está disponível diretamente no OpenAPIs Swagger;
  • {valuetype}: representa o tipo de critério de agregação com o qual os dados solicitados são a ser obtido.

As queries, que permitem filtrar os dados solicitados, sempre requerem os seguintes parâmetros:

  • {sampleSize}: define a taxa de amostragem com a qual obter dados. Quanto maior a taxa de amostragem, menor o comprimento do array de dados obtido em resposta (a sampleTime igual a Min5 terá mais amostras na matriz de resposta do que um sampleTime igual a Min15);
  • {startDate}: o limite inferior que permite definir o início da janela de tempo de interesse. Seu formato é sempre YYYYMMGG (eg: 20220321);
  • {endDate}: o limite superior que permite definir o fim da janela de tempo de interesse. Seu formato é sempre YYYYMMGG (eg: 20220322) e deve ser temporalmente posterior ao {startDate};
  • {timezone}: permite orientar a chamada da API para uma correta recuperação dos dados de acordo com o fuso horário solicitado. A escolha do fuso horário afeta as épocas retornadas no array de resposta.

Uma chamada de série temporal geralmente fornece um array de valores como resposta.
O comprimento da array depende diretamente do valor de {sampleSize} e da janela de tempo definida pelo {startDate} e {endDate}. Depois que uma janela de tempo de referência for definida, o valor {sampleSize} cortará essa janela com mais ou menos frequência, consequentemente, modificando o comprimento da matriz em resposta: quanto maior for {sampleSize}, quanto mais esparsa a janela de tempo for dividida, resultando em menos elementos na matriz de resposta.
Vale a pena ver um exemplo direto para explicar melhor esses conceitos.

O princípio da presença/ausência de determinados campos nos elementos de resposta de uma API de série temporal (expresso nas últimas linhas do exemplo acima) é de fundamental importância: não se aplica apenas em no caso de amostras futuras, mas também e sobretudo no caso de completa ausência de dados sobre Aurora Vision. Isso permite dar coerência às respostas obtidas das APIs de telemetrias, pois quando o value arquivado está presente, significa que esse valor realmente existe no Aurora Vision, caso contrário não estaria presente.

Assim como para chamadas agregadas, também para chamadas de série temporal o parâmetro {valuetype} é de grande importância, pois varia de acordo com a categoria dos recursos, portanto de {dataType}, a ser obtido e também é afetado pelo {sampleSize}.

Para um {dataType} pertencente à categoria {power,frequency,wind,temperature,voltage,current,kpis}, o {valueType} pode assumir três valores diferentes:

  • Maximum: retorna o valor máximo encontrado entre todas as amostras dentro de cada fatia de tempo, determinado pelo valor {sampleSize}, na janela de tempo definida {startDate} e {endDate}, para o solicitado {dataType};
  • Minimum: retorna o valor mínimo encontrado entre todas as amostras dentro de cada fatia de tempo, determinado pelo valor {sampleSize}, no janela de tempo definida {startDate} e {endDate}, para o solicitado {dataType};
  • Average: retorna o valor médio de todas as amostras dentro de cada fatia de tempo, determinado pelo valor {sampleSize}, no janela de tempo definida {startDate} e {endDate}, para o solicitado {dataType};

OBSERVAÇÃO: para a categoria kpis , as considerações acima são válidas somente se Power-Based KPIs são chamados. Para obter mais detalhes, consulte OpenAPIs Swagger.


Vamos dar uma olhada em alguns casos de uso, onde consideramcom um único dispositivo inversor registrado ( entityID : 87654321 ):

Para um {dataType} pertencente à categoria {energy,kpis}, o {valueType} pode assumir dois valores diferentes:

  • Cumulative: retorna o último valor cumulativo disponível dentro de cada fatia de tempo, determinado pelo valor {sampleSize}, no definido {startDate} e {endDate} janela de tempo, para o {dataType};
  • Delta: retorna o diferença entre o último e o primeiro valor cumulativo disponível dentro de cada fatia de tempo, determinado pelo valor {sampleSize}, no definido {startDate} e {endDate} janela de tempo, para o {dataType};

OBSERVAÇÃO: para a categoria kpis , as considerações acima são válidas somente se Energy-Based KPIs são chamados. Para obter mais detalhes, consulte OpenAPIs Swagger.


Vamos dar uma olhada em alguns casos de uso, onde consideramcom um único dispositivo inversor registrado ( entityID : 87654321 ):