{
  "$schema": "https://raw.githubusercontent.com/nobrega8/mbmap-library/main/schema/mbmap-2.schema.json",
  "mbmap": 2,
  "vendor": "Lovato Electric",
  "model": "DMG300 / DMG700",
  "models": [
    "DMG300",
    "DMG 300",
    "DMG700",
    "DMG 700"
  ],
  "vendor_website": "lovatoelectric.com",
  "description": "Lovato DMG300 and DMG700 digital multimeters/power analysers; Modbus RTU, ASCII or TCP through the communication port or expansion modules",
  "revision": 2,
  "revised": "2026-10-17",
  "source": "Lovato Electric, \"DMG series Modbus communication protocol\", I317IGB02_22",
  "sources": [
    {
      "title": "Digital multimeters-analyzers DMG series, Communication protocol Modbus",
      "version": "I317IGB02_22",
      "url": "https://datasheet.lovatoelectric.com/DOWNLOAD/Technical/TechInstructions/28.%20CONTATORI%20DI%20ENERGIA%20E%20ANALIZZATORI%20DI%20RETE/I317IGB02_22.pdf",
      "note": "measure tables (table 2 onwards); rows marked for this model"
    }
  ],
  "notes": [
    "Addresses are the table addresses of the protocol, which are 1-based: the query uses the table address minus one.",
    "Measurements are read with FC04; 32-bit values are high word first.",
    "Not in this map: the maximum, minimum and average blocks (0x0400-0x0A62), commands (0x2FF0), event log, setup parameters and waveforms."
  ],
  "protocol": "tcp+rtu",
  "unit_id": 1,
  "baudrate": 9600,
  "parity": "N",
  "databits": 8,
  "stopbits": 1,
  "byte_order": "big",
  "word_order": "big",
  "address_base": 1,
  "x_status": "official",
  "registers": [
    {
      "name": "L1 Phase Voltage",
      "group": "Measurements",
      "area": "input",
      "address": 2,
      "type": "uint32",
      "scale": 0.01,
      "unit": "V",
      "access": "R"
    },
    {
      "name": "L2 Phase Voltage",
      "group": "Measurements",
      "area": "input",
      "address": 4,
      "type": "uint32",
      "scale": 0.01,
      "unit": "V",
      "access": "R"
    },
    {
      "name": "L3 Phase Voltage",
      "group": "Measurements",
      "area": "input",
      "address": 6,
      "type": "uint32",
      "scale": 0.01,
      "unit": "V",
      "access": "R"
    },
    {
      "name": "L1 Current",
      "group": "Measurements",
      "area": "input",
      "address": 8,
      "type": "uint32",
      "scale": 0.0001,
      "unit": "A",
      "access": "R"
    },
    {
      "name": "L2 Current",
      "group": "Measurements",
      "area": "input",
      "address": 10,
      "type": "uint32",
      "scale": 0.0001,
      "unit": "A",
      "access": "R"
    },
    {
      "name": "L3 Current",
      "group": "Measurements",
      "area": "input",
      "address": 12,
      "type": "uint32",
      "scale": 0.0001,
      "unit": "A",
      "access": "R"
    },
    {
      "name": "L1-L2 Voltage",
      "group": "Measurements",
      "area": "input",
      "address": 14,
      "type": "uint32",
      "scale": 0.01,
      "unit": "V",
      "access": "R"
    },
    {
      "name": "L2-L3 Voltage",
      "group": "Measurements",
      "area": "input",
      "address": 16,
      "type": "uint32",
      "scale": 0.01,
      "unit": "V",
      "access": "R"
    },
    {
      "name": "L3-L1 Voltage",
      "group": "Measurements",
      "area": "input",
      "address": 18,
      "type": "uint32",
      "scale": 0.01,
      "unit": "V",
      "access": "R"
    },
    {
      "name": "L1 Active Power",
      "group": "Measurements",
      "area": "input",
      "address": 20,
      "type": "int32",
      "scale": 0.01,
      "unit": "W",
      "access": "R",
      "description": "Power scale may change with the device setting (see protocol note on power measurements)"
    },
    {
      "name": "L2 Active Power",
      "group": "Measurements",
      "area": "input",
      "address": 22,
      "type": "int32",
      "scale": 0.01,
      "unit": "W",
      "access": "R",
      "description": "Power scale may change with the device setting (see protocol note on power measurements)"
    },
    {
      "name": "L3 Active Power",
      "group": "Measurements",
      "area": "input",
      "address": 24,
      "type": "int32",
      "scale": 0.01,
      "unit": "W",
      "access": "R",
      "description": "Power scale may change with the device setting (see protocol note on power measurements)"
    },
    {
      "name": "L1 Reactive Power",
      "group": "Measurements",
      "area": "input",
      "address": 26,
      "type": "int32",
      "scale": 0.01,
      "unit": "var",
      "access": "R",
      "description": "Power scale may change with the device setting (see protocol note on power measurements)"
    },
    {
      "name": "L2 Reactive Power",
      "group": "Measurements",
      "area": "input",
      "address": 28,
      "type": "int32",
      "scale": 0.01,
      "unit": "var",
      "access": "R",
      "description": "Power scale may change with the device setting (see protocol note on power measurements)"
    },
    {
      "name": "L3 Reactive Power",
      "group": "Measurements",
      "area": "input",
      "address": 30,
      "type": "int32",
      "scale": 0.01,
      "unit": "var",
      "access": "R",
      "description": "Power scale may change with the device setting (see protocol note on power measurements)"
    },
    {
      "name": "L1 Apparent Power",
      "group": "Measurements",
      "area": "input",
      "address": 32,
      "type": "uint32",
      "scale": 0.01,
      "unit": "VA",
      "access": "R",
      "description": "Power scale may change with the device setting (see protocol note on power measurements)"
    },
    {
      "name": "L2 Apparent Power",
      "group": "Measurements",
      "area": "input",
      "address": 34,
      "type": "uint32",
      "scale": 0.01,
      "unit": "VA",
      "access": "R",
      "description": "Power scale may change with the device setting (see protocol note on power measurements)"
    },
    {
      "name": "L3 Apparent Power",
      "group": "Measurements",
      "area": "input",
      "address": 36,
      "type": "uint32",
      "scale": 0.01,
      "unit": "VA",
      "access": "R",
      "description": "Power scale may change with the device setting (see protocol note on power measurements)"
    },
    {
      "name": "L1 Power Factor",
      "group": "Measurements",
      "area": "input",
      "address": 38,
      "type": "int32",
      "scale": 0.0001,
      "access": "R"
    },
    {
      "name": "L2 Power Factor",
      "group": "Measurements",
      "area": "input",
      "address": 40,
      "type": "int32",
      "scale": 0.0001,
      "access": "R"
    },
    {
      "name": "L3 Power Factor",
      "group": "Measurements",
      "area": "input",
      "address": 42,
      "type": "int32",
      "scale": 0.0001,
      "access": "R"
    },
    {
      "name": "Frequency",
      "group": "Measurements",
      "area": "input",
      "address": 50,
      "type": "uint32",
      "scale": 0.001,
      "unit": "Hz",
      "access": "R"
    },
    {
      "name": "Equivalent Phase Voltage",
      "group": "Measurements",
      "area": "input",
      "address": 52,
      "type": "uint32",
      "scale": 0.01,
      "unit": "V",
      "access": "R"
    },
    {
      "name": "Equivalent Phase-To-Phase Voltage",
      "group": "Measurements",
      "area": "input",
      "address": 54,
      "type": "uint32",
      "scale": 0.01,
      "unit": "V",
      "access": "R"
    },
    {
      "name": "Equivalent Current",
      "group": "Measurements",
      "area": "input",
      "address": 56,
      "type": "uint32",
      "scale": 0.0001,
      "unit": "A",
      "access": "R"
    },
    {
      "name": "Equivalent Active Power",
      "group": "Measurements",
      "area": "input",
      "address": 58,
      "type": "int32",
      "scale": 0.01,
      "unit": "W",
      "access": "R"
    },
    {
      "name": "Equivalent Reactive Power",
      "group": "Measurements",
      "area": "input",
      "address": 60,
      "type": "int32",
      "scale": 0.01,
      "unit": "var",
      "access": "R"
    },
    {
      "name": "Equivalent Apparent Power",
      "group": "Measurements",
      "area": "input",
      "address": 62,
      "type": "uint32",
      "scale": 0.01,
      "unit": "VA",
      "access": "R"
    },
    {
      "name": "Equivalent Power Factor",
      "group": "Measurements",
      "area": "input",
      "address": 64,
      "type": "int32",
      "scale": 0.0001,
      "access": "R"
    },
    {
      "name": "Phase-Phase Voltage asymmetry",
      "group": "Measurements",
      "area": "input",
      "address": 66,
      "type": "uint32",
      "scale": 0.01,
      "unit": "%",
      "access": "R"
    },
    {
      "name": "Phase-neutral Voltage asymmetry",
      "group": "Measurements",
      "area": "input",
      "address": 68,
      "type": "uint32",
      "scale": 0.01,
      "unit": "%",
      "access": "R"
    },
    {
      "name": "Current Asymmetry",
      "group": "Measurements",
      "area": "input",
      "address": 70,
      "type": "uint32",
      "scale": 0.01,
      "unit": "%",
      "access": "R"
    },
    {
      "name": "Neutral Current",
      "group": "Measurements",
      "area": "input",
      "address": 72,
      "type": "uint32",
      "scale": 0.0001,
      "unit": "A",
      "access": "R"
    },
    {
      "name": "L1 Voltage THD",
      "group": "Measurements",
      "area": "input",
      "address": 84,
      "type": "uint32",
      "scale": 0.01,
      "unit": "%",
      "access": "R"
    },
    {
      "name": "L2 Voltage THD",
      "group": "Measurements",
      "area": "input",
      "address": 86,
      "type": "uint32",
      "scale": 0.01,
      "unit": "%",
      "access": "R"
    },
    {
      "name": "L3 Voltage THD",
      "group": "Measurements",
      "area": "input",
      "address": 88,
      "type": "uint32",
      "scale": 0.01,
      "unit": "%",
      "access": "R"
    },
    {
      "name": "L1 Current THD",
      "group": "Measurements",
      "area": "input",
      "address": 90,
      "type": "uint32",
      "scale": 0.01,
      "unit": "%",
      "access": "R"
    },
    {
      "name": "L2 Current THD",
      "group": "Measurements",
      "area": "input",
      "address": 92,
      "type": "uint32",
      "scale": 0.01,
      "unit": "%",
      "access": "R"
    },
    {
      "name": "L3 Current THD",
      "group": "Measurements",
      "area": "input",
      "address": 94,
      "type": "uint32",
      "scale": 0.01,
      "unit": "%",
      "access": "R"
    },
    {
      "name": "L1-2 Voltage THD",
      "group": "Measurements",
      "area": "input",
      "address": 96,
      "type": "uint32",
      "scale": 0.01,
      "unit": "%",
      "access": "R"
    },
    {
      "name": "L2-3 Voltage THD",
      "group": "Measurements",
      "area": "input",
      "address": 98,
      "type": "uint32",
      "scale": 0.01,
      "unit": "%",
      "access": "R"
    },
    {
      "name": "L3-1 Voltage THD",
      "group": "Measurements",
      "area": "input",
      "address": 100,
      "type": "uint32",
      "scale": 0.01,
      "unit": "%",
      "access": "R"
    },
    {
      "name": "Total imported Active Energy",
      "group": "Energy",
      "area": "input",
      "address": 6688,
      "type": "uint32",
      "scale": 0.01,
      "unit": "kWh",
      "access": "R"
    },
    {
      "name": "Total exported Active Energy",
      "group": "Energy",
      "area": "input",
      "address": 6690,
      "type": "uint32",
      "scale": 0.01,
      "unit": "kWh",
      "access": "R"
    },
    {
      "name": "Total imported Reactive Energy",
      "group": "Energy",
      "area": "input",
      "address": 6692,
      "type": "uint32",
      "scale": 0.01,
      "unit": "kvarh",
      "access": "R"
    },
    {
      "name": "Total exported Reactive Energy",
      "group": "Energy",
      "area": "input",
      "address": 6694,
      "type": "uint32",
      "scale": 0.01,
      "unit": "kvarh",
      "access": "R"
    },
    {
      "name": "Total Apparent Energy",
      "group": "Energy",
      "area": "input",
      "address": 6696,
      "type": "uint32",
      "scale": 0.01,
      "unit": "kVAh",
      "access": "R"
    },
    {
      "name": "Partial imported Active Energy",
      "group": "Energy",
      "area": "input",
      "address": 6698,
      "type": "uint32",
      "scale": 0.01,
      "unit": "kWh",
      "access": "R"
    },
    {
      "name": "Partial exported Active Energy",
      "group": "Energy",
      "area": "input",
      "address": 6700,
      "type": "uint32",
      "scale": 0.01,
      "unit": "kWh",
      "access": "R"
    },
    {
      "name": "Partial imported Reactive Energy",
      "group": "Energy",
      "area": "input",
      "address": 6702,
      "type": "uint32",
      "scale": 0.01,
      "unit": "kvarh",
      "access": "R"
    },
    {
      "name": "Partial exported Reactive Energy",
      "group": "Energy",
      "area": "input",
      "address": 6704,
      "type": "uint32",
      "scale": 0.01,
      "unit": "kvarh",
      "access": "R"
    },
    {
      "name": "Partial Apparent Energy",
      "group": "Energy",
      "area": "input",
      "address": 6706,
      "type": "uint32",
      "scale": 0.01,
      "unit": "kVAh",
      "access": "R"
    },
    {
      "name": "Total imported Active Energy (64-bit)",
      "group": "Energy",
      "area": "input",
      "address": 6944,
      "type": "uint64",
      "scale": 0.01,
      "unit": "kWh",
      "access": "R"
    },
    {
      "name": "Total exported Active Energy (64-bit)",
      "group": "Energy",
      "area": "input",
      "address": 6948,
      "type": "uint64",
      "scale": 0.01,
      "unit": "kWh",
      "access": "R"
    },
    {
      "name": "Total imported Reactive Energy (64-bit)",
      "group": "Energy",
      "area": "input",
      "address": 6952,
      "type": "uint64",
      "scale": 0.01,
      "unit": "kvarh",
      "access": "R"
    },
    {
      "name": "Total exported Reactive Energy (64-bit)",
      "group": "Energy",
      "area": "input",
      "address": 6956,
      "type": "uint64",
      "scale": 0.01,
      "unit": "kvarh",
      "access": "R"
    },
    {
      "name": "Total Apparent Energy (64-bit)",
      "group": "Energy",
      "area": "input",
      "address": 6960,
      "type": "uint64",
      "scale": 0.01,
      "unit": "kVAh",
      "access": "R"
    },
    {
      "name": "Partial imported Active Energy (64-bit)",
      "group": "Energy",
      "area": "input",
      "address": 6964,
      "type": "uint64",
      "scale": 0.01,
      "unit": "kWh",
      "access": "R"
    },
    {
      "name": "Partial exported Active Energy (64-bit)",
      "group": "Energy",
      "area": "input",
      "address": 6968,
      "type": "uint64",
      "scale": 0.01,
      "unit": "kWh",
      "access": "R"
    },
    {
      "name": "Partial imported Reactive Energy (64-bit)",
      "group": "Energy",
      "area": "input",
      "address": 6972,
      "type": "uint64",
      "scale": 0.01,
      "unit": "kvarh",
      "access": "R"
    },
    {
      "name": "Partial exported Reactive Energy (64-bit)",
      "group": "Energy",
      "area": "input",
      "address": 6976,
      "type": "uint64",
      "scale": 0.01,
      "unit": "kvarh",
      "access": "R"
    },
    {
      "name": "Partial Apparent Energy (64-bit)",
      "group": "Energy",
      "area": "input",
      "address": 6980,
      "type": "uint64",
      "scale": 0.01,
      "unit": "kVAh",
      "access": "R"
    },
    {
      "name": "Imported Active Energy Tariff 1 (64-bit)",
      "group": "Energy",
      "area": "input",
      "address": 6984,
      "type": "uint64",
      "scale": 0.01,
      "unit": "kWh",
      "access": "R"
    },
    {
      "name": "Exported Active Energy Tariff 1 (64-bit)",
      "group": "Energy",
      "area": "input",
      "address": 6988,
      "type": "uint64",
      "scale": 0.01,
      "unit": "kWh",
      "access": "R"
    },
    {
      "name": "Imported Reactive Energy Tariff 1 (64-bit)",
      "group": "Energy",
      "area": "input",
      "address": 6992,
      "type": "uint64",
      "scale": 0.01,
      "unit": "kvarh",
      "access": "R"
    },
    {
      "name": "Exported Reactive Energy Tariff 1 (64-bit)",
      "group": "Energy",
      "area": "input",
      "address": 6996,
      "type": "uint64",
      "scale": 0.01,
      "unit": "kvarh",
      "access": "R"
    },
    {
      "name": "Apparent Energy Tariff 1 (64-bit)",
      "group": "Energy",
      "area": "input",
      "address": 7000,
      "type": "uint64",
      "scale": 0.01,
      "unit": "kVAh",
      "access": "R"
    },
    {
      "name": "Imported Active Energy Tariff 2 (64-bit)",
      "group": "Energy",
      "area": "input",
      "address": 7004,
      "type": "uint64",
      "scale": 0.01,
      "unit": "kWh",
      "access": "R"
    },
    {
      "name": "Apparent Energy Tariff 2 (64-bit)",
      "group": "Energy",
      "area": "input",
      "address": 7020,
      "type": "uint64",
      "scale": 0.01,
      "unit": "kVAh",
      "access": "R"
    },
    {
      "name": "Imported Active Energy Tariff 3 (64-bit)",
      "group": "Energy",
      "area": "input",
      "address": 7024,
      "type": "uint64",
      "scale": 0.01,
      "unit": "kWh",
      "access": "R"
    },
    {
      "name": "Apparent Energy Tariff 3 (64-bit)",
      "group": "Energy",
      "area": "input",
      "address": 7040,
      "type": "uint64",
      "scale": 0.01,
      "unit": "kVAh",
      "access": "R"
    },
    {
      "name": "Imported Active Energy Tariff 4 (64-bit)",
      "group": "Energy",
      "area": "input",
      "address": 7044,
      "type": "uint64",
      "scale": 0.01,
      "unit": "kWh",
      "access": "R"
    },
    {
      "name": "Apparent Energy Tariff 4 (64-bit)",
      "group": "Energy",
      "area": "input",
      "address": 7060,
      "type": "uint64",
      "scale": 0.01,
      "unit": "kVAh",
      "access": "R"
    },
    {
      "name": "Counter 1",
      "group": "Counters",
      "area": "input",
      "address": 7424,
      "type": "uint32",
      "access": "R"
    },
    {
      "name": "Counter 2",
      "group": "Counters",
      "area": "input",
      "address": 7426,
      "type": "uint32",
      "access": "R"
    },
    {
      "name": "Counter 3",
      "group": "Counters",
      "area": "input",
      "address": 7428,
      "type": "uint32",
      "access": "R"
    },
    {
      "name": "Counter 4",
      "group": "Counters",
      "area": "input",
      "address": 7430,
      "type": "uint32",
      "access": "R"
    },
    {
      "name": "Total Hour meter",
      "group": "Counters",
      "area": "input",
      "address": 7680,
      "type": "uint32",
      "unit": "s",
      "access": "R"
    },
    {
      "name": "Partial Hour meter",
      "group": "Counters",
      "area": "input",
      "address": 7682,
      "type": "uint32",
      "unit": "s",
      "access": "R"
    },
    {
      "name": "Input 1",
      "group": "I/O",
      "area": "input",
      "address": 8449,
      "type": "uint16",
      "access": "R",
      "enum": {
        "0": "Off",
        "1": "On"
      }
    },
    {
      "name": "Input 8",
      "group": "I/O",
      "area": "input",
      "address": 8456,
      "type": "uint16",
      "access": "R",
      "enum": {
        "0": "Off",
        "1": "On"
      }
    },
    {
      "name": "Output 1",
      "group": "I/O",
      "area": "input",
      "address": 8465,
      "type": "uint16",
      "access": "R",
      "enum": {
        "0": "Off",
        "1": "On"
      }
    },
    {
      "name": "Output 8",
      "group": "I/O",
      "area": "input",
      "address": 8472,
      "type": "uint16",
      "access": "R",
      "enum": {
        "0": "Off",
        "1": "On"
      }
    },
    {
      "name": "Alarm 1",
      "group": "I/O",
      "area": "input",
      "address": 8481,
      "type": "uint16",
      "access": "R"
    },
    {
      "name": "Alarm 8",
      "group": "I/O",
      "area": "input",
      "address": 8488,
      "type": "uint16",
      "access": "R"
    },
    {
      "name": "Boolean 1",
      "group": "I/O",
      "area": "input",
      "address": 8497,
      "type": "uint16",
      "access": "R",
      "enum": {
        "0": "Off",
        "1": "On"
      }
    },
    {
      "name": "Boolean 8",
      "group": "I/O",
      "area": "input",
      "address": 8504,
      "type": "uint16",
      "access": "R",
      "enum": {
        "0": "Off",
        "1": "On"
      }
    },
    {
      "name": "Limit 1",
      "group": "I/O",
      "area": "input",
      "address": 8513,
      "type": "uint16",
      "access": "R",
      "enum": {
        "0": "Off",
        "1": "On"
      }
    },
    {
      "name": "Limit 8",
      "group": "Measurements",
      "area": "input",
      "address": 328,
      "type": "uint16",
      "access": "R",
      "enum": {
        "0": "Off",
        "1": "On"
      }
    },
    {
      "name": "Remote 1",
      "group": "I/O",
      "area": "input",
      "address": 20224,
      "type": "uint16",
      "access": "R",
      "enum": {
        "0": "Off",
        "1": "On"
      }
    },
    {
      "name": "Remote 8",
      "group": "I/O",
      "area": "input",
      "address": 20231,
      "type": "uint16",
      "access": "R",
      "enum": {
        "0": "Off",
        "1": "On"
      }
    }
  ]
}