(DEPRECATED) Problema para "instalar sockets"
Esse problema não existe mais desde a versão 2.5.0 do gateway.
Esse problema não existe mais desde a versão 2.5.0 do gateway.
Pra lançar uma nova versão do Accelero é necessário cumprir algumas burocracias.
Você vai precisar de:
Todo gateway é composto de dois projetos "irmãos". Tomando o "gateway Hikvision" como exemplo:
Plugin interno que expõe um endpoint para disparar um backup do banco de dados do ACCELERO e enviá-lo a uma URL de callback informada na requisição.
API REST v1 do Accelero para integração externa — eventos de acesso, log de operações, lotação de áreas e cadastro de visitas via Bearer Token
Os Aprovadores são as pessoas, vinculadas a uma empresa, que recebem e decidem (aprovam ou rejeitam) os convites de visita. Eles operam pela aplicação dos…
A Iongrade contrata servidores virtuais (até nov/2023 eram todos da DigitalOcean) e "abriga", em cada servidor, diversas instalações de Accelero. Em média, são 3 ou 4 Acceleros por servidor, mas depende muito do "tamanho do cliente".
Existem diversos modelos de gateway (um para cada fabricante diferente de reconhecimento facial, por exemplo). Todos têm uma arquitetura muito parecida, mas pequenas diferenças entre si em função de particularidades de cada fabricante.
Esse serviço é responsável por executar diversas tarefas de modo assíncrono, geralmente "descarregando" operações feitas em tela por usuários (emissão de relatórios, por exemplo).
Não é usar o script de atualização nas versões abaixo de 2.3.5, pois nas versões antigas não usavamos o numero serial no topico MQTT.
Protocolo MQTT/JSON de integração entre a controladora Aurum e o servidor de controle de acesso — tópicos, mensagens, configuração e tabelas de referência.
Manutenção e produção de fábrica da Aurum: jiga de testes, gravação de firmware (ESP32 e PIC), produção 4.4.0/4.5.0, memória Flash externa e reset de fábrica.
Todos os servidores SaaS executam diariamente uma rotina de backup automática (/etc/cron.daily/acceleroJobs) de todos os deploys daquele servidor.
Quando a pessoa passa (acesso realizado letID=34) por um canal marcado para "Baixar visitantes", a seguinte lógica é executada pra cada modelo de facial habilitado (Hikvision, ControlID, etc...):
Montagem de fábrica do anunciador de áudio Barium — interior do case e chicote, placa CPU ESP32 montada na tampa e pinagem interna (POWER, CMD INPUT, LED, SPK, BUTTON, SIGNAL SOUND).
Protocolo MQTT/JSON OpenBarium do anunciador de áudio Barium — configuração MQTT no equipamento, tópicos, mensagens de comando e mensagens emitidas (status, info, keepalive).
Várias bibliotecas/libs/dependências do Accelero são desenvolvimento próprio (Iongrade ou Alexandre), mas mantidas separadas pra que possam ser reaproveitadas em outros projetos. Por isso são "meio internas, meio externas". Alguns poucos exemplos:
Às vezes não é suficiente acessar um servidor em on-premises via SSH reverso (vide ACCINFRA-A-11). Às vezes é preciso ter acesso à interface web do Accelero on-premises pra fazer algum procedimento, e isso é complicado.
Configuração MQTT local do gateway SLT veicular Carbon: campos da tela de ajuste do broker, TLS, Facility Id, Device Id e conexão Accelero Cloud.
Ferramenta interna que injeta o script de analytics do Microsoft Clarity nas páginas do ACCELERO para a IONGRADE entender como o sistema é usado.
A tela de Clientes mantém a base das pessoas jurídicas (por Razão Social e CNPJ) às quais as empresas do Accelero Visitas pertencem. O cliente é a camada…
Checklist de QA dos testes de firmware do módulo Cobalt após atualizações: carga de telas, persistência, navegação do webserver, comunicação RS485 e acesso por relé.
Fabricação do quadro do módulo de I/O Cobalt (COBALT-QD32): lista de materiais, montagem mecânica e elétrica, padronização de cabeamento, gravação de firmware, testes de bancada, etiquetas e registro do produto.
Vai lançar um novo produto/recurso?
Você vai precisar de:
Pra lançar uma nova versão de concentrador é necessário cumprir algumas burocracias.
Quando o service accessengine do Accelero recebe uma mensagem do tipo accreq de algum controlador, é iniciado um processo de "consulta online": alguém está solicitando acesso em um bloqueio, e o servidor deve analisar a solicitação pra ver se "libera ou não libera".
Toda entidade que faz parte do ORM Accelero (e que portanto extends DefaultDBObjectPublicMethods) "ganha" automaticamente uma série de funcionalidades típicas de Controller:
A área de Convites reúne os convites de visita registrados no Accelero Visitas. Cada convite liga um visitante a um visitado (anfitrião), num local…
Os Convites recorrentes são convites de visita que valem por um período (data início a data fim), em vez de uma única data — úteis para visitantes que…
Esse serviço é responsável por executar "tarefas gerais" uma vez por dia (geralmente de madrugada, mas pode ser configurado).
Tela inicial do Painel. Mostra um panorama rápido do que existe na conta por meio de cards de indicadores (KPIs) e um gráfico de evolução de pessoas. É a…
O Dashboard (Painel de controle) consolida os indicadores da operação de visitas em cartões e gráficos, com seletor de período (ex.: "Últimos 7 dias"). Há…
Você vai precisar de:
Tomara que você nunca precise fazer isso, mas é possível usar XDebug em ambientes de produção.
Aqui estarão artigos diretamente relacionados a DESENVOLVIMENTO
Conjunto de ferramentas internas para desenvolvedores Accelero — gerador de licença, gerador de classes/plugins, bundles e conferência de dicionário.
Área de documentação interna do time Iongrade.
A tela de Empresas é o cadastro central dos locais atendidos pelo Accelero Visitas. Cada empresa é um tenant identificado por um slug (usado na URL…
Cadastro das áreas comuns reserváveis do condomínio (quadra, salão de festas, salão de jogos). Cada espaço define como pode ser reservado (Tipo de…
Cadastro das perguntas frequentes de um condomínio, exibidas ao morador no app. Cada item tem pergunta, resposta formatada, ordem de exibição e…
Reúne as ações de trazer pessoas em massa para uma empresa e mantê-las sincronizadas com o Controle de Acesso. Concentra quatro ações do menu da empresa…
Define os tipos de visita aceitos pelo condomínio (ex.: Visita, Prestador de serviços, Check-in) e a ordem em que aparecem. Esses tipos alimentam o fluxo…
Cadastro das unidades de um condomínio/empresa — apartamentos, salas, lojas (ex.: 1001 AA, AP 908). As unidades são o vínculo de localização das pessoas…
Entidade central do produto. Uma empresa/condomínio agrega pessoas, unidades, espaços, FAQ, tipos de visita e a configuração de integração com o Controle…
Controle das encomendas recebidas na portaria: registro do pacote vinculado a uma unidade, acompanhamento do status e o fluxo de entrega (quem retirou +…
O Accelero usa bastante o design pattern "Observer" (ou algo parecido com esse pattern) pra garatir que as "coisas aconteçam" com a maior desacoplação de código possível.
De 10 em 10 minutos, esse serviço verifica se existem visitas (Eventos) em aberto cujo horário máximo de saída já foi atingido (visitantes que deveriam ter ido embora, mas ainda não foram).
O funcionamento a seguir é válido a partir da versão 2.15.0 do Accelero.
Excluir/aposentar um servidor deve ser um procedimento raríssimo. Mas, se for necessário...
Processo de produção em série da controladora Neon: testes de hardware, gravação de firmware, etiquetas, gabinete, embalagem e registro.
É possível usar no Accelero (v2.17.0 em diante) um sistema de "request validados", parecido com o sistema de validação de requests do Laravel.
Cadastro de visitantes
De hora em hora, são reenviadas as configurações de todos os gateways (quais devices eles devem cuidar, configurações gerais, etc...).
Esse procedimento é válido para qualquer modelo de gateway. Por exemplo:
Pra lançar uma nova versão de algum gateway (Hikvision, Domonet, ControlID, etc...) é necessário cumprir algumas burocracias.
Temos um repositório GIT interno (git.iongrade.com.br) que serve para abrigar customizações de clientes.
Termos usados em toda a documentação. O domínio é gestão de acesso a condomínios/empresas.
Termos de domínio usados em toda a documentação do Accelero Visitas. Servem de referência rápida; cada conceito é detalhado na página da tela…
Os devices faciais da Hikvision permitem que seja feita a captura de fotos em tempo real (para evitar o uso de webcams).
Este projeto sobe um container que emula 10 leitores faciais Hikvision em portas distintas.
O ORM permite o uso de hooks pra "pendurar" funcionalidades nas classes sem ter que alterar o código das classes-base.
Às vezes (geralmente durante o início do sistema), o cliente manda fotos para serem importadas nos cadastros das pessoas do Accelero.
Se for necessário incluir novos arquivos JS (uma nova lib) ou incluir classes em arquivos já existentes (provavelmente accelero.js), seguir o seguinte procedimento:
Configuração da comunicação MQTT/Accelero Cloud da controladora Indium: campos da tela de ajuste do broker, TLS, Facility Id, Device Id e canal UDP.
Produção de fábrica da Indium: jiga de testes, roteador ionproduction, 2x Iodine simulando leitoras, loopback de Uarts, testes de hardware, registro de produção e gravação do firmware definitivo.
O Accelero trabalha FORTE com injeção de dependência.
Só funciona em on-premises!
O Accelero tem uma integração com o ERP escolar Gennera.
O Accelero Visitas se conecta ao Accelero (sistema de controle de acesso / portaria) para trocar dados de pessoas e visitas entre os dois lados. A…
Protocolo MQTT/JSON de integração entre o módulo de I/O IRIDIUM e o servidor — tópicos, variáveis de entrada/saída, mensagens, configuração e tabelas de referência.
Protocolo OpenION (MQTT/JSON) de integração entre a controladora Neon e o servidor de controle de acesso — tópicos, mensagens, configuração e tabelas de referência.
Tela de configuração que vive dentro do Controle de Acesso (Accelero), em Integrações - AcceleroApp. É onde se estabelece o "casamento" entre o sistema de…
Segunda aba da Integrações - AcceleroApp no Controle de Acesso. Define o que será sincronizado com o Accelero APP (quais tipos de evento e quais…
Quando há integração com dispositivos biométricos externos, o Accelero precisa administrar problemas-de-envio-de-templates e retries. Esse serviço cuida dos retries.
Referência de engenharia do conversor de protocolos Iodine (placa série Titanium) com leitor QR Sh-400: esquemático elétrico, etiqueta do cabo Wiegand/ABAtrack, specs de engenharia do leitor QR e índice dos materiais de terceiros mantidos na engenharia.
Integração que relaya eventos de acesso, alarmes e reports periódicos do ACCELERO para a plataforma IonPulse via MQTT, com login remoto e fotos pré-assinadas.
Esse serviço tem uma única função: enviar periodicamente para o Ozone o status geral do sistema.
Protocolo MQTT/JSON de integração entre o gateway BLE Kalium (e as antenas Scandium) e o servidor de controle de acesso — tópicos, mensagens, configuração e tipos de beacon.
Esse talvez seja o serviço mais simples e importante do Accelero. Três coisas são gerenciadas por esse serviço:
Pra lançar uma nova versão de alguma coisa (Accelero, gateway, concentrador, etc...) é necessário cumprir algumas burocracias.
Histórico de checklists de lançamentos de produtos/recursos.
Esse serviço é responsável por enviar para o Ozone dados estatísticos a respeito do uso do sistema (versão, módulos, licença, etc...).
O Accelero tem dois controles envolvendo usuários/operadores: (1) quem está logado; (2) quem está ativo.
Conforme explicado em ACCINFRA-A-9, existe um serviço (logger_centralizer) que roda no servidor diacetyl que faz a centralização de logs de erros de todos os servidores.
Ferramenta interna de diagnóstico que registra em log as mensagens trocadas entre o ACCELERO e o gateway facial no cadastro e remoção de templates.
Visualizador dos logs de atividades do sistema. Permite escolher um arquivo de log e inspecionar seu conteúdo bruto direto no Painel — ferramenta de…
Existem algumas ferramentas e alertas de erros que devem ser observados regularmente.
A área de Logs (em Monitoramento) registra os eventos do sistema — execução de jobs, notificações via chatbot, sincronizações com o Firebase/RTDB e…
São serviços que ficam em execução o tempo todo, se auto-gerenciando (em oposição ao conceito de response/request).
A Iongrade tem diversos servidores, cada um "abrigando" algumas instalações de Accelero. Não é uma regra, mas até nov/2023 todos os servidores eram da DigitalOcean. Não existe uma padronização da configuração do servidor nem do ponto de vista de sistema operacional (todos são Ubuntu, mas alguns com 20.x, outros com 22.x, outros com 23.x, etc...) nem do ponto de vista de hardware (a maior parte é o "mais barato possível", com 1 CPU, 1GB de RAM e 25GB de disco, mas há exceções).
Manutenção e produção de fábrica do módulo de I/O IRIDIUM: jiga de testes, inspeção de PCI/jumpers, gravação de firmware de testes, execução dos testes, tabela falha→componentes e esquemáticos elétricos.
Testes de PCI na jiga, gravação de firmware de testes, loopback de Uarts, instalação de CPU/Ethernet/bateria e fabricação do conversor RS232/TTL.
Se for necessário migrar todos os deploys de um servidor para outro, deve-se seguir o seguinte procedimento (considerando que o servidor antigo ainda está acessível via SSH -- se não estiver, o buraco é mais embaixo e o procedimento é outro).
Se for necessário migrar todos os deploys de um servidor para outro, deve-se seguir o seguinte procedimento (considerando que o servidor antigo está INACESSÍVEL via SSH -- pior cenário possível). Se o servidor antigo estiver acessível, mesmo que "mais ou menos", o procedimento é outro.
Quando é feito upgrade de versão do Accelero, pode ser necessário fazer alguns updates/ajustes que não acontecem "no nível do GIT", como migração de DB.
Fila de aprovação de cadastros de moradores. Quando uma pessoa se cadastra (ex.: pelo app), o registro fica pendente aqui até um administrador aprovar ou…
Fila de aprovação das reservas de espaços/ambientes feitas pelos moradores. O administrador revê cada solicitação e aprova, rejeita ou edita a reserva…
Em algumas situações é desejável criar uma forma de visualização de informações em tempo real (logs, por exemplo).
A função desse serviço é, em determinados momentos, alterar a "área atual" de pessoas.
Envia e acompanha comunicados/notificações aos moradores (push no app). Permite direcionar a mensagem por condomínio, por unidades específicas ou por…
É comum ter que criar um novo servidor (precisa instalar um novo Accelero, e os servidores atuais já "estão cheios", por exemplo).
Roteiro cross-tela para colocar uma nova empresa no ar no Accelero Visitas — do cadastro inicial até o ponto em que visitantes conseguem fazer o check-in…
Fluxo de inicialização de um novo cliente que vai usar o app integrado ao Controle de Acesso. É o dia a dia do time de suporte ao receber uma nova…
Ferramenta para organizar e fazer upload de fotos de usuários para servidores de clientes Accelero.
O Accelero possui um ORM interno baseado no paradigma Active Record.
As licenças/módulos do Accelero são dinâmicas. Toda hora são inventadas coisas novas licenciáveis (problema técnico) e toda hora são inventados pacotes novos (problema comercial). Toda essa bagunça pode ser organizada no Ozone.
Integrações do monitor de ruídos Palladium — protocolo MQTT/JSON OpenPalladium direto do equipamento e repasse de eventos via webservice (HTTP POST) pelo Palladium Cloud.
A Pesquisa de satisfação permite montar e acompanhar questionários aplicados em torno da experiência de visita. Cada pesquisa tem um título, pode ser…
Cadastro dos moradores / usuários finais do App (proprietário, locatário, funcionário). Cada pessoa tem documento, contato, senha e vínculo com…
O jeito mais simples de se fazer, mas o menos eficiente/menos real-time.
O PHP possui, a partir da versão 7.4, um recurso chamado PRELOADING.
Procedimentos gerais
Integração com o serviço da QI Solution (ERP de escolas).
Esse serviço é responsável por executar tarefas "com hora pra acontecer". Se algo deve acontecer "à meia noite", ou "de 10 em 10 minutos" ou qualquer outra regra que envolva horários, esse é o serviço que assume a responsabilidade.
Por diversos motivos, pode ser necessário dar um boot em algum servidor.
Existem duas variáveis nos exemplos abaixo:
Existem duas variáveis nos exemplos abaixo:
Existem duas variáveis nos exemplos abaixo:
Explicação geral de como funcionam recursos/módulos do sistema.
Gera relatórios sob demanda (ex.: de Pessoas) com filtros, e mantém um histórico dos relatórios solicitados para download. O processamento é assíncrono …
A configuração de rotas HTTP do Accelero é bem simples/padrão.
Acesse o gateway (teclador/monitor ou SSH) e execute:
A função desse serviço é executar "scripts adhoc em intervalores regulares", geralmente para customizações de clientes.
Configuração da comunicação MQTT/Accelero Cloud dos gateways de elevador Selenium: campos da tela de ajuste do broker, TLS, Facility Id e Device Id, comum às variantes Atlas Schindler, ThyssenKrupp e controle de botões.
O diacetyl é um servidor especial da Iongrade. Não tem deploys de Accelero, mas tem vários serviços importantes. Muita coisa depende dele, e mantê-lo funcionando é PRIORIDADE ZERO para bom funcionamento de todos os Accelero.
São serviços administrados pelo QueueProcessor, executados e gerenciados por esse serviço. Não têm "vida própria".
Informações sobre servidores Iongrade
CHAVES SSH
Ferramenta interna de diagnóstico que registra em log todos os requests HTTP recebidos pelo ACCELERO (timestamp, usuário, método e path) para análise técnica.
SSE (Server Side Event) é o primo pobre do Websocket. É bem mais simples de implementar do que um Websocket (é um request HTTP normal), mas é unidirecional (apenas o server manda eventos).
Usa a mesma arquitetura da solução com SSE, mas move-se o processo Javascript para um Shared Worker que opera em background no browser.
Às vezes é necessário acessar gateways e Acceleros on-premises por diversos motivos: fazer upgrades, investigar problemas, etc...
Em geral, a necessidade de "subir" um novo Accelero vem como resultado de uma venda realizada pelo departamento comercial. É enviado um e-mail para alguém do time de devops solicitando um novo deploy.
Documentação destinada ao time de suporte interno da Accelero.
Documentação destinada ao time de suporte interno do Accelero Visitas.
Esses dois serviços cuidam de manter a integração com o Telegram em bom estado.
Configuração da comunicação MQTT/Accelero Cloud da controladora Titanium: campos da tela de ajuste do broker, TLS, Facility Id, Device ID e canal UDP.
Produção de fábrica da Titanium: jiga de testes, roteador ionproduction, loopback de leitores↔inputs e de Uarts, testes de hardware, registro de produção e gravação do firmware definitivo.
Todas as vezes que um gateway envia uma mensagem de keepalive para o Accelero (tópico padronizado ///keepalive) o serviço async_processor do Accelero dispara um "tratador genérico de keepalives de gateways" (classe GenericKeepalive).
Esse procedimento é util quando o cliente utiliza o range 172.16.x.x e 172.17.x.x. na rede local
As Unidades representam os locais/estruturas de uma empresa (por exemplo, prédios, lojas ou filiais) e, dentro de cada unidade, os Departamentos. Elas…
Objetivo
Conectar via SSH no servidor e executar:
Gerencia os usuários do Painel — os operadores administrativos que acessam o sistema (não confundir com Pessoas/moradores, ver Pessoas). Cada usuário tem…
A tela de Usuários concentra o cadastro e a gestão das pessoas que acessam o painel administrativo do Accelero Visitas. É aqui que se define quem entra no…
Lista as visitas registradas — visitantes indo a uma unidade, com janela de validade e status. É o registro operacional que conecta morador, visitante e…
Permite convidar vários visitantes de uma vez (ex.: festa, evento), com um link de convite compartilhável e uma lista de convidados. É o mecanismo de…
Lista as visitas recorrentes — visitantes que se repetem ao longo de um período (ex.: prestador fixo, diarista, professor), evitando recriar a visita a…