Estrutura
Este guia descreve os passos necessários para integração através do MQTT, proporcionando uma comunicação eficiente e confiável entre o MHO Cloud e o sistema compatível, disponibilizando para subscrição os dados coletados dos dispositivos integrados ao MHO Cloud.
1 Pré-requisitos
O broker MHO Cloud utiliza o MQTT v5, com compatibilidade com versões anteriores.
Antes de começar a integração, certifique-se de ter o seguinte:
- Um sistema compatível com MQTT que possa se conectar em um broker como client;
- Conhecimento básico sobre tópicos MQTT e QoS (Qualidade de Serviço);
- Credenciais MQTT de subscrição do broker MHO Cloud (solicite ao fornecedor da solução MHO Cloud).
2 Arquitetura
Todos os seus dispositivos que já estão conectados ao MHO Cloud permanecerão da mesma forma. A integração será um client do broker MHO Cloud, sendo a integração responsável por solicitar os tópicos de interesse. Quando uma mensagem de interesse chegar o broker irá enviar as informações para a integração.
3 Credenciais
As credenciais da integração devem ser solicitadas ao fornecedor da solução MHO Cloud. O seu client poderá se subscrever apenas em tópicos dos dispositivos de sua propriedade ou que tenham relação com o seu contexto.
Dados de acesso:
- broker:
mqtt.mhocloud.com
- porta MQTT:
1883
- porta MQTTs:
8883
- credenciais: conforme definido abaixo
3.1 Básica
Autenticação de um fator, baseado na combinação de clientID, Usuario e/ou Senha. Qualquer combinação de 1 ou mais é possível.
Utilizar uma autenticação de Usuário e Senha costuma ser a melhor forma.
3.2 Certificado X.509
Conexão segura através de autenticação de dois fatores com certificado X.509. Nesse método o usuário deve solicitar os detalhes de autenticação do certificado a ser utilizado, bem como sua renovação quando necessário.
4 Troca de Dados
A troca de dados acontece por meio de tópicos MQTT, onde a integração deve se subscrever (subscribe) nos tópicos de interesse para ler os dados dos equipamentos e deve publicar (publish) nos tópicos de interesse para escrever/comandar os equipamentos.
Os tópicos carregam a identificação do dono do equipamento e a identificação do equipamento. Nesta documentação os tópicos serão resumidos pelas seguintes tags: myid
e mydevice
.
myid
: ID global dos dispositivos conforme propriedade definida no MHO Cloud;mydevice
: ID do dispositivo que está transmitindo telemetria;
Como obter id do cliente (myid)
Dentro do seu contexto MHO Cloud.
- Acesse o menu
Grupo de Clientes
; - Acesse a pasta desejada;
- Clique na entidade desejada;
- Clique no botão
Copiar ID do cliente
;
Como obter id do dispositivo (mydevice)
Dentro do seu contexto MHO Cloud.
- Acesse o menu
Grupo de Dispositivos
; - Acesse a pasta desejada;
- Clique na entidade desejada;
- Clique no botão
Copiar ID do dispositivo
;
4.1 Tópicos de Subscribe
A integração client deve se subscrever nos tópicos de interesse para obter dados de telemetria.
Os tópicos da integração são definidos da seguinte forma (esses tópicos definidos neste escopo não dependem de como o MQTT do equipamento funciona).
Todos os tópicos serão disponibilizados da seguinte forma:
mho/myid/mydevice/telemetryKey
telemetryKey
: tag de telemetria, podendo ser uma IO, memórias de protocolo, telemetrias customizadas ou atributos do equipamento;
As mensagems terão payload direta em formatos bool
ou float
ou int
ou string
.
myid
: ID global dos dispositivos conforme propriedade definida no MHO Cloud;mydevice
: ID do dispositivo que está transmitindo telemetria;telemetryKey
: tag de telemetria;
Status Gerais
mho/myid/mydevice/status
Resposta:
true/false
Entradas Digitais
mho/myid/mydevice/DI1
...
mho/myid/mydevice/DI16
Resposta:
bool
Entradas Analógicas
mho/myid/mydevice/AI1
...
mho/myid/mydevice/AI8
Resposta:
int
Dados interpolados serão interpretados conforme tag de telemetria salva, por exemplo uma tag salva como "Meu dado interpolado":
mho/myid/mydevice/Meu dado interpolado
Resposta:
float
Saídas Digitais
Status atual das saídas digitais. Esse dado também é útil para recebimento de feedback quando um comando for enviado.
mho/myid/mydevice/DO1
...
mho/myid/mydevice/DO16
Resposta:
bool
Respostas de RPC
Receber resposta do equipamento ao comando RPC solicitado.
mho/rpcresponse/myid/mydevice
Resposta:
string Erro/Sucesso
4.2 Tópicos de Publish
A integração client deve publicar valores nos tópicos de interesse para setar valores ou enviar dados para o sistema.
Em processo de documentação...
5 Resumo
No geral podemos adotar os seguintes passos para realizar a integração. Nos próximos artigos temos exemplos de integração com softwares comerciais.
- 1: Definir a conexão com o broker:
- Informe o endereço do broker:
mqtt.mhocloud.com
- Informe a porta a ser utilizada: MQTT
1883
ou MQTTs8883
- Informe configurações adicionais: Tempo de timeout, keep alive, ... etc
- Informe as credenciais de conexão
- Informe o endereço do broker:
- 2: Buscar datasources se inscrevendo nos tópicos de interesse, conforme definições do software a ser integrado
- 3: Integrar o datasource conforme conforme definições do software a ser integrado