Home Assistant + LLM local: automação residencial privada, sem cloud
A domótica na nuvem — Google Home, Alexa, SmartThings — envia continuamente informações sobre o que acontece na sua casa para servidores distantes. Um LLM local para domótica com privacidade inverte essa equação: seu servidor Home Assistant controla suas lâmpadas e termostatos, um modelo Ollama traduz suas solicitações em ações e nada sai da rede local. Este guia mostra como conectar o Ollama ao Home Assistant na prática, qual modelo leve escolher para manter a latência abaixo de dois segundos e o que você realmente ganha em privacidade.
#Por que usar um LLM local para a casa conectada?
Em uma caixa de som convencional conectada à nuvem, cada frase falada é enviada a um servidor remoto para ser transcrita, compreendida e executada. A transcrição é armazenada, às vezes ouvida por terceiros contratados para treinar os modelos, e o fabricante sabe quando você volta para casa, a que horas você acende a luz do quarto e quando inicia sua playlist da noite. Para muitas famílias, isso é informação demais fornecida a terceiros demais.
O Home Assistant resolve o problema na raiz: é uma plataforma open source que roda no seu hardware e se comunica localmente com os dispositivos conectados (Zigbee, Z-Wave, Matter, MQTT). Ao adicionar um LLM local a ele via Ollama, você obtém um assistente capaz de entender frases livres (« reduza o aquecimento da sala em dois graus », « desligue todas as lâmpadas do térreo ») sem que nenhum áudio nem comando saia da LAN.
- Confidencialidade real
- Nenhum dado de uso é enviado a terceiros. Nenhum perfil publicitário é criado com base nos seus hábitos.
- Funciona offline
- Interrupção da internet, falha de um provedor de nuvem — sua casa continua respondendo aos comandos.
- Latência previsível
- Não há mais viagens de ida e volta até um datacenter; a latência depende apenas da sua máquina.
- Controle total
- Você escolhe o modelo, atualiza quando quiser e substitui quando um modelo melhor for lançado.
#Pré-requisitos
Seu ChatGPT privado e gratuito na sua máquina em 1 hora — LM Studio, Ollama, Open WebUI, seus documentos, sem nuvem.
- Espaço online vitalício
- PDF + arquivos
- Atualizações vitalícias
- Home Assistant configurado
- No mínimo, a versão 2024.6 (que inclui a integração nativa com o Ollama). Idealmente, a versão estável mais recente. HA OS, HA Container ou HA Supervised são todos compatíveis.
- Uma máquina para Ollama
- Ollama pode rodar na mesma máquina que o HA se ela for potente o suficiente, ou em um PC separado na LAN. Um Mac mini M4, um NUC i7 ou um PC com GPU de 8 GB ou mais fazem o trabalho muito bem.
- Ollama instalado
- Daemon ativo na porta 11434. Verifique com curl http://localhost:11434 — a resposta deve ser Ollama is running. Se nada estiver configurado, siga primeiro o guia de instalação do Ollama deste site.
- Rede local estável
- Idealmente, HA e Ollama na mesma VLAN, com IP fixo para o servidor Ollama. A porta 11434 deve estar aberta entre os dois.
- Um modelo adequado
- Vamos abordar isso logo em seguida. Por enquanto, lembre-se de que é necessário um modelo capaz de fazer tool calling (chamada de ferramentas).
#Modelos leves adequados aos comandos de automação residencial
O modelo adequado para automação residencial não é necessariamente o maior: ele deve (1) suportar corretamente o tool calling para chamar os serviços do Home Assistant, (2) falar bem francês, (3) responder rápido. Os modelos de 3B a 8B em Q4_K_M são o ponto ideal.
- Qwen 3.5 9B (Q4_K_M, ~6,6 GB de VRAM)
- A opção de referência para 8 GB em 2026. Chamada de ferramentas robusta, excelente qualidade em francês, visão e contexto de 256k, latência razoável na GPU. É um bom ponto de partida para automação residencial.
- Granite 4.2 8B (Q4_K_M, ~5,3 GB de VRAM)
- IBM, Apache 2.0, muito econômico em tokens com 128k de contexto. Chamada de ferramentas confiável e comedida: boa alternativa se o Qwen se desvia do que você pediu em seus comandos.
- Granite 4.2 3B (Q4_K_M, ~2,2 GB de VRAM)
- Para configurações modestas (Pi 5, NUC sem GPU). Consome poucos recursos e oferece chamada de ferramentas, mas ela é menos confiável em comandos complexos — use frases curtas e explícitas.
- Gemma 4 12B (Q4_K_M, ~7,6 GB de VRAM)
- Se você tiver uma RTX 3060 12 GB ou melhor. Multimodal, licença Apache 2.0, ganho claro em comandos ambíguos (“deixe a sala com um clima aconchegante”) e na compreensão contextual.
- Mistral Small 24B (Q4_K_M, ~14 GB de VRAM)
- Muito bom em francês e de uso geral, deve ser reservado a placas com 16 GB ou mais. Lida bem com diálogos ricos, além do controle estrito da casa.
#1. Conectar o Ollama ao Home Assistant
A integração Ollama é oficial no Home Assistant desde a versão 2024.6. Ela é configurada inteiramente pela interface, sem tocar no configuration.yaml.
- 01Baixar o modelo na máquina que executa o OllamaNa máquina que hospeda o Ollama, execute o comando shell abaixo. O download tem de 3 a 5 GB, dependendo do modelo escolhido.
- 01Deixar Ollama acessível na LANPor padrão, o Ollama escuta apenas em localhost. Para que o Home Assistant (possivelmente em outra máquina) possa chamá-lo, exponha o serviço em todas as interfaces.
- 01Adicionar a integração ao Home AssistantConfigurações > Dispositivos e serviços > Adicionar integração > procurar “Ollama”.
- 02Informar a URLURL: http://IP-DU-SERVEUR-OLLAMA:11434 (ex.: http://192.168.1.42:11434). Se Ollama estiver sendo executado na mesma máquina que o HA Container, use http://host.docker.internal:11434.
- 03Escolher o modeloO Home Assistant consulta automaticamente o Ollama e exibe a lista de modelos disponíveis. Selecione qwen3.5:9b.
- 04Ativar o controle (Control Home Assistant)Nas opções da integração, marque "Control Home Assistant". É isso que autoriza o LLM a chamar serviços (ligar, desligar, ajustar a temperatura). Sem essa caixa marcada, ele apenas conversa.
#2. Expor as entidades certas ao assistente
O Home Assistant às vezes gerencia centenas de entidades (sensores, tomadas, lâmpadas, visualizações, automações…). Enviar todas para o LLM saturaria o contexto e confundiria o modelo. A dica: disponibilizar ao assistente apenas o que ele realmente precisa controlar.
- 01Configurações > Voz > ExporLista de todas as entidades. Ative as que o assistente deve controlar: luzes, termostatos, tomadas, persianas. Desative os sensores internos (RAM do Pi, sinal Zigbee, etc.) que não têm utilidade para uma pessoa.
- 02Renomear em linguagem naturalUma entidade light.salon_lampe_principale_zigbee_3 é ilegível. Renomeie-a para “Lâmpada principal da sala de estar”. O LLM escolhe a entidade correta com muito mais confiabilidade a partir de um nome compreensível para uma pessoa.
- 03Agrupar por áreaAtribua cada entidade a uma área (Sala, Cozinha, Quarto…). O LLM poderá então entender “apague a luz da sala” sem listar manualmente cada lâmpada.
- 04TestarEm Configurações > Voz > Assistentes, clique no ícone de chat do seu pipeline Ollama e experimente: “Qual é a temperatura do quarto?” e depois “Ligue a lâmpada principal da sala de estar”.
#3. Pipeline de voz 100% local (opcional)
Se você quiser falar em voz alta (em vez de digitar no app HA), o Assist permite encadear reconhecimento de voz → LLM → síntese de voz, tudo localmente. Nenhuma dependência do Google ou da Amazon.
- Palavra de ativação — openWakeWord
- Complemento oficial do HA. Detecta uma palavra-chave de ativação (« Hey Jarvis », « Nabu ») em um Pi ou em um ESP32 satélite (Atom Echo, M5Stack).
- STT (fala para texto) — Whisper
- Complemento oficial do HA baseado em faster-whisper. O modelo tiny ou base é suficiente para comandos curtos em francês. Cerca de 1–2 s de transcrição em uma CPU razoável.
- LLM — Ollama (já configurado)
- Recebe a transcrição, chama a ferramenta HA apropriada e retorna uma frase de confirmação.
- TTS (conversão de texto em fala) — Piper
- Complemento oficial do HA. Vozes nativas em francês (fr_FR-siwis-medium, fr_FR-tom-medium). Muito rápido, ~200 ms por frase.
Depois que os quatro complementos estiverem instalados e iniciados, Configurações > Voz > Assistentes permite montar o pipeline: selecione Whisper em STT, sua integração Ollama como agente conversacional e Piper em TTS. É nesse momento que sua casa passa a ser controlável por voz, sem nenhuma conexão de saída.
#Latência: local vs. nuvem
Esse é o argumento frequentemente negligenciado. A nuvem não é mágica: cada comando faz uma viagem de ida e volta ao datacenter, além de passar por uma fila de espera no servidor. Localmente, você elimina metade do trajeto.
- Nuvem (Google/Alexa)
- STT na nuvem (~400 ms) + interpretação da intenção na nuvem (~300 ms) + ação HA via nuvem (~200 ms) + TTS (~300 ms) = 1,2-1,8 s em média, mais se a rede estiver sobrecarregada.
- Local — Pi 5 + LLM 3B na CPU
- STT Whisper tiny (~800 ms) + LLM 3B (~3-5 s na CPU) + ação (~50 ms) + TTS Piper (~200 ms) = 4-6 s. Aceitável para um comando, frustrante em uso intenso.
- Local — PC + LLM 8B GPU 8 GB
- Whisper base (~400 ms) + LLM 8B Q4 (~600-900 ms) + ação (~50 ms) + TTS (~200 ms) = 1,3-1,6 s. Tão rápido quanto um Google Home, sem a nuvem.
- Local — Mac mini M4 24 GB
- Pipeline completo em ~1,1–1,4 s graças à GPU integrada e à memória unificada. É provavelmente a melhor relação entre desempenho e consumo para automação residencial com LLM 24/7.
#O que realmente sai da LAN (nada)
Vamos verificar concretamente o escopo dos dados. Em um setup HA + Ollama + Whisper + Piper bem configurado:
- Áudio captado pelo microfone
- Processado pelo Whisper local. Nenhum áudio sai da rede.
- Texto transcrito do seu comando
- Enviado para o Ollama local. Nenhuma transcrição sai da rede.
- Lista dos seus dispositivos e zonas
- Compartilhada com o Ollama local para que ele chame a entidade correta. Permanece na rede local.
- Decisão e ação do HA
- Executada pelo HA, que se comunica diretamente com Zigbee/Z-Wave/Matter/MQTT localmente.
- Resposta por voz com Piper
- Áudio sintetizado localmente. Nenhuma voz sintética é obtida online.
O único tráfego de saída possível é o das atualizações do HA, do Ollama e dos modelos — você decide quando iniciá-las. Para um uso estritamente local, é possível cortar o acesso à internet da máquina HA após a instalação: tudo continua funcionando.
#Dicas e solução de problemas
- O LLM responde em inglês
- Adicione um prompt de sistema na integração com o Ollama: “Você é o assistente de automação residencial da casa. Responda sempre em francês, em uma frase curta.” Essa instrução é suficiente com Qwen 3.5 ou Granite 4.2.
- Inventa entidades inexistentes
- Sintoma de um modelo pequeno demais ou de um nome de entidade ambíguo. Renomeie as entidades em linguagem natural, reduza o número de entidades expostas ou passe para o Gemma 4 12B se houver VRAM disponível.
- Ele chama o serviço correto, mas na zona errada
- Verifique se cada entidade tem uma « area » atribuída no HA. Sem uma área, o modelo tenta adivinhar e se confunde com nomes semelhantes.
- Latência que dispara após algumas horas
- O Ollama removeu o modelo da memória. Inicie o serviço com OLLAMA_KEEP_ALIVE=24h (ou 168h para uma semana).
- Connection refused ao acessar a partir do HA
- O Ollama ainda escuta em 127.0.0.1. Verifique OLLAMA_HOST=0.0.0.0:11434 na unidade do systemd, reinicie e teste com curl a partir da máquina HA.
- Pi 5 que esquenta ao executar o modelo na CPU
- O LLM rodando na CPU utiliza os 4 núcleos a 100%. Adicione uma ventoinha para refrigeração ativa (ou um gabinete Argon ONE V3 para Pi 5) se você faz questão de rodar tudo no Pi. Caso contrário, transfira o Ollama para outra máquina.
- Você quer restringir o Ollama apenas à rede local
- Em vez de 0.0.0.0:11434, configure a escuta no endereço IP específico da LAN (ex.: OLLAMA_HOST=192.168.1.42:11434). O Ollama não aceitará mais conexões por outras interfaces.
#Para se aprofundar
Você tem um assistente de automação residencial com LLM local funcionando. Algumas sugestões para ir além:
- Instalar Ollama no Linux
- Se você quer dedicar uma máquina Linux ao Ollama (a configuração mais adequada para automação residencial 24/7), o guia de instalação no Linux cobre systemd, GPUs NVIDIA/AMD e a configuração de rede.
- LLM no Raspberry Pi 5
- Para avaliar concretamente o que roda usando apenas a CPU em um Pi 5 de 8 GB, com benchmarks em tokens por segundo e uma seleção de modelos de 1 a 3B.
- Escolher sua quantização (Q4, Q5, Q8)
- Para entender por que Q4_K_M é o ponto ideal para automação residencial e quando faz sentido subir para Q5_K_M ou descer para Q3.
Um comentário, um erro ou uma observação? Avise-nos; isso ajuda a melhorar o guia para todos.