PV-Eigenverbrauch KNX-Logik: Überschussberechnung und Mehrfachlast-Prioritätssteuerung
Um die Eigenverbrauchsquote zu maximieren, ist eine KNX-Logik erforderlich, die kontinuierlich die Solarerzeugung und den Netzbezug/-einspeisung überwacht und bei Überschuss flexible Lasten in der Prioritätsreihenfolge aktiviert. Dieser Leitfaden behandelt die vollständige Implementierung – vom GA-Eingangslayout und der Überschussberechnung bis hin zu Lastprioritätstabellen, Hysterese, dynamischer EV-Stromsteuerung und Netznulleinspeisung zur Vermeidung von Einspeisevergütungsstrafen.
Zielsetzung des Eigenverbrauchs und Eingangsanforderungen
Die Eigenverbrauchsquote (SCR) ist der Anteil der PV-Erzeugung, der direkt vor Ort verbraucht und nicht ins Netz eingespeist wird. Eine höhere SCR bedeutet niedrigere Stromrechnungen, wenn die Einspeisevergütung unter dem Bezugstarif liegt – was in den meisten europäischen Ländern seit 2022 der Fall ist. Die KNX-Eigenverbrauchslogik verbessert die SCR, indem sie bei Überschuss an Solarstrom automatisch steuerbare Lasten aktiviert.
Für eine effektive KNX-Eigenverbrauchslogik sind zwei Eingänge erforderlich. Die PV-Erzeugungsleistung vom Wechselrichter über Modbus an KNX ist optional – der Netzbezugswert von einem Smart Meter reicht allein aus, da er direkt das Ein-/Ausspeisegleichgewicht anzeigt. Die Verwendung des Netzbezugs als primären Eingang vermeidet Kalibrierungsfehler durch den Eigenverbrauch des Wechselrichters.
Eingangs-GA-Layout für die Eigenverbrauchslogik
GA '6/0/1': PV Generation Power (W)
Source: inverter Modbus → KNX Modbus gateway
DPT: 9.001 (2-byte float, kW) or 13.010 (4-byte, W)
Update: every 10 seconds
Note: optional — grid power GA is sufficient for control
GA '6/0/2': Grid Power (W), signed
Source: Eastron SDM630 Modbus, or SOCOMEC Countis E14,
or inverter internal meter via Modbus
DPT: 9.001 (kW, signed: positive = import, negative = export)
Update: every 10 seconds
This is the PRIMARY control input
Surplus calculation:
When GA '6/0/2' < 0: abs(value) = export power = surplus
When GA '6/0/2' > 0: building is importing = no surplus
Smart meter options:
Eastron SDM630: Modbus TCP via RS485 converter
Register 53 (total import/export W, float32, FC4)
SOCOMEC Countis E14: Modbus TCP port 502
Register 0x0034 (active power signed, int32)
Huawei SUN2000 internal meter: register 32261 (grid power)Lastprioritätstabelle und Aktivierungsschwellen
Steuerbare Lasten werden mit zunehmendem Überschuss in Prioritätsreihenfolge aktiviert. Die folgende Prioritätstabelle repräsentiert eine typische Wohninstallation mit Warmwasserbereiter, EV-Ladegerät und Batteriespeicher. Passen Sie die Schwellenwerte an Ihre spezifischen Lastgrößen und die gewünschte Aktivierungsreihenfolge an.
| Priorität | Last | Aktivierungsschwelle | KNX-Aktion |
|---|---|---|---|
| 1 (niedrigste) | Warmwasser-Tauchsieder 3 kW | 1500W Überschuss für 120s | GA '6/1/1' = ON (relay) |
| 2 | EV-Ladestromerhöhung | 250W zusätzlich pro 1A über 6A Basis | GA '6/1/2' = current value (A) |
| 3 | Batterie-Zwangsladung | Überschuss nach Sättigung von P1+P2 | GA '6/1/3' = ON (Modbus write) |
| 4 (höchste) | Geschirrspüler oder Waschmaschine | 2000 W Überschuss für 300 s | GA '6/1/4' = ON (smart socket) |
Priorität 1 wird zuerst mit der niedrigsten Überschussschwelle aktiviert – ein 3 kW Tauchsieder-Wassererwärmer bietet eine hervorragende Lastaufnahme. EV-Ladung bei mindestens 6 A (1,38 kW einphasig) erfordert mindestens 1,5 kW Überschuss zum Starten und skaliert dann den Strom mit steigendem Überschuss. Erzwungene Batterieladung dient als Auffangbecken für verbleibenden Überschuss, nachdem andere Lasten gesättigt sind.
KNX ETS6 Logikimplementierung mit MDT Logic Controller
Der MDT Logic Controller SCN-LCRM.01 führt EibScript-Logik direkt im KNX-Gerät aus, ohne separaten PC oder Server. Für einfachere Installationen ist der Enertex EibPC eine Alternative, der EibScript in einem dedizierten Linux-Gerät ausführt. Beide unterstützen Arithmetik auf KNX-GA-Werten, Timer und bedingtes Senden von Gruppentelegrammen.
MDT Logic Controller EibScript – Eigenverbrauchslogik
// EibScript runs on MDT SCN-LCRM.01
// GA '6/0/2' = grid power (kW, signed float, DPT 9.001)
// Negative = export (surplus available)
ON CHANGE OF GA("6/0/2"):
grid_kw = READ GA("6/0/2")
surplus_w = grid_kw * -1000 // convert to positive W if exporting
// Priority 1: water heater (3 kW, threshold 1.5 kW surplus)
IF surplus_w > 1500 AND TIMER_ELAPSED("wh_timer", 120) THEN
SEND GA("6/1/1") = TRUE // water heater relay ON
TIMER_RESET("wh_timer")
ELSE IF surplus_w < 1000 AND TIMER_ELAPSED("wh_off", 60) THEN
SEND GA("6/1/1") = FALSE // deactivate with hysteresis
TIMER_RESET("wh_off")
END IF
// Priority 2: EV charger current
IF surplus_w > 1500 THEN
ev_amps = MAX(6, MIN(32, surplus_w / 230)) // single-phase
SEND GA("6/1/2") = ev_amps // DPT 5.010 unsigned byte (amps)
ELSE IF surplus_w < 1000 THEN
SEND GA("6/1/2") = 0 // stop EV chargerDreiphasige EV-Ladestromberechnung
// Three-phase EV charger (e.g. Alfen Eve, ABB Terra AC)
// Three-phase power: P = V * I * sqrt(3) ≈ I * 690W per amp
ev_amps_3ph = MAX(6, MIN(32, surplus_w / 690))
SEND GA("6/1/2") = ev_amps_3ph
// GA '6/1/2' → KNX Modbus gateway write:
// Alfen Eve register 316: max charge current (A, uint16)
// EVBox Elvi register 111: current limit (A, uint16)
// Weinzierl 5010 write task: GA '6/1/2' triggers Modbus FC6
// Update every 30 seconds — smooth out cloud-induced fluctuations
// Single-phase minimum: 6A = 1.38 kW
// Three-phase minimum: 6A = 4.14 kW (higher surplus required)Hysterese zur Vermeidung von Relais-Prellen
Ohne Hysterese kann ein KNX-Relais, das einen Wassererwärmer oder EV-Lader steuert, innerhalb von Minuten wiederholt ein- und ausschalten, wenn Wolken die Solarerzeugung um die Aktivierungsschwelle schwanken lassen. Dies verkürzt die Relaislebensdauer und verursacht hörbares Klicken im Verteiler. Die Zwei-Schwellen-Hysterese löst dieses Problem.
Hysterese-Implementierung – Aktivierungs- und Deaktivierungsschwellen
Two-threshold hysteresis example (water heater):
Activate threshold: surplus > 1500W for 120 seconds
Deactivate threshold: surplus < 1000W for 60 seconds
This means:
- Load only activates if surplus stays above 1500W for 2 minutes
- Load only deactivates if surplus drops below 1000W for 60s
- 500W hysteresis band prevents rapid cycling
EibScript timer-based implementation:
// On each GA '6/0/2' update:
IF surplus_w > 1500 THEN
TIMER_START("wh_on_timer", 120) // 120s countdown
ELSE
TIMER_RESET("wh_on_timer") // reset if drops below threshold
END IF
IF TIMER_FIRED("wh_on_timer") THEN
SEND GA("6/1/1") = TRUE
END IF
// Mirror logic for deactivation with 1000W threshold and 60s timer
Real-world effect: a passing cloud lasting 90 seconds
does not cycle the water heater relay
Solar must be consistently low for 60s before deactivationNetz-Nulleinspeisungsregelung
In einigen Ländern – darunter Spanien (seit der Änderung des Königlichen Dekrets 244/2019 im Jahr 2019) und einige italienische VNB-Gebiete – wird die Netzeinspeisung aus Wohngebäuden bestraft, auf Null begrenzt oder erfordert eine separate Genehmigung. Die KNX-Netz-Null-Logik reduziert sofort die Last flexibler Verbraucher, wenn eine Einspeisung erkannt wird, und hält so eine nahezu Nulleinspeisung aufrecht, ohne erzeugte Energie zu verschwenden.
Netz-Nulleinspeisung – KNX-Logik
Grid zero mode: GA '6/2/0' = TRUE (enabled by time schedule
or manually from touchpanel)
ON CHANGE OF GA("6/0/2") WHEN READ GA("6/2/0") = TRUE:
grid_w = READ GA("6/0/2") * 1000 // convert kW to W
IF grid_w < -100 THEN // exporting > 100W
// Step 1: reduce EV charger current by 1A
ev_curr = READ GA("6/1/2")
IF ev_curr > 6 THEN
SEND GA("6/1/2") = ev_curr - 1
ELSE IF ev_curr <= 6 THEN
// Step 2: switch off water heater
SEND GA("6/1/1") = FALSE
END IF
ELSE IF grid_w > 200 THEN // importing — can increase
// Re-enable water heater if surplus appeared
SEND GA("6/1/1") = TRUE
// Increase EV charger current
ev_curr = READ GA("6/1/2")
IF ev_curr < 32 THEN
SEND GA("6/1/2") = ev_curr + 1
END IF
END IF
Response time: under 15 seconds (one Modbus poll cycle)
Suitable for compliance with zero-export regulationsInbetriebnahmeprüfverfahren
Die Inbetriebnahme der Eigenverbrauchslogik erfordert die Simulation von PV-Überschussbedingungen, ohne auf sonniges Wetter warten zu müssen. Das Register für die Wirkleistungsbegrenzung des Wechselrichters ermöglicht es, die Ausgangsleistung softwaregesteuert auf Null zu reduzieren und so eine kontrollierte Testumgebung zu schaffen.
Inbetriebnahmeprüfung der Eigenverbrauchslogik
Preparation:
Disconnect EV charger and water heater from load circuit
(or use test resistive loads that can tolerate cycling)
Simulate surplus — inverter active power limit:
Fronius GEN24: Modbus write reg 40233 = 0 (limit to 0W)
Activation: write reg 40236 = 1 (enable limit function)
SolarEdge: app → Advanced → Active Power Limit (installer only)
Huawei SUN2000: Modbus write reg 40119 = power limit %
With inverter output limited to 0W: building imports from grid
Grid power GA '6/0/2' shows positive value (import)
No surplus → loads should be OFF — verify GA '6/1/1' = OFF
Re-enable inverter output:
Fronius: write reg 40233 = 100 (100% = no limit)
Grid power GA '6/0/2' goes negative (export) = surplus
Verify load activation sequence:
At 1500W surplus for 120s: GA '6/1/1' should go TRUE
At 3000W surplus: GA '6/1/2' should show amps value
ETS6 Group Monitor confirms GA changes in real time
Re-enable inverter fully when test complete:
Write active power limit back to 100% or disable limit functionEigenverbrauchsanteil-Zielwert
A well-configured KNX self-consumption system with water heater, EV charger, and battery storage typically achieves 70-85% SCR for a family home in Central Europe. Without flexible load control, SCR is typically 30-40% — the same hardware but without the KNX logic layer. Log GA '6/0/1' and '6/0/2' to InfluxDB for monthly SCR calculation.
EibPC als Alternative zu MDT
Der Enertex EibPC verwendet dieselbe EibScript-Sprache wie der MDT Logic Controller, läuft jedoch auf einem dedizierten Linux-Gerät mit Netzwerkanbindung für InfluxDB-Logging und Web-Dashboard. Bevorzugt für Installationen, die neben der Eigenverbrauchssteuerung auch Logging und Visualisierung erfordern. Unterstützt MQTT für Wechselrichterdaten ohne separates Modbus-Gateway.
Benötigen Sie eine Solaranlage mit KNX-Eigenverbrauchslogik nach Maß?
Wir planen und bauen NS-Verteiler mit MDT Logic Controller Eigenverbrauchsprogrammen, Modbus-TCP-Gateways für Netz- und Wechselrichter, EV-Ladestromregelung und vollständiger Inbetriebnahmedokumentation, getestet an Ihrem Standort.
Angebot anfordern →