UPnP/IGD (Roteador)
A integração UPnP/IGD usa o protocolo Internet Gateway Device sobre UPnP para coletar estatísticas do seu roteador: status da conexão WAN, IP público, bytes e pacotes enviados/recebidos, velocidade de download/upload e uptime da conexão. Baseia-se na mesma abordagem do componente upnp do Home Assistant e funciona com a grande maioria dos roteadores domésticos modernos que expõem UPnP ou NAT-PMP.Roda apenas em um edge local (home). O protocolo SSDP (
239.255.255.250:1900)
é multicast UDP e as chamadas SOAP vão direto ao roteador na LAN — não funciona
por VPN sem bridge multicast.Configurar
1
Habilite UPnP no roteador
Entre na interface do seu roteador e ligue UPnP ou NAT-PMP. Em alguns
firmwares a opção também aparece como “Media server” / “Serviço IGD”.
2
Adicione a integração
Vá em Configurações → Integrações → Adicionar → UPnP/IGD (Roteador) e
selecione um edge local.
3
Escolha o roteador
O Portal faz um M-SEARCH SSDP (janela de ~3s) e lista todos os
InternetGatewayDevice que responderam, com fabricante, modelo e um resumo
do que cada um expõe:- WAN — status da conexão, IP externo, uptime da WAN.
- Tráfego — contadores de bytes e pacotes RX/TX.
4
Pronto
O Portal consulta o
description.xml do roteador, derruba o conjunto certo
de sensores (ignora o que o device não expõe) e começa a fazer polling a
cada 30 segundos.- Se o UPnP/IGD está mesmo habilitado no roteador (ver aviso acima).
- Se o edge está na mesma LAN do roteador (não atrás de outro NAT, VLAN diferente, ou dentro de um container sem rede host).
- Se o firewall do edge não está bloqueando saída UDP para
239.255.255.250:1900.
Entidades
As entidades geradas dependem do que o seu roteador anuncia. A relação completa possível:Com WANIPConnection ou WANPPPConnection
Com WANCommonInterfaceConfig
Como funciona a correção de rollover
Os contadores do IGD são unsigned 32-bit (2^32 ≈ 4,29 GB), definidos na
RFC do protocolo. Em um link gigabit, o contador de bytes dá rollover em menos
de 40 segundos de pico. O runtime mantém um valor “corrigido” acumulado em
memória: a cada poll compara o valor cru atual com o anterior; se o cru caiu,
assume um rollover e soma 2^32 ao delta antes de somar ao corrigido.
Isso mantém os sensores Bytes Recebidos / Bytes Enviados monotônicos para
a UI, enquanto o atributo raw mantém o valor cru para debugging. A velocidade
de download/upload é derivada do delta por segundo e não acumula, então o
rollover é tratado naturalmente ali.
Se você notar spikes gigantes nos sensores de velocidade, provavelmente seu
roteador tem o contador zoado (reinicia aleatoriamente, por exemplo). A
mitigação típica é reduzir o uso dos sensores de velocidade e consumir só
os totais; na próxima versão expondo um sensor “sem correção” como no HA.
Automação de exemplo
Limitações atuais
- Somente leitura. Comandos como “abrir porta” (
AddPortMapping) ou “renovar lease” ainda não estão expostos. - Sem fallback de URL manual — a integração depende de SSDP achar o roteador. Se seu router não responde ao M-SEARCH mesmo com UPnP ligado, abra uma issue com o modelo e versão de firmware.
- Autenticação Device Protection (DPS) não é suportada; a maioria dos roteadores domésticos não a exige na LAN.
- Discovery automático (anúncio proativo) ainda não implementado — você precisa acionar a adição manualmente.