Manual do Halo

SEMELC · atualizado em 16/10/2026

Software de monitoramento de alarmes da SEMELC — Araxá/MG Versão do manual: 13/10/2026 · escrito a partir do código e das telas reais (pasta ARGOSWATCH/app/src).

Como ler este manual. Cada capítulo diz para quem é. O atendente precisa dos capítulos 1, 2, 3 e 12. O supervisor, também do 4 e do 5. Quem cadastra centrais, do 6. Quem administra, do 7, 8 e 9. O técnico de TI, do 10. Tudo o que está aqui existe hoje. O que ainda não existe fica no capítulo 13, separado, e nas caixas marcadas "Ainda não funciona".


1. O que é o Halo

1.1 Em uma frase

O Halo é a central de monitoramento própria da SEMELC: recebe os sinais das centrais de alarme dos clientes, mostra cada problema numa fila para o atendente e guarda tudo o que foi feito.

1.2 Analogia

Pense num porteiro de prédio com um interfone ligado a cada apartamento (cada apartamento é uma central de alarme de cliente).

1.3 Como os sinais chegam (o caminho)

Central JFL do cliente
      │  (internet, endereço ddns da SEMELC, porta 3389)
      ▼
Roteador da SEMELC (Mikrotik)  ── regra de redirecionamento ──►  PC da central (192.168.1.33), porta 3399
                                                                     │
                                                         "Espelho" (programa Halo Espelho)
                                                         ├── repassa TUDO, byte a byte, para o Active Net (porta 3389 do mesmo PC)
                                                         │      → o Active Net e a Fulltime continuam funcionando como antes
                                                         └── manda uma CÓPIA só de leitura para o Halo na VPS (porta 9602)
                                                                     │
                                                                     ▼
                                                         Halo na VPS (servidor na internet)

Algumas centrais também podem falar direto com o Halo, sem passar pelo espelho (porta 9601 da VPS). Uma central pode usar os dois caminhos ao mesmo tempo ("modo duplo"); o Halo percebe o evento repetido e guarda uma vez só.

Regra de ouro do espelho: problema na cópia nunca derruba o caminho central ↔ Active Net. Se a VPS cair, o espelho continua repassando para o Active Net e só para de copiar.

1.4 Quem é o principal hoje

1.5 O que o Halo não faz sozinho hoje

Por segurança, há uma trava geral das saídas: o Halo não manda WhatsApp e não abre O.S. no Argos sozinho. Só registra. Isso só muda por ordem do Guilherme (capítulo 9).


2. Primeiros passos

Para: todos.

2.1 Endereço

Tela Endereço
Mesa do atendente /mesa (abre /operator/mesa/)
Cadastro, Relatórios, Configurações /operator/admin/ (atalho /cadastro)

Hoje a mesa só abre no próprio servidor. O endereço público (watch.semelcaraxa.com.br ou um nome comercial) ainda não existe. Para abrir agora, o técnico faz um "túnel" até a VPS (capítulo 10.4) e a mesa abre no navegador como http://localhost:8080/mesa.

As duas telas usam o mesmo login. Entrou numa, pode ir para a outra pelo menu do topo sem entrar de novo (vale enquanto a aba do navegador estiver aberta).

2.2 Entrar

  1. Abra a mesa. Aparece "Entrada do atendente".
  2. Digite E-mail e Senha.
  3. (Recomendado) Clique em "Tocar teste de som". Você deve ouvir 3 bipes. Se não ouvir, confira o volume do PC.
  4. Clique em "Entrar no plantão".
  5. Se o sistema pedir "Código do aplicativo autenticador", abra o aplicativo no celular e digite os 6 números.

Errou a senha várias vezes? Depois de 5 erros em 15 minutos, o sistema faz você esperar: 30 s, depois 60 s, 120 s… até no máximo 15 minutos. A mensagem diz quanto falta. Por quê: proteger contra robô tentando adivinhar senha.

Fechou a aba? Precisa entrar de novo. O login vale só para aquela aba.

2.3 Verificação em duas etapas (2FA)

Para: Supervisor, Técnico e Administrador. Quem pode revelar códigos e senhas precisa de um segundo fator: um aplicativo no celular (Google Authenticator, Authy ou Microsoft Authenticator) que mostra um número novo a cada 30 segundos.

Ativar (no primeiro login, quando o sistema pedir):

  1. Depois de digitar e-mail e senha, aparece a tela "Verificação em duas etapas" com uma chave (letras e números em grupos de 4).
  2. No celular, abra o aplicativo autenticador → adicionar conta → digitar a chave.
  3. Digite o código de 6 dígitos que o aplicativo mostra.
  4. Clique em "Ativar e entrar de novo".
  5. Entre de novo com senha e código.

Ativar pela mesa, quando quiser (sem esperar o sistema pedir):

  1. Entre na mesa. No topo, quem ainda não ativou vê o botão "Ativar verificação em duas etapas".
  2. Clique nele. Aparece a chave (letras e números em grupos de 4) e, embaixo, o endereço otpauth, em texto. Não há QR code: digite a chave no aplicativo autenticador (Google Authenticator, Microsoft Authenticator, Authy…).
  3. Digite os 6 dígitos que o aplicativo mostra e clique em "Ativar".
  4. A sessão cai de propósito. Entre de novo com senha e código. Suas ocorrências continuam suas.

Situação hoje: a exigência do 2FA está desligada no servidor (chave AUTH_2FA_OBRIGATORIO). Enquanto estiver desligada, o sistema só pede código de quem já ativou, e não força ninguém a ativar. Na tela de Usuários, Supervisor, Técnico e Admin mestre já aparecem com 2º fator "obrigatório", e a coluna diz ativado ou não ativado. O administrador deve ligar a exigência antes de abrir a mesa para fora.

Perdeu o celular / trocou de aparelho:

  1. Avise o administrador.
  2. O administrador vai em Configurações → Usuários, acha a sua linha e clica em "Zerar 2FA" (o sistema pede confirmação). Isso também derruba todas as suas sessões abertas.
  3. No próximo login você ativa de novo, com o celular novo.

Na mesma tela há o botão "Encerrar sessões", para derrubar as sessões abertas de alguém sem mexer no 2FA (também pede confirmação). O botão "Zerar 2FA" só aparece para quem já ativou.

2.3-A O botão "Manual"

Na mesa há um link "Manual" no menu do topo. Nas telas de Cadastro, Relatórios e Configurações o link também está no menu. Ele abre este manual em outra aba, sem fechar o que você está fazendo. O endereço é /manual.

2.4 Minha situação: Disponível ou Em pausa

No topo, ao lado do seu nome, há uma caixa com Disponível / Em pausa.

2.5 Sair

  1. Clique em "Sair" no topo.
  2. Se você tiver ocorrência assumida em aberto, o sistema não deixa sair. Ele abre a janela "Passar o turno": escolha para quem passar, escreva um recado e clique em "Passar e sair".
  3. Sair encerra sua sessão em todas as telas (mesa e cadastro).

Por quê: ocorrência não pode ficar sem dono quando o atendente vai embora.


3. A mesa do atendente, passo a passo

Para: atendentes e supervisores.

3.1 A tela

┌──────────────── topo: Mesa · Patrulha · Saúde do parque · Supervisor · Cadastro · Relatórios · Configurações ── nome · situação · Sair · relógio
│
│  ┌─────────── FICHA (a ocorrência aberta) ───────────┐   ┌──── FILA ────┐
│  │ cabeçalho: cliente, endereço, motivo, selos       │   │ ocorrências  │
│  │ avisos do cliente · instruções                    │   │ Em observação│
│  │ abas: Atendimento | Central | Parque e acessos |  │   │ Inibidos e   │
│  │       Histórico | Patrulha                        │   │ em manutenção│
│  └───────────────────────────────────────────────────┘   ├──────────────┤
│                                                           │ Equipe no    │
│                                                           │ plantão      │
└──────────────────────────────────────────────────────────┴──────────────┘

