← Terug naar projecten

Smart Home Energy Management System (EMS)

Mijn zelfgebouwde Smart Home Energy Management System voor zonne-energie, batterij, boiler, EV-laden en flexibele apparaten.

Smart Home Energy Management System (EMS)

Achtergrond

Het Home Energy Management System (HEMS of Home EMS) is onderdeel van mijn zelfgebouwde home automation project. Het systeem is tegelijk een praktische installatie en een testomgeving voor slimme energiesturing, real-time analyse en adaptief apparaatbeheer.

Het belangrijkste doel is om eigen verbruik van zonne-energie te maximaliseren en netverbruik te minimaliseren, zonder comfort of betrouwbaarheid op te offeren.

Meer over het home automation platform staat in Home Automation System.


Systeemopzet

Het EMS draait op Linux en is volledig ontwikkeld in Python, met MQTT als centrale communicatiebus.

Het systeem integreert:

  • 20 kWp PV array
  • 11.4 kWh LiFePO4 batterij
  • 300 L warmtepompboiler met aan/uit-regeling en een 0-100% regelbaar elektrisch verwarmingselement
  • per-fase monitoring en sturing
  • gestuurde apparaten zoals autolader, woningverwarming, zwembadverwarming en zwembadfiltratie

Alle metingen worden real-time verwerkt. Het systeem evalueert continu opwek, verbruik en batterijstatus om de beste bedrijfsmodus te bepalen.


Energy router

De kernmodule van het EMS is de energy router. Die heeft drie hoofdrollen:

  • berekenen hoeveel energie alle actieve apparaten vandaag nodig hebben
  • de energiemodus voor vandaag bepalen op basis van de zonverwachting: geen zon, weinig zon, normaal of overcapaciteit
  • apparaten prioriteren op basis van regels

Deze berekeningen draaien elke twee minuten met de meest recente forecast en de verwachte resterende zonne-energie voor de dag.


Gestuurde apparaten

Gestuurde apparaten zijn alle onderdelen binnen het EMS die actief geregeld kunnen worden via schakelen, moduleren of vermogensaanpassing. Ze vormen de flexibiliteit van de energiesturing: ze kunnen zonne-overschot opnemen, pieken vermijden en batterijgebruik optimaliseren.

Elk apparaat heeft een eigen regelstrategie. Sommige reageren op een vermogenssetpoint, andere op eenvoudige aan/uit-logica. Veel apparaten hebben interne beperkingen waar het EMS rekening mee moet houden. Goede sturing vraagt daarom betrouwbare metingen, duidelijke prioriteiten en robuuste fail-safe regels.


Vermogensverdeling

De regelbare apparaten staan op prioriteit en ontvangen vermogen van de energy router. Elk apparaat rapporteert het werkelijke verbruik, waardoor ongebruikt vermogen doorgegeven kan worden aan het volgende apparaat.

De reactiesnelheid verschilt per apparaat. Een autolader vraagt langzame en stabiele aanpassingen, terwijl het verwarmingselement van de boiler vrijwel direct kan reageren. Daarom werkt de autolader bewust met een kleine buffer onder het maximale beschikbare vermogen. Sneller reagerende apparaten kunnen tijdelijke variaties dan beter opvangen.


Managed devices

Batterij

De batterij werkt als dynamische dagbuffer. Zonder actieve sturing zou hij op zonnige dagen snel naar 100% laden. Vaak laden en ontladen rond volledige capaciteit is ongunstig voor de levensduur. Daarom gebruikt het EMS een Target SOC curve: de energy router stopt met laden zodra de state of charge boven die curve komt.

De batterij is normaal gesproken bedoeld om aan het eind van de dag vol te zijn, of eerder als energieprijzen of andere omstandigheden dat aantrekkelijk maken. ’s Nachts wordt de batterij gebruikt om netverbruik te beperken.

Voordelen:

  • meer eigen verbruik van lokaal opgewekte energie
  • minder interactie met het net
  • betere laad- en ontlaadcycli voor langere levensduur

Battery SoC curve

Boilerverwarming

Standaard wordt de boiler verwarmd door de warmtepomp. Die start op basis van beschikbaar vermogen en energieprijzen binnen het verwarmingsvenster. Zodra de warmtepomp draait, loopt hij door tot de boiler 52 graden Celsius bereikt.

