KNX#Energy#Demand Response#Load Management

KNX Load Shedding: Dynamic Demand Response for Commercial Buildings

SmartMāja Engineering Team·2026-06-24·9 min read

Peak demand charges — the component of commercial electricity bills based on maximum kW demand (typically the highest 15-minute or 30-minute average demand in the billing month) — can represent 20-35% of total electricity costs for commercial buildings in many European countries. A KNX load shedding system uses real-time power measurement (via Modbus energy meters read by a WAGO controller or similar gateway) and automated KNX relay and actuator commands to curtail non-essential loads before demand peaks trigger a higher demand tariff band. This approach is increasingly combined with dynamic pricing signals from utilities via Tibber, Octopus Agile, or ENTSOE APIs, processed through Home Assistant.

Understanding demand charges

Demand tariffs (German Leistungspreis, UK maximum demand charge, French TURPE demand component) charge for the maximum power drawn from the grid during a billing period — not just energy consumed. Typical structure: monthly demand charge = peak kW × rate (e.g. €5-15/kW/month). A building with a 200kW peak demand pays €1,000-3,000/month in demand charges alone. If the same building had curtailed loads during peak periods and limited demand to 150kW, savings = 50kW × €10 = €500/month = €6,000/year. The demand measurement window (typically 15 or 30 minutes, integrated average) means brief spikes above the limit cost nothing — sustained peaks above the threshold are what trigger higher charges. KNX load shedding targets sustained loads, not momentary switching inrush.

Real-time demand measurement via KNX Modbus

Carlo Gavazzi EM340 or Eastron SDM630 at main incomer measures total building power (W) every 10 seconds. WAGO 750-893 CODESYS program: reads active power register every 10 seconds, calculates 15-minute rolling average demand (sliding window, 90 samples). When rolling average exceeds threshold 1 (e.g. 85% of demand limit): send pre-alert KNX telegram to room display and BMS alarm. When rolling average exceeds threshold 2 (95% of demand limit): trigger load shedding sequence. KNX group addresses: GA 5/9/0 = current building power kW (DPT 9.002), GA 5/9/1 = 15-minute average demand (DPT 9.002), GA 5/9/5 = load shed alert binary (DPT 1.001). WAGO writes these every 10 seconds — KNX visualisation shows live demand trend.

Load shedding priority tiers

Tier 1 — Immediate shed (within 60 seconds): EV chargers (reduce current setpoint via Modbus to minimum 6A per charger). Rationale: largest controllable single loads, can be reduced without occupant impact. EV charger OCPP backend (or Modbus current setpoint write) reduces charger current via KNX relay trigger signal. Tier 2 — Comfort shed (within 3 minutes): HVAC setpoint adjustment — raise cooling setpoint by 2°C, lower heating setpoint by 2°C. KNX PI controller receives new setpoint via group address write — compressor load reduces as building thermal mass buffers the change. Tier 3 — Non-critical shed (within 5 minutes): disable electric floor heating in non-occupied zones (KNX presence detector confirms vacant rooms), disable decorative lighting circuits (façade uplighting, corridor feature lighting), switch off water heater immersion (if peak tariff hours coincide with pre-heating schedule). Tier 4 — Last resort: notify BMS operator — manual decision to reduce operating hours or postpone equipment operation.

CODESYS demand response program structure

WAGO CODESYS program flow: Task 1 (every 10s): read EM340 power → update ring buffer (90 samples × 10s = 15 minutes) → calculate rolling average. Task 2 (every 60s): if average > threshold_2 AND NOT shedding: call initiate_load_shed(). initiate_load_shed(): write EV_charger_reduce GA → wait 30s → read power again → if still above threshold: write HVAC_setpoint_raise GA → wait 120s → if still above: write floor_heating_off GA. Resume function: when rolling average drops below threshold_1 for 3 consecutive minutes → reverse all shed commands in reverse tier order (floor heating first, then HVAC setpoint restore, then EV chargers to full). Log to WAGO retain memory: shed events with timestamp, trigger power, duration, estimated energy shift.

Dynamic pricing integration via Home Assistant

For installations on dynamic tariff (Tibber API, Octopus Agile API, ENTSOE Day-Ahead Price): HA fetches hourly prices at 13:00 for next day → calculates price-weighted load schedule → publishes to KNX GA 5/9/10 = current tariff price (DPT 9.002, p/kWh). WAGO CODESYS compares tariff price GA against threshold (e.g. 25p/kWh = high price → trigger Tier 2 shed proactively, not just demand-reactive). This forward-looking curtailment — reducing load during forecast price peaks — is more effective than reactive demand management because it avoids the demand peak entirely rather than responding after it starts. The combination: real-time kW monitoring (WAGO) + day-ahead price signal (HA) + KNX actuator control creates a full demand flexibility system that qualifies for some EU demand response incentive programmes.

Need help with your KNX or DALI project?

Our certified engineers can discuss panel design, commissioning, integrations and project-specific edge cases. Free initial consultation.

Contact our engineers →
Ielādējas...
Uz augšu