Tag: Home Assistant

  • Assistentes de Voz Offline: Seu Jarvis Pessoal

    Assistentes de Voz Offline: Seu Jarvis Pessoal

    Você já quis ter um assistente de voz que não manda seus dados para uma corporação? Que não depende de internet, não tem mensalidade e não grava suas conversas para “melhorar o serviço”? Em 2026, isso não é mais ficção — é um projeto de fim de semana com um Raspberry Pi 5 e três ferramentas open-source: Whisper para ouvir, Ollama para pensar, Piper TTS para falar. E o melhor: tudo roda offline, na sua mesa, sem enviar um byte para fora da sua rede.

    O Pipeline de Voz Local

    O fluxo é elegante na sua simplicidade:

    1. Captura de áudio: Um microfone USB capta sua voz. O sistema detecta quando você começa a falar (VAD — Voice Activity Detection) e grava até você terminar.
    2. STT (Speech-to-Text): O áudio é transcrito para texto pelo Whisper, modelo da OpenAI que roda 100% local.
    3. LLM (Large Language Model): O texto transcrito é enviado para um modelo de linguagem rodando no Ollama. Ele processa o comando e gera uma resposta em texto.
    4. TTS (Text-to-Speech): A resposta textual é convertida em áudio pelo Piper TTS, um sintetizador de voz neural rápido e leve.
    5. Reprodução: O áudio é tocado nos alto-falantes conectados ao Pi.

    Esse pipeline inteiro roda num Raspberry Pi 5 com 8 GB de RAM — sem GPU externa, sem assinatura, sem servidor remoto. Vamos montar isso.

    Hardware Necessário

    • Raspberry Pi 5 (8 GB): ~R$ 750 na Robocore. Os 8 GB são importantes — modelos de linguagem consomem RAM vorazmente.
    • Microfone USB: Um simples microfone USB de mesa (~R$ 50-80) funciona bem para testes. Se quiser qualidade, microfones como Blue Snowball ou Fifine (~R$ 200-350) captam voz com mais clareza em ambientes com ruído.
    • Alto-falante ou caixa de som: Qualquer caixa com entrada P2 ou USB. O Pi 5 tem saída de áudio P2 integrada e suporte a áudio via HDMI e Bluetooth.
    • MicroSD de 64 GB ou SSD USB: Os modelos ocupam espaço — o Whisper base (~150 MB), um LLM pequeno como Llama 3.2 3B (~2 GB) e o Piper (~50 MB). Com SSD NVMe via HAT, a inicialização dos modelos é instantânea.

    Passo 1: Instalar o Whisper (STT)

    O Whisper é o melhor reconhecedor de fala open-source disponível. A versão C++ (whisper.cpp) é otimizada para rodar em CPUs ARM — ideal para o Pi 5.

    # Clone e compile o whisper.cpp sudo apt install git cmake -y git clone https://github.com/ggerganov/whisper.cpp cd whisper.cpp # Baixe o modelo (tiny, base, small, medium, large) # Para Pi 5 8GB: use small (excelente trade-off velocidade x precisão) bash ./models/download-ggml-model.sh small # Compile cmake -B build && cmake --build build --config Release 

    Teste rápido: grave um áudio de 5 segundos (arecord -f cd -d 5 test.wav), depois execute ./build/bin/whisper-cli -m models/ggml-small.bin -f test.wav. Em segundos, o Whisper transcreve o áudio. No Pi 5, o modelo small processa ~1 segundo de áudio em ~1.5 segundos — quase tempo real. O modelo medium é mais preciso, mas ~2x mais lento.

    Passo 2: Instalar o Ollama (LLM)

    O Ollama é a plataforma que tornou LLMs locais acessíveis. Com um comando, você baixa e roda modelos quantizados otimizados para CPU.

    # Instale o Ollama no Pi 5 (ARM64) curl -fsSL https://ollama.com/install.sh | sh # Puxe um modelo leve para o Pi 5 # Opções por ordem de peso: # - phi (1.6GB): Microsoft Phi-3 mini — rápido, inteligente, cabe em 8GB com folga # - llama3.2:3b (2GB): Meta Llama 3.2 3B — excelente qualidade geral # - mistral (4.1GB): Mistral 7B — melhor qualidade, mas o Pi 5 sofre com modelos >4GB ollama pull phi # Teste ollama run phi "Qual é a capital do Brasil? Responda em uma frase." 

    O modelo Phi-3 mini é surpreendentemente capaz. Responde perguntas complexas, entende contexto, faz piadas. A latência no Pi 5 é de 3-5 segundos para respostas curtas — aceitável para um assistente de voz onde você já espera uma pausa natural.

    Passo 3: Instalar o Piper TTS (Text-to-Speech)

    Piper TTS é um sintetizador de voz neural desenvolvido para o ecossistema Rhasspy/Home Assistant. É rápido, leve, e tem vozes em português brasileiro.

    # Instale o Piper via pip pip3 install piper-tts # Baixe vozes em português # Vozes disponíveis: pt_BR-faber-medium, pt_BR-edresson-medium, pt_BR-female-medium wget https://huggingface.co/rhasspy/piper-voices/resolve/main/pt/pt_BR/faber/medium/pt_BR-faber-medium.onnx wget https://huggingface.co/rhasspy/piper-voices/resolve/main/pt/pt_BR/faber/medium/pt_BR-faber-medium.onnx.json # Teste echo "Olá! Eu sou seu assistente pessoal funcionando completamente offline." | piper \ --model pt_BR-faber-medium.onnx --output_raw | aplay -r 22050 -f S16_LE -t raw -c 1 

    A voz do Piper em português é natural — não vai ganhar Emmy, mas é perfeitamente compreensível e não tem aquele tom robótico do eSpeak. Os modelos “medium” são o sweet spot entre qualidade e velocidade no Pi 5.

    Passo 4: Integrar Tudo — O Assistente Completo

    Com as três peças funcionando individualmente, o próximo passo é o script de integração. Este é um assistente de voz simplificado que faz o pipeline completo:

    #!/bin/bash # assistente.sh — Pipeline de voz offline completo AUDIO_FILE="/tmp/comando.wav" RESPONSE_TEXT="/tmp/resposta.txt" RESPONSE_AUDIO="/tmp/resposta.wav" echo "🎤 Assistente ouvindo..." # 1. Grava áudio (5 segundos ou até silêncio) # -d 5 = duração máxima de 5 segundos arecord -f cd -d 5 -D plughw:1,0 $AUDIO_FILE # 2. STT: Whisper transcreve echo "🧠 Processando..." TRANSCRIPTION=$(/home/pi/whisper.cpp/build/bin/whisper-cli \ -m /home/pi/whisper.cpp/models/ggml-small.bin \ -f $AUDIO_FILE --no-timestamps -l pt 2>/dev/null | tail -1) echo "Você disse: $TRANSCRIPTION" # 3. LLM: Ollama processa ollama run phi "Você é um assistente pessoal útil e conciso chamado Jarvis. Responda esta pergunta em português, em no máximo 2 frases: $TRANSCRIPTION" > $RESPONSE_TEXT RESPONSE=$(cat $RESPONSE_TEXT) echo "Jarvis: $RESPONSE" # 4. TTS: Piper fala echo "$RESPONSE" | piper \ --model /home/pi/pt_BR-faber-medium.onnx \ --output_file $RESPONSE_AUDIO # 5. Reproduz aplay $RESPONSE_AUDIO echo "✅ Pronto!" 

    Coloque a palavra-chave “Jarvis” no início de cada comando e você tem efetivamente seu próprio assistente de voz offline. Para o modo sempre ouvindo (hotword), adicione o Picovoice Porcupine — ele detecta wake words como “Hey Jarvis” localmente com latência de milissegundos.

    Extras: Integração com Home Assistant

    O projeto fica exponencialmente mais útil quando você conecta o assistente ao Home Assistant. O Home Assistant tem uma API REST rica: você pode acionar automações, ler estados de sensores e controlar dispositivos com comandos de voz processados pelo Ollama. Imagine: “Jarvis, acenda a luz da sala” → Whisper transcreve → Ollama interpreta a intenção → seu script chama a API do Home Assistant → luz acende. Tudo local. Tudo seu.

    Limitações e Realidade

    Este assistente não compete com Alexa ou Google Assistant em velocidade ou reconhecimento de intenções complexas — o Phi-3 no Pi 5 tem ~3B de parâmetros vs centenas de bilhões na nuvem. Mas o que ele perde em potência bruta, ganha em privacidade, independência e a satisfação de ser 100% seu. E os modelos melhoram a cada mês — em 2027, o mesmo Pi 5 vai rodar LLMs que hoje exigem servidores.

    Como todo projeto maker, o assistente offline é um ponto de partida. Cada atualização de modelo, cada microfone melhor, cada integração nova é um upgrade que VOCÊ decide fazer. Sem contrato. Sem EULA de 80 páginas. Sem servidor te ouvindo 24/7. Só você, seu Pi, e a pergunta “o que mais eu posso automatizar?”.

    Fontes e Referências

  • Home Assistant: O Cérebro da Sua Casa Inteligente

    Home Assistant: O Cérebro da Sua Casa Inteligente

    Imagine que cada dispositivo inteligente na sua casa fala uma língua diferente. A lâmpada Philips fala Zigbee. O sensor DHT22 no ESP32 fala MQTT. A Alexa fala o que a Amazon quiser. A fechadura fala Z-Wave. Cada um com seu app, sua nuvem, seu ecossistema. Isso não é uma casa inteligente — é uma torre de babel com plástico e WiFi. O Home Assistant resolve esse problema sendo o tradutor universal que faz tudo conversar. E o melhor: ele é open-source, roda num Raspberry Pi e não deve nada a nenhum executivo de marketing.

    O Que É o Home Assistant

    O Home Assistant (HA) nasceu em 2013 como um projeto Python de Paulus Schoutsen, um engenheiro holandês que estava cansado de gerenciar 15 apps diferentes para controlar as luzes de casa. O que começou como um script pessoal cresceu para se tornar a plataforma de automação residencial open-source mais ativa do mundo: mais de 3000 integrações oficiais, comunidade de mais de 2 milhões de instalações ativas, atualizações mensais.

    Em 2018, Schoutsen fundou a Nabu Casa, empresa que mantém o projeto e oferece o Home Assistant Cloud (acesso remoto fácil, US$ 6.50/mês — opcional, você pode fazer túnel VPN gratuitamente). A Nabu Casa também adquiriu o ESPHome em 2021 e contratou Otto Winter — sim, o ESPHome e o Home Assistant agora são mantidos pela mesma equipe. A integração entre eles é profunda e nativa.

    Instalação: HAOS no Raspberry Pi 5

    Existem vários métodos de instalação, mas para uma casa inteligente de verdade, recomendo o Home Assistant OS (HAOS): é um sistema operacional minimalista que roda o HA como appliance. Você não mexe no Linux subjacente — tudo é configurado pela interface web.

    Materiais

    • Raspberry Pi 5 (4 GB) — ~R$ 450-550 no Brasil
    • Cartão microSD de 64 GB classe A2 (velocidade importa — não use cartão barato) — ~R$ 50
    • Fonte 5V/3A USB-C
    • SSD NVMe via HAT ou USB externo (opcional, mas recomendado — cartão SD desgasta com logs constantes)

    Passo a Passo

    1. Baixe o Raspberry Pi Imager em raspberrypi.com/software.
    2. No Imager, selecione: Choose Device → Raspberry Pi 5, Choose OS → Other specific-purpose OS → Home assistants and home automation → Home Assistant → Home Assistant OS (RPi 5).
    3. Escolha o cartão microSD e grave.
    4. Insira o cartão no Pi 5, conecte Ethernet (recomendado) ou configure WiFi posteriormente.
    5. Ligue. Espere ~5 minutos. Abra o navegador em http://homeassistant.local:8123.

    O assistente de onboarding guia você: crie usuário, nome da casa, localização, fuso horário. O HA automaticamente descobre dispositivos na rede — qualquer ESPHome, Chromecast, impressora, roteador com UPnP aparece como “descoberto” e oferece integração em um clique.

    As Três Integrações Que Você Precisa Primeiro

    1. ESPHome

    No HA, vá em Configurações → Dispositivos e Serviços → Adicionar Integração → busque ESPHome. Insira o IP do seu dispositivo ESPHome (o mesmo que criamos no post 1 deste lote). O HA descobre automaticamente todas as entidades (sensores, switches, climate) expostas pelo firmware. Você não configura nada — o ESPHome publica e o HA assina via mDNS.

    2. MQTT Broker (Mosquitto)

    O MQTT é o protocolo de mensageria leve que permite que dispositivos IoT troquem dados sem polling constante. No HA, instale o add-on Mosquitto broker (Configurações → Add-ons → Loja de add-ons). É literalmente instalar e iniciar. Depois, integre via Configurações → Dispositivos e Serviços → MQTT.

    Agora qualquer dispositivo que publique em tópicos MQTT (ESP32 com PubSubClient, Tasmota, sensores customizados) aparece automaticamente no HA. Um sensor de temperatura publicando em home/quarto/temperatura vira uma entidade sensor.temperatura_quarto.

    3. Zigbee2MQTT

    Zigbee é o protocolo de rede mesh de baixo consumo usado por sensores sem fio da Aqara, Philips Hue, IKEA Trådfri, Sonoff e dezenas de outras marcas. Para conectar dispositivos Zigbee ao HA sem hub proprietário, você precisa de um coordenador Zigbee USB e o Zigbee2MQTT.

    Compre um Sonoff Zigbee 3.0 USB Dongle Plus (~R$ 120-180 no Mercado Livre) ou similar com chip CC2652P. Conecte ao Pi 5. No HA, instale o add-on Zigbee2MQTT, configure a porta USB (/dev/ttyUSB0) e pronto. Agora você pode parear sensores Aqara de porta/janela (R$ 40), sensores de temperatura Zigbee (R$ 50), interruptores inteligentes (R$ 60) — tudo local, sem nuvem, sem app proprietário.

    Criando Dashboards Que Fazem Sentido

    O dashboard padrão do HA é funcional mas feio. Felizmente, o sistema de dashboards é totalmente customizável. Minha abordagem: um dashboard por ambiente (Quarto, Sala, Cozinha, Externo) com os sensores e controles relevantes para aquele espaço.

    Elementos que todo bom dashboard deve ter:

    • Cartões de entidade (entities card): mostram o estado atual de sensores e switches. Temperatura: 24.3°C. Ventilador: Ligado.
    • Gráficos de histórico (history graph): temperatura e umidade nas últimas 24h ou 7 dias. Essencial para identificar padrões — “o quarto esquenta das 14h às 17h porque o sol bate na janela”.
    • Mapa (map card): se você tem dispositivos com GPS (celular dos moradores via app HA Companion), mostra onde cada pessoa está. Útil para automações: “se ninguém está em casa, desliga tudo”.
    • Medidores (gauge): para grandezas analógicas como nível de caixa d’água, tensão da bateria solar, consumo de energia.

    Automações: Onde a Mágica Acontece

    O HA tem um editor visual de automações (Configurações → Automações e Cenas → Criar Automação) que segue o padrão: gatilho (trigger) → condições → ações.

    Exemplos reais do meu setup:

    • Luz do corredor: gatilho = sensor LD2410 detecta presença. Condição = luminosidade < 50 lux (sensor BH1750). Ação = liga fita LED por 3 minutos.
    • Alerta de portão aberto: gatilho = sensor reed switch no portão fica aberto > 10 minutos. Ação = notificação no celular via app HA Companion.
    • Boa noite: gatilho = horário 23:00. Ação = desliga todas as luzes, fecha cortinas (servo), reduz brilho dos LEDs para 10%.

    A Realidade: Dá Trabalho, Mas Vale

    Vou ser honesto: Home Assistant não é “plug and play”. É uma plataforma de automação, não um eletrodoméstico. Exige paciência para configurar, ler documentação, debugar quando algo não funciona. A recompensa, porém, é uma casa que responde às suas regras — não às regras de um PM de produto em Shenzhen. Cada automação que funciona é uma vitória. Cada dashboard que sua família usa sem reclamar é um milagre. E quando cai a internet e tudo continua funcionando, você sorri com aquela superioridade moral de quem escolheu o caminho difícil — e certo.

    Fontes e Referências

  • Automação Residencial com ESPHome: Sua Casa Inteligente Sem Nuvem Alheia

    Automação Residencial com ESPHome: Sua Casa Inteligente Sem Nuvem Alheia

    Quando eu digo “casa inteligente”, qual imagem aparece na sua cabeça? Se for um assistente de voz que manda seus hábitos pra um datacenter em Ohio, temos um problema. Automação de verdade não precisa de internet — precisa de sensores, atuadores e um cérebro que mora dentro da sua casa. O combo ESP32 + ESPHome + Home Assistant faz exatamente isso: você controla luzes, temperatura, portões e cortinas com zero dependência de servidor externo. Se a internet cair, sua casa continua inteligente.

    Automação Residencial com ESPHome: Sua Casa Inteligente Sem Nuvem Alheia
    Wikimedia Commons — Apache License 2.0, autor Unknown authorUnknown author

    A Filosofia da Casa Offline

    Em 2026, o mercado de dispositivos smart home é dominado por marcas como Tuya, Sonoff e Philips Hue — todas funcionando, em maior ou menor grau, dependentes de nuvens proprietárias. O problema não é ideológico — é prático: servidores caem, empresas são compradas (lembra do Revolv da Nest?), APIs são descontinuadas, e de repente sua lâmpada inteligente de R$ 200 virou peso de papel.

    O ESPHome é um projeto open-source que resolve isso de raiz. Criado por Otto Winter em 2018 e integrado ao ecossistema Nabu Casa (os mesmos do Home Assistant), ele compila firmware personalizado para ESP8266 e ESP32 a partir de um simples arquivo YAML. Você escreve o que quer que a placa faça — ler um sensor, acionar um relé, controlar um LED PWM — e o ESPHome gera o firmware C++ correspondente e faz upload via USB ou OTA. Sem programar em C. Sem IDE. Sem bibliotecas conflitantes.

    Primeiro Projeto: Termostato Inteligente

    Vamos construir um sensor de temperatura e umidade com DHT22 que reporta ao Home Assistant e aciona um ventilador via relé quando a temperatura passa de 28°C. Objetivo prático: seu quarto não virar uma sauna no verão.

    Materiais

    • ESP32 DevKit V1 (~R$ 30-50 — FilipeFlop ou Robocore)
    • DHT22 (AM2302) — sensor de temperatura e umidade digital, preciso, ~R$ 15-25
    • Módulo relé 5V de 1 canal — para acionar o ventilador, ~R$ 12-20
    • Fonte 5V com micro-USB ou regulador de tensão para alimentar o ESP32
    • Resistor 10kΩ — pull-up para o pino de dados do DHT22 (alguns módulos já vêm com ele)

    Montagem

    São três conexões básicas:

    1. DHT22: VCC (pino 1) → 3.3V do ESP32. GND (pino 4) → GND. DATA (pino 2) → GPIO 23 do ESP32. Com resistor 10kΩ entre DATA e 3.3V (pull-up).
    2. Relé: VCC → 5V do ESP32 (ou VIN se alimentado por USB). GND → GND. IN (sinal) → GPIO 26 do ESP32.
    3. Carga (ventilador): Fio fase do ventilador passa pelo borne NA (Normalmente Aberto) do relé. Quando o relé fecha, o circuito fecha e o ventilador liga.

    O Arquivo YAML do ESPHome

    Crie um arquivo termostato.yaml no diretório de configuração do ESPHome:

    esphome:
      name: termostato-quarto
      friendly_name: Termostato Quarto
    
    esp32:
      board: esp32dev
      framework:
        type: arduino
    
    # Configura WiFi
    wifi:
      ssid: !secret wifi_ssid
      password: !secret wifi_password
    
    # API para Home Assistant
    api:
      encryption:
        key: !secret api_key
    
    ota:
      - platform: esphome
        password: !secret ota_password
    
    # Sensor DHT22 no GPIO 23
    sensor:
      - platform: dht
        pin: GPIO23
        model: DHT22
        temperature:
          name: "Temperatura Quarto"
          id: temp_quarto
        humidity:
          name: "Umidade Quarto"
        update_interval: 60s
    
    # Relé no GPIO 26
    switch:
      - platform: gpio
        pin: GPIO26
        name: "Ventilador Quarto"
        id: ventilador
        restore_mode: ALWAYS_OFF
    
    # Automação local: liga ventilador se temp > 28°C
    climate:
      - platform: thermostat
        name: "Termostato Quarto"
        sensor: temp_quarto
        default_target_temperature_low: 24 °C
        default_target_temperature_high: 28 °C
        min_cooling_run_time: 120s
        min_idle_time: 120s
        cool_action:
          - switch.turn_on: ventilador
        idle_action:
          - switch.turn_off: ventilador
    

    O ESPHome agora oferece um thermostat climate controller nativo — você define um sensor de temperatura e um switch, e ele gerencia a histerese sozinho. Sem programar lógica de controle. O YAML é declarativo: você diz o que quer, o compilador resolve o como.

    Primeiro Upload

    1. Instale o ESPHome Dashboard (basta um pip install esphome no terminal).
    2. Conecte o ESP32 via USB. Rode esphome run termostato.yaml.
    3. Na primeira vez, o upload é feito por USB. Depois, as atualizações podem ser over-the-air (OTA) — sem cabo.
    4. O Home Assistant detecta o dispositivo automaticamente via mDNS e pergunta se você quer adicioná-lo.

    Por Que Isso É Poderoso

    O que acabamos de fazer é uma automação que roda localmente. O ESP32 toma decisões sozinho com base na temperatura que ele mesmo mede. O relé fecha sem consultar servidor nenhum. Se o Home Assistant estiver offline, o ESPHome continua funcionando — o climate controller é embarcado no firmware.

    Compare isso com uma lâmpada Tuya que precisa enviar o comando “liga” para um servidor em Shenzhen, que devolve a confirmação, que chega na lâmpada, que finalmente acende — com 3 segundos de delay em dia bom. Casa inteligente de verdade é casa que responde em milissegundos.

    Expandindo: Sensores e Atuadores Suportados

    O ESPHome tem suporte nativo para centenas de componentes. Alguns que uso no meu setup:

    • LD2410 (sensor de presença por radar mmWave): detecta se tem gente no ambiente mesmo parado — acende e apaga luz automaticamente.
    • BME280: temperatura, umidade e pressão atmosférica em um sensor só. Mais preciso que o DHT22 para temperatura.
    • Display OLED SSD1306: mostra temperatura e status na própria placa.
    • Servo motor: controla cortinas, persianas, ventiladores direcionais.
    • Neopixel (WS2812B): fita LED endereçável para iluminação ambiente.

    O ESPHome tem integração nativa com todos esses. É só adicionar o bloco YAML correspondente.

    A Realidade do Mercado Brasileiro

    No Brasil, automação residencial comercial (Lutron, Crestron) é inviável para 99% das pessoas. Um interruptor inteligente Zigbee da Philips hue custa R$ 300. Um ESP32 de R$ 30 + relé de R$ 15 + case impresso em 3D de R$ 5 faz a mesma coisa, com mais flexibilidade e sem depender de hub proprietário. O trade-off é que você precisa montar — e é exatamente isso que torna o maker diferente do consumidor.

    Comece pelo termostato. Depois adicione um sensor de presença no corredor. Depois um relé no portão. Depois um sensor de gás na cozinha. Aos poucos, sua casa vai ficando mais inteligente, um ESP32 de cada vez. E quando a internet cair, você nem vai notar.

    Fontes e Referências