{ "$schema": "https://raw.githubusercontent.com/nobrega8/mbmap-library/main/schema/mbmap-2.schema.json", "mbmap": 2, "vendor": "Inepro Metering", "model": "PRO2-Mod", "models": ["PRO2-Mod"], "vendor_website": "ineprometering.com", "description": "Inepro PRO2 single-phase DIN rail energy meter with Modbus RTU over RS-485", "revision": 2, "revised": "2026-10-17", "source": "Inepro Metering, \"PRO2 Series user manual\", appendix A3 (Modbus register map)", "sources": [{"title": "PRO2 Series user manual", "url": "https://cdn.prod.website-files.com/6617f74190bf0a53bfd776e8/667ec2f1562208b2b57c5742_PRO2%20User%20manual.pdf", "note": "Appendix A3.2, Modbus register map; linked from the PRO2-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 or 1200; parity can be none or odd.", "Power is given in kW, kvar and kVA, energy in kWh and kvarh.", "The register map is shared with the PRO380; the registers it marks as PRO380 only (per-phase L2/L3 and CT values) 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": {"1200": "1200", "2400": "2400", "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": "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)"}}, {"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": "Current direction", "group": "Device", "area": "holding", "address": "0x4012", "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": "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": "Voltage", "group": "Measurements", "area": "holding", "address": "0x5000", "type": "float32", "unit": "V", "access": "R"}, {"name": "L1 voltage", "group": "Measurements", "area": "holding", "address": "0x5002", "type": "float32", "unit": "V", "access": "R"}, {"name": "Grid frequency", "group": "Measurements", "area": "holding", "address": "0x5008", "type": "float32", "unit": "Hz", "access": "R"}, {"name": "Current", "group": "Measurements", "area": "holding", "address": "0x500A", "type": "float32", "unit": "A", "access": "R"}, {"name": "L1 current", "group": "Measurements", "area": "holding", "address": "0x500C", "type": "float32", "unit": "A", "access": "R"}, {"name": "Total active power", "group": "Measurements", "area": "holding", "address": "0x5012", "type": "float32", "unit": "kW", "access": "R"}, {"name": "Total reactive power", "group": "Measurements", "area": "holding", "address": "0x501A", "type": "float32", "unit": "kvar", "access": "R"}, {"name": "Total apparent power", "group": "Measurements", "area": "holding", "address": "0x5022", "type": "float32", "unit": "kVA", "access": "R"}, {"name": "Power factor", "group": "Measurements", "area": "holding", "address": "0x502A", "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": "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": "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": "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": "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": "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": "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"} ] }