{
  "$schema": "https://raw.githubusercontent.com/nobrega8/mbmap-library/main/schema/mbmap-2.schema.json",
  "mbmap": 2,
  "vendor": "Legrand",
  "model": "EMDX3 4 120 45",
  "models": [
    "EMDX3 4 120 45"
  ],
  "vendor_website": "legrand.com",
  "description": "EMDX3 multifunction measuring unit, RS-485 Modbus RTU",
  "revision": 1,
  "revised": "2026-10-18",
  "source": "Legrand EMDX3 Measuring Unit RS485 Modbus table, cat. no. 4 120 45",
  "sources": [
    {
      "title": "EMDX3 Multifunction meter Modbus Table 412045",
      "url": "https://assets.legrand.com/pim/NP-FT-GT/EMDX3%20Multifunction%20meter%20ModbusTable%20412045.pdf"
    }
  ],
  "notes": [
    "The table calls the measurement block 'input registers' but lists only function codes 3 (read) and 16 (write), so every register is read as a holding register.",
    "Only the sections of the table that hold measurements and settings are mapped. The 'Register Number' column of the manual is the address plus one; this map uses the address column.",
    "Voltages are in mV and currents in mA. Powers and energies are raw counts whose unit depends on the CT ratio (register 4608): powers are 0.01 W, 0.01 var or 0.01 VA when CT < 5000 and 1 W, 1 var or 1 VA when CT >= 5000; energies are 10 Wh to 1 MWh per count as the manual's note 2 lists by CT ratio. Use the signed block at 5400 (always in W, var and VA) when a fixed scale is wanted.",
    "A sign register next to each power value says if it is positive (0) or negative (1); the power itself is unsigned.",
    "In a 3-wire network without neutral the voltage THD and the voltage minimum and maximum registers refer to the chained voltages instead of the phase voltages (note 3 of the manual).",
    "Writing settings: write 0x5AA5 to register 9984, write the new values, write 0x5AA5 to 9984 again and then 0x000A to 9728 to save them. Writing 0x000B to 10240 after unlocking restores the defaults.",
    "The manual gives no factory serial settings: baud rate and parity are programmable, one stop bit, device address 1 to 247. The defaults in this file are the format's defaults."
  ],
  "protocol": "rtu",
  "unit_id": 1,
  "data_bits": 8,
  "stop_bits": 1,
  "byte_order": "big",
  "word_order": "big",
  "address_base": 0,
  "x_status": "official",
  "enums": {
    "device_id": {"4112": "EMDX3 4 120 45"},
    "pf_sector": {"0": "PF = 1", "1": "Inductive", "2": "Capacitive"},
    "sign": {"0": "Positive", "1": "Negative"},
    "averaging_time": {"0": "5 min", "1": "8 min", "2": "10 min", "3": "15 min", "4": "20 min", "5": "30 min", "6": "60 min"},
    "insertion": {"0": "3N-3E", "1": "3-3E", "2": "3-2E", "3": "1N-1E"},
    "line1": {"0": "V1", "1": "V12", "2": "I1", "3": "In", "4": "P", "5": "Q", "6": "S", "7": "P1", "8": "Q1", "9": "S1", "10": "PF 3-phase"},
    "line2": {"0": "V2", "1": "V23", "2": "I2", "3": "P", "4": "Q", "5": "S", "6": "P2", "7": "Q2", "8": "S2", "9": "Frequency", "10": "I1"},
    "line3": {"0": "V3", "1": "V31", "2": "I3", "3": "P", "4": "Q", "5": "S", "6": "P3", "7": "Q3", "8": "S3", "9": "P1", "10": "I1"},
    "run_hour_basis": {"0": "Voltages", "1": "Power"},
    "pulse_duration": {"0": "50 ms", "1": "100 ms", "2": "200 ms", "3": "300 ms"},
    "pulse_weight": {"0": "0.01 kWh", "1": "0.1 kWh", "2": "1 kWh", "3": "10 kWh", "4": "0.1 MWh", "5": "1 MWh", "6": "10 MWh"},
    "pulse_energy": {"0": "Active energy", "1": "Reactive energy"}
  },
  "registers": [
    {"name": "Device identifier", "group": "Device", "area": "holding", "address": 768, "type": "uint16", "access": "R", "enum": "device_id", "reference": 4112, "role": "model", "description": "Returns 0x1010"},

    {"name": "Voltage L1-N", "group": "Voltage", "area": "holding", "address": 4096, "type": "uint32", "access": "R", "scale": 0.001, "unit": "V"},
    {"name": "Voltage L2-N", "group": "Voltage", "area": "holding", "address": 4098, "type": "uint32", "access": "R", "scale": 0.001, "unit": "V"},
    {"name": "Voltage L3-N", "group": "Voltage", "area": "holding", "address": 4100, "type": "uint32", "access": "R", "scale": 0.001, "unit": "V"},
    {"name": "Current L1", "group": "Current", "area": "holding", "address": 4102, "type": "uint32", "access": "R", "scale": 0.001, "unit": "A"},
    {"name": "Current L2", "group": "Current", "area": "holding", "address": 4104, "type": "uint32", "access": "R", "scale": 0.001, "unit": "A"},
    {"name": "Current L3", "group": "Current", "area": "holding", "address": 4106, "type": "uint32", "access": "R", "scale": 0.001, "unit": "A"},
    {"name": "Neutral current", "group": "Current", "area": "holding", "address": 4108, "type": "uint32", "access": "R", "scale": 0.001, "unit": "A"},
    {"name": "Voltage L1-L2", "group": "Voltage", "area": "holding", "address": 4110, "type": "uint32", "access": "R", "scale": 0.001, "unit": "V"},
    {"name": "Voltage L2-L3", "group": "Voltage", "area": "holding", "address": 4112, "type": "uint32", "access": "R", "scale": 0.001, "unit": "V"},
    {"name": "Voltage L3-L1", "group": "Voltage", "area": "holding", "address": 4114, "type": "uint32", "access": "R", "scale": 0.001, "unit": "V"},

    {"name": "Active power (raw)", "group": "Power", "area": "holding", "address": 4116, "type": "uint32", "access": "R", "description": "3-phase; 0.01 W when CT < 5000, 1 W otherwise; sign in register 4122"},
    {"name": "Reactive power (raw)", "group": "Power", "area": "holding", "address": 4118, "type": "uint32", "access": "R", "description": "3-phase; 0.01 var when CT < 5000, 1 var otherwise; sign in register 4123"},
    {"name": "Apparent power (raw)", "group": "Power", "area": "holding", "address": 4120, "type": "uint32", "access": "R", "description": "3-phase; 0.01 VA when CT < 5000, 1 VA otherwise"},
    {"name": "Active power sign", "group": "Power", "area": "holding", "address": 4122, "type": "uint16", "access": "R", "enum": "sign"},
    {"name": "Reactive power sign", "group": "Power", "area": "holding", "address": 4123, "type": "uint16", "access": "R", "enum": "sign"},
    {"name": "Positive active energy (raw)", "group": "Energy", "area": "holding", "address": 4124, "type": "uint32", "access": "R", "description": "Unit set by the CT ratio (note 2), in Wh; the wrap-around counter at 5440 counts each 100 000 000"},
    {"name": "Positive reactive energy (raw)", "group": "Energy", "area": "holding", "address": 4126, "type": "uint32", "access": "R", "description": "Unit set by the CT ratio (note 2), in varh"},
    {"name": "Negative active energy (raw)", "group": "Energy", "area": "holding", "address": 4128, "type": "uint32", "access": "R", "description": "Unit set by the CT ratio (note 2), in Wh"},
    {"name": "Negative reactive energy (raw)", "group": "Energy", "area": "holding", "address": 4130, "type": "uint32", "access": "R", "description": "Unit set by the CT ratio (note 2), in varh"},
    {"name": "Power factor", "group": "Power", "area": "holding", "address": 4132, "type": "int16", "access": "R", "scale": 0.01, "description": "3-phase"},
    {"name": "Power factor sector", "group": "Power", "area": "holding", "address": 4133, "type": "uint16", "access": "R", "enum": "pf_sector", "description": "3-phase"},
    {"name": "Frequency", "group": "Voltage", "area": "holding", "address": 4134, "type": "uint16", "access": "R", "scale": 0.1, "unit": "Hz"},
    {"name": "Average active power (raw)", "group": "Demand", "area": "holding", "address": 4135, "type": "uint32", "access": "R", "description": "3-phase; 0.01 W when CT < 5000, 1 W otherwise"},
    {"name": "Peak maximum demand (raw)", "group": "Demand", "area": "holding", "address": 4137, "type": "uint32", "access": "R", "description": "3-phase; 0.01 W when CT < 5000, 1 W otherwise"},
    {"name": "Average power time counter", "group": "Demand", "area": "holding", "address": 4139, "type": "uint16", "access": "R", "unit": "min"},

    {"name": "Active power L1 (raw)", "group": "Power", "area": "holding", "address": 4140, "type": "uint32", "access": "R", "description": "0.01 W when CT < 5000, 1 W otherwise; sign in register 4146"},
    {"name": "Active power L2 (raw)", "group": "Power", "area": "holding", "address": 4142, "type": "uint32", "access": "R", "description": "0.01 W when CT < 5000, 1 W otherwise; sign in register 4147"},
    {"name": "Active power L3 (raw)", "group": "Power", "area": "holding", "address": 4144, "type": "uint32", "access": "R", "description": "0.01 W when CT < 5000, 1 W otherwise; sign in register 4148"},
    {"name": "Active power L1 sign", "group": "Power", "area": "holding", "address": 4146, "type": "uint16", "access": "R", "enum": "sign"},
    {"name": "Active power L2 sign", "group": "Power", "area": "holding", "address": 4147, "type": "uint16", "access": "R", "enum": "sign"},
    {"name": "Active power L3 sign", "group": "Power", "area": "holding", "address": 4148, "type": "uint16", "access": "R", "enum": "sign"},
    {"name": "Reactive power L1 (raw)", "group": "Power", "area": "holding", "address": 4149, "type": "uint32", "access": "R", "description": "0.01 var when CT < 5000, 1 var otherwise; sign in register 4155"},
    {"name": "Reactive power L2 (raw)", "group": "Power", "area": "holding", "address": 4151, "type": "uint32", "access": "R", "description": "0.01 var when CT < 5000, 1 var otherwise; sign in register 4156"},
    {"name": "Reactive power L3 (raw)", "group": "Power", "area": "holding", "address": 4153, "type": "uint32", "access": "R", "description": "0.01 var when CT < 5000, 1 var otherwise; sign in register 4157"},
    {"name": "Reactive power L1 sign", "group": "Power", "area": "holding", "address": 4155, "type": "uint16", "access": "R", "enum": "sign"},
    {"name": "Reactive power L2 sign", "group": "Power", "area": "holding", "address": 4156, "type": "uint16", "access": "R", "enum": "sign"},
    {"name": "Reactive power L3 sign", "group": "Power", "area": "holding", "address": 4157, "type": "uint16", "access": "R", "enum": "sign"},
    {"name": "Apparent power L1 (raw)", "group": "Power", "area": "holding", "address": 4158, "type": "uint32", "access": "R", "description": "0.01 VA when CT < 5000, 1 VA otherwise"},
    {"name": "Apparent power L2 (raw)", "group": "Power", "area": "holding", "address": 4160, "type": "uint32", "access": "R", "description": "0.01 VA when CT < 5000, 1 VA otherwise"},
    {"name": "Apparent power L3 (raw)", "group": "Power", "area": "holding", "address": 4162, "type": "uint32", "access": "R", "description": "0.01 VA when CT < 5000, 1 VA otherwise"},
    {"name": "Power factor L1", "group": "Power", "area": "holding", "address": 4164, "type": "int16", "access": "R", "scale": 0.01},
    {"name": "Power factor L2", "group": "Power", "area": "holding", "address": 4165, "type": "int16", "access": "R", "scale": 0.01},
    {"name": "Power factor L3", "group": "Power", "area": "holding", "address": 4166, "type": "int16", "access": "R", "scale": 0.01},
    {"name": "Power factor sector L1", "group": "Power", "area": "holding", "address": 4167, "type": "uint16", "access": "R", "enum": "pf_sector"},
    {"name": "Power factor sector L2", "group": "Power", "area": "holding", "address": 4168, "type": "uint16", "access": "R", "enum": "pf_sector"},
    {"name": "Power factor sector L3", "group": "Power", "area": "holding", "address": 4169, "type": "uint16", "access": "R", "enum": "pf_sector"},

    {"name": "Voltage THD L1", "group": "Harmonics", "area": "holding", "address": 4170, "type": "uint16", "access": "R", "scale": 0.1, "unit": "%", "description": "Chained voltage when there is no neutral"},
    {"name": "Voltage THD L2", "group": "Harmonics", "area": "holding", "address": 4171, "type": "uint16", "access": "R", "scale": 0.1, "unit": "%", "description": "Chained voltage when there is no neutral"},
    {"name": "Voltage THD L3", "group": "Harmonics", "area": "holding", "address": 4172, "type": "uint16", "access": "R", "scale": 0.1, "unit": "%", "description": "Chained voltage when there is no neutral"},
    {"name": "Current THD L1", "group": "Harmonics", "area": "holding", "address": 4173, "type": "uint16", "access": "R", "scale": 0.1, "unit": "%"},
    {"name": "Current THD L2", "group": "Harmonics", "area": "holding", "address": 4174, "type": "uint16", "access": "R", "scale": 0.1, "unit": "%"},
    {"name": "Current THD L3", "group": "Harmonics", "area": "holding", "address": 4175, "type": "uint16", "access": "R", "scale": 0.1, "unit": "%"},

    {"name": "Average current L1", "group": "Current", "area": "holding", "address": 4176, "type": "uint32", "access": "R", "scale": 0.001, "unit": "A"},
    {"name": "Average current L2", "group": "Current", "area": "holding", "address": 4178, "type": "uint32", "access": "R", "scale": 0.001, "unit": "A"},
    {"name": "Average current L3", "group": "Current", "area": "holding", "address": 4180, "type": "uint32", "access": "R", "scale": 0.001, "unit": "A"},
    {"name": "Peak current L1", "group": "Current", "area": "holding", "address": 4182, "type": "uint32", "access": "R", "scale": 0.001, "unit": "A"},
    {"name": "Peak current L2", "group": "Current", "area": "holding", "address": 4184, "type": "uint32", "access": "R", "scale": 0.001, "unit": "A"},
    {"name": "Peak current L3", "group": "Current", "area": "holding", "address": 4186, "type": "uint32", "access": "R", "scale": 0.001, "unit": "A"},
    {"name": "Average current 3-phase", "group": "Current", "area": "holding", "address": 4188, "type": "uint32", "access": "R", "scale": 0.001, "unit": "A", "description": "(I1 + I2 + I3) / 3"},
    {"name": "Minimum voltage L1", "group": "Voltage", "area": "holding", "address": 4190, "type": "uint32", "access": "R", "scale": 0.001, "unit": "V", "description": "Chained voltage when there is no neutral"},
    {"name": "Minimum voltage L2", "group": "Voltage", "area": "holding", "address": 4192, "type": "uint32", "access": "R", "scale": 0.001, "unit": "V", "description": "Chained voltage when there is no neutral"},
    {"name": "Minimum voltage L3", "group": "Voltage", "area": "holding", "address": 4194, "type": "uint32", "access": "R", "scale": 0.001, "unit": "V", "description": "Chained voltage when there is no neutral"},
    {"name": "Maximum voltage L1", "group": "Voltage", "area": "holding", "address": 4196, "type": "uint32", "access": "R", "scale": 0.001, "unit": "V", "description": "Chained voltage when there is no neutral"},
    {"name": "Maximum voltage L2", "group": "Voltage", "area": "holding", "address": 4198, "type": "uint32", "access": "R", "scale": 0.001, "unit": "V", "description": "Chained voltage when there is no neutral"},
    {"name": "Maximum voltage L3", "group": "Voltage", "area": "holding", "address": 4200, "type": "uint32", "access": "R", "scale": 0.001, "unit": "V", "description": "Chained voltage when there is no neutral"},
    {"name": "Partial active energy (raw)", "group": "Energy", "area": "holding", "address": 4202, "type": "uint32", "access": "R", "description": "Unit set by the CT ratio (note 2), in Wh"},
    {"name": "Partial reactive energy (raw)", "group": "Energy", "area": "holding", "address": 4204, "type": "uint32", "access": "R", "description": "Unit set by the CT ratio (note 2), in varh"},
    {"name": "Operating timer", "group": "Device", "area": "holding", "address": 4206, "type": "uint16", "access": "R", "unit": "h"},
    {"name": "Average active power, window (raw)", "group": "Demand", "area": "holding", "address": 4208, "type": "uint32", "access": "R", "description": "3-phase; 0.01 W when CT < 5000, 1 W otherwise"},
    {"name": "Average reactive power, window (raw)", "group": "Demand", "area": "holding", "address": 4210, "type": "uint32", "access": "R", "description": "3-phase; 0.01 var when CT < 5000, 1 var otherwise"},
    {"name": "Average apparent power, window (raw)", "group": "Demand", "area": "holding", "address": 4212, "type": "uint32", "access": "R", "description": "3-phase; 0.01 VA when CT < 5000, 1 VA otherwise"},
    {"name": "Active PMD power (raw)", "group": "Demand", "area": "holding", "address": 4214, "type": "uint32", "access": "R", "description": "3-phase; 0.01 W when CT < 5000, 1 W otherwise"},
    {"name": "Reactive PMD power (raw)", "group": "Demand", "area": "holding", "address": 4216, "type": "uint32", "access": "R", "description": "3-phase; 0.01 var when CT < 5000, 1 var otherwise"},
    {"name": "Apparent PMD power (raw)", "group": "Demand", "area": "holding", "address": 4218, "type": "uint32", "access": "R", "description": "3-phase; 0.01 VA when CT < 5000, 1 VA otherwise"},
    {"name": "Operating timer (minutes)", "group": "Device", "area": "holding", "address": 4220, "type": "uint32", "access": "R", "unit": "min"},

    {"name": "CT ratio", "group": "Settings", "area": "holding", "address": 4608, "type": "uint16", "access": "R", "description": "Primary current divided by secondary current; sets the unit of powers and energies"},

    {"name": "Total active power (signed)", "group": "Signed values", "area": "holding", "address": 5400, "type": "int32", "access": "R", "unit": "W"},
    {"name": "Total reactive power (signed)", "group": "Signed values", "area": "holding", "address": 5402, "type": "int32", "access": "R", "unit": "var"},
    {"name": "Active power L1 (signed)", "group": "Signed values", "area": "holding", "address": 5404, "type": "int32", "access": "R", "unit": "W"},
    {"name": "Active power L2 (signed)", "group": "Signed values", "area": "holding", "address": 5406, "type": "int32", "access": "R", "unit": "W"},
    {"name": "Active power L3 (signed)", "group": "Signed values", "area": "holding", "address": 5408, "type": "int32", "access": "R", "unit": "W"},
    {"name": "Reactive power L1 (signed)", "group": "Signed values", "area": "holding", "address": 5410, "type": "int32", "access": "R", "unit": "var"},
    {"name": "Reactive power L2 (signed)", "group": "Signed values", "area": "holding", "address": 5412, "type": "int32", "access": "R", "unit": "var"},
    {"name": "Reactive power L3 (signed)", "group": "Signed values", "area": "holding", "address": 5414, "type": "int32", "access": "R", "unit": "var"},
    {"name": "Total power factor (signed)", "group": "Signed values", "area": "holding", "address": 5416, "type": "int32", "access": "R", "scale": 0.001},
    {"name": "Power factor L1 (signed)", "group": "Signed values", "area": "holding", "address": 5418, "type": "int32", "access": "R", "scale": 0.001},
    {"name": "Power factor L2 (signed)", "group": "Signed values", "area": "holding", "address": 5420, "type": "int32", "access": "R", "scale": 0.001},
    {"name": "Power factor L3 (signed)", "group": "Signed values", "area": "holding", "address": 5422, "type": "int32", "access": "R", "scale": 0.001},
    {"name": "Total apparent power", "group": "Signed values", "area": "holding", "address": 5424, "type": "uint32", "access": "R", "unit": "VA"},
    {"name": "Average active power", "group": "Signed values", "area": "holding", "address": 5426, "type": "uint32", "access": "R", "unit": "W"},
    {"name": "Average reactive power", "group": "Signed values", "area": "holding", "address": 5428, "type": "uint32", "access": "R", "unit": "var"},
    {"name": "Average apparent power", "group": "Signed values", "area": "holding", "address": 5430, "type": "uint32", "access": "R", "unit": "VA"},
    {"name": "Maximum active power", "group": "Signed values", "area": "holding", "address": 5432, "type": "uint32", "access": "R", "unit": "W"},
    {"name": "Maximum reactive power", "group": "Signed values", "area": "holding", "address": 5434, "type": "uint32", "access": "R", "unit": "var"},
    {"name": "Maximum apparent power", "group": "Signed values", "area": "holding", "address": 5436, "type": "uint32", "access": "R", "unit": "VA"},

    {"name": "Wrap-around positive active energy", "group": "Energy", "area": "holding", "address": 5440, "type": "uint16", "access": "R", "description": "Counts each time the energy register passes 100 000 000"},
    {"name": "Wrap-around positive reactive energy", "group": "Energy", "area": "holding", "address": 5441, "type": "uint16", "access": "R"},
    {"name": "Wrap-around negative active energy", "group": "Energy", "area": "holding", "address": 5442, "type": "uint16", "access": "R"},
    {"name": "Wrap-around negative reactive energy", "group": "Energy", "area": "holding", "address": 5443, "type": "uint16", "access": "R"},

    {"name": "Positive active energy, low part", "group": "Energy", "area": "holding", "address": 5888, "type": "uint32", "access": "R", "unit": "Wh", "description": "Add High part x 1 000 000 Wh"},
    {"name": "Positive active energy, high part", "group": "Energy", "area": "holding", "address": 5890, "type": "uint32", "access": "R", "unit": "MWh"},
    {"name": "Positive reactive energy, low part", "group": "Energy", "area": "holding", "address": 5892, "type": "uint32", "access": "R", "unit": "varh"},
    {"name": "Positive reactive energy, high part", "group": "Energy", "area": "holding", "address": 5894, "type": "uint32", "access": "R", "unit": "Mvarh"},
    {"name": "Negative active energy, low part", "group": "Energy", "area": "holding", "address": 5896, "type": "uint32", "access": "R", "unit": "Wh"},
    {"name": "Negative active energy, high part", "group": "Energy", "area": "holding", "address": 5898, "type": "uint32", "access": "R", "unit": "MWh"},
    {"name": "Negative reactive energy, low part", "group": "Energy", "area": "holding", "address": 5900, "type": "uint32", "access": "R", "unit": "varh"},
    {"name": "Negative reactive energy, high part", "group": "Energy", "area": "holding", "address": 5902, "type": "uint32", "access": "R", "unit": "Mvarh"},
    {"name": "Partial active energy, low part", "group": "Energy", "area": "holding", "address": 5904, "type": "uint32", "access": "R", "unit": "Wh"},
    {"name": "Partial active energy, high part", "group": "Energy", "area": "holding", "address": 5906, "type": "uint32", "access": "R", "unit": "MWh"},
    {"name": "Partial reactive energy, low part", "group": "Energy", "area": "holding", "address": 5908, "type": "uint32", "access": "R", "unit": "varh"},
    {"name": "Partial reactive energy, high part", "group": "Energy", "area": "holding", "address": 5910, "type": "uint32", "access": "R", "unit": "Mvarh"},
    {"name": "Negative partial active energy, low part", "group": "Energy", "area": "holding", "address": 5912, "type": "uint32", "access": "R", "unit": "Wh"},
    {"name": "Negative partial active energy, high part", "group": "Energy", "area": "holding", "address": 5914, "type": "uint32", "access": "R", "unit": "MWh"},
    {"name": "Negative partial reactive energy, low part", "group": "Energy", "area": "holding", "address": 5916, "type": "uint32", "access": "R", "unit": "varh"},
    {"name": "Negative partial reactive energy, high part", "group": "Energy", "area": "holding", "address": 5918, "type": "uint32", "access": "R", "unit": "Mvarh"},

    {"name": "Set CT ratio", "group": "Settings", "area": "holding", "address": 256, "type": "uint16", "access": "RW", "write_min": 1, "write_max": 9999, "description": "Primary divided by secondary current, e.g. 500 A / 5 A = 100; write with function 16"},
    {"name": "Run hour meter threshold", "group": "Settings", "area": "holding", "address": 8196, "type": "uint16", "access": "RW", "scale": 0.01, "unit": "%", "write_min": 0.5, "write_max": 50, "description": "Percentage of rated 3-phase active power above which the run hour meter counts"},
    {"name": "Run hour meter basis", "group": "Settings", "area": "holding", "address": 8197, "type": "uint16", "access": "RW", "enum": "run_hour_basis"},
    {"name": "Power averaging time", "group": "Settings", "area": "holding", "address": 8202, "type": "uint16", "access": "RW", "enum": "averaging_time"},
    {"name": "Insertion type", "group": "Settings", "area": "holding", "address": 8203, "type": "uint16", "access": "RW", "enum": "insertion"},
    {"name": "Custom page line 1", "group": "Display", "area": "holding", "address": 8204, "type": "uint16", "access": "RW", "enum": "line1"},
    {"name": "Custom page line 2", "group": "Display", "area": "holding", "address": 8205, "type": "uint16", "access": "RW", "enum": "line2"},
    {"name": "Custom page line 3", "group": "Display", "area": "holding", "address": 8206, "type": "uint16", "access": "RW", "enum": "line3"},
    {"name": "Pulse duration", "group": "Pulse output", "area": "holding", "address": 8715, "type": "uint16", "access": "RW", "enum": "pulse_duration"},
    {"name": "Pulse weight", "group": "Pulse output", "area": "holding", "address": 8716, "type": "uint16", "access": "RW", "enum": "pulse_weight"},
    {"name": "Pulse energy type", "group": "Pulse output", "area": "holding", "address": 8717, "type": "uint16", "access": "RW", "enum": "pulse_energy"},

    {"name": "Reset measurements", "group": "Commands", "area": "holding", "address": 9216, "type": "uint16", "access": "W", "description": "Bit 0 resets the hour meter, bit 1 the peak maximum demand, bit 2 the maximum voltages, bit 3 the maximum currents"},
    {"name": "Save settings", "group": "Commands", "area": "holding", "address": 9728, "type": "uint16", "access": "W", "description": "Write 0x000A to save the changed settings after the unlock sequence in the notes"},
    {"name": "Enable writing", "group": "Commands", "area": "holding", "address": 9984, "type": "uint16", "access": "W", "description": "Write 0x5AA5 before and after changing settings"},
    {"name": "Restore defaults", "group": "Commands", "area": "holding", "address": 10240, "type": "uint16", "access": "W", "description": "Write 0x000B after unlocking with 0x5AA5 in register 9984"}
  ]
}
