De slimme modi van plug-in thuisbatterijen worden steeds beter. Dynamische prijzen, eigenverbruik, tijdgestuurd laden. Maar je ziet niet wat er onder de motorkap gebeurt. Waarom laadt hij nu? Waarom niet? Had het slimmer gekund? De fabrikant beslist en jij kijkt mee. Meer niet.
Ik wilde dat volledige inzicht juist wel. Niet omdat de fabrikant het per se slecht doet, maar omdat ik wil begrijpen wat er gebeurt. En als ik iets zie dat beter kan, wil ik het kunnen aanpassen. Dus ben ik zelf gaan bouwen, in Home Assistant.
Even voor de verwachting: ik ben geen programmeur. Ik kan code redelijk lezen en snappen wat er staat, maar niet zelf schrijven. Veel van wat hieronder staat heb ik gebouwd met AI als hulpmiddel. Regel voor regel, avond na avond. Dit is geen handleiding om het na te bouwen. Het is het verhaal van wat ik tegenkwam, hoe het werkt en wat het me oplevert.
Dit artikel beschrijft mijn aanpak en ervaringen. Het is bedoeld als inspiratie, niet als bouwhandleiding. Wil je zelf aan de slag? Onderaan vind je een AI-prompt waarmee je een eigen batterijsturing kunt opzetten in Home Assistant. Die werkt voor alle merken, niet alleen Anker.
Het uitganspunt
Twee Anker Solix-batterijen staan in mijn garage: een Solarbank Max AC van 14 kWh en een Solarbank 4 E5000 Pro van 10 kWh. Samen een capaciteit van 24 kWh en bijna 6 kW vermogen. Op het dak liggen zestien panelen. Mijn energiecontract is dynamisch bij Zonneplan, met kwartierprijzen. Dat zijn 96 prijspunten per dag.
Anker heeft een eigen slimme modus die met dynamische prijzen overweg kan. Die werkt. Maar ik zag dingen die ik anders zou doen en had geen manier om dat te veranderen. Twee batterijen als één geheel aansturen? Nog niet mogelijk. Eigen regels toevoegen? Niet mogelijk. Begrijpen waarom hij op een bepaald moment laadt in plaats van ontlaadt? Niet zichtbaar. Dus zelf bouwen, in gewone Home Assistant YAML.
Zendure Sunshine Sale: flinke korting op plug-in thuisbatterijenTot en met 13 september · Vier deals op thuisbatterijen en bundels, inclusief P1-meter. Loopt tot en met 15 september.Bekijk de sale De eerste stappen in Home Assistant
Het eerste wat je doet is de batterij verbinden met Home Assistant. De Anker-integratie praat lokaal via Modbus, zonder cloud. In de Anker-app zet je Instellingen voor externe besturing aan en daarna verschijnen de entiteiten: vermogen, richting, vulgraad, bedrijfsmodus. Alles wat je nodig hebt om de accu aan te sturen.
Het belangrijkste inzicht kwam meteen aan het begin. De accu kan op twee manieren gebruikt worden. Of hij regelt alles zelf op de meter (nul op de meter, de accu bepaalt), of hij doet exact wat jij hem opdraagt via een setpoint in watt (jij bepaalt). Het model dat ik gebouwd heb, bepaalt op welke momenten, een bepaalde modus gehanteerd wordt.
Maar sturen zonder data blijft gokken. Dus heb ik stap voor stap de databronnen eraan geknoopt:
- Verbruik en opwek: de HomeWizard P1 heb ik gekoppeld, dat is de databron. Daarnaast heb ik de Shelly toegevoegd als back-up.
- Energieprijzen: de Zonneplan-integratie geeft het kwartiertarief en de prijzen van morgen (verschijnen rond 14:00). Daar hangt het hele plan aan.
- Zonvoorspelling: Als back-up: Solcast geeft de verwachte opwek per half uur. Weet je dat er morgen genoeg zon komt, dan hoef je vannacht niet bij te laden tegen een hoog tarief.
- Omvormer: Ik heb mijn ouderwetse Zeversolar omvormer gekoppeld aan Home Assistant voor de actuele opwek. Later gekoppeld, maar nu onderdeel van de sturing. Valt hij weg, dan neemt Solcast het over.
Die vier bronnen samen geven het plaatje: wat kost stroom nu, wat gaat het kosten, hoeveel zon verwacht je en wat staat er in de accu? Dat is genoeg om beslissingen te nemen.
Dus concreet heb ik gekoppeld:
- Anker SOLIX Solarbank Max AC
- Anker SOLIX Solarbank 4 E5000 Pro
- Shelly Pro 3EM
- HomeWizard P1 Meter
- Zeversolar omvormer
- Zonneplan (voor dynamische prijzen)
Zo heb ik het opgezet
Het duurde even voordat ik begreep dat je dit niet in één automatisering kunt proppen. Wat werkt is een scheiding in lagen die elk hun eigen vraag beantwoorden. Klinkt abstract, maar het komt neer op dit:
- Een planner – die per kwartier beslist: laden, ontladen of vasthouden. Hij kijkt naar prijzen, verwachte zon, accucapaciteit en verliespercentage. Elk ontlaadkwartier wordt pas ingepland als het na verliezen nog winstgevend is.
- Een opdrachtlaag – die dat plan elk moment vertaalt naar een van vijf woorden: laden, ontladen, nul op de meter, vasthouden of uit. Die vertaling hangt af van het tijdstip, de vulgraad en of je in een handelsblok zit.
- Een adapterlaag die het commando vertaalt naar de taal van Anker. Dit is specifiek voor Anker. Wissel je van merk, dan vervang je alleen dit stukje.
- Eigen rendementsmeting – De tellers van Anker begonnen te meten toen de accu’s al vol waren. Alles wat erin zat telde als opbrengst, maar nooit als verbruik. Dan krijg je cijfers die nergens op slaan. Dus eigen metingen gebouwd.
Die scheiding klinkt misschien als overkill, maar het heeft zich keer op keer terugbetaald. Toen ik later de planner verving door een optimizer, hoefde ik alleen die ene laag aan te passen. De rest bleef gewoon draaien.
De planner zelf is in tientallen iteraties gegroeid. Hij weegt nu het gemeten rendement mee, de slijtagekosten per cyclus, of de accu de geplande kwartieren fysiek kan halen en wat de opgeslagen energie werkelijk heeft gekost. Dat laatste is belangrijk: als je om 23:00 herberekent, moet het systeem weten dat de stroom in de accu om 14:00 is ingeladen tegen 3 cent. Niet tegen wat het nu kost.

