Solar PV + KNX Self-consumption Optimisation
Use real-time Fronius or SMA inverter Modbus data to dispatch flexible loads — EV charger, hot water, pool — to peak solar hours. Maximum self-consumption without a battery.
Why self-consumption optimisation?
In most EU countries, electricity exported to the grid earns far less than the avoided import cost:
| Country | Grid import (2024) | Feed-in tariff | Self-consumption value |
|---|---|---|---|
| Germany | €0.30/kWh | €0.08/kWh | 3.75× more valuable |
| France | €0.23/kWh | €0.10/kWh | 2.3× more valuable |
| Latvia | €0.22/kWh | €0.05/kWh | 4.4× more valuable |
| Poland | €0.18/kWh | €0.04/kWh | 4.5× more valuable |
| Netherlands | €0.29/kWh | Net metering (1:1) | 1:1 (net metering) |
Shifting a flexible load (EV charger, hot water tank, pool pump) from evening grid power to midday solar surplus can save €200–600/year for a 10kWp system — without any battery investment.
Reading solar data via Modbus
Key Modbus registers for common EU inverters:
Fronius GEN24
PV power: reg 499 (W) | Grid exchange: reg 502 (W, neg=export) | House load: reg 527 (W) | Battery SoC: reg 1 (%)
SMA Sunny Boy/Tripower
PV power: reg 30773 (W) | Grid export: reg 30867 (W) | Total generation: reg 30529 (Wh)
Sungrow SG5/10RT
PV power: reg 5016 (W) | Grid power: reg 5082 (W, neg=export) | Battery SoC: reg 13022 (%)
Huawei SUN2000
PV power: reg 32080 (W) | Grid power: reg 37113 (W) | Battery SoC: reg 37004 (%)
⚠️ Register addresses vary between firmware versions. Always download the specific Modbus register map for your inverter's firmware version from the manufacturer portal before integration.
Surplus calculation and dispatch logic
Surplus dispatch logic (KNX or Home Assistant)
Every 30 seconds:
pv_power = read Modbus reg 499 (W)
grid_power = read Modbus reg 502 (W) ← neg = export
surplus = pv_power + grid_power ← when neg: export = surplus
5-minute rolling average of surplus (anti-cloud-flicker):
avg_surplus_5min = average(surplus_history)
Priority dispatch (latching logic):
if avg_surplus_5min > 2500W AND ev_charger == OFF:
→ START EV charger (Easee API / KNX relay)
if avg_surplus_5min > 2500W AND ev_charger == ON:
→ adjust current = min(32A, surplus / 230 / 3)
if avg_surplus_5min > 5000W AND hot_water == OFF:
→ switch hot water immersion ON (KNX 230V relay)
if avg_surplus_5min < 800W for 5 min:
→ STOP EV charger
→ STOP hot water immersionThe 5-minute rolling average is critical — without it, every cloud passing over the panels would cause loads to cycle on and off. Loads should only switch when surplus is stable.
Hot water as a free solar battery
200L electric hot water tank
- • 3kW immersion element
- • Heated 45°C → 70°C = ~5.8 kWh stored
- • Equivalent to a medium home battery
- • Cost: €0 (already installed)
- • KNX control: one 230V relay output
- • Overheat protection: KNX temperature sensor
Pool pump (500W–2kW)
- • Run 6–8 hours per day in summer
- • Solar hours: 10:00–16:00 ideal window
- • KNX time window: only run when PV surplus > 1000W
- • Daily runtime counter ensures minimum filtration
- • Easy win: shift €200/year of pool pump cost to solar
Self-consumption rate comparison
| Strategy | Self-consumption rate | Investment |
|---|---|---|
| No optimisation (fixed loads) | 20–30% | €0 |
| Fixed time window (10am–2pm) | 35–50% | €0 |
| KNX/HA active Modbus dispatch | 55–70% | €500–1,500 (gateway) |
| + 5 kWh battery storage | 70–85% | +€4,000–6,000 |
| + 10 kWh battery | 85–95% | +€8,000–12,000 |
Best ROI: KNX/HA active Modbus dispatch is the most cost-effective step before batteries — it adds 25–40% self-consumption at a fraction of battery cost, typically paying back in 2–4 years.
Solar + KNX panel integration
We design panels with Fronius and SMA Modbus gateways pre-configured for surplus dispatch — EV charger control, hot water relay, and pool pump automation.
Request a quote →