Integration#KNX#Energy metering

Integrating Modbus TCP energy meters with KNX: a practical guide

SmartMāja Engineering Team·2025-04-22·9 min read

Modbus TCP energy meters are the workhorses of building sub-metering. Every commercial project built in the last 20 years has them — often dozens of Carlo Gavazzi, Finder 7M or Schneider iEM3000 meters measuring individual tenant supplies, floor loads, HVAC plant, EV chargers and LV switchboard feeders. Integrating this Modbus TCP data into the KNX system unlocks energy dashboards, demand management triggers, tariff switching alerts and automatic reports — without replacing the existing metering infrastructure.

The Modbus TCP protocol basics

Modbus TCP is the Ethernet version of Modbus RTU (the RS-485 serial protocol). The TCP wrapper is simple: Modbus data frames are encapsulated in TCP packets, sent to port 502 of the Modbus slave (the energy meter), and the slave responds on the same TCP connection. Modbus devices are either Master (initiating request) or Slave (responding). Energy meters are always slaves. The KNX-Modbus gateway is the master — it polls meters on a configured schedule. Modbus function codes used for metering: Function Code 03 (Read Holding Registers, 16-bit registers), Function Code 04 (Read Input Registers). Data is stored in 16-bit (or paired 32-bit) registers. Each register holds one value; the register number (address) is meter-specific.

Finder 7M series register map

The Finder 7M.38.8.400.0212 is a 3-phase MID-certified energy meter with Modbus TCP (RJ45), Modbus RTU (RS-485), M-Bus and Ethernet. Key registers for KNX integration: Register 0x0001 = Voltage L1-N (0.01V resolution, 32-bit); Register 0x000B = Current L1 (0.001A, 32-bit); Register 0x0013 = Active Power L1 (0.001kW, 32-bit); Register 0x001D = Power Factor L1 (0.001, 32-bit); Register 0x0041 = Active Energy Import L1 (0.001kWh, 32-bit); Register 0x0143 = Total Active Power (all phases, 32-bit). 32-bit values use two consecutive 16-bit registers (high word first, then low word — big-endian byte order). The KNX-Modbus gateway must be configured to read 2 registers for each 32-bit value.

Carlo Gavazzi EM270 register map

Carlo Gavazzi EM270 (single or 3-phase, DIN-rail, MID option): Register 0x0000 = Voltage L1 (0.1V, 16-bit); Register 0x000C = Current L1 (0.01A, 16-bit); Register 0x0012 = Active Power L1 (1W, 16-bit, signed — negative = export); Register 0x0028 = Active Energy Import (0.1kWh, 32-bit); Register 0x0046 = Total 3-phase Active Power (1W, 16-bit). EM270 Modbus address: configurable 1-247 via DIP switch on front face. Default: address 1.

KNX-Modbus gateway selection

Three gateway approaches for reading Modbus TCP meters into KNX: **Weinzierl KNX ENO 634 (Modbus TCP):** DIN-rail, reads up to 100 Modbus registers from up to 16 slaves, polls every 10 seconds minimum, maps register values to KNX DPT 14.xxx (4-byte float) group addresses. ETS6 application available. **Intesis IBOX-KNX-MBS-100:** Modbus RTU or TCP to KNX, 100 data points, configurable in IntesisBox toolset (not ETS6). Good for RTU meters. **Custom Home Assistant:** HA Modbus integration reads any Modbus TCP meter, HA KNX integration writes values to KNX group addresses. Most flexible, no data point limit, but requires HA setup.

Weinzierl KNX ENO 634 configuration

In ETS6: add ENO 634 to topology, assign individual address. Parameter page: configure meter 1: IP address, port 502, slave address (1), scan interval (30 seconds for energy data). Data object 1: function code 04, register address 0x0041 (Finder 7M energy import L1), register count 2, data format 32-bit float (ABCD byte order), DPT 14.019 (energy kWh), KNX group address 5/0/1. Repeat for each measurement value (power, voltage, current). After download: verify in ETS6 Group Monitor that group address 5/0/1 receives energy values every 30 seconds. Check: value in kWh should match the meter front panel reading ± 0.001kWh.

KNX group address structure for energy data

Recommended group address structure for energy metering: Main group 5 = Energy. Middle groups by meter (5/0 = Main incomer, 5/1 = HVAC supply, 5/2 = Lighting distribution, 5/3 = EV chargers, 5/4 = Tenant A, etc.). Sub-addresses per measurement: 5/x/0 = Active power (DPT 14.056, kW); 5/x/1 = Active energy import (DPT 14.019, kWh); 5/x/2 = Reactive power (DPT 14.057, kVAR); 5/x/3 = Current L1 (DPT 14.019, A); 5/x/4 = Voltage L1 (DPT 14.027, V); 5/x/9 = Demand alarm (DPT 1.001, trigger when power > threshold).

Demand management integration

The most valuable KNX use of Modbus metering: demand management. Configure a KNX logic block (MDT GLK-1216.03 or ETS6 inline logic): if main incomer power (GA 5/0/0) > 80kW → write 1 to GA 9/5/0 (demand alarm). KNX binary output actuator on GA 9/5/0 → activates demand reduction relay (e.g., steps down EV charger, delays non-critical loads). When power drops < 75kW for 5 minutes → GA 9/5/0 = 0 → loads restored. This peak demand management prevents supply capacity breaches and reduces demand charges on Time-of-Use tariffs.

MID certification and billing

For tenant billing, the energy meter must be MID (Measuring Instruments Directive) certified — meaning it has been type-tested and verified by an EU Notified Body. Finder 7M.38.xxx MID, Carlo Gavazzi EM270-MID, Schneider iEM3250 MID are all certified. The Modbus TCP reading is for monitoring and control only — billing records must come from the meter's certified memory, not from Modbus polling (which could miss data if the gateway restarts). For automated billing: use meter with M-Bus or pulse output in addition to Modbus TCP — M-Bus data is the certified billing source, Modbus TCP is for real-time KNX integration.

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