Dat had ik wel kunnen zien aankomen natuurlijk
Settings op de laadpaal zelf
Dat kan ik nu even niet doen (zit op werk laptop en daar kan ik de Alfen installer niet op zetten), maar het is vrij simpel : je zorgt dat load balancing unlocked is (met een licentie code). Daarna zet je een fixed ip op de laadpaal en zet je load balancing via modbus aan. Belangrijk is ook om een laadvermogen in geval van communicatie verlies in te stellen (en na hoelang no comm dit actief moet worden). Gezien ik in mijn sturing minstens om de 10s een setpoint stuur heb ik dit op 30s en 10A gezet.
Als ik mijn eigen laptop nog eens neem kan ik wel wat screenshots maken en hier aan toevoegen.
Laad vermogen bepalen
Dit is echt enkel van toepassing op mijn huis vrees ik. Ik heb mijn meterkast flink uitgebreid en heb kWh meters gezet voor elke "groep" van gebruikers (laadpaal, warmtepomp, warmtepompboiler, rest van het huis, zonnpanelen+thuisbatterij omvormer) + aan het net. Ik zie dus op elk moment exact wat er door elke teller gaat en hoeveel zonne-energie er opgewekt wordt.
Battery SOC is hier dus niet de batterij van de auto maar mijn thuisbatterij. Het verschil tussen PV power en solar [P] gaat dus in of uit de batterij (met wat inverter losses om rekening mee te houden).
Daarnaast heb ik ook een card met wat instellingen die ik kan aanpassen.
:fill(white):strip_exif()/f/image/XcC8x9UHyiwzV0fYueTje794.png?f=user_large)
- max grid W : Ik woon in België waar al lang sprake is van het capaciteitstarief (het is er nog niet in de praktijk, maar ik ben er wel klaar voor). In het kort : het kwartier met het hoogste piek vermogen per maand bepaald je netkosten voor die maand. Het minimumvermogen is sowieso 2.5kW. Ik laad in de zomer (bijna) enkel op zonne-energie maar als ik eens 's nachts moet laden (of in de winter op een donkere dag) kan ik met deze slider aangeven hoeveel vermogen er maximum uit het net mag komen. De sturing van de laadpaal doet dan (eventueel zon+) loadbalancing op die waarde. Als ik in huis iets aan zet wordt dat er van af getrokken.
- release delay : Als je de oven/kookplaat/... op zet warmt die eerst op voor langere periode en daarna is het een aan/uit gedrag. Met een release delay kijk ik naar het maximale laadvermogen dat er instantaan zou mogen en neem ik het minimum van die waarden over de ingestelde periode. maw : als de oven met een cyclus van 2 minuten aan, 30 seconden uit te werk gaat (ik zeg maar iets) en de release delay staat op 1 minuut, dan schiet het setpoint van de lader niet omhoog tijdens die 30 seconden dat de oven geen elektriciteit neemt. Het jojo effect vindt de auto namelijk niet zo heel leuk (zie mijn eerste post van vandaag).
- minimum 6A charge : als er een signaal onder de 6A komt dan stopt de auto met laden. Op bewolkte dagen / bij ander verbruik in huis dan kan het wel eens zijn dat het uitgerekende setpoint onder de 6A komt en dan stopt de auto met laden. Deze setting overruled dat en stuurt altijd minimum 6A.
- Override (switch+slider). Recent er in gezet wegens volgende situatie. Weerbericht geeft een super zonnige dag aan, na de nacht zit de thuisbatterij nog met 60% vol, ik moet om 11u met de auto weg. Met deze setting forceer ik de laadpaal op een vast setpoint (dus ik bypass alle bovenstaande) en kan ik mijn thuisbatterij leegtrekken in de auto. Ondertussen komt de zon op en komt er meer en meer rechtstreeks van de zon. Daarna schakel ik (momenteel nog manueel) de override uit (als thuisbatterij op +-20% zit). Als ik dan vertrek laad de zon eerst de batterij op voor ik naar het net begin te exporteren -> meer eigen verbruik.
- Dan voor het sturing zelf : elke seconde (cron-plus node) neem ik de som van alle verbruikers (huis, warmtepomp, warmtepompboiler). Hierop pas ik smooth node op toe om de minimum waarde van de afgelopen 3 seconden te nemen (sturing loopt dus 3 seconden achter). Dit omdat het aangaan van de koelkast/diepvries een grote piek veroorzaakt en dit anders de laadsnelheid beïnvloed voor de periode van de release delay. Op basis van de toegelaten grid import, actuele zon en gesomde verbruikers bepaal ik een setpoint (eventueel met een minimum van 6A. en daarna wordt dat al dan niet genegeerd door de override. Vervolgens gaat dit door een RBE node (block unless change) die elke 10s gereset wordt. Minstens elke 10s gaat er dus een setpoint naar de paal, tenzij er een verschil in setpoint is, dan gaat het in real time.
Setpoint naar paal sturen
Ik heb gemerkt dat er met mijn settings een verschil van +- 1.5A zit op het setpoint en de uiteindelijke laadsnelheid van de auto (geen idee waar het zit) en dat die rond de 10A verandert. Ik heb dus een function node die daarvoor corrigeert. Vervolgens converteer ik het setpoint ook naar twee unsigned big endian integers (staat in documentatie van Alfen denk ik). De manier waarop is waarschijnlijk niet 100% geoptimaliseerd maar het werkt wel in ieder geval!
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| if (msg.payload < 10) {
charging_offset = 1.7;
} else {
charging_offset = 1.35;
}
const value = msg.payload + charging_offset;
const buf = Buffer.allocUnsafe(4);
buf.writeFloatBE(value);
val1 = buf.readUInt16BE(0);
val2 = buf.readUInt16BE(2);
var msg2 = { payload: [val1, val2] };
return msg2; |
Die node gaat dan naar een modbus write node. De laadpaal is geconfigureerd als volgt :
/f/image/RDYNNwpKD8vmY4bTzQDCXR8d.png?f=fotoalbum_large)
De write node als volgt :
Het eind resultaat is dan dit :
Overigens zijn er nog een aantal settings die ik niet vernoemd heb voor de aansturing van laadsnelheid ivf SOC van thuisbatterij (zodat ik op een bewolkte dag ook mijn thuisbatterij bijlaad), maar ik vermoed dat dat voor 99% van de lezers niet van toepassing is dus ik heb het niet vermeld.
De warmtepompboiler staat er nog niet (0W verbruik in bovenstaande) maar de teller zit er wel klaar voor.
Plan is om tegen de winter een sturing van warmtepomp(boiler) klaar te hebben zodat bij groot verbruik (koken + auto + verwarming), ik selectief zaken tijdelijk kan gaan uit zetten om zo weinig elektriciteit van het net te halen.