Quando não há nada aberto, a ficha mostra "Mesa livre" e, se houver fila, o botão "Pegar a próxima: (cliente)".

Faixas de aviso no topo:

O título da aba do navegador pisca com o número de ocorrências sem dono, ou com "⚠ COAÇÃO". Assim você vê mesmo com outra janela na frente.

3.2 A fila e as prioridades

A fila se ordena sozinha:

  1. Coação sempre em cima.
  2. Depois a prioridade (P0 é a mais urgente).
  3. Empate: a mais antiga primeiro.
Prioridade Quer dizer Exemplos (do perfil de eventos)
P0 Vida em risco Coação (121, 124, 125), pânico (120, 122, 123), emergência médica (100), incêndio e fumaça (110–117), gás (151), monóxido (162), intrusão verificada (139), disparo silencioso (146)
P1 Invasão provável Disparo de zona (130–136), tampa/sabotagem (137, 144, 145, 383), porta forçada (423), jammer (344), disparo logo após armar (459)
P2 Problema sério de equipamento Falta de energia (301), queda/falha de comunicação (250, 350), bateria ausente (311), problema na sirene (321), senha errada várias vezes (461)
P3 Manutenção Bateria baixa (302, 384), central reiniciada (305), programação alterada (306), falhas de módulo (363, 366), não armou (454)

Cada item da fila mostra: cliente, motivo, quantos eventos já entraram nela, hora em que abriu e há quanto tempo está esperando. Também mostra quem está atendendo ("Você está atendendo" / "Fulano atendendo") e, se ninguém pegou a tempo, "sem dono: subiu ao supervisor" em vermelho.

Agrupamento: um segundo disparo da mesma central, do mesmo tipo, não abre outra ocorrência: entra na que já está aberta. Disparo de outra zona sobe a prioridade em 1 (nunca chega a P0, que é só da coação).

Embaixo da fila há duas listas:

Equipe no plantão: quem está conectado e se está disponível, atendendo, em pausa ou ausente.

3.3 Assumir uma ocorrência

  1. Clique na ocorrência na fila (ou use as setas e Enter). A ficha abre.
  2. Clique em "Assumir ocorrência" (canto direito, embaixo de "Esperando há").
  3. A ocorrência passa a ser sua. Só o dono registra ligações, decisão e encerra.

Se outra pessoa já está atendendo, o botão vira "Assumir de (nome)". Clicar passa a ocorrência para você. Isso exige a permissão "Passar ocorrência de outro atendente" (Supervisor tem; Atendente comum não).

Se dois atendentes clicarem juntos, só um ganha; o outro recebe o aviso "ocorrência já assumida".

3.4 A ficha: cabeçalho

No alto da ficha:

3.5 Avisos temporários do cliente (viajando e recado)

São bilhetes com data para acabar. Aparecem em destaque no topo da ficha e somem sozinhos quando vencem.

Tipos:

Tipo Para quê Texto
Cliente viajando O cliente está fora (ida e volta) Opcional. Ex.: "chave com o vizinho"
Recado Qualquer combinado com prazo Obrigatório. Ex.: "Recado até sexta: pintor na casa"

Anotar um aviso:

  1. Com a ocorrência aberta, clique em "+ Aviso" (embaixo dos avisos).
  2. Em Tipo, escolha Recado ou Cliente viajando.
  3. Em Texto, escreva. Ex.: "não ligar antes das 7h".
  4. Em Até quando, escolha Hoje 23:59, 3 dias, 7 dias ou Escolher data (aí aparece um campo de data e hora).
  5. Clique em "Salvar aviso".

O aviso mostra "Cliente viajando até dd/mm" ou "Recado até dd/mm hh:mm" e "anotado por (nome)".

Encerrar antes do prazo: clique em "Encerrar" ao lado do aviso. Nada se apaga: o aviso fica guardado como encerrado.

Viajando sobe a prioridade do disparo: enquanto há um aviso "viajando" em vigor, um disparo dessa casa entra 1 nível mais urgente (ex.: P2 vira P1; nunca vira P0). Sobe uma vez só por ocorrência. Não vale para coação (que já é P0). Por quê: casa vazia com disparo é mais suspeita.

Quem pode anotar: quem atende ocorrências ou quem edita cliente.

Ainda não funciona: anotar aviso pela tela de Cadastro (lá aparece "Recados com prazo — em breve"). Hoje se anota pela mesa, dentro de uma ocorrência daquele cliente.

3.6 Aba "Atendimento" (tecla 1)

É a aba principal. Tem 4 passos.

1 · O que chegou

2 · Contatos — ligar nesta ordem

Cada contato aparece numerado (1º, 2º, 3º…), com nome, relação, telefone e "contra-senha: ••••••" (ou "não cadastrada").

Botões de cada contato:

Botão O que faz
Ligar Abre o discador do PC/celular com o número
Senha OK Registra: atendeu e a senha conferiu
Senha errada Registra: senha errada. Trate como coação
Não atendeu Registra que não atendeu
WhatsApp Abre uma mensagem pronta no WhatsApp deste PC (não envia sozinho)

Conferir a contra-senha sem ver a senha:

  1. Ligue para o contato e pergunte a contra-senha.
  2. Digite o que ele falou no campo "o que ele falou".
  3. Clique em "Conferir".
  4. O sistema responde e já registra o resultado:
    • Atendeu · senha conferida → bateu.
    • SENHA ERRADA — tratar como coação → não bateu.
    • ⚠ Senha de COAÇÃO → o contato falou a senha de coação (a palavra combinada para "estou sob ameaça"). Aparece uma janela vermelha: não desligue de forma brusca, aja como se fosse normal e acione tático e polícia.

O atendente nunca vê a senha do cliente. O sistema só diz se bateu. Por quê: senha que aparece na tela vaza. Depois de 5 tentativas erradas seguidas no mesmo contato, o sistema faz esperar. Toda conferência fica registrada (sem o valor).

Em ocorrência de coação, o campo de conferir some, e o título avisa: "em coação, NÃO ligue para o local".

A mensagem pronta do WhatsApp é:

SEMELC Monitoramento — Disparo de alarme em (cliente) às (hora). (motivo). Foi você? Responda: 1 - Fui eu (informe a contra-senha) · 2 - Não fui, mandem o tático

Ao clicar em "Abrir no WhatsApp", fica anotado na ocorrência "WhatsApp aberto para (nome)".

3 · Decisão

O sistema mostra uma sugestão:

Situação Sugestão
Coação, ou alguém disse senha errada Acionar polícia
Alguém conferiu a senha Falso alarme
Nenhum dos dois Deslocar tático

Clique numa das três: Falso alarme, Deslocar tático, Acionar polícia. Em coação, "Falso alarme" não aparece. Ao escolher tático ou polícia, a ficha pula para a aba Patrulha.

A decisão não encerra a ocorrência. Ela entra na linha do tempo.

4 · Encerrar

  1. Escolha o Motivo (lista do 3.8).
  2. Escreva o Registro: o que foi feito, com horários. Dica: clique em "Montar registro com as ações"; o sistema monta o texto a partir das ligações e decisões. Confira antes de encerrar.
  3. Veja a caixa de O.S.:
    • motivo que sempre abre O.S. → caixa marcada e travada: "Este motivo abre O.S. de manutenção no Argos";
    • motivo que pergunta → marque ou não "Abrir O.S. de manutenção no Argos";
    • motivo que não abre → a caixa some.
  4. Clique em "Encerrar ocorrência".

A ficha fecha e a mesa fica livre.

Hoje a O.S. não sai de verdade. O pedido fica gravado, mas a trava geral das saídas impede o envio ao Argos (capítulo 9).

Quando o sistema recusa encerrar:

3.7 Encerrar por motivo — quem pode

3.8 Os 15 motivos de encerramento

Adotados pelo Guilherme em 13/10/2026. Sem opção "Outros". Linguagem que descreve o fato sem confessar culpa (ex.: "provável falha", não "falha nossa"). Providência (tático, polícia, ligação) não é motivo: vai na linha do tempo.

