Je winkelwagen is momenteel leeg!
Automatisch laden op zonnestroom, goedkope uren of maximale efficiëntie
In deze handleiding bouw je een volledig automatisch laadsysteem voor je elektrische auto met Home Assistant, Node-RED, en Alfen Modbus.
De flow bepaalt elke 20 seconden hoe jouw auto het best kan laden — op zonne-energie, tijdens goedkope uren, of via een handmatige override.
De status en beslisgeschiedenis worden automatisch naar Home Assistant gestuurd via MQTT, zodat je op je dashboard in één oogopslag ziet waarom er wel of niet geladen wordt.

Wat dit systeem doet
- 🌞 Laden op zonnestroom (1 fase, min. 6 A) bij teruglevering > 1,4 kW
- 💶 Laden tijdens goedkope uren (3 fasen, 16 A)
- ⚡ Negatieve prijzen of handmatige override → 3 fasen MAX laden
- 🎯 Stoppen bij doel-SOC van de auto
- ⏰ Automatisch plannen om vóór vertrek minimaal SOC te halen
Het systeem werkt volledig lokaal, reageert in realtime op PV-opbrengst en energieprijzen, en gebruikt géén cloudservices.
Gebruikte integraties
| Integratie | Functie |
|---|---|
| home-assistant-alfen-modbus | Communicatie met de Alfen-laadpaal via Modbus TCP of RTU |
| Volkswagen Connect (custom component) | Haalt SOC, target SOC en laadtoestand op van je Volkswagen ID.3 / ID.4 |
| Lovelace HTML Jinja2 Template Card | Toont laadgeschiedenis op het dashboard |
| MQTT (Mosquitto broker) | Stuurt debug-informatie van Node-RED naar Home Assistant |
Home Assistant sensoren
Volkswagen Connect
| Sensor | Functie |
|---|---|
sensor.id3_battery_level | Huidige SOC van de auto |
sensor.id3_battery_target_charge_level | Doel-SOC (instelling vanuit de auto) |
Alfen Modbus
| Sensor | Beschrijving |
|---|---|
sensor.alfen_real_power_sum | Huidig laadvermogen (W) |
sensor.alfen_car_connected | Auto verbonden (true/false) |
select.alfen_usable_phases1 | Fasekeuze (1 Phase / 3 Phases) |
sensor.alfen_charging_mode | Huidige laadmodus |
number.laadpaal_power_connector_max_current_socket_1 | Stelbare laadstroom per socket (A) |
Overige entiteiten
| Sensor | Beschrijving |
|---|---|
sensor.power_verschil | Netto vermogen (+ = verbruik / – = teruglevering) |
sensor.zonneplan_current_electricity_tariff | Actuele stroomprijs (€/kWh) |
sensor.goedkoopste_uren | Lijst met goedkoopste uren (bijv. [00, 01, 02]) |
input_number.ev_min_soc | Minimale SOC vóór vertrek |
input_datetime.ev_target_time | Gewenste vertrektijd |
input_boolean.ev_full_charge | Volledig laden toggle |
input_boolean.laadpaal_override | Handmatige “max-laden” schakelaar |
MQTT-debugsensor
De Node-RED-flow publiceert debug-data elke 20 s naar Home Assistant:
voeg de volgende code toe aan aan je configuration.yaml
mqtt:
sensor:
- name: "EV laadlog debug"
unique_id: ev_laadlog_debug
state_topic: "ev/evdebug/state"
json_attributes_topic: "ev/evdebug/attr"
value_template: "{{ value_json.reason }}"
icon: mdi:ev-station
De state toont de laatste reden (bijv. “Goedkoop uur (minSOC)”),
de attributes bevatten volledige debug-informatie en de laadgeschiedenis.
Node-RED configuratie & aanpassingen
Na het importeren van de flow zie je dat sommige nodes verwijzen naar de originele server van de maker, bijvoorbeeld:
"server": "homeassistent"
Dit is een voorbeeldnaam van de Home Assistant-serverconfiguratie.
Je moet deze aanpassen naar je eigen server.
Zo doe je dat:
- Open in Node-RED een willekeurige Home Assistant node (bijv. api-call-service).
- Klik bij Server op het dropdown-menu.
- Selecteer jouw eigen Home Assistant server (die je eerder hebt ingesteld).
- Klik op Deploy om de wijzigingen op te slaan.
Pas ook de sensoren aan
Controleer in de Function-node of alle sensoren overeenkomen met jouw eigen namen.
Bijvoorbeeld:
const ENT = {
soc: 'sensor.id3_battery_level',
target_soc: 'sensor.id3_battery_target_charge_level',
grid_kw: 'sensor.power_verschil',
price_now: 'sensor.zonneplan_current_electricity_tariff',
...
};
Pas de namen aan als jouw entiteiten andere namen hebben (bijv. sensor.vw_id3_soc in plaats van sensor.id3_battery_level).
Minimale laadstroom & laadpaalinstellingen
- Controleer het minimale laadvermogen van je laadpaal.
Als de ingestelde waarde (meestal 6 A) te laag is, zal de auto niet starten met laden. - In de function-node vind je dit terug als constante:
const MIN_A = 6;Pas deze aan als jouw laadpaal of auto een hoger minimum vereist. - Controleer ook het maximale vermogen per fase (bijv. 16 A) en of jouw paal 1- en 3-fasen ondersteunt.
Deze instellingen worden automatisch verwerkt viaselect.alfen_usable_phases1.
Flowlogica (samenvatting)
| Situatie | Actie |
|---|---|
| Geen auto ingeplugd | Laden uit |
| Doel-SOC bereikt | Laden uit |
| Override actief of prijs < 0 €/kWh | 3Φ MAX laden |
| Goedkoop uur & SOC < target/min | 3Φ MAX laden |
| PV-overschot > 1.4 kW | 1Φ laden, dynamisch 6–16 A |
| Geen PV en geen goedkoop uur | Idle / wachten op trigger |
Elke 20 seconden berekent Node-RED automatisch de volgende stap en publiceert een debugbericht via MQTT naar Home Assistant.
Laadhistorie in Lovelace
Gebruik de Lovelace HTML Jinja2 Template Card om je laadgeschiedenis te tonen:

De card toont beslissingen als:
- “PV-overschot (1Φ 8A)”
- “Goedkoop uur (minSOC)”
- “Doel-SOC (80%) bereikt”
Resultaat
✅ Laden enkel bij zonnestroom of goedkope uren
✅ Altijd minimaal SOC vóór vertrek
✅ Volledige geschiedenis zichtbaar in Lovelace
✅ Automatische 1Φ / 3Φ fasewissel
✅ Debug-informatie via MQTT, geen extra integratie nodig
⚠️ Gebruik op eigen risico
⚠️ Deze automatisering past actief de laadstroom en fase-instelling aan via Modbus.
Controleer altijd of jouw Alfen-laadpaal correct reageert.
Start met lage waarden en test stapsgewijs.
De auteur is niet verantwoordelijk voor schade aan voertuigen of installaties.
Gebruik dit enkel als je bekend bent met Node-RED, Home Assistant en Modbus-configuraties.

Geef een reactie