{ "$schema": "https://raw.githubusercontent.com/nobrega8/mbmap-library/main/schema/mbmap-2.schema.json", "mbmap": 2, "vendor": "Inepro Metering", "model": "PRO380-Mod", "models": ["PRO380-Mod", "PRO380-Mod-CT"], "vendor_website": "ineprometering.com", "description": "Inepro PRO380 three-phase DIN rail energy meter with Modbus RTU over RS-485", "revision": 2, "revised": "2026-10-17", "source": "Inepro Metering, \"PRO380 Series user manual\", V2.18-8, appendix A3 (Modbus register map)", "sources": [{"title": "PRO380 Series user manual", "version": "V2.18-8", "url": "https://cdn.prod.website-files.com/6617f74190bf0a53bfd776e8/69f0b42e8df8da5157fb250d_PRO380%20user%20manual%20V2.18-8.pdf", "note": "Appendix A3.2, Modbus register map; linked from the PRO380-Mod product page"}], "notes": [ "All registers are holding registers read with FC03. Settings are written with FC06 (one register) or FC10 (floats).", "Floats are IEEE 754 in ABCD order (high word first).", "Defaults: address 1, 9600 baud, 8 data bits, even parity, 1 stop bit. Baud rate can be lowered to 4800, 2400, 1200, 600 or 300; parity can be none or odd.", "Power is given in kW, kvar and kVA, energy in kWh and kvarh.", "The registers of the old V1.14 map still work but are not in this map. The table's average voltage (0x5000) and current (0x500A) are marked as PRO1 only and are left out." ], "protocol": "rtu", "unit_id": 1, "baudrate": 9600, "parity": "E", "databits": 8, "stopbits": 1, "byte_order": "big", "word_order": "big", "address_base": 0, "x_status": "official", "registers": [ {"name": "Serial number", "group": "Device", "area": "holding", "address": "0x4000", "type": "uint32", "access": "R", "role": "serial", "description": "Read as hexadecimal"}, {"name": "Meter code", "group": "Device", "area": "holding", "address": "0x4002", "type": "uint16", "access": "R", "description": "Read as hexadecimal"}, {"name": "Modbus ID", "group": "Device", "area": "holding", "address": "0x4003", "type": "int16", "access": "RW", "write_min": 0, "write_max": 247, "description": "0 = broadcast, default 1"}, {"name": "Baud rate", "group": "Device", "area": "holding", "address": "0x4004", "type": "int16", "access": "RW", "enum": {"300": "300", "600": "600", "1200": "1200", "4800": "4800", "9600": "9600"}, "description": "The value is the baud rate itself"}, {"name": "Protocol version", "group": "Device", "area": "holding", "address": "0x4005", "type": "float32", "access": "R"}, {"name": "Software version", "group": "Device", "area": "holding", "address": "0x4007", "type": "float32", "access": "R", "role": "firmware"}, {"name": "Hardware version", "group": "Device", "area": "holding", "address": "0x4009", "type": "float32", "access": "R"}, {"name": "Meter amps", "group": "Device", "area": "holding", "address": "0x400B", "type": "int16", "unit": "A", "access": "R"}, {"name": "CT ratio", "group": "Device", "area": "holding", "address": "0x400C", "type": "uint16", "unit": "A", "access": "R", "description": "Read as hexadecimal"}, {"name": "S0 output rate", "group": "Device", "area": "holding", "address": "0x400D", "type": "float32", "unit": "imp/kWh", "access": "RW", "description": "10000, 2000, 1000, 100, 10, 1, 0.1 or 0.01"}, {"name": "Combination code", "group": "Device", "area": "holding", "address": "0x400F", "type": "int16", "access": "RW", "enum": {"1": "1", "4": "4", "5": "5", "6": "6", "9": "9", "10": "10 (forward - reverse)", "11": "11"}}, {"name": "LCD cycle time", "group": "Device", "area": "holding", "address": "0x4010", "type": "uint16", "unit": "s", "access": "RW", "write_min": 1, "write_max": 30, "description": "Read and written as hexadecimal digits (0x0025 = 25 s)"}, {"name": "Parity", "group": "Device", "area": "holding", "address": "0x4011", "type": "int16", "access": "RW", "enum": {"1": "Even", "2": "None", "3": "Odd"}}, {"name": "L1 current direction", "group": "Device", "area": "holding", "address": "0x4012", "type": "string", "length": 1, "access": "R"}, {"name": "L2 current direction", "group": "Device", "area": "holding", "address": "0x4013", "type": "string", "length": 1, "access": "R"}, {"name": "L3 current direction", "group": "Device", "area": "holding", "address": "0x4014", "type": "string", "length": 1, "access": "R"}, {"name": "Error code", "group": "Device", "area": "holding", "address": "0x4015", "type": "int16", "access": "R"}, {"name": "Power down counter", "group": "Device", "area": "holding", "address": "0x4016", "type": "int16", "access": "RW", "description": "Write 0 to reset"}, {"name": "Present quadrant", "group": "Device", "area": "holding", "address": "0x4017", "type": "int16", "access": "R"}, {"name": "L1 quadrant", "group": "Device", "area": "holding", "address": "0x4018", "type": "int16", "access": "R"}, {"name": "L2 quadrant", "group": "Device", "area": "holding", "address": "0x4019", "type": "int16", "access": "R"}, {"name": "L3 quadrant", "group": "Device", "area": "holding", "address": "0x401A", "type": "int16", "access": "R"}, {"name": "Checksum", "group": "Device", "area": "holding", "address": "0x401B", "type": "uint32", "access": "R"}, {"name": "Active status word", "group": "Device", "area": "holding", "address": "0x401D", "type": "uint32", "access": "R"}, {"name": "CT mode", "group": "Device", "area": "holding", "address": "0x401F", "type": "int16", "unit": "A", "access": "R"}, {"name": "L1 voltage", "group": "Measurements", "area": "holding", "address": "0x5002", "type": "float32", "unit": "V", "access": "R"}, {"name": "L2 voltage", "group": "Measurements", "area": "holding", "address": "0x5004", "type": "float32", "unit": "V", "access": "R"}, {"name": "L3 voltage", "group": "Measurements", "area": "holding", "address": "0x5006", "type": "float32", "unit": "V", "access": "R"}, {"name": "Grid frequency", "group": "Measurements", "area": "holding", "address": "0x5008", "type": "float32", "unit": "Hz", "access": "R"}, {"name": "L1 current", "group": "Measurements", "area": "holding", "address": "0x500C", "type": "float32", "unit": "A", "access": "R"}, {"name": "L2 current", "group": "Measurements", "area": "holding", "address": "0x500E", "type": "float32", "unit": "A", "access": "R"}, {"name": "L3 current", "group": "Measurements", "area": "holding", "address": "0x5010", "type": "float32", "unit": "A", "access": "R"}, {"name": "Total active power", "group": "Measurements", "area": "holding", "address": "0x5012", "type": "float32", "unit": "kW", "access": "R"}, {"name": "L1 active power", "group": "Measurements", "area": "holding", "address": "0x5014", "type": "float32", "unit": "kW", "access": "R"}, {"name": "L2 active power", "group": "Measurements", "area": "holding", "address": "0x5016", "type": "float32", "unit": "kW", "access": "R"}, {"name": "L3 active power", "group": "Measurements", "area": "holding", "address": "0x5018", "type": "float32", "unit": "kW", "access": "R"}, {"name": "Total reactive power", "group": "Measurements", "area": "holding", "address": "0x501A", "type": "float32", "unit": "kvar", "access": "R"}, {"name": "L1 reactive power", "group": "Measurements", "area": "holding", "address": "0x501C", "type": "float32", "unit": "kvar", "access": "R"}, {"name": "L2 reactive power", "group": "Measurements", "area": "holding", "address": "0x501E", "type": "float32", "unit": "kvar", "access": "R"}, {"name": "L3 reactive power", "group": "Measurements", "area": "holding", "address": "0x5020", "type": "float32", "unit": "kvar", "access": "R"}, {"name": "Total apparent power", "group": "Measurements", "area": "holding", "address": "0x5022", "type": "float32", "unit": "kVA", "access": "R"}, {"name": "L1 apparent power", "group": "Measurements", "area": "holding", "address": "0x5024", "type": "float32", "unit": "kVA", "access": "R"}, {"name": "L2 apparent power", "group": "Measurements", "area": "holding", "address": "0x5026", "type": "float32", "unit": "kVA", "access": "R"}, {"name": "L3 apparent power", "group": "Measurements", "area": "holding", "address": "0x5028", "type": "float32", "unit": "kVA", "access": "R"}, {"name": "Total power factor", "group": "Measurements", "area": "holding", "address": "0x502A", "type": "float32", "access": "R"}, {"name": "L1 power factor", "group": "Measurements", "area": "holding", "address": "0x502C", "type": "float32", "access": "R"}, {"name": "L2 power factor", "group": "Measurements", "area": "holding", "address": "0x502E", "type": "float32", "access": "R"}, {"name": "L3 power factor", "group": "Measurements", "area": "holding", "address": "0x5030", "type": "float32", "access": "R"}, {"name": "Total active energy", "group": "Energy", "area": "holding", "address": "0x6000", "type": "float32", "unit": "kWh", "access": "R"}, {"name": "T1 total active energy", "group": "Energy", "area": "holding", "address": "0x6002", "type": "float32", "unit": "kWh", "access": "R"}, {"name": "T2 total active energy", "group": "Energy", "area": "holding", "address": "0x6004", "type": "float32", "unit": "kWh", "access": "R"}, {"name": "L1 total active energy", "group": "Energy", "area": "holding", "address": "0x6006", "type": "float32", "unit": "kWh", "access": "R"}, {"name": "L2 total active energy", "group": "Energy", "area": "holding", "address": "0x6008", "type": "float32", "unit": "kWh", "access": "R"}, {"name": "L3 total active energy", "group": "Energy", "area": "holding", "address": "0x600A", "type": "float32", "unit": "kWh", "access": "R"}, {"name": "Forward active energy", "group": "Energy", "area": "holding", "address": "0x600C", "type": "float32", "unit": "kWh", "access": "R"}, {"name": "T1 forward active energy", "group": "Energy", "area": "holding", "address": "0x600E", "type": "float32", "unit": "kWh", "access": "R"}, {"name": "T2 forward active energy", "group": "Energy", "area": "holding", "address": "0x6010", "type": "float32", "unit": "kWh", "access": "R"}, {"name": "L1 forward active energy", "group": "Energy", "area": "holding", "address": "0x6012", "type": "float32", "unit": "kWh", "access": "R"}, {"name": "L2 forward active energy", "group": "Energy", "area": "holding", "address": "0x6014", "type": "float32", "unit": "kWh", "access": "R"}, {"name": "L3 forward active energy", "group": "Energy", "area": "holding", "address": "0x6016", "type": "float32", "unit": "kWh", "access": "R"}, {"name": "Reverse active energy", "group": "Energy", "area": "holding", "address": "0x6018", "type": "float32", "unit": "kWh", "access": "R"}, {"name": "T1 reverse active energy", "group": "Energy", "area": "holding", "address": "0x601A", "type": "float32", "unit": "kWh", "access": "R"}, {"name": "T2 reverse active energy", "group": "Energy", "area": "holding", "address": "0x601C", "type": "float32", "unit": "kWh", "access": "R"}, {"name": "L1 reverse active energy", "group": "Energy", "area": "holding", "address": "0x601E", "type": "float32", "unit": "kWh", "access": "R"}, {"name": "L2 reverse active energy", "group": "Energy", "area": "holding", "address": "0x6020", "type": "float32", "unit": "kWh", "access": "R"}, {"name": "L3 reverse active energy", "group": "Energy", "area": "holding", "address": "0x6022", "type": "float32", "unit": "kWh", "access": "R"}, {"name": "Total reactive energy", "group": "Energy", "area": "holding", "address": "0x6024", "type": "float32", "unit": "kvarh", "access": "R"}, {"name": "T1 total reactive energy", "group": "Energy", "area": "holding", "address": "0x6026", "type": "float32", "unit": "kvarh", "access": "R"}, {"name": "T2 total reactive energy", "group": "Energy", "area": "holding", "address": "0x6028", "type": "float32", "unit": "kvarh", "access": "R"}, {"name": "L1 total reactive energy", "group": "Energy", "area": "holding", "address": "0x602A", "type": "float32", "unit": "kvarh", "access": "R"}, {"name": "L2 total reactive energy", "group": "Energy", "area": "holding", "address": "0x602C", "type": "float32", "unit": "kvarh", "access": "R"}, {"name": "L3 total reactive energy", "group": "Energy", "area": "holding", "address": "0x602E", "type": "float32", "unit": "kvarh", "access": "R"}, {"name": "Forward reactive energy", "group": "Energy", "area": "holding", "address": "0x6030", "type": "float32", "unit": "kvarh", "access": "R"}, {"name": "T1 forward reactive energy", "group": "Energy", "area": "holding", "address": "0x6032", "type": "float32", "unit": "kvarh", "access": "R"}, {"name": "T2 forward reactive energy", "group": "Energy", "area": "holding", "address": "0x6034", "type": "float32", "unit": "kvarh", "access": "R"}, {"name": "L1 forward reactive energy", "group": "Energy", "area": "holding", "address": "0x6036", "type": "float32", "unit": "kvarh", "access": "R"}, {"name": "L2 forward reactive energy", "group": "Energy", "area": "holding", "address": "0x6038", "type": "float32", "unit": "kvarh", "access": "R"}, {"name": "L3 forward reactive energy", "group": "Energy", "area": "holding", "address": "0x603A", "type": "float32", "unit": "kvarh", "access": "R"}, {"name": "Reverse reactive energy", "group": "Energy", "area": "holding", "address": "0x603C", "type": "float32", "unit": "kvarh", "access": "R"}, {"name": "T1 reverse reactive energy", "group": "Energy", "area": "holding", "address": "0x603E", "type": "float32", "unit": "kvarh", "access": "R"}, {"name": "T2 reverse reactive energy", "group": "Energy", "area": "holding", "address": "0x6040", "type": "float32", "unit": "kvarh", "access": "R"}, {"name": "L1 reverse reactive energy", "group": "Energy", "area": "holding", "address": "0x6042", "type": "float32", "unit": "kvarh", "access": "R"}, {"name": "L2 reverse reactive energy", "group": "Energy", "area": "holding", "address": "0x6044", "type": "float32", "unit": "kvarh", "access": "R"}, {"name": "L3 reverse reactive energy", "group": "Energy", "area": "holding", "address": "0x6046", "type": "float32", "unit": "kvarh", "access": "R"}, {"name": "Tariff", "group": "Energy", "area": "holding", "address": "0x6048", "type": "int16", "access": "RW", "enum": {"1": "T1", "2": "T2", "11": "T1, not saved", "12": "T2, not saved"}}, {"name": "Resettable day counter", "group": "Energy", "area": "holding", "address": "0x6049", "type": "float32", "unit": "kWh", "access": "RW", "description": "Write 0 (two registers, FC10) to reset"} ] }