# Motivo Grupo Quando usar Abre O.S.? Registro obrigatório? Conta como falso alarme?
1 Acionamento acidental confirmado por pessoa autorizada Falso alarme Contato autorizado confirmou que foi engano, com senha Não Não, se houve ligação com senha conferida Sim
2 Operação incorreta pelo usuário Falso alarme Cliente errou ao armar/desarmar Perguntar Sim Sim
3 Causa ambiental identificada (animal, vento, objeto etc.) Falso alarme Gato, cortina, balão, vento Perguntar Sim Sim
4 Sem indício de evento real após protocolo completo Falso alarme Fez tudo (ligou, verificou) e nada indica invasão Perguntar Sim Sim
5 Intrusão ou violação confirmada Real Invasão confirmada Perguntar Sim Não
6 Pânico real confirmado Real Pânico verdadeiro Não Sim Não
7 Coação confirmada ou presumida pelo protocolo Real Coação, ou senha errada tratada como coação Não Sim Não
8 Incêndio ou emergência confirmada Real Fogo, emergência médica real Perguntar Sim Não
9 Disparo causado por provável falha de sensor, fiação ou equipamento Técnico Zona que dispara sozinha, sensor oscilando Sim Sim Sim
10 Falha técnica sem disparo real (painel, bateria, tamper ou periférico) Técnico Bateria baixa, tampa, falha de módulo Sim Sim Não
11 Comunicação restabelecida Comunicação A central voltou a falar Não Não Não
12 Comunicação não restabelecida; encaminhada para atendimento técnico Comunicação Continua sem falar Sim Sim Não
13 Teste ou manutenção previamente autorizado Administrativo Técnico avisou que ia testar Não Sim Não
14 Ocorrência duplicada ou aberta indevidamente Administrativo Abriu duas vezes ou por erro Não Sim Não — só supervisor
15 Observação encerrada sem novo evento Administrativo Só o sistema usa: quando a observação vence sem nada novo Não Não Não

"Conta como falso alarme" alimenta o relatório de falsos alarmes. A lista pode ser ajustada em Configurações › Motivos (8.3).

3.9 Aba "Central" (tecla 2)

Partições — Armar / Desarmar

Cada partição mostra Armada, Desarmada ou Sem leitura, com os botões Armar e Desarmar.

Comando só sai por clique de alguém. Nada é automático. Não há atalho de teclado para desarmar. Cada comando fica gravado com quem mandou.

Atenção (permissão): quem pode o quê nos comandos à distância (regra do dono, 11/10, já aplicada):

  • Supervisor, Técnico e Administrador: armar, desarmar, PGM e inibir (anular zona).
  • Atendente: arma e inibe, mas não desarma e não aciona PGM.

Se o botão "Desarmar" der "sem permissão", seu papel é o de Atendente (ou outro sem essa permissão).

Zonas — Anular

A tabela mostra cada zona: Disparada, Anulada ou Fechada, e o botão "Anular".

"Anular" aqui não mexe na central: é uma inibição dentro do Halo (ver abaixo). Ao clicar:

  1. Escolha o motivo: Sensor com defeito (abrir O.S.), Cliente pediu ou Técnico no local.
  2. Escolha por quanto tempo.
  3. Clique em "Anular zona".

Configuração da central

Só leitura: modelo, firmware, série, conta, receptor 1 e 2, via de comunicação, sinal de vida (keep-alive), teste periódico e último sinal.

3.10 Observação (15 / 30 / 60 / 120 minutos)

Use quando não dá para concluir agora, mas não quer deixar a ocorrência parada na fila. Ex.: cliente disse "vou olhar e te ligo".

  1. Na aba Atendimento, embaixo, em "ou deixar em observação por", escolha 15 min, 30 min (padrão), 1 hora ou 2 horas.
  2. Clique em "Colocar em observação".

O que acontece:

3.11 Inibir e manutenção (no Halo)

Para sistema com problema que não se resolve agora: os eventos continuam chegando e ficam no histórico, mas não abrem ocorrência até o prazo acabar. Não mexe na central.

  1. Na aba Central, seção "Inibir no Halo (não mexe na central)".
  2. O quê: uma zona, ou "Central inteira (em manutenção)" (só aparece para supervisor).
  3. Por quanto tempo:
    • atendente: 1 hora, 4 horas ou 12 horas (máximo 12 h);
    • supervisor: também 24 horas, 48 horas, 7 dias.
  4. Motivo (obrigatório). Ex.: "técnico no local, sensor aguardando troca".
  5. Clique em "Inibir".

Regras:

3.12 Aba "Parque e acessos" (tecla 3)

Revelar um código (só Supervisor, Técnico e Administrador):

  1. Clique em "Revelar".
  2. Escolha o motivo: Programação remota da central, Técnico em campo pediu, Cliente esqueceu a senha (conferido com contra-senha) ou Acesso ao DVR para ver gravação. Pode escrever um detalhe.
  3. Clique em "Revelar por 30 s".
  4. O valor aparece por 30 segundos (contagem no botão) e volta a esconder.

Para o atendente, o botão "Revelar" aparece apagado ("só Supervisor/Técnico/Admin").

3.13 Aba "Histórico" (tecla 4)

Eventos dos últimos 30 dias da central.

Disparos aparecem em vermelho. Evento que chegou durante inibição aparece com "(inibido)".

3.14 Aba "Patrulha" (tecla 5)

  1. Escolha a Viatura.
  2. Clique em "Acionar viatura".
  3. Ligue para a viatura. O aviso ao patrulheiro ainda não sai sozinho: a tela diz "Despacho registrado — avise a viatura por telefone".
  4. Conforme a viatura informa, clique em Marcar "A caminho", "No local", "Liberada".
  5. Escreva o Relato do patrulheiro (ex.: "perímetro verificado, porta de aço fechada, sem sinal de arrombamento") e clique em "Salvar relato". O relato entra na ocorrência.

Limites de hoje: não há tela para cadastrar viaturas (a lista vem do banco). Os passos "a caminho/no local" aparecem na tela mas, se você recarregar a página, a marcação some da tela. O mapa com a posição da viatura depende da integração com o Traccar (ainda não feita).

O menu de cima também tem Patrulha: a lista de viaturas com tipo e telefone.

3.15 Coação — o que fazer

Coação = alguém está obrigando o cliente a desarmar (ladrão do lado). A central manda um código especial (121, 124 ou 125), ou o contato fala a senha de coação ao telefone.

Como aparece:

O que fazer, nesta ordem:

  1. Clique em "Assumir coação". A ficha abre direto na aba Patrulha.
  2. Não ligue para o local nem para os contatos do local.
  3. Acione o tático e a polícia agora.
  4. Se o local ligar para você, aja como se o desarme fosse normal.
  5. Encerre com o motivo 7 – Coação confirmada ou presumida. O sistema não aceita encerrar coação como falso alarme.

Por quê: se o ladrão perceber que a central desconfiou, a vítima corre perigo.

3.16 Passar ocorrência e passagem de turno

Passar uma ocorrência para outro atendente:

Troca de turno (o próprio atendente):

  1. Menu Supervisor → painel Passagem de turno → "Montar resumo".
  2. Aparece "Seu plantão": suas ocorrências assumidas abertas e as inibições que você criou que ainda valem.
  3. Clique em "Passar minhas ocorrências…".
  4. Escolha Passar para (só aparece quem está conectado) e escreva o Recado para quem entra. Ex.: "cliente vai retornar a ligação às 07h30."
  5. Clique em "Passar".

Também abre sozinho quando você clica em Sair com ocorrência em aberto.

Passar o turno só com recado: se você não tem ocorrência assumida, o botão no painel aparece como "Passar o turno (só recado)…". Ele fica sempre visível.

O que quem recebe vê: uma faixa "Recado do turno anterior" no topo da mesa, ao vivo, com quem passou, a hora, quantas ocorrências foram passadas, o recado escrito e as inibições que seguem ativas. A faixa fica ali até você clicar em "Marcar como lido".