Twee accu’s, één systeem
Twee batterijen klinkt simpel: twee keer zoveel capaciteit. In de praktijk is het een van de lastigste onderdelen van het hele project.
Om te beginnen de SOC. Mijn Max AC heeft 14 kWh, de E5000 Pro heeft 10 kWh. Als beide op 50% staan, heeft de een 7 kWh beschikbaar en de ander 5 kWh. Gelijke SOC-percentages betekenen niet gelijke energie. De planner werkt daarom met een gewogen vulgraad van de pool, niet met de individuele percentages.
Dan de sturing. Twee accu’s die allebei op de meter proberen te regelen, is chaos. De ene ziet verbruik en gaat ontladen. De ander ziet het vermogen van de eerste en denkt dat het netverbruik al is afgedekt. Ze werken langs elkaar. Daarom regelt altijd precies één accu op de meter. De ander staat op een vast setpoint en springt pas bij als het verbruik boven het vermogen van de eerste uitkomt.
Het lastigste probleem was rondpompen. Stel: je zit in een ontlaadblok. Accu A ontlaadt, maar raakt zijn ondergrens. Nu stopt A. Het huis trekt weer van het net. Accu B ziet dat en denkt: ik moet bijladen. Maar dat vermogen komt van accu A die nog aan het aflopen is. De ene ontlaadt, de andere laadt. Allebei verliezen ze energie. Tegen piekprijs nog wel.
De oplossing: tijdens een handelsblok volgen beide accu’s altijd de blokrichting. Is het plan ontladen, dan ontlaadt iedereen. Geen uitzonderingen. Bereikt een accu zijn reserve, dan stopt hij. Maar hij gaat niet de andere kant op.
Thuisbatterij ranglijsten: goedkoopste, krachtigste, zuinigste8 lijsten met harde cijfers, prijzen twee keer per dag gechecktBekijk ranglijsten Dingen die ik geleerd heb
Vrijwel elke regel in het systeem is een antwoord op iets dat fout ging. Dat is misschien wel de belangrijkste les: je leert pas echt of het werkt als je het gebruikt. Je bouwt, het gaat stuk en je repareert. Een paar voorbeelden.
Nul is ook niet nul. Een setpoint van 0 watt wordt genegeerd: de vorige waarde blijft staan. Stilstaan is daarom minimaal 20 watt in mijn sturing. Dit heb ik ondervonden door te testen.
Elk van die problemen kostte de nodige iteraties. Je komt ze tegen doordat je ’s ochtends op je dashboard kijkt en denkt: waarom deed hij dat? En dan ga je graven.
Van regels naar een optimizer
Na een paar weken draaien kwam EMHASS in beeld. Dat is een open source-optimizer die de hele dag als een wiskundig probleem oplost, in plaats van met regels te werken. Het verschil: mijn planner zegt “dit kwartier is duur, dus ontladen.” EMHASS weegt alles tegelijk af en concludeert soms dat het slimmer is om een duur kwartier te laten schieten. Omdat er een nog duurder kwartier aankomt en het vermogen begrensd is.
Ik heb EMHASS eerst een tijdje als schaduw laten meedraaien. Elke nacht publiceerde hij zijn eigen plan, dat ik naast mijn eigen plan en de werkelijke opbrengst logde. Drie getallen per dag: wat de eigen planner beloofde, wat EMHASS zou hebben gedaan en wat er werkelijk verdiend was.
Toen dat vergelijk gunstig uitviel, heb ik EMHASS aan het roer gezet. Met een vangnet: is de laatste EMHASS-run ouder dan twee uur, dan neemt mijn eigen planner het automatisch over. Door die lagenopbouw hoefde ik alleen de planner te verwisselen. De rest bleef draaien.

