
Kostal Plenticore KSEM
The Kostal KSEM (KOSTAL Smart Energy Meter) is a three-phase bidirectional energy meter installed at the grid connection point of PV systems built around Kostal Plenticore inverters. Over Modbus TCP, this template reads the complete instantaneous power picture: total and per-phase active consumption and production power, reactive power for both directions, voltage, current, and grid frequency across two register sets. The float register set provides signed net active and reactive power per phase, which is particularly useful for real-time feed-in monitoring. ModbusCloud can log all channels continuously, giving installers and asset managers a full grid-interface dataset without additional hardware.
- Protocol
- Modbus TCP
- Connection
- Ethernet, Modbus TCP
- Registers
- 38, read only
- Brand
- Kostal
- Last updated
Registers (38)
38 read, 0 write
| Name | Unit | Access | Address (Hidden until you enter your email) | Function (hidden) | Type (hidden) |
|---|---|---|---|---|---|
| active_consumption_power | W | Read | |||
| active_production_power | W | Read | |||
| active_consumption_reactive_power | W | Read | |||
| active_production_reactive_power | W | Read | |||
| frequency_a | Hz | Read | |||
| active_consumption_power_l1 | W | Read | |||
| active_production_power_l1 | W | Read | |||
| active_consumption_reactive_power_l1 | W | Read | |||
| active_production_reactive_power_l1 | W | Read | |||
| current_l1_a | A | Read | |||
| voltage_l1_a | V | Read | |||
| active_consumption_power_l2 | W | Read | |||
| active_production_power_l2 | W | Read | |||
| active_consumption_reactive_power_l2 | W | Read | |||
| active_production_reactive_power_l2 | W | Read | |||
| current_l2_a | A | Read | |||
| voltage_l2_a | V | Read | |||
| active_consumption_power_l3 | W | Read | |||
| active_production_power_l3 | W | Read | |||
| active_consumption_reactive_power_l3 | W | Read | |||
| active_production_reactive_power_l3 | W | Read | |||
| current_l3_a | A | Read | |||
| voltage_l3_a | V | Read | |||
| frequency_b | Hz | Read | |||
| current_l1_b | A | Read | |||
| active_power_l1 | W | Read | |||
| reactive_power_l1 | W | Read | |||
| voltage_l1_b | V | Read | |||
| current_l2_b | A | Read | |||
| active_power_l2 | W | Read | |||
| reactive_power_l2 | W | Read | |||
| voltage_l2_b | V | Read | |||
| current_l3_b | A | Read | |||
| active_power_l3 | W | Read | |||
| reactive_power_l3 | W | Read | |||
| voltage_l3_b | V | Read | |||
| active_power | W | Read | |||
| reactive_power | var | Read |
Loading registers…
Send your device list
If a device is not in the library yet, we build the template for free as soon as we have the register data.
Use cases
- Monitor total active consumption and production power to verify PV self-consumption performance across billing periods.
- Track per-phase voltage and current on L1, L2, and L3 to detect phase imbalances in three-phase residential or commercial installations.
- Alert on unexpected grid feed-in spikes by comparing active production power against contracted export limits.
- Compare float-register net active power readings against integer-register values to identify scaling or firmware inconsistencies.
- Report reactive power per phase to verify power factor compliance and support grid operator reporting obligations.
Installation
Enable the Modbus TCP slave on the KSEM: log into the KSEM web interface, navigate to Modbus settings, then Slave, and activate the Enable TCP Slave toggle. The meter listens on port 502 by default.
Connect the KSEM to the same local network as the ModbusCloud Gateway using one of the two available LAN ports on the meter, and ensure the KSEM has a static IP address or a DHCP reservation.
In the ModbusCloud portal, add a new device, select this Kostal Plenticore KSEM template, enter the KSEM IP address and port 502, and set the Modbus unit ID to 1.
Verify the connection by spot-checking the active_consumption_power register (address 0) and active_power register (address 252) in the portal live view and comparing both readings against the KSEM web interface display.
Things to watch for
No register values appear even though the gateway connects.
The KSEM Modbus TCP slave is disabled by default. Log into the KSEM web interface, go to Modbus settings, open the Slave section, and switch on Enable TCP Slave. Without this step, the meter accepts the TCP connection but returns no data.
Integer and float register sets show different power values. Why?
The KSEM exposes two parallel register sets: an integer set (addresses 0 to 142) with separate consumption and production registers, and a float set (addresses 220 to 254) with signed net values. Both are valid. The float set at addresses 224, 234, 244, and 252 reports signed net power and is the more convenient source for feed-in detection.
Readings look correct but shift or scramble intermittently.
The KSEM documentation states that multi-register data points must be read in a single request to avoid misalignment between high and low words. If your polling logic reads individual 16-bit registers separately, switch to requesting both words of each uint32 or float32 in one Read Holding Registers call.
The meter connects via the Plenticore inverter proxy at port 1502. Should I use that?
The OpenEMS template targets the KSEM directly via its own LAN port at port 502, not the inverter proxy at port 1502. Use the KSEM IP address and port 502. If you also have the Plenticore connected, both paths can coexist but point to different unit IDs and register maps.
Want to see how it works?