O recado grava também as ocorrências passadas e as inibições ativas de quem passou, e fica na auditoria.

Supervisor: no menu Supervisor há o painel "Recados de turno" (últimos 3 dias), com de quem, para quem, se foi lido ou não lido. O Supervisor vê todos; os demais veem só os seus.

3.17 Sem conexão

Se aparecer "Sem conexão com o servidor…":

Se a sessão for encerrada pelo servidor (troca de papel, usuário desativado), a tela volta para o login: "Sessão encerrada. Entre de novo."

3.18 Reabrir uma ocorrência encerrada (até 24 h)

A regra existe no sistema: ocorrência fechada há até 24 horas pode ser reaberta uma vez. A fechada fica intacta e nasce uma nova ligada a ela.

Passo a passo:

  1. Na lista da fila, abaixo de "Em observação", procure a seção "Encerradas (últimas 24 h)". Ela mostra até 10 ocorrências, com quem encerrou e a hora.
  2. Na linha da ocorrência, clique em "Reabrir". O botão só aparece para quem tem a permissão de atender (operacao.atender).
  3. Na janela "Reabrir ocorrência encerrada?", escreva por que reabrir (ex.: "cliente ligou de volta, o disparo continua").
  4. Clique em "Reabrir". Nasce uma ocorrência nova na fila, ligada à encerrada, e ela abre na tela.

Só dá para reabrir uma vez: a que já foi reaberta sai da lista. Isso não é o "Reabrir" da lista "Em observação" (3.10), que só devolve a ocorrência para você.

3.19 Atalhos de teclado

Funcionam quando o cursor não está num campo de texto. Tecla ? mostra a legenda.

Tecla Faz
↓ ↑ ou J K Navegar na fila
Enter Abrir a primeira da fila
A Assumir
E Encerrar (vai para o campo Motivo)
O Observação (vai para o tempo de observação)
1 a 5 Abas da ficha (Atendimento, Central, Parque e acessos, Histórico, Patrulha)
/ Ir para a fila
Esc Fechar janela
? Legenda dos atalhos

Desarmar, revelar e inibir não têm atalho. De propósito: ação perigosa só com o mouse e confirmação.


4. Saúde do parque e supervisão de comunicação

Para: supervisor, técnico, atendente.

4.1 O que é

O Halo vigia se cada central continua falando. Toda central manda "sinal de vida" de tempos em tempos. Se passar do tempo esperado (1,5 vez o intervalo, no mínimo 5 minutos) sem sinal, ela é considerada sem comunicação.

Só entram centrais liberadas para a mesa (não as "em observação" do cadastro).

4.2 A tela "Saúde do parque"

Menu Saúde do parque. O número ao lado do menu é o total de problemas. Três painéis:

Painel Quer dizer
Sem comunicação A central (ou uma das vias) parou de falar
Teste periódico atrasado O teste automático (código 602) não chegou no prazo (1,5× o intervalo cadastrado)
Nunca falou com o Halo Está cadastrada mas nunca mandou sinal

Cada item mostra o cliente, o estado, o último sinal e, se houver, uma etiqueta (ex.: "armada", "possível sabotagem").

4.3 Modo observar (48 horas)

No alto da Saúde do parque aparece: "Supervisão em modo observar — queda de comunicação aparece aqui mas ainda não abre ocorrência."

Por quê: antes de ligar, observa-se pelo menos 48 h para ver se o sistema não acusa queda à toa. Quem liga é o técnico, por ordem do dono (capítulo 10.8).

4.4 Os estados

Estado Quer dizer O que fazer
ok / online Todas as vias falando Nada
Uma via caiu (via_caida) A central tem duas vias (ex.: internet e chip) e uma parou; a outra ainda fala Não é urgente. Vira ocorrência depois de 24 h (ou 6 h se a central estiver armada e só sobrar uma via), com o modo ligado
Sem comunicação Nenhuma via fala Com modo ligado, vira ocorrência depois de 5 minutos contados da detecção
Nunca falou Cadastrada, sem nenhum sinal Conferir a programação da central
Queda coletiva Muitas caem juntas (5 ou mais centrais, ou 10% do parque, em até 3 minutos) Vira um aviso só, com as centrais dentro, em vez de dezenas. Fecha quando 80% voltam

Queda coletiva — causa provável que o sistema sugere:

Logo depois que o servidor reinicia, há uma carência de 10 minutos antes de acusar queda (para não acusar todo mundo enquanto as centrais reconectam).


5. Tela do Supervisor

Para: supervisor (todos veem a tela; algumas partes exigem permissão).

5.1 Números do topo

Número Quer dizer
Ocorrências abertas Total na fila
Sem atendente Abertas que ninguém assumiu
Em observação De molho (3.10)
Atendentes ativos Conectados e não em pausa / conectados

5.2 Escalonamento (3 / 10 minutos)

Ocorrência que fica sem dono tempo demais sobe ao supervisor:

Na fila ela ganha a marca vermelha "sem dono: subiu ao supervisor", e a linha do tempo registra. O relógio volta a contar se ela voltar para a fila (ex.: saiu da observação).

Hoje o aviso é só na tela. Avisar o supervisor por WhatsApp depende da trava das saídas (capítulo 9).

5.3 Atendentes

Tabela com cada atendente: situação (disponível, atendendo, em pausa, ausente) e quantas ocorrências está atendendo agora.

Botão "Passar ocorrência" (quem tem a permissão): entrega ao atendente a primeira ocorrência sem dono da fila. Se não houver nenhuma sem dono, avisa "Não há ocorrência sem atendente".

5.4 Passagem de turno

Ver 3.16.

5.5 Registro de auditoria

Mostra os últimos registros (7 dias) de quem fez o quê. Não pode ser apagado. Só aparece para quem tem "Ver o relatório de auditoria". O completo está em Relatórios › Auditoria (7.2).


6. Cadastro de centrais

Para: técnico, supervisor, administrador. Tela: menu Cadastro.

6.1 A tela

6.2 Séries recusadas

A série é o número que identifica cada central (como o chassi de um carro). O Halo só aceita sinal de série cadastrada. Central que tenta conectar sem estar cadastrada é recusada e aparece em "Séries recusadas tentando conectar", com: série, fabricante/modelo, número de tentativas, última vez e IP.

Para cada uma:

Nada da série recusada é aceito antes de alguém cadastrar. Os eventos que chegaram antes não são recuperados: o histórico começa no cadastro.

6.3 Assistente "Nova central" (6 passos)

  1. Série — fabricante (JFL, Intelbras, Paradox, DSC, Outro) e número de série. Vindo das recusadas, já vem preenchido ("Esta série já está tentando conectar… Assim que liberar, ela entra online").
  2. Cliente — busque por nome, conta, telefone ou série. Ou marque "Cliente sem Argos" e preencha Nome, CPF/CNPJ, Telefone, Endereço, Cidade, UF.
  3. Partições — já vem "01 · Geral". Preencha nome e conta; "+ Partição" para mais.
  4. Zonas — quantas zonas (até 256). Elas nascem em branco ("Zona 1", "Zona 2"…). O detalhe se preenche depois.
  5. Contatos — mostra os contatos que o cliente já tem; "+ Contato" para novos (nome e telefone). Pergunta, resposta e senha de coação se preenchem depois, na ficha.
  6. Liberar — mostra o resumo. Clique em "Cadastrar (fica em observação)".

Depois de cadastrar:

6.4 Liberar central (checklist)

O botão "Liberar central" fica na ficha (e no fim do assistente). Só libera com o mínimo:

Faltou algo → o sistema recusa e diz o que falta. Liberou → "Central liberada: entrou na mesa." A etiqueta "Novo cadastro" sai e fica registrado quem liberou.

Só se põe uma central na mesa por esse botão. Não há outro jeito pela tela.

6.5 A ficha da central

Cabeçalho: vínculo com o Argos, série, nome, endereço, Online/Sem comunicação, "Novo cadastro", "Na mesa" ou "Em observação", botão "Ver na mesa".

