Solaire · Autoconsommation · Logique KNX · Chargeur VE · Injection zéro · 10 min de lecture

Logique KNX d'autoconsommation PV : Calcul du surplus et contrôle prioritaire multi-charges

Maximiser le taux d'autoconsommation nécessite une logique KNX qui surveille en continu la production solaire et l'import/export réseau, puis active les charges flexibles par ordre de priorité lorsque le surplus est disponible. Ce guide couvre l'implémentation complète – de la disposition des GA d'entrée et du calcul du surplus aux tableaux de priorité des charges, à l'hystérésis, au contrôle dynamique du courant VE et à l'injection zéro réseau pour éviter les pénalités de réinjection.

Objectif d'autoconsommation et exigences d'entrée

Le taux d'autoconsommation (SCR) est la fraction de la production PV consommée directement sur site plutôt qu'exportée vers le réseau. Un SCR plus élevé signifie des factures d'électricité plus faibles lorsque le tarif de rachat est inférieur au tarif d'achat au détail – ce qui est le cas dans la plupart des pays européens depuis 2022. La logique d'autoconsommation KNX améliore le SCR en activant automatiquement les charges contrôlables lorsque l'énergie solaire excédentaire est disponible.

Deux entrées sont nécessaires pour une logique d'autoconsommation KNX efficace. La puissance de production PV de l'onduleur via Modbus vers KNX est facultative – la lecture de la puissance réseau d'un compteur intelligent est suffisante en elle-même, car elle montre directement le bilan import/export. L'utilisation de la puissance réseau comme entrée principale évite les erreurs d'étalonnage dues à l'autoconsommation de l'onduleur.

Disposition des GA d'entrée pour la logique d'autoconsommation

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)

Tableau de priorité des charges et seuils d'activation

Les charges contrôlables sont activées par ordre de priorité à mesure que le surplus augmente. Le tableau de priorité ci-dessous représente une installation résidentielle typique avec un chauffe-eau, un chargeur VE et un stockage par batterie. Ajustez les seuils en fonction de vos tailles de charge spécifiques et de la séquence d'activation souhaitée.

PrioritéChargeSeuil d'activationAction KNX
1 (le plus bas)Chauffe-eau à immersion 3 kW1500W de surplus pendant 120sGA '6/1/1' = ON (relay)
2Augmentation du courant de charge VE250W supplémentaires par 1A au-dessus de la base 6AGA '6/1/2' = current value (A)
3Charge forcée de la batterieExcédent après saturation de P1+P2GA '6/1/3' = ON (Modbus write)
4 (le plus élevé)Lave-vaisselle ou lave-lingeExcédent de 2000 W pendant 300 sGA '6/1/4' = ON (smart socket)

La priorité 1 s'active en premier avec le seuil de surplus le plus bas – un élément chauffant immergé de 3 kW pour chauffe-eau offre une excellente absorption de charge. La recharge EV à 6 A minimum (1,38 kW monophasé) nécessite au moins 1,5 kW de surplus pour démarrer, puis le courant augmente avec le surplus. La charge forcée de la batterie agit comme un réceptacle pour le surplus restant après saturation des autres charges.

Implémentation logique KNX ETS6 avec le contrôleur logique MDT

Le contrôleur logique MDT SCN-LCRM.01 exécute la logique EibScript directement dans le périphérique KNX sans PC ni serveur séparé. Pour les installations plus simples, l'Enertex EibPC est une alternative qui exécute EibScript dans un appareil Linux dédié. Les deux prennent en charge l'arithmétique sur les valeurs GA KNX, les temporisateurs et l'envoi conditionnel de télégrammes de groupe.

Contrôleur logique MDT EibScript – logique d'autoconsommation

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

Calcul du courant de charge EV triphasé

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

Hystérésis pour éviter le pompage du relais

Sans hystérésis, un relais KNX commandant un chauffe-eau ou un chargeur EV peut s'allumer et s'éteindre à plusieurs reprises en quelques minutes lorsque les nuages font fluctuer la production solaire autour du seuil d'activation. Cela réduit la durée de vie du relais et provoque des clics audibles dans le tableau de distribution. L'hystérésis à deux seuils résout ce problème.

Implémentation de l'hystérésis – seuils d'activation et de désactivation

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

Contrôle d'injection zéro réseau

Dans certains pays – dont l'Espagne (depuis la modification du décret royal 244/2019 en 2019) et certaines zones de gestionnaires de réseau de distribution italiens – l'exportation résidentielle vers le réseau est pénalisée, plafonnée à zéro ou nécessite un permis séparé. La logique KNX d'injection zéro réduit immédiatement la puissance des charges flexibles lorsque l'exportation est détectée, maintenant une injection quasi nulle sans gaspiller l'énergie produite.

Injection zéro réseau – logique 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

Procédure de test de mise en service

La mise en service de la logique d'autoconsommation nécessite de simuler des conditions de surplus PV sans attendre le beau temps. Le registre de limitation de puissance active de l'onduleur permet de réduire la puissance de sortie à zéro par logiciel, créant ainsi un environnement de test contrôlé.

Test de mise en service de la logique d'autoconsommation

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

Taux d'autoconsommation cible

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 comme alternative à MDT

L'Enertex EibPC exécute le même langage EibScript que le MDT Logic Controller mais sur un appareil Linux dédié avec connectivité réseau pour la journalisation InfluxDB et un tableau de bord web. Préféré pour les installations nécessitant journalisation et visualisation en plus du contrôle de l'autoconsommation. Prend en charge MQTT pour les données de l'onduleur sans passerelle Modbus séparée.

Besoin d'un panneau solaire avec logique d'autoconsommation KNX sur mesure ?

Nous concevons et fabriquons des tableaux BT avec des programmes d'autoconsommation MDT Logic Controller, des passerelles Modbus TCP pour les compteurs réseau et onduleurs, le contrôle du courant de charge des VE, et une documentation complète de mise en service livrée testée sur votre site.

Demander un devis →
Loading...
Back to top