# Integração com o alarme Intelbras AMT 8000

Este guia liga as suas centrais de alarme **Intelbras AMT 8000** (casa, cerca
virtual, áreas) ao Nexus. Depois de configurar, o sistema mostra sozinho se cada
central está **armada ou desarmada**, quais **zonas estão abertas ou em disparo**,
avisa **na hora** quando algo dispara (por Pushover / WhatsApp / notificação), e
deixa você **armar e desarmar** pelo próprio sistema.

> Em miúdos: o Nexus conversa com as centrais **direto pela rede local**, sem
> nuvem e sem depender de empresa de monitoramento. Tudo fica na sua LAN.

---

## Como funciona (para entender antes de configurar)

Cada central AMT 8000 faz **duas coisas** na rede, e o Nexus usa as duas:

1. **Ela responde perguntas** na porta **9009**: "está armada?", "quais zonas
   estão abertas?", "arma aí", "desarma". É assim que o painel mostra o estado e
   os botões de armar/desarmar funcionam.

2. **Ela avisa quando acontece algo** (disparo, arme, falta de energia). Para isso,
   a central precisa saber **para quem ligar** — é o tal do "Receptor IP". Você
   cadastra o **IP do servidor** como Receptor na central, e ela passa a empurrar
   os eventos para o Nexus em tempo real.

O Nexus é o **Receptor IP** dos seus alarmes (suas centrais são autônomas, não
têm empresa de monitoramento). Uma central AMT 8000 fala com **dois** receptores ao
mesmo tempo — então, se um dia você contratar monitoramento, dá para ter os dois.

> ⚠ O protocolo **não é criptografado**. Central e servidor têm que estar na mesma
> rede local confiável (a sua: 172.16.0.x). **Nunca** libere essas portas para a
> internet.

---

## Antes de começar

Você vai precisar de:
- O **IP de cada central** na rede (ex.: 172.16.0.50). Deixe-o **fixo** no roteador.
- A **senha de acesso remoto** de cada central (a mesma que você usa no app
  **AMT Remoto Mobile**).
- Acesso ao servidor onde o Nexus roda (`C:\wamp64\www`).
- O app **AMT Remoto** (ou o software AMT 8000) para configurar o Receptor na central.

---

## Passo 1 — Prepare o banco de dados

