{
 "manufacturer": "Eastron",
 "manufacturer_slug": "eastron",
 "model": "SDM630MCT",
 "model_slug": "sdm630mct",
 "short_model": "SDM630MCT",
 "aliases": [
  "SDM630 MCT"
 ],
 "equipment_type": "Energy meter",
 "applies_to": "Eastron SDM630MCT three-phase CT-connected DIN-rail meter with RS485 Modbus RTU, protocol implementation V1.7.",
 "summary": "The SDM630MCT is Eastron's three-phase, CT-connected (1 A / 5 A CT secondary) DIN-rail multifunction meter with an RS485 Modbus RTU port. Every value is a 32-bit IEEE-754 float, high register first: live readings and energy in input registers (function 04) and settings in holding registers (function 03 read, 16 write). This map covers the full input table plus the demand, wiring, RS485, CT/PT ratio, pulse and reset settings.",
 "transport": [
  "RTU"
 ],
 "defaults": {
  "unit_id": 1,
  "baud": 9600,
  "parity": "None",
  "data_bits": 8,
  "stop_bits": 1,
  "tcp_port": null
 },
 "addressing": {
  "convention": "Modicon",
  "note": "Registers are printed Modicon style (30001 / 40001, and six-digit 46xxxx for high addresses) next to the hex start address actually sent. Wire address = printed number minus 30001 or 40001 (or 400001): 30001 is 0x0000, 30007 is 0x0006 (the document's own example), 461457 is 0xF010."
 },
 "default_word_order": "ABCD",
 "firmware": null,
 "source": {
  "title": "Eastron SDM630MCT Smart Meter Modbus Protocol Implementation V1.7",
  "doc_number": "V1.7",
  "revision_date": null,
  "url": "https://www.eastroneurope.com/images/uploads/products/protocol/SDM630MCT_MODBUS_Protocol_V1.7.pdf",
  "pages": "Overview and data format pp. 1-2; input registers pp. 2-6; holding registers pp. 6-9"
 },
 "notes": [
  "Hosted by Eastron (Metering) Europe, Eastron's European site.",
  "Word order: the document says each value is an IEEE-754 float sent most significant register first by default (ABCD). It mentions a 'Register Order' holding register that can change this, but that register is not in the table, so it is not listed.",
  "Read and write an even number of registers; odd counts return an exception. A request is limited to 30 values (60 registers) per the overview, while the input-register section says 40 parameters; keep requests at 30 values or fewer.",
  "Each input value is marked available or not per wiring system (3P4W, 3P3W, 1P2W); unavailable values read zero. The descriptions say where a value is missing.",
  "Left out: 30255 'Total system power factor' because the table gives its unit as Degrees, which clashes with 30063.",
  "Left out: CT2 and PT2 rows (hex 0034 / 0030), which have no register number in the table; and the serial number (464513), an unsigned 32-bit integer with no stated word order.",
  "Demand note: the power-sum demand is described as calculated for import minus export; check on a live meter if the sign matters.",
  "Total kWh / kVArh (30343 / 30345) are import plus export, not net.",
  "CT type (1 A / 5 A) and DIN-rail mounting are from the SDM630MCT series user manual on eastrongroup.com (https://www.eastrongroup.com/eastrongroup/2024/08/21/eastronsdm630mctseriesusermanual.pdf).",
  "The password default is printed as 1000 in the holding-register table but as 0000 in the password section; try both.",
  "The reset register (461457) is a single 2-byte register although the overview says requests must use an even register count; the document does not resolve this."
 ],
 "registers": [
  {
   "table": "input_register",
   "address": 0,
   "documented": "30001",
   "name": "Phase 1 line to neutral volts",
   "description": "Not available on 3-phase 3-wire.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 2,
   "documented": "30003",
   "name": "Phase 2 line to neutral volts",
   "description": "Not available on 3-phase 3-wire or single-phase.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 4,
   "documented": "30005",
   "name": "Phase 3 line to neutral volts",
   "description": "Not available on 3-phase 3-wire or single-phase.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 6,
   "documented": "30007",
   "name": "Phase 1 current",
   "description": "",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "A",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 8,
   "documented": "30009",
   "name": "Phase 2 current",
   "description": "Not available on single-phase.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "A",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 10,
   "documented": "30011",
   "name": "Phase 3 current",
   "description": "Not available on single-phase.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "A",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 12,
   "documented": "30013",
   "name": "Phase 1 active power",
   "description": "Not available on 3-phase 3-wire.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "W",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 14,
   "documented": "30015",
   "name": "Phase 2 active power",
   "description": "Not available on 3-phase 3-wire or single-phase.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "W",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 16,
   "documented": "30017",
   "name": "Phase 3 active power",
   "description": "Not available on 3-phase 3-wire or single-phase.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "W",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 18,
   "documented": "30019",
   "name": "Phase 1 apparent power",
   "description": "Not available on 3-phase 3-wire.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "VA",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 20,
   "documented": "30021",
   "name": "Phase 2 apparent power",
   "description": "Not available on 3-phase 3-wire or single-phase.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "VA",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 22,
   "documented": "30023",
   "name": "Phase 3 apparent power",
   "description": "Not available on 3-phase 3-wire or single-phase.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "VA",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 24,
   "documented": "30025",
   "name": "Phase 1 reactive power",
   "description": "Not available on 3-phase 3-wire.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "VAr",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 26,
   "documented": "30027",
   "name": "Phase 2 reactive power",
   "description": "Not available on 3-phase 3-wire or single-phase.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "VAr",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 28,
   "documented": "30029",
   "name": "Phase 3 reactive power",
   "description": "Not available on 3-phase 3-wire or single-phase.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "VAr",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 30,
   "documented": "30031",
   "name": "Phase 1 power factor",
   "description": "Sign shows current direction: negative = reverse. Not available on 3-phase 3-wire.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 32,
   "documented": "30033",
   "name": "Phase 2 power factor",
   "description": "Not available on 3-phase 3-wire or single-phase.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 34,
   "documented": "30035",
   "name": "Phase 3 power factor",
   "description": "Not available on 3-phase 3-wire or single-phase.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 36,
   "documented": "30037",
   "name": "Phase 1 phase angle",
   "description": "Not available on 3-phase 3-wire.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "Degrees",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 38,
   "documented": "30039",
   "name": "Phase 2 phase angle",
   "description": "Not available on 3-phase 3-wire or single-phase.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "Degrees",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 40,
   "documented": "30041",
   "name": "Phase 3 phase angle",
   "description": "Not available on 3-phase 3-wire or single-phase.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "Degrees",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 42,
   "documented": "30043",
   "name": "Average line to neutral volts",
   "description": "Not available on 3-phase 3-wire or single-phase.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 46,
   "documented": "30047",
   "name": "Average line current",
   "description": "",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "A",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 48,
   "documented": "30049",
   "name": "Sum of line currents",
   "description": "",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "A",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 52,
   "documented": "30053",
   "name": "Total system power",
   "description": "",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "W",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 56,
   "documented": "30057",
   "name": "Total system volt amps",
   "description": "",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "VA",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 60,
   "documented": "30061",
   "name": "Total system VAr",
   "description": "",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "VAr",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 62,
   "documented": "30063",
   "name": "Total system power factor",
   "description": "Sign shows current direction: negative = reverse.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 66,
   "documented": "30067",
   "name": "Total system phase angle",
   "description": "",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "Degrees",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 70,
   "documented": "30071",
   "name": "Frequency of supply voltages",
   "description": "",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "Hz",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 72,
   "documented": "30073",
   "name": "Total import kWh",
   "description": "",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "kWh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 74,
   "documented": "30075",
   "name": "Total export kWh",
   "description": "",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "kWh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 76,
   "documented": "30077",
   "name": "Total import kVArh",
   "description": "",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "kVArh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 78,
   "documented": "30079",
   "name": "Total export kVArh",
   "description": "",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "kVArh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 80,
   "documented": "30081",
   "name": "Total VAh",
   "description": "",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "kVAh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 82,
   "documented": "30083",
   "name": "Ah",
   "description": "",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "Ah",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 84,
   "documented": "30085",
   "name": "Total system power demand",
   "description": "",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "W",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 86,
   "documented": "30087",
   "name": "Maximum total system power demand",
   "description": "",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "W",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 100,
   "documented": "30101",
   "name": "Total system VA demand",
   "description": "",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "VA",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 102,
   "documented": "30103",
   "name": "Maximum total system VA demand",
   "description": "",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "VA",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 104,
   "documented": "30105",
   "name": "Neutral current demand",
   "description": "Only on 3-phase 4-wire.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "A",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 106,
   "documented": "30107",
   "name": "Maximum neutral current demand",
   "description": "Only on 3-phase 4-wire.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "A",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 108,
   "documented": "30109",
   "name": "Total system reactive power demand",
   "description": "Not available on 3-phase 3-wire.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "VAr",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 110,
   "documented": "30111",
   "name": "Maximum total system reactive power demand",
   "description": "Not available on 3-phase 3-wire.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "VAr",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 200,
   "documented": "30201",
   "name": "Line 1 to line 2 volts",
   "description": "Not available on single-phase 2-wire.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 202,
   "documented": "30203",
   "name": "Line 2 to line 3 volts",
   "description": "Not available on single-phase 2-wire.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 204,
   "documented": "30205",
   "name": "Line 3 to line 1 volts",
   "description": "Not available on single-phase 2-wire.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 206,
   "documented": "30207",
   "name": "Average line to line volts",
   "description": "Not available on single-phase 2-wire.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 224,
   "documented": "30225",
   "name": "Neutral current",
   "description": "Only on 3-phase 4-wire.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "A",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 234,
   "documented": "30235",
   "name": "Phase 1 L/N volts THD",
   "description": "Not available on 3-phase 3-wire.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "%",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 236,
   "documented": "30237",
   "name": "Phase 2 L/N volts THD",
   "description": "Not available on 3-phase 3-wire or single-phase.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "%",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 238,
   "documented": "30239",
   "name": "Phase 3 L/N volts THD",
   "description": "Not available on 3-phase 3-wire or single-phase.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "%",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 240,
   "documented": "30241",
   "name": "Phase 1 current THD",
   "description": "",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "%",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 242,
   "documented": "30243",
   "name": "Phase 2 current THD",
   "description": "Not available on single-phase.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "%",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 244,
   "documented": "30245",
   "name": "Phase 3 current THD",
   "description": "Not available on single-phase.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "%",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 248,
   "documented": "30249",
   "name": "Average line to neutral volts THD",
   "description": "Not available on 3-phase 3-wire.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "%",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 250,
   "documented": "30251",
   "name": "Average line current THD",
   "description": "",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "%",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 258,
   "documented": "30259",
   "name": "Phase 1 current demand",
   "description": "",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "A",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 260,
   "documented": "30261",
   "name": "Phase 2 current demand",
   "description": "Not available on single-phase.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "A",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 262,
   "documented": "30263",
   "name": "Phase 3 current demand",
   "description": "Not available on single-phase.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "A",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 264,
   "documented": "30265",
   "name": "Maximum phase 1 current demand",
   "description": "",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "A",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 266,
   "documented": "30267",
   "name": "Maximum phase 2 current demand",
   "description": "Not available on single-phase.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "A",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 268,
   "documented": "30269",
   "name": "Maximum phase 3 current demand",
   "description": "Not available on single-phase.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "A",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 334,
   "documented": "30335",
   "name": "Line 1 to line 2 volts THD",
   "description": "Not available on single-phase 2-wire.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "%",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 336,
   "documented": "30337",
   "name": "Line 2 to line 3 volts THD",
   "description": "Not available on single-phase 2-wire.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "%",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 338,
   "documented": "30339",
   "name": "Line 3 to line 1 volts THD",
   "description": "Not available on single-phase 2-wire.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "%",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 340,
   "documented": "30341",
   "name": "Average line to line volts THD",
   "description": "Not available on single-phase 2-wire.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "%",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 342,
   "documented": "30343",
   "name": "Total kWh",
   "description": "Import plus export.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "kWh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 344,
   "documented": "30345",
   "name": "Total kVArh",
   "description": "Import plus export.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "kVArh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 346,
   "documented": "30347",
   "name": "L1 import kWh",
   "description": "",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "kWh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 348,
   "documented": "30349",
   "name": "L2 import kWh",
   "description": "Not available on single-phase.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "kWh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 350,
   "documented": "30351",
   "name": "L3 import kWh",
   "description": "Not available on single-phase.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "kWh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 352,
   "documented": "30353",
   "name": "L1 export kWh",
   "description": "",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "kWh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 354,
   "documented": "30355",
   "name": "L2 export kWh",
   "description": "Not available on single-phase.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "kWh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 356,
   "documented": "30357",
   "name": "L3 export kWh",
   "description": "Not available on single-phase.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "kWh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 358,
   "documented": "30359",
   "name": "L1 total kWh",
   "description": "",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "kWh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 360,
   "documented": "30361",
   "name": "L2 total kWh",
   "description": "Not available on single-phase.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "kWh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 362,
   "documented": "30363",
   "name": "L3 total kWh",
   "description": "Not available on single-phase.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "kWh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 364,
   "documented": "30365",
   "name": "L1 import kVArh",
   "description": "",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "kVArh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 366,
   "documented": "30367",
   "name": "L2 import kVArh",
   "description": "Not available on single-phase.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "kVArh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 368,
   "documented": "30369",
   "name": "L3 import kVArh",
   "description": "Not available on single-phase.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "kVArh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 370,
   "documented": "30371",
   "name": "L1 export kVArh",
   "description": "",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "kVArh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 372,
   "documented": "30373",
   "name": "L2 export kVArh",
   "description": "Not available on single-phase.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "kVArh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 374,
   "documented": "30375",
   "name": "L3 export kVArh",
   "description": "Not available on single-phase.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "kVArh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 376,
   "documented": "30377",
   "name": "L1 total kVArh",
   "description": "",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "kVArh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 378,
   "documented": "30379",
   "name": "L2 total kVArh",
   "description": "Not available on single-phase.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "kVArh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 380,
   "documented": "30381",
   "name": "L3 total kVArh",
   "description": "Not available on single-phase.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "kVArh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 384,
   "documented": "30385",
   "name": "Resettable total active energy",
   "description": "",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "kWh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 386,
   "documented": "30387",
   "name": "Resettable total reactive energy",
   "description": "",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "kVArh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 388,
   "documented": "30389",
   "name": "Resettable import active energy",
   "description": "",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "kWh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 390,
   "documented": "30391",
   "name": "Resettable export active energy",
   "description": "",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "kWh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 392,
   "documented": "30393",
   "name": "Resettable import reactive energy",
   "description": "",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "kVArh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "input_register",
   "address": 394,
   "documented": "30395",
   "name": "Resettable export reactive energy",
   "description": "",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "kVArh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 0,
   "documented": "40001",
   "name": "Demand time",
   "description": "Minutes into the first demand period; demand values are valid once it reaches the period.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "min",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 2,
   "documented": "40003",
   "name": "Demand period",
   "description": "0, 5, 8, 10, 15, 20, 30 or 60 min (default 60); 0 shows live values.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "min",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 10,
   "documented": "40011",
   "name": "System type",
   "description": "Needs the password (40025) first.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "",
   "access": "RW",
   "values": {
    "1": "1P2W",
    "2": "3P3W",
    "3": "3P4W"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 12,
   "documented": "40013",
   "name": "Pulse output 1 width",
   "description": "60, 100 or 200 ms; default 200.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "ms",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 14,
   "documented": "40015",
   "name": "Password lock",
   "description": "",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "",
   "access": "R",
   "values": {
    "0": "Locked",
    "1": "Unlocked"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 18,
   "documented": "40019",
   "name": "Parity / stop bits",
   "description": "Default 0.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "",
   "access": "RW",
   "values": {
    "0": "1 stop bit, no parity",
    "1": "1 stop bit, even parity",
    "2": "1 stop bit, odd parity",
    "3": "2 stop bits, no parity"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 20,
   "documented": "40021",
   "name": "Modbus address",
   "description": "1-247, default 1.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 22,
   "documented": "40023",
   "name": "Pulse 1 divisor",
   "description": "",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "",
   "access": "RW",
   "values": {
    "1": "0.01 kWh/imp",
    "2": "0.1 kWh/imp",
    "3": "1 kWh/imp",
    "4": "10 kWh/imp",
    "5": "100 kWh/imp",
    "6": "1000 kWh/imp"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 24,
   "documented": "40025",
   "name": "Password",
   "description": "Write the password to unlock protected settings (default 1000 per the table; see notes).",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 28,
   "documented": "40029",
   "name": "Baud rate",
   "description": "Default 2 (9600).",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "",
   "access": "RW",
   "values": {
    "0": "2400",
    "1": "4800",
    "2": "9600",
    "3": "19200",
    "4": "38400"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 62,
   "documented": "40063",
   "name": "CT ratio",
   "description": "Primary / secondary current, 1-2000. Needs the password; non-MID meters only.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 64,
   "documented": "40065",
   "name": "PT ratio",
   "description": "Primary / secondary voltage, 1-2000. Needs the password; non-MID meters only.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 86,
   "documented": "40087",
   "name": "Pulse 1 energy type",
   "description": "Default 39.",
   "data_type": "FLOAT32",
   "length": 2,
   "word_order": "ABCD",
   "scale": 1,
   "units": "",
   "access": "RW",
   "values": {
    "37": "Total kWh",
    "39": "Total kVArh"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 61456,
   "documented": "461457",
   "name": "Reset",
   "description": "Write 0000 to reset maximum demand or 0003 to reset the resettable energy.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "W",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 64514,
   "documented": "464515",
   "name": "Meter code",
   "description": "Reads 0x0079 on this model.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 64515,
   "documented": "464516",
   "name": "Software version",
   "description": "Hex-coded firmware version.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  }
 ],
 "integration": {
  "summary": "Use function 04 from 30001 (wire 0) in blocks of up to 60 registers; every value is a big-endian float. Settings are floats in holding registers written with function 16, one parameter per message; system type and CT/PT ratios need the password written to 40025 first.",
  "minimum_registers": [
   {
    "table": "input_register",
    "address": 0,
    "why": "Phase 1 voltage"
   },
   {
    "table": "input_register",
    "address": 6,
    "why": "Phase 1 current"
   },
   {
    "table": "input_register",
    "address": 52,
    "why": "Total system power"
   },
   {
    "table": "input_register",
    "address": 62,
    "why": "Total power factor"
   },
   {
    "table": "input_register",
    "address": 70,
    "why": "Frequency"
   },
   {
    "table": "input_register",
    "address": 72,
    "why": "Total import kWh"
   },
   {
    "table": "input_register",
    "address": 74,
    "why": "Total export kWh"
   },
   {
    "table": "holding_register",
    "address": 62,
    "why": "CT ratio check"
   }
  ],
  "enable": "RS485 Modbus RTU is built in on the RS485 versions. Set address, baud rate and parity/stop bits from the front setup menu or holding registers 40021, 40029 and 40019.",
  "watchdog": null,
  "quirks": [
   "All values, including settings, are 32-bit floats (ABCD).",
   "Odd register counts are rejected.",
   "Power factor sign shows current direction, not leading/lagging."
  ],
  "setup": [
   "Defaults: address 1, 9600 baud, no parity, 1 stop bit.",
   "Baud 2400-38400.",
   "Terminate both bus ends with 120 ohm; up to 32 nodes and 1200 m per segment."
  ],
  "gotchas": [
   "CT and PT ratios (40063 / 40065) need the password first and are not settable on MID versions.",
   "The meter does not answer broadcasts (address 0)."
  ]
 },
 "page": "https://easymodbus.com/modbus-register-maps/eastron/sdm630mct",
 "address_note": "address = 0-based Modbus wire (PDU) address; documented = as printed in the source.",
 "note": "Re-typed from the manufacturer's public documentation (see source) and verified against it. Registers vary by firmware and options; verify against the live device before writing."
}
