Menu
Sobre Serviços Trajetória Trabalhe Comigo
Raspberry Pi and smart home components
Casa Inteligente 1 mar, 2026 • 20 min de leitura

Operação Casa Inteligente: Briefing de Missão Pai e Filho

Today my son and I execute our smart home plan. Raspberry Pi 5, follow-me lighting, WiFi sensing. The hardware's ready, the code's tested. Time to build.

Compartilhar:
Lee Foropoulos

Lee Foropoulos

20 min de leitura

Sabe do que o mundo já tem de sobra? Gente que fala sobre o que vai fazer um dia. Sonhadores sentados sem fazer nada, esperando o momento perfeito, a configuração perfeita, o que quer que seja perfeito. Enquanto isso, a vida continua passando.

"Senti mais uma vez como a felicidade é simples e frugal: um copo de vinho, uma castanha assada, um braseiro miserável, o som do mar. Nada mais." Nikos Kazantzakis, Zorba, o Grego

Zorba não esperou. Zorba dançou. Zorba fracassou de forma espetacular e riu disso. Quando sua grande operação de mineração desabou, literalmente desabou, ele agarrou uma garrafa de vinho e começou a dançar na praia. Melhor fracassar como Zorba do que ficar sentado sem fazer nada.

Então hoje, meu filho e eu executamos. O plano está traçado. O hardware está preparado. A maioria já foi testada individualmente: as automações funcionam, os sensores detectam, o código compila. Agora vamos ver se tudo funciona junto. Algo vai dar errado? Provavelmente. Estamos preparados para desafios? Com certeza. Essa é a parte divertida.

Melhor fracassar como Zorba do que ficar sentado sem fazer nada.

Sem plano, não existe caminho. Só gente falando para ouvir a própria voz. Só sonhos. Isto não é um sonho. Isto é um briefing de execução.

A Missão

Quando estivermos fazendo churrasco hoje à noite, esta casa vai:

  • Acender as luzes no cômodo em que você entrar, e diminuí-las quando sair
  • Trancar todas as portas quando a cama detectar que fomos dormir
  • Fechar a garagem automaticamente quando esquecermos (de novo)
  • Ajustar a climatização com base em quais cômodos estão realmente ocupados
  • Gerar ruído WiFi para que ninguém de fora possa usar a mesma tecnologia de sensing contra nós

E a Amazon não vai saber de nada. Tudo roda localmente. Sem nuvem. Sem assinaturas. Sem coleta de dados.

O Arsenal (Já Posicionado)

O Cérebro: Raspberry Pi 5 - PRONTO

Esse cara está na minha mesa há duas semanas, totalmente configurado, esperando por hoje. Pi 5 é exagero para automação residencial básica. Eu gosto de exagero. Está rodando Raspberry Pi OS Lite, Docker está instalado, Portainer está funcionando. Tudo que tenho que fazer é plugar onde vai ficar.

Escolhi o kit Argon ONE V3 M.2 NVME PCIE Case. Já montado:

  • M.2 SSD com OS flasheado (nada de falhas de cartão SD para nós)
  • Docker + Portainer instalados e testados
  • Container do Home Assistant pronto para deploy
  • IP estático atribuído na rede

Checklist Pré-Voo - COMPLETO

  • ☑ Raspberry Pi OS Lite flasheado no SSD
  • ☑ SSH habilitado, credenciais configuradas
  • ☑ Rede configurada com IP estático
  • ☑ Docker + Portainer rodando
  • ☑ Arquivos de configuração do Home Assistant preparados

Os Sensores: Placas ESP32 - FLASHEADAS E TESTADAS

Essas pequenas placas ESP32 foram a parte mais divertida. Meu filho e eu passamos o fim de semana passado flasheando e assistindo os dados de sinal WiFi chegarem. Funcionam. Confirmado.

  1. Unidade WiFi Sensing - Detecta movimento medindo a perturbação do sinal WiFi. Testada andando pela sala de estar; detecta movimento através de paredes, num raio de 4,5 a 6 metros.
  2. Unidade WiFi Fog - Gera ruído para cegar qualquer WiFi sensing externo. Rodando em isolamento, criando um belo caos no espectro de sinais.

Hoje integramos tudo no Home Assistant e vemos se as automações disparam corretamente. O código funciona nos testes. A questão é: funciona quando tudo está conectado?

(Se quiser o contexto de por que isso importa, leia meus artigos sobre WiFi sensing e contramedidas WiFi.)

A Infraestrutura Existente - JÁ INSTALADA