Op dagen met veel energieoverschot wordt de boiler alleen met het elektrische element verwarmd, tot maximaal 75-90 graden Celsius. Daarnaast verwarmt het systeem periodiek tot 62 graden Celsius om groei van Legionella te voorkomen.

Woningverwarming

De woningverwarming wordt aangestuurd op basis van kamertemperaturen en beschikbaar vermogen vanuit de energy router. Vloerverwarming is traag, dus vaak schakelen moet vermeden worden.

Bij voldoende zonne-energie kan het huis ook als thermische batterij werken: de vloeren worden dan iets verder opgewarmd dan direct nodig is voor comfort.

Nibe heating pump control panel

Teruglevering

Teruglevering is geen regelbaar apparaat in de klassieke zin, maar kan wel prioriteit krijgen wanneer de energieprijs boven een ingestelde drempel ligt.

Autolader

De autolader maakt flexibel laden van een EV mogelijk op basis van beschikbaar vermogen. Het vermogen kan van 0% tot 100% geregeld worden, met altijd wat ruimte voor andere apparaten en wisselende omstandigheden.

Tesla Charger control panel

Bij wisselende omstandigheden verlaagt de lader zijn vermogen om batterij- en netpieken te beperken. Sneller reagerende apparaten kunnen die tijdelijk beschikbare energie dan gebruiken.

Fast charging kan de autolader tijdelijk hogere prioriteit geven. Dat is handig wanneer de auto overdag vol moet zijn; de thuisbatterij kan daarna alsnog bijladen.

Zwembadfiltratie

De zwembadfiltratie schakelt op basis van beschikbaar vermogen, maar heeft een vrij hoge prioriteit vanwege waterkwaliteit en hygiene. Op dagen met weinig of geen zon wordt hij tijdgestuurd op basis van uurtarieven.

Zwembadverwarming

De zwembadverwarming houdt het water op temperatuur en gebruikt vermogen dat de energy router beschikbaar stelt. De verwarming wordt aangestuurd door een custom LoRa receiver in combinatie met drie Solid State Relays (SSR).

Zwembad in winter

Huishoudelijk verbruik

Huishoudelijk verbruik is geen fysiek apparaat, maar vertegenwoordigt verbruikers die niet door het EMS worden geregeld, zoals vaatwasser, wasmachine of droger.

Het wordt ook gebruikt voor een ruwe voorspelling van totaalverbruik, in combinatie met zonverwachting, energieprijzen en typisch gedrag. Zo kan het EMS regelbare loads beter balanceren met basisverbruik.

Bitcoin miner

De Bitcoin miner wordt gebruikt op dagen met overcapaciteit en lage energieprijzen. Hij kan starten zodra er overschot is en zijn vermogen continu regelen van 0-100%. Zo kan anders ongebruikte of goedkope zonne-energie omgezet worden in een digitale asset.


Fasebalancering

Het EMS bevat ook fasebalancering. De autolader kan niet per fase geregeld worden, maar mijn custom boiler en zwembadverwarming kunnen vermogen eerst trekken uit de minst belaste fase, daarna uit de middelste fase, enzovoort.

Fasebalancering heeft twee doelen:

  1. Regelgeving: in Tsjechie mag teruglevering met ongebalanceerde fases niet. Zonder balancering zou de inverter uit het net moeten compenseren om fases gelijk te trekken.
  2. Levensduur van de inverter: bij stroomuitval verminderen gebalanceerde fases de belasting van de inverter.


Interface en monitoring

De EMS-logica is geschreven in Python en publiceert alle systeemdata naar MQTT-topics. Home Assistant is de gebruikersinterface en ontvangt de data via MQTT.

Het dashboard toont:

  • real-time vermogenswaarden en grafieken per fase en per apparaat
  • batterij-SOC en trends
  • data per EMS-apparaat, zoals vermogen en temperaturen
  • debugdashboard met prioriteitenlijst, benodigde energie voor de dag en actuele vermogensverdeling

Debug dashboard-power routing


Resultaten en inzichten

Dit Home EMS presteert erg goed. Na meerdere iteraties is het huidige ontwerp ontstaan en wordt het systeem nog steeds verfijnd. Omdat elk onderdeel in eigen beheer ontworpen en afgesteld is, kan ik prestaties precies beoordelen en snel nieuwe regelstrategieen testen.

Deze aanpak combineert technische diepgang met praktische betrouwbaarheid: essentieel voor slimme energiesystemen die moeten reageren op wisselende omstandigheden in de echte wereld.