{
  "$schema": "https://raw.githubusercontent.com/nobrega8/mbmap-library/main/schema/mbmap-2.schema.json",
  "mbmap": 2,
  "vendor": "Rish",
  "model": "EM1300 / EM2300 / EM13XX / EM23XX",
  "models": ["RISH EM 1320", "RISH EM 1330", "RISH EM 1340", "RISH EM 2340"],
  "vendor_website": "rishabh.co.in",
  "description": "Rishabh RISH EM 13xx / 23xx energy meters with RS-485 (Modbus RTU)",
  "revision": 2,
  "revised": "2026-10-17",
  "source": "Rishabh Instruments, \"RISH EM 2340/1320/30/40 Interface Definition\", Rev B (2020-06)",
  "sources": [{"title": "RISH EM 2340/1320/30/40 Interface Definition", "version": "Rev B", "date": "2020-06", "url": "https://rishabh.co.in/uploads/product/rish-em-13203040-158/EM13XX__EM23XX__Interface_Definition_Rev_B.pdf", "note": "tables 1 and 2"}],
  "notes": [
    "Measured values are float32 input registers (FC04, two registers each, most significant byte first); at most 20 values per request.",
    "Energies are given here without a unit because the interface definition does not state it. The overflow counters count energy register rollovers.",
    "Registers marked for 3P4W, 3P3W or 1P2W read 0 on the other wiring systems (manual table 1).",
    "Models 1320/30/40 count import and export energy; the 2340 counts utility and generator energy. Values marked only 2340 are on the EM 2340 only; the THD registers are not on the 1320 and 1330.",
    "Not in this map: the 'old' (previous period) values, the values updated at the user update rate, the 4X copies and the setup registers."
  ],
  "protocol": "rtu",
  "unit_id": 1,
  "databits": 8,
  "byte_order": "big",
  "word_order": "big",
  "address_base": 0,
  "max_read_registers": 40,
  "x_status": "official",
  "registers": [
    {"name": "Volts 1", "group": "Measurements", "area": "input", "address": "0x0000", "type": "float32", "unit": "V", "access": "R", "description": "L-N on 3P4W, L-L on 3P3W"},
    {"name": "Volts 2", "group": "Measurements", "area": "input", "address": "0x0002", "type": "float32", "unit": "V", "access": "R", "description": "Valid on 3P4W, 3P3W; reads 0 otherwise L-N on 3P4W, L-L on 3P3W"},
    {"name": "Volts 3", "group": "Measurements", "area": "input", "address": "0x0004", "type": "float32", "unit": "V", "access": "R", "description": "Valid on 3P4W, 3P3W; reads 0 otherwise L-N on 3P4W, L-L on 3P3W"},
    {"name": "Current 1", "group": "Measurements", "area": "input", "address": "0x0006", "type": "float32", "unit": "A", "access": "R"},
    {"name": "Current 2", "group": "Measurements", "area": "input", "address": "0x0008", "type": "float32", "unit": "A", "access": "R", "description": "Valid on 3P4W, 3P3W; reads 0 otherwise"},
    {"name": "Current 3", "group": "Measurements", "area": "input", "address": "0x000A", "type": "float32", "unit": "A", "access": "R", "description": "Valid on 3P4W, 3P3W; reads 0 otherwise"},
    {"name": "W1", "group": "Measurements", "area": "input", "address": "0x000C", "type": "float32", "unit": "W", "access": "R", "description": "Valid on 3P4W, 1P2W; reads 0 otherwise"},
    {"name": "W2", "group": "Measurements", "area": "input", "address": "0x000E", "type": "float32", "unit": "W", "access": "R", "description": "Valid on 3P4W; reads 0 otherwise"},
    {"name": "W3", "group": "Measurements", "area": "input", "address": "0x0010", "type": "float32", "unit": "W", "access": "R", "description": "Valid on 3P4W; reads 0 otherwise"},
    {"name": "VA 1", "group": "Measurements", "area": "input", "address": "0x0012", "type": "float32", "unit": "VA", "access": "R", "description": "Valid on 3P4W, 1P2W; reads 0 otherwise"},
    {"name": "VA 2", "group": "Measurements", "area": "input", "address": "0x0014", "type": "float32", "unit": "VA", "access": "R", "description": "Valid on 3P4W; reads 0 otherwise"},
    {"name": "VA 3", "group": "Measurements", "area": "input", "address": "0x0016", "type": "float32", "unit": "VA", "access": "R", "description": "Valid on 3P4W; reads 0 otherwise"},
    {"name": "VAR 1", "group": "Measurements", "area": "input", "address": "0x0018", "type": "float32", "unit": "var", "access": "R", "description": "Valid on 3P4W, 1P2W; reads 0 otherwise"},
    {"name": "VAR 2", "group": "Measurements", "area": "input", "address": "0x001A", "type": "float32", "unit": "var", "access": "R", "description": "Valid on 3P4W; reads 0 otherwise"},
    {"name": "VAR 3", "group": "Measurements", "area": "input", "address": "0x001C", "type": "float32", "unit": "var", "access": "R", "description": "Valid on 3P4W; reads 0 otherwise"},
    {"name": "PF 1", "group": "Measurements", "area": "input", "address": "0x001E", "type": "float32", "access": "R", "description": "Valid on 3P4W, 1P2W; reads 0 otherwise"},
    {"name": "PF 2", "group": "Measurements", "area": "input", "address": "0x0020", "type": "float32", "access": "R", "description": "Valid on 3P4W; reads 0 otherwise"},
    {"name": "PF 3", "group": "Measurements", "area": "input", "address": "0x0022", "type": "float32", "access": "R", "description": "Valid on 3P4W; reads 0 otherwise"},
    {"name": "Phase Angle 1", "group": "Measurements", "area": "input", "address": "0x0024", "type": "float32", "unit": "°", "access": "R", "description": "Valid on 3P4W, 1P2W; reads 0 otherwise"},
    {"name": "Phase Angle 2", "group": "Measurements", "area": "input", "address": "0x0026", "type": "float32", "unit": "°", "access": "R", "description": "Valid on 3P4W; reads 0 otherwise"},
    {"name": "Phase Angle 3", "group": "Measurements", "area": "input", "address": "0x0028", "type": "float32", "unit": "°", "access": "R", "description": "Valid on 3P4W; reads 0 otherwise"},
    {"name": "Volts Avg", "group": "Measurements", "area": "input", "address": "0x002A", "type": "float32", "unit": "V", "access": "R", "description": "L-N on 3P4W, L-L on 3P3W"},
    {"name": "Volts Sum", "group": "Measurements", "area": "input", "address": "0x002C", "type": "float32", "unit": "V", "access": "R", "description": "L-N on 3P4W, L-L on 3P3W"},
    {"name": "Current Avg", "group": "Measurements", "area": "input", "address": "0x002E", "type": "float32", "unit": "A", "access": "R"},
    {"name": "Current Sum", "group": "Measurements", "area": "input", "address": "0x0030", "type": "float32", "unit": "A", "access": "R"},
    {"name": "Watt Avg", "group": "Measurements", "area": "input", "address": "0x0032", "type": "float32", "unit": "W", "access": "R", "description": "Valid on 3P4W, 3P3W; reads 0 otherwise"},
    {"name": "Watt Sum", "group": "Measurements", "area": "input", "address": "0x0034", "type": "float32", "unit": "W", "access": "R"},
    {"name": "VA Avg", "group": "Measurements", "area": "input", "address": "0x0036", "type": "float32", "unit": "VA", "access": "R", "description": "Valid on 3P4W, 3P3W; reads 0 otherwise"},
    {"name": "VA Sum", "group": "Measurements", "area": "input", "address": "0x0038", "type": "float32", "unit": "VA", "access": "R"},
    {"name": "VAR Avg", "group": "Measurements", "area": "input", "address": "0x003A", "type": "float32", "unit": "var", "access": "R", "description": "Valid on 3P4W, 3P3W; reads 0 otherwise"},
    {"name": "VAR Sum", "group": "Measurements", "area": "input", "address": "0x003C", "type": "float32", "unit": "var", "access": "R"},
    {"name": "PF Avg", "group": "Measurements", "area": "input", "address": "0x003E", "type": "float32", "access": "R"},
    {"name": "PF Sum", "group": "Measurements", "area": "input", "address": "0x0040", "type": "float32", "access": "R", "description": "Valid on 3P4W; reads 0 otherwise"},
    {"name": "Phase Angle Avg", "group": "Measurements", "area": "input", "address": "0x0042", "type": "float32", "unit": "°", "access": "R"},
    {"name": "Phase Angle Sum", "group": "Measurements", "area": "input", "address": "0x0044", "type": "float32", "unit": "°", "access": "R", "description": "Valid on 3P4W; reads 0 otherwise"},
    {"name": "Freq", "group": "Measurements", "area": "input", "address": "0x0046", "type": "float32", "unit": "Hz", "access": "R"},
    {"name": "Wh Import / Utility", "group": "Energy", "area": "input", "address": "0x0048", "type": "float32", "access": "R"},
    {"name": "Wh Export / Gen", "group": "Energy", "area": "input", "address": "0x004A", "type": "float32", "access": "R"},
    {"name": "Capacitive / Utility VARh", "group": "Energy", "area": "input", "address": "0x004C", "type": "float32", "access": "R"},
    {"name": "Inductive / Gen VARh", "group": "Energy", "area": "input", "address": "0x004E", "type": "float32", "access": "R"},
    {"name": "VAh / Vah Utility", "group": "Energy", "area": "input", "address": "0x0050", "type": "float32", "access": "R"},
    {"name": "VAh Gen", "group": "Energy", "area": "input", "address": "0x0052", "type": "float32", "access": "R", "description": "EM 2340 only"},
    {"name": "W Demand (Import / Utility / Gen)", "group": "Demand", "area": "input", "address": "0x0054", "type": "float32", "unit": "W", "access": "R"},
    {"name": "W Max Demand (Import / Utility)", "group": "Demand", "area": "input", "address": "0x0056", "type": "float32", "unit": "W", "access": "R"},
    {"name": "W Demand (Export)", "group": "Demand", "area": "input", "address": "0x0058", "type": "float32", "unit": "W", "access": "R"},
    {"name": "W Max Demand (Export / Gen)", "group": "Demand", "area": "input", "address": "0x005A", "type": "float32", "unit": "W", "access": "R"},
    {"name": "VA Demand (Utility / Gen)", "group": "Demand", "area": "input", "address": "0x0064", "type": "float32", "unit": "VA", "access": "R"},
    {"name": "VA Max Demand (Utility)", "group": "Demand", "area": "input", "address": "0x0066", "type": "float32", "unit": "VA", "access": "R"},
    {"name": "A Demand (Utility / Gen)", "group": "Demand", "area": "input", "address": "0x0068", "type": "float32", "unit": "A", "access": "R"},
    {"name": "A Max Demand (Utility)", "group": "Demand", "area": "input", "address": "0x006A", "type": "float32", "unit": "A", "access": "R"},
    {"name": "Wh Import / Utility overflow count", "group": "Energy", "area": "input", "address": "0x006C", "type": "float32", "access": "R"},
    {"name": "Wh Export / Gen overflow count", "group": "Energy", "area": "input", "address": "0x0070", "type": "float32", "access": "R"},
    {"name": "Capacitive / Utility VARh overflow count", "group": "Energy", "area": "input", "address": "0x0074", "type": "float32", "access": "R"},
    {"name": "Inductive / Gen VARh overflow count", "group": "Energy", "area": "input", "address": "0x0078", "type": "float32", "access": "R"},
    {"name": "Vah / VAh Utility overflow count", "group": "Energy", "area": "input", "address": "0x007C", "type": "float32", "access": "R"},
    {"name": "VAh Gen overflow count", "group": "Energy", "area": "input", "address": "0x0080", "type": "float32", "access": "R", "description": "EM 2340 only"},
    {"name": "System Max Voltage", "group": "Measurements", "area": "input", "address": "0x0084", "type": "float32", "unit": "V", "access": "R"},
    {"name": "System Min Voltage", "group": "Measurements", "area": "input", "address": "0x0086", "type": "float32", "unit": "V", "access": "R"},
    {"name": "RPM", "group": "Measurements", "area": "input", "address": "0x0088", "type": "float32", "unit": "rpm", "access": "R"},
    {"name": "System Max Current", "group": "Measurements", "area": "input", "address": "0x008C", "type": "float32", "unit": "A", "access": "R"},
    {"name": "System Min Current", "group": "Measurements", "area": "input", "address": "0x008E", "type": "float32", "unit": "A", "access": "R"},
    {"name": "VA Max Demand (Gen)", "group": "Demand", "area": "input", "address": "0x00C0", "type": "float32", "unit": "VA", "access": "R"},
    {"name": "A Max Demand (Gen)", "group": "Demand", "area": "input", "address": "0x00C2", "type": "float32", "unit": "A", "access": "R"},
    {"name": "VL 1 - 2 (Calculated)", "group": "Measurements", "area": "input", "address": "0x00C8", "type": "float32", "unit": "V", "access": "R", "description": "Valid on 3P4W; reads 0 otherwise"},
    {"name": "VL 2 - 3 (Calculated)", "group": "Measurements", "area": "input", "address": "0x00CA", "type": "float32", "unit": "V", "access": "R", "description": "Valid on 3P4W; reads 0 otherwise"},
    {"name": "VL 3- 1 (Calculated)", "group": "Measurements", "area": "input", "address": "0x00CC", "type": "float32", "unit": "V", "access": "R", "description": "Valid on 3P4W; reads 0 otherwise"},
    {"name": "V1 THD (%)", "group": "Measurements", "area": "input", "address": "0x00CE", "type": "float32", "unit": "%", "access": "R"},
    {"name": "V2 THD (%)", "group": "Measurements", "area": "input", "address": "0x00D0", "type": "float32", "unit": "%", "access": "R", "description": "Valid on 3P4W, 3P3W; reads 0 otherwise"},
    {"name": "V3 THD (%)", "group": "Measurements", "area": "input", "address": "0x00D2", "type": "float32", "unit": "%", "access": "R", "description": "Valid on 3P4W, 3P3W; reads 0 otherwise"},
    {"name": "I1 THD (%)", "group": "Measurements", "area": "input", "address": "0x00D4", "type": "float32", "unit": "%", "access": "R"},
    {"name": "I2 THD (%)", "group": "Measurements", "area": "input", "address": "0x00D6", "type": "float32", "unit": "%", "access": "R", "description": "Valid on 3P4W, 3P3W; reads 0 otherwise"},
    {"name": "I3 THD (%)", "group": "Measurements", "area": "input", "address": "0x00D8", "type": "float32", "unit": "%", "access": "R", "description": "Valid on 3P4W, 3P3W; reads 0 otherwise"},
    {"name": "System Voltage THD (%)", "group": "Measurements", "area": "input", "address": "0x00DA", "type": "float32", "unit": "%", "access": "R"},
    {"name": "System Current THD (%)", "group": "Measurements", "area": "input", "address": "0x00DC", "type": "float32", "unit": "%", "access": "R"},
    {"name": "I Neutral", "group": "Measurements", "area": "input", "address": "0x00E0", "type": "float32", "unit": "A", "access": "R", "description": "Valid on 3P4W; reads 0 otherwise"},
    {"name": "Run Hour Utility", "group": "Counters", "area": "input", "address": "0x00E2", "type": "float32", "unit": "h", "access": "R"},
    {"name": "On Hour Utility", "group": "Counters", "area": "input", "address": "0x00E4", "type": "float32", "unit": "h", "access": "R"},
    {"name": "No. of Interruptions Utility", "group": "Counters", "area": "input", "address": "0x00E6", "type": "float32", "access": "R"},
    {"name": "Run Hour Gen", "group": "Counters", "area": "input", "address": "0x00EC", "type": "float32", "unit": "h", "access": "R", "description": "EM 2340 only"},
    {"name": "On Hour Gen", "group": "Counters", "area": "input", "address": "0x00EE", "type": "float32", "unit": "h", "access": "R", "description": "EM 2340 only"},
    {"name": "No. of Interruptions Gen", "group": "Counters", "area": "input", "address": "0x00F0", "type": "float32", "access": "R", "description": "EM 2340 only"},
    {"name": "Total Run Hour", "group": "Counters", "area": "input", "address": "0x00F2", "type": "float32", "unit": "h", "access": "R", "description": "EM 2340 only"},
    {"name": "Total On Hour", "group": "Counters", "area": "input", "address": "0x00F4", "type": "float32", "unit": "h", "access": "R", "description": "EM 2340 only"},
    {"name": "Relay Output 1 Status", "group": "Measurements", "area": "input", "address": "0x010A", "type": "float32", "access": "R", "enum": {"0": "De-energized", "1": "Energized"}},
    {"name": "Relay Output 2 Status", "group": "Measurements", "area": "input", "address": "0x010C", "type": "float32", "access": "R", "enum": {"0": "De-energized", "1": "Energized"}},
    {"name": "Active Energy Import / Utility", "group": "Energy", "area": "input", "address": "0x0300", "type": "uint32", "access": "R"},
    {"name": "Active Energy Export / GEN", "group": "Energy", "area": "input", "address": "0x0302", "type": "uint32", "access": "R"},
    {"name": "Reactive Energy Import / Utility", "group": "Energy", "area": "input", "address": "0x0304", "type": "uint32", "access": "R"},
    {"name": "Reactive Energy Export / GEN", "group": "Energy", "area": "input", "address": "0x0306", "type": "uint32", "access": "R"},
    {"name": "Apparent Energy Utility", "group": "Energy", "area": "input", "address": "0x0308", "type": "uint32", "access": "R"},
    {"name": "Apparent Energy GEN", "group": "Energy", "area": "input", "address": "0x030A", "type": "uint32", "access": "R", "description": "EM 2340 only"},
    {"name": "Active Energy Import / Utility Overflow Count", "group": "Energy", "area": "input", "address": "0x030C", "type": "uint32", "access": "R"},
    {"name": "Active Energy Export / GEN Overflow Count", "group": "Energy", "area": "input", "address": "0x030E", "type": "uint32", "access": "R"},
    {"name": "Reactive Energy Import Overflow Count", "group": "Energy", "area": "input", "address": "0x0310", "type": "uint32", "access": "R"},
    {"name": "Reactive Energy Export / GEN Overflow Count", "group": "Energy", "area": "input", "address": "0x0312", "type": "uint32", "access": "R"},
    {"name": "Apparent Energy Utility Overflow Count", "group": "Energy", "area": "input", "address": "0x0314", "type": "uint32", "access": "R"},
    {"name": "Apparent Energy GEN Overflow Count", "group": "Energy", "area": "input", "address": "0x0316", "type": "uint32", "access": "R", "description": "EM 2340 only"}
  ]
}
