{
  "spec_version": 1,
  "slug": "inepro-pro380-mod",
  "manufacturer": "Inepro Metering",
  "model": "PRO380-Mod",
  "category": "Energy meter",
  "supplier_url": "https://www.ineprometering.com/product/pro380-mod-electricity-meter",
  "default_configuration": {
    "protocol": "modbus_tcp",
    "port": 502,
    "unit_id": 1,
    "addressing": "zero_based",
    "byte_order": "BigEndian",
    "word_order": "HighFirst",
    "native_interface": "rs485",
    "serial": {
      "parity": "Even",
      "baud_rate": 9600,
      "data_bits": 8,
      "stop_bits": 1
    }
  },
  "coils": [],
  "discrete_inputs": [],
  "input_registers": [],
  "holding_registers": [
    {
      "address": 20480,
      "count": 2,
      "name": "Voltage, total",
      "data_type": "Float32",
      "units": "V",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 20482,
      "count": 2,
      "name": "Voltage L1",
      "data_type": "Float32",
      "units": "V",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 20484,
      "count": 2,
      "name": "Voltage L2",
      "data_type": "Float32",
      "units": "V",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 20486,
      "count": 2,
      "name": "Voltage L3",
      "data_type": "Float32",
      "units": "V",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 20488,
      "count": 2,
      "name": "Grid frequency",
      "data_type": "Float32",
      "units": "Hz",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 20490,
      "count": 2,
      "name": "Current, total",
      "data_type": "Float32",
      "units": "A",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 20492,
      "count": 2,
      "name": "Current L1",
      "data_type": "Float32",
      "units": "A",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 20494,
      "count": 2,
      "name": "Current L2",
      "data_type": "Float32",
      "units": "A",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 20496,
      "count": 2,
      "name": "Current L3",
      "data_type": "Float32",
      "units": "A",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 20498,
      "count": 2,
      "name": "Total active power",
      "data_type": "Float32",
      "units": "W",
      "scale_factor": 1000,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 20500,
      "count": 2,
      "name": "Active power L1",
      "data_type": "Float32",
      "units": "W",
      "scale_factor": 1000,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 20502,
      "count": 2,
      "name": "Active power L2",
      "data_type": "Float32",
      "units": "W",
      "scale_factor": 1000,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 20504,
      "count": 2,
      "name": "Active power L3",
      "data_type": "Float32",
      "units": "W",
      "scale_factor": 1000,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 20506,
      "count": 2,
      "name": "Total reactive power",
      "data_type": "Float32",
      "units": "var",
      "scale_factor": 1000,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 20508,
      "count": 2,
      "name": "Reactive power L1",
      "data_type": "Float32",
      "units": "var",
      "scale_factor": 1000,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 20510,
      "count": 2,
      "name": "Reactive power L2",
      "data_type": "Float32",
      "units": "var",
      "scale_factor": 1000,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 20512,
      "count": 2,
      "name": "Reactive power L3",
      "data_type": "Float32",
      "units": "var",
      "scale_factor": 1000,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 20514,
      "count": 2,
      "name": "Total apparent power",
      "data_type": "Float32",
      "units": "VA",
      "scale_factor": 1000,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 20516,
      "count": 2,
      "name": "Apparent power L1",
      "data_type": "Float32",
      "units": "VA",
      "scale_factor": 1000,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 20518,
      "count": 2,
      "name": "Apparent power L2",
      "data_type": "Float32",
      "units": "VA",
      "scale_factor": 1000,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 20520,
      "count": 2,
      "name": "Apparent power L3",
      "data_type": "Float32",
      "units": "VA",
      "scale_factor": 1000,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 20522,
      "count": 2,
      "name": "Power factor",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 20524,
      "count": 2,
      "name": "Power factor L1",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 20526,
      "count": 2,
      "name": "Power factor L2",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 20528,
      "count": 2,
      "name": "Power factor L3",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 24576,
      "count": 2,
      "name": "Total active energy",
      "data_type": "Float32",
      "units": "kWh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 24578,
      "count": 2,
      "name": "Total active energy, tariff 1",
      "data_type": "Float32",
      "units": "kWh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 24580,
      "count": 2,
      "name": "Total active energy, tariff 2",
      "data_type": "Float32",
      "units": "kWh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 24582,
      "count": 2,
      "name": "Total active energy L1",
      "data_type": "Float32",
      "units": "kWh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 24584,
      "count": 2,
      "name": "Total active energy L2",
      "data_type": "Float32",
      "units": "kWh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 24586,
      "count": 2,
      "name": "Total active energy L3",
      "data_type": "Float32",
      "units": "kWh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 24588,
      "count": 2,
      "name": "Forward active energy",
      "data_type": "Float32",
      "units": "kWh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 24590,
      "count": 2,
      "name": "Forward active energy, tariff 1",
      "data_type": "Float32",
      "units": "kWh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 24592,
      "count": 2,
      "name": "Forward active energy, tariff 2",
      "data_type": "Float32",
      "units": "kWh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 24594,
      "count": 2,
      "name": "Forward active energy L1",
      "data_type": "Float32",
      "units": "kWh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 24596,
      "count": 2,
      "name": "Forward active energy L2",
      "data_type": "Float32",
      "units": "kWh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 24598,
      "count": 2,
      "name": "Forward active energy L3",
      "data_type": "Float32",
      "units": "kWh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 24600,
      "count": 2,
      "name": "Reverse active energy",
      "data_type": "Float32",
      "units": "kWh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 24602,
      "count": 2,
      "name": "Reverse active energy, tariff 1",
      "data_type": "Float32",
      "units": "kWh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 24604,
      "count": 2,
      "name": "Reverse active energy, tariff 2",
      "data_type": "Float32",
      "units": "kWh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 24606,
      "count": 2,
      "name": "Reverse active energy L1",
      "data_type": "Float32",
      "units": "kWh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 24608,
      "count": 2,
      "name": "Reverse active energy L2",
      "data_type": "Float32",
      "units": "kWh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 24610,
      "count": 2,
      "name": "Reverse active energy L3",
      "data_type": "Float32",
      "units": "kWh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 24612,
      "count": 2,
      "name": "Total reactive energy",
      "data_type": "Float32",
      "units": "kvarh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 24614,
      "count": 2,
      "name": "Total reactive energy, tariff 1",
      "data_type": "Float32",
      "units": "kvarh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 24616,
      "count": 2,
      "name": "Total reactive energy, tariff 2",
      "data_type": "Float32",
      "units": "kvarh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 24624,
      "count": 2,
      "name": "Forward reactive energy",
      "data_type": "Float32",
      "units": "kvarh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 24636,
      "count": 2,
      "name": "Reverse reactive energy",
      "data_type": "Float32",
      "units": "kvarh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 24649,
      "count": 2,
      "name": "Resettable day counter",
      "data_type": "Float32",
      "units": "kWh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 16384,
      "count": 2,
      "name": "Serial number",
      "data_type": "UInt32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 16386,
      "count": 1,
      "name": "Meter code",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 16387,
      "count": 1,
      "name": "Modbus ID",
      "data_type": "Int16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "1 to 247; factory default 1."
    },
    {
      "address": 16388,
      "count": 1,
      "name": "Baud rate",
      "data_type": "Int16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "9600 (default), 4800, 2400, 1200, 600 or 300."
    },
    {
      "address": 16396,
      "count": 1,
      "name": "CT ratio",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "CT models only; write once by button."
    },
    {
      "address": 16399,
      "count": 1,
      "name": "Combination code",
      "data_type": "Int16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "01, 04, 05 (default), 06, 09 or 10."
    },
    {
      "address": 16400,
      "count": 1,
      "name": "LCD cycle time",
      "data_type": "UInt16",
      "units": "s",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "1 to 30, 10 s default."
    },
    {
      "address": 16401,
      "count": 1,
      "name": "Parity setting",
      "data_type": "Int16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "01 = even, 02 = none."
    }
  ],
  "combined_registers": [],
  "notes": "RS-485 device: reach it through a Modbus RTU-to-TCP gateway using the factory serial settings above (slave address 1, 9600 bps, 8 data bits, even parity, 1 stop bit). Source: Inepro Metering 'PRO380 Series user manual' V2.18, appendix 3.2 (Modbus register map); older V1.14 register numbers are still served by the meter but are not modelled here. Every value is an IEEE-754 single-precision float read with function code 03 (ABCD word order). Power registers are in kW/kvar/kVA and are scaled to W/var/VA; energies are already in kWh/kvarh. A 120 ohm resistor across terminals 22/23 may be needed on a short test bus."
}
