Eastron SDM120-Modbus to the cloud with an ESP32
Single-phase DIN-rail kWh meter with Modbus RTU over RS-485, common on sub-metering and solar installs. This entry reads the live electrical values plus the import, export and total energy counters.
The Synacl ESP32 gateway reads the Eastron SDM120-Modbus over Modbus RTU (RS-485). This catalog entry carries the register map, scaling and connection defaults below, so adding it in the app is a pick from a list rather than a form filled in from the datasheet — and it is the same data an AI agent gets from the list_catalog MCP tool.
Needs a recent gateway firmware — 16-bit signed and 32-bit (int32 / float32) Modbus registers. The app warns when the selected gateway is older; update it from the gateway page first.
Registers · 10 tags
| Tag | Unit | Address (hex / dec) | Function | Format | Word order | Scale |
|---|---|---|---|---|---|---|
Voltagevoltage_r_phase | V | 0x0000 / 0 | FC04 input register | float32 | high word first (ABCD) | × 1 |
Currentcurrent_r_phase | A | 0x0006 / 6 | FC04 input register | float32 | high word first (ABCD) | × 1 |
Active powerpower_active_total | W | 0x000C / 12 | FC04 input register | float32 | high word first (ABCD) | × 1 |
Apparent powerpower_apparent_total | VA | 0x0012 / 18 | FC04 input register | float32 | high word first (ABCD) | × 1 |
Reactive powerpower_reactive_total | var | 0x0018 / 24 | FC04 input register | float32 | high word first (ABCD) | × 1 |
Power factorpower_factor_total | — | 0x001E / 30 | FC04 input register | float32 | high word first (ABCD) | × 1 |
Frequencyfrequency_grid | Hz | 0x0046 / 70 | FC04 input register | float32 | high word first (ABCD) | × 1 |
Import active energyenergy_import_active | kWh | 0x0048 / 72 | FC04 input register | float32 | high word first (ABCD) | × 1 |
Export active energyenergy_export_active | kWh | 0x004A / 74 | FC04 input register | float32 | high word first (ABCD) | × 1 |
Total active energyenergy_total_active | kWh | 0x0156 / 342 | FC04 input register | float32 | high word first (ABCD) | × 1 |
Addresses are 0-based wire addresses — what goes in the request frame — shown as hex and decimal. A datasheet that numbers registers from 30001 / 40001 is one higher. 32-bit values occupy two consecutive registers. Engineering value = raw × scale + offset; the gateway sends the raw reading and Synacl scales it.
Connection defaults
| Baud rate | 2400 |
|---|---|
| Framing | 8N1 — 8 data bits, no parity, 1 stop bit |
| Unit ID (slave address) | 1 |
Wiring
RS-485 two-wire bus: meter A(+) to the gateway's A, B(−) to B, and a common GND between the meter's RS-485 ground and the gateway. The gateway's transceiver sits on GPIO16 (RX) / GPIO17 (TX). Terminate the far end with 120 Ω on long runs.
Notes
- Factory default is 2400 baud, 8N1, unit ID 1 — most other Modbus meters ship at 9600, so this is the first thing to check when it does not answer.
- Every value is an IEEE-754 float across two consecutive input registers (FC04), high word first. This entry needs gateway firmware that reports the modbusFormats capability; older firmware reads a single register and the values are meaningless.
- Register addresses are 0-based wire addresses: the datasheet's 30001 is address 0 here.
- Derived from the vendor's Modbus protocol document, not yet bench-verified on this platform. If a reading does not match the meter's display, report the mismatch.
Set it up in three steps
- Flash the gateway from the browser
Plug an ESP32 dev board into USB, open the free web flasher in Chrome or Edge and write the Synacl gateway firmware. It asks for Wi-Fi and pairs the gateway with your account — nothing to install, about two minutes. - Add the Eastron SDM120-Modbus from the catalog
In the app open Devices → Add device and choose “Start from a catalog device”, then pick Eastron SDM120-Modbus. The Modbus RTU (RS-485) settings and every tag in the table above are filled in; choose the gateway it is wired to, change the unit ID or baud rate if yours differs, and save. How the catalog picker works → - Watch the live data arrive
The gateway receives the new configuration over MQTT within seconds and starts polling. Readings show on the device page and in any dashboard widget you bind to them; add a rule for alerts, keep history for reports, or let an AI agent read it over MCP.
How this entry was verified
Datasheet-derived — derived from the vendor datasheet and not yet confirmed on hardware — please report a mismatch.
Bench-verified means Synacl ran this entry on real hardware. Datasheet-derived means the map was transcribed from the vendor's documentation, so a register may be off by one or in the other word order on your unit — a two-line email fixes it for everyone.
Report a register mismatch · Vendor datasheet ↗ · All catalog devices
Try it on your own hardware
Synacl is free for five devices — no card, no sales call. Flash a gateway from the browser, add the Eastron SDM120-Modbus from the catalog, and see live data in a few minutes.