Slimme energiemeters in Nederland leveren via de zogenaamde P1-standaard een continue stroom meetgegevens — verbruik, teruglevering, gas, fasebelasting. Op zichzelf is dat een schat aan informatie, maar pas bruikbaar als u die data betrouwbaar kunt verzamelen, opslaan en op verschillende manieren visualiseren.
Voor dit project heb ik gewerkt aan een site die precies dat doet. Doel: meetgegevens uit slimme energiemeters verzamelen en op verschillende manieren weergeven — voor eindgebruikers die hun verbruik willen begrijpen, en voor partijen die op grotere schaal patronen willen zien.
Mijn bijdrage lag vooral op twee sporen: een herhaalbare manier ontwerpen om meetgegevens te importeren, en een effectief systeem opzetten om foutmeldingen te detecteren. Beide klinken als plumbing, maar zijn cruciaal: zonder betrouwbare ingestion is iedere visualisatie achteraf misleidend, en zonder goede foutdetectie merkt u pas weken later dat een hele stroom data zit te lekken.
Voor de import heb ik veel kennis moeten opdoen over de P1-standaard. Op papier ziet die er overzichtelijk uit; in de praktijk zit er variatie tussen apparaten en firmware-versies die u niet zomaar uit de specificatie afleidt. We hebben de parser daarom defensief opgezet: liever een onbekend veld duidelijk gemarkeerd opslaan en doorgeven aan analyse dan stilletjes weggooien.
Foutdetectie hebben we ingebouwd op meerdere lagen: ontbrekende batches, scheve waarden ten opzichte van het historische patroon, plotselinge sprongen die fysiek onwaarschijnlijk zijn. Niet om automatisch in te grijpen — daar is de wereld te grillig voor — maar om bij operations en datateam vroeg en duidelijk een vlag op te steken.
Technisch werkten we met Silverstripe en PHP voor het web-stuk, met jQuery voor lichte interactiviteit. Niets ingewikkelds; juist door eenvoudige tools te combineren met een goed doordachte data-architectuur konden we efficiënt leveren wat de opdrachtgever nodig had. Trots op de manier waarop we dit hebben kunnen implementeren.
Resultaten
- Herhaalbare import van P1-meetgegevens, defensief geparsed over verschillende firmwareversies
- Foutdetectie op drie lagen: ontbrekende batches, scheve waarden en fysiek onwaarschijnlijke sprongen
- Verbruik, teruglevering, gas en fasebelasting op meerdere manieren gevisualiseerd