Oi pessoal!
Estou muito feliz em compartilhar a primeira integração open-source do videoporteiro Intelbras Allo wT7 com o Home Assistant:
GitHub - fdaneluzzi/homeassistant-allo-wt7: Home Assistant integration for the Intelbras Allo wT7 video intercom — open doors over local LAN, no app needed (Quvii/Qualvision SDK) · GitHub
Por que isso era difícil — e como ficou viável
Quem já tentou integrar o wT7 ao HA sabe a frustração: a Intelbras não disponibiliza nenhuma API pública, nenhuma documentação de protocolo e nenhum suporte para a comunidade de desenvolvedores. A resposta oficial, até hoje, é sempre a mesma: “use o aplicativo” ou “não temos integração prevista”.
Para chegar até aqui foi necessário fazer engenharia reversa completa do aplicativo e do protocolo de comunicação. Usei o Claude (IA da Anthropic) intensivamente como parceiro de análise durante 2-3 dias — o que antes pareceria semanas de trabalho solo ficou viável num final de semana. Descobrimos que o dispositivo usa um SDK de terceiros chamado Quvii/QVCloud, que a Intelbras nunca documentou publicamente. A partir daí foi possível entender o fluxo de autenticação e os comandos do protocolo, e construir a integração do zero.
Ver a porta abrir pelo Home Assistant pela primeira vez depois de tudo isso foi uma das satisfações mais absurdas que já tive num projeto de automação. 
O que o MVP faz hoje
Abrir porta(s) diretamente pelo Home Assistant — entidade nativa, sem depender do app, sem gambiarra
Roadmap — o que vem nos próximos dias
Isso é só o começo. Os próximos itens que planejo implementar:
Stream de vídeo em tempo real no dashboard do HA
Sensor de campainha — automações quando alguém aperta o botão
Snapshot automático ao receber uma chamada
Suporte ao wT7 Lite
Histórico de eventos de acesso
Como instalar
A instalação é feita via HACS (recomendado) ou manualmente copiando os arquivos para a pasta custom_components. Instruções completas no README do repositório.
Compatibilidade
Testado no Intelbras Allo wT7. Se você tem o wT7 Lite ou outra variante e quiser testar, seria muito bem-vindo — abre uma issue no repo contando o resultado.
Contribuições
O projeto é open-source e aberto a contribuições. Se você tem experiência com HA, Python ou engenharia reversa de protocolos e quer ajudar a acelerar o roadmap, é só abrir uma PR ou issue no GitHub.
Qualquer dúvida, problema na instalação ou sugestão, comenta aqui ou abre uma issue no repositório!
5 curtidas
Show de bola. Integrei o componente customizado ao meu Home Assistant só que ao tentar configurar não consigo dar sequencia pois ele sempre me retorna o erro PIN numérico não bate com o configurado no dispositivo.
Subi um update agora, atualiza no seu home assistant e tenta novamente :). Se ainda estiver dando erro, habilita o debug e me passa os logs que dou uma olhada
Tentei novamente e o log me retornou apenas isso:
2026-06-05 22:00:13.686 INFO (MainThread) [custom_components.allo_wt7.client] cloud OAC obtained (64 chars) for device Casa (IDS9478W)
2026-06-05 22:00:13.821 DEBUG (MainThread) [custom_components.allo_wt7.config_flow] Device rejected unlock PIN: length=4, digits_only=True
Me deu um novo resultado ao tentar configurar:
Vc pode testar alterar sua senha no Allo e testar com a senha nova? Só reforçando que essa senha é o Pin de abertura da porta, que você define lá na tela do porteiro, realmente não é a senha do app. De preferencia, use uma senha de 6 digitos.
Alterei a senha pra uma de 6 digitos no próprio Allo mas continua negando com o mesmo erro acima.
2026-06-06 11:05:32.622 INFO (MainThread) [custom_components.allo_wt7.client] cloud OAC obtained (64 chars) for device Casa (IDS9478W)
2026-06-06 11:05:32.806 DEBUG (MainThread) [custom_components.allo_wt7.config_flow] Device rejected unlock PIN: length=6, digits_only=True
Não teria como colocar o ajuste sem o PIN do dispositivo como é no golmar? Tornar opcional o PIN?
Sim, podemos testar essa abordagem. Estou desconfiado que o seu device (IDS9478W) usa alguma codificação levemente diferente do meu (IDS9478AW), que foi o que usei decodificar o protocolo. Vou botar o Claude pra trabalhar aqui.
Subi uma atualização. Atualiza o componente e reconfigura, mas desta vez desmarca a opção “Dispositivo exige senha de abertura” e deixa o campo de PIN em branco. Aí veja se consegue abrir o portão. Se não der, aí acho que travamos no problema da diferença de device.
Subi a atualização e ele configurou, acho que temos mesmo alguma diferença de device.
Estou rodando a ultima versão do HA, no log obtive o seguinte
Traceback (most recent call last):
File “/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py”, line 281, in handle_call_service
response = await hass.services.async_call(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
…<7 lines>…
)
^
File “/usr/src/homeassistant/homeassistant/core.py”, line 2827, in async_call
response_data = await coro
^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/core.py”, line 2870, in _execute_service
return await target(service_call)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/helpers/service.py”, line 949, in entity_service_call
response_data = await _async_handle_entity_calls(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
…<5 lines>…
)
^
File “/usr/src/homeassistant/homeassistant/helpers/service.py”, line 828, in _async_handle_entity_calls
single_result = await entity.async_request_call(_with_context(entity, coro))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/helpers/entity.py”, line 1702, in async_request_call
return await coro
^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/helpers/service.py”, line 823, in _with_context
return await coro
^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/helpers/service.py”, line 907, in _handle_single_entity_call
result = await task
^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/components/button/init.py”, line 130, in _async_press_action
await self.async_press()
File “/config/custom_components/allo_wt7/button.py”, line 96, in async_press
await self._coordinator.async_open_door(self._lock_number)
File “/config/custom_components/allo_wt7/coordinator.py”, line 227, in async_open_door
await self._client.open_door(
…<4 lines>…
)
File “/config/custom_components/allo_wt7/client.py”, line 214, in open_door
await self._send_opendoor(monitor_ip, oac, unlock_pin, lock_number, scheme)
File “/config/custom_components/allo_wt7/client.py”, line 497, in _send_opendoor
raise AlloWT7Error(f"unexpected LAN error code {err!r}")
custom_components.allo_wt7.client.AlloWT7Error: unexpected LAN error code ‘-1’
E segue dando as seguintes mensagens:
2026-06-06 12:00:03.007 INFO (MainThread) [custom_components.allo_wt7.client] cloud OAC obtained (64 chars) for device Casa (IDS9478W)
2026-06-06 12:00:10.157 DEBUG (MainThread) [custom_components.allo_wt7.coordinator] Doorbell poll transient error (1/3): session error=-1
2026-06-06 12:00:17.306 DEBUG (MainThread) [custom_components.allo_wt7.coordinator] Doorbell poll transient error (2/3): session error=-1
2026-06-06 12:00:24.454 DEBUG (MainThread) [custom_components.allo_wt7.coordinator] Doorbell poll transient error (3/3): session error=-1
2026-06-06 12:00:24.454 INFO (MainThread) [custom_components.allo_wt7.coordinator] Too many consecutive doorbell errors — forcing OAC refresh
Amigo, parabéns pela iniciativa e pela sua evolução! Há tempos estou nessa batalha para conseguir essa integração. Sempre recebi negativas por parte da Intelbras e tentei várias outras formas de fazer funcionar, inclusive adaptando sensores diretamente na placa do monitor.
Meus parabéns pelo trabalho! Vou iniciar os testes por aqui e estou bem animado com a possibilidade de finalmente ter essa integração funcionando.
Amigo venho aqui para retornar o meu teste!
Tudo funcionou perfeitamente!
Abertura do Portão social - OK
Abertura do Portão da Garagem - OK
Mais uma vez meus parabéns.
1 curtida
Obrigado @asterix ! Eu acompanhei um pouco das tentativas anteriores e é bizarro como a Intelbras não tem qualquer interesse em habilitar essas integrações. Se eu soubesse disso antes, não teria comprado os sistemas deles. Felizmente, com IA está ficando mais fácil dar bypass.
@plvsouza realmente seu device tem alguma diferença de protocolo! Infelizmente a única forma de estender essa integração para ele seria fazer um processo de engenharia reversa do protocolo que não é tão simples (envolve usar um aparelho android para fazer umas gambis e capturar pacotes de dados na rede). Caso você tenha tempo e disposição, me chama em DM que eu te passo as instruções mais detalhadas.