Gebruikershandleiding
Het volledige naslagwerk voor SEM: alle configuratieopties, laadmodi, SOC-zones, nachtladen, piekbeheer, tarieven, sensoren en meer.
Volledig naslagwerk voor Solar Energy Management (SEM).

Inhoudsopgave
- Modules — SEM toont wat je hebt
- Configuratieopties
- Laadmodi
- Laadlogica voor de auto — volledig beslisnaslagwerk ⭐
- SOC-zonestrategie
- Nachtladen
- Slimme functies voor de auto
- Ontlaadbeveiliging van de batterij
- Overschotverdeling
- Piekbeheer
- Tariefintegratie
- Zonnevoorspelling
- Observatiemodus
- Overzicht van sensoren
- Dagelijkse energiereset
Modules — SEM toont wat je hebt
SEM is een kern — zon, net, huisverbruik, energiebalans, kosten, voorspelling — plus modules voor de hardware die je hebt:
| Module | Verschijnt als | Wat het toevoegt |
|---|---|---|
| Thuisbatterij | er in SEM een batterijsensor of stuurentiteit is ingesteld, of het Energie-dashboard van HA een batterij heeft | het tabblad Batterij, ~60 batterij-entiteiten (SOC, vermogen, sessies, besparingen, zones) |
| Laadpaal | er in SEM een laadpaal is ingesteld, of het Energie-dashboard van HA een EV-verbruiker heeft | EV-entiteiten (vermogen, sessies, totaal); het tabblad EV vereist een ingestelde laadpaal |
| Warmtepomp | er een SG-Ready-relais, climate-entiteit, SG-Ready-service of vermogens-/energiesensor van de warmtepomp is ingesteld | status- en energie-entiteiten van de warmtepomp |
| Warm water | er een warmwaterentiteit is ingesteld | de temperatuur- en legionella-instellingen van het vat |
Een kleine installatie heeft dus bewust minder entiteiten — een SEM met alleen zon
heeft geen sensor.sem_battery_soc. Voeg de hardware toe en de entiteiten verschijnen:
via het scherm Configureren van SEM direct, en bij een batterij die je aan het
Energie-dashboard van HA toevoegt met één automatische herlaadbeurt.
Kan SEM het niet vaststellen — omdat het Energie-dashboard van HA bij het opstarten niet kon worden gelezen —
dan houdt het alles aan in plaats van te gokken. Wat SEM besloten heeft staat in
sensor.sem_diag_ed_config (attribuut install_modules) en in de
diagnosedownload.
Een eigen dashboard dat verwijst naar een entiteit van een module die je niet hebt, toont die als onbeschikbaar; het eigen dashboard van SEM wordt gelijktijdig bijgewerkt.
Configuratieopties
Alle instellingen zijn bereikbaar via Instellingen > Apparaten & diensten > Solar Energy Management > Configureren.
Instellingen laadpaal
| Instelling | Beschrijving |
|---|---|
ev_connected_sensor |
Binaire sensor — is de auto aangesloten? |
ev_charging_sensor |
Binaire sensor — wordt er geladen? |
ev_charging_power_sensor |
Vermogenssensor (W) — actueel laadvermogen |
ev_charger_service |
HA-service om de stroom in te stellen (bijv. keba.set_current) |
ev_charger_service_entity_id |
Entiteit-ID die aan de laadpaalservice wordt meegegeven |
ev_current_sensor |
Stroomsensor (A) — optioneel, voor de werkelijke stroomsterkte |
ev_session_energy_sensor |
Sessie-energie (kWh) — optioneel |
ev_total_energy_sensor |
Oplopende energie (kWh) — optioneel |
ev_phase_switch_entity |
(#804) Optioneel — de select/number/switch (ook helper-entiteiten) waarmee de laadpaal wisselt tussen 1- en 3-fasig laden (go-e psm, KEBA X-serie, openWB). Deze opgeven én Faseschakeling aanzetten (per laadpaal, standaard uit in 2.1) activeert de bediening Fasemodus; SEM schrijft er nooit naar tenzij je Fasemodus op een vaste 1/3 of Automatisch zet. |
ev_phase_switch_value_1p / _3p |
De waarden die voor elke stand worden geschreven, in het eigen vocabulaire van de entiteit. Verplicht voor een select; een number gebruikt standaard 1/3 en een switch uit/aan. |
Wat SEM heeft gedetecteerd (#814)
Op het dashboard toont tabblad Configuratie → Gedetecteerde hardware elke laadpaal die SEM automatisch heeft gevonden, het bewijs voor elke rol (welke entiteit en wat die is), de entiteiten die niet zijn toegewezen, en bijna-treffers — integraties waarvan SEM de entiteiten zag maar niet aan een rol kon koppelen. Een bijna-treffer betekent dat je hardware bijna ondersteund wordt: open een issue met de getoonde lijst. Apparaten op gedeelde transporten (MQTT, Modbus) verschijnen hier alleen als ze er echt uitzien als energiehardware — je Zigbee-brug is geen bijna-treffer. Hetzelfde rapport zit in de diagnosedownload (Instellingen → Apparaten & diensten → SEM → ⋮ → Diagnose downloaden). Verkeerde detecties worden ter plekke gecorrigeerd met de kiezers in de secties voor laadpalen en sensorbronnen — zonder opnieuw te installeren. De volledige ondersteuningsmatrix met een eerlijke status per merk staat in Ondersteunde hardware.
Sinds 2.1 leest SEM ook wat elke integratie over zichzelf zegt (#915). Voor elke energie-integratie die je draait, weet SEM welke entiteiten en services de eigen repository van die integratie aangeeft. Op het tabblad Configuratie verschijnt dat als voorstellen: “deze integratie noemt haar ontlaadlimiet X, en jij hebt een entiteit met die naam”. Een voorstel is een voorstel — je bevestigt het met de kiezer, en SEM koppelt niets wat het heeft geraden.
Drie dingen die de voorstellen kunnen zeggen (2.1, #956, #887):
- Een mogelijkheid die als service wordt aangeboden telt ook. KEBA heeft geen stroom-
entiteit; het biedt
keba.set_current. SEM stelt de service voor. Kan het de service direct aansturen, dan wordt een bijna-treffer een aanbod deze laadpaal toevoegen. - “Met de hand koppelen”, met de reden. Sommige services hebben iets nodig wat SEM
niet kan invullen —
set_max_currentvan go-eCharger wil een laadpaalnaam, en sommige services richten zich op een entiteit. SEM noemt de service en legt uit waarom het de toevoeging met één klik niet aanbiedt. Stelev_charger_serviceen de parameternaam dan zelf in de configuratie van de laadpaal in. - Een auto heet een auto. Een voertuig via een transport als MQTT (bijvoorbeeld een OnStar-brug) werd vroeger getoond als “onbekende hardware, graag melden”. Het staat nu onder voertuigen, met zijn laadniveau, actieradius en stekkerbronnen, klaar om te kiezen als voertuig van een laadpaal.
Vlak na een herstart is de lijst met services misschien nog niet leesbaar. SEM zegt dat dan bij het voorstel (“kon nog niet worden opgevraagd”) in plaats van niets te tonen.
Wat SEM maakt van wat je al draait (#915). Elke integratie die op je Home Assistant geïnstalleerd is, wordt vergeleken met wat de eigen broncode van die integratie zegt aan te maken. Draai je Sigenergy en declareert die een limiet voor het ontlaad- vermogen, dan wordt jouw entiteit met die naam getoond onder Gedetecteerde hardware — ook voor omvormers en batterijen, niet alleen voor laadpalen.
Namen en voorstellen. Een integratie waarvoor SEM geen regel heeft, verscheen
vroeger als een kale domeinnaam — eg4_web_monitor, en je moest zelf uitzoeken wat
dat was. SEM heeft nu een lijst van de energie-integraties die het Home
Assistant-ecosysteem publiceert, zodat dezelfde regel “EG4 Web Monitor · 412
installaties” luidt. Bij een bijna-treffer gaat het nog een stap verder: veel integraties geven
in hun eigen broncode aan hoe ze elke entiteit die ze aanmaken noemen, en waar die
aangegeven namen overeenkomen met jouw entiteiten, toont SEM ze als voorgestelde rollen, gemarkeerd
als onbevestigd — “dit getal is waarschijnlijk je ontlaadvermogenlimiet”.
Elk voorstel heeft een knop Gebruik dit die het schrijft op de plek waar SEM het leest — dezelfde plek waar de kiezers hieronder naartoe schrijven, zodat je het daar op elk moment kunt wijzigen of ongedaan maken. Er wordt niets geschreven totdat je op de knop drukt, en een voorstel zonder knop zegt altijd waarom: de entiteit meldt de verkeerde eenheid voor de rol (ampère waar SEM watt schrijft), meldt helemaal geen eenheid, bestaat in het register maar is nooit door Home Assistant aangemaakt, is een strategiekeuzelijst die niet de vier waarden bevat die SEM zou sturen, of is een keuzelijst voor het bedrijfsbeleid van een omvormer — die SEM leest en nooit schrijft; die stel jij zelf in. Een rol die bij een laadpaal hoort, verwijst je naar de laadpaalsectie, en een rol die SEM zelf uitzoekt wordt helemaal niet getoond. Geeft een merk meerdere kandidaten op voor één rol, dan worden de andere eronder getoond met hun eigen knoppen, zodat een installatie met twee batterijpakketten het juiste pakket kan kiezen.
Nadat je erop drukt, controleert SEM of het schrijven is gelukt. Een aangegeven entiteit- naam zegt niet of een register een waarde accepteert, die laat verlopen, eerst een inschakelschakelaar nodig heeft, of een globale instelling is die de fabrikant ongemoeid wil laten. Daarom worden de eerste schrijfacties naar een batterijbesturing in de volgende cyclus teruggelezen; als de entiteit de waarde drie keer achter elkaar niet overneemt, noemt een reparatiemelding de entiteit, wat er geschreven is en wat die leest — en verdwijnt vanzelf zodra een schrijfactie wél wordt overgenomen.
Ziet SEM de entiteiten van een integratie maar kan het er geen enkele aan een rol koppelen, en heeft het wel uitgezocht welke de laadstroom is, dan krijg je Deze laadpaal toevoegen in plaats van een schouderophalen — vooringevuld, en daarna aan te passen zoals elke andere laadpaal. Alleen als SEM echt niets heeft, vraagt het je om de hardware te melden, en dat verzoek is één klik die een issue opent waarin de entiteitenlijst al staat. De lijst is bewust geen claim van ondersteuning: er wordt nooit een tekenconventie in vastgelegd (in welke richting jouw netmeter telt is een feit over jouw systeem, en dat raden is de enige fout die dit project weigert te maken), en een merk komt pas op de lijst met ondersteunde hardware nadat iemand het op echte hardware heeft bevestigd.
Optimalisatie-instellingen
| Instelling | Standaard | Beschrijving |
|---|---|---|
update_interval |
10s | Frequentie van de regellus (10-300s) |
power_delta |
— | Minimale vermogensverandering om bij te sturen (50-3000W) |
current_delta |
— | Drempel voor minimale stroomverandering (1-10A) |
soc_delta |
— | Gevoeligheid voor SOC-veranderingen van de batterij (1-20%) |
daily_ev_target |
10 kWh | Min van het laaddoelbereik — de gegarandeerde hoeveelheid. Laden ’s nachts/vanaf het net vult minstens hiertot aan (0-100 kWh). |
daily_ev_target_max |
100 kWh | Max van het bereik — het zonneplafond. Overschot laadt tot dit niveau en stopt dan. Standaard vol (100 = vrij laden op zon); verlaag het om overschotladen te begrenzen. |
ev_target_type |
kwh |
Doeltype per laadpaal: kwh of soc. In te stellen met de eenheidskeuze in het blok Laaddoel op de EV-kaart. soc wordt alleen aangeboden als voor die laadpaal een vehicle_soc_entity is ingesteld. (Hernoemd van ev_target_mode; oude waarden worden automatisch omgezet.) |
ev_target_soc |
80% | Min-SOC van het bereik (50-100%) — gegarandeerd via nacht/net. Is er een vehicle_soc_entity ingesteld, dan berekent SEM de resterende behoefte uit de SOC in plaats van in kWh. |
ev_target_soc_max |
100% | Max-SOC van het bereik — zonneplafond. Standaard 100% (vol laden op zon); verlaag het (bijv. 80%) om zonneladen te begrenzen voor een langere levensduur van de accu. |
ev_battery_capacity_kwh |
40 kWh | Accucapaciteit van de auto voor de omrekening SOC→kWh (10-120 kWh). |
min_solar_power |
500W | Configuratieondergrens waaronder SEM niet eens probeert de laadpaal te starten. Houd dit ruim onder het hardwareminimum van je laadpaal (~4140 W bij driefasig, ~1380 W bij eenfasig). Bereik van de schuifregelaar 0–5000 W. |
max_grid_import |
— | Maximale netafname tijdens laden op zon (0-2000W) |
ev_charging_mode |
pv |
Laadmodus: pv (alleen zon), minpv (Min+Zon), off (handen af — SEM stuurt niets naar de laadpaal, #898) |
ev_ramp_rate_amps |
2 | Maximale stroomverandering per cyclus van 10s tijdens laden op zon |
Batterij-instellingen
| Instelling | Standaard | Beschrijving |
|---|---|---|
battery_priority_soc |
30% | Daaronder: alle zon naar de batterij, auto geblokkeerd |
battery_buffer_soc |
70% | Daarboven: de batterij mag ontladen voor de auto. Dit is de enige ondergrens voor ondersteuning — daaronder stopt de batterijondersteuning voor de auto |
battery_auto_start_soc |
90% | Daarboven: de auto starten, ook zonder overschot |
battery_assist_max_power |
4500W | Maximaal ontlaadvermogen van de batterij voor de auto (1000-10000W) |
battery_assist_min_surplus |
1200W | Zonnepoort (v1.7.3) — de batterij ondersteunt alleen boven dit echte zonne-overschot (0-5000W) |
battery_capacity_kwh |
— | Totale batterijcapaciteit (5-100 kWh) |
battery_discharge_protection_enabled |
true | Batterij beschermen tijdens het nachtladen |
battery_max_discharge_power |
5000W | Maximaal ontlaadvermogen van de batterij (500-10000W) |
battery_discharge_control_entity |
— | Number-entiteit om de ontlaadlimiet van de omvormer te sturen |
battery_force_discharge_control_entity |
— | (v1.7.3) Number-entiteit om het geforceerde ontlaadvermogen van de batterij te sturen (per batterij, alle merken) |
battery_setpoint_model |
signed |
(2.2) Hoe de watts met teken van SEM die entiteit bereiken: signed, inverted (Victron ESS), direction_select (Anker Solix) |
battery_power_direction_entity |
— | (2.2) De laad-/ontlaadkeuzelijst die een direction_select-setpoint nodig heeft; battery_direction_discharge_value / battery_direction_charge_value noemen de opties ervan (standaard discharge / charge) |
Instellingen voor meldingen
| Instelling | Standaard | Beschrijving |
|---|---|---|
enable_charger_notifications |
true | Status tonen op het display van de laadpaal (KEBA, Easee, enz.) |
enable_mobile_notifications |
false | Pushmeldingen versturen |
mobile_notification_service |
— | Meldingsservice: notify.mobile_app_* (HA Companion), rest_command.* (webhooks), of elke notify.* (Matrix, Slack, enz.) |
Let op: Android-meldingskanalen, -groepen en -actieknoppen worden alleen naar
notify.mobile_app_*-services gestuurd. Andere services krijgen alleen bericht + titel.
Meerdere laadpalen instellen
SEM ondersteunt meerdere laadpalen met overschotverdeling op basis van prioriteit:
- Ga naar Instellingen → Apparaten & diensten → Solar Energy Management → Configureren
- Kies in het menu Laadpalen voor Nog een laadpaal toevoegen
- Stel voor elke laadpaal de sensoren in. Gebruik voor de stroomsturing ÓF:
- Stroomstuurentiteit (number-entiteit) — voor Wallbox, go-eCharger en laadpalen met een
number.*-entiteit - Service voor stroom instellen — voor KEBA (
keba.set_current), Easee en laadpalen met een service
- Stroomstuurentiteit (number-entiteit) — voor Wallbox, go-eCharger en laadpalen met een
- Stel Overschotprioriteit in (1=hoogste) — de laadpaal met de hoogste prioriteit krijgt als eerste vermogen
Elke laadpaal krijgt zijn eigen sensorentiteiten:
sensor.sem_charger_{id}_power— realtime laadvermogensensor.sem_charger_{id}_session_energy— energie van de huidige sessiesensor.sem_charger_{id}_session_solar_share— aandeel zon in procentensensor.sem_charger_{id}_taper_trend— herkenning van afbouw door het BMSsensor.sem_charger_{id}_taper_ratio— afbouwverhouding
Om een bestaande laadpaal te bewerken, kies je hem in het laadpaalmenu. Om er een te verwijderen, kies je “Een laadpaal verwijderen” (de primaire laadpaal kan niet worden verwijderd).
Afhankelijkheden tussen apparaten
Apparaten kunnen vereisen dat andere apparaten actief zijn voordat ze aangaan. Stel dit in vanuit het tabblad Besturing op het dashboard:
- Zoek het apparaat in de prioriteitenlijst
- Kies met de keuzelijst Vereist een bovenliggend apparaat
- Het onderliggende apparaat springt automatisch in onder het bovenliggende
- Om los te koppelen: zet Vereist terug op Geen
Afhankelijkheden werken in zowel overschot- als piekmodus:
- Overschot: het onderliggende apparaat gaat alleen aan als het bovenliggende draait en er overschot is
- Piekafschakeling: het uitschakelen van het bovenliggende apparaat schakelt alle onderliggende mee uit
Zie Meerdere apparaten voor voorbeelden.
Instellingen voor lastbeheer
| Instelling | Standaard | Beschrijving |
|---|---|---|
load_management_enabled |
false | Piekbeheer inschakelen — uit bij een nieuwe installatie; SEM schakelt nooit een groep af die je het niet hebt gevraagd te bewaken |
peak_limit_unlimited |
false | Geen netlimiet — zet piekbeheer volledig uit |
target_peak_limit |
5 kW | Maximaal netvermogen waar SEM onder blijft (1–80 kW) |
warning_peak_level |
90% van het doel | Waarschuwingsdrempel — moet onder het doel liggen (1–80 kW) |
emergency_peak_level |
120% van het doel | Drempel voor noodafschakeling — moet boven het doel liggen (1–80 kW) |
target_peak_limit is het maximum van je netaansluiting, geen tariefvoorkeur —
haal het uit je leveringscontract of van je hoofdschakelaar. Ongeveer 3–5 kW bij een
Europees tarief op basis van piekvermogen; ongeveer 38 kW voor een Noord-Amerikaanse aansluiting van 200 A
(200 A × 240 V × 0,8). Elke installatie begint met de standaard van 5 kW — SEM vraagt
tijdens de installatie niet meer naar een pieklimiet — en waarschuwing/nood worden afgeleid
van wat je instelt, op het moment van uitlezen (90% / 120%, bij elke
meting opnieuw berekend), zodat een aansluiting van 38 kW nooit vastzit aan de niveaus van 4,5 kW / 6,0 kW die
bij een aansluiting van 5 kW horen. Alle drie accepteren 1–80 kW, en de opties weigeren een
trap in de verkeerde volgorde (waarschuwing ≥ doel, of nood ≤ doel).
Na de installatie kun je het op twee plekken wijzigen:
- Tabblad Besturing — de schuifregelaar op de kaart Lastbeheer is de snelle weg: sleep naar elke waarde tussen 1 en 80 kW, of helemaal naar boven voor Onbegrensd (de opt-out Geen netlimiet hieronder). Wijzigingen werken direct, zonder herstart.
- Tabblad Configuratie — dezelfde waarde als nauwkeurig getalveld in kW, voor als je een exact getal wilt in plaats van slepen. Waarschuwing en nood zijn geen aparte velden meer; ze staan hier achter een uitklapmenu Geavanceerd, omdat bijna niemand de afgeleide verhoudingen hoeft aan te passen.
Geen netlimiet
Sommige aansluitingen zijn zo groot dat geen enkele huishoudelijke last ze kan bedreigen — een industriële aansluiting, of een locatie waar de limiet hoger in het net wordt bewaakt. Zet Geen netlimiet aan en SEM behandelt de pieklimiet helemaal niet meer als plafond: de laadpaal bepaalt zijn stroom alleen op basis van overschot, lastbeheer schaalt nooit op, en de kW-velden verdwijnen van de kaart.
Dit is niet hetzelfde als Lastbeheer inschakelen uit laten staan:
| Schakelt lasten af om de limiet te bewaken | Dimensioneert auto/lasten binnen de limiet | |
|---|---|---|
| Lastbeheer aan | ja | ja |
| Lastbeheer uit | nee | ja — het plafond blijft staan |
| Geen netlimiet aan | nee | nee |
Dat onderscheid is bewust. Afschakelen uitzetten betekent “laat mijn lasten met rust”, niet “er is geen limiet” — als het beide betekende, zou een installatie die alleen wilde dat de vaatwasser met rust werd gelaten, de auto stilletjes het hele huis geven. Geen limiet opgeven is een eigen, expliciete schakelaar, zodat je er nooit per ongeluk bij uitkomt. Je kW-waarden blijven in de configuratie staan zolang hij aan staat en komen onaangeroerd terug als je hem uitzet.
Overige instellingen
| Instelling | Standaard | Beschrijving |
|---|---|---|
observer_mode |
true | Alleen-lezen-modus — SEM kijkt en beslist maar stuurt niets. Een nieuwe installatie kijkt eerst mee; zet dit uit zodra je SEM wilt laten ingrijpen. |
daily_home_consumption_estimate |
18 kWh | Terugvalwaarde voor de eerste 7 dagen van de maand |
Slim nachtladen is geen schakelaar meer. Sinds v1.6.3 volgt het uit de
laadmodus: de modi Solar + cheapest hours en Min + Solar voeren de volledige
EV-intelligentiecontrole uit (SOC van de auto, zonnevoorspelling, temperatuur, geleerde rij-
patronen) voordat ze een nachtlading vastleggen.
Meerdere warmtepompen en klimaatunits (#685)
De sectie Warmtepomp stelt de primaire unit in, en sinds 2.1 eindigen de opties met een warmtepompmenu waarin je extra units kunt toevoegen, bewerken en verwijderen (#685). Elke unit — primair of extra — ondersteunt dezelfde drie stuurroutes, in elke combinatie:
- SG-Ready-relais — de standaardtabel met twee relais (NORMAL / BOOST / FORCE_ON), met omkering voor NC-bedrading per unit.
- Climate-entiteit — setpointverhoging bij overschot voor pompen die alleen een thermostaat aanbieden (Nibe, Mitsubishi, Daikin …).
- Service-aanroep (#801) — voor pompen waarvan de besturing een
commando is, zoals een Buderus achter EMS-ESP: stel
domain.servicein (bijv.ems_esp.send_command) plus een JSON-payload. De plaatshoudersstate(1–4),relay1enrelay2(de booleans uit de SG-Ready-waarheidstabel, tussen accolades in de JSON) worden per schrijfactie ingevuld. Met een optionele terugleesentiteit kan SEM na elke schrijfactie controleren of het commando is aangekomen; een afwijking wordt gelogd, nooit stilletjes vertrouwd.
Elke extra unit heeft zijn eigen prioriteit, drempels, sensoren en naam, en doet als eigen apparaat mee in de overschotverdeling.
Units met thermostaatsturing kunnen ook worden toegevoegd als climate- apparaten (een Ecobee, een Nest, elke warmtepomp of airco met thermostaatsturing) in de algemene apparatenlijst. Elk climate-apparaat krijgt, onafhankelijk van elkaar:
- zijn eigen prioriteitsplek in de ene apparatenlijst,
- zijn eigen comfortband (doel / offset / limiet) met het geleerde drift- model — inclusief voorkoelen/voorverwarmen via het energieplan,
- zijn eigen vermogenssensor. Units met gesplitste meting (compressor op de ene groep, luchtbehandeling op een andere) tellen hun sensoren eerst op met een template-sensor en gebruiken die als vermogensentiteit van het apparaat,
- zijn eigen thermostaatpictogram in de apparatenlijst. (Tot #788 toonde elk via een service geregistreerd apparaat de algemene stekker, waardoor een tweede unit die wel geregistreerd was en draaide eruitzag alsof hij nooit was toegevoegd.)
Warmtepompunits en climate-apparaten kunnen naast elkaar bestaan: een willekeurig aantal via het menu ingestelde units plus een willekeurig aantal via climate beheerde.
Hoeveel heeft SG-Ready echt verschoven? (#769)
De SG-Ready-unit heeft een eigen energierij, op dezelfde voet als de auto:
| Sensor | Waar het antwoord op geeft |
|---|---|
sensor.sem_heat_pump_energy_today |
kWh die de pomp vandaag heeft verbruikt |
sensor.sem_heat_pump_energy_month / _year / _total |
hetzelfde over langere perioden |
sensor.sem_heat_pump_energy_shifted_today |
van de kWh van vandaag: hoeveel SEM veroorzaakte |
“Verschoven” telt alleen de energie die werd geboekt terwijl SEM om meer vroeg — SG-Ready in BOOST of FORCE_ON. Energie die de pomp op zijn eigen thermostaat nam (NORMAL) wordt bewust niet meegeteld, want die energie zou toch al zijn gebruikt. Het verschil tussen de twee getallen is het eerlijke antwoord op de vraag “doet SG-Ready eigenlijk iets voor mij?”
Waar het getal vandaan komt. Heb je de warmtepomp een energieteller-
entiteit gegeven, dan is de rij het eigen verschil van die teller — een meting. Heeft hij alleen een
vermogenssensor, dan integreert SEM die. Heeft hij geen van beide, dan is het getal rated_power × runtime en wordt het gemarkeerd als schatting: het wordt getoond, maar nooit teruggevoerd
in het leerproces van SEM (zie SIMULATION.md en #755). Een sensor
die niet kan worden gelezen, wordt vastgelegd als blind — SEM legt een zwijgende
sensor niet vast als een pomp die nul watt verbruikt.
Als een teller herstart. Een energieteller die terugvalt naar nul — een firmware-update, een opnieuw gekoppeld apparaat, een vervangen meter — heeft zijn energie niet ongedaan gemaakt, en als hij weer oploopt naar zijn oude stand heeft hij ook niet net zoveel verbruikt. SEM boekt geen van beide. Het onthoudt de stand waarvandaan de teller viel en boekt, als hij terugkomt, alleen wat hij daarboven heeft gewonnen: het werkelijke verbruik tijdens de onderbreking. Een sprong die geen enkel tijdvenster fysiek zou kunnen leveren (geen enkele last in huis trekt 100 kW) wordt direct geweigerd, vastgelegd als blind in plaats van nul, en de meter wordt weer vertrouwd vanaf waar hij nu staat. Het venster wordt gemeten vanaf het laatste moment dat de waarde van de teller veranderde, zodat een meter die eens per uur publiceert, een sensor die een half uur onbeschikbaar was, en een meting die na een herstart van Home Assistant weer wordt opgepikt, allemaal nog steeds hun echte energie boeken.
De dag wisselt bij zonsopkomst, niet om middernacht — dezelfde grens die de looptijd van de pomp gebruikt — zodat “vandaag” overal in SEM hetzelfde betekent.
Warm water en warmtepomp (verbeteringen in v1.7.3)
SEM werkt samen met je bestaande verwarmingssysteem — het verhoogt alleen bij zonne-overschot, het vervangt NIET het normale verwarmingsschema van je boiler of warmtepomp. Je bestaande systeem blijft de basisverwarming gewoon regelen. SEM voegt er een laag voor zonneboost aan toe: als er zonne-overschot is, verwarmt SEM het water verder om energie op te slaan die anders zou worden teruggeleverd.
Verbeteringen in v1.7.3:
- Inschakelen op overschot werkt nu echt (bètafout opgelost)
- Verhoogt op het werkelijke overschot van het huis, niet alleen op de ruwe zonneproductie (juiste berekening)
- Trekt zich terug tijdens pieken (respecteert het lastbeheer)
- Relaistabel voor SG-Ready gecorrigeerd voor warmtepompen
Stel deze instellingen in onder Instellingen > Apparaten & diensten > Solar Energy Management > Configureren.
Schuifregelaars op het dashboard
Het dashboard biedt precies twee schuifregelaars voor de warmwaterregeling:
Doel zonneboost (40-80°C)
De temperatuur waartoe SEM verwarmt tijdens periodes met zonne-overschot. Is er overschot, dan verwarmt SEM het water tot dit doel. Is dat bereikt, dan stopt SEM met verwarmen en geeft het overschot vrij voor andere apparaten (auto, batterij, enz.).
Zet je het doel voor de zonneboost op 60°C of hoger, dan wordt op zonnige dagen vanzelf aan de eis voor legionellapreventie (60°C) voldaan — op die dagen is geen aparte geforceerde verwarmingscyclus nodig.
Legionelladoel (60-80°C)
De minimumtemperatuur voor de legionellapreventiecyclus. Bereik: 60-80°C. Het wettelijke minimum is 60°C volgens DVGW W 551 (Duitsland), SIA 385/1 (Zwitserland) en ÖNORM B 5019 (Oostenrijk). Wordt een legionellacyclus gestart, dan verwarmt SEM tot dit doel, ongeacht of er zon is — zo nodig met netstroom.
Legionellapreventie
SEM houdt bij wanneer het water voor het laatst de legionelladoeltemperatuur heeft bereikt. Verstrijkt het ingestelde interval zonder dat die temperatuur is gehaald, dan forceert SEM een verwarmingscyclus. Het desinfectie-interval is in te stellen in de opties van de integratie (standaard 72 uur, bereik 24-168 uur) maar staat niet op het dashboard — het hoeft zelden te worden gewijzigd.
Belangrijk: de legionellacyclus kan niet worden uitgeschakeld
De legionellapreventiecyclus is een veiligheidseis uit de bouwvoorschriften. Hij kan niet worden uitgezet. Je kunt het interval en de doeltemperatuur (minimaal 60°C) aanpassen in de opties van de integratie, maar de cyclus zelf is altijd actief als de warmwaterregeling aan staat. Dit beschermt tegen de groei van gevaarlijke legionellabacteriën in opgeslagen warm water.
Laadmodi
SEM ondersteunt vijf laadmodi voor de auto (v1.7.3), per laadpaal te kiezen via select.sem_charger_<id>_charge_mode op het tabblad Besturing of de EV-kaart:
Het volledige plaatje nodig? Laadlogica voor de auto is het officiële naslagwerk over alle 6 bedieningselementen (modus + Nachtladen via net + Goedkoopste uren + Slim nachtladen + Klaar om + Min/Max), hun prioriteitsvolgorde en elk scenario waarin ze samenwerken, inclusief uitgewerkte voorbeelden.
Alleen zon (solar_only)
Laadt overdag uitsluitend op zonne-overschot. De auto wacht tot er overschot is en pauzeert als het daalt. Is er een ondergrens “Minstens” ingesteld bij het laaddoel, dan wordt een tekort ten opzichte van die ondergrens ’s nachts vanaf het net aangevuld vóór het tijdstip Klaar om (#634) — met de ondergrens op 0 raakt deze modus het net nooit aan, dag of nacht. Het beste als je veel zon hebt en flexibel bent in wanneer de auto laadt.
| Tijd | Zon | Overschot | Toestand auto |
|---|---|---|---|
| 08:00 | Zwak (1 kW) | Onder het minimum | Gepauzeerd |
| 12:00 | Sterk (8 kW) | 3 kW beschikbaar | Laadt op ~1,7 A |
| 17:00 | Zwak (500 W) | Onvoldoende | Gepauzeerd |
| 22:00 | Nacht | 0 W | Laadt niet (nacht uitgeschakeld) |
Het dagdoel is NIET gegarandeerd. Is de zon morgen zwak, dan haalt de auto het Min-doel misschien niet. Om ’s nachts vanaf het net aan te vullen, stel je óf een ondergrens “Minstens” in voor deze laadpaal (waardoor het tekort ook in Alleen zon een nachtelijke garantie wordt — #634/#679), óf zet je de laadpaal op Min + zon.
Min + zon (min_plus_solar) — standaard
Laadt vanaf het net plus eventueel zonne-overschot daarbovenop. De auto begint altijd, ook zonder zon. ’s Nachts wordt het laadvermogen afgestemd op je beschikbare ruimte onder de piek (pieklimiet min verwacht huisverbruik en eventueel draaiende lasten), zodat de sessie vroeg klaar is in plaats van op het minimum voort te kruipen — installaties zonder pieklimiet houden het gedrag met minimale stroom. Het beste als: je de auto op een bepaald tijdstip klaar nodig hebt en netafname accepteert.
| Tijd | Net + zon | Toestand auto |
|---|---|---|
| 08:00 | 0 W zon, 4,1 kW net | Laadt op 6 A (alleen net) |
| 12:00 | 3 kW zonne-overschot | Laadt op 8 A (4,1 kW net + 3 kW zon) |
| 17:00 | 0,5 kW zon | Laadt op ~5 A (4 kW net + 0,5 kW zon) |
| 22:00 (nacht) | Alleen net | Gaat door — deze modus laadt bewust ’s nachts |
Het dagdoel is gegarandeerd. De Min-ondergrens zorgt dat de auto altijd naar het minimumdoel toe laadt, zo nodig aangevuld vanaf het net.
Zon + goedkoopste uren (solar_plus_cheap)
Overdag: laadt op zonne-overschot (zoals Alleen zon) — en vult op een goedkoop uur of een uur met negatieve prijs de Min-ondergrens aan vanaf het net, net zoals het nachtvenster dat doet (#856). Zonne-overschot wint altijd als dat meer biedt; de modus zakt nooit van sterke zon terug naar het nettempo. Dure uren pauzeren netafname volledig.
’s Nachts: is de tariefmodus “Dynamisch”, dan wordt het laden uitgesteld naar het goedkoopste aaneengesloten prijsvenster in plaats van meteen te laden. De Min-ondergrens is altijd gegarandeerd: zou wachten op goedkope uren de deadline missen of zijn er geen prijsgegevens, dan laadt SEM toch.
De Min-ondergrens is wat een goedkoop uur vult. Staat Minstens op 0 kWh, dan valt er niets aan te vullen, en laadt een goedkoop uur — dag of nacht — niets vanaf het net; de strategieregel zegt dat ook. Zet Minstens op de energie die je tegen de laagste prijs zeker wilt stellen.
Het beste als: je een dynamisch tarief hebt (Tibber, Octopus, Amber) en op kosten wilt optimaliseren. Deze modus kiezen is de toestemming — het is de enige modus die het tarief raadpleegt, en hij is verborgen in de keuzelijst als er geen dynamisch tarief is ingesteld.
Altijd max (always_max)
Laadt meteen op de maximale stroom van de laadpaal, dag en nacht, ongeacht zon of tarief. Het hele net is beschikbaar voor de laadpaal.
Het beste voor: dringend laden (bijna vertrek, lange rit of testen).
Uit (off)
Laden is uitgeschakeld. SEM blijft monitoren maar stuurt geen commando’s naar de laadpaal. Gebruik dit als je handmatig wilt bedienen of een laadpaal offline is.
Uit laat de laadpaal los — het houdt hem niet gestopt. SEM stuurt één stop voor een sessie die het zelf heeft gestart en daarna helemaal niets meer, dus een laadpaal die uit zichzelf hervat, wordt bewust met rust gelaten. Dat is een keuze: een schakelaar openhouden tegen een apparaat dat het daar niet mee eens is, is een stopoorlog, en SEM begint er geen.
Laden pauzeren (per laadpaal, #980)
Eén keuzelijst Laden pauzeren voor (30 minuten tot 12 uur) voor de hele installatie, en één knop Laden pauzeren per laadpaal.
Druk op de knop van een laadpaal en de laadmodus gaat voor de gekozen tijd naar Uit, en daarna terug naar precies wat hij was.
Zolang een pauze loopt, toont de EV-kaart een regel onder de knop: de resterende minuten, de modus waarnaar hij teruggaat, en het tijdstip. De knop toont dan Opnieuw pauzeren. Kies een willekeurige modus en de pauze eindigt meteen.
Meer is het niet — de modus die je anders toch zou kiezen, plus het deel dat je makkelijk vergeet. De duur is gedeeld omdat “hoe lang” een keuze is die je op het moment zelf maakt, geen eigenschap van een laadpaal; de knoppen zijn apart, zodat één laadpaal pauzeren en de andere laten doorladen gewoon werkt.
| Je wilt | Doe dit |
|---|---|
| deze laadpaal twee uur pauzeren | kies 2 hours en druk op de knop ervan |
| er toch vier uur van maken | kies 4 hours en druk nogmaals |
| nu verder gaan | zet de laadmodus terug op wat je wilt |
Er is geen knop Hervatten, want de keuzelijst Laadmodus is dat al. Druk je op Pauzeren bij een laadpaal die je zelf op Uit hebt gezet, dan gebeurt er niets: er valt niets te pauzeren en er is geen modus om naar terug te gaan.
Bij een KEBA zijn Uit en Pauzeren een poging, geen garantie. SEM stuurt één stop en laat
het apparaat daarna met rust. Ongeveer 10 minuten later schakelt het apparaat zichzelf weer
in op zijn terugvalstroom (8 A bij een gangbare opstelling): dat is zijn failsafe,
die SEM zelf bij elke start instelt zodat een uitgevallen regeling de auto toch
laadt, en die de KEBA SEM niet op 0 A laat zetten. SEM vecht er niet tegen —
elke 10 minuten de stop opnieuw sturen zou de schakelaar alleen laten flikkeren. Gebeurt
dit, dan geeft SEM een reparatiemelding: “Je laadpaal draait de stop van SEM op een
timer terug”. Om een stop te laten houden: zet het eigen inschakelen door SEM uit met de service
solar_energy_management.set_option en keba_arm_failsafe: false, en
zet daarna de failsafe-stroom van het apparaat (Curr FS) op 0 op de laadpaal zelf.
Twee dingen om te weten:
- Het slaat op wanneer de pauze eindigt, niet hoe lang die duurt. Een herstart van Home Assistant midden in een pauze verlengt die niet en geeft ook de al verstreken minuten niet terug, en een pauze die afliep terwijl HA uit stond, hervat in de volgende cyclus.
- De modus met de hand wijzigen beëindigt hem, direct. SEM zet je keuze niet terug als de timer afgelopen zou zijn — en vergeet de pauze meteen, dus als je een uur later zelf Uit kiest, blijft het Uit.
SOC-zonestrategie

SEM gebruikt een model met vier zones om te bepalen hoe de batterij en de auto de zonne-energie delen. De laadtoestand (SOC) van de batterij bepaalt welke zone actief is:
SOC 100% ─────────────────────────────
│ Zone 4: VOLLE ONDERSTEUNING│ Batterij helpt de auto altijd
SOC 90% ─── battery_auto_start_soc ──
│ Zone 3: ONTLAADONDERSTEUN.│ Batterij helpt de auto geleidelijk
SOC 70% ─── battery_buffer_soc ──────
│ Zone 2: ALLEEN OVERSCHOT │ Auto krijgt alleen zonne-overschot
SOC 30% ─── battery_priority_soc ────
│ Zone 1: BATTERIJPRIORITEIT│ Alle zon → batterij, auto wacht
SOC 0% ─────────────────────────────
Zone 1 — Batterijprioriteit (SOC < 30%)
Alle zonneproductie gaat naar de batterij. De auto wordt volledig geblokkeerd — de batterij moet eerst een bruikbaar niveau bereiken.
Zone 2 — Alleen overschot (SOC 30-70%)
De auto krijgt alleen puur zonne-overschot — vermogen dat anders zou worden teruggeleverd. De batterij blijft normaal laden en wordt nooit ontladen om de auto te helpen. Ligt het overschot onder het minimum van de laadpaal (~4140W bij driefasig), dan wacht de auto.
Zone 3 — Ontlaadondersteuning (SOC 70-90%)
De batterij begint te ontladen om de zon aan te vullen voor de auto. Het ondersteuningsvermogen loopt lineair op: 50% van het maximum bij een SOC van 70%, tot 100% bij een SOC van 90%. Samen met het zonne-overschot tilt dit de auto vaak boven zijn minimale laaddrempel.
Zone 4 — Volle ondersteuning (SOC >= 90%)
Volledige batterijondersteuning (standaard 4500W). De auto begint te laden, ook zonder zonne-overschot — de batterij alleen kan de auto al boven zijn minimumdrempel tillen.
Als de SOC van de batterij onbekend is
Vlak na een herstart van Home Assistant kan het een minuut of twee duren voordat de SOC-sensor van de batterij zijn eerste waarde meldt (Huawei: tot ~3 minuten). Tot dat moment heeft SEM geen SOC — en een onbekende batterij wordt behandeld als noch bron, noch blokkade (2.1, #875): de auto laadt op puur zonne-overschot zoals in zone 2, krijgt geen batterijondersteuning, en de batterij wordt beschermd tegen ontladen in de auto alsof ze onder de buffer zit. De beslisredenen op de EV-kaart en in observatiemodus tonen de SOC in die periode als unknown (Zone 2 (SOC=unknown)), nooit als 0 %. Vóór 2.1 werd die periode gestuurd als zone 1 — “batterijprioriteit”, auto geblokkeerd — op basis van een waarde van 0 % die nooit gemeten was.
Hetzelfde geldt voor een installatie zonder enige SOC-sensor voor de batterij: SEM komt dan nooit in zone 1, zodat een installatie zonder batterij in Min + zon overdag de auto op overschot laadt in plaats van te wachten op een batterij die niet bestaat.
Een sensor die nadat hij heeft gemeld wegvalt, is iets anders: SEM blijft sturen op de laatst gelezen waarde, zodat een korte onderbreking er nooit uitziet als een lege batterij.
Ondergrens voor ondersteuning
Batterijondersteuning voor de auto wordt begrensd door de buffer-SOC (standaard 70%): daarboven mag de batterij helpen de auto te laden, daaronder stopt de ondersteuning. De aparte instelling battery_assist_floor_soc is verwijderd en opgegaan in de buffer.
Sinds #878 is de buffer de minimale ondergrens voor ondersteuning in plaats van de enige: als uitgeven op basis van de voorspelling aan staat en een ondergrens voor vannacht heeft berekend, stopt het ontladen bij de hoogste van de twee — zie Hoe diep de auto de batterij mag leegtrekken. Met uitgeven op basis van de voorspelling uit beslist alleen de buffer, precies zoals voorheen.
Modi per batterij (systemen met meerdere batterijen, v1.7.3)
Heb je meerdere batterijen (bijv. Huawei + Growatt, of gesplitste Huawei-units), dan voegt SEM v1.7.3 besturing per batterij toe:
| Modus | Sturing door SEM | Wanneer te gebruiken |
|---|---|---|
| Automatisch | Normale SOC-zonestrategie (zone 1–4) | Standaard; SEM beheert de batterij zoals gewoonlijk |
| Eigen verbruik | Alleen ontladen naar het huis, nooit terugleveren aan het net | ’s Nachts gebruiken; de batterij blijft gereserveerd voor het huis |
| Geforceerd laden | Laden vanaf het net (als het tarief goedkoop is) of op zon | Bewust de batterij aanvullen vóór een groot verbruik |
| Geforceerd ontladen | Ontladen op maximaal vermogen | Noodstroom of batterij-arbitrage |
| Uit | SEM negeert deze batterij | Handmatige bediening of testen |
Stuurentiteiten per batterij:
select.sem_battery_<id>_mode— stel de modus in (auto / self_consumption / force_charge / force_discharge / off)number.sem_battery_<id>_reserve_soc— de SOC waaronder deze batterij niet ontlaadt
Het ontlaadvermogen is niet per batterij: number.sem_battery_max_discharge_power (standaard 5000 W) begrenst het voor alle batterijen samen.
Huawei zonder configuratie: heb je een Huawei-omvormer, dan herkent SEM automatisch de entiteit voor de ontlaadlimiet en gebruikt die voor geforceerd ontladen, zonder extra configuratie.
Andere merken: stel in de opties battery_force_discharge_control_entity in op een number-entiteit van je omvormer (bijv. het maximale ontlaadvermogen van Growatt, de geforceerde ontlaadstroom van SolaX).
Welke kant het getal op telt (battery_setpoint_model, tabblad Configuratie → Batterij). Het eigen teken van SEM is + = ontladen, − = laden. Sommige setpoints tellen andersom, en sommige hebben helemaal geen teken:
| Model | Ontladen | Laden | Voorbeeld |
|---|---|---|---|
signed (standaard) |
+W | −W | Sessy, de meeste omvormers |
inverted |
−W | +W | Victron ESS-netsetpoint (+ = afname) |
direction_select |
keuzelijst ← discharge, dan W | keuzelijst ← charge, dan W | Anker Solix (een laad-/ontlaadkeuzelijst en een getal in watt zonder teken) |
Geef bij direction_select ook de keuzelijst op (battery_power_direction_entity) en, als je keuzelijst andere woorden gebruikt dan discharge / charge, de twee waarden. SEM zet eerst de keuzelijst en schrijft de watts pas als de keuzelijst de richting teruggeeft.
Uitgeven op basis van de voorspelling (v2.1)
In één zin: laat de auto ’s avonds de thuisbatterij leegtrekken, maar alleen tot het niveau dat het huis nog nodig heeft om zelf de nacht door te komen — en alleen als de zon van morgen het naar verwachting weer aanvult.
Dat is het hele idee. De rest van deze sectie gaat over hoe SEM “het niveau dat het huis nog nodig heeft” bepaalt, en wat het weigert te doen als het dat niet kan.
Het probleem dat het oplost. De nachtelijke ondergrens van je batterij was vroeger een getal dat je één keer intypte, en dat was in juni hetzelfde als in december. Te hoog en de auto laadt om zes uur vanaf het net terwijl de batterij vol staat. Te laag en het huis koopt tegen het avondtarief terug wat de auto nam. Uitgeven op basis van de voorspelling maakt van de ondergrens in plaats daarvan een antwoord: SEM bepaalt hoeveel van de batterij er vannacht echt gemist kan worden, op basis van wat je huis ’s nachts werkelijk verbruikt en hoeveel de zon van morgen naar verwachting terugbrengt.
Waar je het ziet. Het tabblad Batterij toont de berekende ondergrens voor vannacht naast je ingestelde ondergrens, het besteedbare getal in kWh, en in welke van de drie toestanden het zich bevindt (hieronder). De strategieregel op de EV-kaart noemt de ondersteuning als die plaatsvindt: “Zone 4: budget=6000W → 10A (solar surplus + capped battery assist)”.
Het budget wordt door twee afnemers gebruikt, en die geven hun toestemming op verschillende manieren:
- De auto. Een laadpaal op Zon + accu heeft al aangegeven dat de batterij hem mag voeden. Onder de zonnepoort besteedt hij het budget van vannacht zelf tot aan de berekende ondergrens — zonder extra schakelaar. (Gewijzigd op 03.09: de hoofd- schakelaar was hier eerst ook nodig, wat in tegenspraak was met de modus.)
- Het net. Voorspeld overschot verkopen vereist de hoofdschakelaar onder Configuratie → Batterij-intelligentie → Uitgeven op basis van de voorspelling, plus de toestemming mag aan het net verkopen ernaast. Dat staat standaard uit, en zolang het uit staat wordt elk getal in die sectie nog steeds gemeten en getoond — er wordt niets verkocht.
Hoe het budget wordt berekend
spendable = stored now − (what the night needs) − (your configured floor)
capped at what tomorrow is expected to refill
Elke term wordt gemeten in plaats van aangenomen:
| Term | Waar het vandaan komt |
|---|---|
| Nu opgeslagen | gemeten batterijgrootte × SOC, met de opgegeven capaciteit als terugval |
| Wat de nacht nodig heeft | de omhullende met hoog percentiel van je eigen vastgelegde nachten, geen gemiddelde |
| Aanvulling morgen | de voorspelling voor morgen na je huisverbruik en eventueel toegezegd laden van de auto, geschaald naar hoe nauwkeurig die voorspellingshorizon tot nu toe echt was |
| Jouw ondergrens | battery_reserve_soc — de berekende ondergrens komt nooit lager |
Drie toestanden, op het tabblad Batterij
- Leren — SEM heeft nog niet genoeg nachten gezien (het heeft er vijf nodig). Het geeft
niets uit en toont hoeveel het er al heeft. Elke nieuwe installatie begint hier.
Tijdens het leren toont
sensor.sem_battery_spendable_kwhunknown — niet 0 kWh — en de dynamische ondergrens ook (#925). Een nul zou daar een meting zijn, en die heeft SEM nog niet gedaan; de kaart zegt in plaats daarvan Leren, n van 5 nachten. - Vasthouden — er is genoeg bewijs en het antwoord is echt dat er niets over is: een lange winternacht tegenover een zwakke voorspelling.
- Uitgeven — er is vannacht een budget, met de ondergrens waarop het uitkomt.
De balk met SOC-zones tekent de berekende ondergrens voor vannacht in oranje naast je ingestelde ondergrens, zodat je hem van dag tot dag ziet bewegen.
De entiteiten erachter — allemaal op het tabblad Batterij, en te gebruiken op je eigen dashboards:
| Entiteit | Wat het bevat |
|---|---|
sensor.sem_battery_spendable_kwh |
het budget voor vannacht (unknown tijdens het leren) |
sensor.sem_battery_dynamic_floor_pct |
de berekende ondergrens voor vannacht |
sensor.sem_battery_measured_capacity_kwh |
de batterijgrootte die SEM uit echte cycli heeft gemeten |
sensor.sem_battery_capacity_drift_pct |
hoe ver die meting van de opgegeven capaciteit af ligt |
sensor.sem_forecast_trust_d1 / _d2 |
hoe nauwkeurig de voorspelling voor morgen en overmorgen tot nu toe bleek, 0–100 % |
Waaraan het budget mag worden besteed
Twee schakelaars, en die zijn bewust gescheiden in plaats van één instelling:
- Batterij mag aan het net verkopen — het budget terugleveren als de prijs hoog is.
- Batterij mag de auto laden — het budget ’s avonds aan de auto besteden.
Eén modus zou “mag verkopen, mag de auto niet aanraken” niet kunnen uitdrukken. Beide staan standaard op je huidige gedrag, zodat het aanzetten van uitgeven op basis van de voorspelling niet stilletjes een toestemming geeft die je nooit hebt gegeven.
Hoe diep de auto de batterij mag leegtrekken (#878)
“De auto moet de batterij tot het verwachte niveau leegtrekken, zodat het huisverbruik nog door de batterij wordt gedekt.” — het verzoek waarop dit het antwoord is.
De toestemming hierboven beantwoordt of de auto iets van de batterij mag hebben. Daarop volgt een tweede vraag: hoeveel?
Zonder antwoord daarop trekt de auto de batterij leeg tot je ingestelde buffer-SOC en stopt daar — hetzelfde niveau in juni en in december, ongeacht wat er vannacht echt nodig is. Op een lange winternacht moet het huis dan tegen het avondtarief terugkopen wat de auto om zes uur nam.
Daarom stopt het ontladen nu bij de ondergrens die het hoogst is:
stop at = max( your buffer SOC , tonight's computed floor )
De berekende ondergrens voor vannacht is hetzelfde getal dat het tabblad Batterij toont als de ondergrens voor de avond: hoeveel er bij zonsopkomst nog in de batterij moet zitten zodat het huis de nacht doorkomt op basis van wat het zelf heeft gemeten te verbruiken. Hij is nooit lager dan je buffer — een berekende ondergrens onder je buffer verandert niets, want je buffer is op zichzelf al een harde ondergrens.
Uitgewerkt voorbeeld. Een buffer van 70 %, een ondersteuningsplafond van 4500 W, en een nacht waarvan de gemeten behoefte een ondergrens van 79 % oplevert:
| SOC batterij | Voorheen | Nu | Waarom |
|---|---|---|---|
| 65 % | 0 W | 0 W | onder de buffer, hoe dan ook — batterij niet beschikbaar |
| 72 % | 2475 W | 0 W | boven je buffer, maar onder wat vannacht nodig is |
| 75 % | 2812 W | 0 W | idem — de batterij houdt de eigen voorraad voor de nacht vast |
| 79 % | 3262 W | 0 W | precies op de ondergrens: stoppen, niet eronder zakken |
| 82 % | 3600 W | 2864 W | boven de ondergrens, dus ondersteunt — maar bouwt eerder af |
| 95 % | 4500 W | 4500 W | ruim genoeg over, volledige ondersteuning zoals voorheen |
Lees de rijen 72–79 % als de kern van de wijziging: SEM bood de auto 2,5–3,3 kW aan uit een batterij die die energie een paar uur later voor het huis nodig had.
De afbouw loopt nu ook vanaf de berekende ondergrens in plaats van de buffer — bij 82 % is het aanbod 2864 W in plaats van 3600 W, omdat 82 % veel dichter bij 79 % ligt dan bij 70 %, en de batterij dus ook minder over heeft.
Wanneer dit helemaal niets verandert
- Je batterij zit op of boven de autostart-SOC (standaard 90 %) — er is ruim genoeg over en de ondersteuning draait op vol vermogen zoals voorheen.
- De berekende ondergrens voor vannacht valt onder je buffer — een zachte nacht, dus je buffer is nog steeds de bepalende grens.
- De voorspelling heeft nog geen vertrouwen verdiend, of er is geen voorspelling. Dan wordt er geen ondergrens berekend en beslist alleen de buffer, precies zoals altijd.
Dat laatste geval is bewust: geen berekende ondergrens betekent terugvallen op je buffer, nooit “helemaal geen ondergrens”. De hoofdschakelaar verandert dit niet: de ondergrens wordt berekend en getoond zodra er bewijs is, en een laadpaal op Zon + accu respecteert hem, of verkopen nu aan staat of niet.
Hoe het eruitziet op een echte avond
De installatie van een ontwikkelaar, 03.09, batterij van 15 kWh, buffer 75 %, berekende ondergrens 78,6 %, ondersteuningsplafond 5000 W, auto aan een KEBA in Zon + accu:
| Tijd | Wat er gebeurde |
|---|---|
| 17:51 | Zon wordt zwakker, batterij 90 %. Ondersteuning gaat open: Zone 4: budget=6000W → 10A, ~4 kW uit de batterij in de auto. |
| 18:15 | Overschot zakt naar 858 W, onder de zonnepoort van 1000 W — ondersteuning stopt, batterij 82 %. |
| 18:46 | Onder de poort neemt het voorspellingsbudget het over: ondersteuning hervat op 8 A. Dit is het deel dat de poort alleen nooit zou toestaan. |
| 18:53 | Stop op 81 %, ondergrens 78,6 %. De batterij is er nooit onder gekomen. |
Lees de laatste rij goed: hij stopte 2,4 % boven de ondergrens, niet erop. Het aanbod bouwt af naarmate de batterij de ondergrens nadert (de helft van het plafond op de ondergrens, volledig op de autostart-SOC), en deze auto laadt niet onder 8 A ≈ 3,2 kW. Zakt het afgebouwde aanbod onder wat de auto accepteert, dan eindigt de sessie daar. Bij een auto met een lager minimum zou het ontladen dichter bij de ondergrens komen. Hoe dan ook is de ondergrens een ondergrens: hij wordt nooit overschreden.
Wat het niet doet
- Het trekt de batterij niet leeg onder de hoogste van je buffer en de berekende ondergrens voor vannacht — niet voor de auto, niet voor verkoop aan het net.
- Het geeft helemaal niets uit totdat het vijf van je eigen nachten heeft gemeten.
- Het laadt de auto ’s nachts niet uit de batterij. Zodra het nachtvenster opent, is een aanvulling tot “Minstens” bewust een aanvulling vanaf het net; de taak van de batterij na donker is het huis.
- Het handelt niet op een voorspelling die het nog niet vertrouwt. Vertrouwen wordt per horizon verdiend en getoond op het tabblad Batterij.
Beginnen vanuit de historie in plaats van een week wachten
Draait SEM al maanden op je systeem, dan heeft het al vastgelegd hoe
goed je voorspelling is — het heeft dat alleen nooit opgeschreven in de vorm die het budget
leest. De actie “Nauwkeurigheid van de voorspelling leren uit de historie”
(solar_energy_management.backfill_forecast_ledger) leest je eigen recorder-
statistieken en vult het register in één keer, zodat uitgeven op basis van de voorspelling kan
beginnen vanuit wat je installatie werkelijk heeft gedaan. Dagen die SEM live heeft vastgelegd, worden nooit
overschreven door de reconstructie.
De batterijkant heeft dezelfde snelkoppeling. SEM wil vijf goede nachten bewijs
voordat het zegt hoeveel van de batterij veilig kan worden uitgegeven, en vastleggen
levert er één per dag op. De actie “Nachtelijk batterijgebruik leren uit de
historie” (solar_energy_management.backfill_battery_nights) reconstrueert
die nachten uit de vastgelegde ontlading van je batterij, zodat het antwoord meteen
komt in plaats van een week later.
Je hoeft er niet naar te zoeken. Zolang SEM nog aan het leren is, biedt de batterij- kaart het direct aan onder de voortgang waarop het je anders zou laten wachten:

Dezelfde actie is beschikbaar als button.sem_backfill_battery_nights en als de
service hierboven, en draait nooit vanzelf — opnieuw opbouwen is altijd iets
waar jij om vraagt. Mist je systeem een sensor die de reconstructie nodig heeft, dan geeft SEM een
reparatiemelding met de naam van die sensor in plaats van stilletjes te mislukken.
Twee dingen om te weten over gereconstrueerde nachten. Ze worden gelezen uit een oplopende energieteller, die doortelt of SEM nu meekeek of niet — dus anders dan bij live vastleggen kunnen ze niet bedorven worden door een sensor die uitvalt. Maar die teller meldt alles wat de batterij heeft afgegeven, en kan niet scheiden wat je huis gebruikte van wat naar de auto of het net ging. Gereconstrueerde nachten worden daarom behandeld als een bovengrens voor het huishoudelijk verbruik, wat neigt naar meer achterhouden in plaats van minder. Nachten die SEM live heeft gemeten, krijgen altijd de voorkeur, omdat een live nacht die stromen wel kan onderscheiden.
Nachten die niet kloppen worden niet gebruikt
Een batterij kan niet meer energie afgeven dan ze heeft ontladen. SEM controleert dat bij elke nacht die het vastlegt, en een nacht die niet klopt wordt bewaard en getoond maar niet gebruikt om te leren. Dat is belangrijker dan het klinkt: het getal voor de nachtelijke behoefte wordt opgebouwd uit die nachten, en één onmogelijk getal blaast op wat SEM denkt dat je huis nodig heeft — wat zich uit als een budget van nul en een dashboard dat rustig meldt dat er niets over is. Zie je nachten die zo gemarkeerd zijn, dan telt iets vóór SEM een stroom dubbel; de sensorbronnen op het tabblad Configuratie zijn de plek om te beginnen.
De instelling toetsen aan je eigen historie
De hoeveelheid die SEM voor de nacht achterhoudt, is een hoog percentiel van wat je huis werkelijk heeft afgenomen — bewust hoog, omdat vóór zonsopkomst tekortkomen erger is dan een beetje terugleveropbrengst laten liggen. Het precieze percentiel dat is meegeleverd, is gekozen door 211 echte nachten opnieuw af te spelen en te meten wat elke kandidaat zou hebben gekost:
| Percentiel | Nachten waarin het zou uitgeven | Uitgegeven energie | Nachten waarin het onder de ondergrens schoot | Grootste overschrijding |
|---|---|---|---|---|
| p80 | 97 | 63,6 kWh | 3 | 400 Wh |
| p85 (meegeleverd) | 90 | 53,5 kWh | 2 | 120 Wh |
| p90 | 68 | 30,0 kWh | 1 | 50 Wh |
| p95 | 5 | 0,3 kWh | 0 | — |
p95 lijkt het veiligst en is het slechtste antwoord in de lijst: de functie werkt dan in feite niet meer terwijl hij nog aan lijkt te staan.
Je kunt dezelfde meting op je eigen systeem uitvoeren:
python3 scripts/backtest_budget.py --host root@YOUR_HA --key ~/.ssh/your.key \
--capacity 15 --floor 20 --need-pctile 0.85
Het speelt je vastgelegde nachten opnieuw af, vraagt het budget wat het in elke nacht zou hebben uitgegeven, en meldt hoe vaak de batterij daardoor onder haar ondergrens zou zijn gekomen.
Waarom het weigert uit te geven zonder bewijs
Een voorspelling die te hoog uitvalt, is precies het geval waarin de batterij uitgeven pijn doet: je verkoopt vanavond, morgen valt tegen, en je koopt het tegen de avond- prijs terug. Daarom houdt SEM per horizon een register bij van wat het voorspelde tegenover wat de dag opleverde, en vertrouwt het een horizon pas na zeven afgesloten dagen. Tot dan is het budget nul en zegt de kaart dat ook.
Het beoordeelt dat register op de slechte dagen, niet op de gemiddelde dag. Een voorspelling kan over een seizoen volkomen zuiver zijn en toch op een willekeurige dag de helft naast zitten, in beide richtingen — en het gemiddelde verbergt precies de dagen die je geld kosten. Gemeten op het ontwikkelsysteem: 139 echte dagen, gemiddelde verhouding 1,05 (zuiver), maar een tiende van de dagen leverde minder dan de helft van wat was beloofd. Plannen op het gemiddelde zou de batterij op 42% van die dagen te ver hebben ingezet.
Voorbeeld: zonnige dag, batterij op 30%, auto aangesloten
- SOC 30-69% — De batterij laadt op zon. De auto wacht (het overschot ligt meestal onder het minimum van 4140W)
- SOC bereikt 70% — Batterijondersteuning gaat aan (~2250W). Samen met het overschot kan de auto beginnen met laden
- SOC bereikt 90% — Volledige batterijondersteuning van 4500W. De auto laadt bijna op het maximum
- SOC zakt onder 70% — Batterijondersteuning stopt (bufferondergrens). De auto valt terug op alleen zonne-overschot
Afsteltips
- Voorzichtige instelling — Zet
battery_priority_socop 70% om te zorgen dat de batterij bijna vol is voordat de auto iets krijgt. Goed als je ’s avonds veel zelf verbruikt. - Agressief laden van de auto — Verlaag
battery_priority_socnaar 20% enbattery_buffer_socnaar 50% om eerder met laden te beginnen. - Kleine batterij — Verlaag
battery_assist_max_powerom te voorkomen dat een kleine batterij te snel leegloopt.
Zonnepoort (poort voor batterijondersteuning)
De zonnepoort is een nieuwe (v1.7.3) vermogensdrempel die je thuisbatterij beschermt tegen leeglopen in de auto als de zon niet echt schijnt. Hij werkt in elke laadmodus — alleen zon, min+zon of altijd max.
Wat het doet
De batterij ondersteunt de auto alleen als er minstens zoveel echt zonne-overschot beschikbaar is. Onder de poort krijgt de auto netstroom of alleen zon, nooit batterijstroom. Dit voorkomt dat de batterij ’s nachts wegloopt, ook in de modus always_max.
| Zonne-overschot | Batterijondersteuning | Auto krijgt stroom uit | Gebruikelijk scenario |
|---|---|---|---|
| ≥ 1200 W (poort) | Ingeschakeld | Zon + batterij | Zonnige ochtend, batterij kan helpen |
| < 1200 W (onder de poort) | Uitgeschakeld — tenzij de laadpaal op Zon + accu staat en het voorspellingsbudget voor vannacht positief is: dan ondersteunt de batterij tot de berekende ondergrens | Net + zon, of batterij tot de ondergrens | Bewolkte dag, avond |
| 0 W (nacht) | Uitgeschakeld | Alleen net (als de modus dat toestaat) | Nachtvenster, geen zon |
Standaard en configuratie
- Standaardpoort: 1200 W (veilig voor de meeste systemen — beschermt de batterij in de schemering)
- Instelling:
number.sem_battery_assist_min_surplusop het tabblad Besturing, of in de opties onder Laden & zon als “Zonnepoort” - Poort uitgeschakeld: zet op 0 W om batterijondersteuning overal toe te staan, ook ’s nachts (het gedrag van vóór v1.7.3)
Voorbeeld
Dinsdag, 17:00, bewolkt, batterij op 85% SOC:
- Zon: 600 W (onder de poort)
- Batterijondersteuning: UIT (poort = 1200 W > 600 W)
- Laden auto: gepauzeerd (de modus min_plus_solar gebruikt een netminimum van 4,1 kW, meer dan 600 W zon + 0 W batterij leveren)
Dinsdag, 11:00, onbewolkt, batterij op 85% SOC:
- Zon: 3500 W (boven de poort)
- Batterijondersteuning: AAN (poort gehaald)
- Laden auto: actief op ~4 kW (2 kW zon + 2 kW batterijondersteuning)
Verschil tussen de zonnepoort en “Minimaal zonnevermogen”
Verwar de zonnepoort niet met Minimaal zonnevermogen (de configuratieondergrens waaronder SEM niet probeert de laadpaal te starten). Ze staan los van elkaar:
| Instelling | Doel | Effect |
|---|---|---|
| Minimaal zonnevermogen (standaard 500 W) | Ruisondergrens — voorkomt starten op kortstondige pieken | Is het werkelijke overschot < 500 W, dan start de laadpaal nooit |
| Zonnepoort (standaard 1200 W, v1.7.3) | Drempel voor batterijbescherming | Is het werkelijke overschot < poort, dan mag de batterij niet ondersteunen (maar de laadpaal kan nog wel op net + zon draaien) |
Nachtladen
Zie ook: Laadlogica voor de auto — volledige beslismatrix voor nachtladen, de optionele deadline Klaar om UU:MM en de optionele modus Goedkoopste uren (tarief), met uitgewerkte voorbeelden voor de randgevallen (bijv. een goedkoop venster dat korter is dan de tijd tot Min).
Nachtladen wordt bepaald door de laadmodus, niet door een schakelaar. De
switch.sem_night_chargingen de…_night_charging-schakelaars per laadpaal zijn in v1.6.3 verwijderd (#277) — één keuzelijst bevat nu de hele intentie. Stel hem per laadpaal in metselect.sem_charger_<id>_charge_mode, op het tabblad EV. Hetzelfde geldt voorswitch.sem_smart_night_charging: de intelligentie die die aanzette, volgt nu uit de modus (zie Slim nachtladen hieronder).
Zie je
Solar + cheapest hoursniet in de lijst? Die modus is verborgen tenzij er een dynamisch tarief is ingesteld (tabblad Configuratie → Tarief → Dynamisch, met een prijsentiteit). Zonder live prijzen heeft de modus geen goedkope uren om te vinden en zou hij zich ongemerkt gedragen alsSolar only, dus SEM biedt geen optie aan die het niet kan waarmaken. Stel het tarief in en hij verschijnt. De andere vier modi zijn altijd beschikbaar.
| Laadmodus | Laadt ’s nachts vanaf het net? |
|---|---|
Min + Solar (standaard) |
Ja — dit is het standaardgedrag |
Solar + cheapest hours |
Ja, uitgesteld naar het goedkoopste prijsvenster |
Always (max) |
Ja, direct en op volle stroom |
Solar only |
Nee — tenzij je een ondergrens “Minstens” instelt op deze laadpaal (#679) |
Off |
Nee — de laadpaal wordt helemaal niet beheerd |
Een nieuwe installatie staat standaard op Min + zon, dus een nieuwe laadpaal zal ’s nachts
aanvullen. Wil je het puur-zon-gedrag — nooit ongevraagd van het net
trekken — kies dan Alleen zon en laat de ondergrens “Minstens” op 0. De ondergrens is
wat de intentie draagt: een globale standaard is geen opt-in, dus alleen een ondergrens die
op de laadpaal zelf is ingesteld, brengt een laadpaal op Solar only in de nachtrij.
Het nachtladen begint als de nachtmodus actief wordt (na zonsondergang + 10 minuten, of om 20:30, wat het eerst komt).
Hoe het werkt
- SEM start de laadpaal op 10A
- Elke cyclus van 10s past SEM de stroom aan (+-2A per stap, ondergrens 8A) op basis van het piekbeheer
- SEM houdt de resterende behoefte bij — uit de SOC-sensor van het voertuig (indien ingesteld) of uit de dagelijkse energieteller van de auto (kWh als terugval)
- Het laden stopt als het doel is bereikt (SOC van het voertuig ≥
ev_target_soc, of dagenergie ≥daily_ev_target)
Dagdoel bijhouden
Het dagdoel van de auto gebruikt een reset bij zonsopkomst — de teller wordt bij zonsopkomst gereset, niet om middernacht. Daardoor blijft een nachtsessie van 22:00 tot 06:00 in één dagvak.
Slim nachtladen
In de modi Solar + cheapest hours en Min + Solar voert SEM het
volledige EV-intelligentiesysteem uit voordat het een nachtlading vastlegt. (Dit was
de schakelaar switch.sem_smart_night_charging tot v1.6.3; het volgt nu uit
de modus.)
- Overslaan op basis van SOC — dekt de geschatte SOC van de auto het voorspelde verbruik van morgen (met 30% veiligheidsmarge), dan slaat SEM de nachtlading volledig over
- Tegoed voor de zonnevoorspelling — 30% van de voorspelling voor morgen wordt meegeteld, wat de benodigde SOC verder verlaagt
- Temperatuurcorrectie — verbruiksvoorspellingen worden aangepast aan seizoensverschillen (winter = hoger verbruik)
- Dagelijkse SOC-afname — houdt rekening met ~0,5% sluipverbruik per nacht
- Vangnet — maximaal 3 keer achter elkaar overslaan om te weinig laden te voorkomen
- Terugval — zijn er onvoldoende EV-intelligentiegegevens, dan valt SEM terug op een beperking op basis van de voorspelling (werkdag: voorzichtig, weekend: agressief)
Type laaddoel (v1.7.3 — kWh tegenover SOC % van het voertuig)
Elke laadpaal kan laden tot een dagdoel in kWh of tot een laadtoestand (SOC) van het voertuig in %. Die keuze maak je in de sectie Laaddoel van de kaart van de laadpaal, met een eenheidskeuze (kWh of %) naast de doelwaarde.
Doel in kWh (standaard)
Laadt tot een dagelijkse hoeveelheid energie:
- Min (gegarandeerd): bijv. 10 kWh via aanvulling ’s nachts/vanaf het net
- Max (zonneplafond): bijv. 100 kWh uit overschot (vrij laden)
Het beste als: je je gebruikelijke dagverbruik kent (50 km = ~8 kWh, 100 km = ~16 kWh) en voorspelbaar gedrag wilt.
Doel in SOC % van het voertuig (als er een voertuigsensor is ingesteld)
Laadt tot een percentage laadtoestand, als de integratie van je auto een vehicle_soc_entity levert:
Kies in de stap Laadpalenbeheer van de opties je laadpaal en stel
vehicle_soc_entityin (bijv.sensor.tesla_battery_soc) enev_battery_capacity_kwh(bijv. 75 kWh voor een Tesla Model 3).De sectie Laaddoel op de EV-kaart biedt nu een eenheidskeuze %.
Zet Min % = 50% en Max % = 80% voor een lange levensduur van de accu: het net vult aan tot 50%, de zon stopt bij 80%.
Voordelen:
- Onafhankelijk van verbruikspatronen — SOC is absoluut
- Maakt strategieën voor een lange accuduur mogelijk (bijv. “op zon alleen tot 80% laden”)
- Waarden per laadpaal — elke auto kan zijn eigen SOC-bereik hebben
SEM berekent de resterende behoefte uit het SOC-verschil: (target_soc - actual_soc) × battery_capacity = resterende kWh.
Langzaam pollende SOC-sensoren (plafond op basis van geleverde energie)
Sommige auto-integraties (OnStar-achtig, via de cloud gepolld) werken vehicle_soc_entity maar eens per 20–30
minuten bij. Puur op die laatste waarde sturen laat een sessie het doel overschrijden met ongeveer
sensorvertraging × laadvermogen — een doel van 60% op een accu van 85 kWh bij 11,5 kW kan op 67% uitkomen voordat
de sensor het zelfs maar meldt.
SEM beschermt hiertegen met een plafond op basis van de geleverde energie dat naast de sensor staat, niet in plaats ervan:
effective_soc = max(sensor, anchor + delivered_since_anchor_kwh × 0.92 ÷ capacity_kwh)
- Het ankerpunt is gewoon de laatste echte sensorwaarde plus een lopende telling van de geleverde energie sindsdien (0,92 aangenomen laadrendement) — een vooruitprojectie vanuit echte meetgegevens, geen gok.
- Een nieuwe sensorwaarde wint altijd (
max(...)) — de sensor wordt nooit vervangen, alleen van onderen begrensd. Schiet de projectie door en komt een latere echte waarde onder het doel uit, dan hervat SEM het laden automatisch voor het verschil, afgestemd op het eigen update-interval van de sensor zodat het niet gaat flipperen. - Het ankerpunt geldt alleen binnen de sessie — het wordt nooit bewaard over herstarts heen, en wordt gereset zodra de auto wordt losgekoppeld (per laadpaal, zodat de sessie van een tweede laadpaal nooit in de doel- beslissing van de eerste kan doorlekken).
- De 0,92 hier is vast en niet instelbaar, bewust — ook niet via Laadrendement hieronder, dat elke andere schatting wel volgt. Het bepaalt een plafond, dus een lager getal zou SEM langer laten laden, en de twee fouten zijn niet even erg. Iets te vroeg stoppen kost niets: de volgende sensorwaarde komt onder het doel uit en het laden hervat. Te laat stoppen heeft de energie al in de accu gestopt, en dat is precies de overschrijding die deze hele sectie wil voorkomen.
- Je krijgt een mobiele melding bij zowel de vroege stop als een eventuele hervatting, en een kleine inforegel onder de SOC-meter op de EV-kaart (bijv. “Auto: 55% (28 min geleden) · nu ca. ~59%”) — de meter zelf toont altijd de ruwe sensorwaarde.
Laadrendement
Opties → Laadpaal → Laadrendement (%), standaard 92 %.
Niet alle wisselstroomenergie die je meter telt, komt in de accu terecht: de boordlader van de auto, de kabels en (bij koud weer) de accuverwarming nemen een deel. SEM rekent gemeten kWh om naar kWh in de accu met dit getal, overal waar het de laadtoestand rapporteert — de SOC-schatting op de EV- kaart, de virtuele SOC hieronder en de opstart bij de eerste sessie.
Laat het op 92 % staan, tenzij de schatting zichtbaar afwijkt van wat je auto zegt:
| Symptoom | Probeer |
|---|---|
| De schatting van SEM loopt voor op wat de auto meldt | Verlagen (bijv. 85 %) |
| De schatting van SEM loopt achter op de auto | Verhogen (bijv. 95 %) |
Echte installaties komen ruwweg uit in de band van 85–95 %. Eenfasig laden op 3,7 kW en koude starts zitten aan de onderkant; een driefasige laadpaal van 11 kW met een warme accu zit aan de bovenkant. Het venster accepteert alleen 50–100 % — alles daarbuiten is een typfout, geen installatie.
Dit staat los van de terugvaloptie Virtuele SOC hieronder, die alleen actief wordt als
je helemaal geen vehicle_soc_entity hebt. Hier is een echte sensor ingesteld — dit vult alleen het
gat tussen zijn metingen met gemeten energie, en wijkt voor de sensor zodra er een nieuwe waarde binnenkomt.
Geen SOC-sensor van het voertuig?
Heb je geen vehicle_soc_entity, dan valt SEM terug op de virtuele SOC uit de EV-intelligentie zodra het een betrouwbaar ankerpunt heeft (een gedetecteerde volle lading of afbouw door het BMS). De schatting is een zacht plafond:
- Afbouwherkenning is de harde stop voor “accu vol” (SEM stopt direct met laden)
- Min-ondergrens voor nacht/net vult nog steeds aan (je komt bijv. nooit zonder te staan)
- De fout in de schatting blijft begrensd (het is geen stille no-op)
Totdat de schatting een ankerpunt heeft (eerste week), gebruikt de %-modus in plaats daarvan het dagdoel in kWh.
Actieradius. SEM publiceert ook sensor.sem_ev_remaining_range. Biedt de integratie van je auto
een echte sensor voor de actieradius, stel vehicle_range_entity daar dan op in; anders schat SEM
de actieradius uit SOC × accucapaciteit ÷ verbruik (kWh/100 km, standaard 18).
Accucapaciteit en verbruik zijn per auto — pas ze direct aan op de EV-kaart
(tik op de 🔋- / afstandslabels onder elke laadpaal) of in de opties; de berekeningen van actieradius en
SOC gebruiken de waarden van die laadpaal. vehicle_range_entity stel je in de opties in.
(Laadrendement, hierboven, is één instelling voor het hele systeem, niet per auto.)
Laaddoelbereik (Min/Max). De EV-kaart toont een schuifregelaar met twee handvatten: het Min-handvat is de gegarandeerde hoeveelheid (nacht/net vult daartoe aan), het Max– handvat is het zonneplafond (overschot laadt daartoe en stopt dan). Dit vervangt de oude schakelaar “overschot begrenzen” — stel het Max-handvat in in plaats van een schakelaar om te zetten.
| Min / Max | Nachtladen | Overschotladen |
|---|---|---|
| Min = doel, Max = vol (standaard) | Stopt bij Min | Laadt vrij tot vol (huidig gedrag) |
| Min 50% / Max 80% | Stopt bij 50% | Gaat door tot 80% en stopt dan |
| Min 8 kWh / Max 20 kWh | Stopt bij 8 kWh | Gaat door tot 20 kWh en stopt dan |
| Min = Max | Stopt bij het doel | Stopt bij hetzelfde doel |
Het klassieke geval voor levensduur: Min 50% / Max 80% — houd altijd minstens 50% (gegarandeerd via het net, zodat je kunt rijden), maar laat alleen de zon het tot 80% laden, nooit verder dan 50% vanaf het net. Max onder vol zetten begrenst het overschot; Max op vol laten = vrij laden op zon.
Alle instellingen zijn per laadpaal — verschillende auto’s aan verschillende laadpalen kunnen verschillende
bereiken hebben. (Upgradeopmerking: de vroegere schakelaar ev_limit_surplus is opgegaan in Max — had je
die aan, dan staat je Max automatisch op je oude doel.)
Deadline “klaar om UU:MM”. (#246) Elke laadpaal heeft een tijdstip Klaar om
(time.sem_charger_<id>_target_time, standaard 07:00, ook aan te passen op de EV-kaart).
Zet je het vroeger dan het einde van het nachtvenster, dan verhoogt SEM de laadstroom ’s nachts
zodat de Min-ondergrens op dat tijdstip is bereikt:
required_amps = remaining_to_Min ÷ hours_left ÷ (phases × 230 V), begrensd tot het min/max van de
laadpaal. Een krappe deadline gaat boven de rustige opbouw en de pieklimiet (je hebt gevraagd om de
auto klaar te hebben, dus hij mag boven de piek van het net trekken). Kan het doel fysiek niet op
tijd worden gehaald (remaining ÷ max_power > hours_left), dan stuurt SEM een melding “doel niet haalbaar om UU:MM”
in plaats van het stilletjes te missen.
Een deadline op of na het einde van het nachtvenster (de standaard) verandert niets — het nachtladen blijft rustig en binnen het piekbeheer, precies zoals voorheen. Alleen een expliciet vroegere deadline forceert stroom.
Als standaard instellen. (#246) Elke laadpaal heeft een knop Doel als standaard instellen
(button.sem_charger_<id>_set_default_target) die de huidige Min/Max en het
tijdstip Klaar om van die laadpaal kopieert naar de globale standaardwaarden, zodat nieuw toegevoegde laadpalen ze overnemen.
Laden geoptimaliseerd op tarief. (#247) Zet de laadmodus van deze laadpaal op
Solar + cheapest hours (select.sem_charger_<id>_charge_mode, op de EV-kaart) om het
laden prijsbewust te maken. Het is de enige modus die het tarief raadpleegt, en hij vereist een
dynamisch tarief — zonder dat is de optie verborgen in de keuzelijst.
(Tot v1.6.3 was dit de aparte schakelaar …_tariff_optimized.)
- ’s Nachts stelt SEM het laden uit naar het goedkoopste aaneengesloten prijsvenster in plaats van
direct te starten. De toestand toont
Tariff mode - Waiting for cheap price, en de EV-kaart toont het volgende goedkope venster. De Min-ondergrens is altijd gegarandeerd: zou wachten op goedkope uren de deadline missen (of zijn er geen prijsgegevens), dan laadt SEM toch, ongeacht de prijs. - Overdag wordt de aanvulling vanaf het net in Min+Zon gepauzeerd tijdens dure uren en automatisch hervat als de prijs daalt of de zon toereikend wordt. Puur laden op zonne-overschot wordt nooit gepauzeerd (dat is gratis), en de overschrijving van de modus “Maximum” blijft ongemoeid.
Slimme functies voor de auto
SEM leert het laadgedrag en de rijpatronen van je auto om slimme beslissingen te nemen over wanneer en hoeveel er wordt geladen. Dit draait automatisch in de laadmodi Min + Solar en Solar + cheapest hours — er is geen aparte schakelaar om het aan te zetten.
Afbouwherkenning
SEM volgt het laadvermogen in een voortschrijdende buffer van 20 minuten. Als het BMS van de auto de stroom bij een bijna volle accu verlaagt (overgang CC→CV), herkent SEM de kenmerkende vermogenstrap (bijv. 6290W → 5580W → 4970W → … → 0W). Dit geeft het meest nauwkeurige SOC-ankerpunt: 100% bevestigd zonder API van de auto.
SEM onderscheidt vermogensverlagingen door het BMS van zijn eigen setpointwijzigingen door na elk SEM-commando een stabilisatievenster bij te houden.
Virtuele SOC
SEM houdt het geschatte accuniveau van de auto bij door te volgen:
- de energie die tijdens laadsessies is toegevoegd
- het voorspelde dagverbruik (elke dag afgetrokken)
- het dagelijkse sluipverbruik (~0,5% SOC-afname per nacht)
De virtuele SOC kalibreert zich aan nauwkeurigere bronnen als die beschikbaar zijn:
- Afbouwherkenning — zet op 100% als een volle lading is gedetecteerd
- SOC-entiteit van het voertuig — kalibreert aan de echte SOC van de auto als
vehicle_soc_entityis ingesteld - Opstart per sessie — de eerste laadsessie levert de eerste schatting
Een start die de auto niet aanneemt, is geen volle lading. Biedt SEM stroom aan
en neemt de auto drie minuten lang niets af, dan legt SEM een geweigerde start vast —
een vertrektimer, een slapende laadpaal en een volle accu zien er vanaf de
laadpaal hetzelfde uit — en laat de schatting zoals die was. De attributen van de sensor zeggen
waar het getal op rust: anchor (sensor, taper of session),
anchor_at, en start_declined_since / start_declined_last. Het nacht-
plan behandelt een weigerende auto die nacht als geen last, en SEM biedt opnieuw aan
na 20, dan 40, dan 80 minuten.
Dagverbruik leren
Een EWMA-voorspeller (alpha=0,3) leert per weekdag de patronen per uur, los van elkaar:
- “Maandag 8 kWh, woensdag 0 kWh (thuiswerken), zaterdag 15 kWh”
- Past zich geleidelijk aan over 7 dagen
- Opstart bij koude start na minimaal 3 dagen gegevens
Temperatuurcorrectie
Verbruiksvoorspellingen worden aangepast aan de buitentemperatuur, op basis van vlootgegevens van Recurrent Auto (30.000+ voertuigen):
- Winter (-5°C): +72% verbruik
- Zomer (30°C): +9% verbruik
- Vereist een sensor voor de buitentemperatuur (automatisch herkend via de weerentiteit)
Accugezondheid volgen
SEM vergelijkt de energie die wordt opgenomen in volle cycli met die in gedeeltelijke laadsessies over maanden heen om de capaciteitsafname van de autoaccu te schatten, zichtbaar in de intelligentiesectie van de EV-kaart. (De sensor sensor.sem_battery_health_score volgt je thuisbatterij, niet de auto.)
Samenvoegen van meerdere apparaten
SEM leest automatisch alle bronnen uit het Energie-dashboard van HA, niet alleen de eerste:
- Meerdere omvormers — vermogen en energie worden opgeteld
- Meerdere batterij-units — vermogen/energie opgeteld, SOC gemiddeld over de units
- Meerdere tariefregels voor het net — apart verzameld
Opstellingen met één apparaat merken hier niets van — dit is volledig achterwaarts compatibel. De configuratiestappen tonen aantallen apparaten (bijv. “Zon (2 omvormers)”) als er meerdere bronnen worden gevonden.
Sturing van meerdere laadpalen
SEM ondersteunt actieve sturing van meerdere laadpalen (v1.4.0+). Voeg laadpalen toe via Instellingen > Apparaten > Solar Energy Management > Configureren > Laadpalen > Nog een laadpaal toevoegen.
Hoe de overschotverdeling over laadpalen werkt:
- Laadpalen worden gesorteerd op prioriteit (per laadpaal in te stellen, 1=hoogste)
- De laadpaal met de hoogste prioriteit krijgt als eerste overschot, tot zijn maximale vermogen
- De rest gaat door naar de volgende laadpaal als die de minimumdrempel haalt (4140W bij driefasig, 1380W bij eenfasig)
- 60 seconden hysterese tussen herverdelingen om pendelen te voorkomen
- Wordt een laadpaal losgekoppeld, dan gaat zijn budget direct naar de volgende
Nachtladen verdeelt het nachtdoel gelijk over de aangesloten laadpalen.
Functies per laadpaal: elke laadpaal krijgt zijn eigen sessiebewaking, herkenning van vastlopen, in-/uitschakelvertragingen en afbouwherkenning. De primaire laadpaal (de eerst ingestelde) stuurt de SOC-bewaking van de EV-intelligentie en de beslissingen om laden over te slaan.
Ontlaadbeveiliging van de batterij
Tijdens het nachtladen mag de thuisbatterij alleen het huisverbruik voeden — niet de auto. SEM dwingt dit af door de ontlaadlimiet van de omvormer gelijk te zetten aan het realtime huisverbruik.
- Elke 10 seconden bijgewerkt om het werkelijke huisverbruik te volgen
- 100W hysterese om frequente wijzigingen te voorkomen
- Volledig ontlaadvermogen wordt hersteld als het nachtladen stopt of de auto wordt losgekoppeld
- Vereist een Huawei Solar-omvormer (of compatibel) met een
number-entiteit voor de ontlaadlimiet
Automatische herkenning en correctie van het netteken (v1.7.3)
SEM herkent automatisch of je netmeter positief = afname of positief = teruglevering meldt. Verschillende omvormermerken gebruiken tegengestelde conventies:
| Merk | Conventie | Voorbeeldwaarde |
|---|---|---|
| Huawei, SMA, Victron, Sungrow | + = teruglevering, − = afname | 2000 W terugleveren wordt getoond als +2000 |
| Fronius, Enphase, Powerwall, Kostal | + = afname, − = teruglevering | 2000 W afnemen wordt getoond als +2000 |
SEM herkent dit automatisch bij het opstarten door je netsensor te vergelijken met de afname-/terugleveringstellers van het Energie-dashboard. Bij een installatie met zonnepanelen kijkt het eerst naar schommelingen in de zon: een sprong van ≥ 500 W in de zon die de meter in dezelfde cyclus beantwoordt, laat de conventie direct zien. Een cyclus waarin de meter niet bewoog — de registers werden seconden na elkaar uitgelezen, of de zonnesensor gaf kort unavailable — is geen waarneming en telt niet mee (2.1, #889); dan beslist de tellervergelijking. In zeldzame gevallen (P1-meters, stroomtangen of omvormers van een onbekend merk) kan de automatische herkenning verkeerd gokken.
Symptomen van een verkeerd netteken
- Dagelijkse netafname blijft op 0 kWh terwijl je duidelijk stroom van het net haalt
- Het systeemdiagram toont teruglevering terwijl je afneemt
- Kosten-/besparingsberekeningen zijn omgedraaid
Knop Netteken herstellen (v1.7.3)
Is je teken verkeerd, ga dan naar tabblad Besturing → Geavanceerd → Netteken en tik op Netteken herstellen (of Tekendetectie resetten om de automatische herkenning opnieuw te laten lopen). Er is ook een service flip_grid_sign beschikbaar via Ontwikkelhulpmiddelen.
De correctie blijft bewaard na een herstart — SEM zet de correctie vast zodat een herstart haar niet terugdraait.
Stuurmodi voor apparaten
Elk apparaat dat in SEM is geregistreerd, heeft een stuurmodus die bepaalt hoe SEM ermee mag omgaan. Dit is de belangrijkste instelling voor elk apparaat — het bepaalt de grens tussen wat SEM regelt en wat de gebruiker regelt.
De keuzelijst Modus op de regel van een apparaat in het tabblad Besturing biedt vier opties:
| Modus | Zet SEM het AAN? | Zet SEM het UIT? | Toepassing |
|---|---|---|---|
| Uit | Nooit | Nooit | Alleen monitoren (koffiemachine, verlichting die je niet beheerd wilt hebben) |
| Alleen piek | Nooit | Ja, tijdens netpieken | Apparaten die jij bedient en die SEM mag afschakelen om de netlimiet te bewaken |
| Alleen zon | Ja, bij PV-overschot | Ja, als het overschot daalt of tijdens pieken | Uitstelbare lasten die alleen op zon draaien (zwembadpomp, boiler) | | Zon + accu | Ja, bij PV-overschot + ondersteuning door de thuisbatterij boven de buffer | Hetzelfde | Lasten die bij bewolking of ’s avonds op de batterij moeten doordraaien (#620) |
Standaard voor alle apparaten: Alleen piek — SEM zet een apparaat nooit uit zichzelf aan, tenzij je een van de zonnemodi kiest.
Intern delen de twee zonnemodi de stuurmodus surplus (control_mode: off / peak_only / surplus), onderscheiden door de vlag voor batterijondersteuning — van belang als je de modus via de service hieronder schrijft.
De modus wijzigen
Gebruik de service solar_energy_management.update_device_config:
service: solar_energy_management.update_device_config
data:
device_id: energy_dashboard_heizband
property: control_mode
value: surplus
De modus blijft bewaard na een herstart.
Dezelfde service bevat sinds 2.1 de toestemming handen af onder een eigen naam (#888) — “raak deze last nooit aan”, los van de Modus:
service: solar_energy_management.update_device_config
data:
device_id: energy_dashboard_heizband
property: hands_off
value: "true" # "false" hands the load back to SEM
Elke eigenschap die deze service accepteert, werkt ongeacht of lastbeheer aan staat (#913); alleen het synchroniseren van prioriteiten heeft echt het lastbeheer nodig, en zegt dat ook.
Laden van de auto
Het laden van de auto wordt apart beheerd door het eigen EV-sturingssysteem van de coördinator (niet door de overschotregeling). De stuurmodus-instelling van de laadpaal heeft geen invloed op het laadgedrag.
Overschotverdeling
SEM verdeelt zonne-overschot over apparaten in modus surplus op volgorde van prioriteit (1 = hoogste, 10 = laagste):
- Lees het beschikbare overschot (zon – huis – batterij laden)
- Trek de regelmarge af (standaard 50W terugleverbuffer)
- Loop de apparaten in overschotmodus af op prioriteit
- Inschakelen als overschot >= minimumvermogen van het apparaat
- Apparaten met variabel vermogen krijgen een evenredige toewijzing
- Als het overschot daalt: uitschakelen volgens LIFO (laagste prioriteit eerst)
Apparaten in modus peak_only of off worden nooit ingeschakeld door de overschotregeling. Ze kunnen alleen worden afgeschakeld door het piekbeheer.
Wat “alleen monitoren” betekent voor een apparaat dat je zelf schakelt (#779): SEM
houdt een apparaat op off/peak_only in elke modus in de gaten — zet je het aan, dan merkt SEM
dat, en de energie ervan blijft geteld worden (de huisbalans wil weten wat het
apparaat verbruikte, wie het ook startte). Het dagelijkse looptijdbudget loopt
onder off bewust niet op: dat budget is de eigen zonnetoelage van SEM, en off
betekent dat SEM het apparaat niet beheert (peak_only loopt wel op). Wat SEM
niet doet, is zichzelf vastleggen als degene die het startte. Dat onderscheid is belangrijk omdat één
regel erop handelt: zet je een apparaat op off terwijl SEM het laat draaien, dan
stopt SEM het één keer en geeft het terug. Een last die jij hebt gestart, is nooit aan SEM om te stoppen,
wat de modus ook is.
Lasten die in watt worden ingesteld (2.1, #880)
Sommige lasten nemen een getal in watt in plaats van een aan/uit-schakelaar — een my-PV AC-THOR-verwarmingselement, een variabele verwarming, een pomp met frequentieregelaar. Geef zo’n last zijn wattgetal als besturing, en SEM stelt in hoeveel watt hij moet opnemen, uit het overschot dat het heeft. Vóór 2.1 zette SEM zo’n last alleen aan en schreef het niets, waardoor hij voor altijd op 0 W bleef staan.
- Piekafschakeling kan een wattlast terugregelen of uitzetten zoals elke andere last.
- Een herstart laat een draaiende wattlast niet verloren gaan: SEM leest terug wat de last doet en gaat vanaf daar verder.
- Een last die op stroom-sturing staat maar naar een watt-entiteit wijst, wordt hardop geweigerd (een reparatiemelding noemt de entiteit), nooit stilletjes verkeerd gelezen.
Prijsgevoelige modus
Bij dynamische tarieven (Tibber, Nordpool, aWATTar) wordt de overschotverdeling prijsbewust: in dure periodes verkleint SEM het verdeelbare overschot, zodat een last die net op de grens zit wacht op sterkere zon in plaats van aan de marge te knabbelen.
Goedkope en negatieve uren voegen niets toe (2.1, #953). Tot dan toe voegden ze een virtuele +3 kW / +10 kW toe aan de zonnepool, die in de gewone overschotronde terechtkwam — zodat bij een dynamisch tarief een last in de modus “Alleen zon” in elk goedkoop uur vanaf het net draaide, geboekt op zijn balk “vandaag op zon”, zonder dat iets het tegenhield. Een goedkoop uur inkopen is een beslissing per apparaat met een doel erachter: daar is ’s nachts afmaken met: Net voor.
Piekbeheer

SEM volgt het voortschrijdende kwartiergemiddelde van het vermogen en schakelt stap voor stap lasten af om onder je doel-pieklimiet te blijven. Alleen apparaten in modus peak_only of surplus kunnen worden afgeschakeld. Apparaten in modus off worden nooit aangeraakt. De afschakellijst is de lijst die de kaart Lastprioriteiten toont — apparaten uit het Energie-dashboard en apparaten die met register_surplus_device zijn toegevoegd; een apparaat in surplus-modus wordt afgeschakeld door de overschotregeling, een apparaat in peak_only-modus door het lastbeheer.
| Toestand | Gedrag |
|---|---|
| Normaal | Geen actie — alle apparaten draaien vrij |
| Waarschuwing | Melding — de pieklimiet komt in zicht |
| Afschakelen | Eén last per ronde, hoogste prioriteitsnummer eerst, totdat de meter weer onder het doel zit |
| Nood | Zoveel lasten als de meter nodig heeft, in één ronde — en geen enkele meer |
Daalt de piek weer onder het doel, dan zet SEM apparaten alleen terug als ze vóór het afschakelen AAN stonden. Apparaten die al uit stonden, worden niet aangezet. Een last die SEM heeft uitgeschakeld, blijft op de herstellijst van SEM totdat SEM hem weer aanzet; zet iemand hem in de tussentijd met de hand aan en stopt hij later vanzelf, dan laat SEM hem met rust.
Wat een afschakeling begrenst (2.1, #896)
De toestanden hierboven worden gelezen uit het voortschrijdende kwartiergemiddelde, omdat een capaciteitstarief daarop factureert. Elke afzonderlijke afschakeling wordt echter beoordeeld op de live meter — een schakelaar die nu wordt omgezet, kan een voortschrijdend gemiddelde minutenlang niet bewegen, en de volgende afschakeling beoordelen op het gemiddelde is precies hoe een eerdere versie de ene groep na de andere uitschakelde totdat het huis donker was (een auto die SEM niet beheerde hield het gemiddelde hoog). Vóór elke schakelactie gelden nu twee regels:
- De behoefte is wat de meter zegt.
need = grid import − (target − hysteresis). Onder het doel houdt SEM vast — wat het gemiddelde ook nog aangeeft. Daarboven schakelt SEM op prioriteitsvolgorde af totdat het afgeschakelde verbruik de behoefte dekt, en stopt dan. Nood verschilt van Afschakelen alleen in tempo: meerdere schakelaars in één ronde in plaats van één, nog steeds begrensd door de behoefte. - De piek moet iets zijn wat SEM kan oplossen. Vóór de eerste schakelactie telt SEM alles op wat het mag afschakelen — lasten die het mag aansturen, beschikbaar zijn, niet kritiek zijn en op dit moment verbruiken — inclusief lasten in overschotmodus, omdat de overschotregeling die bij dezelfde piektoestand uitzet (ze tellen als bevoegdheid van SEM, ook al zet deze afschakelaar nooit hun schakelaar om); de piek van een laadpaal is van de laadlogica zelf en telt hier nooit mee. Zou de meter min dat alles nog steeds boven het doel zitten, dan kan het afschakelen van het huis de piek niet oplossen: de last die hem veroorzaakt is er een die SEM niet aanstuurt. SEM schakelt dan niets af en maakt een reparatiemelding aan — De netpiek wordt veroorzaakt door een last die SEM niet aanstuurt — met het aantal niet-aangestuurde kilowatts. De melding verdwijnt vanzelf in de eerste ronde waarin de piek weer haalbaar is.
Een afschakeling is nooit stil: de eerste afschakeling van een episode geeft een blijvende melding (Piekafschakeling) met een lijst van wat is uitgeschakeld en de meterstand ten opzichte van het doel; die wordt bij elke volgende afschakeling bijgewerkt en verdwijnt als de laatste last is teruggezet. Dezelfde episode vuurt een gebeurtenis solar_energy_management_notification (event: load_shed) af voor automatiseringen.
De getallen achter elke beslissing zijn attributen van sensor.sem_load_management_status (en staan in de lastbeheersectie van het Diagnose-venster): shed_path (het oordeel — held:under_aim, shed:N, futile, waiting:anti_flicker, waiting:surplus_controller als het enige afschakelbare verbruik een last in overschotmodus is die de overschotregeling aan het afschakelen is, nothing_sheddable, observer:withheld:N als de observatiemodus de N schakelacties tegenhield die het plan zou hebben uitgevoerd), shed_need_w, shed_sheddable_w, uncontrolled_w en shed_futile.
Kritieke lasten zijn de enige bescherming tegen afschakelen, en ook de enige die er is: markeer de groep die je netwerkapparatuur of de HA-host voedt als kritiek op de kaart Lastprioriteiten en SEM schakelt die nooit af. (Een eerdere constante critical_device_protection beloofde een tweede laag; niets las die ooit uit, en hij is verdwenen.)
De preventieve helft: de kwartierbewaking (2.1, #864)
De toestanden hierboven zijn reactief — ze grijpen in zodra het voortschrijdende gemiddelde je limiet al heeft overschreden. Bij een capaciteitstarief is dat per definitie te laat: je wordt gefactureerd op de gemiddelde afname van elk vast kwartier op de klok, dus tegen de tijd dat het gemiddelde het doel overschrijdt, is het kwartier dat je factuur bepaalt al het dure.
Het gat is gemeten, niet bedacht. Een auto laadde met 9,9 kW onder een doel van 6,0 kW
en de toestand gaf de hele tijd normal, omdat een uitbarsting van vier minuten het voortschrijdende
gemiddelde van 1,68 naar 2,04 kW bracht — nog lang niet bij de
drempel. Houd het vol en het gemiddelde gaat er uiteindelijk overheen, en pas dan
begint het afschakelen, nadat de schade aan de gefactureerde piek al is vastgelegd.
Daarom volgt SEM nu de eigen rekensom van de factuur. Elk kwartier op de klok heeft een budget
(target × ¼ h), een teller integreert wat het kwartier al op de
meter heeft afgenomen, en de toegestane ruimte is wat de rest gemiddeld mag zijn zodat het kwartier
nog steeds op het doel uitkomt. Eén toegestane ruimte per cyclus begrenst alles wat SEM
aanstuurt:
- het aanbod aan de auto in elke modus,
Always (max)inbegrepen; - het laden van de batterij vanaf het net in goedkope uren;
- het starten van lasten in goedkope uren dat niet in het resterende budget van het kwartier past.
Twee ontwerpkeuzes om te kennen:
- Het stopt nooit zomaar een auto. Het aanbod heeft als ondergrens de minimale stroom van de laadpaal in plaats van naar nul te zakken — stoppen op een kortstondige piek is het flipperen dat dit project maanden heeft gekost om weg te werken. De harde stop blijft bij de toestand NOOD, die hierna draait en voorrang heeft.
- Uitbarstingen aan het begin van het kwartier blijven toegestaan. Een korte piek aan het begin van een kwartier wordt echt opgevangen door het gemiddelde, dus de bewaking staat hem toe; die wordt pas strenger naarmate het kwartier volloopt.
- Een begrenzing gaat in dezelfde cyclus in (#905). De laag die het aanbod stabiliseert, verhoogt de stroom 2 A per cyclus en dempt wijzigingen — goed voor de auto op weg omhoog en voor schommelingen in het budget. Een limiet die de stroom verlaagt (deze bewaking, een afschakelopdracht) is geen voorkeur: die wordt direct geschreven, en de opbouw regelt daarna alleen de weg terug omhoog.
- Een blinde meter is geen licht kwartier (#906). Valt de netsensor midden in een kwartier weg, dan houdt de teller de laatste geldige afname vast over het gat in plaats van 0 W te tellen, en wordt de toegestane ruimte begrensd op het doel totdat de meter weer leesbaar is. De ruimte voor uitbarstingen is er voor kwartieren die SEM echt heeft kunnen volgen.
- Nachtelijke oordelen gaan door een blinde cyclus heen (#907). Overdag houdt een cyclus die niets kan zien de toegezegde stroom vast in plaats van te sturen op een verzonnen nul. ’s Nachts komt de beslissing van de planner — een deadline-ondergrens, doel bereikt — uit de eigen teller van de laadpaal en wordt die gerespecteerd zoals hij is, zodat een aanvulling die haar “Minstens” heeft geleverd stopt, ook terwijl de omvormer wegvalt.
Omdat de limiet bij de vermogensmeter ligt, moet alles daarachter zich eraan houden — dit is een laag boven de apparaten, geen EV-functie.
Uitzetten gaat met de bediening die al bestaat: zet de schuifregelaar Doellimiet op het tabblad Besturing op de MAX-stand (Geen netlimiet). Er is geen tweede schakelaar. Een installatie zonder doel-pieklimiet gedraagt zich precies zoals voorheen.
Live waarden: peak_slot_allowed_w (wat de rest van het kwartier gemiddeld mag zijn) en
peak_slot_used_kwh (wat het tot nu toe heeft afgenomen), beide op het lastbeheer-
overzicht.
Uit bij een nieuwe installatie: SEM schakelt niets af totdat je het inschakelt. Zet het aan via Lastbeheer inschakelen op het tabblad Configuratie — de schakelaar en de doellimiet staan samen in de sectie Lastbeheer (te bereiken via het label Lastbeheer in het installatieoverzicht; de sectie zit niet verstopt achter Geavanceerd). Vereist stuurbare apparaten met schakelaarentiteiten. Voor het bereik van doel/waarschuwing/nood, de schuifregelaar op het tabblad Besturing en de opt-out Geen netlimiet, zie Instellingen voor lastbeheer.
Als de terugleverprijs negatief wordt (arc #921)
Bij een spotprijs voor teruglevering (EPEX, Nord Pool, Tibber) kan de terugleverprijs negatief worden — je betaalt dan om terug te leveren. SEM behandelt dat als een afvoer die dicht is, niet als een prijs om omheen te optimaliseren. Elke bestemming die een kWh kan nemen, krijgt per cyclus een oordeel:
| Oordeel | Betekenis |
|---|---|
| OPEN | energie mag daarheen (de eigen poorten van die afvoer gelden nog steeds) |
| VASTGEHOUDEN | het mag, maar nu niet — houd de energie waar ze is |
| DICHT | het mag niet; voor het net wordt dit afgedwongen bij de omvormer |
De oordelen worden gepubliceerd op sensor.sem_charging_state (sink_verdicts)
en de strook Plan van vandaag toont wanneer de meter dichtgaat en weer opengaat.
Alles hieronder staat standaard uit en staat op het tabblad Configuratie onder
Batterij-intelligentie.
- Teruggeleverd bij negatieve prijs / Kosten van terugleveren bij een negatieve prijs — twee diagnosewaarden die bij een vaste terugleververgoeding op nul blijven. Ze bestaan zodat de kosten van niets doen een gemeten getal zijn.
- Exportbewaking — zolang de terugleverprijs negatief is, begrenst SEM de teruglevering op
nul bij de omvormer, nadat de batterij, de auto en de lasten deze cyclus
hun beurt hebben gehad: een bewaarde kWh is beter dan een vernietigde. Hysterese in beide
richtingen (Inschakelvertraging, Vrijgavevertraging): spotprijzen gaan vaak door nul en de
omvormer mag niet flipperen. Per merk: Huawei via de services van
huawei_solar(de eigen reset van de integratie is het herstel), Deye via de keuzelijst voor de werkmodus uit #827 (vorige waarde vastgelegd en hersteld), elke andere omvormer via een schrijfbaar getal voor de exportlimiet. Een merk zonder exportsturing weigert en zegt dat; drie weigeringen geven een reparatiemelding. Bij ontladen, uitschakelen en verwijderen wordt de begrenzing als eerste teruggegeven. - Externe planning overschrijven — een Huawei die onder de digitale-ingangsplanning van de netbeheerder
staat, meldt
DI Active Scheduling; SEM weigert de modus van een netbeheerder te vervangen, tenzij jij aangeeft dat de netbeheerder dat toestaat. - Wat de bewaking nodig heeft om de meter dicht te zetten — een negatieve terugleverprijs.
Die bestaat alleen bij een dynamische terugleververgoeding (
dynamic_feedin_entity); bij een vast tarief gaat de meter nooit dicht en blijft de bewaking bewust idle. De toestand van de bewaking issensor.sem_export_guard_state(idle · holding · engaged · releasing · refused), getoond in de piekensectie van de Net-kaart en, met de reden, onderexport_guardopsensor.sem_charging_state. - Huawei-specifiek, gemeten op de referentie-SUN2000 (17.09.2026). De
sturing van het actieve vermogen van de omvormer is één register met vijf modi
(Unlimited · Limited to N W · Limited to N % · Zero Power · DI Active
Scheduling). SEM leest de modus die het aantreft één keer, vóór de begrenzing, en de
vrijgave zet precies die terug — nooit een algemene reset. Twee gevolgen:
de referentie-omvormer accepteert
Unlimitedniet (de aanroep komt netjes terug en het register komt in plaats daarvan op de modus van de netbeheerder uit), dus de laatste redmiddel van SEM vraagt om 100 % van het nominale vermogen, wat hetzelfde is in een dialect dat de hardware wel accepteert; en is de teruggelezen modusunavailable(die valt na elke schrijfactie ~60 s weg, en na een herstart minutenlang), dan weigert SEM te begrenzen in plaats van een modus te vervangen die het niet kan zien — de toestand toont refused met die reden, en drie weigeringen geven een reparatiemelding. Het teruglezen haalt vanzelf in;homeassistant.update_entityop de modussensor dwingt het af. - Het huis als afvoer voor de batterij — houd de batterij vast tijdens goedkope en negatieve uren (laat het huis afnemen) en besteed haar aan het huis in dure uren.
- Ochtendvenster voor de auto — vóór het ingestelde vertrek de batterij in de auto leegmaken tot de ondergrens ochtendontlading, alleen als de voorspelling van vandaag de batterij weer vult.
- Laadtempo laat de batterij nu vol zijn bij de vroegste van zonsondergang en
de volgende dichte meter, zodat de ruimte er is als de prijs omslaat. Het
is een schakelaar op het tabblad Batterij,
switch.sem_battery_charge_pacing_enabled(Laadtempo batterij), standaard uit.
SEM beperkt nooit wat de batterij, de auto en de lasten nog zouden kunnen opnemen.
Volledig bewezen op echte hardware op 17.09.2026: met de prijs negatief gehouden
en 2 kW teruglevering op de meter schakelde de bewaking van SEM na haar vertraging in, schreef de
begrenzing, toonde het register van de omvormer Zero Power, en toen de prijs
positief werd, gaf de bewaking vrij en toonde het register Limited to 100 % — de
modus die het had aangetroffen. Twee keer, identiek. Zie docs/SIMULATION.md voor hoe zo’n
bewijs wordt geleverd zonder een auto of batterij aan te raken.
Tariefintegratie

SEM ondersteunt drie tariefmodi, te kiezen onder Instellingen > Apparaten > Solar Energy Management > Configureren > Tarief & geavanceerd:
Statische tarieven (standaard)
Vaste afname-/terugleveringstarieven met optioneel onderscheid tussen hoog- en laagtarief (HT/NT). SEM past HT-tarieven toe op werkdagen overdag (07:00-20:00) en NT-tarieven ’s nachts en in het weekend. Stel de tarieven in bij de optiestap Tarief & geavanceerd.
Dynamische tarieven (Tibber / Nordpool / aWATTar / Amber Electric)
Zet de tariefmodus in de opties op “Dynamisch”. SEM herkent je leverancier automatisch door te zoeken naar bekende entiteitpatronen, of je kiest de prijsentiteit handmatig. Als dit actief is:
- Leest SEM elke updatecyclus (10s) realtime prijzen
- Gebruiken kostenberekeningen de werkelijke spotprijzen in plaats van statische tarieven
- Toont
sensor.sem_tariff_price_level“cheap”, “normal”, “expensive”, “very_cheap”, “very_expensive” - Toont
sensor.sem_tariff_next_cheap_starthet volgende goedkope venster - Prijsgevoelig overschot: dure vensters verkleinen het verdeelbare overschot (goedkope vensters voegen niets toe — zie Prijsgevoelige modus)
- Kan nachtladen worden ingepland in de goedkoopste uren (modus
solar_plus_cheap) - Prijskaart (v1.7.3): de
sem-price-cardtoont de actuele prijs, het niveau, het min/gem/max van vandaag, het volgende goedkope venster, en een prijsstrook per uur voor de komende ~24 uur (balken gekleurd naar niveau, huidig uur omlijnd). Een compact label staat bovenaan het tabblad Home (in één oogopslag), het volledige paneel met grafiek op het tabblad Kosten. Verbergt zichzelf bij statische tarieven (geen live curve om te tonen). generate_dashboardherlaadt live (v1.5.16+) — een laadpaal toevoegen, de taal wijzigen of een andere hergeneratie is nu direct zichtbaar in het draaiende dashboard. Geen herstart van HA nodig; een harde verversing van de browser (Ctrl+Shift+R) haalt gecachte kaartbundels op.- Ondersteuning voor Tibber Grid Reward (v1.7.3): is de voorspellingssensor van de standaard Tibber-integratie onbeschikbaar, installeer dan de HACS-integratie Tibber Grid Reward en zet de dynamische tariefentiteit op de
sensor.current_pricedaarvan — SEM leest de prijsreeksentoday_raw/tomorrow_rawdirect uit.
Ondersteunde leveranciers
| Leverancier | Regio | Herkenning | Intervallen | Teruglevering |
|---|---|---|---|---|
| Tibber | Scandinavië, Duitsland, NL | Automatisch (sensor.*electricity_price*) |
60 min | Statisch |
| Nordpool | Scandinavië, Baltische staten | Automatisch (sensor.nordpool*) |
60 min | Statisch |
| aWATTar | Oostenrijk, Duitsland | Automatisch (sensor.awattar) |
60 min | Statisch |
| Amber Electric | Australië | Automatisch (sensor.amber_*_general_price) |
30 min | Dynamisch (live terugleverprijs) |
| Octopus Energy | VK | Automatisch (sensor.octopus_energy_*_current_rate) |
30 min | Dynamisch (sensor voor exporttarief) |
| Elke andere | Overal | Handmatig (prijsentiteit kiezen) | Automatisch herkend | Statisch of dynamisch |
Amber Electric instellen (Australië)
SEM herkent Amber automatisch als de Amber Electric-integratie is geïnstalleerd. Er is geen handmatige configuratie nodig — SEM vindt:
- Prijssensor (
sensor.amber_*_general_price) — live afnameprijs in $/kWh - Voorspellingssensor (
sensor.amber_*_general_forecast) — prijsvoorspelling voor 12 uur (intervallen van 30 minuten) - Terugleversensor (
sensor.amber_*_feed_in_price) — live terugleverprijs (dynamische exportopbrengst)
Met de voorspellingen van Amber optimaliseert SEM het laden van de auto en de batterijplanning rond de goedkoopste kwartier- en halfuursvakken, en vermijdt het prijspieken.
Ondersteuning voor algemene leveranciers
Elke HA-integratie die een prijssensor aanbiedt, werkt met SEM. Heeft de sensor een attribuut forecasts met een reeks {start_time, per_kwh}– of {start, price}-objecten, dan gebruikt SEM die voorspellingsgegevens om de planning te optimaliseren. Stel de prijsentiteit handmatig in bij de tariefopties.
Agendatarieven (tijdgebonden HT/NT-schema)
Zet de tariefmodus op “Agenda” voor eigen tijdsafhankelijke schema’s. Definieer regels als “HT werkdagen 07:00-20:00, anders NT”. Functies:
- Ingebouwde voorinstellingen voor Zwitserse energiebedrijven: EKZ, BKW, CKW, ewz
- Eigen weekschema via instelbare regels
- Ondersteuning voor de helper-entiteit Schema van HA
- Overschrijving met een feestdagentiteit (binary_sensor)
Zonnevoorspelling
Installeer Solcast PV Solar, Forecast.Solar of Open-Meteo Solar Forecast voor functies op basis van voorspellingen:
sensor.sem_forecast_today_kwh— verwachte totale productie vandaag (kWh)sensor.sem_forecast_tomorrow_kwh— verwachte totale productie morgen (kWh)sensor.sem_forecast_remaining_today_kwh— verwachte resterende productie vandaag (kWh)sensor.sem_charging_recommendation— voorgestelde laadstrategie- Verlaging van het nachtdoel op basis van de voorspelling
- Slimme beslissingen om de batterij om te leiden in de stroomberekening
Observatiemodus
Draai je twee HA-installaties op dezelfde hardware (bijv. productie + test), zet dan de observatiemodus aan op de testinstallatie.
SEM blijft:
- alle sensoren uitlezen
- energie, stromen en kosten berekenen
- alle sensorentiteiten bijwerken
SEM slaat over:
- alle service-aanroepen naar laadpalen
- wijzigingen van de ontlaadlimiet van de batterij
- afschakelcommando’s voor apparaten
Zet het aan via Instellingen > Apparaten & diensten > Solar Energy Management > Configureren > Observatiemodus, of via switch.sem_observer_mode.
Overzicht van sensoren
Vermogenssensoren (W)
sensor.sem_solar_power— actuele zonneproductiesensor.sem_grid_power— net teruglevering (positief) / afname (negatief). Dezelfde conventie die SEM intern gebruikt en uitleest van Huaweipower_meter_wirkleistung. NIET de conventie van het Energie-dashboard van HA.sensor.sem_battery_power— batterij laden (positief) / ontladen (negatief). Doorgegeven van de bronsensor van de omvormer.sensor.sem_grid_import_power— altijd ≥ 0, afgeleid vangrid_powersensor.sem_grid_export_power— altijd ≥ 0, afgeleid vangrid_powersensor.sem_ev_power— actueel laadvermogen van de autosensor.sem_home_consumption_power— totaal vermogensverbruik van het huis (zonder auto). Bevat het attribuutpower_snapshot: de hele balans (zon/net/batterij/auto/huis/SOC) uit één coördinatorcyclus, gebruikt door de diagram- en stroomkaarten zodat hun boekhouding altijd klopt (#699)sensor.sem_inverter_temperature— temperatuur van de omvormer (°C, als de omvormer die doorgeeft)
Energiesensoren (kWh)
sensor.sem_daily_solar_energy— zonneproductie van vandaagsensor.sem_daily_grid_import_energy— netafname van vandaagsensor.sem_daily_grid_export_energy— teruglevering van vandaagsensor.sem_daily_ev_energy— laadenergie van de huidige EV-dagsensor.sem_monthly_*— maandelijkse varianten
Daggrenzen: de dagtellers voor zon / net / huis worden om middernacht gereset (gelijk aan het Energie-dashboard van HA). De EV-teller is bewust anders: zijn “dag” loopt van deadline tot deadline en wisselt op het tijdstip Klaar om van je laadpaal (standaard 07:00) — zodat een nachtlading in één vak komt in plaats van om middernacht te worden gesplitst. Bij installaties met meerdere laadpalen gebruikt het totaal van alle laadpalen de gedeelde deadline zolang alle laadpalen er één delen; zijn hun tijden Klaar om verschillend, dan is er geen gedeelde deadline om op te wisselen, en wordt het totaal om middernacht gereset zoals elke andere dagteller, terwijl de eigen teller van elke laadpaal op zijn eigen deadline blijft wisselen (#724). Een tijdstip Klaar om verschuiven werkt vanaf de volgende wisseling — de dag die al aan het optellen is, houdt zijn grens. Het later zetten verlengt daardoor de huidige EV-dag één keer (07:00 → 23:00 midden op de dag betekent dat die ene dag tot ~40 uur duurt en de teller simpelweg niet reset op het oude 07:00); de dag daarna heeft weer de normale lengte. Een sessie die op de deadline nog laadt, loopt door in de volgende EV-dag; dat de teller midden in een sessie op je tijdstip Klaar om herstart, is te verwachten. Voor vergelijkingen per kalenderdag met het Energie-dashboard van HA gebruik je in plaats daarvan de eigen dagteller van de laadpaal.
Stroomsensoren (W en kWh)
sensor.sem_flow_solar_to_home_power— zonnevermogen gebruikt door het huissensor.sem_flow_solar_to_ev_power— zonnevermogen naar de autosensor.sem_flow_solar_to_battery_power— zonnevermogen naar de batterijsensor.sem_flow_grid_to_ev_power— netvermogen naar de autosensor.sem_flow_battery_to_home_power— batterijvermogen naar het huissensor.sem_flow_battery_to_grid_power— batterijvermogen teruggeleverd aan het net (#776) — alleen niet-nul tijdensForce dischargeof een arbitrage- verkoop; verbiedt je netcontract het terugleveren van opgeslagen energie, dan is deze sensor je bewijs dat SEM dat nooit doet (hij moet 0 aangeven)
Kostensensoren
sensor.sem_daily_costs— kosten van de netafname van vandaagsensor.sem_daily_export_revenue— terugleveropbrengst van vandaagsensor.sem_daily_savings— zonnebesparing van vandaagsensor.sem_monthly_*— maandelijkse varianten
Waar de opgeslagen energie vandaan kwam (#770)
Een kWh die uit de batterij wordt ontladen, is alleen een besparing als hij gratis was toen hij erin ging. SEM laadt de batterij bewust vanaf het net — in het goedkope nachtelijke dal, vóór een slechte voorspelling — en die energie is gekocht, niet opgewekt. Vier sensoren houden die twee uit elkaar:
| Sensor | Waar het antwoord op geeft |
|---|---|
sensor.sem_daily_battery_charge_solar |
hoeveel van het laden van vandaag van het dak kwam |
sensor.sem_daily_battery_charge_grid |
…en hoeveel er is gekocht |
sensor.sem_daily_battery_grid_cost |
wat het gekochte deel kostte |
sensor.sem_battery_stored_grid_share |
% van wat er nu in de batterij zit dat is gekocht |
sensor.sem_daily_savings rekent nu alleen het verschil: een kWh gekocht tegen
0,30 en ontladen tegenover 0,30 bespaarde niets — hij is verplaatst, niet opgewekt —
terwijl een kWh gekocht tegen 0,10 in het dal die bij het ontbijt 0,30 vervangt,
0,20 bespaart. Energie die al was opgeslagen voordat SEM begon mee te kijken, heeft
geen bekende herkomst en houdt het volledige tegoed; die wordt niet gestraft voor een
meting die SEM nooit heeft gedaan.
sensor.sem_autarky_rate volgt dezelfde regel: ontladen uit de batterij telt alleen als
eigen opwek voor het deel dat met zon is geladen. De rest is netstroom
die alleen in de tijd is verschoven; dat is geld waard maar geen onafhankelijkheid.
(sensor.sem_self_consumption_rate verandert niet — die meet hoeveel van
je zon thuis bleef, en dat antwoord hing nooit af van de herkomst van de
batterij-energie.)
De pool wordt elke cyclus getoetst aan de gemeten SOC van de batterij, zodat afwijkingen in de integratie geen opgeslagen energie kunnen verzinnen. Gaat de SOC-sensor offline, dan laat SEM de getallen met rust in plaats van stilte te lezen als een lege batterij.
Direct na het installeren van (of herstarten in) deze versie toont de sensor voor het opgeslagen aandeel geen waarde (unavailable) in plaats van 0 % — SEM heeft nog geen lading zien binnenkomen, en geen antwoord is het eerlijke antwoord totdat de eerste laadcyclus de pool vult. Daarna wordt het vanzelf een getal.
Echte basislast — het deel van het huis dat SEM niet aanraakt (#773)
Nu elke aangestuurde last zijn eigen kWh telt (#768), is wat er van
home overblijft na aftrek daarvan je basislast: koelkast, stand-by,
verlichting, router — het deel van het huis dat SEM niet kan verschuiven.
| Sensor | Waar het antwoord op geeft |
|---|---|
sensor.sem_true_baseload_power |
het niet-aangestuurde verbruik van het huis, live (W) |
sensor.sem_daily_true_baseload_energy |
hetzelfde over de dag (kWh) |
Twee eigenschappen maken het meer dan een curiositeit:
- Het kan negatief worden — met opzet. Een negatieve basislast betekent dat SEM meer heeft afgetrokken dan het huis verbruikte: een apparaat dubbel geteld, of een sensor met het verkeerde teken. Dat is een foutmelding, geen hapering, en daarom wordt het nooit op nul afgekapt.
- Het is saai, en SEM controleert dat het saai blijft. De basislast beweegt met seizoen en bezetting — langzaam. Een plotselinge sprong betekent dat een sensor is uitgevallen, een teller is gereset, of de energie van een apparaat dubbel wordt geteld, en de gezondheidscontrole meldt dat met een genoemde verdachte (het apparaat — of de huisregel zelf — waarvan de eigen verandering van dag tot dag de sprong verklaart).
Dagen waarop de energie van een apparaat moest worden geschat (rated_power × looptijd),
worden nog steeds getoond, en de afwijkingsvergelijking accepteert ze zolang het
geschatte deel klein is (≤ 0,5 kWh voor de dag) — een schatting die
zo klein is, kan het oordeel niet veranderen, en elke zulke dag weigeren zou
de controle permanent stil houden in elk huis met één apparaat zonder meter.
Dagen met een groter geschat aandeel worden uit de vergelijking gelaten — een
grote schatting wordt nooit behandeld als meting.
Prestatiesensoren (%)
sensor.sem_self_consumption_rate— % van de zon dat lokaal wordt gebruiktsensor.sem_autarky_rate— % van het verbruik uit zon+batterij (een batterij geladen vanaf het net telt als net, #770)sensor.sem_pv_performance_vs_forecast— werkelijke opbrengst tegenover de voorspelling van Solcast/Forecast.Solarsensor.sem_pv_daily_specific_yield— kWh per geïnstalleerde kWpsensor.sem_pv_estimated_annual_degradation— gezondheid van de panelen op lange termijn
Laadsensoren
sensor.sem_charging_state— huidige laadtoestandsensor.sem_charging_strategy— actieve strategie (solar_only, battery_assist, enz.)sensor.sem_available_power— beschikbaar vermogen voor de auto (W)sensor.sem_calculated_current— doellaadstroom (A)sensor.sem_session_energy— energie van de huidige/laatste sessie (kWh)sensor.sem_session_solar_share— % van de sessie-energie uit zonsensor.sem_session_cost— kosten van de huidige/laatste sessiesensor.sem_session_duration— duur van de sessie (min)
Sensoren voor de EV-intelligentie
Voor alle laadpalen samen:
sensor.sem_ev_taper_trend— afbouwtoestand: “declining”, “stable”, “rising”, “unknown”sensor.sem_ev_power— totaal laadvermogen over alle laadpalen (W)sensor.sem_ev_remaining_range— geschatte actieradius die nog moet worden bijgeladen (km)sensor.sem_ev_charger_count— aantal ingestelde laadpalen
Per laadpaal ({id} = het id van elke laadpaal):
sensor.sem_charger_{id}_taper_trend— afbouwtoestand voor deze laadpaalsensor.sem_charger_{id}_taper_ratio— huidig vermogen als % van de piek in de sessiesensor.sem_charger_{id}_taper_minutes_to_full— geschat aantal minuten tot een volle accusensor.sem_charger_{id}_estimated_soc— schatting van de virtuele SOC (0-100%), geen API van de auto nodigsensor.sem_charger_{id}_vehicle_soc— SOC van de auto (als eenvehicle_soc_entityis ingesteld)sensor.sem_charger_{id}_session_energy/_session_solar_share/_daily_energy— sessie- en dagenergie en aandeel zon
Voorspellingssensoren
sensor.sem_forecast_today_kwh— voorspelling voor vandaag (kWh)sensor.sem_forecast_tomorrow_kwh— voorspelling voor morgen (kWh)sensor.sem_forecast_remaining_today_kwh— rest van vandaag (kWh)sensor.sem_charging_recommendation— voorgestelde strategie
Sensoren voor lastbeheer
sensor.sem_peak_margin— ruimte tot de pieklimiet (kW)sensor.sem_consecutive_peak_15min— voortschrijdend kwartiergemiddelde van het vermogen (kW)sensor.sem_loads_currently_shed— aantal apparaten dat op dit moment is afgeschakeld
Het huisverbruik dat je omvormer meldt (2.1, #891)
Sommige hybride omvormers publiceren hun eigen getal voor het huisverbruik. SEM berekent zijn eigen getal uit de energiebalans (zon + net + batterij − auto). Geef je de sensor van de omvormer op in het tabblad Configuratie (Sensorbronnen → Sensor huisvermogen), dan publiceert SEM die naast zijn eigen getal:
| Sensor | Wat het is |
|---|---|
sensor.sem_house_meter_power |
het getal dat je omvormer meldt, zoals gelezen |
sensor.sem_house_meter_gap |
getal van de omvormer min dat van SEM, met teken (diagnose) |
SEM blijft beslissen op zijn eigen balansgetal. De twee sensoren zijn er zodat je kunt zien hoe ver de omvormer en SEM uit elkaar liggen, en met hoeveel. Bij de referentie-installatie is het verschil 30–60 W — het eigen verbruik van de omvormer.
Opmerkingen over de compatibiliteit van laadpalen
Niet alle laadpalen ondersteunen volledige sturing door SEM. Dit zijn de belangrijkste verschillen:
| Laadpaal | Status | Opmerkingen |
|---|---|---|
| Tesla Wall Connector | Alleen monitoren | Geen vermogenssensor of stroomsturing beschikbaar in HA. SEM kan spanning/stroom lezen maar het laden niet sturen. |
| Myenergi Zappi | Alleen monitoren | Beheert zonne-overschot intern via ingebouwde omleidingslogica. SEM kan monitoren maar de stroom niet sturen — de Zappi regelt het laden op overschot zelf. |
| KSTAR | Ondersteund via ha-solarman | Geen eigen HA-integratie. Gebruik ha-solarman met KSTAR-YAML-profielen. |
| Easee | Volledig ondersteund | De vermogenssensor van Easee staat in HA standaard uit. Schakel hem in onder Instellingen > Apparaten > Easee voordat je SEM configureert. |
| NRGkick (2.1) | Wordt vanzelf gevonden | Stroom, aan/uit en het aantal fasen worden overgenomen uit de eigen sleutels van de kernintegratie. |
| ABL eMH1 (2.1) | Wordt vanzelf gevonden | Via de integratie ABL_emh1_modbus van matfroh. Nog niemand heeft het op hardware bevestigd; de eerste eigenaar maakt het live getest. |
| Wallbox achter de MQTT-brug (2.1) | Wordt vanzelf gevonden | Twee units op één installatie worden van elkaar onderscheiden. De eigen wallbox-integratie is een andere regel. |
| OCPP (2.1) | Stopt via de schakelaar | Een limiet van 0 A is bij OCPP een vergrendeling, dus SEM schrijft die nooit; het stopt via de schakelaar voor laadsturing (#976). |
Dagelijkse energiereset
SEM reset de dagelijkse energietellers bij zonsopkomst, niet om middernacht. Dat is bewust:
- Nachtelijke laadsessies (22:00-06:00) blijven in één dagvak
- Maandtotalen worden afgeleid van datums op basis van zonsopkomst
- Dit sluit misschien niet aan op factuurperiodes van je energiebedrijf die om middernacht resetten
Het tijdstip van zonsopkomst komt uit de entiteit sun.sun van HA (terugval: 06:00 als die onbeschikbaar is).
SEM verwijderen
SEM ruimt zijn eigen spullen op, en vraagt het eerst voordat het iets van jou aanraakt.
Wat SEM automatisch meeneemt als je het verwijdert
- Zijn eigen opslagbestanden — energie- en dagtotalen, de versiemarkering, het record van het laadtempo, momentopnamen per batterij.
- Zijn reparatiemeldingen.
- De dashboardbronnen die het had geregistreerd. Zonder dit bleef elke paginaweergave een kaartbundel ophalen die niet meer bestond.
- Hardware die het had aangestuurd. Een last die SEM had aangezet, wordt uitgezet, een batterij gaat terug naar normaal, een laadvermogenlimiet die SEM had geschreven, wordt hersteld, en een laadpaal die SEM had geparkeerd, wordt weer ingeschakeld. Een apparaat dat SEM nooit heeft aangestuurd, blijft precies zoals het was — SEM draait alleen zijn eigen opdrachten terug.
Die laadpaal verdient wat uitleg. Zolang SEM draait, laat het een geparkeerde laadpaal bewust uitgeschakeld met een dodemansfailsafe, zodat het apparaat blijft weigeren over herstarts en netwerkonderbrekingen heen. Zodra SEM weg is, is er niemand meer om dat staande “nee” op te heffen, en het symptoom is een laadpaal die niet start en geen reden geeft. Verwijderen heft het nu op. SEM raakt nooit de autorisatie van je laadpaal aan — die is van jou en is dat altijd geweest.
Wat SEM met rust laat tenzij je erom vraagt
Je historie. De langetermijnstatistieken van de sensoren van SEM en het dashboard dat SEM heeft gegenereerd, zijn van jou — misschien heb je een jaar gebruikt om het ene te vullen en een middag om het andere te bewerken.
Om ze te wissen, voer je Ontwikkelhulpmiddelen → Acties → SEM: Restanten verwijderen uit voordat je de-installeert — daarna is er geen SEM meer om het uit te voeren.
| Optie | Standaard | Wat het doet |
|---|---|---|
statistics |
aan | Wist de langetermijnstatistieken van de recorder voor de sensoren van SEM. Dit is wat Spook na een de-installatie als achtergebleven items meldt. |
dashboard |
uit | Verwijdert het gegenereerde SEM-dashboard en de vermelding in de zijbalk, inclusief eventuele aanpassingen die je hebt gemaakt. |
Opnieuw installeren na een oudere versie
SEM-versies vóór deze konden niet opruimen, dus bij een herinstallatie kunnen er opslagbestanden van eerdere installaties worden aangetroffen. Die worden bij de installatie opgeruimd en een reparatiemelding vertelt je hoeveel, en biedt dezelfde actie aan voor de delen die van jou zijn. Een bestand dat SEM niet herkent, wordt in het logboek genoemd en blijft staan waar het staat.
Mis geen nieuwe SEM-versie
Krijg een mail bij nieuwe SEM-versies, bijgewerkte Nederlandse documentatie en praktijkcijfers. Je downloadt direct ook de gratis checklist voor het einde van de saldering.
Geen spam. Afmelden kan altijd met één klik.