Pular para o conteúdo principal

Telemetria

Conforme visto na estrutura MQTT, as mensagens de telemetria são enviadas em payloads JSON e possuem uma tag de telemetria e seu respectivo valor. Aqui serão listados os tipos de telemetria e como o dado é enviado ao servidor.

Tipos de dados

  • bool: dados booleanos/binários;
  • int: dados inteiros;
  • uint: dados inteiros positivos;
  • string: palavras/frases;
  • double: números com vírgula com precisão de 64 bits;

Formas de envio

  • Borda de subida e descida: Nessa situação os dados são enviados sempre que uma mudança é detectada;
  • Trigger de tempo: Nessa situação os dados são enviados a cada intervalo de tempo previamente estabelecido;
  • Conexão: Envia os dados sempre que se conecta no broker;

Os dados enviados em borda de subida e descida também são enviados no momento da conexão ao broker, utilizando em um payload diversas tags de telemetria.

FonteTagTipo de valorForma de envio
Entradas Digitais (DIs)DI1 ... DI16boolborda de subida e descida
Pulsos das Entradas Digitais (DIs)DI1p ... DI16pinttrigger de tempo
Horímetros das Entradas Digitais em nível baixo (DIs)DI1hm0 ... DI16hm0inttrigger de tempo
Horímetros das Entradas Digitais em nível alto (DIs)DI1hm1 ... DI16hm1inttrigger de tempo
Saídas Digitais (DOs)DO1 ... DO16boolborda de subida e descida
Entradas Analógicas (AIs)AI1 ... AI8inttrigger de tempo (webserver)
Registradores digitais via modbus (MBs)MB21 ... MB270boolborda de subida e descida
Registradores analógicos/inteiros via modbus (MIs)MI1 ... MI100int/uint/doubletrigger de tempo (webserver)
Telemetria customizada via mhoJSCT1 ... CT2048bool/int/uint/doubleconforme programado no mhoJS
Umidade internahdoubletrigger de tempo (webserver)
Temperatura internatdoubletrigger de tempo (webserver)
Índice de calor internohidoubletrigger de tempo (webserver)
Operadoraopstringna conexão
Tipo de conexãoctintna conexão
Qualidade do sinalsqinttrigger de tempo

As telemetrias são enviadas na tag DIXhm0 para o horímetro de nível baixo e DIXhm1 para o horímetro de nível alto (sendo X o número da respectiva DI).

Exemplos de payloads

Exemplo 1

Dado transmitido durante comunicação normal

Nesse payload o dado enviado é o dado referente ao seu estado atual, portanto não existe a informação de timestamp, essa informação deve ser fornecida pelo servidor.

{"DI5": true}

Exemplo 2

Dado armazenado em memória retentiva durante desconexão e transmitido quando a comunicação foi normalizada. Nesse payload o dado enviado é o dado referente a um evento salvo na memória retentiva, enquanto o equipamento esteve desconectado, portanto o equipamento informa o timestamp que o evento aconteceu.

dica

O servidor deve formatar esse horário para o horário local do usuário de acordo com o timezone desejado.

{
"ts": 1696979697,
"values": {
"DI5": true
}
}

Possíveis Valores

ct (tipo de conexão)

  • 0: ethernet;
  • 1: wi-fi;
  • 5: rede celular;

sq (qualidade do sinal)

  • 0: muito ruim;
  • 1: ruim;
  • 2: bom;
  • 3: muito bom;
  • 4: excelente;