Solar · Autokonsumpcja · Logika KNX · Ładowarka EV · Zero w sieci · 10 min czytania

Logika KNX autokonsumpcji PV: Obliczanie nadwyżki i priorytetowe sterowanie wieloma odbiorami

Maksymalizacja wskaźnika autokonsumpcji wymaga logiki KNX, która stale monitoruje generację słoneczną i pobór/dostawę z sieci, a następnie aktywuje elastyczne odbiory w kolejności priorytetów, gdy dostępna jest nadwyżka. Ten przewodnik obejmuje pełną implementację – od układu wejść GA i obliczania nadwyżki, przez tabele priorytetów odbiorów, histerezę, dynamiczne sterowanie prądem EV, aż po kontrolę zerowego wstrzykiwania do sieci w celu uniknięcia kar za wprowadzanie energii.

Cel autokonsumpcji i wymagania wejściowe

Wskaźnik autokonsumpcji (SCR) to część produkcji PV zużywana bezpośrednio na miejscu, a nie eksportowana do sieci. Wyższy SCR oznacza niższe rachunki za prąd, gdy taryfa feed-in jest niższa od stawki zakupu – co ma miejsce w większości krajów europejskich od 2022 roku. Logika autokonsumpcji KNX poprawia SCR poprzez automatyczne aktywowanie sterowalnych odbiorników, gdy dostępna jest nadwyżka energii słonecznej.

Do skutecznej logiki autokonsumpcji KNX wymagane są dwa wejścia. Moc generacji PV z falownika przez Modbus do KNX jest opcjonalna – odczyt mocy sieciowej z licznika inteligentnego jest sam w sobie wystarczający, ponieważ bezpośrednio pokazuje bilans importu/eksportu. Użycie mocy sieciowej jako głównego wejścia eliminuje błędy kalibracji wynikające z autokonsumpcji falownika.

Układ GA wejść dla logiki autokonsumpcji

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)

Tabela priorytetów odbiorników i progi aktywacji

Sterowalne odbiorniki są aktywowane według priorytetu w miarę wzrostu nadwyżki. Poniższa tabela priorytetów przedstawia typową instalację mieszkaniową z podgrzewaczem wody, ładowarką EV i magazynem bateryjnym. Dostosuj progi do swoich konkretnych rozmiarów odbiorników i pożądanej sekwencji aktywacji.

PriorytetOdbiornikPróg aktywacjiAkcja KNX
1 (najniższy)Grzałka zanurzeniowa 3 kW1500W nadwyżki przez 120sGA '6/1/1' = ON (relay)
2Zwiększenie prądu ładowania EV250W dodatkowo na każde 1A powyżej 6A podstawyGA '6/1/2' = current value (A)
3Wymuszone ładowanie akumulatoraNadwyżka po nasyceniu P1+P2GA '6/1/3' = ON (Modbus write)
4 (najwyższy)Zmywarka lub pralkaNadwyżka 2000 W przez 300 sGA '6/1/4' = ON (smart socket)

Priorytet 1 aktywuje się jako pierwszy przy najniższym progu nadwyżki – 3 kW grzałka zanurzeniowa podgrzewacza wody zapewnia doskonałą absorpcję obciążenia. Ładowanie EV przy minimalnym prądzie 6 A (1,38 kW jednofazowo) wymaga co najmniej 1,5 kW nadwyżki do uruchomienia, a następnie skaluje prąd wraz ze wzrostem nadwyżki. Wymuszone ładowanie akumulatora działa jako zbieracz pozostałej nadwyżki po nasyceniu innych odbiorników.

Implementacja logiki KNX ETS6 z kontrolerem MDT Logic Controller

MDT Logic Controller SCN-LCRM.01 wykonuje logikę EibScript bezpośrednio w urządzeniu KNX bez potrzeby stosowania osobnego komputera lub serwera. Dla prostszych instalacji alternatywą jest Enertex EibPC, który uruchamia EibScript na dedykowanym urządzeniu Linux. Oba obsługują arytmetykę na wartościach GA KNX, timery i warunkowe wysyłanie telegramów grupowych.

MDT Logic Controller EibScript – logika autokonsumpcji

// 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 charger

Obliczanie prądu ładowania EV dla trzech faz

// 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)

Histereza zapobiegająca drganiom przekaźnika

Bez histerezy przekaźnik KNX sterujący podgrzewaczem wody lub ładowarką EV może włączać się i wyłączać wielokrotnie w ciągu minut, gdy chmury powodują wahania generacji energii słonecznej wokół progu aktywacji. Skraca to żywotność przekaźnika i powoduje słyszalne kliknięcia w rozdzielnicy. Histereza dwuprogowa rozwiązuje ten problem.

Implementacja histerezy – progi aktywacji i dezaktywacji

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 deactivation

Sterowanie zerowym eksportem do sieci

W niektórych krajach – w tym w Hiszpanii (od 2019 r. modyfikacja Dekretu Królewskiego 244/2019) i niektórych obszarach włoskich DSO – eksport energii z gospodarstw domowych do sieci jest karany, ograniczony do zera lub wymaga osobnego pozwolenia. Logika KNX grid-zero natychmiast zmniejsza moc elastycznych odbiorników po wykryciu eksportu, utrzymując prawie zerowy eksport bez marnowania wyprodukowanej energii.

Zerowy eksport do sieci – logika 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 regulations

Procedura testu uruchomieniowego

Uruchomienie logiki autokonsumpcji wymaga symulacji warunków nadwyżki PV bez czekania na słoneczną pogodę. Rejestr ograniczenia mocy czynnej falownika pozwala na programowe ograniczenie mocy wyjściowej do zera, tworząc kontrolowane środowisko testowe.

Test uruchomieniowy logiki autokonsumpcji

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 function

Docelowy wskaźnik autokonsumpcji

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 jako alternatywa dla MDT

Enertex EibPC używa tego samego języka EibScript co MDT Logic Controller, ale działa na dedykowanym urządzeniu Linux z łącznością sieciową do logowania InfluxDB i pulpitu nawigacyjnego. Preferowany w instalacjach wymagających logowania i wizualizacji wraz z kontrolą autokonsumpcji. Obsługuje MQTT do danych z falownika bez osobnej bramki Modbus.

Potrzebujesz panelu słonecznego z logiką autokonsumpcji KNX wykonaną na zamówienie?

Projektujemy i budujemy rozdzielnice niskiego napięcia z programami autokonsumpcji MDT Logic Controller, bramkami Modbus TCP dla liczników sieciowych i falowników, sterowaniem prądem ładowania EV oraz pełną dokumentacją uruchomieniową dostarczaną przetestowaną na miejsce.

Poproś o wycenę →
Ładowanie...
Powrót do góry