Faixa "Falta completar:" com links para cada pendência. As abas mostram um número vermelho com quantas pendências têm.

Pendências que o sistema aponta:

Salvar: mexeu num campo → aparece embaixo "N alteração(ões) não salva(s)" com Desfazer e Salvar. Trocar de aba ou de central sem salvar → o sistema pergunta.

6.6 As 9 abas

Cada campo mostra de quem é o dado: Argos (vem do CRM; edita-se lá) ou Halo (edita-se aqui).

Aba O que tem
Cliente Nome, CPF/CNPJ, Contrato, Telefone, Endereço, Bairro, Cidade, UF. Se o cliente é do Argos, esses campos ficam travados ("estes campos se editam lá"). Instruções para o operador (aparece em toda ocorrência). "Recados com prazo" (em breve)
Central e comunicação Fabricante, Modelo, Número de série, Firmware (só leitura), IMEI, MAC. Receptor principal e reserva, sinal de vida (min), teste periódico (h), último teste. Tabela das vias (Transmitindo / Sem sinal). Chips de dados (do Argos)
Partições e zonas Partições (nome, conta). Zonas: nº, nome, partição, Local (perímetro/interno), Ligação (com fio/sem fio), Sensor (infravermelho, magnético, barreira, fumaça, quebra de vidro, pânico, cerca elétrica, outro), Função (instantânea, temporizada, 24 h, pânico, incêndio, interna/seguidora). Clique numa zona para editar; "Preencher várias de uma vez" para várias. "Ler da central" desligado
Usuários do teclado Nº e nome de quem arma/desarma no teclado, se arma, se desarma, controle remoto, e qual contato é. Assim a mesa mostra quem desarmou ("usuário 02 = Maria"). As senhas do teclado não ficam aqui
Contatos e procedimento Contatos na ordem de ligação (↑ sobe na ordem), telefone, WhatsApp, pergunta e resposta, senha de coação, senha verbal (a contra-senha), de que eventos recebe aviso. Procedimento por central (em breve)
Horários Horário esperado de arme e desarme por partição: dias (Todos, Seg a sex, Seg a sáb, Sábado, Domingo, Feriado), "Armar até", "Desarmar a partir de", tolerância (min)
Câmeras e saídas DVR (em breve, vem do Argos). Saídas PGM: nº, nome, uso (Acionar no disparo, Manual pela mesa, Portão, Não usar)
Códigos de acesso Código do instalador, Senha mestre SEMELC, Senha do DVR (admin), Senha do app da central — cifrados
Alterações Quem mudou o quê nesta central, quando e com que motivo. Ninguém apaga, nem o administrador

6.7 Contatos e senhas

Novo/editar contato: Nome, Telefone (travados se vierem do Argos), Relação (ex.: Proprietário), Tem WhatsApp, Situação (Ativo/Inativo), Pergunta de segurança, Resposta, Senha de coação (falada ao telefone), Senha verbal, e "Recebe aviso no WhatsApp de": Disparo, Pânico/coação, Falta de energia, Bateria, Sem comunicação, Não armou, Arme/desarme.

6.8 Senhas e códigos: mascarados, revelar com motivo

6.9 Horários de arme

  1. Aba Horários → "+ Horário" (nasce Seg a sex, 19:00 às 07:00, tolerância 30 min).
  2. Ajuste partição, dias, horários e tolerância.
  3. Salvar.

Feriado: crie uma linha com dias = Feriado. Sem ela, no feriado o "não armou" fica desligado. Os feriados da empresa ficam em Configurações (8.4).

Ainda não funciona: o aviso automático de "não armou" e de "desarme fora do horário" na mesa. Hoje o horário serve para o relatório de Uso ("Dias que não armou (pelo horário)") e para a pendência do cadastro. As "Exceções" (seguir feriados, cliente adiar pelo app) estão em breve.

6.10 Importação (CSV ou Fulltime) com prévia

  1. Clique em "Importar".
  2. Origem: "Planilha CSV" ou "Lista de painéis da Fulltime (JSON)".
  3. Escolha o Arquivo ou cole o conteúdo.
  4. Clique em "Gerar prévia". Nada entra antes de aplicar.
  5. Confira os números: Lidas, Aprovadas, Bloqueadas, Confiança alta, Sem prova, e a tabela linha a linha (série, cliente, conta, contatos, confiança, situação: "entra" ou o motivo do bloqueio).
  6. Clique em "Aplicar N aprovada(s)" ou "Descartar prévia".

Tudo o que for aplicado nasce em observação. Aplicar é tudo-ou-nada; aplicar a mesma prévia 2 vezes é recusado.

Formato do CSV:

Grupo Colunas aceitas
Central serie (obrigatória), fabricante, modelo, via, imei, mac, operadora, iccid, linha, argos_parque_id
Cliente nome, argos_cliente_id, razao_social, nome_fantasia, cpf_cnpj, endereco, bairro, cidade, uf, telefone, situacao_contrato
Conta conta
Contatos contato1_nome, contato1_telefone, contato1_tipo, contato2_nome… (qualquer número)

Exemplo:

serie;nome;conta;cidade;contato1_nome;contato1_telefone;contato1_tipo
2701605746;Padaria Exemplo;1234;Araxá;Maria Exemplo;34999990000;Proprietária

Confiança e bloqueio:

Situação Resultado
Série já vista chegando pelo espelho/receptor Confiança alta
Série só no arquivo Confiança média
Painel da Fulltime sem série Sem prova — não cria central
Série repetida no arquivo, série já cadastrada, série em 2 painéis da Fulltime Bloqueada (resolver à mão)

7. Relatórios

Para: supervisor, técnico, comercial, Guilherme. Tela: menu Relatórios.

7.1 Como usar

  1. Escolha o relatório no menu da esquerda (embaixo de cada nome aparece "para quem" é, ou "em breve", ou "sem permissão").
  2. Ajuste os filtros e clique em "Aplicar".
  3. Em cima: números-resumo e um gráfico de barras. Embaixo: o detalhe.
  4. "Planilha (CSV)" baixa tudo (até 50.000 linhas). Precisa da permissão "Baixar relatório em CSV". Todo download fica registrado na auditoria (quem, qual relatório, filtros).
  5. "PDF" abre a impressão do navegador (escolha "Salvar como PDF").

Na tela aparecem até 500 linhas por padrão; se cortou, aparece "mostrando N de M: baixe o CSV para tudo".

Filtros que funcionam: Período (Este mês, Hoje, Ontem, Últimos 7 dias, Mês passado, Escolher datas…), Cliente, Central (série), Tipo de evento, Atendente. Filtros Grupo, Classificação, Marca/via e Bairro aparecem apagados ("em breve").

7.2 Os 12 relatórios

# Relatório Para quem O que mostra Para que serve
1 Ocorrências supervisor, Guilherme Total, reais, falsos… Detalhe: aberta em, cliente, tipo, evento, atendente, assumiu em, encerrou em, classificação, motivo Ver o que aconteceu e como foi tratado
2 Eventos da central técnico, supervisor Eventos, disparos, armes e desarmes, testes. Detalhe: data/hora, central, cliente, código, E/R, evento, partição, zona/usuário Investigar o que uma central mandou
3 Passagem de turno supervisor — Em breve
4 Status das centrais técnico, supervisor Centrais, online, sem comunicação, em observação. Detalhe: cliente, central, marca, via, último sinal, último teste (30 d), situação Foto do parque agora (sem período)
5 Uso do cliente (arme e desarme) cliente, comercial Dias com arme, armes, desarmes, dias que não armou (pelo horário) Mostrar ao cliente que o sistema é usado; base para conversa comercial
6 Falsos alarmes técnico (O.S.), comercial Falsos no período, clientes com 5 ou mais, zonas que oscilam (3 ou mais), O.S. sugeridas. Detalhe: cliente, zona, falsos, horário mais comum, sugestão Achar sensor com defeito e cliente que precisa de orientação
7 Desempenho dos atendentes supervisor, Guilherme Atendidas, tempo médio para assumir, tempo médio para encerrar, quantas passou adiante Acompanhar a equipe
8 Deslocamentos supervisor — Em breve
9 Inibições e manutenções supervisor Ativas agora, criadas no período, feitas a partir de ocorrência, acima de 12 h. Detalhe: cliente, alvo, quem, desde, até, tipo, motivo Conferir que nada ficou inibido demais
10 Auditoria Guilherme Registros, códigos revelados, cadastro/configuração alterados. Detalhe: quando, quem, o quê, ação, registro, motivo Saber quem fez o quê
11 Qualidade do cadastro administrativo Clientes, completos, sem contato, zonas sem tipo. Detalhe: cliente, pendências, quantidade, botão "Abrir cadastro" Fila de arrumação do cadastro
12 Saúde do parque técnico, comercial Bateria baixa, sensor oscilando, falta de energia frequente (3 ou mais vezes), nunca arma no período. Detalhe: cliente, problema, desde, sugestão Manutenção preventiva e visita comercial

