Encaminhe Toda a Voz do Home Assistant para um Agente Personalizado
Você quer que cada comando de voz seja enviado para o seu próprio agente. Talvez seja um LLM local ou um assistente com suporte a MCP.
No Home Assistant 2026.5 e versões mais recentes, a maneira padrão de fazer isso falha.
Se você usar um wildcard puro em uma automação, receberá um erro HTTP 500. Esse erro ocorre porque o sistema procura por uma lista que não existe.
Mesmo que você evite o erro, os comandos integrados irão sequestrar suas consultas. Se você perguntar "Quando é a próxima maré baixa", o Home Assistant pode tentar tocar a próxima música em vez disso.
Aqui está como corrigir ambos os problemas.
Os Problemas
MissingListError: Quando você usa {text} em uma automação, o Home Assistant espera uma lista registrada chamada "text". Como você não pode definir listas em automações, o sistema trava.
Sequestro de Intenção (Intent Hijacking): Comandos integrados como "turn on" ou "play next" correspondem às suas palavras antes que seu agente personalizado tenha uma chance.
A Solução
Você deve mover a lógica de captura geral (catch-all) das automações para frases personalizadas (custom sentences). Isso permite que você defina um wildcard real e garante que seu comando seja carregado primeiro.
Passo 1: Crie uma frase personalizada Crie um arquivo na sua pasta custom_sentences. Isso registra uma lista de wildcard real.
language: "en"
intents:
NaturaliQuery:
data:
- sentences:
- "{text}"
lists:
text:
wildcard: true
Passo 2: Use um intent_script Em vez de uma automação, use um intent_script no seu configuration.yaml. Isso gerencia a resposta e mantém o pipeline de voz fluido.
intent_script:
NaturaliQuery:
speech:
text: "One moment."
action:
- action: mqtt.publish
data:
topic: my/agent/ask
payload: '{"text": "{{ text }}"}'
Por que isso funciona
• A lista de wildcard interrompe o erro HTTP 500. • Frases personalizadas são carregadas antes das intenções integradas. Seu agente captura o comando primeiro. • O uso de intent_script evita deadlocks de voz em muitos satélites de hardware.
Nota: Um wildcard total capturará tudo, incluindo "turn on the lights". Se você quiser manter o controle nativo, adicione uma palavra de prefixo à sua frase personalizada para que ela só seja acionada quando você desejar.
Optional learning community: https://t.me/GyaanSetuAi
