Skip to main content

Selenium — Integração MQTT

Documento de uso interno/restrito

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:

VarianteAplicação
SELENIUM_ASGateway de elevador Atlas Schindler (chamada antecipada)
SELENIUM_TKGateway de elevador ThyssenKrupp (chamada antecipada)
SELENIUM_KBGateway 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çãoFunçã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 (RJ45) a ser usada no modo operação
MQTTParâ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.

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 gateways de uma instalação devem ter o mesmo Facility Id. Ex.: empresax, edificioz.
TLSMarque 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.
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 gateway 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 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 metadataVarianteTratamento no ACCELERO
atlasSELENIUM_AS (Atlas Schindler)Chamada antecipada (ElevatorPrecallHandler)
thyssenkruppSELENIUM_TK (ThyssenKrupp)Chamada antecipada (ElevatorPrecallHandler)
rubidiumSELENIUM_KB (botoeira)Autorização de andares (ElevatorPanelAuthorization) e sincronização de pessoas

Tópicos​

TópicoDireçãoMensagem
facility/elevator/<serial>/toServidor → Seleniumelevator_req (chamada antecipada), ins e del (pessoas, só KB)
facility/elevator/<serial>/from/keepaliveSelenium → servidorKeepalive com o estado do elevador
facility/elevator/<serial>/from/ack/errorSelenium → servidorFalha 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"
}
CampoOrigem no ACCELERO
devicecocElevatorDeviceID do canal para aquele gateway. Sem esse campo, nada é enviado
orgAndar de origem do canal (cocElevatorOriginFloor)
dstPrimeiro 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.

O que o código do servidor não garante

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.