KOSTAL · Energy meter
KOSTAL Smart Energy Meter G1 / G2 (KSEM) Modbus register map
Default configuration
- Protocol
- Modbus TCP
- Port
- 502
- Unit ID
- 1
- Addressing
- 0-based
- Byte order
- Big endian
- Word order
- High word first
Register map
| Address | Count | Name | Type | Unit | Scale | Access |
|---|---|---|---|---|---|---|
| 0 | 2 | Active power+ OBIS code 1-0:1.4.0*255. | UInt32 | W | 0.1 | R |
| 2 | 2 | Active power- OBIS code 1-0:2.4.0*255. | UInt32 | W | 0.1 | R |
| 4 | 2 | Reactive power+ OBIS code 1-0:3.4.0*255. | UInt32 | var | 0.1 | R |
| 6 | 2 | Reactive power- OBIS code 1-0:4.4.0*255. | UInt32 | var | 0.1 | R |
| 16 | 2 | Apparent power+ OBIS code 1-0:9.4.0*255. | UInt32 | VA | 0.1 | R |
| 18 | 2 | Apparent power- OBIS code 1-0:10.4.0*255. | UInt32 | VA | 0.1 | R |
| 24 | 2 | Power factor OBIS code 1-0:13.4.0*255. | Int32 | - | 0.001 | R |
| 26 | 2 | Supply frequency OBIS code 1-0:14.4.0*255. | UInt32 | Hz | 0.001 | R |
| 40 | 2 | Active power+ (L1) OBIS code 1-0:21.4.0*255. | UInt32 | W | 0.1 | R |
| 42 | 2 | Active power- (L1) OBIS code 1-0:22.4.0*255. | UInt32 | W | 0.1 | R |
| 44 | 2 | Reactive power+ (L1) OBIS code 1-0:23.4.0*255. | UInt32 | var | 0.1 | R |
| 46 | 2 | Reactive power- (L1) OBIS code 1-0:24.4.0*255. | UInt32 | var | 0.1 | R |
| 56 | 2 | Apparent power+ (L1) OBIS code 1-0:29.4.0*255. | UInt32 | VA | 0.1 | R |
| 58 | 2 | Apparent power- (L1) OBIS code 1-0:30.4.0*255. | UInt32 | VA | 0.1 | R |
| 60 | 2 | Current (L1) OBIS code 1-0:31.4.0*255. | UInt32 | A | 0.001 | R |
| 62 | 2 | Voltage (L1) OBIS code 1-0:32.4.0*255. | UInt32 | V | 0.001 | R |
| 64 | 2 | Power factor (L1) OBIS code 1-0:33.4.0*255. | Int32 | - | 0.001 | R |
| 80 | 2 | Active power+ (L2) OBIS code 1-0:41.4.0*255. | UInt32 | W | 0.1 | R |
| 82 | 2 | Active power- (L2) OBIS code 1-0:42.4.0*255. | UInt32 | W | 0.1 | R |
| 84 | 2 | Reactive power+ (L2) OBIS code 1-0:43.4.0*255. | UInt32 | var | 0.1 | R |
| 86 | 2 | Reactive power- (L2) OBIS code 1-0:44.4.0*255. | UInt32 | var | 0.1 | R |
| 96 | 2 | Apparent power+ (L2) OBIS code 1-0:49.4.0*255. | UInt32 | VA | 0.1 | R |
| 98 | 2 | Apparent power- (L2) OBIS code 1-0:50.4.0*255. | UInt32 | VA | 0.1 | R |
| 100 | 2 | Current (L2) OBIS code 1-0:51.4.0*255. | UInt32 | A | 0.001 | R |
| 102 | 2 | Voltage (L2) OBIS code 1-0:52.4.0*255. | UInt32 | V | 0.001 | R |
| 104 | 2 | Power factor (L2) OBIS code 1-0:53.4.0*255. | Int32 | - | 0.001 | R |
| 120 | 2 | Active power+ (L3) OBIS code 1-0:61.4.0*255. | UInt32 | W | 0.1 | R |
| 122 | 2 | Active power- (L3) OBIS code 1-0:62.4.0*255. | UInt32 | W | 0.1 | R |
| 124 | 2 | Reactive power+ (L3) OBIS code 1-0:63.4.0*255. | UInt32 | var | 0.1 | R |
| 126 | 2 | Reactive power- (L3) OBIS code 1-0:64.4.0*255. | UInt32 | var | 0.1 | R |
| 136 | 2 | Apparent power+ (L3) OBIS code 1-0:69.4.0*255. | UInt32 | VA | 0.1 | R |
| 138 | 2 | Apparent power- (L3) OBIS code 1-0:70.4.0*255. | UInt32 | VA | 0.1 | R |
| 140 | 2 | Current (L3) OBIS code 1-0:71.4.0*255. | UInt32 | A | 0.001 | R |
| 142 | 2 | Voltage (L3) OBIS code 1-0:72.4.0*255. | UInt32 | V | 0.001 | R |
| 144 | 2 | Power factor (L3) OBIS code 1-0:73.4.0*255. | Int32 | - | 0.001 | R |
| 146 | 2 | Minimum active power+ | UInt32 | W | 0.1 | R |
Read this device live with Modbus Connect, free for Windows, macOS and Linux
Related guides
Notes
Source: KOSTAL Solar Electric GmbH "KSEM G1/G2 - KOSTAL Smart Energy Meter - Interface Description MODBUS", release date 13.03.2025, valid for SW version 2.6.0, vendor-hosted at https://www.kostal-solar-electric.com/fileadmin/downloadcenter/kse/BA_KOSTAL_Interface_KSEM_EN.pdf. The register map is divided into areas (section 3.1); this seed carries the internal instantaneous block (decimal addresses 0-147, section 3.2), which the document lists with function code 0x03, so every row is a holding register. Addresses are printed in decimal and hex side by side and agree, and are wire addresses, so addressing is zero_based. All values are uint32/int32 or uint16/int16 with a fixed scale printed in the Units column (0.1 W, 0.001 V, ...), which is stored as scale_factor plus unit. Modbus TCP slave mode is served on port 502 by default (section 1.3.2); the document states no unit identifier for the TCP slave, so unit 1 is a placeholder to be set to whatever the meter is configured with. The document states the word order itself (section 2.2: 'the registers with the lower address contain the most significant bits', with the worked formula Active power+ = (register 0 × 2^16 + register 1) × 0.1), so word_order is HighFirst. Deliberate omissions: the internal energy register block (512-791) is uint64 throughout and the app has no 64-bit type; the SunSpec block (40000-40177) scales every value with a separate sunssf register, which cannot be expressed as a fixed scale_factor; and the KSEM/RM PnP (8192-8249), static (40960-49151), dynamic (49152-59391), group (59392-61312) and sensor (61440-65280) areas are installation-configured or device-specific and are left out. Minimum active power+ (146) carries a footnote marker in the document; its scale is 0.1 W like the other power rows.