Skip to main content

Titanium — Integração MQTT

Documento de uso interno/restrito

Este documento descreve a configuração da comunicação MQTT da controladora de acesso TITANIUM 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 TITANIUM 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: TITANIUM — Manual de Hardware v1.2 (firmware 1.0.19, 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.

config 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 Titanium é implementada como subclasse da Aurum: class Titanium extends Aurum em plugins/accelero/private/src/Accelero/Controladores/Titanium.php (tipo de controladora CONTROLADOR_TITANIUM = 6). Os comandos enviados à placa e o tratamento das mensagens que ela publica são herdados da Aurum, então, do lado do servidor, o protocolo da Titanium é o mesmo da Aurum: use o protocolo MQTT da Aurum como referência de mensagens (acc_req, log, keepalive, info, ins, del, load_cards, rex_server, getconfig/setconfig etc.).

TópicoDireçãoUso
facility/alias/toServidor → TitaniumComandos para a controladora
facility/broadcast/toServidor → todasMensagens de controle, como keepalive
facility/alias/from/#Titanium → servidorAcessos, logs, keepalive, info e respostas
facility/alias/status/#Titanium → brokerLiberado na ACL só para a Titanium; o ACCELERO não tem processador próprio para esse tópico

Permissões no broker (ACL): a Titanium sobrescreve a lista de tópicos da Aurum. Ao salvar uma Titanium com alias novo, o ACCELERO libera para o usuário MQTT da placa (o próprio alias): +/alias/from/#, +/alias/status/#, +/alias/to, +/server/to/#, +/io/alias/# e +/broadcast/to. Diferente da Aurum, entra status/# e não entra +/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_Titanium_Listeners.php).

Outras diferenças da Titanium em relação à Aurum, no código do servidor:

ItemTitanium
Upgrade remoto (upgrade)Usa o endpoint de firmware titanium (a Aurum usa aurum<versão major>)
Informações avançadasLê do metadata da placa timestamp, boardid, version, iplocal, ipdns, ipgateway, capcards, freecards e lastlist (datas no formato aammddhhmmss)
Abas de configuraçãoViews próprias: titaniumConfigNTP, titaniumConfigReaders, titaniumConfigRelaysTimers e titaniumConfigMode
O que o código do servidor não garante

Isto descreve o que o ACCELERO envia e espera. O que o firmware publica em status/# e eventuais comandos próprios da Titanium só aparecem no firmware, que não está no repositório.