Pular para o conteúdo
Voltar aos Artigos Publicados
Home Assistant

Como o Home Assistant me fez amar fluxos de automação na vida real

Eu nunca tinha pensado em automação como algo que pudesse ser integrado à minha rotina diária. Mas uma coisa é automatizar software, e outra completamente diferente é pensar em fluxos da vida real.

Como o Home Assistant me fez amar fluxos de automação na vida real
Publicado originalmente no Dev.to. Leia reações e participe da discussão no Dev.to →
Conteúdo 100% autoral: Todos os artigos, desafios práticos e soluções em código foram escritos por Marcelo Costa sem qualquer uso de IA na redação. A inteligência artificial foi utilizada exclusivamente no auxílio à tradução para múltiplos idiomas.

Eu nunca tinha pensado em automação como algo que pudesse ser integrado à minha rotina diária. Veja bem, eu já trabalho com automação todos os dias: como Lead QA Engineer, meu trabalho é olhar para fluxos manuais em plataformas SaaS e aplicativos móveis e transformá-los em algo que rode sozinho.

Mas uma coisa é automatizar software, e outra completamente diferente é pensar em fluxos da vida real.

Eu costumo acordar à noite para beber água; corredores em um breu total e eu não queria fazer barulho procurando o interruptor. Agora, um sensor de movimento Zigbee avisa uma lâmpada em tomada inteligente para acender automaticamente quando passo. Ou a chateação de digitar o código do alarme sempre que chegava em casa — o alarme agora arma ou desarma com base na minha presença em casa, ou na da minha esposa. Esses cenários começaram como uma ideia e viraram parte do meu dia a dia, economizando meu tempo.

Essa é a história de como entrei de cabeça no Home Assistant.

Automatizo software para viver. Mas nunca tinha pensado nisso tornando a minha vida mais fácil.

É curioso trabalhar com algo, mas nunca implementá-lo no mundo real, em um dispositivo tangível ou físico. Algo com uma porta, um motor e um delay. Eu só pensei: "e se..." eu pudesse automatizar minha entrada no prédio? Ou talvez ter um controle dos portões da garagem para abri-los e fechá-los em sequência, direto na tela do meu carro? Feito e feito.

Estou chegando a quase 100 cenários de automação que um único painel integra e controla sensores de qualidade do ar, temperatura, persianas e uma infinidade de aparelhos (TV e lava-roupas Samsung, lava-louças Bosch, câmeras Ring, etc.). Mas separei isso em três partes:

  1. Chegando em casa — portões, o alarme e o carro (este post)
  2. Dentro de casa — piso aquecido e climatização, ar e eletrodomésticos
  3. As mais chatas — as automações que realmente protegem a casa

Aba Início — do topo até "Um toque"

Os portões: engenharia reversa do Alfred Smart

Cada portão do meu prédio funciona com o Alfred Smart, uma plataforma de controle de acesso com aplicativo próprio e sem integração com o Home Assistant. Então fui investigar o que a aplicação web do Alfred enviava. No fim das contas, era uma API REST bem simples: um login que retorna um JWT e um endpoint PATCH /devices/interact por porta, com um gateway ID e um device ID.

Recriei as duas chamadas como rest_commands no Home Assistant, enviando os mesmos headers que o web app envia. Além disso, como o token de acesso vale por 60 dias, automatizei uma renovação das credenciais todo mês.

A parte de testar foi onde as coisas ficaram interessantes. Cada portão passa por um script que lê o status HTTP. E como pegar os tempos exatos de entrada? Fazendo na prática, de novo e de novo. Afinal, vou entrar em casa incontáveis vezes — por que não anotar e ir ajustando os tempos até ficarem perfeitos? Estamos falando de poucos segundos de diferença, é claro.

Depois veio o health check. Um badge no topo do dashboard faz pooling na API, mantendo o último valor real por 15 minutos antes de admitir que o serviço caiu. Isso evita que eu use os scripts sem saber que estão offline (o que já aconteceu mais de duas vezes comigo).

Caminhando: uma máquina de estados afinada no cronômetro

São cinco portões no condomínio, e chegar a pé pelo Portão 11 não é o mesmo trajeto que pelo Portão 5. Então cada entrada virou uma sequência: abre este, espera, abre aquele. Os tempos de espera — P11 → P3 em 30 s, P5 → P3 em 50 s — vêm do que falei antes: ir entrando de novo e de novo até o timing ficar perfeito.

Aba Acessos — de "Portões" até "Ajustar tempos"

Esses números ficavam hardcoded, embutidos no arquivo YAML, um pouco mais difíceis de atualizar. Agora cada espera é um helper, editável direto em um pop-up de "Ajustar tempos", e tanto o delay quanto o texto do botão leem o valor de lá.

Pop-up "Caminhada — tempos"

O celular pergunta antes de eu chegar

Quando estou a cerca de 200 m de casa, meu celular pergunta: "Chegando em casa? — por onde você vai entrar?", com um botão para cada portão. Um toque e a sequência roda enquanto vou caminhando.

Notificação "Chegando em casa" no meu smartwatch

Posso alterar o raio da minha zona residencial e adaptar o arquivo YAML para quando o gatilho dispara na rua. Além disso, a mesma lógica se aplica para armar ou desarmar meu alarme conforme me aproximo da minha porta, após outro raio menor que foi configurado para a porta também.

O alarme: Verisure através da integração com a Securitas

O alarme é da Verisure, conectado através da integração customizada da Securitas pelo HACS. O protocolo tem um modo "noite parcial", então o Home Assistant renderiza três botões: Desarmado, Parcial e Total — exatamente como no dispositivo físico. Ele também se comunica com as câmeras Ring, ativando o detector de movimento e me avisando caso haja movimentação com o alarme acionado.

Agora não preciso mais digitar o PIN: o alarme desarma automaticamente quando chegamos em casa. Minha esposa e eu não fomos detectados em casa depois de fechar a porta, mas o alarme não foi armado? O Home Assistant cuida disso. Posso ativar — com um toque — o arme ou desarme de dia ou à noite, e também em determinadas faixas de horário durante a semana. Lembro do pesadelo que era configurar isso no app oficial do alarme. Ainda bem que ficou no passado.

Aba Início — seção "Alarme"

O carro: a integração da Toyota e uma trava que não existia

A integração da Toyota pelo HACS me dava combustível, odômetro, portas e janelas, mas nenhuma trava. Como a biblioteca interna consegue enviar comandos remotos, escrevi um lock.py pra ela. É uma funcionalidade que espero que seja integrada em breve.

Isso tornou as automações do carro possíveis: destrancado por 3 minutos → manda notificação; ainda destrancado aos 6 minutos → tranca sozinho. Isso já nos salvou várias vezes, sempre que um de nós esquece de travar o carro direito quando estamos de mãos ocupadas.

Aba Carro — parte superior

Também adicionei dois scripts como botões no painel do meu carro: "Chegando" e "Saindo". Eles funcionam com a integração predial do Alfred Smart que mencionei e abrem cada um dos dois portões da garagem em sequência através de um comando REST, com uma espera cronometrada entre eles. Compatível com Apple CarPlay e Android Auto, é claro.

Portões da garagem controlados com praticidade no painel do carro


Próximo capítulo: dentro de casa — onde os termostatos de parede e o Home Assistant estão em guerra há meses, e um gráfico de CO₂ acabou me avisando para trocar um filtro.

Rodando em um Home Assistant Green, focado em YAML, com um dashboard construído com Bubble Card e Mushroom. Ficarei feliz em trocar uma ideia sobre qualquer um desses pontos nos comentários do Dev.to.