Configurando o Home Assistant para trabalhar com VLANs

Atenção! Este tutorial envolve configurações que podem deixar seu Home Assistant indisponível devido a alteração das configurações de rede. Tenha cuidado e atenção ao reproduzi-lo! Caso você perca o acesso pela rede ao Home Assistant as configurações para restabelecer deverão ser realizadas diretamente no host pelo terminal.

Para configurar as VLANs no Home Assistant, antes as mesmas devem ser criadas e configuradas no seu roteador.

Este post detalha as dificuldade que tive em usar VLANs junto com o Home Assistant e como consegui resolver.

Recentemente realizei uma alteração na minha rede ficando a rede separada em três VLANs

  • VLAN 101: Rede de uso geral
  • VLAN 102: Dispositivos IoTs
  • VLAN 103: Dispositivos de automação (incluído o HA aqui)

Enfrentei alguns problemas com o Home Assistant por isso, segue os principais:

  • A resolulção de nomes por mDNS parou de funcionar, necessitando configurar todos os dispositivos pelo endereço IP.
  • O status (ONLINE/OFFLINE) dos dispositivos no painel do ESPHome tive que alterar para a configuração status_use_ping.
  • Não consegui adicionar minhas TVs no Home Assistant (ambos deveriam estar na mesma rede/VLAN).

Não consegui resolver todos os problemas com configurações no roteador ou no Home Asssistant, por isso procurei resolver incluindo as VLANs no HA.

Para dificultar mais ainda, meu Home Assistant está instalado com o HAOS (Home Assistant OS) que limita várias configurações do sistema operacional.

Mas cheguei a uma forma de configurar várias VLANs para a mesma interface de rede física do RPi, vou detalhar neste post.

Neste exemplo para facilitar o entendimento será usado as seguintes configurações para cada VLAN:

image

1. Configurando o acesso SSH

Instalação do add-on SSH & Web Terminal

Acesse a loja de add-ons no supervisor e procure pelo add-on SSH & Web Terminal (não confundir com o add-on Terminal $ SSH).

Após instado, você deve configurar o usuário, senha e a chave autorizada (caso tiver dúvidas como gerar as chaves veja o processo nesse passo ver este post)

image

Para realizarmos os comandos das VLANs é necessário você desabilitar o modo de proteção do add-on SSH & Web Terminal:

image

Aparecerá a seguinte mensagem no topo:

Após configurar o add-on SSH & Web Terminal e o cliente de acesso SSH realize o acesso via SSH (lembre de configurar a chave privada como mostrado neste post.

2. Configurando o NGINX Home Assistant SSL proxy

Caso você use NGINX Home Assistant SSL proxy você incluir todas as subredes que serão configuradas como confiáveis.

http:
  use_x_forwarded_for: true
  trusted_proxies:
    - 172.30.0.0/16 #Rede docker (padrão)
    - 10.10.0.55/24 #Sua rede atual (não pode remover antes de concluir a configuração das VLANS)
    - 10.10.101.0/24 #Subrede VLAN 101 - Geral
    - 10.10.102.0/24 #Subrede VLAN 102 - Automação
    - 10.10.103.0/24 #Subrede VLAN 103 - IoT

Reinicie o Home Assistant antes de continuar.

3. Configurando as VLANs pelo terminal SSH:

Estrutura do comando que será utilizado:

As informações de configuração da VLAN neste exemplo é conforme as informações informadas no início deste post.

Você deve alterá-las de acordo com a sua configuração de rede/VLANs.

Adicionando as VLANs:

No terminal SSH execute os seguintes comandos (lembre-se de alterar as informações de configuração de cada VLAN:

VLAN Geral

nmcli con add type vlan con-name eth0@vlan101-Geral dev eth0 id 101 ip4 10.10.101.1/24 ipv4.dns 10.10.101.254 gw4 10.10.101.254

VLAN Automação:

nmcli con add type vlan con-name eth0@vlan102-Automacao dev eth0 id 102 ip4 10.10.102.1/24 ipv4.dns 10.10.102.254 gw4 10.10.102.254

VLAN IoT:

nmcli con add type vlan con-name eth0@vlan103-IoT dev eth0 id 103 ip4 10.10.103.1/24 ipv4.dns 10.10.103.254 gw4 10.10.103.254

Verificando as VLANs adicionadas:

Para mostrar as VLANs adicionadas use o seguinte comando:

nmcli connection show

O resultado esperado é:

image

Testando as VLANs:

A partir de agora seu Home Assistant deve responder pelos IPs configurados em cada VLAN (você deve observar em qual rede seu computador está conectado e se possui acesso a essas VLANs).

Para testar basta realizar um comando ping a partir do seu computador para os IPs configurados anteriormente.

Por exemplo (deve utilizar os endereços IPs configurados para a sua rede):

  • Para a VLAN Geral: ping 10.10.101.1
  • Para a VLAN IoT: ping 10.10.102.1
  • Para a VLAN Automação: ping 10.10.103.1

Removendo a configuração de rede eth0

Após configuração e teste das VLANs a configuração de rede padrão eth0 pode ser removida pelo seguinte comando:

nmcli con delete 'Home Assistant OS default'

Ao executar o comando de visualização das interfaces de rede (´nmcli connection show´) é esperado que ainda apareça uma interface com o device eth0 mas com o nome diferente.

image

Execute o comando para excluí-la:

nmcli con delete 'Wired connection 1'

Ao executar o comando `` para visualizar as interfaces de rede (nmcli connection show) é esperado que somente as interfaces das VLANs de eth0 apareçam:

image

Reincie a máquina que está o Home Assistant

Reinicie o host pelo comando disponível no supervisor (eu tive alguns problemas para realizar o primeiro reinício pelo supervisor após configurar as VLANs, mas após reiniciar manualmente funcionou normalmente).

4. Novo gerenciamento de redes

Após reiniciar o host a interface ETH0 pode voltar a aparecer no supervisor, mas basta manter o IPv4 e IPv6 desabilitados.

image

Também irá aparecer a configuração de rede de cada VLAN:

image

A partir daqui você pode alterar as configurações de rede (endereço IP, servidor DNS, habilitar DHCP, etc) de cada interface VLAN diretamente pelo supervisor.

4 curtidas

uma dúvida, no caso a conexão padrão, que fica acima das VLANS, ela vai ser excluída? portanto no equipamento no qual conecto o HA tem de estar sem a VLAN default?

No tutorial mostrei uma situação que usava uma rede comum e foi configurada as VLANs, por isso a interface padrão foi excluída (e também pra manter o padrão de nome das interfaces em uso com o id da VLAN). Mas se a interface padrão já está configurada para a VLAN padrão não precisa excluí-la.

é, no caso ficaria com a rota 0 default e mandaria na porta do home assistant uma trunk com a default e mais duas VLANS

Acredito que pode ser assim também.

Excelente tutorial Douglas