Selenium — Integração MQTT
Este documento descreve a configuração da comunicação MQTT dos gateways de elevador SELENIUM com o sistema de controle de acesso. O conteúdo é de uso interno/restrito e não deve ser publicado no portal público.
Os gateways de elevador SELENIUM comunicam-se com o sistema Accelero 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 disponível no modo de configuração do gateway.
A tela de configuração MQTT é idêntica nas três variantes do Selenium, por isso a documentação é consolidada:
| Variante | Aplicação |
|---|---|
| SELENIUM_AS | Gateway de elevador Atlas Schindler (chamada antecipada) |
| SELENIUM_TK | Gateway de elevador ThyssenKrupp (chamada antecipada) |
| SELENIUM_KB | Gateway de elevador — controle de uso de botões |
Fonte: SELENIUM — Manuais de Hardware (AS v1.4, TK v1.7 e KB; firmware 2023), seção Comunicação → MQTT. Os campos da tela são os mesmos nas três variantes.
Acesso à configuração
O gateway é configurado através de um navegador (browser). Para acessar a configuração coloque o gateway no modo Configuração (ligue o equipamento, aguarde a entrada em operação normal e pressione o botão BOOT por 6 segundos), conecte-se à rede WiFi do gateway (SSID no padrão selenium<código>, ex.: selenium7512208F) e direcione o navegador para o endereço 192.168.4.1. Os valores padrão de login são usuário admin e senha seleniumpwd.
A tela inicial de configuração apresenta o menu Comunic, que dá acesso às telas de configuração de comunicação de rede, entre elas a tela MQTT:
| Item da tela Comunicação | Função |
|---|---|
| Conexão | Tipo de mídia usado para conexão à rede (WiFi ou Ethernet) no modo operação |
| WiFi | Parâmetros da rede WiFi a ser usada no modo operação |
| Ethernet | Parâmetros da rede cabeada (RJ45) a ser usada no modo operação |
| MQTT | Parâmetros para acessar o servidor de comunicação MQTT (Broker) |
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 gateway.

| Campo | Descrição |
|---|---|
| Conexão | Define 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 Id | Identificação única da instalação. Todos os gateways de uma instalação devem ter o mesmo Facility Id. Ex.: empresax, edificioz. |
| TLS | Marque esta opção caso o gateway 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. |
| Broker | Endereço URL do servidor de comunicação utilizado na instalação. |
| Port | Número da porta de comunicação para comunicação com o broker MQTT. |
| User name | Nome do usuário para acesso ao broker MQTT. |
| Password | Senha de acesso ao broker MQTT. |
| Device Id | Identificação única e exclusiva de cada gateway na instalação. Ex.: catraca1, porta2. |
Faça as alterações necessárias e clique em Salvar para confirmar.
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 gateways.
Protocolo MQTT (tópicos e mensagens)
O protocolo não é o das controladoras (Aurum, Indium, Titanium). No ACCELERO, o Selenium é um gateway de comunicação do tipo elevador (CommunicationGateway, módulo elevator), identificado pelo número de série e não por um alias de controladora. Todos os tópicos ficam sob facility/elevator/<serial>/. O que segue foi levantado do código do servidor (plugins/accelero); o firmware do Selenium não está no repositório.
O modelo do gateway fica no metadata do cadastro e define o tratamento:
| Modelo no metadata | Variante | Tratamento no ACCELERO |
|---|---|---|
atlas | SELENIUM_AS (Atlas Schindler) | Chamada antecipada (ElevatorPrecallHandler) |
thyssenkrupp | SELENIUM_TK (ThyssenKrupp) | Chamada antecipada (ElevatorPrecallHandler) |
rubidium | SELENIUM_KB (botoeira) | Autorização de andares (ElevatorPanelAuthorization) e sincronização de pessoas |
Tópicos
| Tópico | Direção | Mensagem |
|---|---|---|
facility/elevator/<serial>/to | Servidor → Selenium | elevator_req (chamada antecipada), ins e del (pessoas, só KB) |
facility/elevator/<serial>/from/keepalive | Selenium → servidor | Keepalive com o estado do elevador |
facility/elevator/<serial>/from/ack/error | Selenium → servidor | Falha de uma chamada |
Permissões no broker (ACL): o usuário MQTT do gateway é <cgwType>gateway<serial> (tipo do cadastro + gateway + número de série) e recebe o tópico +/elevator/<serial>/# (ElevatorGateway::getACLTopics).
Chamada antecipada (elevator_req), modelos AS e TK
Quando uma pessoa passa num canal de controladora marcado para chamar elevador (com atraso configurado e andar de destino na pessoa), o motor de acesso publica, para cada gateway ligado ao canal:
{
"cmd": "elevator_req",
"msgid": 12345,
"device": "<ID do dispositivo no gateway, configurado no canal>",
"org": "<andar de origem do canal>",
"dst": "<andar de destino da pessoa>",
"timestamp": "aammddhhmmss"
}
| Campo | Origem no ACCELERO |
|---|---|
device | cocElevatorDeviceID do canal para aquele gateway. Sem esse campo, nada é enviado |
org | Andar de origem do canal (cocElevatorOriginFloor) |
dst | Primeiro andar de destino da pessoa |
O atraso configurado no canal volta na resposta de acesso à controladora (delay).
Sincronização de pessoas (ins / del), modelo KB
Com o módulo elevator ativo, toda alteração de pessoa feita pela interface gera, para cada gateway de modelo rubidium (ou cobalt), um del seguido de um ins. A exclusão da pessoa gera só o del. Alterações vindas do motor de acesso não disparam a sincronização (Elevator_Listeners.php).
{ "cmd": "ins", "msgid": 4021, "timestamp": "aammddhhmmss", "uid": 123456, "floors": ["3", "4"] }
{ "cmd": "del", "msgid": 4022, "timestamp": "aammddhhmmss", "uid": 123456 }
uid é o pesID da pessoa e floors vem do campo de andar padrão da pessoa (lista JSON ou texto separado por vírgula). Pessoa sem andar padrão não gera ins.
Keepalive
O ACCELERO lê do payload timestamp (aammddhhmmss, vira a última comunicação) e elevator_sts (verdadeiro/falso, vira o status de comunicação com o elevador) e guarda no cache elevator_gateway_status, de onde sai a coluna de status da lista de gateways.
Falha de chamada (from/ack/error)
Se o payload trouxer status igual a false, o ACCELERO abre uma ocorrência do tipo ELEVATOR_CALL_FAIL (201) com o device e o andar dst na descrição. Com status verdadeiro ou ausente, a mensagem é ignorada.
Mensagens que o Selenium publique além dessas (por exemplo, respostas de ins/del) não têm processador no ACCELERO e não aparecem aqui. Confirme no firmware antes de integrar um sistema de terceiros.