# Guia da câmera Intelbras LPR (ITSAPI) — passo a passo fácil

**O que é, em uma frase:** faz a câmera Intelbras (que lê placas) mandar cada leitura
**direto para o Nexus**, sem precisar do OpenALPR. Quem decide abrir ou não o portão
continua sendo o **Nexus** (mesma regra de sempre).

**Fique tranquilo:** você pode migrar **uma câmera de cada vez**. As câmeras antigas
(OpenALPR) continuam funcionando ao mesmo tempo.

**Você vai precisar de:** o **IP do servidor** onde roda o Nexus, o acesso à **tela da
câmera** (navegador), e uns **15 minutos**.

---

## Passo 1 — cadastrar a câmera no Nexus

1. Abra o Nexus → menu **Câmeras ALPR** → **Editar** a câmera (ou **Nova câmera**).
2. Em **Tipo de integração**, escolha **"Intelbras ITSAPI (PUSH direto)"**. O
   formulário passa a mostrar só os campos que importam.
3. Preencha:
   - **camera_id:** qualquer nome/identificador (livre).
   - **ITSAPI Device ID:** deixe em branco por enquanto — vamos pegar esse número na
     câmera no Passo 2 e voltar aqui.
   - **Sentido liberado:** *Ambos*, *Só aproximando* (Obverse) ou *Só afastando*
     (Reverse).
   - **Função:** *Entrada*, *Saída*, *Mista* ou *Contagem* (é a Função que decide
     entrada/saída — não a direção da câmera).
   - **Portão vinculado:** o portão que essa câmera abre.
   - **Status:** Ativa.
4. Salve.

✅ **Deu certo se:** a câmera aparece na lista como do tipo **ITSAPI**.

---

## Passo 2 — configurar a câmera (na tela dela)

Entre na câmera pelo navegador e vá em **Rede → ITSAPI** (ou "Plataforma"):

1. **Ativar:** ligado.
2. **Autenticação:** desligada (mais simples, se a câmera está numa rede isolada).
3. **Servidor da plataforma:** digite **só a base**, assim (troque pelo IP do seu
   servidor):

   ```
   http://172.16.2.10:80
   ```

   > Importante: **só a base** — a câmera completa o resto do endereço sozinha. E use
   > **HTTP** (não HTTPS) no começo.
4. **Tipo de dados:** marque **Info ANPR**. Deixe **"Abertura de barreira"
   desmarcado** (quem abre é o Nexus).
5. **Imagem:** marque **Imagem original** (e "Recorte da placa" se quiser). **Formato
   = UTF8**.
6. **Heartbeat:** 30 a 300 segundos. **Horários de reenvio:** 3.
7. Clique **Aplicar**. Se você mudou de HTTPS para HTTP, **reinicie a câmera**.
8. Ainda na tela da câmera, anote o **"Dispositivo ID"** (Device ID) que aparece no
   ITSAPI.

✅ **Deu certo se:** você anotou o **Dispositivo ID** da câmera.

---

## Passo 3 — colar o Device ID no Nexus

Volte no Nexus (**Câmeras ALPR → Editar** a mesma câmera), cole o número no campo
**ITSAPI Device ID** e **salve**. É por esse número que o Nexus sabe de qual câmera
(e de qual portão) veio a leitura.

✅ **Deu certo se:** o campo **ITSAPI Device ID** está preenchido e salvo.

---

## Passo 4 — testar

**4.1 — Autoteste do receptor.** No navegador do **servidor**, abra:

```
http://SEU_IP_DO_SERVIDOR/itsapi.php?selftest=1
```

Deve mostrar `db: ok`, `itsapi_device_id_coluna: ok` e a lista de câmeras.

**4.2 — Simular uma leitura** (de outro computador na mesma rede, no Prompt de
Comando). Troque `SEU_IP_DO_SERVIDOR` e `DEVICE_ID_CADASTRADO`:

```bash
curl -i -X POST http://SEU_IP_DO_SERVIDOR/NotificationInfo/KeepAlive -H "Content-Type: application/json" --data "{\"DeviceID\":\"TESTE\"}"
```

```bash
curl -i -X POST http://SEU_IP_DO_SERVIDOR/NotificationInfo/TollgateInfo -H "Content-Type: application/json" --data "{\"Picture\":{\"Plate\":{\"PlateNumber\":\"ABC1D23\",\"Confidence\":188,\"IsExist\":true},\"SnapInfo\":{\"SnapTime\":\"2026-06-05 10:00:00\",\"DeviceID\":\"DEVICE_ID_CADASTRADO\",\"Direction\":\"Obverse\"},\"NormalPic\":{\"Content\":\"\"}}}"
```

Nos dois, a resposta tem que ser **`200`** com um corpo tipo `{"Result":true,...}`.

**4.3 — Teste real:** ligue o **Ativar** na câmera, passe um veículo e confira no
Nexus em **Histórico** se a passagem foi registrada e o portão abriu.

✅ **Deu certo se:** a passagem de teste apareceu no **Histórico**.

---

## Deu algum problema?

- **A mesma placa fica chegando repetida no log:** algo está "engolindo" a resposta
  do Nexus (um proxy no meio). Confira o roteamento até o servidor.
- **No Histórico aparece "câmera não configurada":** o Device ID que a câmera mandou
  não bate com o que você cadastrou. Abra `logs/itsapi.log`, veja o **DeviceID
  recebido** e cole exatamente ele no cadastro da câmera (Passo 3).
- **Entrada saiu como saída (ou vice-versa):** isso é definido pela **Função** da
  câmera no Nexus, não pela direção da Intelbras. Ajuste a Função.
- **A câmera não conecta:** confirme que está em **HTTP** (não HTTPS) e que o servidor
  digitado é **só a base** (`http://IP:porta`, sem `/NotificationInfo`).

---

## Detalhes (para curiosos / técnico)

- **Como funciona por dentro:** o receptor `public/itsapi.php` recebe
  `/NotificationInfo/TollgateInfo` (placa) e `/NotificationInfo/KeepAlive`
  (batimento), responde o **ACK JSON obrigatório** e entrega ao `AlprService` (decide,
  abre o portão, grava histórico + imagens). O `public/.htaccess` já roteia esses
  caminhos (sem diferenciar maiúsculas/minúsculas).
- **Banco:** as colunas `camera_config.integracao`, `itsapi_device_id` e
  `itsapi_direcao` já estão no `schema.sql` (base antiga: rode `migration_camera_itsapi.sql`).
- **Segurança:** deixe a câmera numa **rede isolada**, libere só o IP do servidor e o
  NTP, **sem exposição à internet**. Em produção, deixe `$LOG_RAW = false` no `itsapi.php`.
- **Desligar o OpenALPR (opcional):** quando todas as câmeras forem Intelbras, basta
  parar de apontar câmeras para `/controle_veiculo.php`. Nada precisa ser removido.