Não estamos começando do zero. A casa já tem coisas inteligentes, só que rodando em apps separados como ilhas desconectadas. Hoje unificamos o reino:

  • Lâmpadas Philips Hue - Já instaladas em toda a casa. Atualmente controladas pelo app Hue. Hoje: Home Assistant assume.
  • Termostato Ecobee - Já sabe quais cômodos estão ocupados pelos seus sensores. Hoje: integramos esses dados.
  • Cama Eight Sleep - Já rastreia quando estou dormindo. Hoje: ela dispara a automação de lockdown.
  • Fechaduras Kwikset (Z-Wave) - Já nas portas. Hoje: aprendem a se trancar sozinhas.
  • Garagem MyQ - Já instalada. Hoje: nunca mais voltar para casa porque esqueci de fechar.

O ponto é: Você provavelmente já tem mais equipamentos de casa inteligente do que imagina. Eles só não estão se comunicando ainda.

Dashboard de automação residencial
Até hoje à noite: tudo unificado num único dashboard

Fase 1: Infraestrutura (FEITO)

Esse foi o trabalho do fim de semana passado. Se estiver acompanhando depois, aqui está o que fizemos. Se leu meu artigo sobre Docker, sabe por que containerizamos tudo.

bash# Docker + Portainer - Already running
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER

docker volume create portainer_data
docker run -d -p 9000:9000 --name portainer \
  --restart=always \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v portainer_data:/data \
  portainer/portainer-ce

Portainer está ativo em http://raspberrypi.local:9000. GUI bonita para gerenciar containers. Verificado.

Fase 2: Home Assistant (PRIMEIRA TAREFA DE HOJE)

O arquivo docker-compose está escrito. O diretório de configuração está preparado. Hoje subimos para valer e começamos a conectar dispositivos.

yaml# docker-compose.yml - ready to deploy
version: '3'
services:
  homeassistant:
    container_name: homeassistant
    image: ghcr.io/home-assistant/home-assistant:stable
    volumes:
      - /home/pi/homeassistant:/config
      - /etc/localtime:/etc/localtime:ro
    restart: unless-stopped
    privileged: true
    network_mode: host

O plano: Rodar docker-compose up -d, abrir o assistente de configuração e conectar essas integrações uma a uma:

  • Philips Hue - Deve ser auto-descoberto na rede
  • Ecobee - Fluxo OAuth, preciso ter o app à mão
  • Eight Sleep - Integração por API, credenciais prontas
  • Z-Wave - Essa pode ser picante, fechaduras são temperamentais
  • MyQ - Simples, já fiz antes
  • ESPHome - Para os dispositivos ESP32 que flasheamos no fim de semana passado

Desafio esperado: Z-Wave. Fechaduras sempre têm atitude. Vamos ver.

Close-up de uma placa de circuito com componentes eletrônicos
Placas ESP32 flasheadas, testadas e prontas para integração

Fase 3: Integração WiFi Sensing (A PARTE DIVERTIDA DE HOJE)

A Unidade de Sensing - PRONTA PARA CONECTAR

No fim de semana passado, meu filho assistiu pelo monitor serial enquanto essa coisa detectava eu andando pela sala. As palavras exatas dele: "Pai, isso é assustador e incrível."

O ESP32 já está flasheado com ESPHome. Já está detectando movimento via WiFi CSI (Channel State Information). Hoje plugamos no Home Assistant e damos um nome: binary_sensor.living_room_occupied

O teste: Entrar na sala de estar. O Home Assistant vê? Se sim, estamos no negócio.

A Unidade Fog - CAMADA DE PRIVACIDADE PRONTA

O segundo ESP32 roda o gerador de ruído do meu artigo de contramedidas. Está rodando no meu banco há uma semana, gerando um belo caos no espectro WiFi.

Sim, estamos usando WiFi sensing para nossa própria automação enquanto simultaneamente nos protegemos de outros fazendo o mesmo contra nós. Não é hipocrisia. É segurança operacional. E meu filho acha que é a coisa mais legal do mundo.

Expansão Futura: 3+3

O objetivo de hoje é provar o conceito com um sensor e um dispositivo fog. Uma vez confiantes:

  • 3 dispositivos de sensing: Sala, cozinha, quarto
  • 3 dispositivos fog: Distribuídos pela casa para cobertura completa

São cerca de $50 em placas ESP32 para uma atualização de toda a casa. Mas primeiro, vamos garantir que hoje funcione.

$50
Custo total das placas ESP32 para cobertura WiFi sensing de toda a casa com 3 sensores e 3 dispositivos fog.

Fase 4: As Automações (O OBJETIVO PRINCIPAL)

É para isto que tudo foi construído. Esses arquivos YAML estão escritos, testados na minha cabeça centenas de vezes, e prontos para colar. Vão funcionar de primeira? Vamos descobrir.

Automação 1: Iluminação Follow-Me (O ESPETÁCULO)