Resultaten: september
September is de eerste maand dat alles draait zoals het nu staat: EMHASS als optimizer, eigen planner als terugval, twee accu’s als pool. Dus dat is het eerlijke meetmoment.
- Stroomafname: 249,6 kWh
- Teruglevering: 192,2 kWh
- Gemiddelde stroomprijs afname: 21,92 cent
- Gemiddelde stroomprijs teruglevering: 40,09 cent
- Totale stroom kosten september (tot 10 september): -€ 24,76

Het rendement per cyclus meet ik op ongeveer 80 procent. Dat is inclusief omzettingsverliezen, standbyverbruik en de weg via de meter. Dat schuift de break-even omhoog: het prijsverschil tussen laden en ontladen moet groter zijn om er iets aan over te houden na verliezen. De planner houdt daar rekening mee.
Op een goede dag, met flinke prijsschommelingen, zit je boven de 4 euro. Op een vlakke dag rond de 50 cent. Per maand hangt het af van hoe wild de prijzen bewegen.
Is dat veel? Op zichzelf niet. Twee batterijen van samen een paar duizend euro terugverdienen met enkele tientjes per maand duurt wel even… Maar het gaat niet alleen om het geld. Het gaat om begrijpen wat je systeem doet. Om zien waarom hij om 03:00 laadt en om 18:00 ontlaadt. Om weten dat als de prijs straks stijgt, jouw batterij klaarstaat.
Is dit iets voor jou?
Dit is iets voor wie Home Assistant al draait, een dynamisch contract heeft en wil begrijpen wat zijn batterij doet. Niet per se om meer geld te verdienen, al helpt het als extra motivatie. Het gaat hier echter om controle te hebben. Om te zien dat je batterij om 03:00 laadt, omdat het tarief -2 cent is en om 18:00 ontlaadt, omdat het 35 cent is. Om dat plan zelf te kunnen bijstellen, als je ziet dat het beter kan.
Je hoeft helemaal geen programmeur te zijn, dat ben ik ook niet. Je moet wel bereid zijn om te leren hoe Home Assistant werkt, wat YAML doet en hoe je een automatisering debugt, als hij om 02:00 ’s nachts iets raars doet. AI kan je helpen met de code. Het denken moet je zelf doen. Ik ben inmiddels al bij versie 90.
Eerlijk is eerlijk: het heeft me veel uren gekost. Tientallen iteraties van de planner. Bugs waar je pas na dagen achterkomt. Een dashboard dat ik minstens twintig keer opnieuw heb ingedeeld. Als je niet bereid bent om avonden te besteden aan YAML en logregels doorlezen, is dit niks voor jou. Ik moet eerlijk bekennen: ik vind dit super leuk om te doen en verbeteren!
Voor wie zijn batterij gewoon wil laten draaien en er niet meer naar omkijken: gebruik de slimme modus van je fabrikant. Die is zeker niet verkeerd. Je mist inzicht, maar je spaart jezelf veel avonden.
Zelf beginnen? Gebruik deze AI-prompt
Ik heb dit gebouwd met hulp van AI. Als je zelf wilt beginnen, kun je onderstaande prompt gebruiken in ChatGPT, Claude of een andere AI-assistent. Het werkt voor elk merk thuisbatterij dat een Home Assistant-integratie heeft.
Pas de prompt aan naar jouw situatie: je merk, je energieleverancier en wat je al hebt draaien in Home Assistant.
Kopieer en plak dit in een AI-assistent naar keuze:
Ik wil mijn plug-in thuisbatterij aansturen vanuit Home Assistant. Help me stap voor stap.
Mijn situatie:
– Batterij: [jouw merk en model, bijv. Anker Solix Solarbank Max AC]
– Capaciteit: [bijv. 10 kWh]
– Energiecontract: [vast / dynamisch, bij welke leverancier]
– Zonnepanelen: [aantal en vermogen, bijv. 16 panelen, 4,8 kWp]
– Slimme meter: [merk, bijv. Kaifa MA304]
– Wat ik al heb in Home Assistant: [bijv. P1-dongle, Shelly 3EM, niets]
Help me met:
1. De juiste Home Assistant-integratie vinden voor mijn batterij
2. De batterij koppelen en de beschikbare entiteiten uitleggen
3. Mijn energieprijzen binnenhalen (Nordpool, Zonneplan of andere integratie. Hou rekening met opslagen en belastingen)
4. Een zonvoorspelling koppelen (Solcast of Forecast.Solar)
5. Een eerste simpele automatisering maken: laden als de prijs onder X cent zit, ontladen als de prijs boven Y cent zit
6. Uitleggen hoe ik dit stap voor stap kan uitbreiden
Gebruik YAML voor de automatiseringen. Leg bij elke stap uit wat het doet en waarom.
Wat je nodig hebt om te beginnen:
- Home Assistant draaiend op een Raspberry Pi, mini-PC of NAS
- Een P1-dongle op je slimme meter (voor het netvermogen)
- Een Home Assistant-integratie voor je batterij. Die bestaat voor onder andere Anker Solix, Zendure, Marstek, Growatt en SolarEdge. Zoek op HACS of de Home Assistant Community naar jouw merk.
- Een prijsintegratie voor je energieleverancier (Zonneplan, ENTSO-E, Tibber of Nordpool)
- Solcast of Forecast.Solar voor de zonvoorspelling (gratis accounts beschikbaar)
Begin klein. Eerst de batterij koppelen en zien wat er binnenkomt. Dan een simpele automatisering: laden onder een bepaalde prijs, ontladen erboven. Daarna uitbreiden. Het is precies zoals ik het zelf heb gedaan: stap voor stap, avond na avond.


















Vragen en ervaringen
Nog geen reacties. Jouw vraag of ervaring mag de eerste zijn.
Heb je een vraag of een eigen ervaring? Ik lees alles en reageer zelf.