TapHome

Eastron SDM630

Modbus RTU
Submitted by
Last updated: 03. 2026
Eastron SDM630

The Eastron SDM630 is a DIN-rail mounted 3-phase energy meter that communicates via Modbus RTU over RS-485. The TapHome template provides 12 electricity meter devices covering total system energy, per-phase energy (L1/L2/L3), bidirectional import/export metering, and extensive service attributes for voltage, current, power factor, reactive power, frequency, and phase angles.

The meter supports three wiring configurations: 3-phase 4-wire (3P4W), 3-phase 3-wire (3P3W), and single-phase 2-wire (1P2W). All register values are IEEE 754 Float32 in Big Endian byte order, read via Modbus function code FC04 (input registers).

Hardware connection

RS-485 wiring

The SDM630 has a 2-wire RS-485 interface with two screw terminals. Connect using a daisy-chain topology:

  • A (terminal 27) to A+/D+ on TapHome RS-485
  • B (terminal 28) 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
Wiring modes

The meter must be configured for the correct wiring system via holding register 10 (password-protected):

System TypeValueDescription
3P4W33-phase 4-wire (default)
3P3W23-phase 3-wire
1P2W1Single-phase 2-wire

Some registers are only available in specific wiring modes. For example, line-to-neutral voltages and neutral current are only available in 3P4W mode, while line-to-line voltages require 3P4W or 3P3W.

Configuration

Communication parameters

The default Modbus settings match the TapHome template:

ParameterDefaultOptions
Baud rate96002400, 4800, 9600, 19200, 38400
Data bits8Fixed
ParityNoneNone, Even, Odd
Stop bits21 (with parity) or 2 (without parity)
Slave ID11-247

Communication settings can be changed via holding registers (FC03/FC16). A password (default: 0000) is required for protected parameters like system type. The password is written to holding register 24 and auto-locks after 1 minute of inactivity.

Slave ID

When connecting multiple SDM630 meters on the same RS-485 bus, each meter must have a unique Slave ID (holding register 20, range 1-247). After importing the TapHome template, adjust the Slave ID in the module connection settings to match the meter.

Each Modbus request can read up to 40 parameters (80 registers) at once. The TapHome template polls the total energy meters at 2.5-second intervals and per-phase meters at 15-second intervals, which keeps the bus utilization manageable even with multiple meters.

Device capabilities

The template creates 12 ModbusElectricityMeter devices organized into three groups: total energy, export (grid feed-in), and import (grid consumption). Each device reports cumulative energy (kWh) and instantaneous power demand (kW).

Total energy metering

Four devices track overall active energy consumption:

  • Total Energy (3-Phase) — system-wide total energy (A:342, kWh) and total power demand (A:52, W converted to kW). This device includes 12 service attributes providing system averages and totals: average line-to-line voltage, average line-to-neutral voltage, average and sum of line currents, neutral current, total apparent power (VA), total reactive power (VAr), total power factor, total phase angle, supply frequency (Hz), total apparent energy (kVAh), and total reactive energy (kVArh).
  • Total Energy L1 — phase 1 total active energy (A:358, kWh) and phase 1 power (A:12, W to kW). Service attributes include line-to-neutral voltage, current, apparent power, reactive power, power factor, phase angle, and reactive energy for phase 1.
  • Total Energy L2 — phase 2 total active energy (A:360, kWh) and phase 2 power (A:14, W to kW). Same per-phase service attributes as L1.
  • Total Energy L3 — phase 3 total active energy (A:362, kWh) and phase 3 power (A:16, W to kW). Same per-phase service attributes as L1.
Export energy (grid feed-in)

Four devices track energy exported to the grid, useful for solar PV installations:

  • Export Energy (3-Phase) — total export energy (A:74, kWh) and export power derived from negative total system power readings (A:52).
  • Export Energy L1 — phase 1 export energy (A:352, kWh) and phase 1 export power.
  • Export Energy L2 — phase 2 export energy (A:354, kWh) and phase 2 export power.
  • Export Energy L3 — phase 3 export energy (A:356, kWh) and phase 3 export power.
Import energy (grid consumption)

Four devices track energy imported from the grid:

  • Import Energy (3-Phase) — total import energy (A:72, kWh) and import power derived from positive total system power readings (A:52).
  • Import Energy L1 — phase 1 import energy (A:346, kWh) and phase 1 import power.
  • Import Energy L2 — phase 2 import energy (A:348, kWh) and phase 2 import power.
  • Import Energy L3 — phase 3 import energy (A:350, kWh) and phase 3 import power.

