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.
Fonte | Tag | Tipo de valor | Forma de envio |
---|---|---|---|
Entradas Digitais (DIs) | DI1 ... DI16 | bool | borda de subida e descida |
Pulsos das Entradas Digitais (DIs) | DI1p ... DI16p | int | trigger de tempo |
Horímetros das Entradas Digitais em nível baixo (DIs) | DI1hm0 ... DI16hm0 | int | trigger de tempo |
Horímetros das Entradas Digitais em nível alto (DIs) | DI1hm1 ... DI16hm1 | int | trigger de tempo |
Saídas Digitais (DOs) | DO1 ... DO16 | bool | borda de subida e descida |
Entradas Analógicas (AIs) | AI1 ... AI8 | int | trigger de tempo (webserver) |
Registradores digitais via modbus (MBs) | MB21 ... MB270 | bool | borda de subida e descida |
Registradores analógicos/inteiros via modbus (MIs) | MI1 ... MI100 | int/uint/double | trigger de tempo (webserver) |
Telemetria customizada via mhoJS | CT1 ... CT2048 | bool/int/uint/double | conforme programado no mhoJS |
Umidade interna | h | double | trigger de tempo (webserver) |
Temperatura interna | t | double | trigger de tempo (webserver) |
Índice de calor interno | hi | double | trigger de tempo (webserver) |
Operadora | op | string | na conexão |
Tipo de conexão | ct | int | na conexão |
Qualidade do sinal | sq | int | trigger 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.
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;