Este tópico apresenta as diversas formas de configuração para obter acesso externo à instância do seu Home Assistant.
Mas antes de qualquer coisa primeiro verifique se a sua conexão de internet está em CGNAT!
Verificando CGNAT:
Mas o que é um CGNAT?
CGNAT, ou Carrier Grade Network Address Translation, é um intermediário entre sua rede doméstica e a internet, implementada a nível de provedor de acesso.
Provedores de acesso a internet estão compartilhando os escassos endereços IPv4 entre diferentes consumidores. Antes da crise de IPV4, existiam dois tipos de consumidores: aqueles com um IP dinâmico, que recebiam um endereço para seus dispositivos a cada conexão, e aqueles com um IP fixo, que pagavam mais caro, mas tinham sempre o mesmo endereço IP fixo e poderiam, se assim o desejassem, hospedar serviços de internet. A semelhança entre os dois tipos de clientes é que ambos contavam com um IP único, exclusivo, para identificação e conexão. Leia mais sobre aqui.
Entretanto, com a adoção do CGNAT, os provedores de acesso pode atribuir o mesmo endereço IP para diferentes usuários ao mesmo tempo, direcionando-os através de portas diferentes.
Então você pode estar compartilhando o mesmo IP externo com outros usuários e dessa forma não é possível realizar acesso externo ao Home Assistant, você deveria ter um IP único.
Mas como verificamos isso?
Para verificar se você está em CGNAT clique aqui e siga os passos abaixo.
1 - Verifique o endereço IP da interface WAN do seu modem (IPv4 Público):
Neste exemplo vamos assumir que seja 189.1.1.136.
2 - Acesse o site https://www.meuip.com.br/ e verifique o endereço IP que aparece.
Se o endereço IP mostrado no roteador for igual ao endereço IP mostrado no site, o seu endereço IP é público e você não está sob uma rede CGNAT.
Caso os endereços IP mostrados no roteador e no site forem diferentes você está sob uma rede CGNAT.
Sabendo se está ou não em CGNAT fica mais fácil escolher o tutorial em qual seguir para configurar o seu acesso externo! Temos diversas alternativas, existem pagas ou gratuitas, para usuários com ou sem CGNAT, veja a que mais se enquadra na sua situação olhando a tabela abaixo.
Resumo das alternativas:
Alternativa | Tipo | Modalidade | Permite usar Alexa Smart Home | Permite usar Google Assistant | Funciona em Rede CGNAT | Necessita Porta Aberta na Rede | |
---|---|---|---|---|---|---|---|
1 | Home Assistant Cloud | Acesso Nativo | Pago | Sim, Nativo | Sim, Nativo | Sim | Não |
2 | DuckDNS + NGINX | Acesso Direto | Gratuito | Sim, com skill Smart Home | Sim, com Projeto | Não | Sim |
3 | Cloudflare Tunnel | Acesso via Tunnel | Gratuito | Sim, com skill Smart Home | Sim, com Projeto | Sim | Não |
4 | DDNS usando domínio próprio + integração Cloudflare | Acesso Direto | Gratuito | Sim, com skill Smart Home (desde que use HTTPS na porta 443 ou 8443) | Sim, com Projeto (desde que use HTTPS) | Não | Sim |
5 | Tailscape VPN | Acesso via VPN | Gratuito | Não | Não | Sim | Não |
Tutoriais de Acesso Externo ao Home Assistant:
1) Acesso nativo via Home Assistant Cloud (Nabu Casa) - Pago:
A forma mais simples e nativa de acessar o Home Assistant externamente, porém com custo mensal. Assinando o Home Assistant Cloud vai estar apoiando o projeto open soucer que é o Home Assistant.
2) Acesso direto via DuckDNS + NGINX - Gratuito:
Acesso externo através dos add-ons DuckDNS e NGINX em HTTPS sem desabilitar o acesso interno via HTTP. Permite o uso do aplicativo móvel na rede interna mesmo em modens sem configuração de DNSRelay.
3) Acesso via Cloudflare Tunnel - Gratuito:
Acesso através do add-on Cloudflare Tunnel, é possível realizar o acesso mesmo se estiver em uma rede CGNAT.
4) DDNS usando domínio próprio + integração Cloudflare - Gratuito:
5) Acesso via VPN Tailscape - Gratuito:
Acesso gratuitamente através da VPN Tailscale.
Aplicativo do Home Assistant:
Agora que já tem acesso externo já pode utilizar o aplicativo do Home Assistant em qualquer lugar com internet para acessar externamente. Utilizando o aplicativo do Home Assistant terá os sensores do seu smartphone disponíveis no Home Assistant para criar automações.