Solar · Autoconsumo · Lógica KNX · Cargador VE · Inyección cero · 10 min de lectura

Lógica KNX de autoconsumo fotovoltaico: Cálculo del excedente y control prioritario de múltiples cargas

Maximizar la tasa de autoconsumo requiere una lógica KNX que monitorice continuamente la generación solar y la importación/exportación de la red, y luego active las cargas flexibles en orden de prioridad cuando haya excedente disponible. Esta guía cubre la implementación completa – desde el diseño de las GA de entrada y el cálculo del excedente hasta las tablas de prioridad de cargas, histéresis, control dinámico de corriente del VE y control de inyección cero a la red para evitar penalizaciones por vertido.

Objetivo de autoconsumo y requisitos de entrada

La tasa de autoconsumo (SCR) es la fracción de la generación fotovoltaica consumida directamente en el sitio en lugar de exportada a la red. Un SCR más alto significa facturas de electricidad más bajas cuando la tarifa de alimentación es inferior a la tarifa de importación minorista – como ocurre en la mayoría de los países europeos desde 2022. La lógica de autoconsumo KNX mejora el SCR activando automáticamente cargas controlables cuando hay excedente de energía solar disponible.

Se requieren dos entradas para una lógica de autoconsumo KNX efectiva. La potencia de generación fotovoltaica del inversor a través de Modbus a KNX es opcional – la lectura de potencia de red de un contador inteligente es suficiente por sí sola, ya que muestra directamente el balance de importación/exportación. Usar la potencia de red como entrada principal evita errores de calibración por autoconsumo del inversor.

Disposición de GA de entrada para la lógica de 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)

Tabla de prioridad de cargas y umbrales de activación

Las cargas controlables se activan en orden de prioridad a medida que aumenta el excedente. La tabla de prioridad siguiente representa una instalación residencial típica con calentador de agua, cargador de VE y almacenamiento en batería. Ajuste los umbrales según los tamaños de carga específicos y la secuencia de activación deseada.

PrioridadCargaUmbral de activaciónAcción KNX
1 (más bajo)Calentador de inmersión de 3 kW1500W de excedente durante 120sGA '6/1/1' = ON (relay)
2Aumento de corriente de carga VE250W adicionales por cada 1A por encima de 6A baseGA '6/1/2' = current value (A)
3Carga forzada de bateríaExcedente tras saturación de P1+P2GA '6/1/3' = ON (Modbus write)
4 (más alto)Lavavajillas o lavadoraExcedente de 2000 W durante 300 sGA '6/1/4' = ON (smart socket)

La prioridad 1 se activa primero con el umbral de excedente más bajo: un elemento calefactor de inmersión de 3 kW para calentador de agua proporciona una excelente absorción de carga. La carga de EV a 6 A mínimo (1,38 kW monofásica) requiere al menos 1,5 kW de excedente para arrancar, luego escala la corriente a medida que aumenta el excedente. La carga forzada de la batería actúa como un colector para el excedente restante después de saturar otras cargas.

Implementación de lógica KNX ETS6 con el controlador lógico MDT

El controlador lógico MDT SCN-LCRM.01 ejecuta la lógica EibScript directamente en el dispositivo KNX sin necesidad de un PC o servidor separado. Para instalaciones más simples, el Enertex EibPC es una alternativa que ejecuta EibScript en un dispositivo Linux dedicado. Ambos soportan aritmética sobre valores GA KNX, temporizadores y envío condicional de telegramas de grupo.

Controlador lógico MDT EibScript – lógica de 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 charger

Cálculo de corriente de carga EV trifásica

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

Histéresis para evitar el rebote del relé

Sin histéresis, un relé KNX que controla un calentador de agua o un cargador EV puede encenderse y apagarse repetidamente en minutos mientras las nubes hacen fluctuar la generación solar alrededor del umbral de activación. Esto reduce la vida útil del relé y provoca clics audibles en el cuadro de distribución. La histéresis de dos umbrales resuelve este problema.

Implementación de histéresis – umbrales de activación y desactivación

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

Control de inyección cero a red

En algunos países – incluida España (desde la modificación del Real Decreto 244/2019 en 2019) y algunas áreas de DSO italianas – la exportación residencial a la red está penalizada, limitada a cero o requiere un permiso separado. La lógica KNX de inyección cero reduce inmediatamente la potencia de las cargas flexibles cuando se detecta exportación, manteniendo una inyección casi nula sin desperdiciar energía generada.

Inyección cero a red – lógica 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

Procedimiento de prueba de puesta en marcha

La puesta en marcha de la lógica de autoconsumo requiere simular condiciones de excedente fotovoltaico sin esperar al buen tiempo. El registro de limitación de potencia activa del inversor permite reducir la salida a cero mediante software, creando un entorno de prueba controlado.

Prueba de puesta en marcha de la lógica de 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 function

Objetivo de tasa de 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 como alternativa a MDT

El Enertex EibPC ejecuta el mismo lenguaje EibScript que el MDT Logic Controller pero en un dispositivo Linux dedicado con conectividad de red para registro en InfluxDB y panel web. Preferido para instalaciones que requieren registro y visualización junto con el control de autoconsumo. Soporta MQTT para datos del inversor sin una puerta de enlace Modbus separada.

¿Necesita un panel solar con lógica de autoconsumo KNX hecha a medida?

Diseñamos y construimos cuadros de BT con programas de autoconsumo MDT Logic Controller, pasarelas Modbus TCP para contadores de red e inversores, control de corriente de carga de VE y documentación completa de puesta en marcha entregada probada en su sitio.

Solicitar presupuesto →
Cargando...
Volver arriba