{
  "$schema": "https://raw.githubusercontent.com/nobrega8/mbmap-library/main/schema/mbmap-2.schema.json",
  "mbmap": 2,
  "vendor": "Schneider Electric",
  "model": "CM2000",
  "models": [
    "CM2050",
    "CM2150",
    "CM2250",
    "CM2350",
    "CM2450",
    "CM2452"
  ],
  "vendor_website": "se.com",
  "description": "POWERLOGIC Circuit Monitor series 2000 (Square D), CM2050 to CM2452",
  "revision": 3,
  "revised": "2026-10-24",
  "source": "Circuit Monitor Series 2000 Reference Manual, instruction bulletin 3020IM9806 (February 1999), Appendix B",
  "sources": [
    {
      "title": "Circuit Monitor Series 2000 Reference Manual",
      "version": "3020IM9806",
      "date": "1999-02",
      "url": "https://www.se.com/us/en/faqs/FA276335/",
      "note": "Appendix B, abbreviated register listing; attached to Schneider FAQ FA276335"
    },
    {
      "title": "Circuit Monitor Series 2000 Installation and Operation",
      "version": "3020IM9807",
      "url": "https://www.se.com/us/en/faqs/FA276335/",
      "note": "factory communication settings"
    }
  ],
  "notes": [
    "Register numbers are those of the reference manual (1-based, as POWERLOGIC devices are read: register 1000 is holding register 41000, sent as 999). The manuals describe the POWERLOGIC (SY/MAX) protocol and do not mention Modbus; the Modbus mapping of the same register numbers is the POWERLOGIC convention and has not been checked on a device.",
    "Currents, voltages, power and frequency are 16-bit values scaled by the scale group registers 2020-2025 (powers of ten, default 0); this map reads them with scale_factor.",
    "Power factor is signed magnitude: bits 0-9 hold 0-1000 (thousandths), bit 15 is set for lagging.",
    "Each energy value takes 4 registers, each holding 4 decimal digits (0-9999). The manual does not say which register holds the lowest digits; they are listed one by one so they can be combined once the order is checked.",
    "Factory settings: device address 1, 9600 bps, even parity (commands 2325/2326 switch between even and no parity).",
    "The manual lists many more registers (minimum/maximum values, dates and times, alarms, logs, harmonics); only the main ones are here.",
    "Written from the manufacturer's manual; not tested on a device."
  ],
  "protocol": "rtu",
  "unit_id": 1,
  "baudrate": 9600,
  "parity": "E",
  "databits": 8,
  "stopbits": 1,
  "byte_order": "big",
  "word_order": "big",
  "address_base": 1,
  "x_status": "official",
  "enums": {
    "pf_sign": {"0": "Leading", "1": "Lagging"}
  },
  "sentinels": {
    "int16": {
      "-32768": "Not available"
    }
  },
  "registers": [
    {"name": "Update interval", "group": "Measurements", "area": "holding", "address": 1000, "type": "uint16", "scale": 0.001, "unit": "s"},
    {"name": "Frequency", "group": "Measurements", "area": "holding", "address": 1001, "type": "int16", "unit": "Hz", "scale_factor": "Scale group F (frequency)", "description": "0 when out of range"},
    {"name": "Temperature", "group": "Measurements", "area": "holding", "address": 1002, "type": "int16", "scale": 0.01, "unit": "°C", "description": "Inside the circuit monitor"},
    {"name": "Current A", "group": "Current", "area": "holding", "address": 1003, "type": "int16", "unit": "A", "scale_factor": "Scale group A (phase current)"},
    {"name": "Current B", "group": "Current", "area": "holding", "address": 1004, "type": "int16", "unit": "A", "scale_factor": "Scale group A (phase current)"},
    {"name": "Current C", "group": "Current", "area": "holding", "address": 1005, "type": "int16", "unit": "A", "scale_factor": "Scale group A (phase current)"},
    {"name": "Current neutral", "group": "Current", "area": "holding", "address": 1006, "type": "int16", "unit": "A", "scale_factor": "Scale group B (neutral current)"},
    {"name": "Current ground", "group": "Current", "area": "holding", "address": 1007, "type": "int16", "unit": "A", "scale_factor": "Scale group C (ground current)"},
    {"name": "Current average", "group": "Current", "area": "holding", "address": 1008, "type": "int16", "unit": "A", "scale_factor": "Scale group A (phase current)"},
    {"name": "Current apparent rms", "group": "Current", "area": "holding", "address": 1009, "type": "int16", "unit": "A", "scale_factor": "Scale group A (phase current)"},
    {"name": "Current unbalance A", "group": "Current", "area": "holding", "address": 1010, "type": "int16", "scale": 0.1, "unit": "%"},
    {"name": "Current unbalance B", "group": "Current", "area": "holding", "address": 1011, "type": "int16", "scale": 0.1, "unit": "%"},
    {"name": "Current unbalance C", "group": "Current", "area": "holding", "address": 1012, "type": "int16", "scale": 0.1, "unit": "%"},
    {"name": "Current unbalance worst", "group": "Current", "area": "holding", "address": 1013, "type": "int16", "scale": 0.1, "unit": "%"},
    {"name": "Voltage A-B", "group": "Voltage", "area": "holding", "address": 1014, "type": "int16", "unit": "V", "scale_factor": "Scale group D (voltage)"},
    {"name": "Voltage B-C", "group": "Voltage", "area": "holding", "address": 1015, "type": "int16", "unit": "V", "scale_factor": "Scale group D (voltage)"},
    {"name": "Voltage C-A", "group": "Voltage", "area": "holding", "address": 1016, "type": "int16", "unit": "V", "scale_factor": "Scale group D (voltage)"},
    {"name": "Voltage L-L average", "group": "Voltage", "area": "holding", "address": 1017, "type": "int16", "unit": "V", "scale_factor": "Scale group D (voltage)"},
    {"name": "Voltage A-N", "group": "Voltage", "area": "holding", "address": 1018, "type": "int16", "unit": "V", "scale_factor": "Scale group D (voltage)"},
    {"name": "Voltage B-N", "group": "Voltage", "area": "holding", "address": 1019, "type": "int16", "unit": "V", "scale_factor": "Scale group D (voltage)"},
    {"name": "Voltage C-N", "group": "Voltage", "area": "holding", "address": 1020, "type": "int16", "unit": "V", "scale_factor": "Scale group D (voltage)"},
    {"name": "Voltage L-N average", "group": "Voltage", "area": "holding", "address": 1021, "type": "int16", "unit": "V", "scale_factor": "Scale group D (voltage)"},
    {"name": "Voltage unbalance A-B", "group": "Voltage", "area": "holding", "address": 1022, "type": "int16", "scale": 0.1, "unit": "%"},
    {"name": "Voltage unbalance B-C", "group": "Voltage", "area": "holding", "address": 1023, "type": "int16", "scale": 0.1, "unit": "%"},
    {"name": "Voltage unbalance C-A", "group": "Voltage", "area": "holding", "address": 1024, "type": "int16", "scale": 0.1, "unit": "%"},
    {"name": "Voltage unbalance L-L worst", "group": "Voltage", "area": "holding", "address": 1025, "type": "int16", "scale": 0.1, "unit": "%"},
    {"name": "Voltage unbalance A", "group": "Voltage", "area": "holding", "address": 1026, "type": "int16", "scale": 0.1, "unit": "%"},
    {"name": "Voltage unbalance B", "group": "Voltage", "area": "holding", "address": 1027, "type": "int16", "scale": 0.1, "unit": "%"},
    {"name": "Voltage unbalance C", "group": "Voltage", "area": "holding", "address": 1028, "type": "int16", "scale": 0.1, "unit": "%"},
    {"name": "Voltage unbalance L-N worst", "group": "Voltage", "area": "holding", "address": 1029, "type": "int16", "scale": 0.1, "unit": "%"},
    {"name": "True PF A", "group": "Power factor", "area": "holding", "address": 1031, "type": "uint16", "bit": 0, "bits": 10, "scale": 0.001, "description": "Magnitude; the sign is bit 15 of the same register"},
    {"name": "True PF A lagging", "group": "Power factor", "area": "holding", "address": 1031, "type": "bool", "bit": 15, "enum": "pf_sign"},
    {"name": "True PF B", "group": "Power factor", "area": "holding", "address": 1032, "type": "uint16", "bit": 0, "bits": 10, "scale": 0.001, "description": "Magnitude; the sign is bit 15 of the same register"},
    {"name": "True PF B lagging", "group": "Power factor", "area": "holding", "address": 1032, "type": "bool", "bit": 15, "enum": "pf_sign"},
    {"name": "True PF C", "group": "Power factor", "area": "holding", "address": 1033, "type": "uint16", "bit": 0, "bits": 10, "scale": 0.001, "description": "Magnitude; the sign is bit 15 of the same register"},
    {"name": "True PF C lagging", "group": "Power factor", "area": "holding", "address": 1033, "type": "bool", "bit": 15, "enum": "pf_sign"},
    {"name": "True PF total", "group": "Power factor", "area": "holding", "address": 1034, "type": "uint16", "bit": 0, "bits": 10, "scale": 0.001, "description": "Magnitude; the sign is bit 15 of the same register"},
    {"name": "True PF total lagging", "group": "Power factor", "area": "holding", "address": 1034, "type": "bool", "bit": 15, "enum": "pf_sign"},
    {"name": "Displacement PF A", "group": "Power factor", "area": "holding", "address": 1035, "type": "uint16", "bit": 0, "bits": 10, "scale": 0.001, "description": "Magnitude; the sign is bit 15 of the same register"},
    {"name": "Displacement PF A lagging", "group": "Power factor", "area": "holding", "address": 1035, "type": "bool", "bit": 15, "enum": "pf_sign"},
    {"name": "Displacement PF B", "group": "Power factor", "area": "holding", "address": 1036, "type": "uint16", "bit": 0, "bits": 10, "scale": 0.001, "description": "Magnitude; the sign is bit 15 of the same register"},
    {"name": "Displacement PF B lagging", "group": "Power factor", "area": "holding", "address": 1036, "type": "bool", "bit": 15, "enum": "pf_sign"},
    {"name": "Displacement PF C", "group": "Power factor", "area": "holding", "address": 1037, "type": "uint16", "bit": 0, "bits": 10, "scale": 0.001, "description": "Magnitude; the sign is bit 15 of the same register"},
    {"name": "Displacement PF C lagging", "group": "Power factor", "area": "holding", "address": 1037, "type": "bool", "bit": 15, "enum": "pf_sign"},
    {"name": "Displacement PF total", "group": "Power factor", "area": "holding", "address": 1038, "type": "uint16", "bit": 0, "bits": 10, "scale": 0.001, "description": "Magnitude; the sign is bit 15 of the same register"},
    {"name": "Displacement PF total lagging", "group": "Power factor", "area": "holding", "address": 1038, "type": "bool", "bit": 15, "enum": "pf_sign"},
    {"name": "Real power A", "group": "Power", "area": "holding", "address": 1039, "type": "int16", "unit": "kW", "scale_factor": "Scale group E (power)"},
    {"name": "Real power B", "group": "Power", "area": "holding", "address": 1040, "type": "int16", "unit": "kW", "scale_factor": "Scale group E (power)"},
    {"name": "Real power C", "group": "Power", "area": "holding", "address": 1041, "type": "int16", "unit": "kW", "scale_factor": "Scale group E (power)"},
    {"name": "Real power total", "group": "Power", "area": "holding", "address": 1042, "type": "int16", "unit": "kW", "scale_factor": "Scale group E (power)"},
    {"name": "Reactive power A", "group": "Power", "area": "holding", "address": 1043, "type": "int16", "unit": "kvar", "scale_factor": "Scale group E (power)"},
    {"name": "Reactive power B", "group": "Power", "area": "holding", "address": 1044, "type": "int16", "unit": "kvar", "scale_factor": "Scale group E (power)"},
    {"name": "Reactive power C", "group": "Power", "area": "holding", "address": 1045, "type": "int16", "unit": "kvar", "scale_factor": "Scale group E (power)"},
    {"name": "Reactive power total", "group": "Power", "area": "holding", "address": 1046, "type": "int16", "unit": "kvar", "scale_factor": "Scale group E (power)"},
    {"name": "Apparent power A", "group": "Power", "area": "holding", "address": 1047, "type": "int16", "unit": "kVA", "scale_factor": "Scale group E (power)"},
    {"name": "Apparent power B", "group": "Power", "area": "holding", "address": 1048, "type": "int16", "unit": "kVA", "scale_factor": "Scale group E (power)"},
    {"name": "Apparent power C", "group": "Power", "area": "holding", "address": 1049, "type": "int16", "unit": "kVA", "scale_factor": "Scale group E (power)"},
    {"name": "Apparent power total", "group": "Power", "area": "holding", "address": 1050, "type": "int16", "unit": "kVA", "scale_factor": "Scale group E (power)"},
    {"name": "THD current A", "group": "Harmonics", "area": "holding", "address": 1051, "type": "int16", "scale": 0.1, "unit": "%"},
    {"name": "THD current B", "group": "Harmonics", "area": "holding", "address": 1052, "type": "int16", "scale": 0.1, "unit": "%"},
    {"name": "THD current C", "group": "Harmonics", "area": "holding", "address": 1053, "type": "int16", "scale": 0.1, "unit": "%"},
    {"name": "THD current N", "group": "Harmonics", "area": "holding", "address": 1054, "type": "int16", "scale": 0.1, "unit": "%"},
    {"name": "THD voltage A", "group": "Harmonics", "area": "holding", "address": 1055, "type": "int16", "scale": 0.1, "unit": "%"},
    {"name": "THD voltage B", "group": "Harmonics", "area": "holding", "address": 1056, "type": "int16", "scale": 0.1, "unit": "%"},
    {"name": "THD voltage C", "group": "Harmonics", "area": "holding", "address": 1057, "type": "int16", "scale": 0.1, "unit": "%"},
    {"name": "THD voltage A-B", "group": "Harmonics", "area": "holding", "address": 1058, "type": "int16", "scale": 0.1, "unit": "%"},
    {"name": "THD voltage B-C", "group": "Harmonics", "area": "holding", "address": 1059, "type": "int16", "scale": 0.1, "unit": "%"},
    {"name": "THD voltage C-A", "group": "Harmonics", "area": "holding", "address": 1060, "type": "int16", "scale": 0.1, "unit": "%"},
    {"name": "thd current A", "group": "Harmonics", "area": "holding", "address": 1061, "type": "int16", "scale": 0.1, "unit": "%"},
    {"name": "thd current B", "group": "Harmonics", "area": "holding", "address": 1062, "type": "int16", "scale": 0.1, "unit": "%"},
    {"name": "thd current C", "group": "Harmonics", "area": "holding", "address": 1063, "type": "int16", "scale": 0.1, "unit": "%"},
    {"name": "thd current N", "group": "Harmonics", "area": "holding", "address": 1064, "type": "int16", "scale": 0.1, "unit": "%"},
    {"name": "thd voltage A", "group": "Harmonics", "area": "holding", "address": 1065, "type": "int16", "scale": 0.1, "unit": "%"},
    {"name": "thd voltage B", "group": "Harmonics", "area": "holding", "address": 1066, "type": "int16", "scale": 0.1, "unit": "%"},
    {"name": "thd voltage C", "group": "Harmonics", "area": "holding", "address": 1067, "type": "int16", "scale": 0.1, "unit": "%"},
    {"name": "thd voltage A-B", "group": "Harmonics", "area": "holding", "address": 1068, "type": "int16", "scale": 0.1, "unit": "%"},
    {"name": "thd voltage B-C", "group": "Harmonics", "area": "holding", "address": 1069, "type": "int16", "scale": 0.1, "unit": "%"},
    {"name": "thd voltage C-A", "group": "Harmonics", "area": "holding", "address": 1070, "type": "int16", "scale": 0.1, "unit": "%"},
    {"name": "K-factor A", "group": "Harmonics", "area": "holding", "address": 1071, "type": "int16", "scale": 0.1},
    {"name": "K-factor B", "group": "Harmonics", "area": "holding", "address": 1072, "type": "int16", "scale": 0.1},
    {"name": "K-factor C", "group": "Harmonics", "area": "holding", "address": 1073, "type": "int16", "scale": 0.1},
    {"name": "Crest factor A", "group": "Harmonics", "area": "holding", "address": 1074, "type": "int16", "scale": 0.01},
    {"name": "Crest factor B", "group": "Harmonics", "area": "holding", "address": 1075, "type": "int16", "scale": 0.01},
    {"name": "Crest factor C", "group": "Harmonics", "area": "holding", "address": 1076, "type": "int16", "scale": 0.01},
    {"name": "Crest factor N", "group": "Harmonics", "area": "holding", "address": 1077, "type": "int16", "scale": 0.01},
    {"name": "Harmonic factor A", "group": "Harmonics", "area": "holding", "address": 1108, "type": "int16", "scale": 0.1, "unit": "%"},
    {"name": "Harmonic factor B", "group": "Harmonics", "area": "holding", "address": 1109, "type": "int16", "scale": 0.1, "unit": "%"},
    {"name": "Harmonic factor C", "group": "Harmonics", "area": "holding", "address": 1110, "type": "int16", "scale": 0.1, "unit": "%"},
    {"name": "Harmonic factor total", "group": "Harmonics", "area": "holding", "address": 1111, "type": "int16", "scale": 0.1, "unit": "%"},
    {"name": "Harmonic power total", "group": "Harmonics", "area": "holding", "address": 1115, "type": "int16", "unit": "kW", "scale_factor": "Scale group E (power)"},
    {"name": "Phase rotation", "group": "Measurements", "area": "holding", "address": 1117, "type": "uint16", "enum": {"0": "A-B-C", "1": "C-B-A"}},
    {"name": "Analog input 1", "group": "Analog inputs", "area": "holding", "address": 1191, "type": "int16", "description": "Scaled value"},
    {"name": "Analog input 2", "group": "Analog inputs", "area": "holding", "address": 1192, "type": "int16"},
    {"name": "Analog input 3", "group": "Analog inputs", "area": "holding", "address": 1193, "type": "int16"},
    {"name": "Analog input 4", "group": "Analog inputs", "area": "holding", "address": 1194, "type": "int16"},
    {"name": "Real energy in, register 1 of 4", "group": "Energy", "area": "holding", "address": 1601, "type": "uint16", "unit": "Wh", "description": "One 4-digit group (0-9999) of the value; see the notes"},
    {"name": "Real energy in, register 2 of 4", "group": "Energy", "area": "holding", "address": 1602, "type": "uint16", "unit": "Wh", "description": "One 4-digit group (0-9999) of the value; see the notes"},
    {"name": "Real energy in, register 3 of 4", "group": "Energy", "area": "holding", "address": 1603, "type": "uint16", "unit": "Wh", "description": "One 4-digit group (0-9999) of the value; see the notes"},
    {"name": "Real energy in, register 4 of 4", "group": "Energy", "area": "holding", "address": 1604, "type": "uint16", "unit": "Wh", "description": "One 4-digit group (0-9999) of the value; see the notes"},
    {"name": "Reactive energy in, register 1 of 4", "group": "Energy", "area": "holding", "address": 1605, "type": "uint16", "unit": "varh", "description": "One 4-digit group (0-9999) of the value; see the notes"},
    {"name": "Reactive energy in, register 2 of 4", "group": "Energy", "area": "holding", "address": 1606, "type": "uint16", "unit": "varh", "description": "One 4-digit group (0-9999) of the value; see the notes"},
    {"name": "Reactive energy in, register 3 of 4", "group": "Energy", "area": "holding", "address": 1607, "type": "uint16", "unit": "varh", "description": "One 4-digit group (0-9999) of the value; see the notes"},
    {"name": "Reactive energy in, register 4 of 4", "group": "Energy", "area": "holding", "address": 1608, "type": "uint16", "unit": "varh", "description": "One 4-digit group (0-9999) of the value; see the notes"},
    {"name": "Real energy out, register 1 of 4", "group": "Energy", "area": "holding", "address": 1609, "type": "uint16", "unit": "Wh", "description": "One 4-digit group (0-9999) of the value; see the notes"},
    {"name": "Real energy out, register 2 of 4", "group": "Energy", "area": "holding", "address": 1610, "type": "uint16", "unit": "Wh", "description": "One 4-digit group (0-9999) of the value; see the notes"},
    {"name": "Real energy out, register 3 of 4", "group": "Energy", "area": "holding", "address": 1611, "type": "uint16", "unit": "Wh", "description": "One 4-digit group (0-9999) of the value; see the notes"},
    {"name": "Real energy out, register 4 of 4", "group": "Energy", "area": "holding", "address": 1612, "type": "uint16", "unit": "Wh", "description": "One 4-digit group (0-9999) of the value; see the notes"},
    {"name": "Reactive energy out, register 1 of 4", "group": "Energy", "area": "holding", "address": 1613, "type": "uint16", "unit": "varh", "description": "One 4-digit group (0-9999) of the value; see the notes"},
    {"name": "Reactive energy out, register 2 of 4", "group": "Energy", "area": "holding", "address": 1614, "type": "uint16", "unit": "varh", "description": "One 4-digit group (0-9999) of the value; see the notes"},
    {"name": "Reactive energy out, register 3 of 4", "group": "Energy", "area": "holding", "address": 1615, "type": "uint16", "unit": "varh", "description": "One 4-digit group (0-9999) of the value; see the notes"},
    {"name": "Reactive energy out, register 4 of 4", "group": "Energy", "area": "holding", "address": 1616, "type": "uint16", "unit": "varh", "description": "One 4-digit group (0-9999) of the value; see the notes"},
    {"name": "Apparent energy, register 1 of 4", "group": "Energy", "area": "holding", "address": 1617, "type": "uint16", "unit": "VAh", "description": "One 4-digit group (0-9999) of the value; see the notes"},
    {"name": "Apparent energy, register 2 of 4", "group": "Energy", "area": "holding", "address": 1618, "type": "uint16", "unit": "VAh", "description": "One 4-digit group (0-9999) of the value; see the notes"},
    {"name": "Apparent energy, register 3 of 4", "group": "Energy", "area": "holding", "address": 1619, "type": "uint16", "unit": "VAh", "description": "One 4-digit group (0-9999) of the value; see the notes"},
    {"name": "Apparent energy, register 4 of 4", "group": "Energy", "area": "holding", "address": 1620, "type": "uint16", "unit": "VAh", "description": "One 4-digit group (0-9999) of the value; see the notes"},
    {"name": "Current demand average", "group": "Demand", "area": "holding", "address": 1700, "type": "int16", "unit": "A", "scale_factor": "Scale group A (phase current)"},
    {"name": "Current demand A", "group": "Demand", "area": "holding", "address": 1701, "type": "int16", "unit": "A", "scale_factor": "Scale group A (phase current)"},
    {"name": "Current demand B", "group": "Demand", "area": "holding", "address": 1702, "type": "int16", "unit": "A", "scale_factor": "Scale group A (phase current)"},
    {"name": "Current demand C", "group": "Demand", "area": "holding", "address": 1703, "type": "int16", "unit": "A", "scale_factor": "Scale group A (phase current)"},
    {"name": "Current demand N", "group": "Demand", "area": "holding", "address": 1704, "type": "int16", "unit": "A", "scale_factor": "Scale group A (phase current)"},
    {"name": "Peak current demand average", "group": "Demand", "area": "holding", "address": 1708, "type": "int16", "unit": "A", "scale_factor": "Scale group A (phase current)"},
    {"name": "Peak current demand A", "group": "Demand", "area": "holding", "address": 1709, "type": "int16", "unit": "A", "scale_factor": "Scale group A (phase current)"},
    {"name": "Peak current demand B", "group": "Demand", "area": "holding", "address": 1710, "type": "int16", "unit": "A", "scale_factor": "Scale group A (phase current)"},
    {"name": "Peak current demand C", "group": "Demand", "area": "holding", "address": 1711, "type": "int16", "unit": "A", "scale_factor": "Scale group A (phase current)"},
    {"name": "Peak current demand N", "group": "Demand", "area": "holding", "address": 1712, "type": "int16", "unit": "A", "scale_factor": "Scale group A (phase current)"},
    {"name": "Real power demand", "group": "Demand", "area": "holding", "address": 1731, "type": "int16", "unit": "kW", "scale_factor": "Scale group E (power)"},
    {"name": "Reactive power demand", "group": "Demand", "area": "holding", "address": 1732, "type": "int16", "unit": "kvar", "scale_factor": "Scale group E (power)"},
    {"name": "Apparent power demand", "group": "Demand", "area": "holding", "address": 1733, "type": "int16", "unit": "kVA", "scale_factor": "Scale group E (power)"},
    {"name": "Peak real power demand", "group": "Demand", "area": "holding", "address": 1734, "type": "int16", "unit": "kW", "scale_factor": "Scale group E (power)"},
    {"name": "Peak reactive power demand", "group": "Demand", "area": "holding", "address": 1738, "type": "int16", "unit": "kvar", "scale_factor": "Scale group E (power)"},
    {"name": "Peak apparent power demand", "group": "Demand", "area": "holding", "address": 1742, "type": "int16", "unit": "kVA", "scale_factor": "Scale group E (power)"},
    {"name": "Predicted real power demand", "group": "Demand", "area": "holding", "address": 1746, "type": "int16", "unit": "kW", "scale_factor": "Scale group E (power)"},
    {"name": "Predicted reactive power demand", "group": "Demand", "area": "holding", "address": 1747, "type": "int16", "unit": "kvar", "scale_factor": "Scale group E (power)"},
    {"name": "Predicted apparent power demand", "group": "Demand", "area": "holding", "address": 1748, "type": "int16", "unit": "kVA", "scale_factor": "Scale group E (power)"},
    {"name": "Demand interval time remaining", "group": "Demand", "area": "holding", "address": 1752, "type": "int16", "unit": "s"},
    {"name": "System connection", "group": "Setup", "area": "holding", "address": 2001, "type": "uint16", "access": "RW", "enum": {"30": "3-wire", "40": "4-wire, calculated neutral", "41": "4-wire, metered neutral", "42": "4-wire 2.5 element, calculated neutral", "43": "4-wire 2.5 element, metered neutral"}},
    {"name": "CT primary", "group": "Setup", "area": "holding", "address": 2002, "type": "uint16", "unit": "A", "access": "RW", "write_min": 1, "write_max": 32767},
    {"name": "CT secondary", "group": "Setup", "area": "holding", "address": 2003, "type": "uint16", "unit": "A", "access": "RW", "write_min": 1, "write_max": 5},
    {"name": "CT neutral primary", "group": "Setup", "area": "holding", "address": 2004, "type": "uint16", "unit": "A", "access": "RW", "write_min": 1, "write_max": 32767},
    {"name": "CT neutral secondary", "group": "Setup", "area": "holding", "address": 2005, "type": "uint16", "unit": "A", "access": "RW", "write_min": 1, "write_max": 5},
    {"name": "PT primary", "group": "Setup", "area": "holding", "address": 2006, "type": "uint16", "unit": "V", "access": "RW", "write_min": 1, "write_max": 32767, "description": "Times 10^(register 2007)"},
    {"name": "PT primary scale", "group": "Setup", "area": "holding", "address": 2007, "type": "uint16", "access": "RW", "write_min": 0, "write_max": 2},
    {"name": "PT secondary", "group": "Setup", "area": "holding", "address": 2008, "type": "uint16", "unit": "V", "access": "RW", "write_min": 1, "write_max": 600},
    {"name": "Scale group A (phase current)", "group": "Scale factors", "area": "holding", "address": 2020, "type": "int16", "write_min": -2, "write_max": 1, "access": "RW", "description": "Power of ten for phase currents; default 0"},
    {"name": "Scale group B (neutral current)", "group": "Scale factors", "area": "holding", "address": 2021, "type": "int16", "write_min": -2, "write_max": 1, "access": "RW"},
    {"name": "Scale group C (ground current)", "group": "Scale factors", "area": "holding", "address": 2022, "type": "int16", "write_min": -2, "write_max": 1, "access": "RW"},
    {"name": "Scale group D (voltage)", "group": "Scale factors", "area": "holding", "address": 2023, "type": "int16", "write_min": -1, "write_max": 2, "access": "RW", "description": "Power of ten for voltages; default 0"},
    {"name": "Scale group E (power)", "group": "Scale factors", "area": "holding", "address": 2024, "type": "int16", "write_min": -3, "write_max": 3, "access": "RW", "description": "Power of ten for kW, kvar, kVA; default 0"},
    {"name": "Scale group F (frequency)", "group": "Scale factors", "area": "holding", "address": 2025, "type": "int16", "description": "Set by the meter: -2 at 50/60 Hz, -1 at 400 Hz"},
    {"name": "Power demand interval", "group": "Setup", "area": "holding", "address": 2077, "type": "uint16", "unit": "min", "access": "RW", "write_min": 0, "write_max": 60},
    {"name": "Power demand sub-interval", "group": "Setup", "area": "holding", "address": 2078, "type": "uint16", "unit": "min", "access": "RW", "write_min": 0, "write_max": 60},
    {"name": "Product ID", "group": "Info", "area": "holding", "address": 2085, "type": "uint16", "role": "model", "enum": {"460": "CM2050", "461": "CM2150", "462": "CM2250", "463": "CM2350", "464": "CM2450", "465": "CM2452"}},
    {"name": "Firmware sub-revision", "group": "Info", "area": "holding", "address": 2093, "type": "uint16"},
    {"name": "Firmware revision", "group": "Info", "area": "holding", "address": 2094, "type": "uint16", "description": "4 decimal digits: reset code revision (left 2), firmware revision (right 2)"},
    {"name": "Status inputs", "group": "I/O", "area": "holding", "address": 2400, "type": "uint16", "description": "Bit map of inputs S1-S8"},
    {"name": "Output status", "group": "I/O", "area": "holding", "address": 2500, "type": "uint16", "description": "Bit 0 = KYZ, bits 1-3 = relays R1-R3"}
  ]
}
