Home Assistant met AI: slim hulpje in huis

Je kunt tegenwoordig volop gebruikmaken van AI binnen Home Assistant. Dankzij integraties met OpenAI, Gemini en Ollama kun je met je stem in natuurlijke taal je huis bedienen. Ook kun je met de nieuwe AI-taken binnen een automatisering bijvoorbeeld gegevens samenvatten, beelden analyseren of gepersonaliseerde meldingen maken. Dankzij de gestructureerde uitvoer geeft AI precies de gegevens die je nodig hebt. In deze masterclass leggen we uit hoe je deze mogelijkheden kunt benutten.
Code downloaden
In dit artikel worden voorbeelden van diverse opdrachten gegeven. Omdat het overtikken van dergelijke opdrachten erg foutgevoelig is, kun je ze beter downloaden en daarna bekijken of kopiëren. Gebruik daarvoor dit bestand.
In 2023 richtte Home Assistant zich onder de noemer Year of the Voice vooral op lokale, privacyvriendelijke spraakbesturing. Dit volgt vaste patronen, waardoor het wel snel werkt maar niet slim is in taal en ook niet heel flexibel. De toevoeging van een Large Language Model (LLM) zorgt ervoor dat je je huis in natuurlijke taal kunt bedienen. Qua hardware is je smartphone of een kastje zoals de Home Assistant Voice Preview Edition een goede optie. Hoewel je een LLM lokaal kunt draaien als je daar de hardware voor hebt, zullen de meeste mensen Gemini of OpenAI gebruiken.
De mogelijkheden met een LLM gaan veel verder dan spraakbediening. Zo kun je AI dankzij de nieuwe AI-taken als bouwsteen in een automatisering gebruiken. Hierbij laat je gegevens verwerken door AI om gestructureerde uitvoer terug te krijgen. Vraag bijvoorbeeld om het aantal kippen in een kippenhok te tellen, controleer via een camerabeeld of de container aan de weg staat of vraag een cijfer voor de opgeruimdheid van de kinderkamer.
In dit artikel behandelen we de integratie van een LLM voor stembediening, gaan we met AI-taken aan de slag en laten we gepersonaliseerde meldingen afspelen via een slimme luidspreker.
Slim huis versus privacy
Het standpunt van Home Assistant is dat je volledige controle moet houden over wanneer AI wordt ingezet en wat er wordt gedeeld. Bovendien moeten alle basisfuncties ook zónder AI blijven werken, zodat je nooit afhankelijk wordt van externe clouddiensten. Of je AI nu lokaal of via de cloud gebruikt: het mag alleen gebeuren met expliciete toestemming. Je huis mag nooit een verkapte dataverzamelaar voor ‘Big Tech’ worden. Neem zelf ook je verantwoordelijkheid. Wees kritisch op de data die je deelt en calculeer in dat AI fouten kan maken. Zorg ervoor dat de basis van je huis altijd blijft draaien, ook als AI of internet even niet werkt. Scherm kritieke systemen af: geef de AI alleen toegang tot wat nodig is. Houd zaken als sloten of beveiliging erbuiten.
Stembediening
Je kunt één of meerdere spraakassistenten configureren onder Instellingen / Spraakassistenten. Kies onder Gespreksagent wie de conversaties afhandelt. Kies je Home Assistant, dan moet je vrij specifieke spraakcommando’s geven, al is er ruimte voor variaties en kun je zelf zinnen toevoegen. Kies je Gemini of OpenAI, dan zijn natuurlijke conversaties mogelijk. Daar gaan we verderop mee aan de slag.
Verder kun je instellen hoe spraak-naar-tekst en tekst-naar-spraak voor deze assistent afgehandeld moeten worden. Voor lokaal gebruik zijn Whisper en Piper goede opties. Je kunt ze als add-on in Home Assistant installeren. Kies in dat geval bij Spraak-naar-tekst de optie faster-whisper en de taal Nederlands. Bij Tekst-naar-spraak kies je piper met de gewenste stem. We hebben zelf een voorkeur voor de Vlaamse taal (nl_BE) met de stem nathalie. Je kunt een abonnement op Home Assistant Cloud overwegen (75 euro per jaar) dat toegang geeft tot Nabu Casa Cloud TTS. Die biedt veel goede en snelle TTS-stemmen.
Home Assistant Voice
Voor stembediening kun je de Home Assistant-app gebruiken, maar ook hardware zoals de Home Assistant Voice Preview Edition. Dit kleine kastje luistert en spreekt, maar de logica en verwerking gebeuren binnen Home Assistant. Daarom heet het ook wel een satelliet. Je kunt een zogeheten wake word instellen om stembediening op gang te brengen. Zo'n wake word hoort bij een specifieke Assist-configuratie. Je kunt de satelliet dus ook gebruiken met een LLM.
Sinds de 2025.7-update kun je het nog interactiever maken. Je kunt namelijk via de satelliet een vraag stellen en het antwoord verwerken in je automatisering. Hiervoor geef je in die automatisering de mogelijke antwoorden en variaties op, en de acties die bij een antwoord horen. Home Assistant kan het antwoord dan betrouwbaar herkennen en gebruiken in je automatisering.
Entiteiten ontsluiten
Je kunt onder Instellingen / Spraakassistenten kiezen welke entiteiten toegankelijk moeten zijn voor Assist. Het is nuttig om dit te beperken. Bij gebruik van een LLM zal dit de reactietijd iets verbeteren en de kosten verlagen. Je beperkt hiermee in feite de context, waardoor minder tokens nodig zijn. Ook zal het betrouwbaarder en sneller werken. Wellicht heb je schakelaars die altijd aan moeten blijven of apparaten waar AI niet aan mag komen. Door deze niet te ontsluiten voorkom je dat ze per ongeluk worden bediend.
Apparaten en entiteiten
Het is raadzaam je apparaten en entiteiten een duidelijke naam te geven onder Instellingen / Apparaten en diensten. Heb je meerdere apparaten met vage of vergelijkbare namen dan kan de assistent gaan gokken. Zorg ook dat de juiste ruimte is toegekend. Dan kun je bijvoorbeeld vragen om alle lampen in de woonkamer aan te zetten. Een mogelijke valkuil is een slimme schakelaar die feitelijk een lamp bedient. Dit blijft technisch een schakelaar die valt binnen het domein switch en niet light.
Je kunt bij het instellen van de entiteit, bij Toon als, de optie Licht in plaats van Schakelaar kiezen. Home Assistant behandelt deze dan voortaan als lamp. Verder kun je bij entiteiten extra namen (aliassen) toevoegen. Dit helpt in conversaties. Met een LLM is dat overigens iets minder belangrijk. Vraag je via een LLM bijvoorbeeld om een latte macchiato, dan zal het afleiden dat de koffiemachine wordt bedoeld.
Toegang tot Google Gemini
Hoewel er standaard veel kan met Assist, maakt een LLM de conversaties veel natuurlijker. Hiervoor voeg je de integratie voor Google Gemini of OpenAI toe. In deze masterclass werken we met Gemini. Standaard wordt het model Gemini 2.5 Flash gebruikt, dat een goede balans biedt tussen snelheid, kwaliteit en kosten voor gebruik met Home Assistant.
Via AI Studio kun je een API-sleutel aanmaken na inloggen met een Google-account. Kies hierbij een bestaand project of maak een nieuw project. Hoewel je gratis kunt starten, zijn de limieten niet zo ruim meer als voorheen. Voeg daarom een betaalmethode toe en stel eventueel limieten in, zodat je niet voor verrassingen kunt komen te staan. De kosten hangen overigens sterk af van je gebruik. Met zo’n 0,50 euro per maand kan al heel veel.
Integratie toevoegen
Na het aanmaken van de API-sleutel bij Google kun je de integratie voor Gemini toevoegen. Ga daarvoor naar Instellingen / Apparaten en diensten. Kies Integratie toevoegen en zoek Google / Gemini. Voeg de integratie toe en vul hierbij je API-sleutel in. Dit voegt achtereenvolgens Google AI Conversation toe, die je als gespreksagent kunt kiezen, Google AI STT en Google AI TTS als extra opties voor spraak-naar-tekst en tekst-naar-spraak en Google AI Task, waar we verderop mee aan de slag gaan.
Voor OpenAI is de procedure vergelijkbaar. Ook hiervoor moet je een API-sleutel maken, maar ook wat credits vooraf aanschaffen. Schaf bijvoorbeeld voor 5 dollar (circa 5,19 euro) credits aan om mee te beginnen. Het toevoegen van de integratie geeft een OpenAI Conversation en OpenAI AI Task. Verder kun je nog Ollama met een passend model overwegen (zie kader).
Ollama lokaal of in de cloud
Wil je alles lokaal houden en heb je hier de hardware voor, dan is Ollama een goede optie. Je kunt het installeren op een systeem in je netwerk. Hierna download je de gewenste modellen op het systeem. Voeg vervolgens binnen Home Assistant de Ollama-integratie toe waarbij je de link naar je lokale server invult (met ip-adres en poortnummer). Voor ieder geïnstalleerd model kun je apart een AI Task en AI Conversation agent toevoegen.
Ollama biedt sinds kort ook enkele goede en grote modellen die je via de cloud kunt gebruiken, zoals gpt-oss:120b. Dit is gratis, maar er zijn wel uur- en weeklimieten om de capaciteit te beschermen. Als je een cloudmodel wil gebruiken, moet je Ollama evengoed lokaal installeren, al hoeft het nu geen zwaar systeem te zijn, want het rekenwerk gebeurt online. Op de website van Ollama kun je onder Models specifiek zoeken naar modellen die geschikt zijn voor Home Assistant. Selecteer Cloud voor modellen die via de cloud werken, Vision voor modellen die beeldanalyse ondersteunen en Tools voor modellen die als spraakassistent via Assist te gebruiken zijn.
Gespreksagent kiezen
Na het toevoegen van een LLM kun je conversaties door AI af laten handelen. Voeg hiervoor een nieuwe spraakassistent toe (of pas een bestaande aan). Kies als gespreksagent de gewenste LLM, bijvoorbeeld Google AI Conversation. Dat combineert overigens ook prima met Whisper en Piper zoals eerder gebruikt.
Je kunt hierna in natuurlijke taal vragen stellen en opdrachten geven. Zeg je bijvoorbeeld dat het koud is, dan zal het voorstellen om de verwarming te verhogen. Je kunt niet alleen vragen stellen over de status van je huis, maar ook algemene vragen. Heb je meerdere spraakassistenten ingesteld? Je kunt er één als standaard instellen en per gesprek de gewenste assistent kiezen.
Suggesties door AI
Binnen Home Assistant kun je AI gebruiken voor hulp met bepaalde taken, zoals het automatisch invullen van een naam en beschrijving voor een automatisering of voor het genereren van afbeeldingen. Ga hiervoor naar Instellingen / Systeem / Algemeen. Kies dan onder AI-suggesties welke integraties je hiervoor wilt gebruiken, zoals Google AI Task.
AI Task-systeem
Home Assistant biedt met AI Task een flexibel systeem om taken door AI uit te laten voeren. Een belangrijk voordeel is dat AI hierbij niet alleen gewone tekst kan genereren, maar ook gestructureerde uitvoer kan geven. Dat helpt enorm in automatiseringen, zoals we verderop laten zien. De uitvoer kan bijvoorbeeld tekst zijn, zoals een samenvatting van het weer, maar ook een getal.
Zo kan AI bijvoorbeeld op basis van een beeld het aantal kippen in een kippenhok tellen of het kenteken van een geparkeerde auto herkennen. Het geeft dan een getal met het aantal kippen of een tekst met alleen het kenteken. Je kunt voor je taken elke provider kiezen waarvoor een AI Task bestaat, zoals Gemini of OpenAI. Gebruik je Ollama met meerdere modellen, dan kun je die ook afzonderlijk beschikbaar maken voor AI-taken. Hierdoor kun je in elke automatisering steeds het model selecteren dat het beste past bij wat je wilt bereiken.
Containers tellen
Een typische toepassing voor AI is dat je laat analyseren wat er op een camerabeeld te zien is. Veel toepassingen hebben baat bij gestructureerde uitvoer. Als voorbeeld vragen we AI hoeveel en welke containers er op het camerabeeld te zien zijn. We openen Ontwikkelhulpmiddelen / Acties. Zoek dan naar ai_task.generate_data. Bij Taaknaam vul je een herkenbare naam in. Bij Instructies vul je de instructies voor AI in. We houden dat hier eenvoudig:
Er zijn drie containers:
- Restafval (donkergrijs)
- GFT (groen)
- PMD (oranje)
Tel hoeveel containers je ziet. Geef aan hoeveel van elke container je ziet. Geef aan of ze duidelijk zichtbaar zijn.
Bij Entity ID kies je Google AI Task voor Gemini of een ander model waarvoor je een AI Task hebt toegevoegd. Zet een vinkje bij Structured output en vul de gewenste structuur in, zoals:
containers:
description: "Aantal containers"
selector:
number:
gft:
description: "Aantal GFT"
selector:
number:
restafval:
description: "Aantal restafval"
selector:
number:
pmd:
description: "Aantal PMD"
selector:
number:
zichtbaar:
description: "Zijn de containers duidelijk zichtbaar? true/false"
selector:
boolean:
Bij Bijlagen kun je een camerabeeld kiezen voor beeldanalyse. Dit gebeurt op basis van een stilstaand beeld (snapshot), dus niet via een live videostream. Het werkt alleen als de camera in Home Assistant snapshots ondersteunt en als het gekozen AI-model beeldanalyse kan uitvoeren.
Uitvoer verwerken
We vragen in ons voorbeeld specifiek om een getal (number) voor het totale aantal containers en een getal voor het aantal van elke container (0 of 1). Ook vragen we of de containers duidelijk zichtbaar zijn met als waarde een boolean. Als het donker is zou de herkenning een probleem kunnen geven. Bij description geven we bij elke waarde ook aan wat we daar verwachten. Als we dit uitvoeren, geeft dat bijvoorbeeld het volgende resultaat:
conversation_id: 01KC6DTNQT4ZS2SES0Z10D9Y92
data:
containers: 2
gft: 1
restafval: 0
pmd: 1
zichtbaar: true
In een automatisering gebruik je dit op vergelijkbare manier. Alleen voeg je nu ook een naam voor een variabele toe, zoals airesultaat, waar het antwoord in komt te staan. Dit kun je gebruiken om het resultaat te gebruiken in je automatisering. Verderop geven we een voorbeeld hoe je met zulke variabelen werkt.
Andere modellen gebruiken
De beeldanalyse werkt naar onze ervaring het beste met Gemini of OpenAI. Voor andere modellen is experimenteren nodig. Gebruik je bijvoorbeeld Qwen3-VL via de cloud bij Ollama, dan is er niet alleen meer tijd nodig (ongeveer 10 seconden), maar volgt ook een foutmelding omdat we geen structuur terugkrijgen, zoals gevraagd bij Structured output. Het is in dit voorbeeld op te lossen door de instructies strenger te maken. Zet in de instructies de gewenste structuur, geef aan dat het strikt JSON terug mag geven, geen sleutels mag verzinnen en geen uitleg mag geven.
Extra toepassingen met camera’s
Met AI zijn krachtige beeldanalyses mogelijk, wat voor veel nieuwe toepassingen kan zorgen. Waar vroeger aparte sensors of integraties voor nodig waren, zou een eenvoudige camera genoeg kunnen zijn, met vragen als: Wie staat er voor de deur? Staat er een onbekende auto op de oprit? Is de postbode al langs geweest? Brandt het gasfornuis nog? Is de vloer vrij voor de robotstofzuiger? Is de kamer van de kinderen opgeruimd? Zit de hond op de bank? Is de trampoline vrij? Hoelang is de wasmachine nog bezig? Je kunt je huis dus meer contextbewust maken. Hoewel met AI Task veel mogelijk is, kun je Home Assistant ook nog uitbreiden met bijvoorbeeld Frigate voor slimme camerabewaking en LLM Vision voor het analyseren van camerabeelden.
Meldingen afspelen
Een leuke toepassing binnen Home Assistant is om meldingen middels tekst-naar-spraak af te spelen op een slimme luidspreker. Je kunt het testen via Ontwikkelhulpmiddelen / Acties. Zoek naar de actie tts.speak. Bij Doelen kies je de provider, zoals Google Translate. Bij Mediaspeler entiteit kies je de luidspreker waarop het geluid wordt afgespeeld. Vul ook een bericht in en tik op Actie uitvoeren om de melding af te spelen.
Wil je de meldingen verbeteren? Je kunt als alternatief voor tts.speak de add-on Chime TTS gebruiken. Die voegt geluiden en gesproken tekst lokaal samen voordat ze worden afgespeeld. Daarnaast kun je ElevenLabs overwegen, een alternatieve aanbieder voor tekst-naar-spraak met veel natuurlijke stemmen die zelfs emoties ondersteunen. Op de website kun je al wat spelen met teksten en emoties, zoals fluisteren, opgewonden of dramatisch.
ElevenLabs met of zonder account
Wil je ElevenLabs gebruiken in Home Assistant, dan is een account nodig en een API-sleutel. Een gratis account is voldoende voor 10.000 karakters per maand, omgerekend ongeveer 10 minuten aan audio. Dat is krap, maar meestal wel toereikend als je het hoofdzakelijk voor meldingen gebruikt. Buiten de limiet of voor extra’s zoals het klonen van je stem is een betaald plan nodig.
ElevenLabs gebruiken
Om ElevenLabs te gebruiken, maak je eerst een account op de website. Log daarna in. Zorg dat het Creative Platform is geselecteerd. Ga dan onder Playground naar Text to Speech. Hier kun je tekst invoeren en oefenen met de vele stemmen. Om een API-sleutel te maken, ga je naar Developers. Open het tabblad API Keys en klik op Create Key. Vul bij Name een herkenbare naam in. Je kunt onder Endpoints precies aangeven wat er via die API-sleutel mag worden gebruikt. Omdat het een gratis account is, halen we het vinkje bij Restrict Key weg zodat alles is toegestaan. Klik op Create Key en bewaar de sleutel.
Integratie toevoegen
Heb je de API-sleutel? Ga dan in Home Assistant naar Instellingen / Apparaten en diensten en klik op Integratie toevoegen. Zoek naar Elevenlabs, voeg de integratie toe en vul de API-sleutel in. Wil je emoties gebruiken, let dan wel goed op de instellingen van de integratie. Bij Model moet in dat geval Eleven v3 (alpha) zijn geselecteerd.
Stemmen met emoties
Wil je de integratie met ElevenLabs uitproberen? Maak dan weer een actie zoals hiervoor beschreven. Kies nu bij Doelen voor ElevenLabs. In de tekst bij Bericht kun je eventueel tags opnemen om zinnen of delen met emotie uit te spreken. Met [excited] klinkt het bijvoorbeeld opgewonden en na [whispers] wordt de tekst gefluisterd. Je kunt eventueel een andere stem kiezen. Zoek daarvoor eerst binnen ElevenLabs via Playground / Text to Speech de gewenste stem op. Open dan het menu en klik op Copy voice ID. In Home Assistant zet je bij de bewuste actie een vinkje bij Opties. Vul daar voice: gevolgd door de voice-ID in, zoals:
voice: SOYHLrjzK2X1ezoPC6cr
Melding afspelen
Wil je in een automatisering een samenvatting van bijvoorbeeld het weer afspelen via een slimme luidspreker? Dan bouw je dat in stappen op. Eerst verzamel je de belangrijkste context, zoals de weersgegevens. Het is handig om hiervoor de actie Variabelen definiëren toe te voegen. Zet dan de belangrijkste weersgegevens in een variabele. Gebruik bijvoorbeeld de attributen van weather.forecast_thuis zoals in het voorbeeld hieronder. Deze integratie is standaard aanwezig en gebruikt weersinformatie van met.no. Deze weersgegevens zijn beknopt. Voeg naar voorkeur bijvoorbeeld weerwaarschuwingen toe of de regenkansen volgens Buienradar. Je gebruikt de standaardintegratie als volgt:
variables:
weercontext: >
Nu {{ state_attr('weather.forecast_thuis','temperature') | round(0) }}
graden, {{ states('weather.forecast_thuis') }}, wind {{
state_attr('weather.forecast_thuis','wind_speed') | round(0) }} kilometer
per uur.
Voeg vervolgens een AI Task: Generate data toe zodat je hier met bijvoorbeeld Google AI een samenvatting van kunt maken. In de instructies zet je, zoals in het voorbeeld hieronder, de zojuist gemaakte variabele weercontext. Bij deze actie vullen we bij Antwoord-variabele ook weer een variabele in, bijvoorbeeld samenvatting, zodat we het resultaat kunnen verwerken. Via de instructies kun je ook vragen om speelse of grappige tekst:
Maak hier een korte melding van in natuurlijk Nederlands.
{{ weercontext }}
De uitvoer kun je daarna gebruiken in een actie voor het omzetten van tekst naar spraak. In je Bericht gebruik je dan de samenvatting die AI heeft gemaakt. Die staat in de antwoord-variabele onder samenvatting.data. Dat doe je op deze manier:
Goedemorgen! {{ samenvatting.data }}



