Alle Home Assistant-spraak omleiden naar een aangepaste agent
Je wilt dat elk spraakcommando naar je eigen agent gaat. Misschien is het een lokale LLM of een assistent met MCP-ondersteuning.
In Home Assistant 2026.5 en nieuwer werkt de standaardmethode hiervoor niet.
Als je een losse wildcard gebruikt in een automatisering, krijg je een HTTP 500-fout. Deze fout treedt op omdat het systeem zoekt naar een lijst die niet bestaat.
Zelfs als je de fout vermijdt, zullen ingebouwde commando's je vragen overnemen. Als je vraagt "Wanneer is het volgende laagwater", probeert Home Assistant misschien in plaats daarvan het volgende nummer af te spelen.
Hier is hoe je beide problemen oplost.
De problemen
MissingListError: Wanneer je
{text}gebruikt in een automatisering, verwacht Home Assistant een geregistreerde lijst met de naam "text". Omdat je geen lijsten kunt definiëren in automatiseringen, crasht het systeem.Intent Hijacking: Ingebouwde commando's zoals "turn on" of "play next" komen overeen met je woorden voordat je aangepaste agent een kans krijgt.
De oplossing
Je moet de catch-all-logica verplaatsen van automatiseringen naar aangepaste zinnen (custom sentences). Hierdoor kun je een echte wildcard definiëren en zorg je ervoor dat jouw commando als eerste wordt geladen.
Stap 1: Maak een aangepaste zin aan
Maak een bestand aan in je custom_sentences-map. Hiermee registreer je een echte wildcard-lijst.
language: "en"
intents:
NaturaliQuery:
data:
- sentences:
- "{text}"
lists:
text:
wildcard: true
Stap 2: Gebruik een intent_script
Gebruik in plaats van een automatisering een intent_script in je configuration.yaml. Dit regelt de reactie en houdt de spraakpijplijn soepel.
intent_script:
NaturaliQuery:
speech:
text: "One moment."
action:
- action: mqtt.publish
data:
topic: my/agent/ask
payload: '{"text": "{{ text }}"}'
Waarom dit werkt
• De wildcard-lijst voorkomt de HTTP 500-fout.
• Aangepaste zinnen worden geladen vóór de ingebouwde intents. Je agent vangt het commando als eerste op.
• Het gebruik van intent_script voorkomt voice deadlocks op veel hardware-satellieten.
Let op: Een volledige wildcard vangt alles op, inclusief "turn on the lights". Als je de standaardbesturing wilt behouden, voeg dan een prefix-woord toe aan je aangepaste zin, zodat deze alleen wordt geactiveerd wanneer je dat wilt.
Optional learning community: https://t.me/GyaanSetuAi