A visão: Entre num cômodo e as luzes se acendem para recebê-lo. Saia, e elas diminuem atrás de você como um mordomo respeitoso. A casa do Tony Stark. Esse é o objetivo.

A nuance: Se você acendeu uma luz manualmente, o sistema deixa como está. Sua escolha é respeitada. Rastreamos isso com helpers input_boolean. Porque nada é pior do que automação que briga com você.

yaml# configuration.yaml additions
input_text:
  last_occupied_room:
    name: "Last Occupied Room"
    initial: "none"

input_boolean:
  living_room_auto_triggered:
    name: "Living Room Auto Triggered"
  kitchen_auto_triggered:
    name: "Kitchen Auto Triggered"
  bedroom_auto_triggered:
    name: "Bedroom Auto Triggered"

Agora a automação:

yaml# automations.yaml
- alias: "Follow Me - Living Room Entry"
  trigger:
    - platform: state
      entity_id: binary_sensor.living_room_occupied
      to: "on"
  condition:
    - condition: state
      entity_id: light.living_room
      state: "off"
  action:
    # Dim the previous room if it was auto-triggered
    - choose:
        - conditions:
            - condition: template
              value_template: "{{ states('input_text.last_occupied_room') == 'kitchen' }}"
            - condition: state
              entity_id: input_boolean.kitchen_auto_triggered
              state: "on"
          sequence:
            - service: light.turn_on
              target:
                entity_id: light.kitchen
              data:
                brightness_pct: 20
                transition: 3
    # Turn on current room
    - service: light.turn_on
      target:
        entity_id: light.living_room
      data:
        brightness_pct: 100
    - service: input_boolean.turn_on
      target:
        entity_id: input_boolean.living_room_auto_triggered
    - service: input_text.set_value
      target:
        entity_id: input_text.last_occupied_room
      data:
        value: "living_room"

- alias: "Follow Me - Living Room Vacancy"
  trigger:
    - platform: state
      entity_id: binary_sensor.living_room_occupied
      to: "off"
      for:
        minutes: 2
  condition:
    - condition: state
      entity_id: input_boolean.living_room_auto_triggered
      state: "on"
  action:
    - service: light.turn_off
      target:
        entity_id: light.living_room
      data:
        transition: 5
    - service: input_boolean.turn_off
      target:
        entity_id: input_boolean.living_room_auto_triggered

O teste: Uma vez deployada, meu filho e eu vamos andar pela casa e ver se as luzes nos seguem. Se funcionar, vamos nos sentir dentro de um filme. Se não, debug com pizza.

Automação 2: Lockdown Noturno (A PAZ DE ESPÍRITO)

O cenário: São 22h. Entro na cama. Cinco minutos depois, o Eight Sleep confirma que estou dormindo de verdade (não só deitado mexendo no celular). A casa responde: todas as portas trancam, a garagem fecha se eu esqueci (de novo), o termostato entra em modo sono e as luzes auto-ativadas se apagam.

yaml- alias: "Bedtime - Eight Sleep Triggered Lockdown"
  trigger:
    - platform: state
      entity_id: binary_sensor.eight_sleep_bed_presence
      to: "on"
      for:
        minutes: 5
  condition:
    - condition: time
      after: "21:00:00"
      before: "06:00:00"
  action:
    # Lock all doors
    - service: lock.lock
      target:
        entity_id:
          - lock.front_door
          - lock.back_door
    # Close garage if open
    - service: cover.close_cover
      target:
        entity_id: cover.garage_door
    # Set Ecobee to sleep mode
    - service: climate.set_preset_mode
      target:
        entity_id: climate.ecobee
      data:
        preset_mode: "Sleep"
    # Turn off auto-triggered lights
    - service: light.turn_off
      target:
        entity_id:
          - light.living_room
          - light.kitchen
      data:
        transition: 5

Não tem Eight Sleep? Substitua por um trigger baseado em horário (22:30) ou detecção de carregamento do celular. A lógica é a mesma.

Automação 3: Fechamento Automático da Garagem (O SALVADOR DO CASAMENTO)

O problema: "Você fechou a garagem?" Essa pergunta é feita 3x por semana nesta casa. Nunca mais. Depois de 10 minutos aberta, fecha sozinha e me manda uma notificação.

yaml- alias: "Garage - Auto Close After 10 Minutes"
  trigger:
    - platform: state
      entity_id: cover.garage_door
      to: "open"
      for:
        minutes: 10
  action:
    - service: cover.close_cover
      target:
        entity_id: cover.garage_door
    - service: notify.mobile_app_your_phone
      data:
        title: "Garage Secured"
        message: "Garage was open for 10 minutes. Auto-closed."
        data:
          tag: "garage-closed"

Automação 4: Climatização Inteligente (A ECONOMIA DE ENERGIA)

