# Guia dos serviços em segundo plano (workers) — passo a passo fácil

**O que é, em uma frase:** o Nexus tem uns programinhas que rodam sozinhos o tempo
todo (checar câmeras, água, disparar alertas, previsão do tempo, vídeo ao vivo…).
Este guia **liga todos eles de uma vez**.

**Fique tranquilo:** existe um **instalador** que faz tudo. Você quase não mexe em nada.

**Você vai precisar de:** o computador **servidor**, uns **5 minutos**, e uma conta de
**administrador** do Windows.

---

## Passo 1 — (só uma vez) conferir o caminho do PHP

Os workers usam o PHP do WAMP. Os arquivos já vêm com o caminho padrão
`C:\wamp64\bin\php\php8.3.28\php.exe` — **na maioria das vezes não precisa mexer**.

Só ajuste se a **sua** versão do PHP for outra:
1. Abra a pasta `C:\wamp64\www\api\scripts`.
2. Abra qualquer arquivo `.bat` (ex.: `auto_poll.bat`) com o **Bloco de Notas**.
3. Veja a linha `set "PHP=..."`. Se aquele caminho **não existe** no seu computador,
   corrija para a pasta certa do seu `php.exe`.

✅ **Deu certo se:** o caminho depois de `set "PHP="` existe no seu computador.

---

## Passo 2 — instalar TODOS os serviços de uma vez

1. Abra a pasta `C:\wamp64\www\api\scripts`.
2. Ache o arquivo **`install_workers.bat`**.
3. Clique nele com o **botão direito** → **"Executar como administrador"** → **Sim**.
4. Vai abrir uma janela preta, criar as tarefas e mostrar **`[OK]`** em cada uma.
   No final, aperte uma tecla para fechar.

✅ **Deu certo se:** apareceu **"Tarefas criadas/atualizadas: N | Falhas: 0"**.

Isso instala **e já liga**:
- **Contínuos** (sobem sozinhos no boot): monitor de eventos (InControl), barramento
  **MQTT**, e o **vídeo** (go2rtc).
- **Periódicos**: status dos aparelhos, agendas, água, câmeras, **alertas**,
  **previsão do tempo**, importação de eventos, nascer/pôr do sol, e limpeza diária.

---

## Passo 3 — conferir que está tudo rodando

1. Abra o Nexus no navegador → menu **Central** (ou **Diagnóstico**).
2. Veja o card **"Serviços do sistema"**: depois de 1–2 minutos os workers aparecem
   como **ativos (verde)**.

✅ **Deu certo se:** os obrigatórios estão verdes. (Os opcionais só ficam verdes se
você usa aquele recurso — ex.: o MQTT só fica ativo com ele habilitado.)

---

## Passo 4 — quando atualizar o sistema, rode de novo

Pode rodar o `install_workers.bat` **quantas vezes quiser** — ele atualiza as tarefas
sem duplicar. Rode a cada atualização do Nexus, por garantia.

---

## Para DESLIGAR / remover tudo

Clique com o botão direito em **`uninstall_workers.bat`** → **"Executar como
administrador"**. Ele **para e apaga** todas as tarefas do Nexus de uma vez.

---

## Deu algum problema?

- **"precisa de administrador":** você tem que clicar com o **botão direito** →
  **"Executar como administrador"** (não dá dois cliques normais).
- **Alguma tarefa apareceu `[FALHOU]` ou `[PULADO]`:** confira se o `.bat` daquele
  worker está na **mesma pasta** `api\scripts`.
- **A Central não fica verde:** confira o caminho do PHP nos `.bat` (Passo 1) e se o
  **WAMP** está rodando (ícone verde do WampServer).
- **O vídeo (go2rtc) não sobe:** você precisa ter o `go2rtc.exe` em
  `C:\wamp64\go2rtc\` — veja o guia `deploy/INTEGRACAO-VIDEO-GO2RTC.md`.
- **O MQTT (mqtt_bridge) fica "sem dados":** ele só age com `MQTT_ENABLED=true` no
  `.env` — veja `deploy/INTEGRACAO-MQTT.md`.

---

## Detalhes (para curiosos)

- **Frequências:** status/agendas/alertas a cada **1 min**; água **2 min**; câmeras
  **3 min**; previsão do tempo **15 min**; importação de eventos **10 min**; sol
  **01:00**; limpeza **03:00**. Os três contínuos ficam sempre ligados.
- **Vídeo (go2rtc):** a config das câmeras vem do banco. Rode **`deploy_go2rtc.bat`**
  (como administrador) para **(re)gerar** o `go2rtc.yaml` e reiniciar o vídeo — sem
  copiar/colar YAML.
- **Leitura de placas (ALPR):** **não** é tarefa agendada — chega pelo Apache
  (`public/itsapi.php`), sempre no ar junto do site.
- **Como o Nexus sabe que está tudo rodando:** cada worker manda um "batimento"
  (heartbeat) que aparece na **Central**/**Diagnóstico**.

> **Instalação manual (avançado):** se preferir criar as tarefas à mão no **Agendador
> de Tarefas**, cada worker tem seu `.bat`; use o gatilho **"Ao inicializar"** para os
> contínuos (monitor_bridge, mqtt_bridge, go2rtc) e **"Repetir a cada X min"** para os
> periódicos, executando como **SYSTEM**. Mas o `install_workers.bat` já faz tudo isso.
