Pular para o conteúdo principal

Estrutura

Tópicos

Cada equipamento terá o seu tópico de envio.

mho/keeper/v1/[devicename]/...

Onde [devicename] é o nome do dispositivo definido nas configurações MQTT, para os exemplos desse guia será utilizado mydevice. O payload para Telemetria e Atributos é em formato JSON, já o payload RPC pode ser também uma string, além de JSON.

Os payloads podem ter os seguintes formatos:

  • JSON: Telemetria, atributos e RPC;
  • String: RPC (quando exige uma resposta simples).

Quando o payload for em JSON podemos ter os seguintes valores para as tags de telemetria:

  • String;
  • Booleanos;
  • Números inteiros;
  • Números de precisão.
atenção

Alguns brokers podem recusar conexões caso os tópicos contenham caracteres especiais, evite utilizar símbolos como % # $. Em caso de utilização de espaço, o tópico terá "_" no lugar do espaço. Por exemplo: "my device 1" será definido como my_device_1.


Atributos

Utilizado para informar ao servidor alguns parâmetros do equipamento. Os dados são enviados ao broker no seguinte tópico:

mho/keeper/v1/mydevice/attributes

O payload enviado nesse tópico é um arquivo JSON com os atributos e seus respectivos valores:

{"key1": value1, "key2": value2, ...}

Telemetria

Utilizado para enviar dados de telemetria lidos pelas portas do equipamento.

Os dados são enviados ao broker no seguinte tópico:

mho/keeper/v1/mydevice/telemetry

Payloads sem timestamp:

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:

{"key1": value1, "key2": value2, ...}

Payloads com timestamp:

Nesse payload o dado enviado é o dado referente a um evento salvo na memória retentiva, enquanto o equipamento esteve desconectado:

{
"ts": timestampinMilliSecconds,
"values": {
"key1": value1,
"key2": value2
}
}

RPC

Utilizado para comandos remotos e troca de informação de configuração com o equipamento.

Os comandos devem ser enviados no seguinte tópico, conforme API:

mho/keeper/v1/mydevice/rpc/request

O payload enviado nesse tópico é um arquivo JSON com os atributos e seus respectivos valores ou um texto simples em string:

{"method": "myMethodName", "params": "myMethodValue"}
{"method": "myMethodName", "params": {"param1": "value1", "param2": "value2", ...}}

As repostas são enviadas ao broker no seguinte tópico:

mho/keeper/v1/mydevice/rpc/response

O payload enviado nesse tópico é um arquivo JSON com os atributos e seus respectivos valores ou um texto simples em string:

{"key1": value1, "key2": value2, ...}

ou

"resposta"