
The Eastron SDM120 is a DIN-rail mounted single-phase energy meter that communicates via Modbus RTU over RS-485. The TapHome template provides 4 devices covering total energy with configurable measurement modes, bidirectional import/export metering, and a standalone current sensor. All register values are IEEE 754 Float32 in Big Endian byte order, read via Modbus function code FC04 (input registers).
The template also exposes module-level service attributes and service actions for reading and changing the Slave ID, baud rate, and stop bit/parity configuration directly from TapHome — no external tools required.
Hardware connection
RS-485 wiring
The SDM120 has a 2-wire RS-485 interface on the bottom terminal block. Connect using a daisy-chain topology:
- A+ (terminal 4) to A+/D+ on TapHome RS-485
- B- (terminal 5) to B-/D- on TapHome RS-485
Use a daisy-chain wiring topology only. Star and stub/tee topologies cause signal reflections and data corruption. Terminate each end of the bus with a 120 ohm resistor (0.25 W minimum).
Cable specification:
- Type: Twisted pair, shielded (Belden 8761 or equivalent)
- Impedance: 120 ohm
- Max cable length: 1200 m
- Max nodes on bus: 32
Configuration
Communication parameters
Baud rate mismatch: The TapHome template defaults to 9600 bps, but the SDM120 factory default is 2400 bps. Communication will fail unless either the meter baud rate is changed to 9600 or the TapHome template baud rate is adjusted to 2400. The recommended approach is to change the meter baud rate to 9600 using the front panel buttons (see the meter’s user manual for the button sequence to access parameter P05).
| Parameter | Meter Default | Template Default | Options |
|---|---|---|---|
| Baud rate | 2400 | 9600 | 1200, 2400, 4800, 9600 |
| Data bits | 8 | 8 | Fixed |
| Parity | None | None | None, Even, Odd |
| Stop bits | 1 | 1 | 1 (with or without parity), 2 (without parity) |
| Slave ID | 1 | 1 | 1-247 |
Communication parameters can be changed either through the meter’s front panel buttons or remotely via Modbus holding registers. The TapHome template provides service actions for changing the baud rate (H:28), stop bit/parity (H:18), and Slave ID (H:20) directly from the TapHome app.
Slave ID
When connecting multiple SDM120 meters on the same RS-485 bus, each meter must have a unique Slave ID (range 1-247). After importing the TapHome template, adjust the Slave ID in the module connection settings to match the meter. The current Slave ID is readable via the module service attribute.
Enabling Modbus communication
The SDM120 has Modbus RTU enabled by default — no activation steps are required. The meter responds to Modbus requests on its configured baud rate and Slave ID immediately after power-up. To match the TapHome template settings, change the meter’s baud rate from the factory default of 2400 to 9600 bps using one of these methods:
- Front panel buttons — navigate to parameter P05 (baud rate) using the meter’s button sequence and set it to 9600
- TapHome service action — if initial communication at 2400 bps is established first, use the “Baud Rate” service action on the module to write the new value. After changing, update the TapHome template baud rate setting to match.
Device capabilities
The template creates 4 devices: one total energy meter with configurable measurement modes, bidirectional import/export energy meters, and a standalone current sensor.
Total energy metering
- Total Energy — single-phase total active energy (A:342, kWh) and active power (A:12, W converted to kW). This is the only read/write device in the template — it supports a measurement mode action that controls how total energy is accumulated. Seven service attributes provide real-time monitoring: voltage (V), current (A), supply frequency (Hz), power factor, apparent power (VA), reactive power (VAr), and total reactive energy (kVArh). A mode service attribute shows the currently active measurement mode.
The measurement mode action writes to holding register H:4111 and accepts four values:
| Mode | Description |
|---|---|
| To Grid | Export energy only |
| From Grid | Import energy only |
| To Grid + From Grid | Sum of import and export |
| To Grid - From Grid | Net energy (import minus export) |
Bidirectional energy metering
Two devices track energy flow direction, useful for solar PV installations or bidirectional load monitoring:
- Export Energy — energy exported to the grid (A:74, kWh) and instantaneous export power derived from negative active power readings (A:12). Includes an export reactive energy service attribute (A:78, kVArh).
- Import Energy — energy imported from the grid (A:72, kWh) and instantaneous import power derived from positive active power readings (A:12). Includes an import reactive energy service attribute (A:76, kVArh).
The import/export split is achieved by reading the signed active power register (A:12). Positive values indicate grid consumption (import), negative values indicate grid feed-in (export). This is particularly useful for monitoring solar PV self-consumption and grid interaction.
Current monitoring
- Electric Current — standalone current sensor (A:6, A) for real-time current monitoring. Includes a voltage service attribute read from holding register H:305 with 0.01 scaling — this register is not documented in the official protocol but provides a quick voltage reference.
Additional capabilities
The SDM120 also exposes registers for demand-averaged power (total, import, and export with recorded maximums), current demand with maximum tracking, and phase angle measurement. These can be added in a future template update.
Troubleshooting
No communication
- Verify the RS-485 wiring is daisy-chained (not star topology)
- Check A/B terminal connections (terminals 4 and 5) — swap A and B if communication fails
- Confirm the bus termination: 120 ohm resistor at each end of the bus
- Check the baud rate — the most common issue is the mismatch between the meter’s factory default of 2400 bps and the TapHome template default of 9600 bps. Either change the meter to 9600 or adjust the TapHome template to 2400.
- Verify the Slave ID in TapHome matches the meter (default 1)
Incorrect readings
- If total energy values seem wrong, check the measurement mode (service attribute on the Total Energy device) — the mode affects how energy is accumulated
- Verify the correct stop bit/parity setting — the module service attribute shows the current configuration
Register byte order
The SDM120 uses Big Endian byte order (most significant register first) by default. If readings appear as extremely large or small numbers, check the byte order configuration. The TapHome template uses Float32 Big Endian, which matches the meter’s default setting.
