Logica KNX per autoconsumo fotovoltaico: Calcolo del surplus e controllo prioritario multi-carico
Massimizzare il rapporto di autoconsumo richiede una logica KNX che monitori continuamente la generazione solare e l'import/export dalla rete, quindi attivi i carichi flessibili in ordine di priorità quando il surplus è disponibile. Questa guida copre l'implementazione completa – dalla disposizione degli ingressi GA e il calcolo del surplus alle tabelle di priorità dei carichi, isteresi, controllo dinamico della corrente EV e immissione zero in rete per evitare penalità di immissione.
Obiettivo di autoconsumo e requisiti di ingresso
Il rapporto di autoconsumo (SCR) è la frazione di produzione fotovoltaica consumata direttamente in loco anziché esportata in rete. Un SCR più alto significa bollette elettriche più basse quando la tariffa di immissione è inferiore alla tariffa di prelievo – come accade nella maggior parte dei paesi europei dal 2022. La logica di autoconsumo KNX migliora l'SCR attivando automaticamente i carichi controllabili quando è disponibile energia solare in eccesso.
Sono necessari due ingressi per una logica di autoconsumo KNX efficace. La potenza di generazione PV dall'inverter tramite Modbus a KNX è opzionale – la lettura della potenza di rete da un contatore intelligente è sufficiente da sola, poiché mostra direttamente il bilancio import/export. Usare la potenza di rete come ingresso principale evita errori di calibrazione dovuti all'autoconsumo dell'inverter.
Layout GA di ingresso per la logica di autoconsumo
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)Tabella delle priorità dei carichi e soglie di attivazione
I carichi controllabili vengono attivati in ordine di priorità all'aumentare del surplus. La tabella delle priorità seguente rappresenta una tipica installazione residenziale con scaldabagno, caricabatterie EV e accumulo a batteria. Regola le soglie in base alle dimensioni specifiche del carico e alla sequenza di attivazione desiderata.
| Priorità | Carico | Soglia di attivazione | Azione KNX |
|---|---|---|---|
| 1 (più basso) | Scaldabagno a immersione 3 kW | 1500W di surplus per 120s | GA '6/1/1' = ON (relay) |
| 2 | Incremento corrente di ricarica EV | 250W aggiuntivi per ogni 1A sopra 6A base | GA '6/1/2' = current value (A) |
| 3 | Carica forzata batteria | Eccedenza dopo saturazione P1+P2 | GA '6/1/3' = ON (Modbus write) |
| 4 (massimo) | Lavastoviglie o lavatrice | Eccedenza di 2000 W per 300 s | GA '6/1/4' = ON (smart socket) |
La priorità 1 si attiva per prima con la soglia di eccedenza più bassa: un elemento riscaldante a immersione da 3 kW per scaldabagno offre un eccellente assorbimento del carico. La ricarica EV a 6 A minimo (1,38 kW monofase) richiede almeno 1,5 kW di eccedenza per avviarsi, poi scala la corrente all'aumentare dell'eccedenza. La carica forzata della batteria funge da contenitore per l'eccedenza rimanente dopo la saturazione degli altri carichi.
Implementazione logica KNX ETS6 con il controllore logico MDT
Il controllore logico MDT SCN-LCRM.01 esegue la logica EibScript direttamente nel dispositivo KNX senza PC o server separato. Per installazioni più semplici, l'Enertex EibPC è un'alternativa che esegue EibScript in un appliance Linux dedicato. Entrambi supportano l'aritmetica sui valori GA KNX, timer e invio condizionale di telegrammi di gruppo.
Controllore logico MDT EibScript – logica di autoconsumo
// 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 chargerCalcolo della corrente di ricarica EV trifase
// 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)Isteresi per evitare il rimbalzo del relè
Senza isteresi, un relè KNX che controlla uno scaldabagno o un caricabatterie EV può accendersi e spegnersi ripetutamente in pochi minuti mentre le nuvole fanno fluttuare la generazione solare attorno alla soglia di attivazione. Ciò riduce la durata del relè e provoca clic udibili nel quadro di distribuzione. L'isteresi a due soglie risolve questo problema.
Implementazione dell'isteresi – soglie di attivazione e disattivazione
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 deactivationControllo immissione zero in rete
In alcuni paesi – inclusa la Spagna (dal 2019 modifica del Regio Decreto 244/2019) e alcune aree DSO italiane – l'esportazione residenziale in rete è penalizzata, limitata a zero o richiede un permesso separato. La logica KNX di immissione zero riduce immediatamente la potenza dei carichi flessibili quando viene rilevata l'esportazione, mantenendo un'immissione quasi nulla senza sprecare energia generata.
Immissione zero in rete – logica KNX
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 regulationsProcedura di test di messa in servizio
La messa in servizio della logica di autoconsumo richiede la simulazione di condizioni di surplus fotovoltaico senza attendere il bel tempo. Il registro di limitazione della potenza attiva dell'inverter consente di ridurre a zero la potenza in uscita tramite software, creando un ambiente di test controllato.
Test di messa in servizio della logica di autoconsumo
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 functionObiettivo del rapporto di autoconsumo
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 come alternativa a MDT
L'Enertex EibPC esegue lo stesso linguaggio EibScript del MDT Logic Controller ma su un dispositivo Linux dedicato con connettività di rete per la registrazione InfluxDB e un dashboard web. Preferito per installazioni che richiedono registrazione e visualizzazione insieme al controllo dell'autoconsumo. Supporta MQTT per i dati dell'inverter senza un gateway Modbus separato.
Hai bisogno di un pannello solare con logica di autoconsumo KNX su misura?
Progettiamo e realizziamo quadri BT con programmi di autoconsumo MDT Logic Controller, gateway Modbus TCP per contatori di rete e inverter, controllo della corrente di ricarica EV e documentazione completa di messa in servizio consegnata collaudata presso il vostro sito.
Richiedi un preventivo →