{
  "$schema": "https://raw.githubusercontent.com/nobrega8/mbmap-library/main/schema/mbmap-2.schema.json",
  "mbmap": 2,
  "vendor": "Socomec",
  "model": "COUNTIS E24",
  "models": ["COUNTIS E24"],
  "vendor_website": "socomec.com",
  "description": "Three-phase direct-connection (80 A) MID energy meter with Modbus RS485 (ref. 4850 3051)",
  "revision": 3,
  "revised": "2026-11-10",
  "source": "Socomec, \"MODBUS tables of Countis_E24\", V103.8 (2017-08), apac.socomec.com communication table (archived 2024-04-23); instruction manual 545 877 A",
  "sources": [
    {"title": "MODBUS tables of Countis_E24", "version": "V103.8", "date": "2017-08", "note": "apac.socomec.com communication table (archived 2024-04-23); instruction manual 545 877 A"}
  ],
  "notes": [
    "Socomec COUNTIS E24 (MID) three-phase direct 80 A energy meter with Modbus RTU over RS485.",
    "The COUNTIS E23 (non-MID, ref. 4850 3050) shares the manual but has its own communication table, not checked here.",
    "Addresses are the decimal addresses from Socomec's table, sent as-is. FC03 reads up to 128 words, FC06/FC16 write.",
    "Values read 0xFFFF... when not available. The factory RS485 settings are not given in text form; check SETUP 2 on the display."
  ],
  "protocol": "rtu",
  "unit_id": 1,
  "byte_order": "big",
  "word_order": "big",
  "address_base": 0,
  "max_read_registers": 125,
  "x_status": "official",
  "registers": [
    {"name": "Product order ID", "group": "Info", "area": "holding", "address": 50004, "type": "uint16", "access": "R", "description": "100 = Countis"},
    {"name": "Product ID", "group": "Info", "area": "holding", "address": 50005, "type": "uint16", "access": "R"},
    {"name": "Modbus table version", "group": "Info", "area": "holding", "address": 50006, "type": "uint16", "access": "R", "description": "e.g. 101 = 1.01"},
    {"name": "Software version", "group": "Info", "area": "holding", "address": 50007, "type": "uint16", "access": "R", "scale": 0.01, "role": "firmware", "description": "e.g. 100 = 1.00"},
    {"name": "Vendor name", "group": "Info", "area": "holding", "address": 50042, "type": "string", "length": 8, "access": "R"},
    {"name": "Product name", "group": "Info", "area": "holding", "address": 50050, "type": "string", "length": 8, "access": "R"},
    {"name": "MID product", "group": "Info", "area": "holding", "address": 40545, "type": "uint16", "access": "R", "enum": {"0": "Non-MID", "1": "MID"}},
    {"name": "Modbus address", "group": "Communication", "area": "holding", "address": 57344, "type": "uint16", "access": "RW", "description": "1-247"},
    {"name": "Baud rate", "group": "Communication", "area": "holding", "address": 57345, "type": "uint16", "access": "RW", "enum": {"0": "1200", "1": "2400", "2": "4800", "3": "9600", "4": "19200", "5": "38400", "6": "57600", "7": "115200"}},
    {"name": "Stop bits", "group": "Communication", "area": "holding", "address": 57346, "type": "uint16", "access": "RW", "enum": {"0": "1", "1": "2"}},
    {"name": "Parity", "group": "Communication", "area": "holding", "address": 57347, "type": "uint16", "access": "RW", "enum": {"0": "None", "1": "Odd", "2": "Even"}},
    {"name": "Voltage L1-L2", "group": "Voltage", "area": "holding", "address": 50514, "type": "uint32", "scale": 0.01, "unit": "V", "access": "R"},
    {"name": "Voltage L2-L3", "group": "Voltage", "area": "holding", "address": 50516, "type": "uint32", "scale": 0.01, "unit": "V", "access": "R"},
    {"name": "Voltage L3-L1", "group": "Voltage", "area": "holding", "address": 50518, "type": "uint32", "scale": 0.01, "unit": "V", "access": "R"},
    {"name": "Voltage L1-N", "group": "Voltage", "area": "holding", "address": 50520, "type": "uint32", "scale": 0.01, "unit": "V", "access": "R"},
    {"name": "Voltage L2-N", "group": "Voltage", "area": "holding", "address": 50522, "type": "uint32", "scale": 0.01, "unit": "V", "access": "R"},
    {"name": "Voltage L3-N", "group": "Voltage", "area": "holding", "address": 50524, "type": "uint32", "scale": 0.01, "unit": "V", "access": "R"},
    {"name": "Frequency", "group": "Voltage", "area": "holding", "address": 50526, "type": "uint32", "scale": 0.001, "unit": "Hz", "access": "R"},
    {"name": "Current L1", "group": "Current", "area": "holding", "address": 50528, "type": "uint32", "scale": 0.001, "unit": "A", "access": "R"},
    {"name": "Current L2", "group": "Current", "area": "holding", "address": 50530, "type": "uint32", "scale": 0.001, "unit": "A", "access": "R"},
    {"name": "Current L3", "group": "Current", "area": "holding", "address": 50532, "type": "uint32", "scale": 0.001, "unit": "A", "access": "R"},
    {"name": "Neutral current", "group": "Current", "area": "holding", "address": 50534, "type": "uint32", "scale": 0.001, "unit": "A", "access": "R"},
    {"name": "Total active power", "group": "Power", "area": "holding", "address": 50536, "type": "int32", "scale": 10, "unit": "W", "access": "R", "description": "Signed; 10 W resolution"},
    {"name": "Total reactive power", "group": "Power", "area": "holding", "address": 50538, "type": "int32", "scale": 10, "unit": "var", "access": "R"},
    {"name": "Total apparent power", "group": "Power", "area": "holding", "address": 50540, "type": "uint32", "scale": 10, "unit": "VA", "access": "R"},
    {"name": "Total power factor", "group": "Power factor", "area": "holding", "address": 50542, "type": "int32", "scale": 0.001, "access": "R", "description": "Negative = leading, positive = lagging"},
    {"name": "Active power L1", "group": "Power", "area": "holding", "address": 50544, "type": "int32", "scale": 10, "unit": "W", "access": "R"},
    {"name": "Active power L2", "group": "Power", "area": "holding", "address": 50546, "type": "int32", "scale": 10, "unit": "W", "access": "R"},
    {"name": "Active power L3", "group": "Power", "area": "holding", "address": 50548, "type": "int32", "scale": 10, "unit": "W", "access": "R"},
    {"name": "Reactive power L1", "group": "Power", "area": "holding", "address": 50550, "type": "int32", "scale": 10, "unit": "var", "access": "R"},
    {"name": "Reactive power L2", "group": "Power", "area": "holding", "address": 50552, "type": "int32", "scale": 10, "unit": "var", "access": "R"},
    {"name": "Reactive power L3", "group": "Power", "area": "holding", "address": 50554, "type": "int32", "scale": 10, "unit": "var", "access": "R"},
    {"name": "Apparent power L1", "group": "Power", "area": "holding", "address": 50556, "type": "uint32", "scale": 10, "unit": "VA", "access": "R"},
    {"name": "Apparent power L2", "group": "Power", "area": "holding", "address": 50558, "type": "uint32", "scale": 10, "unit": "VA", "access": "R"},
    {"name": "Apparent power L3", "group": "Power", "area": "holding", "address": 50560, "type": "uint32", "scale": 10, "unit": "VA", "access": "R"},
    {"name": "Power factor L1", "group": "Power factor", "area": "holding", "address": 50562, "type": "int32", "scale": 0.001, "access": "R", "description": "Negative = leading, positive = lagging"},
    {"name": "Power factor L2", "group": "Power factor", "area": "holding", "address": 50564, "type": "int32", "scale": 0.001, "access": "R", "description": "Negative = leading, positive = lagging"},
    {"name": "Power factor L3", "group": "Power factor", "area": "holding", "address": 50566, "type": "int32", "scale": 0.001, "access": "R", "description": "Negative = leading, positive = lagging"},
    {"name": "Average current", "group": "Current", "area": "holding", "address": 50568, "type": "uint32", "scale": 0.001, "unit": "A", "access": "R"},
    {"name": "Average voltage L-L", "group": "Voltage", "area": "holding", "address": 50570, "type": "uint32", "scale": 0.01, "unit": "V", "access": "R"},
    {"name": "Average voltage L-N", "group": "Voltage", "area": "holding", "address": 50572, "type": "uint32", "scale": 0.01, "unit": "V", "access": "R"},
    {"name": "Phase sequence", "group": "Voltage", "area": "holding", "address": 51315, "type": "uint16", "access": "R", "enum": {"0": "123 (CW)", "1": "132 (CCW)", "3": "Undetermined"}},
    {"name": "Total import active energy", "group": "Energy", "area": "holding", "address": 50770, "type": "uint32", "unit": "kWh", "access": "R", "description": "Whole units; totals cannot be reset"},
    {"name": "Total import reactive energy", "group": "Energy", "area": "holding", "address": 50772, "type": "uint32", "unit": "kvarh", "access": "R", "description": "Whole units; totals cannot be reset"},
    {"name": "Total apparent energy", "group": "Energy", "area": "holding", "address": 50774, "type": "uint32", "unit": "kVAh", "access": "R", "description": "Whole units; totals cannot be reset"},
    {"name": "Total export active energy", "group": "Energy", "area": "holding", "address": 50776, "type": "uint32", "unit": "kWh", "access": "R", "description": "Whole units; totals cannot be reset"},
    {"name": "Total export reactive energy", "group": "Energy", "area": "holding", "address": 50778, "type": "uint32", "unit": "kvarh", "access": "R", "description": "Whole units; totals cannot be reset"},
    {"name": "Partial import active energy", "group": "Energy", "area": "holding", "address": 50780, "type": "uint32", "unit": "kWh", "access": "R", "description": "Whole units"},
    {"name": "Partial import reactive energy", "group": "Energy", "area": "holding", "address": 50782, "type": "uint32", "unit": "kvarh", "access": "R", "description": "Whole units"},
    {"name": "Partial apparent energy", "group": "Energy", "area": "holding", "address": 50784, "type": "uint32", "unit": "kVAh", "access": "R", "description": "Whole units"},
    {"name": "Partial export active energy", "group": "Energy", "area": "holding", "address": 50786, "type": "uint32", "unit": "kWh", "access": "R", "description": "Whole units"},
    {"name": "Partial export reactive energy", "group": "Energy", "area": "holding", "address": 50788, "type": "uint32", "unit": "kvarh", "access": "R", "description": "Whole units"},
    {"name": "Total import active energy (0.01)", "group": "Energy (fine)", "area": "holding", "address": 50946, "type": "uint32", "scale": 0.01, "unit": "kWh", "access": "R"},
    {"name": "Total import reactive energy (0.01)", "group": "Energy (fine)", "area": "holding", "address": 50948, "type": "uint32", "scale": 0.01, "unit": "kvarh", "access": "R"},
    {"name": "Total apparent energy (0.01)", "group": "Energy (fine)", "area": "holding", "address": 50950, "type": "uint32", "scale": 0.01, "unit": "kVAh", "access": "R"},
    {"name": "Total export active energy (0.01)", "group": "Energy (fine)", "area": "holding", "address": 50952, "type": "uint32", "scale": 0.01, "unit": "kWh", "access": "R"},
    {"name": "Total export reactive energy (0.01)", "group": "Energy (fine)", "area": "holding", "address": 50954, "type": "uint32", "scale": 0.01, "unit": "kvarh", "access": "R"},
    {"name": "Partial import active energy (0.01)", "group": "Energy (fine)", "area": "holding", "address": 50956, "type": "uint32", "scale": 0.01, "unit": "kWh", "access": "R"},
    {"name": "Partial import reactive energy (0.01)", "group": "Energy (fine)", "area": "holding", "address": 50958, "type": "uint32", "scale": 0.01, "unit": "kvarh", "access": "R"},
    {"name": "Partial apparent energy (0.01)", "group": "Energy (fine)", "area": "holding", "address": 50960, "type": "uint32", "scale": 0.01, "unit": "kVAh", "access": "R"},
    {"name": "Partial export active energy (0.01)", "group": "Energy (fine)", "area": "holding", "address": 50962, "type": "uint32", "scale": 0.01, "unit": "kWh", "access": "R"},
    {"name": "Partial export reactive energy (0.01)", "group": "Energy (fine)", "area": "holding", "address": 50964, "type": "uint32", "scale": 0.01, "unit": "kvarh", "access": "R"},
    {"name": "Active tariff", "group": "Tariffs", "area": "holding", "address": 50849, "type": "uint16", "access": "R", "enum": {"1": "Tariff 1", "2": "Tariff 2"}},
    {"name": "Import active energy tariff 1", "group": "Tariffs", "area": "holding", "address": 51202, "type": "uint32", "scale": 0.01, "unit": "kWh", "access": "R"},
    {"name": "Import active energy tariff 2", "group": "Tariffs", "area": "holding", "address": 51204, "type": "uint32", "scale": 0.01, "unit": "kWh", "access": "R"},
    {"name": "Import reactive energy tariff 1", "group": "Tariffs", "area": "holding", "address": 51218, "type": "uint32", "scale": 0.01, "unit": "kvarh", "access": "R"},
    {"name": "Import reactive energy tariff 2", "group": "Tariffs", "area": "holding", "address": 51220, "type": "uint32", "scale": 0.01, "unit": "kvarh", "access": "R"},
    {"name": "Hour counter tariff 1", "group": "Tariffs", "area": "holding", "address": 51234, "type": "uint32", "scale": 0.01, "unit": "h", "access": "R"},
    {"name": "Hour counter tariff 2", "group": "Tariffs", "area": "holding", "address": 51236, "type": "uint32", "scale": 0.01, "unit": "h", "access": "R"},
    {"name": "Set tariff", "group": "Commands", "area": "holding", "address": 40481, "type": "uint16", "access": "W", "enum": {"1": "Tariff 1", "2": "Tariff 2"}, "description": "Broadcast allowed"},
    {"name": "Reset partial energies", "group": "Commands", "area": "holding", "address": 40512, "type": "uint16", "access": "W", "enum": {"32": "Reset"}}
  ]
}
