{ "$schema": "https://raw.githubusercontent.com/nobrega8/mbmap-library/main/schema/mbmap-2.schema.json", "mbmap": 2, "vendor": "Schneider Electric", "model": "Acti9 iEM3000 (iEM3150 / iEM3155 / iEM3250 / iEM3255 / iEM3350 / iEM3355)", "models": ["iEM3150", "iEM3155", "iEM3250", "iEM3255", "iEM3350", "iEM3355"], "vendor_website": "se.com", "description": "DIN rail three-phase energy meters with Modbus RS-485: iEM3150/3155 (63 A direct), iEM3250/3255 (CT), iEM3350/3355 (125 A direct)", "revision": 2, "source": "Schneider Electric, \"iEM3100 / iEM3200 / iEM3300 series User Manual\", DOCA0005EN-16; https://www.productinfo.schneider-electric.com/iem3100_iem3200_iem3300/", "notes": [ "Schneider Electric Acti9 iEM3000 energy meters with Modbus RS-485 (iEM3150/3155, iEM3250/3255, iEM3350/3355).", "Addresses are the manual's register numbers (address on the wire = register - 1).", "The meter only supports FC03 (read) and FC16 (write). Settings marked WC in the manual are changed through the command interface (registers 5250+), so they are listed here as read-only.", "Rows marked \"not on iEM3x50\" only exist on the iEM3155 / iEM3255 / iEM3355.", "Tested on an iEM3250 and an iEM3155, both hardware revision 1.0.0 and firmware 14002, read over a Modbus TCP gateway, November 2026: all 81 registers read without errors on each. Checked: identification (name, model, manufacturer, serial number), setup, communication, currents, voltages, frequency, power, power factor, the 64-bit energy counters and their float copies (iEM3155: 127432214 Wh = 127432.21875 kWh), and the phase energies. On the iEM3155, L1 + L2 + L3 active power (2.5512 kW) equals the total, and active / apparent power (2.5512 / 4.0854) gives the power factor 0.6245 that the meter reports.", "On the iEM3250 the rows marked \"not on iEM3x50\" read NaN (floats) or 0xFFC00000; on the iEM3155 they read values (reactive and apparent power, energy export, the reactive phase energies, the four rates, which were 0 because multi-tariff is disabled). Both meters answer FC17 with illegal function.", "Not verified: the meaning of diagnostic codes 204 and 205 (code 205 was active on both meters, and 204 also on the iEM3250), and Digital input status (8906), which read 0x00008000 on the iEM3155 and 0xFFC00000 on the iEM3250: the 32-bit value does not fit the description of bit 1 given for it, and the state of the input was not known." ], "protocol": "rtu", "unit_id": 1, "baudrate": 19200, "parity": "E", "databits": 8, "stopbits": 1, "byte_order": "big", "word_order": "big", "address_base": 1, "enums": { "power_system": {"0": "1PH2W L-N", "1": "1PH2W L-L", "2": "1PH3W L-L with N", "3": "3PH3W", "11": "3PH4W", "13": "1PH4W multi L with N"}, "baud": {"0": "9600", "1": "19200", "2": "38400"}, "parity": {"0": "Even", "1": "Odd", "2": "None"} }, "x_status": "verified", "registers": [ {"name": "Meter name", "group": "Info", "area": "holding", "address": 30, "type": "string", "length": 20, "access": "R"}, {"name": "Meter model", "group": "Info", "area": "holding", "address": 50, "type": "string", "length": 20, "access": "R", "role": "model"}, {"name": "Manufacturer", "group": "Info", "area": "holding", "address": 70, "type": "string", "length": 20, "access": "R"}, {"name": "Serial number", "group": "Info", "area": "holding", "address": 130, "type": "uint32", "access": "R", "role": "serial"}, {"name": "Hardware revision", "group": "Info", "area": "holding", "address": 136, "type": "string", "length": 5, "access": "R"}, {"name": "Firmware version", "group": "Info", "area": "holding", "address": 1637, "type": "uint16", "access": "R", "description": "DLF format X.Y.ZTT"}, {"name": "Diagnostic code 101", "group": "Diagnostics", "area": "holding", "address": 45000, "type": "bool", "bit": 0, "access": "R"}, {"name": "Diagnostic code 102", "group": "Diagnostics", "area": "holding", "address": 45000, "type": "bool", "bit": 1, "access": "R"}, {"name": "Diagnostic code 201", "group": "Diagnostics", "area": "holding", "address": 45000, "type": "bool", "bit": 2, "access": "R"}, {"name": "Diagnostic code 202", "group": "Diagnostics", "area": "holding", "address": 45000, "type": "bool", "bit": 3, "access": "R"}, {"name": "Diagnostic code 203", "group": "Diagnostics", "area": "holding", "address": 45000, "type": "bool", "bit": 4, "access": "R"}, {"name": "Diagnostic code 204", "group": "Diagnostics", "area": "holding", "address": 45000, "type": "bool", "bit": 5, "access": "R"}, {"name": "Diagnostic code 205", "group": "Diagnostics", "area": "holding", "address": 45000, "type": "bool", "bit": 6, "access": "R"}, {"name": "Diagnostic code 206", "group": "Diagnostics", "area": "holding", "address": 45000, "type": "bool", "bit": 7, "access": "R"}, {"name": "Diagnostic code 207", "group": "Diagnostics", "area": "holding", "address": 45000, "type": "bool", "bit": 8, "access": "R"}, {"name": "Number of phases", "group": "Setup", "area": "holding", "address": 2014, "type": "uint16", "access": "R"}, {"name": "Number of wires", "group": "Setup", "area": "holding", "address": 2015, "type": "uint16", "access": "R"}, {"name": "Power system", "group": "Setup", "area": "holding", "address": 2016, "type": "uint16", "access": "R", "enum": "power_system", "description": "Set with the command interface"}, {"name": "Nominal frequency", "group": "Setup", "area": "holding", "address": 2017, "type": "uint16", "unit": "Hz", "access": "R", "description": "Set with the command interface"}, {"name": "CT primary", "group": "Setup", "area": "holding", "address": 2030, "type": "uint16", "unit": "A", "access": "R", "description": "iEM3250/3255 only"}, {"name": "CT secondary", "group": "Setup", "area": "holding", "address": 2031, "type": "uint16", "unit": "A", "access": "R", "description": "iEM3250/3255 only"}, {"name": "Modbus address", "group": "Communication", "area": "holding", "address": 6501, "type": "uint16", "access": "R", "description": "Set with the command interface"}, {"name": "Baud rate", "group": "Communication", "area": "holding", "address": 6502, "type": "uint16", "access": "R", "enum": "baud", "description": "Set with the command interface"}, {"name": "Parity", "group": "Communication", "area": "holding", "address": 6503, "type": "uint16", "access": "R", "enum": "parity", "description": "One stop bit"}, {"name": "I1 current", "group": "Current", "area": "holding", "address": 3000, "type": "float32", "unit": "A", "access": "R"}, {"name": "I2 current", "group": "Current", "area": "holding", "address": 3002, "type": "float32", "unit": "A", "access": "R"}, {"name": "I3 current", "group": "Current", "area": "holding", "address": 3004, "type": "float32", "unit": "A", "access": "R"}, {"name": "Average current", "group": "Current", "area": "holding", "address": 3010, "type": "float32", "unit": "A", "access": "R"}, {"name": "Voltage L1-L2", "group": "Voltage", "area": "holding", "address": 3020, "type": "float32", "unit": "V", "access": "R"}, {"name": "Voltage L2-L3", "group": "Voltage", "area": "holding", "address": 3022, "type": "float32", "unit": "V", "access": "R"}, {"name": "Voltage L3-L1", "group": "Voltage", "area": "holding", "address": 3024, "type": "float32", "unit": "V", "access": "R"}, {"name": "Average voltage L-L", "group": "Voltage", "area": "holding", "address": 3026, "type": "float32", "unit": "V", "access": "R"}, {"name": "Voltage L1-N", "group": "Voltage", "area": "holding", "address": 3028, "type": "float32", "unit": "V", "access": "R"}, {"name": "Voltage L2-N", "group": "Voltage", "area": "holding", "address": 3030, "type": "float32", "unit": "V", "access": "R"}, {"name": "Voltage L3-N", "group": "Voltage", "area": "holding", "address": 3032, "type": "float32", "unit": "V", "access": "R"}, {"name": "Average voltage L-N", "group": "Voltage", "area": "holding", "address": 3036, "type": "float32", "unit": "V", "access": "R"}, {"name": "Active power phase 1", "group": "Power", "area": "holding", "address": 3054, "type": "float32", "unit": "kW", "access": "R"}, {"name": "Active power phase 2", "group": "Power", "area": "holding", "address": 3056, "type": "float32", "unit": "kW", "access": "R"}, {"name": "Active power phase 3", "group": "Power", "area": "holding", "address": 3058, "type": "float32", "unit": "kW", "access": "R"}, {"name": "Total active power", "group": "Power", "area": "holding", "address": 3060, "type": "float32", "unit": "kW", "access": "R"}, {"name": "Total reactive power", "group": "Power", "area": "holding", "address": 3068, "type": "float32", "unit": "kvar", "access": "R", "description": "Not on iEM3x50"}, {"name": "Total apparent power", "group": "Power", "area": "holding", "address": 3076, "type": "float32", "unit": "kVA", "access": "R", "description": "Not on iEM3x50"}, {"name": "Total power factor", "group": "Power", "area": "holding", "address": 3084, "type": "float32", "access": "R", "description": "Four-quadrant encoding: 0..1 Q1, 1..2 Q4, -1..0 Q2, -2..-1 Q3"}, {"name": "Total power factor (IEC)", "group": "Power", "area": "holding", "address": 3192, "type": "float32", "access": "R", "description": "Plain -1..+1 value; recent firmware of iEM3x55 only"}, {"name": "Total power factor (lead/lag)", "group": "Power", "area": "holding", "address": 3194, "type": "float32", "access": "R", "description": "Recent firmware of iEM3x55 only"}, {"name": "Frequency", "group": "Power", "area": "holding", "address": 3110, "type": "float32", "unit": "Hz", "access": "R"}, {"name": "Active tariff", "group": "Energy", "area": "holding", "address": 4191, "type": "uint16", "access": "R", "enum": {"0": "Multi tariff disabled", "1": "Rate A", "2": "Rate B", "3": "Rate C", "4": "Rate D"}, "description": "Not on iEM3x50"}, {"name": "Total active energy import", "group": "Energy", "area": "holding", "address": 3204, "type": "int64", "unit": "Wh", "access": "R", "description": "Cannot be reset"}, {"name": "Total active energy export", "group": "Energy", "area": "holding", "address": 3208, "type": "int64", "unit": "Wh", "access": "R", "description": "Not on iEM3x50"}, {"name": "Total reactive energy import", "group": "Energy", "area": "holding", "address": 3220, "type": "int64", "unit": "varh", "access": "R", "description": "Not on iEM3x50"}, {"name": "Total reactive energy export", "group": "Energy", "area": "holding", "address": 3224, "type": "int64", "unit": "varh", "access": "R", "description": "Not on iEM3x50"}, {"name": "Partial active energy import", "group": "Energy", "area": "holding", "address": 3256, "type": "int64", "unit": "Wh", "access": "R"}, {"name": "Partial reactive energy import", "group": "Energy", "area": "holding", "address": 3272, "type": "int64", "unit": "varh", "access": "R", "description": "Not on iEM3x50"}, {"name": "Active energy import phase 1", "group": "Energy", "area": "holding", "address": 3518, "type": "int64", "unit": "Wh", "access": "R"}, {"name": "Active energy import phase 2", "group": "Energy", "area": "holding", "address": 3522, "type": "int64", "unit": "Wh", "access": "R"}, {"name": "Active energy import phase 3", "group": "Energy", "area": "holding", "address": 3526, "type": "int64", "unit": "Wh", "access": "R"}, {"name": "Input metering accumulation", "group": "Energy", "area": "holding", "address": 3558, "type": "int64", "access": "R", "description": "Not on iEM3x50"}, {"name": "Rate A active energy import", "group": "Tariffs", "area": "holding", "address": 4196, "type": "int64", "unit": "Wh", "access": "R", "description": "Not on iEM3x50"}, {"name": "Rate B active energy import", "group": "Tariffs", "area": "holding", "address": 4200, "type": "int64", "unit": "Wh", "access": "R", "description": "Not on iEM3x50"}, {"name": "Rate C active energy import", "group": "Tariffs", "area": "holding", "address": 4204, "type": "int64", "unit": "Wh", "access": "R", "description": "Not on iEM3x50"}, {"name": "Rate D active energy import", "group": "Tariffs", "area": "holding", "address": 4208, "type": "int64", "unit": "Wh", "access": "R", "description": "Not on iEM3x50"}, {"name": "Total active energy import (float)", "group": "Energy float", "area": "holding", "address": 45100, "type": "float32", "unit": "kWh", "access": "R", "description": "Same counter as 3204"}, {"name": "Total active energy export (float)", "group": "Energy float", "area": "holding", "address": 45102, "type": "float32", "unit": "kWh", "access": "R", "description": "Not on iEM3x50"}, {"name": "Total reactive energy import (float)", "group": "Energy float", "area": "holding", "address": 45104, "type": "float32", "unit": "kvarh", "access": "R", "description": "Not on iEM3x50"}, {"name": "Total reactive energy export (float)", "group": "Energy float", "area": "holding", "address": 45106, "type": "float32", "unit": "kvarh", "access": "R", "description": "Not on iEM3x50"}, {"name": "Partial active energy import (float)", "group": "Energy float", "area": "holding", "address": 45108, "type": "float32", "unit": "kWh", "access": "R"}, {"name": "Partial reactive energy import (float)", "group": "Energy float", "area": "holding", "address": 45110, "type": "float32", "unit": "kvarh", "access": "R", "description": "Not on iEM3x50"}, {"name": "Active energy import phase 1 (float)", "group": "Energy float", "area": "holding", "address": 45112, "type": "float32", "unit": "kWh", "access": "R"}, {"name": "Active energy import phase 2 (float)", "group": "Energy float", "area": "holding", "address": 45114, "type": "float32", "unit": "kWh", "access": "R"}, {"name": "Active energy import phase 3 (float)", "group": "Energy float", "area": "holding", "address": 45116, "type": "float32", "unit": "kWh", "access": "R"}, {"name": "Input metering accumulation (float)", "group": "Energy float", "area": "holding", "address": 45118, "type": "float32", "access": "R", "description": "Not on iEM3x50"}, {"name": "Rate A active energy import (float)", "group": "Energy float", "area": "holding", "address": 45120, "type": "float32", "unit": "kWh", "access": "R", "description": "Not on iEM3x50"}, {"name": "Rate B active energy import (float)", "group": "Energy float", "area": "holding", "address": 45122, "type": "float32", "unit": "kWh", "access": "R", "description": "Not on iEM3x50"}, {"name": "Rate C active energy import (float)", "group": "Energy float", "area": "holding", "address": 45124, "type": "float32", "unit": "kWh", "access": "R", "description": "Not on iEM3x50"}, {"name": "Rate D active energy import (float)", "group": "Energy float", "area": "holding", "address": 45126, "type": "float32", "unit": "kWh", "access": "R", "description": "Not on iEM3x50"}, {"name": "Reactive energy import phase 1 (float)", "group": "Energy float", "area": "holding", "address": 45128, "type": "float32", "unit": "kvarh", "access": "R", "description": "iEM3x55 with 1PH4W multi L-N firmware"}, {"name": "Reactive energy import phase 2 (float)", "group": "Energy float", "area": "holding", "address": 45130, "type": "float32", "unit": "kvarh", "access": "R", "description": "iEM3x55 with 1PH4W multi L-N firmware"}, {"name": "Reactive energy import phase 3 (float)", "group": "Energy float", "area": "holding", "address": 45132, "type": "float32", "unit": "kvarh", "access": "R", "description": "iEM3x55 with 1PH4W multi L-N firmware"}, {"name": "Digital input status", "group": "I/O", "area": "holding", "address": 8906, "type": "uint32", "access": "R", "description": "Bit 1: 0 = open, 1 = closed. iEM3x55 only"}, {"name": "Overload alarm active", "group": "Alarms", "area": "holding", "address": 45005, "type": "uint16", "access": "R", "enum": {"0": "Inactive", "256": "Active"}, "description": "iEM3x55 only"}, {"name": "Last overload alarm value", "group": "Alarms", "area": "holding", "address": 45011, "type": "float32", "unit": "kW", "access": "R", "description": "iEM3x55 only"} ] }