The import/export split is achieved by reading the signed system power register (A:52). 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.

Additional capabilities

The SDM630 also exposes registers for line-to-line voltages (L1-L2, L2-L3, L3-L1), total harmonic distortion (THD) for both voltage and current on each phase, demand-averaged current per phase with recorded maximums, import/export reactive energy counters, and ampere-hour metering. These can be added in a future template update.

Troubleshooting

No communication
  1. Verify the RS-485 wiring is daisy-chained (not star topology)
  2. Check A/B terminal connections — swap A and B if communication fails
  3. Confirm the bus termination: 120 ohm resistor at each end of the bus
  4. Ensure the TapHome baud rate matches the meter setting (default 9600, 8N2)
  5. Verify the Slave ID in TapHome matches the meter (default 1)
Incorrect readings
  1. Confirm the wiring system type (holding register 10) matches the actual installation — wrong system type causes zero or incorrect values
  2. For 3P3W mode, line-to-neutral voltage registers return zero — this is expected behavior
  3. Neutral current (A:224) reads zero in 3P3W mode — only available in 3P4W
Register byte order

The SDM630 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 BigEndianFloat, which matches the meter’s default setting.

Available devices

Eastron SDM630 / SDM72D Module
Total Energy (3-Phase) Electricity Meter Read-only

Combined 3-phase energy and power — total consumption (kWh) and instantaneous system power demand (kW), with 12 service attributes for voltage, current, power factor, frequency, and reactive energy

Register: A:342 (readtotalconsumption), A:52 (readdemand) BigEndianFloat Unit: kWh / kW
Service Attributes
Average Line-to-Line Voltage
Average Line-to-Neutral Voltage
Average Line Current
Sum of Line Currents
Neutral Current
Total System Apparent Power
Total System Reactive Power
Total System Power Factor
Total System Phase Angle
Supply Frequency
Total Apparent Energy
Total Reactive Energy

Total Energy (3-Phase)

Read total consumption
MODBUSR(A, 342, BigEndianFloat)
Read demand
MODBUSR(A, 52, BigEndianFloat) / 1000
Service Attributes
Average line to line [V]
TOSTRING(MODBUSR(A, 206, BigEndianFloat), "F1")
Average line to neutral [V]
TOSTRING(MODBUSR(A, 42, BigEndianFloat), "F1")
Average line current [A]
TOSTRING(MODBUSR(A, 46, BigEndianFloat), "F2")
Sum of line currents [A]
TOSTRING(MODBUSR(A, 48, BigEndianFloat), "F2")
Neutral current [A]
TOSTRING(MODBUSR(A, 224, BigEndianFloat), "F2")
Total system volt amps [VA]
TOSTRING(MODBUSR(A, 56, BigEndianFloat), "F1")
Total system reactive power [VAr]
TOSTRING(MODBUSR(A, 60, BigEndianFloat), "F1")
Total system power factor
TOSTRING(MODBUSR(A, 62, BigEndianFloat), "F3")
Total system phase angle
TOSTRING(MODBUSR(A, 66, BigEndianFloat), "F1")
Frequency of supply voltages [Hz]
TOSTRING(MODBUSR(A, 70, BigEndianFloat), "F1")
Total VAh [kVAh]
TOSTRING(MODBUSR(A, 80, BigEndianFloat), "F1")
Total VArh [kVArh]
TOSTRING(MODBUSR(A, 344, BigEndianFloat), "F1")
Total Energy L1 Electricity Meter Read-only
Register: A:358 (readtotalconsumption), A:12 (readdemand) BigEndianFloat Unit: kWh / kW
Service Attributes
Line-to-Neutral Voltage
Current
Apparent Power
Reactive Power
Power Factor
Phase Angle
Reactive Energy

Total Energy L1

