Home Assistant is een duizendpoot op het gebied van thuisautomatisering. Je kunt eindeloos knutselen en experimenteren. Tegelijkertijd is het, zeker voor beginners, behoorlijk overweldigend. Als je vertrouwd bent met de basis, kan AI gelukkig al snel een waardevolle hulp zijn om samen iets te bouwen. Denk aan een complexe automatisering, een speciale sjabloon-sensor, een onderdeel voor een dashboard of een externe toepassing die werkt met een API of een ingewikkelde configuratie voor ESPHome. Denk aan een gebruikersinterface met LVGL.
In deze masterclass verkennen we deze mogelijkheden stap voor stap. We beginnen eenvoudig door met AI losse code te maken. Hierbij schakelen we al snel over naar Codex, een uitgebreidere omgeving die heel praktisch is voor ontwikkeling. Tevens installeren we een zogeheten MCP-server in Home Assistant die we toevoegen aan Codex. Hierdoor kan AI zelf jouw installatie onderzoeken, bijvoorbeeld door entiteiten, automatiseringen en statussen op te zoeken.
De assistent kan je ook helpen bij problemen of onderhoud en wijzigingen voorstellen, uitvoeren en controleren. Zo kun je bijvoorbeeld eenvoudig een geavanceerde automatisering laten maken, maar ook controleren of finetunen. We geven enkele praktische voorbeelden, waarbij we bijvoorbeeld met één prompt een gebruikersinterface met ESPHome en LVGL laten bouwen. Met een MCP-server groeit AI uit van een los hulpmiddel tot een echte assistent die je huis naar een hoger plan kan tillen.
In deze masterclass gebruiken we voornamelijk ChatGPT en Codex. Dat kan tegenwoordig gewoon vanuit één en dezelfde app. Je kunt deze als losstaand programma binnen Windows of macOS installeren. We voegen daarna aan Home Assistant een populaire MCP-server toe. Ook geven we Codex hier toegang toe. Zo’n server zorgt ervoor dat een AI-assistent informatie kan ophalen en gereedschappen kan gebruiken op een extern systeem.
Er zijn ook alternatieven voor Codex, waaronder Claude Desktop. Een gratis account is vaak bruikbaar, maar niet ongelimiteerd. Voor deze masterclass gebruiken we een ChatGPT Plus-account. De inbegrepen gebruikslimieten zijn voor normaal hobbygebruik doorgaans ruim voldoende. Bij omvangrijke projecten kun je wel tegen een limiet aanlopen. Daarnaast heb je uiteraard Home Assistant nodig.
Chatomgeving
Bij het knutselen met Home Assistant is een chatbot zoals ChatGPT, Gemini of Claude heel praktisch. Je kunt bijvoorbeeld de benodigde YAML voor een automatisering laten maken en uitleggen. Daarna plak je die in de beheerdersomgeving van Home Assistant. Dit geeft maximale controle, maar is vaak maar een halve oplossing voor het maken van werkende code.
Je moet nog veel zelf doen, zoals het opzoeken van de correcte entiteitsnamen, maar ook het controleren, testen en verfijnen van je automatisering. Het is veel praktischer om een MCP-server te gebruiken, zodat de AI-assistent rechtstreeks met Home Assistant kan communiceren. Om met zo’n MCP-server te kunnen werken, gebruiken we Codex, dat we eerst gaan installeren.
Starten met Codex
Codex is de programmeeragent van OpenAI. Het is sinds kort geïntegreerd in een nieuwe gecombineerde ChatGPT-desktopapp, beschikbaar voor Windows en macOS. Die app gebruiken we in dit artikel. Codex kan externe MCP-gereedschappen gebruiken om met bijvoorbeeld Home Assistant te communiceren.
Bovendien kun je binnen Codex met de modellen Sol, Terra en Luna werken. Terra is bij het sleutelen aan Home Assistant op zich een goede keuze, maar wij gebruiken meestal het krachtigere Sol. Die variant is vooral nuttig wanneer het ingewikkelder wordt. Je kunt eventueel de denkinspanning instellen. We houden het veelal bij Gemiddeld.
Werken met Codex
Codex werkt heel overzichtelijk en de recente modellen gaan grondig te werk bij het uitwerken van bijvoorbeeld codevoorbeelden. De uitleg bevat verwijzingen naar relevante websites, zoals de documentatie van Home Assistant. Klik je daarop, dan wordt een browser in een zijpaneel geopend. Als voorbeeld vragen we om een betrouwbare manier om de hoeveelheid neerslag voor de komende 24 uur te bepalen. Het stelt een sjabloon-sensor voor die de verwachting per uur voor de komende 24 uur bij elkaar optelt, zodat je een voortschrijdende periode van 24 uur hebt.
Hierbij maakt het tevens een binaire sensor aan die eenvoudigweg aangeeft of het droog blijft of niet. Soms werkt zo’n voorbeeld niet direct, bijvoorbeeld omdat het niet de juiste entiteit gebruikt. Je kunt dan over en weer vaak wel tot werkende code komen, maar dat voelt omslachtig. De integratie van een MCP-server is in dergelijke situaties een enorme meerwaarde. Het geeft veel vaker direct een werkende oplossing voor je probleem. Dat doen we in de volgende stappen voor Home Assistant.
Installatie MCP-server
We gebruiken bij deze masterclass het populaire project HA-MCP dat zichzelf The Unofficial and Awesome Home Assistant MCP Server noemt. Je kunt het op verschillende manieren installeren. Bij Home Assistant OS kun je het als app (voorheen add-on genoemd) installeren, maar ook via HACS. Daar kiezen we hier voor. Zorg dat je HACS hebt geïnstalleerd en open het via de beheerdersomgeving van Home Assistant.
Ga eerst naar het menu (via de drie puntjes rechtsboven) en kies Aangepaste repositories. Vul bij Repository de link https://github.com/homeassistant-ai/ha-mcp-integration in en kies als Type voor Integration. Klik dan op Toevoegen en sluit het venster. Zoek naar ha-mcp custom component. Kies Download en bevestig het downloaden van de laatste versie. Herstart hierna Home Assistant volledig. Je kunt nu de integratie toevoegen aan Home Assistant.
Een MCP-server vormt een gestandaardiseerde brug tussen een AI-assistent en een externe toepassing of gegevensbron. Een MCP-server verstrekt de gevraagde informatie en stelt gereedschappen beschikbaar. Hiermee kan AI gegevens opzoeken, bestanden lezen of acties uitvoeren.
GitHub heeft bijvoorbeeld een MCP-server die repositories kan onderzoeken, bestanden aanpassen en issues of pull requests beheren. Home Assistant beschikt zelf over een officiële MCP-server, maar die is vooral gericht op het ontsluiten van Assist voor spraakbediening.
De onofficiële HA-MCP-server gaat veel verder, dankzij tientallen gespecialiseerde gereedschappen. Hierdoor kan de AI-assistent zelf de juiste entiteiten opzoeken, statussen lezen, automatiseringen en dashboards onderzoeken en, afhankelijk van de toegekende rechten, ook wijzigingen uitvoeren. Hij beschikt dus over alle relevante context én kan van alles doen. Daarom is het een ideaal ontwikkel- én beheerhulpmiddel.
Bouw je zelf een externe toepassing voor Home Assistant, dan kan de MCP-server helpen om de installatie te begrijpen en de juiste entiteiten te vinden. De uiteindelijke toepassing communiceert rechtstreeks met Home Assistant via bestaande interfaces, zoals de REST API, WebSocket API, webhooks of MQTT.
Integratie toevoegen
Je kunt de integratie op de gangbare wijze toevoegen aan Home Assistant. Daarvoor ga je via Instellingen naar Apparaten en diensten. Kies Integratie toevoegen. Zoek de component op en installeer deze. Je kunt hierna kiezen tussen HA-MCP Server en HA-MCP File & YAML Tools. We raden aan om de eerste optie te kiezen. De tweede optie geeft de AI-assistent veel directere en bredere toegang tot bepaalde bestanden, wat voor normaal gebruik (waaronder het bijwerken van dashboards en automatiseringen) niet nodig is.
Opties instellen
In het menu van Home Assistant zie je nu de verwijzing HA-MCP. Daarin zie je onder meer alle beschikbare gereedschappen. Je kunt ze individueel aan- of uitzetten via een vinkje. Gereedschappen hebben een handig label dat aangeeft of ze iets lezen, verwijderen of schrijven (zoals iets aanmaken of bijwerken).
Onder Automations zie je bijvoorbeeld gereedschappen voor respectievelijk het ophalen van je automatiseringen, het verwijderen van een automatisering en het maken of bijwerken van een automatisering. Bovenaan zie je ook een algemene Read Only Mode waarmee je gereedschappen die iets verwijderen of schrijven in één handeling uitzet.
Toevoegen aan Codex
Verschillende AI-assistenten, waaronder Codex, kunnen nu gebruik gaan maken van de MCP-server in Home Assistant. Via deze link kun je eventueel specifieke instructies krijgen. Bij deze masterclass gebruiken we de standaard beveiligde webhook-url. Deze enkele link is voldoende voor de verbinding.
Om die te achterhalen ga je via Instellingen naar Apparaten en diensten. Klik op HA-MCP Custom Component. Klik dan achter HA-MCP Server op het instellingenicoontje. Onder Connect URL(s) zie je een link waarin private_ en een reeks karakters (de beveiliging) staan. Kopieer die link naar je klembord. Open dan Codex. Open onder Bewerken de instellingen.
Ga vervolgens onder Integraties naar Plug-ins. Kies op het tabje MCP’s de optie Server toevoegen. Vul een naam in. Kies bij Type voor Streamable HTTP. Bij URL vul je de verbindings-url in. Klik dan op Opslaan. Hierna kun je vragen stellen over je huis en installatie van Home Assistant. Soms is het nodig om HA-MCP te noemen, als de assistent dat niet direct begrijpt. In het tweede deel geven we enkele praktische voorbeelden voor het werken met deze MCP-server.
Vragen over je huis
Een goede eerste vraag is of Codex Home Assistant kan vinden via HA-MCP. Laat hierna bijvoorbeeld onderzoeken of je installatie fouten bevat. Dat geeft, zeker bij grotere installaties, vaak nuttige aanwijzingen. Denk aan automatiseringen die naar onbekende apparaten verwijzen, verouderde configuraties, ongeldige sensorwaardes of een volle schijf. Problemen kun je laten herstellen, maar je kunt het ook zelf met beleid doen.
Nog een handige toepassing is dat je bij een update van Home Assistant de release-notes kunt bijsluiten en kunt vragen of dit invloed heeft op jouw installatie. En na de update kun je vragen om te controleren of alles gezond is. Een andere meerwaarde is dat je eenvoudiger geavanceerde automatiseringen of dashboards kunt bouwen. Daar geven we hierna wat tips voor.
De AI ziet direct welke entiteiten moeten worden gebruikt. Als iets niet lukt via de MCP-server kan Codex ook zelf voorstellen om via een browserscherm in te loggen bij Home Assistant zodat het met computerbesturing acties kan uitvoeren. Dat is een heel andere route, en meestal niet de beste.
Automatisering
Automatiseringen vormen een belangrijk onderdeel van Home Assistant, maar je moet met veel rekening houden. Een automatisering bestaat uit een of meer triggers, eventuele aanvullende voorwaarden en acties. Ook binnen de acties kun je weer voorwaarden en keuzemogelijkheden opnemen. Via de visuele editor kun je dit vrij comfortabel instellen, maar door de vele mogelijkheden en onderlinge afhankelijkheden is een fout snel gemaakt.
Recent is dit wel verbeterd en iets intuïtiever. Zo kun je bij steeds meer triggers en voorwaarden een herkenbaar doel kiezen, zoals ‘er is beweging gedetecteerd in de tuin’. Je hoeft dan niet naar de technische staatverandering (zoals: de binaire sensor gaat van off naar on) te kijken. Achter de schermen worden automatiseringen nog steeds gewoon als YAML-configuratie opgeslagen.
Daarom kan AI goed helpen bij het maken, uitleggen, onderzoeken en verbeteren van automatiseringen. Hierbij kan het bepaalde skills van HA-MCP gebruiken voor een betere kwaliteit. Controleer en test het resultaat wel altijd zelf.
De MCP-server voor Home Assistant bevat zogenoemde skills. Dit zijn richtlijnen en best practices voor de manier waarop iets bij voorkeur wordt gebouwd. Dat is belangrijk, omdat een probleem vaak op meerdere manieren kan worden opgelost en Home Assistant zich snel ontwikkelt. De trainingskennis van een AI-model kan daardoor verouderd zijn.
Modellen kunnen actuele documentatie raadplegen, maar doen dat niet altijd vanzelf. De skills schrijven bijvoorbeeld voor dat eerst de ingebouwde mogelijkheden van Home Assistant worden gebruikt en pas daarna, wanneer dat nodig is, bijvoorbeeld sjablonen worden toegepast.
Ook adviseren ze het gebruik van stabiele entiteiten, duidelijke beschrijvingen, een passende automatiseringsmodus en een goede afhandeling van fouten en onverwachte situaties. Tot slot moet de AI controleren wat Home Assistant daadwerkelijk heeft opgeslagen en, waar mogelijk, of de automatisering correct is uitgevoerd.
ESPHome
Met ESPHome kun je allerlei slimme hardware bouwen rondom een microcontroller. Je sluit bijvoorbeeld sensors, schakelaars of een scherm aan en beschrijft in een configuratiebestand wat er is aangesloten. Dit werkt vervolgens samen met Home Assistant. De configuratie is soms heel makkelijk, maar het wordt lastiger als je bijvoorbeeld logica wilt toevoegen om een ruwe analoge meetwaarde te kalibreren en om te rekenen naar een percentage, een Super Mario-deuntje wilt afspelen op een rttl-zoemer, of de C++-code voor een lambda nodig hebt om tekst en meetwaarden netjes op een scherm te plaatsen. Hier kan AI veel vrij omslachtige en foutgevoelige code voor je uitschrijven.
De MCP-server is ook heel nuttig, zeker als je rekening met entiteiten in Home Assistant moet houden. Bijvoorbeeld bij een scherm met gebruikersinterface, zoals we hieronder demonstreren. Merk op dat HA-MCP niet direct iets met ESPHome zelf kan doen. Er bestaan wel aparte MCP-servers voor ESPHome, die bijvoorbeeld configuraties lezen en aanpassen of firmware compileren. In deze masterclass hebben we ons beperkt tot wat er mogelijk is met HA-MCP.
ESP32 met touchscreen
In het verleden schreven we al eens over de LVGL-bibliotheek die je binnen ESPHome kunt gebruiken (zie dit artikel). Hiermee maak je zelf gebruikersinterfaces voor een touchscreen. Je kunt kiezen uit bijna 30 widgets, variërend van eenvoudige labels en knoppen tot tabbladen, toetsenborden, schuifregelaars, meters en QR-codes.
Met hulp van AI kun je zo’n gebruikersinterface veel sneller opbouwen. Als voorbeeld gebruiken we een CrowPanel met 7inch-aanraakscherm en ingebouwde ESP32-microcontroller. Als je het scherm uit de doos inschakelt, verschijnt een demonstratie van LVGL. Met hulp van AI maken we eerst een basisconfiguratie die vooral het bord en de wifi-instellingen bevat.
De configuratie maken we via de ESPHome Device Builder. Dit onderdeel kun je binnen Home Assistant als app installeren. We compileren hierin de firmware voor ESPHome en downloaden het resulterende .bin-bestand, dat we in de volgende stap gaan flashen.
Toevoegen aan Home Assistant
Voor het flashen van de firmware gebruiken we ESPHome Web (https://web.esphome.io). Dit werkt vanaf elke pc. Als je het scherm daarna via usb-c opstart, kun je het direct toevoegen aan Home Assistant, onder Instellingen / Apparaten en diensten. Het apparaat is al bekend in ESPHome Device Builder, omdat we daar de basisconfiguratie hebben gemaakt. Heb je de firmware op een andere manier geïnstalleerd, dan moet je het apparaat eerst adopteren in de Device Builder voordat je de configuratie daarin verder kunt beheren.
Als volgende stap breiden we de configuratie met hulp van AI uit. Vooral het scherm en het touchscreen vereisen veel specifieke instellingen, met in dit geval ook verschillende hardwarerevisies van het CrowPanel. Een voorbeeldconfiguratie van internet is een nuttig uitgangspunt, maar werkt niet altijd direct op ieder exemplaar.
Gelukkig kan AI uitstekend verouderde configuraties aanpassen aan een recente ESPHome-versie en eventuele problemen stap voor stap oplossen. Na enkele iteraties hebben we een werkende gebruikersinterface met een knop en daarboven een teller die bijhoudt hoe vaak de knop is ingedrukt. Tijd om een geavanceerdere interface te maken!
Geavanceerde gebruikersinterface
We hebben nu een eenvoudige maar werkende basis, wat een ideaal startpunt is om een geavanceerde gebruikersinterface te bouwen. Met deze eerste eenvoudige prompt in Codex krijgen we al direct een mooi resultaat: “Maak een gebruikersinterface met LVGL voor de CrowPanel. Ik wil hierin de spots, het ledpaneel en de ledstrip (wled) met dimmogelijkheid. Knoppen voor scènes. Ik wil apparaten aan en uit kunnen zetten (hoofdversterkers, keyboard en sport). En schakelaars voor de verlichting in de berging links, rechts en de vliering. Gebruik eventueel tabbladen voor een logische scheiding.”
Het model kiest en controleert zelf de entiteiten en levert daarna drie aparte bestanden: instructies voor de installatie, een YAML-bestand met de belangrijkste code en een visuele preview, zodat je direct kunt beoordelen hoe het eruit gaat zien. Het YAML-bestand bevat ongeveer 750 regels met alle essentiële onderdelen en is gemakkelijk aan te passen. Als bijvoorbeeld een entiteitsnaam wijzigt, kun je dat onder substitutions: veranderen.
Installatie binnen ESPHome
De installatie is eenvoudig. Je kunt het YAML-bestand met bijvoorbeeld File editor uploaden naar de juiste map in Home Assistant. In ons voorbeeld komt het onder /config/esphome/packages/crowpanel-kantoor-lvgl.yaml. We kunnen hierna het blok lvgl: uit onze oorspronkelijke code halen zodat het niet dubbelop is. In plaats daarvan verwijzen we naar het YAML-bestand:
packages:
kantoor_ui: !include packages/crowpanel-kantoor-lvgl.yamlBij de ESPHome-integratie moeten we voorts nog een vinkje zetten bij de optie Toestaan dat het apparaat Home Assistant-acties uitvoert. Dan kun je de bedieningsknoppen daadwerkelijk gebruiken. Na het compileren werkt alles volledig. Wellicht wil je nog wat aanpassingen maken aan de indeling of het uiterlijk, maar je hebt een prima startpunt. Het scheelt wel tijd als je in je eerste prompt al je wensen aangeeft. Dat geldt ook voor bijvoorbeeld dashboards en automatiseringen.
Back-ups
Zoals je hebt gezien, kun je ervoor kiezen om alles handmatig aan te passen, wat bij ESPHome ook nodig is, omdat we hier geen MCP-server voor gebruikten. Maar je kunt bij Home Assistant met de MCP-server ook prima aanpassingen door AI laten maken. Het is wel fijn als je zelf alles controleert.
Ook is het nuttig om back-ups te maken van Home Assistant, zodat je bij een probleem alles gemakkelijk terug kunt zetten. Gelukkig heeft HA-MCP ook een ingebouwde back-upvoorziening. Als via één van de gereedschappen een bestand wordt bijgewerkt, wordt automatisch een back-up gemaakt. Je kunt na het openen van HA-MCP op het tabblad Backups de gemaakte back-ups bekijken. Ook kun je zien wat er is veranderd en een eerdere versie terugzetten. In het kader noemen we enkele andere valkuilen om rekening mee te houden.
Met AI kun je uitstekend kleine maar lastige onderdelen van een Home Assistant-project oplossen. Met een MCP-server werk je sneller en maak je minder fouten, omdat AI zelf onderzoek kan doen. Toch blijft het belangrijk om ook zelf alles te controleren. Een taalmodel kan code maken die technisch geldig is, maar niet doet wat je bedoelt.
Dat risico groeit als de code complexer wordt. Laat de AI daarom eerst wijzigingen uitleggen en controleer alles voordat je toestemming geeft. Ook een MCP-server brengt risico’s mee. De geheime verbindings-url werkt feitelijk als wachtwoord. Houd die dus verborgen en gebruik de server bij voorkeur alleen binnen je eigen netwerk. Vaak zijn veel gereedschappen standaard actief. Dat is comfortabel, maar geeft de AI mogelijk meer rechten dan nodig.
Schakel ongebruikte gereedschappen uit of stop de MCP-server (tijdelijk) als je klaar bent. Verder gelden uiteraard de normale risico’s van Home Assistant. Een fout in een automatisering kan een garagedeur openen, een pomp droog laten lopen of een alarm uitschakelen. Bouw daarom altijd extra beveiligingen in.
Codex kan via de onofficiële HA-MCP-server entiteiten, statussen en automatiseringen in Home Assistant onderzoeken en, afhankelijk van de toegekende rechten, wijzigingen uitvoeren. HA-MCP laat je gereedschappen afzonderlijk uitschakelen en biedt een alleen-lezenmodus die schrijf- en verwijderacties blokkeert.
Voor een CrowPanel met een 7inch-aanraakscherm genereert Codex in het uitgewerkte voorbeeld ongeveer 750 regels YAML voor een ESPHome-interface met LVGL. HA-MCP past in deze werkwijze geen ESPHome-configuraties rechtstreeks aan, waardoor handmatige installatie nodig blijft. Controleer AI-wijzigingen zelf, houd de geheime verbindings-url verborgen en maak back-ups van Home Assistant.
















