Logboek, 16 oktober 2026. De week waarin EMHASS van drie minuten naar één seconde ging, de zonprognose eindelijk klopte, en bleek dat er al die tijd 29 procent meer paneel op het dak lag dan in elk model stond. Plus de twee fouten die ik zelf maakte, en wat ik daarvan heb geleerd over werkwijze.
Waar ik begon
Vorige week liep EMHASS, de optimalisatie die elk kwartier bepaalt wat de thuisbatterij doet, regelmatig vast. Een berekening duurde 55 tot 90 seconden als het goed ging, en liep tegen de tijdslimiet van drie minuten als het misging. Ik had de horizon al teruggebracht van 36 naar 24 uur om het draaiend te houden, en daarmee gaf ik precies op wat de planning waardevol maakt: ’s middags al zien dat de avondpiek van morgen eraan komt.
De oorzaak zat in de configuratie, niet in het model
De doorbraak kwam niet van proberen op de installatie zelf, maar van EMHASS lokaal installeren en de eigen configuratie offline doorrekenen, met één instelling per keer aan of uit. Dat gaf een tabel die geen discussie meer toeliet:
| Configuratie | Rekentijd |
|---|---|
| Zoals het stond (hybride omvormer aan, “batterij eerst” aan) | 106 s |
| Alleen “batterij eerst” aan | 46 s |
| Alleen hybride omvormer aan | 0,9 s |
| Beide uit | 0,7 s |
| Beide uit, mét verwarmingsmodel | 0,5 s |
De schuldige was set_battery_first_priority. De documentatie zegt er letterlijk bij dat het bedoeld is voor een vast tarief: het verbiedt netafname zolang de batterij nog iets heeft. Bij kwartierprijzen is dat precies verkeerd om, want goedkoop netladen terwijl de batterij halfvol is, is de hele arbitrage. En de zware straf die de instelling toevoegt maakte het rekenprobleem slecht geconditioneerd. Eén vinkje, factor zestig in rekentijd.
Het hybride-omvormermodel heb ik ook uitgezet, om een andere reden: mijn panelen hangen met micro-omvormers aan de wisselstroomkant, er is geen gelijkstroombus waar PV en batterij elkaar ontmoeten. Het model klopte fysiek niet, en het voegde per kwartier een binaire beslisvariabele toe.
Eerst de documentatie, dan bouwen
Dit was ook de week waarin ik de volledige EMHASS-documentatie heb laten lezen, alle 42 pagina’s inclusief het kookboek en de studiecases, voordat er nog iets werd aangepast. Dat had ik eerder moeten doen. Er bleken dingen in te staan die mijn eigen bouwwerk overbodig maakten: prijzen en zonprognose kun je als tijdgestempelde dictionary aanleveren, waarna EMHASS zelf uitlijnt en gaten vult. Weg met de kwartierlogica die ik zelf had geschreven en waar al twee keer een fout in had gezeten. En de aanbevolen manier om het einde van de planhorizon te behandelen stond er ook in; daar kom ik zo op terug.
Het resultaat is een strategiedocument: per EMHASS-functie of hij op mijn setup van toepassing is, wat hij oplevert, wat hij vereist, en in welke volgorde ik ze invoer. De verwarming als thermisch model, tapwater met douchetijden, de auto via evcc, het zondagse balanceren via een SoC-doel. Niets daarvan is deze week live gegaan; het staat klaar, met een vangnet, en wacht op kouder weer voor de kalibratie.
Wat is opgeslagen energie waard aan het einde van de horizon?
Een planner die 48 uur vooruitkijkt moet weten wat een volle batterij op uur 48 waard is, anders verkoopt hij alles op het laatste moment. Ik had daar een vaste eindstand van 25 procent voor, met als gevolg een geplande “dump” aan het einde die zelden werd uitgevoerd maar de tussenliggende keuzes wel kleurde. De documentatie raadt aan om de eindstand gelijk te stellen aan de beginstand: energie is zijn eigen waarde. Dat werkte, tot de batterij na het zondagse balanceren op 95 procent stond. Toen betekende “eindig waar je begon” dat elke ontladen kilowattuur binnen twee dure dagen moest worden teruggekocht, en EMHASS hield de batterij ’s nachts op 89 procent terwijl het huis voor € 0,38 van het net kwam.
De oplossing die nu draait is automatisch: de eindstand is de beginstand, maar nooit hoger dan het gemiddelde van de werkelijke SoC over de afgelopen zeven dagen. Wat daarboven zit is overschot en mag vrij worden gebruikt; daaronder geldt de neutrale regel. Geen knop, geen getal dat ik kies; het volgt het seizoen vanzelf. Dezelfde avond, dezelfde prijzen, drie varianten:
| Eindstand | Kosten |
|---|---|
| Vaste eindstand 95 % | € 6,44 |
| De verkeerde start | € 5,01 |
| Weekgemiddelde van de SoC | € 2,42 |
De zon: 6,84 kWp, niet 5,31
Vorige week schreef ik over een maandtabel om de structureel te lage zonprognose te corrigeren, met factoren tot 1,28. Deze week stond in de Enphase-app wat er werkelijk op het dak ligt: 18 panelen van 380 Wp met IQ7+ micro-omvormers, geen 295 Wp met IQ7. Dat is 6,84 kWp in plaats van 5,31, een factor 1,29. Precies de mediaan die de meetlus al acht dagen liet zien. De tabel corrigeerde geen weer, maar een verkeerd kWp-getal.
Met de juiste dakgegevens heb ik Solcast ernaast gezet, en de vergelijking eerlijk gemaakt: beide prognoses om 06:00 vastleggen, vóór de zon opkomt, en om 23:55 naast de werkelijke opwek leggen. Na drie dagen, één zonnig en twee grijs, zat Solcast vrijwel op de werkelijkheid en Open-Meteo er 40 procent onder. Sinds donderdag leest EMHASS de zon uit Solcast, rechtstreeks uit de Home Assistant-integratie, zonder extra API-aanroepen. De maandtabel is weg.
Zondag leverde het dak 32 kWh. Ik was er eerst van overtuigd dat de prognose van Solcast te hoog was.
Prijsbewust stoken, als tussenstap
De warmtepomp wordt pas door EMHASS gepland als het huis is gekalibreerd: zeven nachten afkoeling en vijf echte stookdagen. Dat duurt bij 16 graden buiten even. Tot die tijd doet een eenvoudiger regel het werk. Elk kwartier bepaalt Home Assistant of het nu duur is (meer dan 15 procent boven het gemiddelde van de komende 24 uur) of binnen twee uur duur wordt. Dure uren: het doel gaat driekwart graad omlaag en de vloer doet de rest. Vlak ervoor, als het nog goedkoop is: een halve graad extra. Donderdagochtend draaide de verwarming van 05:00 tot 06:45 bij € 0,31 en bleef hij uit tijdens de piek van € 0,46 om 08:00. Twee starts per dag, nooit in de piek.
Twee eigen fouten
Het balanceren bleef hangen. Zondag na drie herstarts van Home Assistant stond het SoC-doel van de omvormer nog op 100 procent, en ontlaadde de batterij ’s avonds niet terwijl de prijs € 0,42 was. De automatisering die het balanceren beëindigt wachtte in één lange run op “batterij vol”, en een herstart breekt zo’n run af; de 8-uurs-timeout begon na elke herstart opnieuw te tellen. Nu kijkt een bewaker elke vijf minuten, en direct na elke start, of het balanceren nog hoort te lopen.
De warmteverliesmeting op zonnige dagen. De meting deelt de warmte die de warmtepomp levert door het temperatuurverschil binnen-buiten. Op een zonnige oktoberdag verwarmt de zon het huis grotendeels zelf, en dan lijkt het op een huis van 23 W/K, een paspoort dat geen rijtjeswoning haalt. Die waarde zou de thermische constante voor EMHASS vervuilen. Nu telt een dag alleen mee als de warmtepomp minstens 12 kWh leverde en de zon minder dan 12 kWh gaf.
Wat er bij is gekomen aan gereedschap
- Offline testharnas. Elke wijziging aan de EMHASS-payload wordt eerst lokaal doorgerekend tegen dezelfde versie als de add-on, met status en rekentijd, voordat hij op de installatie komt. Het verwarmingsmodel is zo in zes varianten getoetst zonder dat er thuis iets draaide.
- Systeemcheck. Eén script dat de hele keten naloopt (plan vers, SoC-doel, levert de batterij wat het plan zegt, net rond nul, Modbus, prognoses, kalibratie) en het rapport op de telefoon zet. Achttien regels, groen of rood, met een aanwijzing erbij.
- Plausibiliteitscontrole. Na een herstart gaf de batterijsensor kort 49 procent in plaats van 95; het plan wilde meteen met 11 kW netladen. Een SoC die meer dan 20 punten afwijkt van die van de vorige run wordt nu overgeslagen, met een melding.
- Plan herpubliceren na herstart. De sensoren die EMHASS publiceert zijn na een Home Assistant-herstart weg tot de volgende run; de omvormer zat dan een kwartier in de veilige stand. Nu wordt het laatste plan direct na de start opnieuw gepubliceerd.
Stand van zaken
EMHASS rekent in één seconde met een horizon van 48 uur. De batterij volgt het plan: nacht en ochtendpiek uit de batterij, overdag vol uit zon, avond uit de batterij; op de dure dagen van deze week geen enkele export, en dat was de juiste keuze. De zonprognose ligt op de werkelijkheid. De warmtepomp draait twee keer per dag in goedkope uren. En het thermische model voor de verwarming staat klaar achter één schakelaar, met een pauzevangnet als een run mislukt. Het wacht op de eerste koude week.
De les
De belangrijkste les van de week is geen instelling. Het is: lees eerst alles, toets daarna offline, en pas dan live. De twee dagen die ik daaraan kwijt was, hebben me meer opgeleverd dan de drie dagen proberen ervoor.
Alle logboeken op een rij: Logboek. Alle incidenten en lessen: Lessen uit de praktijk. Wil je EMHASS zelf opzetten? Begin bij EMHASS installeren in Home Assistant.
Gratis gids: Klaar voor 2027
De salderingsregeling stopt op 1 januari 2027. In elf pagina’s: wat het jou kost, vijf manieren om meer zonnestroom zelf te gebruiken, een checklist en een beslisboom.
Dit werkt in mijn situatie: micro-omvormers aan de wisselstroomkant, een Deye-omvormer met thuisbatterij en kwartierprijzen. Rekentijden en kosten gelden voor één installatie en één week. Controleer het tegen je eigen documentatie. Stand: oktober 2026.





Geef een reactie