Diriger toute la voix de Home Assistant vers un agent personnalisé
Vous voulez que chaque commande vocale soit envoyée à votre propre agent. Il peut s'agir d'un LLM local ou d'un assistant prenant en charge MCP.
Sur Home Assistant 2026.5 et les versions ultérieures, la méthode standard pour y parvenir échoue.
Si vous utilisez un joker (wildcard) brut dans une automatisation, vous obtenez une erreur HTTP 500. Cette erreur survient car le système recherche une liste qui n'existe pas.
Même si vous évitez l'erreur, les commandes intégrées détourneront vos requêtes. Si vous demandez « Quand est la prochaine marée basse », Home Assistant pourrait essayer de lancer la chanson suivante à la place.
Voici comment résoudre ces deux problèmes.
Les problèmes
MissingListError : Lorsque vous utilisez
{text}dans une automatisation, Home Assistant s'attend à une liste enregistrée nommée « text ». Comme vous ne pouvez pas définir de listes dans les automatisations, le système plante.Détournement d'intention (Intent Hijacking) : Les commandes intégrées comme « allumer » ou « suivant » correspondent à vos mots avant que votre agent personnalisé n'ait une chance d'intervenir.
La solution
Vous devez déplacer la logique de capture globale (catch-all) hors des automatisations et l'intégrer dans des phrases personnalisées (custom sentences). Cela vous permet de définir un véritable joker et garantit que votre commande est chargée en priorité.
Étape 1 : Créer une phrase personnalisée
Créez un fichier dans votre dossier custom_sentences. Cela enregistre une véritable liste de joker.
language: "en"
intents:
NaturaliQuery:
data:
- sentences:
- "{text}"
lists:
text:
wildcard: true
Étape 2 : Utiliser un intent_script
Au lieu d'une automatisation, utilisez un intent_script dans votre configuration.yaml. Cela gère la réponse et maintient la fluidité du pipeline vocal.
intent_script:
NaturaliQuery:
speech:
text: "One moment."
action:
- action: mqtt.publish
data:
topic: my/agent/ask
payload: '{"text": "{{ text }}"}'
Pourquoi cela fonctionne
• La liste joker empêche l'erreur HTTP 500.
• Les phrases personnalisées sont chargées avant les intentions intégrées. Votre agent intercepte la commande en premier.
• L'utilisation de intent_script évite les blocages vocaux sur de nombreux satellites matériels.
Note : Un joker complet capturera tout, y compris « allumer les lumières ». Si vous souhaitez conserver le contrôle natif, ajoutez un mot de préfixe à votre phrase personnalisée afin qu'elle ne se déclenche que lorsque vous le souhaitez.
Communauté d'apprentissage optionnelle : https://t.me/GyaanSetuAi