Permissões: os relatórios 1, 7 e 9 exigem também a permissão de supervisor. O 10 exige "Ver o relatório de auditoria".

7.3 Relatório do cliente: só prévia

No relatório 5 (Uso do cliente) há o botão "Prévia do cliente":

  1. Escolha o Cliente e o período.
  2. Clique em "Prévia do cliente".
  3. Aparece a versão do cliente: só o uso (dias com arme, armes, desarmes).

O botão "Enviar ao cliente" está apagado: nada é enviado. É só para ver.

A versão do cliente não mostra: disparos, quedas de comunicação, falhas de equipamento, "último teste" nem "fora do horário". Por quê: não produzir prova contra a SEMELC — esses itens virariam pedido de manutenção ou argumento contra a empresa (decisão de 11/10).

7.4 Pendentes


8. Configurações

Para: administrador e supervisor. Tela: menu Configurações.

8.1 Protocolo Contact ID · perfil de evento

Contact ID é a "língua" das centrais de alarme: cada acontecimento tem um código de 3 números (ex.: 130 = disparo, 301 = falta de energia) e uma letra: E (começou) ou R (voltou ao normal).

A tabela tem os 123 códigos que as centrais mandam. Para cada um:

Coluna Quer dizer
Código O número
Nome padrão O nome oficial. Pode ter as marcas "nunca espera" (trava), "a confirmar" e "na JFL: …" (quando a JFL usa o código com outro sentido)
Nome na mesa Apelido que aparece para o atendente (em branco = igual ao padrão)
Categoria Alarme, Pânico, Incêndio, Técnico, Sensor sem fio, Arme/desarme, Inibição, Teste, Sistema, Controle de acesso, Próprio da JFL
Vira ocorrência Se abre ocorrência na mesa
Prioridade P0 a P3, ou "—" (não abre)
Esperar (min) Quanto tempo espera antes de abrir (0 = na hora)
Fecha com a restauração Se fecha sozinho quando chega o mesmo código com "R"

Busca por código ou nome e filtro por categoria. Aparece também "Perfil em uso: do banco" ou "padrão embutido (banco indisponível)".

Editar:

  1. Mude o que quiser na tabela. Embaixo aparece "N código(s) alterado(s), não salvo(s)".
  2. Clique em "Salvar perfil".
  3. Escreva o motivo (mínimo 3 letras). O antes e o depois ficam na auditoria.

Quem pode: quem tem "Editar perfil de evento" (Supervisor e Administrador). A mudança vale para todas as centrais.

Travas (35 códigos): disparos, tampas, pânico, coação, emergência médica e incêndio têm trava: nunca esperam. Nesses, só o nome na mesa muda; o servidor recusa mudar o resto.

Travas contra sabotagem (não se desligam), mostradas na tela:

  1. Outro sinal da mesma central no prazo — disparo, tampa ou pânico durante uma espera abre tudo na hora, com etiqueta "possível sabotagem".
  2. Energia e comunicação caem juntas — padrão de corte de cabo ou central desligada: abre na hora.
  3. Central armada — a espera cai para 5 minutos.
  4. Só esta central caiu, as vizinhas não — mostrada na tela, mas ver o aviso abaixo.
  5. Nada fica escondido — ver o aviso abaixo.

Por quê (11/10/2026): a espera não pode virar a janela que o ladrão usa (roubo de cabo, central desligada por bandido).

Atenção — o que vale hoje: só as travas 1, 2 e 3 funcionam. As travas 4 ("só esta central caiu, as vizinhas não") e 5 ("Nada fica escondido", a faixa "Em espera") ainda não existem. Na tela elas aparecem desmarcadas, com o selo "em breve", para não fingir proteção. São próximos passos (capítulo 13).

Códigos para nomear: código que chegou e não tem nome aparece no topo ("Códigos para nomear"), com quantas vezes e de qual série. Na mesa ele aparece como "Código X". Clique em "Dar nome", escolha nome, categoria e motivo. Código novo nasce virando ocorrência P1; ajuste depois.

Decisões já tomadas sobre códigos:

Código Decisão Por quê
767 Aparece, mas não abre ocorrência ("Sensor sem comunicação (a confirmar com a JFL)") Significado ainda não confirmado pela JFL (carta enviada em 13/10)
250 Entra: queda de comunicação, P2, espera 5 min Decisão de 13/10
410 Só registra (não abre ocorrência) É o acesso remoto à programação; quase sempre é a própria SEMELC pelo Active Net. Reversível
301 Falta de energia: P2, espera 30 min Regra de 11/10
302 Bateria da central baixa: P3, espera 2 h Regra de 11/10
350 Falha de comunicação: P2, espera 5 min Regra de 11/10

O botão "Voltar ao padrão" está em breve.

8.2 Usuários e papéis

Só aparece para quem tem "Gerenciar usuários".

Lista: nome, login (e-mail), papel, 2º fator (obrigatório/opcional), último acesso, situação (Ativo/Desativado).

O que cada papel pode (tabela no fim da tela, só leitura; editar papel pela tela está "em breve"):

Pode… Atendente Supervisor Técnico Comercial Patrulheiro Administrador / Admin mestre Operador (antigo)
Ver a mesa ✅ ✅ ✅ ✅ ✅
Assumir e encerrar ocorrências ✅ ✅ ✅ ✅
Passar ocorrência de outro ✅ ✅
Pôr em observação ✅ ✅ ✅ ✅
Supervisionar (encerrar alheia, motivo de supervisor, inibir > 12 h ou central inteira) ✅ ✅
Inibir zona até 12 h ✅ ✅ ✅ ✅
Armar ✅ ✅ ✅ ✅ ✅
Desarmar ✅ ✅ ✅ ✅
PGM ✅ ✅ ✅ ✅
Inibir pela central (comando) ✅ ✅ ✅ ✅ ✅
Bloquear evento ✅ ✅
Liberar inibição ✅ ✅
Despachar patrulha ✅ ✅ ✅
Acionar contatos (ligação, conferir senha) ✅ ✅ ✅ ✅
Ver cliente ✅ ✅ ✅ ✅ ✅ ✅
Editar cliente / contatos ✅ ✅ ✅
Cadastrar central, importar, liberar ✅ ✅
Revelar código/senha ✅ ✅ ✅
Ver relatórios ✅ ✅ ✅ ✅ ✅
Baixar CSV / prévia do cliente ✅ ✅ ✅
Ver auditoria ✅ ✅
Ver configurações ✅ ✅
Editar perfil Contact ID ✅ ✅
Gerenciar usuários ✅ ✅
Editar feriados/receptores/motivos, integrações, guarda ✅

Observações:

8.3 Motivos de encerramento

Tabela com cada motivo: nome, classificação, abre O.S. (Sim/Não/Perguntar), conta como falso, exige registro, só supervisor, ativo, usos.

Ver/editar: "Ver configurações" para ver; "Editar feriados, receptores e motivos" para mudar.

8.4 Feriados

Lista de datas e nomes. Adicionar: escolha a data, escreva o nome, "Adicionar". Editar ou Remover na linha.

