Skip to main content

Indium — Integração MQTT

Documento de uso interno/restrito

Este documento descreve a configuração da comunicação MQTT da controladora de acesso INDIUM com o servidor de controle de acesso. O conteúdo é de uso interno/restrito e não deve ser publicado no portal público.

A controladora INDIUM comunica-se com o servidor de controle de acesso através de um broker MQTT, que pode ser o Accelero Cloud ou um broker customizado. Este documento descreve os campos da tela de configuração MQTT e da tela de configuração do canal UDP disponíveis no modo de configuração da controladora.

Fonte: INDIUM — Manual de Hardware v4.9 (firmware 1.4.12, mai/2023), seção Comunicação.

Acesso à configuração​

As telas de comunicação são acessadas pelo navegador, no modo de configuração da controladora, pelo menu Comunic da tela inicial. Esse menu dá acesso às telas de Conexão, WiFi, Ethernet, MQTT e UDP:

Item do menuFunção
ConexãoTipo de mídia usado para conexão à rede (WiFi ou Ethernet) no modo operação
WiFiParâmetros da rede WiFi a ser usada no modo operação
EthernetParâmetros da rede cabeada (conector RJ45) usada no modo operação
MQTTParâmetros para acessar o servidor de comunicação MQTT (Broker)
UDPParâmetros do canal de comunicação UDP

Tela de configuração MQTT​

Nesta tela são informados os parâmetros de comunicação para estabelecer a conexão com o servidor de comunicação MQTT. Também são fornecidas informações sobre a instalação física do controlador.

tela mqtt

CampoDescrição
ConexãoDefine se a placa deve conectar-se ao broker MQTT Accelero Cloud, a um broker MQTT customizado ou a nenhum broker MQTT. Quando selecionada a opção "Automático", apenas o campo Facility Id deve ser preenchido.
Facility IdIdentificação única da instalação. Todos os controladores de uma instalação devem ter o mesmo Facility Id. Ex.: empresax, edificioz.
TLSMarque esta opção caso o controlador deva estabelecer a comunicação com o broker MQTT no modo seguro (Transport Layer Security). É necessário que o servidor permita este modo de comunicação.
BrokerEndereço URL do servidor de comunicação utilizado na instalação.
PortNúmero da porta de comunicação para comunicação com o broker MQTT.
User nameNome do usuário para acesso ao broker MQTT.
PasswordSenha de acesso ao broker MQTT.
Device IdIdentificação única e exclusiva de cada controlador na instalação. Ex.: catraca1, porta2.

Faça as alterações necessárias e clique em Salvar para confirmar.

Conexão via Accelero Cloud

Quando a conexão é feita através do Accelero Cloud, apenas o parâmetro Facility Id deve ser configurado, exatamente como definido no sistema de controle que administrará os controladores.

Tela de configuração UDP​

Nesta tela são informados os parâmetros de comunicação para estabelecer conexão no protocolo UDP. Através desta conexão, outros equipamentos podem enviar informações para o controlador, tais como cartões/tags lidos em outros dispositivos.

CampoDescrição
PortaPorta de comunicação a ser utilizada. Se configurada com o número de porta 0 (zero), o serviço fica desligado.
IP fixo recomendado para UDP

Quando se utiliza a conexão UDP, é recomendável que o endereço IP do controlador seja fixo, pois o endereço IP deverá ser configurado no equipamento que enviará dados por esta conexão.

Protocolo MQTT (tópicos e mensagens)​

No ACCELERO, a Indium é implementada como subclasse da Aurum: class Indium extends Aurum em plugins/accelero/private/src/Accelero/Controladores/Indium.php (tipo de controladora CONTROLADOR_INDIUM = 5). A classe só sobrescreve a tela de edição, o upgrade de firmware, os dados do dashboard e a checagem de licença. Todo o resto, inclusive os tópicos MQTT, os comandos enviados à placa e o tratamento das mensagens que ela publica, é herdado da Aurum.

Por isso, do lado do servidor, o protocolo da Indium é o mesmo da Aurum: use o protocolo MQTT da Aurum como referência de tópicos e mensagens (acc_req, log, keepalive, info, ins, del, load_cards, rex_server, getconfig/setconfig etc.).

TópicoDireçãoUso
facility/alias/toServidor → IndiumComandos para a controladora
facility/broadcast/toServidor → todasMensagens de controle, como keepalive
facility/alias/from/#Indium → servidorAcessos, logs, keepalive, info e respostas

Permissões no broker (ACL): ao salvar uma Indium com alias novo, o ACCELERO libera para o usuário MQTT da placa (o próprio alias) os mesmos tópicos da Aurum: +/alias/from/#, +/alias/to, +/server/to/#, +/io/alias/#, +/broadcast/to e +/location/alias/#. Ao excluir a controladora, o usuário é removido da tabela mqtt_users. Com o módulo offline ativo, essa gestão de ACL não é feita (Controlador_Indium_Listeners.php).

Diferenças da Indium em relação à Aurum, no código do servidor:

ItemIndium
Upgrade remoto (upgrade)Usa o endpoint de firmware indium (a Aurum usa aurum<versão major>). A opção só aparece na tela para firmware acima de 1.4.0
Abas de configuraçãoViews próprias: indiumConfigNTP, indiumConfigReaders, indiumConfigRelaysTimers e indiumConfigMode
LicençaContada à parte, no item Indium da licença
O que o código do servidor não garante

Isto descreve o que o ACCELERO envia e espera. Comandos que o firmware da Indium aceite além dos da Aurum, ou campos que ele ignore, só aparecem no firmware, que não está no repositório.