Conectando um Cliente MQTT ao Portal
BROKER MQTT do Portal
O BROKER MQTT do Portal de Telemetria é o intermediário que permite a integração de equipamentos que utilizam o protocolo MQTT com os Conectores previamente cadastrados no Portal configurados com este protocolo.
Portanto, abaixo serão descritas as informações necessárias para que um equipamento que implemente o protocolo MQTT, no caso, um Cliente MQTT, possa se integrar ao Portal de Telemetria.
Informações de acesso ao BROKER
Para que um Cliente MQTT se conecte ao BROKER MQTT do Portal, primeiramente deve-se utilizar as seguintes informações de acesso ao Broker:
Identificação |
IP |
URL |
Porta |
Porta Segura |
|---|---|---|---|---|
TCP |
107.21.253.4 |
broker.mqtt.hitecnologia.com.br |
1883 |
8883 |
Web Socket |
107.21.253.4 |
broker.mqtt.hitecnologia.com.br |
1884 |
8884 |
Atenção
Para utilização de uma conexão criptografada através de uma porta segura com o Broker, o Cliente MQTT deve utilizar o certificado disponível neste link.
Conexão Segura
Para estabelecer uma conexão criptografada (TLS/SSL) com o Broker MQTT do Portal de Telemetria, é necessário seguir as orientações abaixo:
Utilize a URL do broker: A conexão segura deve ser feita utilizando o nome do host broker.mqtt.hitecnologia.com.br. Não utilize o endereço IP direto, pois isso impedirá a validação correta do certificado SSL. O certificado SSL utilizado pelo broker depende da identificação do host via SNI (Server Name Indication), uma extensão do protocolo TLS. Quando o IP é utilizado diretamente, essa identificação falha, tornando a conexão insegura ou inválida.
Certificado do broker: O cliente MQTT deve estar configurado para aceitar conexões criptografadas e utilizar o certificado raiz, disponível no seguinte link: Download do Certificado SSL do Broker.
Recomendamos testar previamente a conexão segura em ambientes de desenvolvimento para validar a compatibilidade do cliente MQTT utilizado.
Autenticação de um Cliente MQTT
Além das informações de conexão, o Cliente MQTT deve se autenticar no BROKER do Portal para que conexão seja estabelecida com sucesso.
Para isso, é necessário utilizar uma Chave de Acesso e um Identificador (Client ID) disponibilizados no cadastro de um Conector, conforme detalharemos a seguir.
Chave de Acesso
A autenticação no BROKER do Portal ocorre por meio de uma Chave de Acesso, que deve ser informada como o usuário da conexão (username).
A Chave de Acesso é vinculada ao Contrato no qual o Conector está registrado.
Ela é única e identifica o Cliente MQTT autorizado a se conectar ao Portal.
Para mais informações sobre como obter ou configurar uma Chave de Acesso, acesse: Chaves de Acesso ou Configurando Chaves de Acesso.
Identificador (Client ID)
Além da Chave de Acesso, cada Cliente MQTT deve informar um ID de Cliente MQTT exclusivo, que corresponde ao campo client_id na conexão.
Este ID é atribuído individualmente a cada Conector.
Também será utilizado como base para construção dos tópicos MQTT, garantindo o roteamento correto das mensagens.
Exemplo de configuração de um Conector MQTT:
Configurando a Conexão
Com base nas informações acima, a tabela a seguir resume os parâmetros exigidos para conectar e autenticar um Cliente MQTT ao BROKER do Portal:
Parâmetro |
Valor |
|---|---|
IP ou URL |
107.21.253.4 ou broker.mqtt.hitecnologia.com.br |
Porta |
1883 ou 8883( Conexão Segura ) |
Nome do usuário |
Chave de Acesso (obtida no formulário de cadastro do Conector ou na página de configurações do Contrato) |
Senha |
Qualquer caractere - não utilizado |
ID do cliente |
Identificador (Client ID) (obtido no formulário de cadastro do Conector) |
Formulário de Instruções para Conexão
No cadastro do Conector MQTT, também é disponibilizado um botão chamado Instruções para conexão, no qual leva o usuário para um formulário interativo onde é possível definir as configurações desejadas para a conexão do Cliente MQTT ao Portal.
Com base nessas informações, é apresentado um JSON consolidando todas as informações, que pode ser facilmente copiado ou baixado para simplificar o processo de configuração:
Fig. 21 Exemplo de configuração para conexão não segura com o broker do Portal.
Por padrão, são apresentadas as configurações mais comuns de acesso ao broker do Portal, considerando a conexão em seu endereço IP(107.21.253.4) e na Porta não segura(1883).
Outro exemplo é selecionar as opções de conexão segura via a URL do broker:
Fig. 22 Exemplo de configuração para conexão segura com o broker do Portal.
Neste caso, o host da conexão é a URL do broker do Portal (broker.mqtt.hitecnologia.com.br) e utiliza-se a Porta Segura(8883). Neste caso, é necessário fazer o download do certificado através do botão Baixar certificado e utilizá-lo no Cliente MQTT para conexão segura com o broker.
Já abaixo, segue um outro exemplo com uma chamada de conexão utilizando um cliente Javascript MQTT:
var client = mqtt.connect(
'broker.mqtt.hitecnologia.com.br', {
clientId: '9a3547bc',
username: '6f27b6700ede4a0db47560db0cf7d3de',
password: ''
}
)
Atenção
O BROKER MQTT do Portal permite a utilização de apenas uma conexão MQTT simultânea por ID de Cliente, ou seja, somente uma conexão por Conector. Caso seja identificada uma nova conexão utilizando o mesmo ID de Cliente(Conector) e a mesma seja autenticada com sucesso, a conexão anterior será fechada.
Devido a diversos fatores que envolvem o acesso a um servidor na nuvem, como instabilidade da internet, manutenções, etc, é fundamental que o Cliente MQTT implemente uma rotina consistente e temporizada de reconexão com o BROKER MQTT do Portal em caso de perda de conexão.
Mensagem de Última Vontade e Testamento (LWT)
A implementação MQTT do Portal de Telemetria permite que o Cliente MQTT que se autentique no BROKER MQTT do Portal especifique uma mensagem de Última Vontade e Testamento.
Porém, é obrigatório que esta mensagem seja definida no tópico IDENTIFICADOR-MQTT-CONECTOR/lwt.
Exemplo:
9a3547bc/lwt
A seção sobre uma Mensagem de Última Vontade e Testamento explica com mais detalhes a utilização deste tipo de mensagem.
Atenção
Caso se utilize uma definição de tópico diferente, a mensagem não será enviada pelo BROKER MQTT do Portal.