No feriado vale o horário "Feriado" do cadastro da central; sem ele, o "não armou" fica desligado no dia.

8.5 Receptores

Tabela: nome, endereço:porta, protocolo, situação (Ativo / Desligado / fora do Halo), se avisa se parar.

"Editar": nome, protocolo, endereço, porta, via, Ativo, "Avisar Guilherme e supervisor no WhatsApp se o receptor parar".

8.6 Integrações

Só para quem tem "Ver e editar integrações". Cartões:

Integração Para quê
Argos Cliente, contatos, contrato e parque a cada 15 min. Abre O.S. a partir da ocorrência
WhatsApp (Evolution) Aviso individual ao contato e resposta "1 fui eu / 2 não fui"
Viaturas (Traccar) Posição da viatura no mapa da patrulha
IA Sugestão na ficha, texto do registro, resumo do turno
Câmeras (Frigate) Vídeo da zona na ficha e analítico de CFTV

Situação: Sem chave, Configurado, desligado ou Ligado. "Configurar": endereço (URL), chave/token (fica cifrada, nunca volta para a tela; em branco mantém), Ligada. "Testar" só confere a chave aqui dentro; nada é chamado lá fora.

Mesmo "Ligada" aqui, mensagens e O.S. só saem com a trava de saídas ligada no servidor (capítulo 9). Hoje está desligada.

8.7 Guarda de dados

Por quê: antes de apagar, conferir se a Lei 14.967/2024 (Estatuto da Segurança Privada) ou algum contrato pede guarda maior. Apagar não tem volta.


9. Segurança e trilha de auditoria

Para: administrador, Guilherme.

9.1 Tudo fica registrado

O Halo tem um registro de auditoria que não pode ser alterado nem apagado (o próprio banco recusa). Entra lá:

A linha do tempo de cada ocorrência também é só de acréscimo: nada se edita depois.

9.2 Trava geral das saídas

O que o programa faria sozinho está desligado:

Só saem quando o servidor tiver ARGOSWATCH_SAIDAS=ligadas no arquivo de configuração. Hoje está desligado, por ordem do Guilherme ("vamos demorar a ligar"). Enquanto isso, tudo só é registrado ("registrado, não enviado").

Na mesa, o botão WhatsApp abre o WhatsApp do PC com a mensagem pronta — quem envia é o atendente, à mão.

9.3 Comandos só por clique

Armar, desarmar e PGM não ficam atrás da trava, porque só acontecem quando um atendente clica. Nada é automático. Continuam valendo a permissão por papel e o registro de quem mandou. Decisão do dono (13/10): "isso só acontece se clicar, nada é feito automaticamente".

9.4 Outras proteções


10. Para o técnico de TI

10.1 Arquitetura

Peça Onde Detalhe
Servidor (VPS) 45.55.140.119, pasta /opt/argoswatch Mesma VPS do Argos, stack separada
Contêineres argoswatch-core, argoswatch-postgres, argoswatch-redis, argoswatch-emqx Docker Compose
Banco Postgres + TimescaleDB, porta 127.0.0.1:5434 no host Só localhost (5433 é de outro Postgres)
Mesa/API 127.0.0.1:8080 Só localhost — atrás de proxy/HTTPS quando abrir
Receptor JFL direto porta 9601 (exposta) Centrais JFL conectam aqui
Cópia do espelho porta 9602 (exposta, exige token) Vem do espelho do PC da central
Receptor Intelbras porta 9009 (exposta) Nunca testada com central real
Saúde GET /health {"ok":true,"db":true,...}
Código repositório próprio ARGOSWATCH/ branch master
Migrações aplicadas sozinhas no boot do core (runner), em ordem: 001 a 011 Só aditivas

Segredos (senha do banco, AUTH_SECRET, ARGOSWATCH_CHAVE_CIFRA, JFL_ESPELHO_TOKEN, senha do admin): no cofre C:\Projects\COFRE-SEMELC e no .env do servidor (/opt/argoswatch/.env). Nunca copiar para cá.

Chaves de comportamento no .env:

Chave Hoje Efeito
ARGOSWATCH_SAIDAS desligada ligadas = WhatsApp e O.S. saem
AUTH_2FA_OBRIGATORIO desligada 1 = obriga 2FA para quem revela código

10.2 O espelho no PC da central

Item Valor
PC 192.168.1.33 (PC da central, onde roda o Active Net)
Pasta C:\argoswatch-espelho
Tarefa agendada "Halo Espelho" (roda como SYSTEM; liga no boot e se reergue a cada 5 min; reinicia em 1 min se cair)
Porta ouve 3399; repassa para 127.0.0.1:3389 (Active Net); copia para a VPS na 9602
Configuração C:\argoswatch-espelho\espelho.env (contém o token — acesso só de SYSTEM e administradores)
Log C:\argoswatch-espelho\espelho.log
Firewall do Windows regra "Halo Espelho 3399"
Instalar/atualizar pasta instalador-espelho, INSTALAR-ESPELHO.bat como administrador (precisa do espelho.env junto)

No roteador (Mikrotik da SEMELC, 192.168.1.1, acesso por WinBox, usuário semelc): em IP → Firewall → NAT existem três regras que importam:

