Eastron SDM120-Modbus Modbus register map
Also searched as: SDM120 · SDM120M · SDM120Modbus
32 Modbus registers of the Eastron SDM120-Modbus, with the address on the wire, the 30001-style reference, data type, byte order, unit and scale. Transcribed from Eastron SDM120Modbus Smart Meter Modbus Protocol Implementation (V2.4).
Single-phase DIN-rail energy meter with RS485 Modbus RTU; every measured value is a 32-bit float.
- Device type
- Energy meter
- Registers
- 32
- Interfaces
- Modbus RTU
- Default unit ID
- 1
- Byte order (multi-register values)
- ABCD
- Serial settings
- 2400 baud, 8 data bits, no parity, 1 stop bit
Hardware verification
Not yet verified on hardware. The map is transcribed from the vendor document and checked against it by script; check the first readings against the device display.
Connection notes
- Read and write floats in register pairs; an odd start address or count returns an exception.
- Broadcast (address 0) is not supported.
- The SDM120CT variants use a different protocol document; check yours before relying on this map.
Registers
Grouped as in the vendor document.
Voltage 2 registers
| Name and key | Reference | Address | Type | Byte order | Unit | Scale |
|---|---|---|---|---|---|---|
Voltagevoltage | 30001 | 0x0000 | float32 | ABCD | V | |
Frequencyfrequency | 30071 | 0x0046 | float32 | ABCD | Hz |
Current 1 registers
| Name and key | Reference | Address | Type | Byte order | Unit | Scale |
|---|---|---|---|---|---|---|
Currentcurrent | 30007 | 0x0006 | float32 | ABCD | A |
Power 4 registers
| Name and key | Reference | Address | Type | Byte order | Unit | Scale |
|---|---|---|---|---|---|---|
Active poweractive_power | 30013 | 0x000C | float32 | ABCD | W | |
Apparent powerapparent_power | 30019 | 0x0012 | float32 | ABCD | VA | |
Reactive powerreactive_power | 30025 | 0x0018 | float32 | ABCD | var | |
Power factorpower_factor | 30031 | 0x001E | float32 | ABCD |
Energy 6 registers
| Name and key | Reference | Address | Type | Byte order | Unit | Scale |
|---|---|---|---|---|---|---|
Import active energyimport_active_energy | 30073 | 0x0048 | float32 | ABCD | kWh | |
Export active energyexport_active_energy | 30075 | 0x004A | float32 | ABCD | kWh | |
Import reactive energyimport_reactive_energy | 30077 | 0x004C | float32 | ABCD | kvarh | |
Export reactive energyexport_reactive_energy | 30079 | 0x004E | float32 | ABCD | kvarh | |
Total active energyactive_energy_total | 30343 | 0x0156 | float32 | ABCD | kWh | |
Total reactive energyreactive_energy_total | 30345 | 0x0158 | float32 | ABCD | kvarh |
Demand 8 registers
| Name and key | Reference | Address | Type | Byte order | Unit | Scale |
|---|---|---|---|---|---|---|
Total system power demandactive_power_demand | 30085 | 0x0054 | float32 | ABCD | W | |
Maximum total system power demandactive_power_demand_max | 30087 | 0x0056 | float32 | ABCD | W | |
Import system power demandimport_power_demand | 30089 | 0x0058 | float32 | ABCD | W | |
Maximum import system power demandimport_power_demand_max | 30091 | 0x005A | float32 | ABCD | W | |
Export system power demandexport_power_demand | 30093 | 0x005C | float32 | ABCD | W | |
Maximum export system power demandexport_power_demand_max | 30095 | 0x005E | float32 | ABCD | W | |
Current demandcurrent_demand | 30259 | 0x0102 | float32 | ABCD | A | |
Maximum current demandcurrent_demand_max | 30265 | 0x0108 | float32 | ABCD | A |
Setup 11 registers
| Name and key | Reference | Address | Type | Byte order | Unit | Scale |
|---|---|---|---|---|---|---|
Relay pulse widthrelay_pulse_width | 40013 | 0x000C | float32 | ABCD | ms | |
Network parity and stop bitsnetwork_parity_stop | 40019 | 0x0012 | float32 | ABCD | ||
Modbus node addressmeter_id | 40021 | 0x0014 | float32 | ABCD | ||
Network baud ratenetwork_baud_rate | 40029 | 0x001C | float32 | ABCD | ||
Pulse 1 output modepulse1_output_mode | 40087 | 0x0056 | float32 | ABCD | ||
Scroll display timescroll_display_time | 463745 | 0xF900 | uint16 | s | ||
Pulse 1 output constantpulse1_constant | 463761 | 0xF910 | uint16 | |||
Measurement modemeasurement_mode | 463777 | 0xF920 | uint16 | |||
Serial numberserial_number | 464513 | 0xFC00 | uint32 | ABCD | ||
Meter codemeter_code | 464515 | 0xFC02 | uint16 | |||
Software versionsoftware_version | 464516 | 0xFC03 | uint16 |
Source documents
- Eastron SDM120Modbus Smart Meter Modbus Protocol Implementation , Eastron, V2.4 (accessed 2026-10-31) Copy hosted by an Eastron reseller.
Read it by name
Read the SDM120-Modbus with an AI assistant
The Proxus Industrial MCP Server includes this map. Set it on the device, and Claude, Cursor or VS Code reads registers by key with the right type, byte order, scale and unit. It only reads.
This device speaks Modbus RTU: reach it through a Modbus TCP gateway and use the gateway’s address with the device’s unit ID.
proxus-mcp.json
{
"devices": {
"sdm120-1": {
"protocol": "modbus-tcp",
"host": "192.168.10.40",
"unit_id": 1,
"map": "eastron/sdm120-modbus"
}
}
} Ask your assistant
Read voltage, frequency, current from sdm120-1.
The tool call it makes
read_named(device: "sdm120-1", keys: ["voltage", "frequency", "current"]) Have this device? Verify the map.
Ask your assistant to run verify_device_map. It reads every register once, read-only, checks that the values are plausible and asks you to compare two values with the display. You get a report and a prefilled GitHub issue to submit; your name goes on this map’s verified list.
Collecting from many devices?
Proxus reads Modbus TCP and RTU devices next to the machines, keeps the history and delivers the values to dashboards, databases and AI.