{
  "spec_version": 1,
  "slug": "eastron-sdm630",
  "manufacturer": "Eastron",
  "model": "SDM630-Modbus",
  "category": "Energy meter",
  "supplier_url": "https://www.eastroneurope.com/products/sdm630-modbus",
  "default_configuration": {
    "protocol": "modbus_tcp",
    "port": 502,
    "unit_id": 1,
    "addressing": "zero_based",
    "byte_order": "BigEndian",
    "word_order": "HighFirst",
    "native_interface": "rs485",
    "serial": {
      "parity": "None",
      "baud_rate": 9600,
      "data_bits": 8,
      "stop_bits": 1
    }
  },
  "coils": [],
  "discrete_inputs": [],
  "input_registers": [
    {
      "address": 0,
      "count": 2,
      "name": "L1 Voltage",
      "data_type": "Float32",
      "units": "V",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 2,
      "count": 2,
      "name": "L2 Voltage",
      "data_type": "Float32",
      "units": "V",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 4,
      "count": 2,
      "name": "L3 Voltage",
      "data_type": "Float32",
      "units": "V",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 6,
      "count": 2,
      "name": "L1 Current",
      "data_type": "Float32",
      "units": "A",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 8,
      "count": 2,
      "name": "L2 Current",
      "data_type": "Float32",
      "units": "A",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 10,
      "count": 2,
      "name": "L3 Current",
      "data_type": "Float32",
      "units": "A",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 12,
      "count": 2,
      "name": "L1 Power (Active)",
      "data_type": "Float32",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 14,
      "count": 2,
      "name": "L2 Power (Active)",
      "data_type": "Float32",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 16,
      "count": 2,
      "name": "L3 Power (Active)",
      "data_type": "Float32",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 18,
      "count": 2,
      "name": "L1 Power (Apparent)",
      "data_type": "Float32",
      "units": "VA",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 20,
      "count": 2,
      "name": "L2 Power (Apparent)",
      "data_type": "Float32",
      "units": "VA",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 22,
      "count": 2,
      "name": "L3 Power (Apparent)",
      "data_type": "Float32",
      "units": "VA",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 24,
      "count": 2,
      "name": "L1 Power (Reactive)",
      "data_type": "Float32",
      "units": "VAr",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 26,
      "count": 2,
      "name": "L2 Power (Reactive)",
      "data_type": "Float32",
      "units": "VAr",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 28,
      "count": 2,
      "name": "L3 Power (Reactive)",
      "data_type": "Float32",
      "units": "VAr",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 30,
      "count": 2,
      "name": "L1 Power Factor",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 32,
      "count": 2,
      "name": "L2 Power Factor",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 34,
      "count": 2,
      "name": "L3 Power Factor",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 36,
      "count": 2,
      "name": "L1 Phase Angle",
      "data_type": "Float32",
      "units": "°",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 38,
      "count": 2,
      "name": "L2 Phase Angle",
      "data_type": "Float32",
      "units": "°",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 40,
      "count": 2,
      "name": "L3 Phase Angle",
      "data_type": "Float32",
      "units": "°",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 42,
      "count": 2,
      "name": "L-N Voltage",
      "data_type": "Float32",
      "units": "V",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 46,
      "count": 2,
      "name": "L-N Current",
      "data_type": "Float32",
      "units": "A",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 48,
      "count": 2,
      "name": "Total Line Current",
      "data_type": "Float32",
      "units": "A",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 52,
      "count": 2,
      "name": "Total Power (Active)",
      "data_type": "Float32",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 56,
      "count": 2,
      "name": "Total Power (Apparent)",
      "data_type": "Float32",
      "units": "VA",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 60,
      "count": 2,
      "name": "Total Power (Reactive)",
      "data_type": "Float32",
      "units": "VAr",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 62,
      "count": 2,
      "name": "Total Power Factor",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 66,
      "count": 2,
      "name": "Total Phase Angle",
      "data_type": "Float32",
      "units": "°",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 70,
      "count": 2,
      "name": "Frequency",
      "data_type": "Float32",
      "units": "Hz",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 72,
      "count": 2,
      "name": "Imported Energy (Active)",
      "data_type": "Float32",
      "units": "kWh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 74,
      "count": 2,
      "name": "Exported Energy (Active)",
      "data_type": "Float32",
      "units": "kWh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 76,
      "count": 2,
      "name": "Imported Energy (Reactive)",
      "data_type": "Float32",
      "units": "kVArh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 78,
      "count": 2,
      "name": "Exported Energy (Reactive)",
      "data_type": "Float32",
      "units": "kVArh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 80,
      "count": 2,
      "name": "Total Energy (Apparent)",
      "data_type": "Float32",
      "units": "kVAh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 82,
      "count": 2,
      "name": "Total Current",
      "data_type": "Float32",
      "units": "A",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 84,
      "count": 2,
      "name": "Total Import Demand Power (Active)",
      "data_type": "Float32",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 86,
      "count": 2,
      "name": "Maximum Import Demand Power (Apparent)",
      "data_type": "Float32",
      "units": "VA",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 88,
      "count": 2,
      "name": "Import Demand Power (Active)",
      "data_type": "Float32",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 90,
      "count": 2,
      "name": "Maximum Import Demand Power (Active)",
      "data_type": "Float32",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 92,
      "count": 2,
      "name": "Export Demand Power (Active)",
      "data_type": "Float32",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 94,
      "count": 2,
      "name": "Maximum Export Demand Power (Active)",
      "data_type": "Float32",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 100,
      "count": 2,
      "name": "Total Demand Power (Apparent)",
      "data_type": "Float32",
      "units": "VA",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 102,
      "count": 2,
      "name": "Maximum System Power (Apparent)",
      "data_type": "Float32",
      "units": "VA",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 104,
      "count": 2,
      "name": "Neutral Demand Current",
      "data_type": "Float32",
      "units": "A",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 106,
      "count": 2,
      "name": "Maximum Neutral Demand Current",
      "data_type": "Float32",
      "units": "A",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 200,
      "count": 2,
      "name": "L1-L2 Voltage",
      "data_type": "Float32",
      "units": "V",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 202,
      "count": 2,
      "name": "L2-L3 Voltage",
      "data_type": "Float32",
      "units": "V",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 204,
      "count": 2,
      "name": "L3-L1 Voltage",
      "data_type": "Float32",
      "units": "V",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 206,
      "count": 2,
      "name": "L-L Voltage",
      "data_type": "Float32",
      "units": "V",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 224,
      "count": 2,
      "name": "Neutral Current",
      "data_type": "Float32",
      "units": "A",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 234,
      "count": 2,
      "name": "L1-N Voltage THD",
      "data_type": "Float32",
      "units": "%",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 236,
      "count": 2,
      "name": "L2-N Voltage THD",
      "data_type": "Float32",
      "units": "%",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 238,
      "count": 2,
      "name": "L3-N Voltage THD",
      "data_type": "Float32",
      "units": "%",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 240,
      "count": 2,
      "name": "L1 Current THD",
      "data_type": "Float32",
      "units": "%",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 242,
      "count": 2,
      "name": "L2 Current THD",
      "data_type": "Float32",
      "units": "%",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 244,
      "count": 2,
      "name": "L3 Current THD",
      "data_type": "Float32",
      "units": "%",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 248,
      "count": 2,
      "name": "L-N Voltage THD",
      "data_type": "Float32",
      "units": "%",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 250,
      "count": 2,
      "name": "Current THD",
      "data_type": "Float32",
      "units": "%",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 254,
      "count": 2,
      "name": "Total Power Factor",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 258,
      "count": 2,
      "name": "L1 Demand Current",
      "data_type": "Float32",
      "units": "A",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 260,
      "count": 2,
      "name": "L2 Demand Current",
      "data_type": "Float32",
      "units": "A",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 262,
      "count": 2,
      "name": "L3 Demand Current",
      "data_type": "Float32",
      "units": "A",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 264,
      "count": 2,
      "name": "Maximum L1 Demand Current",
      "data_type": "Float32",
      "units": "A",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 266,
      "count": 2,
      "name": "Maximum L2 Demand Current",
      "data_type": "Float32",
      "units": "A",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 268,
      "count": 2,
      "name": "Maximum L3 Demand Current",
      "data_type": "Float32",
      "units": "A",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 334,
      "count": 2,
      "name": "L1-L2 Voltage THD",
      "data_type": "Float32",
      "units": "%",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 336,
      "count": 2,
      "name": "L2-L3 Voltage THD",
      "data_type": "Float32",
      "units": "%",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 338,
      "count": 2,
      "name": "L3-L1 Voltage THD",
      "data_type": "Float32",
      "units": "%",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 340,
      "count": 2,
      "name": "L-L Voltage THD",
      "data_type": "Float32",
      "units": "%",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 342,
      "count": 2,
      "name": "Total Energy (Active)",
      "data_type": "Float32",
      "units": "kWh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 344,
      "count": 2,
      "name": "Total Energy (Reactive)",
      "data_type": "Float32",
      "units": "kVArh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 346,
      "count": 2,
      "name": "L1 Import Energy (Active)",
      "data_type": "Float32",
      "units": "kWh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 348,
      "count": 2,
      "name": "L2 Import Energy (Active)",
      "data_type": "Float32",
      "units": "kWh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 350,
      "count": 2,
      "name": "L3 Import Energy (Active)",
      "data_type": "Float32",
      "units": "kWh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 352,
      "count": 2,
      "name": "L1 Export Energy (Active)",
      "data_type": "Float32",
      "units": "kWh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 354,
      "count": 2,
      "name": "L2 Export Energy (Active)",
      "data_type": "Float32",
      "units": "kWh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 356,
      "count": 2,
      "name": "L3 Export Energy (Active)",
      "data_type": "Float32",
      "units": "kWh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 358,
      "count": 2,
      "name": "L1 Total Energy (Active)",
      "data_type": "Float32",
      "units": "kWh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 360,
      "count": 2,
      "name": "L2 Total Energy (Active)",
      "data_type": "Float32",
      "units": "kWh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 362,
      "count": 2,
      "name": "L3 Total Energy (Active)",
      "data_type": "Float32",
      "units": "kWh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 364,
      "count": 2,
      "name": "L1 Import Energy (Reactive)",
      "data_type": "Float32",
      "units": "kVArh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 366,
      "count": 2,
      "name": "L2 Import Energy (Reactive)",
      "data_type": "Float32",
      "units": "kVArh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 368,
      "count": 2,
      "name": "L3 Import Energy (Reactive)",
      "data_type": "Float32",
      "units": "kVArh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 370,
      "count": 2,
      "name": "L1 Export Energy (Reactive)",
      "data_type": "Float32",
      "units": "kVArh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 372,
      "count": 2,
      "name": "L2 Export Energy (Reactive)",
      "data_type": "Float32",
      "units": "kVArh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 374,
      "count": 2,
      "name": "L3 Export Energy (Reactive)",
      "data_type": "Float32",
      "units": "kVArh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 376,
      "count": 2,
      "name": "L1 Total Energy (Reactive)",
      "data_type": "Float32",
      "units": "kVArh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 378,
      "count": 2,
      "name": "L2 Total Energy (Reactive)",
      "data_type": "Float32",
      "units": "kVArh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 380,
      "count": 2,
      "name": "L3 Total Energy (Reactive)",
      "data_type": "Float32",
      "units": "kVArh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    }
  ],
  "holding_registers": [
    {
      "address": 0,
      "count": 2,
      "name": "Demand Time",
      "data_type": "Float32",
      "units": "s",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 2,
      "count": 2,
      "name": "Demand Period",
      "data_type": "Float32",
      "units": "s",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 6,
      "count": 2,
      "name": "System Voltage",
      "data_type": "Float32",
      "units": "V",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 8,
      "count": 2,
      "name": "System Current",
      "data_type": "Float32",
      "units": "A",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 10,
      "count": 2,
      "name": "System Type",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Values: 1 = 1P2W, 2 = 3P3W, 3 = 3P4W."
    },
    {
      "address": 12,
      "count": 2,
      "name": "Relay Pulse Width",
      "data_type": "Float32",
      "units": "ms",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 18,
      "count": 2,
      "name": "Network Parity Stop",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Values: 0 = N-1, 1 = E-1, 2 = O-1, 3 = N-2."
    },
    {
      "address": 20,
      "count": 2,
      "name": "Meter ID",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 28,
      "count": 2,
      "name": "Baud Rate",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Values: 0 = 2400, 1 = 4800, 2 = 9600, 3 = 19200, 4 = 38400."
    },
    {
      "address": 36,
      "count": 2,
      "name": "System Power",
      "data_type": "Float32",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 63760,
      "count": 2,
      "name": "P1 Divisor",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Values: 0 = 0.001kWh/imp, 1 = 0.01kWh/imp, 2 = 0.1kWh/imp, 3 = 1kWh/imp, 4 = 10kWh/imp, 5 = 100kWh/imp."
    },
    {
      "address": 63776,
      "count": 2,
      "name": "Measurement Mode",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Values: 0 = 0, 1 = Total Imported, 2 = Total Imported + Exported, 3 = Total Imported - Exported."
    },
    {
      "address": 63792,
      "count": 2,
      "name": "Running Time",
      "data_type": "Float32",
      "units": "h",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 64512,
      "count": 2,
      "name": "Serial Number",
      "data_type": "UInt32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    }
  ],
  "combined_registers": [],
  "notes": "RS-485 device: reach it through a Modbus RTU-to-TCP gateway using the factory serial settings above. Measurements are IEEE-754 Float32 values (high word first) read with function code 04; the configuration registers are read/written with function code 03."
}