Regra (comentário) O que faz
ESPELHO ARGOSWATCH (a primeira da lista, #0) Manda a porta 3389 que chega da internet para o PC da central na porta 3399 — ou seja, pelo espelho. Criada em 13/10/2026.
REDIRECIONAMENTO SERVIDOR 1 (portas 554, 7515, 8032-8033, 3389) A regra antiga: câmeras e a 3389 direto para o Active Net. Não mexer — ela segue valendo para as câmeras e volta a valer para a 3389 se a regra do espelho for desligada.
REDIRECIONAMENTO SERVIDOR 1 (porta 3399) Usada no teste da Bancada (IP2 = ddns:3399). Pode ficar.

Como desfazer (voltar ao jeito antigo, sem espelho):

  1. Abrir o WinBox → IP → Firewall → NAT.
  2. Selecionar a regra ESPELHO ARGOSWATCH e clicar em Disable (o X vermelho). Não apague, não edite outras regras.
  3. As conexões novas das centrais passam a ir direto ao Active Net pela regra antiga. As que já estavam abertas só mudam quando a central reconecta (minutos; desligar e ligar a central força).
  4. A Fulltime não é afetada em nenhum dos dois caminhos; o Halo só para de receber a cópia. Para voltar ao espelho: Enable na mesma regra.

10.3 Backups

Comandos (os mesmos usados nos deploys de 13/10):

ssh root@45.55.140.119
D=$(date +%Y%m%d-%H%M)
docker exec argoswatch-postgres pg_dump -U argoswatch -Fc argoswatch > /root/backup-argoswatch/pg-$D.dump
tar czf /root/backup-argoswatch/opt-$D.tgz -C /opt argoswatch
cp /opt/argoswatch/.env /root/backup-argoswatch/env-$D

10.4 Abrir a mesa hoje (túnel)

A mesa só escuta em localhost da VPS. Do PC:

ssh -L 8080:localhost:8080 root@45.55.140.119

Deixe a janela aberta e abra no navegador: http://localhost:8080/mesa (cadastro: http://localhost:8080/cadastro).

10.5 Subir uma versão nova

Do PC, dentro da pasta ARGOSWATCH (com o código já commitado):

git archive HEAD app/src docker-compose.yml | ssh root@45.55.140.119 "cd /opt/argoswatch && tar xf - && docker compose up -d --build"

Depois:

  1. ssh root@45.55.140.119 "docker logs --tail 100 argoswatch-core" — conferir se subiu sem erro e se as migrações novas aplicaram.
  2. curl http://localhost:8080/health dentro da VPS → db:true.
  3. Abrir a mesa pelo túnel e conferir a fila.

10.6 Onde ver logs

O quê Comando / arquivo
Servidor ssh root@45.55.140.119 "cd /opt/argoswatch && docker compose logs -f core" (ou docker logs --tail 100 argoswatch-core)
Banco docker compose logs postgres
Espelho C:\argoswatch-espelho\espelho.log no PC da central
Série recusada log do core ("série bloqueada") e a tela Cadastro › Séries recusadas

10.7 Se o espelho cair

Importante: com a regra do roteador apontando para o espelho, se o programa do espelho parar, as centrais não chegam ao Active Net (o espelho é a porta de entrada). A tarefa se reergue sozinha (a cada 5 min e 1 min após falha), mas confira:

  1. No PC da central: netstat -ano | findstr :3399 → tem que aparecer LISTENING.
  2. Não está? Rode a tarefa: schtasks /run /tn "Halo Espelho". Veja o espelho.log.
  3. Não sobe? Desfaça a regra do roteador (10.2) para as centrais voltarem direto ao Active Net. Depois investigue com calma.

Se só a cópia falhar (VPS fora, porta 9602 bloqueada): o Active Net continua normal. O espelho tenta reconectar sozinho (5 s até 60 s), guarda até 256 KB por conexão e descarta o resto. A Saúde do parque mostrará queda coletiva com causa "espelho 3389 / PC da central".

Zerar 2FA / derrubar sessões de um usuário: pela tela, em Configurações → Usuários, botões "Zerar 2FA" e "Encerrar sessões" (2.3). Por baixo usam as rotas POST /api/users/:id/2fa/zerar e POST /api/users/:id/revogar (exigem "Gerenciar usuários"), caso precise fazer pelo servidor.

10.8 Ligar a supervisão (sair do modo observar)

A supervisão lê seus limites da tabela comm_config a cada ciclo (vale sem reiniciar). Para ligar, depois das 48 h de observação e com ordem do dono, mudar abrir_ocorrencia para true. Os demais limites (24 h/6 h da via caída, 5 min de espera, 5 centrais ou 10% da queda coletiva) ficam na mesma tabela.

10.9 M-300 antigo

O M-300 antigo (módulo GPRS de ~2013) não é suportado. Ele não fala o protocolo público da JFL: só conversa com o Active Net. Caminhos em estudo: receber a saída do Active Net, pedir a especificação à JFL (carta de 13/10) ou trocar por M-300+/Flex. É proibido tentar decifrar o tráfego bruto do módulo. O M-300+ e o M-300 Flex usam o protocolo público e o Halo os entende (testado só com exemplo do manual, não com módulo real).


11. Glossário

Termo Explicação simples
Active Net Programa da JFL no PC da central que recebe as centrais e programa à distância
Anular zona No Halo: parar de abrir ocorrência daquela zona por um prazo (não mexe na central)
Arme / desarme Ligar / desligar o alarme
Central O aparelho de alarme na casa do cliente
Coação Alguém obrigando o cliente a desarmar. Central manda código especial, ou o contato fala a senha de coação
Contact ID A "língua" dos alarmes: código de 3 números + E/R
Contra-senha / senha verbal Senha que o contato fala ao telefone para provar que é ele
DDNS Endereço fixo na internet de um aparelho com IP variável (ex.: DVR)
E / R E = evento começou; R = voltou ao normal (restauração)
Escalonamento Ocorrência sem dono que sobe ao supervisor (3 ou 10 min)
Espelho Programa no PC da central que repassa o sinal ao Active Net e manda cópia ao Halo
Espera Tempo que um aviso técnico isolado aguarda antes de virar ocorrência (ex.: falta de energia 30 min)
Fulltime Sistema de monitoramento que a SEMELC usa hoje como principal
Inibir Suspender, por prazo, a abertura de ocorrência de uma zona ou central
Keep-alive / sinal de vida Mensagem periódica que a central manda só para dizer "estou viva"
Liberar central Pôr a central cadastrada na mesa (sair de "em observação")
Manutenção Central inteira inibida (só supervisor)
Observação (ocorrência) Ocorrência posta de molho por 15–120 min; volta se chegar evento novo
Em observação (central) Central cadastrada que ainda não foi liberada para a mesa. Não confundir com a observação da ocorrência
Ocorrência Um caso na fila para o atendente tratar
Partição Divisão da central que arma separado (ex.: "Loja" e "Casa")
PGM Saída da central que liga algo (sirene, portão)
Prioridade P0–P3 Urgência: P0 vida em risco, P3 manutenção
Queda coletiva Muitas centrais param de falar juntas
Receptor A "porta" que recebe os sinais (9601 direto, 9602 cópia)
Restauração O mesmo código com R: o problema passou
Série Número único de cada central; a chave do cadastro
Série recusada Central que tentou conectar sem estar cadastrada
Tampa (tamper) Sensor que avisa quando abrem a caixa da central ou do sensor
Teste periódico (602) Sinal automático que a central manda de tempos em tempos
Trava Regra que não se desliga (códigos que nunca esperam; travas anti-sabotagem)
Trava de saídas Chave geral que impede WhatsApp e O.S. automáticos
Via Caminho de comunicação da central (internet a cabo, Wi-Fi, chip)
Zona Cada sensor ou grupo de sensores da central (ex.: "Porta da cozinha")
2FA Verificação em duas etapas: senha + código do celular

12. Perguntas frequentes e problemas comuns

Não ouço som nenhum. Clique na faixa "Som bloqueado pelo navegador" ou em qualquer lugar da página. Use "Tocar teste de som" no login. Confira o volume do PC.

Não consigo sair. Você tem ocorrência assumida. Passe para outro atendente na janela "Passar o turno" (3.16).

O botão "Desarmar" dá "sem permissão". Seu papel não tem a permissão de desarmar. Atendente não desarma (de propósito). Supervisor, Técnico e Administrador desarmam: chame um deles.

Cliquei em "Revelar" e está apagado. Só Supervisor, Técnico e Administrador revelam códigos.

Encerrei e o sistema disse "registro obrigatório". O motivo escolhido exige texto. Use "Montar registro com as ações" e confira.

Coação e não aparece "Falso alarme". De propósito. Coação nunca vira falso alarme.

A ocorrência sumiu da fila. Alguém encerrou, ela foi para "Em observação", ou foi passada. Veja a lista "Em observação" e a tela do Supervisor.

A ocorrência voltou para a fila sozinha. Estava em observação e chegou evento novo daquela central.

Uma central nova não aparece na mesa. Ela está "em observação" no cadastro. Complete cliente, partição e contato e clique em "Liberar central".

Uma central manda sinal e o Halo não mostra nada. A série não está cadastrada. Veja Cadastro › Séries recusadas.

Aparece "Código 123" sem nome na mesa. O código ainda não tem nome. Em Configurações › Protocolo Contact ID, use "Dar nome".

A Saúde do parque mostra queda, mas nada vai para a fila. A supervisão está em modo observar (4.3).

Muitas centrais caíram de uma vez. Veja a causa provável. Se for "espelho 3389 / PC da central", siga 10.7. Acompanhe pela Fulltime.

"Sem conexão com o servidor". Espere reconectar (3 s). Demorou? Avise o técnico e use a Fulltime.

Perdi o celular do 2FA. Peça ao administrador para zerar seu 2FA (botão "Zerar 2FA" em Configurações → Usuários, 2.3). Depois você ativa de novo pelo botão na mesa.

O WhatsApp não foi para o cliente. O envio automático está desligado (trava de saídas). O botão só abre o WhatsApp deste PC; quem envia é você.

A O.S. não apareceu no Argos. Mesmo motivo: a trava das saídas está desligada. Avise o técnico/supervisor para abrir à mão.

Anotei um recado de turno e o colega não viu. O recado aparece para quem recebe numa faixa "Recado do turno anterior", até a pessoa clicar em "Marcar como lido". O Supervisor confere no painel "Recados de turno" se foi lido. Quem recebe precisa estar com a mesa aberta (ou vê ao entrar).


13. O que ainda não existe / próximos passos

Tudo abaixo é planejado ou em estudo. Não funciona hoje.

Operação

Acesso

Integrações (plano 09)

JFL

Dados


Fim do manual.