Read total consumption
MODBUSR(A, 358, BigEndianFloat)
Read demand
MODBUSR(A, 12, BigEndianFloat) / 1000
Service Attributes
Line to neutral voltage [V]
TOSTRING(MODBUSR(A, 0, BigEndianFloat), "F1")
Current [A]
TOSTRING(MODBUSR(A, 6, BigEndianFloat), "F2")
Volt amps [VA]
TOSTRING(MODBUSR(A, 18, BigEndianFloat), "F1")
Reactive power [VAr]
TOSTRING(MODBUSR(A, 24, BigEndianFloat), "F1")
Power factor
TOSTRING(MODBUSR(A, 30, BigEndianFloat), "F1")
Phase angle
TOSTRING(MODBUSR(A, 36, BigEndianFloat), "F1")
Reactive Energy [kVArh]
TOSTRING(MODBUSR(A, 376, BigEndianFloat), "F1")
Total Energy L2 Electricity Meter Read-only
Register: A:360 (readtotalconsumption), A:14 (readdemand) BigEndianFloat Unit: kWh / kW
Service Attributes
Line-to-Neutral Voltage
Current
Apparent Power
Reactive Power
Power Factor
Phase Angle
Reactive Energy

Total Energy L2

Read total consumption
MODBUSR(A, 360, BigEndianFloat)
Read demand
MODBUSR(A, 14, BigEndianFloat) / 1000
Service Attributes
Line to neutral voltage [V]
TOSTRING(MODBUSR(A, 2, BigEndianFloat), "F1")
Current [A]
TOSTRING(MODBUSR(A, 8, BigEndianFloat), "F2")
Volt amps [VA]
TOSTRING(MODBUSR(A, 20, BigEndianFloat), "F1")
Reactive power [VAr]
TOSTRING(MODBUSR(A, 26, BigEndianFloat), "F1")
Power factor
TOSTRING(MODBUSR(A, 32, BigEndianFloat), "F1")
Phase angle
TOSTRING(MODBUSR(A, 38, BigEndianFloat), "F1")
Reactive Energy [kVArh]
TOSTRING(MODBUSR(A, 378, BigEndianFloat), "F1")
Total Energy L3 Electricity Meter Read-only
Register: A:362 (readtotalconsumption), A:16 (readdemand) BigEndianFloat Unit: kWh / kW
Service Attributes
Line-to-Neutral Voltage
Current
Apparent Power
Reactive Power
Power Factor
Phase Angle
Reactive Energy

Total Energy L3

Read total consumption
MODBUSR(A, 362, BigEndianFloat)
Read demand
MODBUSR(A, 16, BigEndianFloat) / 1000
Service Attributes
Line to neutral voltage [V]
TOSTRING(MODBUSR(A, 4, BigEndianFloat), "F1")
Current [A]
TOSTRING(MODBUSR(A, 10, BigEndianFloat), "F2")
Volt amps [VA]
TOSTRING(MODBUSR(A, 22, BigEndianFloat), "F1")
Reactive power [VAr]
TOSTRING(MODBUSR(A, 28, BigEndianFloat), "F1")
Power factor
TOSTRING(MODBUSR(A, 34, BigEndianFloat), "F1")
Phase angle
TOSTRING(MODBUSR(A, 40, BigEndianFloat), "F1")
Reactive Energy [kVArh]
TOSTRING(MODBUSR(A, 380, BigEndianFloat), "F1")
Export Energy (3-Phase) Electricity Meter Read-only

Energy exported to the grid (feed-in) — total export kWh and instantaneous export power derived from negative system power readings

Register: A:74 (readtotalconsumption), A:52 (readdemand) BigEndianFloat Unit: kWh / kW

Export Energy (3-Phase)

Read total consumption
MODBUSR(A, 74, BigEndianFloat)
Read demand
var demand := MODBUSR(A, 52, BigEndianFloat) / 1000;
if (demand < 0, return(demand * -1), return(0));
Export Energy L1 Electricity Meter Read-only
Register: A:352 (readtotalconsumption), A:12 (readdemand) BigEndianFloat Unit: kWh / kW

Export Energy L1

Read total consumption
MODBUSR(A, 352, BigEndianFloat)
Read demand
var demand := MODBUSR(A, 12, BigEndianFloat) / 1000;
if (demand < 0, return(demand * -1), return(0));
Export Energy L2 Electricity Meter Read-only
Register: A:354 (readtotalconsumption), A:14 (readdemand) BigEndianFloat Unit: kWh / kW

Export Energy L2

Read total consumption
MODBUSR(A, 354, BigEndianFloat)
Read demand
var demand := MODBUSR(A, 14, BigEndianFloat) / 1000;
if (demand < 0, return(demand * -1), return(0));
Export Energy L3 Electricity Meter Read-only
Register: A:356 (readtotalconsumption), A:12 (readdemand) BigEndianFloat Unit: kWh / kW

