{
  "$schema": "https://raw.githubusercontent.com/nobrega8/mbmap-library/main/schema/mbmap-2.schema.json",
  "mbmap": 2,
  "vendor": "Electro Industries",
  "model": "Shark 50",
  "models": ["Shark 50"],
  "vendor_website": "electroind.com",
  "description": "Electro Industries/GaugeTech Shark 50 panel meter with the optional RS-485 port (Modbus RTU/ASCII)",
  "revision": 3,
  "revised": "2026-10-18",
  "source": "Electro Industries/GaugeTech, \"Shark 50/50B/100/100B Meter User Manual\", V.1.40 (Doc# E145701)",
  "sources": [{"title": "Shark 50/50B/100/100B Meter User Manual", "version": "V.1.40", "url": "https://www.electroind.com/technical-support/shark-series-downloads/", "note": "Doc# E145701, Appendix B, Shark 50 Modbus map; downloaded through the vendor's download form"}],
  "notes": [
    "All registers are holding registers (FC03 read, FC06/FC10 write). Addresses here are the zero-based hex addresses of the manual; the manual's decimal register numbers are one higher (e.g. 0x03E7 = register 1000).",
    "32-bit values and floats span two registers with the high-order half first.",
    "Factory settings in normal mode are 57600 baud, address 1, Modbus RTU. For the first 5 seconds after power-up the RS-485 port also answers at 9600 baud, address 1, and stays in that mode while it is used.",
    "Energy registers are integers whose scale, digit count and decimal places follow the power and energy format setting. Reset the energy after changing that format.",
    "The 3-phase power readings at 0x0383-0x0388 are updated every 6 cycles; the other readings every 60 cycles.",
    "Not in this map: the programmable settings, the meter programming and encryption blocks and the secondary readings."
  ],
  "protocol": "rtu",
  "unit_id": 1,
  "baudrate": 57600,
  "parity": "N",
  "databits": 8,
  "stopbits": 1,
  "byte_order": "big",
  "word_order": "big",
  "address_base": 0,
  "x_status": "official",
  "registers": [
    {"name": "Meter name", "group": "Device", "area": "holding", "address": "0x0000", "type": "string", "length": 8, "access": "R", "role": "model"},
    {"name": "Meter serial number", "group": "Device", "area": "holding", "address": "0x0008", "type": "string", "length": 8, "access": "R", "role": "serial"},
    {"name": "Meter type", "group": "Device", "area": "holding", "address": "0x0010", "type": "uint16", "access": "R"},
    {"name": "Firmware version", "group": "Device", "area": "holding", "address": "0x0011", "type": "string", "length": 2, "access": "R", "role": "firmware"},
    {"name": "Map version", "group": "Device", "area": "holding", "address": "0x0013", "type": "uint16", "access": "R"},
    {"name": "Meter configuration", "group": "Device", "area": "holding", "address": "0x0014", "type": "uint16", "access": "R"},
    {"name": "ASIC version", "group": "Device", "area": "holding", "address": "0x0015", "type": "uint16", "access": "R"},
    {"name": "Active power, 3-phase total (6 cycles)", "group": "Measurements", "area": "holding", "address": "0x0383", "type": "float32", "unit": "W", "access": "R"},
    {"name": "Reactive power, 3-phase total (6 cycles)", "group": "Measurements", "area": "holding", "address": "0x0385", "type": "float32", "unit": "var", "access": "R"},
    {"name": "Apparent power, 3-phase total (6 cycles)", "group": "Measurements", "area": "holding", "address": "0x0387", "type": "float32", "unit": "VA", "access": "R"},
    {"name": "Voltage A-N", "group": "Measurements", "area": "holding", "address": "0x03E7", "type": "float32", "unit": "V", "access": "R"},
    {"name": "Voltage B-N", "group": "Measurements", "area": "holding", "address": "0x03E9", "type": "float32", "unit": "V", "access": "R"},
    {"name": "Voltage C-N", "group": "Measurements", "area": "holding", "address": "0x03EB", "type": "float32", "unit": "V", "access": "R"},
    {"name": "Voltage A-B", "group": "Measurements", "area": "holding", "address": "0x03ED", "type": "float32", "unit": "V", "access": "R"},
    {"name": "Voltage B-C", "group": "Measurements", "area": "holding", "address": "0x03EF", "type": "float32", "unit": "V", "access": "R"},
    {"name": "Voltage C-A", "group": "Measurements", "area": "holding", "address": "0x03F1", "type": "float32", "unit": "V", "access": "R"},
    {"name": "Current A", "group": "Measurements", "area": "holding", "address": "0x03F3", "type": "float32", "unit": "A", "access": "R"},
    {"name": "Current B", "group": "Measurements", "area": "holding", "address": "0x03F5", "type": "float32", "unit": "A", "access": "R"},
    {"name": "Current C", "group": "Measurements", "area": "holding", "address": "0x03F7", "type": "float32", "unit": "A", "access": "R"},
    {"name": "Active power, 3-phase total", "group": "Measurements", "area": "holding", "address": "0x03F9", "type": "float32", "unit": "W", "access": "R"},
    {"name": "Reactive power, 3-phase total", "group": "Measurements", "area": "holding", "address": "0x03FB", "type": "float32", "unit": "var", "access": "R"},
    {"name": "Apparent power, 3-phase total", "group": "Measurements", "area": "holding", "address": "0x03FD", "type": "float32", "unit": "VA", "access": "R"},
    {"name": "Power factor, 3-phase total", "group": "Measurements", "area": "holding", "address": "0x03FF", "type": "float32", "access": "R"},
    {"name": "Frequency", "group": "Measurements", "area": "holding", "address": "0x0401", "type": "float32", "unit": "Hz", "access": "R"},
    {"name": "Neutral current", "group": "Measurements", "area": "holding", "address": "0x0403", "type": "float32", "unit": "A", "access": "R"},
    {"name": "Active energy, received", "group": "Energy", "area": "holding", "address": "0x044B", "type": "int32", "unit": "Wh", "access": "R", "description": "Integer energy; scale and decimal places follow the power and energy format setting"},
    {"name": "Active energy, delivered", "group": "Energy", "area": "holding", "address": "0x044D", "type": "int32", "unit": "Wh", "access": "R", "description": "Integer energy; scale and decimal places follow the power and energy format setting"},
    {"name": "Active energy, net", "group": "Energy", "area": "holding", "address": "0x044F", "type": "int32", "unit": "Wh", "access": "R", "description": "Integer energy; scale and decimal places follow the power and energy format setting"},
    {"name": "Active energy, total", "group": "Energy", "area": "holding", "address": "0x0451", "type": "int32", "unit": "Wh", "access": "R", "description": "Integer energy; scale and decimal places follow the power and energy format setting"},
    {"name": "Reactive energy, positive", "group": "Energy", "area": "holding", "address": "0x0453", "type": "int32", "unit": "varh", "access": "R", "description": "Integer energy; scale and decimal places follow the power and energy format setting"},
    {"name": "Reactive energy, negative", "group": "Energy", "area": "holding", "address": "0x0455", "type": "int32", "unit": "varh", "access": "R", "description": "Integer energy; scale and decimal places follow the power and energy format setting"},
    {"name": "Reactive energy, net", "group": "Energy", "area": "holding", "address": "0x0457", "type": "int32", "unit": "varh", "access": "R", "description": "Integer energy; scale and decimal places follow the power and energy format setting"},
    {"name": "Reactive energy, total", "group": "Energy", "area": "holding", "address": "0x0459", "type": "int32", "unit": "varh", "access": "R", "description": "Integer energy; scale and decimal places follow the power and energy format setting"},
    {"name": "Apparent energy, total", "group": "Energy", "area": "holding", "address": "0x045B", "type": "int32", "unit": "VAh", "access": "R", "description": "Integer energy; scale and decimal places follow the power and energy format setting"},
    {"name": "Current A demand", "group": "Demand", "area": "holding", "address": "0x07CF", "type": "float32", "unit": "A", "access": "R"},
    {"name": "Current B demand", "group": "Demand", "area": "holding", "address": "0x07D1", "type": "float32", "unit": "A", "access": "R"},
    {"name": "Current C demand", "group": "Demand", "area": "holding", "address": "0x07D3", "type": "float32", "unit": "A", "access": "R"},
    {"name": "Positive active power, 3-phase demand", "group": "Demand", "area": "holding", "address": "0x07D5", "type": "float32", "unit": "W", "access": "R"},
    {"name": "Positive reactive power, 3-phase demand", "group": "Demand", "area": "holding", "address": "0x07D7", "type": "float32", "unit": "var", "access": "R"},
    {"name": "Negative active power, 3-phase demand", "group": "Demand", "area": "holding", "address": "0x07D9", "type": "float32", "unit": "W", "access": "R"},
    {"name": "Negative reactive power, 3-phase demand", "group": "Demand", "area": "holding", "address": "0x07DB", "type": "float32", "unit": "var", "access": "R"},
    {"name": "Apparent power, 3-phase demand", "group": "Demand", "area": "holding", "address": "0x07DD", "type": "float32", "unit": "VA", "access": "R"},
    {"name": "Positive power factor, 3-phase demand", "group": "Demand", "area": "holding", "address": "0x07DF", "type": "float32", "access": "R"},
    {"name": "Negative power factor, 3-phase demand", "group": "Demand", "area": "holding", "address": "0x07E1", "type": "float32", "access": "R"},
    {"name": "Voltage A-N, minimum", "group": "Minimum", "area": "holding", "address": "0x0BB7", "type": "float32", "unit": "V", "access": "R"},
    {"name": "Voltage B-N, minimum", "group": "Minimum", "area": "holding", "address": "0x0BB9", "type": "float32", "unit": "V", "access": "R"},
    {"name": "Voltage C-N, minimum", "group": "Minimum", "area": "holding", "address": "0x0BBB", "type": "float32", "unit": "V", "access": "R"},
    {"name": "Voltage A-B, minimum", "group": "Minimum", "area": "holding", "address": "0x0BBD", "type": "float32", "unit": "V", "access": "R"},
    {"name": "Voltage B-C, minimum", "group": "Minimum", "area": "holding", "address": "0x0BBF", "type": "float32", "unit": "V", "access": "R"},
    {"name": "Voltage C-A, minimum", "group": "Minimum", "area": "holding", "address": "0x0BC1", "type": "float32", "unit": "V", "access": "R"},
    {"name": "Current A, minimum demand", "group": "Minimum", "area": "holding", "address": "0x0BC3", "type": "float32", "unit": "A", "access": "R"},
    {"name": "Current B, minimum demand", "group": "Minimum", "area": "holding", "address": "0x0BC5", "type": "float32", "unit": "A", "access": "R"},
    {"name": "Current C, minimum demand", "group": "Minimum", "area": "holding", "address": "0x0BC7", "type": "float32", "unit": "A", "access": "R"},
    {"name": "Positive active power, 3-phase, minimum demand", "group": "Minimum", "area": "holding", "address": "0x0BC9", "type": "float32", "unit": "W", "access": "R"},
    {"name": "Positive reactive power, 3-phase, minimum demand", "group": "Minimum", "area": "holding", "address": "0x0BCB", "type": "float32", "unit": "var", "access": "R"},
    {"name": "Negative active power, 3-phase, minimum demand", "group": "Minimum", "area": "holding", "address": "0x0BCD", "type": "float32", "unit": "W", "access": "R"},
    {"name": "Negative reactive power, 3-phase, minimum demand", "group": "Minimum", "area": "holding", "address": "0x0BCF", "type": "float32", "unit": "var", "access": "R"},
    {"name": "Apparent power, 3-phase, minimum demand", "group": "Minimum", "area": "holding", "address": "0x0BD1", "type": "float32", "unit": "VA", "access": "R"},
    {"name": "Positive power factor, 3-phase, minimum demand", "group": "Minimum", "area": "holding", "address": "0x0BD3", "type": "float32", "access": "R"},
    {"name": "Negative power factor, 3-phase, minimum demand", "group": "Minimum", "area": "holding", "address": "0x0BD5", "type": "float32", "access": "R"},
    {"name": "Frequency, minimum", "group": "Minimum", "area": "holding", "address": "0x0BD7", "type": "float32", "unit": "Hz", "access": "R"},
    {"name": "Voltage A-N, maximum", "group": "Maximum", "area": "holding", "address": "0x0C1B", "type": "float32", "unit": "V", "access": "R"},
    {"name": "Voltage B-N, maximum", "group": "Maximum", "area": "holding", "address": "0x0C1D", "type": "float32", "unit": "V", "access": "R"},
    {"name": "Voltage C-N, maximum", "group": "Maximum", "area": "holding", "address": "0x0C1F", "type": "float32", "unit": "V", "access": "R"},
    {"name": "Voltage A-B, maximum", "group": "Maximum", "area": "holding", "address": "0x0C21", "type": "float32", "unit": "V", "access": "R"},
    {"name": "Voltage B-C, maximum", "group": "Maximum", "area": "holding", "address": "0x0C23", "type": "float32", "unit": "V", "access": "R"},
    {"name": "Voltage C-A, maximum", "group": "Maximum", "area": "holding", "address": "0x0C25", "type": "float32", "unit": "V", "access": "R"},
    {"name": "Current A, maximum demand", "group": "Maximum", "area": "holding", "address": "0x0C27", "type": "float32", "unit": "A", "access": "R"},
    {"name": "Current B, maximum demand", "group": "Maximum", "area": "holding", "address": "0x0C29", "type": "float32", "unit": "A", "access": "R"},
    {"name": "Current C, maximum demand", "group": "Maximum", "area": "holding", "address": "0x0C2B", "type": "float32", "unit": "A", "access": "R"},
    {"name": "Positive active power, 3-phase, maximum demand", "group": "Maximum", "area": "holding", "address": "0x0C2D", "type": "float32", "unit": "W", "access": "R"},
    {"name": "Positive reactive power, 3-phase, maximum demand", "group": "Maximum", "area": "holding", "address": "0x0C2F", "type": "float32", "unit": "var", "access": "R"},
    {"name": "Negative active power, 3-phase, maximum demand", "group": "Maximum", "area": "holding", "address": "0x0C31", "type": "float32", "unit": "W", "access": "R"},
    {"name": "Negative reactive power, 3-phase, maximum demand", "group": "Maximum", "area": "holding", "address": "0x0C33", "type": "float32", "unit": "var", "access": "R"},
    {"name": "Apparent power, 3-phase, maximum demand", "group": "Maximum", "area": "holding", "address": "0x0C35", "type": "float32", "unit": "VA", "access": "R"},
    {"name": "Positive power factor, 3-phase, maximum demand", "group": "Maximum", "area": "holding", "address": "0x0C37", "type": "float32", "access": "R"},
    {"name": "Negative power factor, 3-phase, maximum demand", "group": "Maximum", "area": "holding", "address": "0x0C39", "type": "float32", "access": "R"},
    {"name": "Frequency, maximum", "group": "Maximum", "area": "holding", "address": "0x0C3B", "type": "float32", "unit": "Hz", "access": "R"},
    {"name": "Phase angle, current A", "group": "Phase angles", "area": "holding", "address": "0x1003", "type": "int16", "scale": 0.1, "unit": "°", "access": "R"},
    {"name": "Phase angle, current B", "group": "Phase angles", "area": "holding", "address": "0x1004", "type": "int16", "scale": 0.1, "unit": "°", "access": "R"},
    {"name": "Phase angle, current C", "group": "Phase angles", "area": "holding", "address": "0x1005", "type": "int16", "scale": 0.1, "unit": "°", "access": "R"},
    {"name": "Phase angle, voltage A-B", "group": "Phase angles", "area": "holding", "address": "0x1006", "type": "int16", "scale": 0.1, "unit": "°", "access": "R"},
    {"name": "Phase angle, voltage B-C", "group": "Phase angles", "area": "holding", "address": "0x1007", "type": "int16", "scale": 0.1, "unit": "°", "access": "R"},
    {"name": "Phase angle, voltage C-A", "group": "Phase angles", "area": "holding", "address": "0x1008", "type": "int16", "scale": 0.1, "unit": "°", "access": "R"},
    {"name": "Meter status", "group": "Status", "area": "holding", "address": "0x1387", "type": "uint16", "access": "R"},
    {"name": "Time since reset", "group": "Status", "area": "holding", "address": "0x1389", "type": "uint32", "scale": 0.004, "unit": "s", "access": "R"},
    {"name": "Reset max/min blocks", "group": "Commands", "area": "holding", "address": "0x4E1F", "type": "uint16", "access": "W", "description": "Write the password (5555 when passwords are disabled)"},
    {"name": "Reset energy accumulators", "group": "Commands", "area": "holding", "address": "0x4E20", "type": "uint16", "access": "W", "description": "Write the password (5555 when passwords are disabled)"},
    {"name": "Force meter restart", "group": "Commands", "area": "holding", "address": "0x61A7", "type": "uint16", "access": "W", "description": "Write the password (5555 when passwords are disabled)"}
  ]
}