1. No servidor, abra o **phpMyAdmin** (http://localhost/phpmyadmin).
2. Clique no banco `controle_veiculos`.
3. Aba **Importar** → escolha o arquivo `api\database\migration_alarme.sql` →
   **Executar**.

✅ **Deu certo se:** aparecer "Importação executada com sucesso" (cria 3 tabelas:
`alarme_central`, `alarme_zona`, `alarme_evento`).

> Se estiver instalando o sistema do zero, o `schema.sql` já traz essas tabelas —
> pode pular este passo.

---

## Passo 2 — Ligue o Receptor IP no `.env`

1. No servidor, abra **`C:\wamp64\www\api\.env`** com o Bloco de Notas.
2. Adicione (ou confira) estas linhas:

   ```
   ALARME_RECEPTOR_ENABLED=true
   ALARME_RECEPTOR_PORT=9010
   ALARME_TIMEOUT=8
   ```

3. Salve.

> A porta **9010** é a que o servidor abre para as centrais conectarem. Ela é
> DIFERENTE da 9009 (que é a porta na própria central). Só mude se a 9010 já
> estiver em uso por outra coisa no servidor.

✅ **Deu certo se:** o arquivo salvou.

---

## Passo 3 — Instale os "trabalhadores" (workers)

O Nexus usa dois trabalhadores de segundo plano para o alarme: o **receptor**
(recebe os eventos) e o **leitor de status** (pergunta o estado de tempos em tempos).

1. Menu Iniciar → digite **cmd** → clique com o botão direito → **Executar como
   administrador**.
2. Cole e Enter:

   ```
   C:\wamp64\www\api\scripts\install_workers.bat
   ```

✅ **Deu certo se:** na conferência do fim, aparecerem `[PRESENTE] alarme_bridge` e
`[PRESENTE] auto_alarme`.

---

## Passo 4 — Cadastre cada central no sistema

1. Entre no Nexus como administrador.
2. Menu **Monitoramento → Alarme** → botão **Nova central**.
3. Preencha:
   - **Nome**: "Casa", "Cerca virtual", "Portaria"…
   - **IP da central**: o endereço fixo dela na rede (ex.: 172.16.0.50).
   - **Porta**: deixe **9009** (padrão).
   - **Senha da central**: a senha de acesso remoto.
   - **Tamanho da senha**: 6 dígitos (ou 4, se a sua for de 4).
4. Deixe **Ativa** e **Ler o status automaticamente** marcados. Salve.

✅ **Deu certo se:** ao abrir a central e clicar em **Ler agora**, aparecer o estado
(Armado/Desarmado), o firmware e as zonas. Se der erro de conexão, confira o IP e a
senha, e se o servidor alcança a central (teste com `ping <IP>` no cmd).

---

## Passo 5 — Configure o Receptor IP na central (para receber os disparos)

Isto é feito no **app AMT Remoto** (ou no software da central), não no Nexus.

1. Abra a configuração da central no AMT Remoto.
2. Procure **Receptores IP** (ou "Monitoramento" → "IP").
3. No **Receptor 1**, coloque:
   - **IP**: o endereço do **servidor** onde o Nexus roda (o WAMP).
   - **Porta**: a mesma do `.env` — **9010**.
4. Salve na central.

✅ **Deu certo se:** minutos depois, ao disparar uma zona de teste (abrir uma porta
monitorada com o alarme armado), o evento aparecer em **Alarme → Últimos eventos** no
Nexus — e você receber a notificação.

> Dica: para as zonas aparecerem com nome ("Porta da frente") em vez de "Zona 5",
> abra a central no Nexus e use **Nomes das zonas**.

---

## O que o sistema faz sozinho

- **Mostra o estado** de cada central (armada/desarmada, zonas abertas, problemas de
  bateria/energia), atualizado a cada ~2 minutos.
- **Avisa na hora** de um disparo, incêndio, pânico ou coação — pelos canais que
  você já usa (Pushover, WhatsApp, notificação do navegador). Falta de energia e
  bateria baixa também avisam, com prioridade menor.
- **Guarda o histórico** de todos os eventos.
- Publica os eventos no **barramento interno** (`nexus/alarme`), então o **motor de
  regras** pode reagir a eles ("se disparou a cerca virtual → acende as luzes e
  manda WhatsApp").

---

## Armar e desarmar pelo sistema

Quem tiver a permissão **alarm.arm** (portaria e administração) vê os botões na tela
da central: **Armar tudo**, **Armar (permanência)**, **Desarmar**, **Desligar
sirene** e **Limpar disparo**. O painel relê o estado logo depois de cada comando.

---

## Deu problema?

- **"não conectou em …:9009"** → o servidor não alcança a central. Confira o IP
  (fixo?), se a central está ligada na rede, e teste `ping <IP>` no cmd do servidor.
- **"senha incorreta"** → a senha cadastrada não é a de acesso remoto da central.
  Confira no app AMT Remoto.
- **"central ocupada"** → a central está sendo acessada por outro app naquele
  instante (o próprio AMT Remoto, por exemplo). Tente de novo em alguns segundos.
- **Os eventos não chegam (mas o status funciona)** → o Receptor IP não está
  configurado na central (Passo 5), ou o IP/porta do servidor está errado lá, ou o
  worker `alarme_bridge` não está rodando (rode `php api\scripts\workers_check.php`).
- **Quero desligar** → em **Configurações → Módulos**, desligue "Alarme Intelbras
  AMT 8000" (ou `ALARME_RECEPTOR_ENABLED=false` no `.env`).

---

## É seguro?

- A senha da central fica **só no banco do servidor**.
- Toda a comunicação é **na sua rede local** — o protocolo não sai para a internet.
- Armar/desarmar exige permissão própria (**alarm.arm**), separada de quem só pode
  ver (**alarm.view**). Cada comando é registrado na **auditoria**.