Export Energy L3

Read total consumption
MODBUSR(A, 356, BigEndianFloat)
Read demand
var demand := MODBUSR(A, 12, BigEndianFloat) / 1000;
if (demand < 0, return(demand * -1), return(0));
Import Energy (3-Phase) Electricity Meter Read-only

Energy imported from the grid (consumption) — total import kWh and instantaneous import power derived from positive system power readings

Register: A:72 (readtotalconsumption), A:52 (readdemand) BigEndianFloat Unit: kWh / kW

Import Energy (3-Phase)

Read total consumption
MODBUSR(A, 72, BigEndianFloat)
Read demand
var demand := MODBUSR(A, 52, BigEndianFloat) / 1000;
if (demand < 0, return(0), return(demand));
Import Energy L1 Electricity Meter Read-only
Register: A:346 (readtotalconsumption), A:12 (readdemand) BigEndianFloat Unit: kWh / kW

Import Energy L1

Read total consumption
MODBUSR(A, 346, BigEndianFloat)
Read demand
var demand := MODBUSR(A, 12, BigEndianFloat) / 1000;
if (demand < 0, return(0), return(demand));
Import Energy L2 Electricity Meter Read-only
Register: A:348 (readtotalconsumption), A:14 (readdemand) BigEndianFloat Unit: kWh / kW

Import Energy L2

Read total consumption
MODBUSR(A, 348, BigEndianFloat)
Read demand
var demand := MODBUSR(A, 14, BigEndianFloat) / 1000;
if (demand < 0, return(0), return(demand));
Import Energy L3 Electricity Meter Read-only
Register: A:350 (readtotalconsumption), A:16 (readdemand) BigEndianFloat Unit: kWh / kW

Import Energy L3

Read total consumption
MODBUSR(A, 350, BigEndianFloat)
Read demand
var demand := MODBUSR(A, 16, BigEndianFloat) / 1000;
if (demand < 0, return(0), return(demand));
Connection: Modbus RTU • 9600 baud• 8N1 • Slave ID: $[SlaveId]
Possible improvements (30)
  • A:76 Total Import kVArh — Separate import reactive energy counter
  • A:78 Total Export kVArh — Separate export reactive energy counter
  • A:82 Ah — Ampere-hours counter
  • A:84 Total System Power Demand — Demand-averaged system power (W) — template uses A:52 (instantaneous) instead
  • A:86 Max Total System Power Demand — Maximum recorded system power demand in VA
  • A:100 Total System VA Demand — Current system apparent power demand
  • A:102 Max Total System VA Demand — Maximum recorded system VA demand
  • A:104 Neutral Current Demand — 3Ø4W wiring only
  • A:106 Max Neutral Current Demand — 3Ø4W wiring only
  • A:200 L1–L2 Voltage — Line-to-line voltage, 3-phase only
  • A:202 L2–L3 Voltage — Line-to-line voltage, 3-phase only
  • A:204 L3–L1 Voltage — Line-to-line voltage, 3-phase only
  • A:234 Phase 1 L/N Voltage THD — Total harmonic distortion, %
  • A:236 Phase 2 L/N Voltage THD — Total harmonic distortion, %
  • A:238 Phase 3 L/N Voltage THD — Total harmonic distortion, %
  • A:240 Phase 1 Current THD — Total harmonic distortion, %
  • A:242 Phase 2 Current THD — Total harmonic distortion, %
  • A:244 Phase 3 Current THD — Total harmonic distortion, %
  • A:248 Average L/N Voltage THD — Total harmonic distortion, %
  • A:250 Average Line Current THD — Total harmonic distortion, %
  • A:258 Phase 1 Current Demand — Demand-averaged phase current
  • A:260 Phase 2 Current Demand — Demand-averaged phase current
  • A:262 Phase 3 Current Demand — Demand-averaged phase current
  • A:264 Max Phase 1 Current Demand — Maximum recorded phase 1 current demand
  • A:266 Max Phase 2 Current Demand — Maximum recorded phase 2 current demand
  • A:268 Max Phase 3 Current Demand — Maximum recorded phase 3 current demand
  • A:334 L1–L2 Voltage THD — Line-to-line THD, %
  • A:336 L2–L3 Voltage THD — Line-to-line THD, %
  • A:338 L3–L1 Voltage THD — Line-to-line THD, %
  • A:340 Average L-L Voltage THD — Line-to-line THD, %

Sources