{
  "spec_version": 1,
  "slug": "schneider-iem2050",
  "manufacturer": "Schneider Electric",
  "model": "iEM2000 series single-phase meter (iEM2050 / iEM2055)",
  "category": "Energy meter",
  "supplier_url": "https://www.se.com/sg/en/download/document/PHA6516400/",
  "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": 19200,
      "data_bits": 8,
      "stop_bits": 1
    }
  },
  "coils": [],
  "discrete_inputs": [],
  "input_registers": [],
  "holding_registers": [
    {
      "address": 30,
      "count": 20,
      "name": "Meter name",
      "data_type": "Ascii",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 50,
      "count": 20,
      "name": "Meter model",
      "data_type": "Ascii",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 70,
      "count": 20,
      "name": "Manufacturer",
      "data_type": "Ascii",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 90,
      "count": 1,
      "name": "Meter code",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 130,
      "count": 2,
      "name": "Serial number",
      "data_type": "UInt32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 136,
      "count": 5,
      "name": "Hardware revision in x.x.x format (for example, 1.0.0)",
      "data_type": "Ascii",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 1637,
      "count": 1,
      "name": "Present firmware version",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 1829,
      "count": 1,
      "name": "Power on off counter",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 2014,
      "count": 1,
      "name": "Number of phases (always 1)",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 2015,
      "count": 1,
      "name": "Number of wires (always 2)",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 2016,
      "count": 1,
      "name": "Power system (always 0 = 1PH2W L-N)",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 2017,
      "count": 1,
      "name": "Nominal frequency",
      "data_type": "UInt16",
      "units": "Hz",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 2020,
      "count": 2,
      "name": "Meter Amps",
      "data_type": "Float32",
      "units": "A",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 3000,
      "count": 2,
      "name": "Current",
      "data_type": "Float32",
      "units": "A",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 3028,
      "count": 2,
      "name": "Voltage",
      "data_type": "Float32",
      "units": "V",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 3054,
      "count": 2,
      "name": "Active power",
      "data_type": "Float32",
      "units": "kW",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 3068,
      "count": 2,
      "name": "Reactive power",
      "data_type": "Float32",
      "units": "kVAr",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 3076,
      "count": 2,
      "name": "Apparent power",
      "data_type": "Float32",
      "units": "kVA",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 3084,
      "count": 2,
      "name": "Total power factor:",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 3110,
      "count": 2,
      "name": "Frequency",
      "data_type": "Float32",
      "units": "Hz",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 4191,
      "count": 1,
      "name": "Tariff (01 - T1, 02 - T2)",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 5250,
      "count": 1,
      "name": "Requested command",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "W"
    },
    {
      "address": 5251,
      "count": 1,
      "name": "Reserved for future use",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "W"
    },
    {
      "address": 5375,
      "count": 1,
      "name": "Command status",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 5376,
      "count": 1,
      "name": "Command result codes:",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 6100,
      "count": 1,
      "name": "LCD cycle time",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 6501,
      "count": 1,
      "name": "RS-485 communication port address",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 6502,
      "count": 1,
      "name": "RS-485 communication baud rate:",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 6503,
      "count": 1,
      "name": "RS-485 communication parity:",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 6504,
      "count": 2,
      "name": "S0 output rate",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 6506,
      "count": 1,
      "name": "Combined Code",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW"
    },
    {
      "address": 45100,
      "count": 2,
      "name": "Forward active energy",
      "data_type": "Float32",
      "units": "Wh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 45102,
      "count": 2,
      "name": "Reverse active energy",
      "data_type": "Float32",
      "units": "Wh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 45104,
      "count": 2,
      "name": "Forward reactive energy",
      "data_type": "Float32",
      "units": "VARh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 45106,
      "count": 2,
      "name": "Reverse reactive energy",
      "data_type": "Float32",
      "units": "VARh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 45108,
      "count": 2,
      "name": "Forward partial active energy",
      "data_type": "Float32",
      "units": "Wh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 45112,
      "count": 2,
      "name": "Total active energy",
      "data_type": "Float32",
      "units": "Wh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 45114,
      "count": 2,
      "name": "Total reactive energy",
      "data_type": "Float32",
      "units": "VARh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 45120,
      "count": 2,
      "name": "T1 Forward active energy",
      "data_type": "Float32",
      "units": "Wh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 45122,
      "count": 2,
      "name": "T2 Forward active energy",
      "data_type": "Float32",
      "units": "Wh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 45124,
      "count": 2,
      "name": "T1 Reverse active energy",
      "data_type": "Float32",
      "units": "Wh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 45126,
      "count": 2,
      "name": "T2 Reverse active energy",
      "data_type": "Float32",
      "units": "Wh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 45128,
      "count": 2,
      "name": "T1 Total active energy",
      "data_type": "Float32",
      "units": "Wh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 45130,
      "count": 2,
      "name": "T2 Total active energy",
      "data_type": "Float32",
      "units": "Wh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 45132,
      "count": 2,
      "name": "T1 Forward reactive energy",
      "data_type": "Float32",
      "units": "VARh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 45134,
      "count": 2,
      "name": "T2 Forward reactive energy",
      "data_type": "Float32",
      "units": "VARh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 45136,
      "count": 2,
      "name": "T1 Reverse reactive energy",
      "data_type": "Float32",
      "units": "VARh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 45138,
      "count": 2,
      "name": "T2 Reverse reactive energy",
      "data_type": "Float32",
      "units": "VARh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 45140,
      "count": 2,
      "name": "T1 Total reactive energy",
      "data_type": "Float32",
      "units": "VARh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 45142,
      "count": 2,
      "name": "T2 Total reactive energy",
      "data_type": "Float32",
      "units": "VARh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    }
  ],
  "combined_registers": [],
  "notes": "Addresses are the hexadecimal 'Address' column of the iEM2000 series (iEM2050 / iEM2055) register list in Schneider's user manual PHA6516400 converted to decimal; that column is the address used in the Modbus frame, and the 'Register' column is address + 1 (0x0BB8 = address 3000 = register 3001). The meter is a single-phase RS-485 device: the factory serial settings are slave address 1, 19200 bps, even parity, 8 data bits, 1 stop bit, which are the settings the gateway must use. Measurements are IEEE 754 single precision in kW/kVAr/kVA; the energy counters exist twice, as 64-bit integers in Wh/VARh at 3205-3257 and 4197-4241 (not listed, because this format has no 64-bit integer type) and as Float32 values in Wh/VARh from 45101, which are listed here. The command interface at 5251-5377 and the display and communication settings are listed as far as they are documented in the same table; the tariff command (2008) and the diagnostics block (20004) are listed with their documented values."
}