A lógica: Por que aquecer uma casa vazia? Quando nossos sensores WiFi dizem que ninguém está em casa há 30 minutos, o Ecobee entra em modo Ausente. Quando alguém entra, ele volta ao normal.

yaml- alias: "Ecobee - Away When House Empty"
  trigger:
    - platform: state
      entity_id: binary_sensor.home_occupied
      to: "off"
      for:
        minutes: 30
  action:
    - service: climate.set_preset_mode
      target:
        entity_id: climate.ecobee
      data:
        preset_mode: "Away"

- alias: "Ecobee - Home When Occupied"
  trigger:
    - platform: state
      entity_id: binary_sensor.home_occupied
      to: "on"
  condition:
    - condition: state
      entity_id: climate.ecobee
      attribute: preset_mode
      state: "Away"
  action:
    - service: climate.set_preset_mode
      target:
        entity_id: climate.ecobee
      data:
        preset_mode: "Home"

Criando o Sensor Agregado

O binary_sensor.home_occupied é um sensor template que combina todos os sensores dos cômodos:

yamltemplate:
  - binary_sensor:
      - name: "Home Occupied"
        state: >
          {{ is_state('binary_sensor.living_room_occupied', 'on')
             or is_state('binary_sensor.kitchen_occupied', 'on')
             or is_state('binary_sensor.bedroom_occupied', 'on') }}

O Que Pode Dar Errado? (A Parte Divertida)

Olha só: algo VAI dar errado hoje. Isso não é pessimismo. É realidade. E tudo bem. Essa é toda a questão.

Candidatos prováveis para a aventura de hoje:

  • Fechaduras Z-Wave - Essas coisas têm atitude. O pareamento pode precisar de múltiplas tentativas.
  • Calibração do sensor WiFi - Funciona no banco, mas e quando estiver na posição final?
  • Casos extremos de automação - O que acontece se alguém passar por um cômodo em 2 segundos?
  • O problema "funcionou ontem" - A piada favorita da tecnologia.

Mas é por isso que estamos fazendo juntos. Pai e filho, resolvendo problemas, aprendendo, provavelmente discutindo sobre por que o YAML não está parseando. É assim que se aprende de verdade, construindo algo real, vendo quebrar e consertando.

A mina de Zorba desabou. A resposta dele? Dançar na praia. O que quer que quebre hoje, vamos resolver. E se não conseguirmos, teremos uma ótima história para o jantar.

A Filosofia

Aqui está o que separa os fazedores dos sonhadores:

Sonhadores pesquisam por meses. Leem cada artigo. Esperam pelo hardware "certo". Otimizam o plano até ficar perfeito. Nunca começam.

Fazedores escrevem um plano, juntam o que precisam e executam. Esperam desafios. Se adaptam na hora. Fracassam para frente.

Sem plano, não existe caminho. Só gente falando para ouvir a própria voz. Mas um plano sem execução é só um sonho com passos extras.

Critérios de Sucesso de Hoje

  • ☐ Home Assistant rodando com todos os dispositivos conectados
  • ☐ Sensor WiFi detectando movimento na sala de estar
  • ☐ Iluminação follow-me funcionando em pelo menos um cômodo
  • ☐ Automação de lockdown noturno habilitada
  • ☐ Meu filho dizendo "isso parece a casa do Tony Stark"

Próximos Passos (Depois Que Hoje Funcionar)

Assumindo que teremos sucesso, e teremos, mesmo que demore mais do que o esperado:

  • Deploy completo ESP32 3+3 - Sensing em todos os cômodos principais, cobertura fog completa
  • Tablet de parede com dashboard - Painel de controle sempre ligado no corredor
  • Controle de voz local - Wyoming/Piper para comandos de voz que não saem de casa
  • Sensores de vazamento - Embaixo de cada pia e perto do aquecedor

Mas primeiro: hoje. Primeiro: execução. Primeiro: provar que todo esse planejamento realmente funciona.

Checklist de Construção da Casa Inteligente 0/6

"A vida é o que acontece enquanto você está ocupado fazendo outros planos." John Lennon

Errado. A vida é o que acontece quando você para de planejar e começa a agir. Nos vemos do outro lado. Hora de ir construir algo.

How was this article?

Compartilhar

Link copied to clipboard!

You Might Also Like

Lee Foropoulos

Lee Foropoulos

Business Development Lead at Lookatmedia, fractional executive, and founder of gotHABITS.

🔔

Nao perca nenhuma publicacao

Receba notificacoes quando novos artigos forem publicados. Sem necessidade de email.

Voce vera um banner no site quando houver um novo post, alem de uma notificacao do navegador se permitir.

Apenas notificacoes do navegador. Sem spam.