# Guia de interoperabilidade do prédio — passo a passo bem fácil

**O que é isto, em uma frase:** conectar ao Nexus os sistemas "grandes" do prédio —
**elevador, gerador, ar-condicionado central (HVAC), quadros de energia, bombas** —
que falam protocolos industriais (**Modbus, KNX, BACnet**) ou o novo padrão de casa
inteligente (**Matter**).

**A ideia central (simples):** o Nexus tem **dois caminhos** para "conversar" com
esses equipamentos:

1. **Modbus TCP — direto** (já vem pronto no Nexus). Se o equipamento fala Modbus,
   você cadastra um dispositivo e pronto.
2. **KNX / BACnet / Matter — por um "tradutor" (gateway) + MQTT.** Um aparelho
   gateway converte o protocolo em MQTT, e o Nexus escuta o MQTT (que você já ligou
   no guia do MQTT). Assim, **sem código novo**.

**Antes de começar:** tenha claro **qual protocolo** cada equipamento fala (pergunte
ao instalador/fabricante). Se for **Modbus**, vá ao Caminho A. Se for **KNX, BACnet
ou Matter**, vá ao Caminho B.

---

## Caminho A — Equipamento Modbus (direto, sem gateway)

Serve para bombas, geradores, quadros e medidores que falam **Modbus TCP**.

1. Descubra com o instalador: o **IP** do equipamento (ou do gateway Modbus), a
   **porta** (quase sempre `502`), o **unit id** (endereço da unidade, quase sempre `1`)
   e **qual endereço** liga/desliga ou lê o estado (o instalador chama de "coil" ou
   "registrador").
2. No Nexus, entre em **Automação → Dispositivos → Novo dispositivo**.
3. Em **Driver**, escolha **"Modbus TCP (PLC/gateway industrial)"**.
4. Preencha a configuração (o formulário já traz um modelo). Os campos são:
   - `host` = IP do equipamento (ex.: `172.16.0.50`)
   - `port` = `502`
   - `unit_id` = `1`
   - `mode` = `coil` (liga/desliga por bit) **ou** `register` (por número)
   - `address` = o endereço para **ligar/desligar**
   - `read_address` = o endereço para **ler o estado** (se for o mesmo, repita)
5. Salve. No painel de Automação, o dispositivo aparece como qualquer outro
   (liga/desliga + estado).

✅ **Deu certo se:** o dispositivo aparece no painel e o estado (ligado/desligado) bate
com a realidade quando você aciona.

> **Cuidado com elevador/gerador:** só cadastre para **ligar/desligar** o que for
> seguro. Para esses, o mais comum e prudente é usar em **modo leitura** (só
> monitorar o estado), deixando o acionamento com o sistema original.

---

## Caminho B — KNX, BACnet ou Matter (por gateway → MQTT)

O Nexus não fala KNX/BACnet/Matter "no osso" — e nem precisa. Você usa um **gateway**
(um aparelho tradutor) que joga tudo no **MQTT**, e o Nexus escuta o MQTT.

### Passo 1 — Ter o MQTT ligado

Se ainda não fez, siga primeiro o guia **`INTEGRACAO-MQTT.md`**. Você vai precisar do
**IP do servidor** e do **usuário/senha** do MQTT.

✅ **Deu certo se:** o MQTT está funcionando (você concluiu aquele guia).

### Passo 2 — Instalar/configurar o gateway do protocolo

Escolha um gateway conforme o protocolo (peça ao integrador). Exemplos comuns:
- **KNX:** um gateway "KNX ↔ MQTT" (há appliances e o add-on do Home Assistant).
- **BACnet:** um gateway "BACnet ↔ MQTT".
- **Matter:** um hub Matter que exponha os aparelhos via MQTT (ou via Home Assistant → MQTT).

No painel do gateway, aponte o **MQTT** para o seu servidor: **host** = IP do servidor,
**porta** `1883`, **usuário/senha** do MQTT. Salve.

✅ **Deu certo se:** o gateway mostra "conectado" ao broker MQTT.

### Passo 3 — Descobrir os "recados" (tópicos) que o gateway publica

Cada equipamento vira um tópico MQTT, tipo `predio/elevador/estado` ou
`knx/hvac/temperatura`. Para ver os tópicos que estão chegando, use um app de MQTT
(ex.: **MQTT Explorer** no PC) conectado ao servidor com o mesmo usuário/senha.

✅ **Deu certo se:** você consegue anotar o nome do tópico do equipamento que te interessa.

### Passo 4 — Usar no Nexus (escolha conforme o objetivo)

- **Só MONITORAR / receber alerta** (ex.: "gerador ligou", "temperatura alta"):
  vá em **Configurações → Alertas → Nova regra**, tipo **"Tópico MQTT"**, cole o
  tópico e defina a condição. (É o mesmo caminho do guia do Frigate.)
- **Medir consumo** (ex.: energia por um medidor que publica no MQTT): vá em
  **Automação → Consumo → Novo medidor** e preencha o campo **Tópico MQTT** com o
  tópico do medidor.
- **LIGAR/DESLIGAR** um equipamento que aceita comando por MQTT: vá em **Automação →
  Dispositivos → Novo dispositivo**, driver **"MQTT (Tasmota/ESPHome nativo)"**, e
  informe o **tópico de comando** e o **tópico de estado** que o gateway usa.

✅ **Deu certo se:** o alerta chega / o consumo aparece / o dispositivo liga e desliga.

---

## E a voz (falar com o assistente)?

O **Assistente do condomínio** (menu Início → Assistente) já responde por **texto**.
Colocar **voz** (falar e ouvir) é uma camada de **front-end** que se encaixa por cima
dele no futuro: um microfone no navegador → transcrição por **Whisper** (voz→texto) →
o assistente responde → **Piper** lê a resposta (texto→voz). Isso depende de um
computador com um pouco mais de força e não é coberto por este guia — o assistente
por texto funciona hoje, sem hardware extra.

---

## Deu problema?

**Não sei qual protocolo meu equipamento fala.** Pergunte ao instalador ou veja o
manual: procure as palavras **Modbus**, **KNX**, **BACnet** ou **Matter**.

**O gateway não conecta no MQTT.** Confira IP do servidor, porta `1883` e usuário/senha
(iguais aos do guia do MQTT). Veja se o firewall libera a porta 1883 (há um passo para
isso no guia do MQTT).

**Modbus não responde (timeout).** Confira IP, porta `502` e o **unit id**. Muitos
equipamentos têm o Modbus **desligado de fábrica** — peça ao instalador para habilitar.

**Tenho medo de acionar elevador/gerador sem querer.** Use **só leitura** (monitorar).
Deixe o acionamento crítico com o sistema original; o Nexus observa e alerta.

---

Resumo: **Modbus** entra direto; **KNX/BACnet/Matter** entram por um **gateway → MQTT**,
reaproveitando tudo o que o Nexus já sabe fazer com MQTT (alertas, consumo, dispositivos).
