ESPHome
A integração ESPHome se conecta diretamente à API nativa de qualquer firmware ESPHome (porta TCP 6053), sem precisar passar por um broker MQTT externo. Funciona tanto com dispositivos do próprio usuário quanto com módulos ESP de terceiros já em produção. Diferente do Flexhome (que é o nosso firmware customizado adotado por QR/MAC), esta integração fala o protocolo aberto do ESPHome — todo dispositivo flashado comesphome compile é compatível.
Plataformas suportadas no v1
switch(turn_on / turn_off / toggle)binary_sensor(estado on/off)button(press)cover(open / close / stop / set_position)lock(lock / unlock / open)sensor(numérico — uptime, RSSI, temperatura, etc., com unit_of_measurement)text_sensor(string — versão do firmware, IP, status custom, etc.)
light, climate, fan, number, select, media_player, valve. Adicionar suporte é mecânico (mais um decoder no messages.ts + uma entrada no service-map.ts) — abra uma issue se precisar.
Pré-requisitos
- O dispositivo precisa estar na mesma rede LAN do edge
homedo Portal. - A porta 6053/TCP precisa estar acessível (firmware ESPHome com
api:habilitado, sem firewall bloqueando). - Suportamos os dois modos de autenticação:
- Noise (recomendado) —
api.encryption.keyno YAML. - Senha legada —
api.passwordno YAML (modo plaintext, sem criptografia em trânsito).
- Noise (recomendado) —
YAML mínimo no firmware
Para um dispositivo de teste com switch + binary_sensor:Configurar no Portal
Obtenha a chave de criptografia
Abra o YAML do firmware e copie o valor de
api.encryption.key. Se o seu dispositivo usa apenas api.password, anote a senha.Preencha os dados
- Host: IP ou hostname do dispositivo (ex.:
192.168.1.42ouesphome-living.local) - Porta:
6053(padrão; só altere se você mudou no firmware) - Chave de criptografia (Noise): cole o
api.encryption.key - Senha (legada): deixe vazio se usa Noise; preencha apenas para firmwares com
api.password
Como funciona
- Conexão persistente: o edge
homemantém uma conexão TCP aberta com cada dispositivo. Atualizações de estado chegam em tempo real (subscribe states), sem polling. - Reconexão automática: se a conexão cair (queda de rede, reboot do dispositivo, etc.), o edge reconecta com backoff exponencial (1s → 2s → 5s → 10s → 30s, com jitter de ±20%).
- Sync de entidades: a cada (re)conexão, o edge chama
ListEntitiese sincroniza com o registry do Portal. Adicionar/remover entidades no firmware reflete no Portal automaticamente após reflash + reconexão.