{
  "$schema": "https://raw.githubusercontent.com/nobrega8/mbmap-library/main/schema/mbmap-2.schema.json",
  "mbmap": 2,
  "vendor": "Rayleigh Instruments",
  "model": "RI-F400-C",
  "models": ["RI-F400-C"],
  "vendor_website": "rayleigh.com",
  "description": "Rayleigh RI-F400-C three-phase multifunction meter with RS-485 Modbus RTU",
  "revision": 1,
  "revised": "2026-10-17",
  "source": "Rayleigh Instruments, \"RI-F400-C Modbus Registers\", RI-F400-C-COMM V01",
  "sources": [{"title": "RI-F400-C Modbus Registers", "version": "V01", "url": "https://www.rayleigh.com/media/uploads/RI-F400-C-COMM-V01.pdf"}],
  "notes": [
    "Defaults: address 1, 9600 baud, 8 data bits, no parity, 1 stop bit. Baud rates 300 to 19200.",
    "Floats are sent low word first (the table's FLOAT REVERSE WORD); a setting in the setup registers can change this.",
    "The table numbers measurements 3xxxx and settings 4xxxx and gives the PDU address in hex; this map reads them as input and holding registers at those addresses. The table also says to add 1 to the address for function 3 holding-register access, so check the addressing on the device.",
    "The integer (HEX) copies of the measurements are not included: the table does not give their scaling.",
    "Settings that take a decimal range (pulse duration, pulse weight) are listed without a scale because the table does not give one."
  ],
  "protocol": "rtu",
  "unit_id": 1,
  "baudrate": 9600,
  "parity": "N",
  "databits": 8,
  "stopbits": 1,
  "byte_order": "big",
  "word_order": "little",
  "address_base": 0,
  "x_status": "official",
  "registers": [
    {"name": "Voltage V1-N", "group": "Measurements", "area": "input", "address": "0x0000", "type": "float32", "unit": "V", "access": "R"},
    {"name": "Voltage V2-N", "group": "Measurements", "area": "input", "address": "0x0002", "type": "float32", "unit": "V", "access": "R"},
    {"name": "Voltage V3-N", "group": "Measurements", "area": "input", "address": "0x0004", "type": "float32", "unit": "V", "access": "R"},
    {"name": "Average Voltage L-N", "group": "Measurements", "area": "input", "address": "0x0006", "type": "float32", "unit": "V", "access": "R"},
    {"name": "Voltage V1-2", "group": "Measurements", "area": "input", "address": "0x0008", "type": "float32", "unit": "V", "access": "R"},
    {"name": "Voltage V2-3", "group": "Measurements", "area": "input", "address": "0x000A", "type": "float32", "unit": "V", "access": "R"},
    {"name": "Voltage V3-1", "group": "Measurements", "area": "input", "address": "0x000C", "type": "float32", "unit": "V", "access": "R"},
    {"name": "Average Voltage L-L", "group": "Measurements", "area": "input", "address": "0x000E", "type": "float32", "unit": "V", "access": "R"},
    {"name": "Current I1", "group": "Measurements", "area": "input", "address": "0x0010", "type": "float32", "unit": "A", "access": "R"},
    {"name": "Current I2", "group": "Measurements", "area": "input", "address": "0x0012", "type": "float32", "unit": "A", "access": "R"},
    {"name": "Current I3", "group": "Measurements", "area": "input", "address": "0x0014", "type": "float32", "unit": "A", "access": "R"},
    {"name": "Average Current", "group": "Measurements", "area": "input", "address": "0x0016", "type": "float32", "unit": "A", "access": "R"},
    {"name": "Active power L1", "group": "Measurements", "area": "input", "address": "0x0018", "type": "float32", "unit": "kW", "access": "R"},
    {"name": "Active power L2", "group": "Measurements", "area": "input", "address": "0x001A", "type": "float32", "unit": "kW", "access": "R"},
    {"name": "Active power L3", "group": "Measurements", "area": "input", "address": "0x001C", "type": "float32", "unit": "kW", "access": "R"},
    {"name": "Apparent power L1", "group": "Measurements", "area": "input", "address": "0x001E", "type": "float32", "unit": "kVA", "access": "R"},
    {"name": "Apparent power L2", "group": "Measurements", "area": "input", "address": "0x0020", "type": "float32", "unit": "kVA", "access": "R"},
    {"name": "Apparent power L3", "group": "Measurements", "area": "input", "address": "0x0022", "type": "float32", "unit": "kVA", "access": "R"},
    {"name": "Reactive power L1", "group": "Measurements", "area": "input", "address": "0x0024", "type": "float32", "unit": "kvar", "access": "R"},
    {"name": "Reactive power L2", "group": "Measurements", "area": "input", "address": "0x0026", "type": "float32", "unit": "kvar", "access": "R"},
    {"name": "Reactive power L3", "group": "Measurements", "area": "input", "address": "0x0028", "type": "float32", "unit": "kvar", "access": "R"},
    {"name": "Total active power", "group": "Measurements", "area": "input", "address": "0x002A", "type": "float32", "unit": "kW", "access": "R"},
    {"name": "Total apparent power", "group": "Measurements", "area": "input", "address": "0x002C", "type": "float32", "unit": "kVA", "access": "R"},
    {"name": "Total reactive power", "group": "Measurements", "area": "input", "address": "0x002E", "type": "float32", "unit": "kvar", "access": "R"},
    {"name": "Power factor L1", "group": "Measurements", "area": "input", "address": "0x0030", "type": "float32", "access": "R"},
    {"name": "Power factor L2", "group": "Measurements", "area": "input", "address": "0x0032", "type": "float32", "access": "R"},
    {"name": "Power factor L3", "group": "Measurements", "area": "input", "address": "0x0034", "type": "float32", "access": "R"},
    {"name": "Average power factor", "group": "Measurements", "area": "input", "address": "0x0036", "type": "float32", "access": "R"},
    {"name": "Frequency", "group": "Measurements", "area": "input", "address": "0x0038", "type": "float32", "unit": "Hz", "access": "R"},
    {"name": "Total net kWh", "group": "Measurements", "area": "input", "address": "0x003A", "type": "float32", "unit": "kWh", "access": "R"},
    {"name": "Total net kVAh", "group": "Measurements", "area": "input", "address": "0x003C", "type": "float32", "unit": "kVAh", "access": "R"},
    {"name": "Total net kVArh", "group": "Measurements", "area": "input", "address": "0x003E", "type": "float32", "unit": "kvarh", "access": "R"},
    {"name": "Max Active Power", "group": "Measurements", "area": "input", "address": "0x0040", "type": "float32", "unit": "kW", "access": "R"},
    {"name": "Min Active Power", "group": "Measurements", "area": "input", "address": "0x0042", "type": "float32", "unit": "kW", "access": "R"},
    {"name": "Max Reactive Power", "group": "Measurements", "area": "input", "address": "0x0044", "type": "float32", "unit": "kvar", "access": "R"},
    {"name": "Min Reactive Power", "group": "Measurements", "area": "input", "address": "0x0046", "type": "float32", "unit": "kvar", "access": "R"},
    {"name": "Max Apparent Power", "group": "Measurements", "area": "input", "address": "0x0048", "type": "float32", "unit": "kVA", "access": "R"},
    {"name": "Max I1 Current Demand", "group": "Measurements", "area": "input", "address": "0x004A", "type": "float32", "unit": "A", "access": "R"},
    {"name": "Max I2 Current Demand", "group": "Measurements", "area": "input", "address": "0x004C", "type": "float32", "unit": "A", "access": "R", "description": "The table's hex address is a typo; the decimal register number is used"},
    {"name": "Max I3 Current Demand", "group": "Measurements", "area": "input", "address": "0x004E", "type": "float32", "unit": "A", "access": "R"},
    {"name": "Max Average Current Demand", "group": "Measurements", "area": "input", "address": "0x0050", "type": "float32", "unit": "A", "access": "R"},
    {"name": "Run hour", "group": "Measurements", "area": "input", "address": "0x0052", "type": "float32", "unit": "hrs", "access": "R"},
    {"name": "kWh1 (Imp)", "group": "Measurements", "area": "input", "address": "0x0054", "type": "float32", "unit": "kWh", "access": "R"},
    {"name": "kWh2 (Imp)", "group": "Measurements", "area": "input", "address": "0x0056", "type": "float32", "unit": "kWh", "access": "R"},
    {"name": "kWh3 (Imp)", "group": "Measurements", "area": "input", "address": "0x0058", "type": "float32", "unit": "kWh", "access": "R"},
    {"name": "kWh1 (Exp)", "group": "Measurements", "area": "input", "address": "0x005A", "type": "float32", "unit": "kWh", "access": "R"},
    {"name": "kWh2 (Exp)", "group": "Measurements", "area": "input", "address": "0x005C", "type": "float32", "unit": "kWh", "access": "R"},
    {"name": "kWh3 (Exp)", "group": "Measurements", "area": "input", "address": "0x005E", "type": "float32", "unit": "kWh", "access": "R"},
    {"name": "Total kWh (Imp)", "group": "Measurements", "area": "input", "address": "0x0060", "type": "float32", "unit": "kWh", "access": "R"},
    {"name": "Total kWh (Exp)", "group": "Measurements", "area": "input", "address": "0x0062", "type": "float32", "unit": "kWh", "access": "R"},
    {"name": "kVArh1 (Imp)", "group": "Measurements", "area": "input", "address": "0x0064", "type": "float32", "unit": "kvarh", "access": "R"},
    {"name": "kVArh2 (Imp)", "group": "Measurements", "area": "input", "address": "0x0066", "type": "float32", "unit": "kvarh", "access": "R"},
    {"name": "kVArh3 (Imp)", "group": "Measurements", "area": "input", "address": "0x0068", "type": "float32", "unit": "kvarh", "access": "R"},
    {"name": "kVArh1 (Exp)", "group": "Measurements", "area": "input", "address": "0x006A", "type": "float32", "unit": "kvarh", "access": "R"},
    {"name": "kVArh2 (Exp)", "group": "Measurements", "area": "input", "address": "0x006C", "type": "float32", "unit": "kvarh", "access": "R"},
    {"name": "kVArh3 (Exp)", "group": "Measurements", "area": "input", "address": "0x006E", "type": "float32", "unit": "kvarh", "access": "R"},
    {"name": "Total kVArh (Imp)", "group": "Measurements", "area": "input", "address": "0x0070", "type": "float32", "unit": "kvarh", "access": "R"},
    {"name": "Total kVArh (Exp)", "group": "Measurements", "area": "input", "address": "0x0072", "type": "float32", "unit": "kvarh", "access": "R"},
    {"name": "kVAh1", "group": "Measurements", "area": "input", "address": "0x0074", "type": "float32", "unit": "kVAh", "access": "R"},
    {"name": "kVAh2", "group": "Measurements", "area": "input", "address": "0x0076", "type": "float32", "unit": "kVAh", "access": "R"},
    {"name": "kVAh3", "group": "Measurements", "area": "input", "address": "0x0078", "type": "float32", "unit": "kVAh", "access": "R"},
    {"name": "Neutral Current", "group": "Measurements", "area": "input", "address": "0x007A", "type": "float32", "unit": "A", "access": "R"},
    {"name": "THD of 1st Phase Voltage", "group": "Measurements", "area": "input", "address": "0x007C", "type": "float32", "unit": "%", "access": "R"},
    {"name": "THD of 2nd Phase Voltage", "group": "Measurements", "area": "input", "address": "0x007E", "type": "float32", "unit": "%", "access": "R"},
    {"name": "THD of 3rd Phase Voltage", "group": "Measurements", "area": "input", "address": "0x0080", "type": "float32", "unit": "%", "access": "R"},
    {"name": "THD of Voltage V1-2", "group": "Measurements", "area": "input", "address": "0x0082", "type": "float32", "unit": "%", "access": "R"},
    {"name": "THD of Voltage V2-3", "group": "Measurements", "area": "input", "address": "0x0084", "type": "float32", "unit": "%", "access": "R"},
    {"name": "THD of Voltage V3-1", "group": "Measurements", "area": "input", "address": "0x0086", "type": "float32", "unit": "%", "access": "R"},
    {"name": "THD of Current I1", "group": "Measurements", "area": "input", "address": "0x0088", "type": "float32", "unit": "%", "access": "R"},
    {"name": "THD of Current I2", "group": "Measurements", "area": "input", "address": "0x008A", "type": "float32", "unit": "%", "access": "R"},
    {"name": "THD of Current I3", "group": "Measurements", "area": "input", "address": "0x008C", "type": "float32", "unit": "%", "access": "R"},
    {"name": "Serial No.", "group": "Measurements", "area": "input", "address": "0x02AC", "type": "uint32", "access": "R", "role": "serial", "description": "Read as hexadecimal"},
    {"name": "Phase Sequence Indicator", "group": "Measurements", "area": "input", "address": "0x02BC", "type": "uint32", "access": "R", "enum": {"0": "Clockwise", "1": "Anticlockwise", "2": "Invalid"}},
    {"name": "Existing Max Active Power", "group": "Measurements", "area": "input", "address": "0x02BE", "type": "float32", "unit": "kW", "access": "R"},
    {"name": "Existing Min Active Power", "group": "Measurements", "area": "input", "address": "0x02C0", "type": "float32", "unit": "kW", "access": "R"},
    {"name": "Existing Max Reactive Power", "group": "Measurements", "area": "input", "address": "0x02C2", "type": "float32", "unit": "kvar", "access": "R"},
    {"name": "Existing Min Reactive Power", "group": "Measurements", "area": "input", "address": "0x02C4", "type": "float32", "unit": "kvar", "access": "R"},
    {"name": "Existing Max Apparent Power", "group": "Measurements", "area": "input", "address": "0x02C6", "type": "float32", "unit": "kVA", "access": "R"},
    {"name": "Existing Max I1 Demand", "group": "Measurements", "area": "input", "address": "0x02C8", "type": "float32", "unit": "A", "access": "R"},
    {"name": "Existing Max I2 Demand", "group": "Measurements", "area": "input", "address": "0x02CA", "type": "float32", "unit": "A", "access": "R"},
    {"name": "Existing Max I3 Demand", "group": "Measurements", "area": "input", "address": "0x02CC", "type": "float32", "unit": "A", "access": "R"},
    {"name": "Existing Max Avg. Current Demand", "group": "Measurements", "area": "input", "address": "0x02CE", "type": "float32", "unit": "A", "access": "R"},
    {"name": "Password", "group": "Setup", "area": "holding", "address": "0x0000", "type": "uint16", "access": "RW", "write_min": 0, "write_max": 9998, "description": "Default 1000"},
    {"name": "Network Selection", "group": "Setup", "area": "holding", "address": "0x0001", "type": "uint16", "access": "RW", "enum": {"0": "3P4W", "2": "1P2W-P1", "3": "1P2W-P2", "4": "1P2W-P3"}, "description": "Default 0"},
    {"name": "CT Secondary", "group": "Setup", "area": "holding", "address": "0x0002", "type": "uint16", "unit": "A", "access": "R", "description": "5. Default 5"},
    {"name": "CT Primary", "group": "Setup", "area": "holding", "address": "0x0003", "type": "uint16", "unit": "A", "access": "RW", "write_min": 5, "write_max": 10000, "description": "Default 5"},
    {"name": "PT Secondary", "group": "Setup", "area": "holding", "address": "0x0004", "type": "uint16", "unit": "V", "access": "RW", "write_min": 173, "write_max": 415, "description": "Default 350"},
    {"name": "PT Primary", "group": "Setup", "area": "holding", "address": "0x0005", "type": "uint32", "unit": "V", "access": "RW", "write_min": 100, "write_max": 500000, "description": "Default 350"},
    {"name": "Slave ID", "group": "Setup", "area": "holding", "address": "0x0007", "type": "uint16", "access": "RW", "write_min": 1, "write_max": 255, "description": "Default 1"},
    {"name": "Baud Rate", "group": "Setup", "area": "holding", "address": "0x0008", "type": "uint16", "access": "RW", "enum": {"0": "300", "1": "600", "2": "1200", "3": "2400", "4": "4800", "5": "9600", "6": "19200", "7": "38400"}, "description": "Default 5"},
    {"name": "Parity", "group": "Setup", "area": "holding", "address": "0x0009", "type": "uint16", "access": "RW", "enum": {"0": "None", "1": "Odd", "2": "Even"}, "description": "Default 0"},
    {"name": "Stop Bit", "group": "Setup", "area": "holding", "address": "0x000A", "type": "uint16", "access": "RW", "enum": {"0": "1", "1": "2"}, "description": "Default 0"},
    {"name": "Backlight OFF", "group": "Setup", "area": "holding", "address": "0x000B", "type": "uint16", "unit": "s", "access": "RW", "write_min": 0, "write_max": 7200, "description": "Default 0"},
    {"name": "Factory Default", "group": "Setup", "area": "holding", "address": "0x000C", "type": "uint16", "access": "W", "description": "1: Set to factory setting range"},
    {"name": "Reset kWh", "group": "Setup", "area": "holding", "address": "0x000D", "type": "uint16", "access": "W", "description": "1: Reset total active energy"},
    {"name": "Reset kVAh", "group": "Setup", "area": "holding", "address": "0x000E", "type": "uint16", "access": "W", "description": "1: Reset total apparent energy"},
    {"name": "Reset kVArh", "group": "Setup", "area": "holding", "address": "0x000F", "type": "uint16", "access": "W", "description": "1: Reset total reactive energy"},
    {"name": "Auto Mode Pages", "group": "Setup", "area": "holding", "address": "0x0010", "type": "uint16", "access": "RW", "write_min": 1, "write_max": 21, "description": "Default 21"},
    {"name": "Page Address Sequence", "group": "Setup", "area": "holding", "address": "0x0011", "type": "uint16", "access": "RW", "description": "1-21 / 1-First Page; 21-Last Page"},
    {"name": "Page Address Sequence (40018)", "group": "Setup", "area": "holding", "address": "0x0012", "type": "uint16", "access": "RW", "description": "1-21 / 1-First Page; 21-Last Page"},
    {"name": "Page Address Sequence (40019)", "group": "Setup", "area": "holding", "address": "0x0013", "type": "uint16", "access": "RW", "description": "1-21 / 1-First Page; 21-Last Page"},
    {"name": "Page Address Sequence (40020)", "group": "Setup", "area": "holding", "address": "0x0014", "type": "uint16", "access": "RW", "description": "1-21 / 1-First Page; 21-Last Page"},
    {"name": "Page Address Sequence (40021)", "group": "Setup", "area": "holding", "address": "0x0015", "type": "uint16", "access": "RW", "description": "1-21 / 1-First Page; 21-Last Page"},
    {"name": "Page Address Sequence (40022)", "group": "Setup", "area": "holding", "address": "0x0016", "type": "uint16", "access": "RW", "description": "1-21 / 1-First Page; 21-Last Page"},
    {"name": "Page Address Sequence (40023)", "group": "Setup", "area": "holding", "address": "0x0017", "type": "uint16", "access": "RW", "description": "1-21 / 1-First Page; 21-Last Page"},
    {"name": "Page Address Sequence (40024)", "group": "Setup", "area": "holding", "address": "0x0018", "type": "uint16", "access": "RW", "description": "1-21 / 1-First Page; 21-Last Page"},
    {"name": "Page Address Sequence (40025)", "group": "Setup", "area": "holding", "address": "0x0019", "type": "uint16", "access": "RW", "description": "1-21 / 1-First Page; 21-Last Page"},
    {"name": "Page Address Sequence (40026)", "group": "Setup", "area": "holding", "address": "0x001A", "type": "uint16", "access": "RW", "description": "1-21 / 1-First Page; 21-Last Page"},
    {"name": "Page Address Sequence (40027)", "group": "Setup", "area": "holding", "address": "0x001B", "type": "uint16", "access": "RW", "description": "1-21 / 1-First Page; 21-Last Page"},
    {"name": "Page Address Sequence (40028)", "group": "Setup", "area": "holding", "address": "0x001C", "type": "uint16", "access": "RW", "description": "1-21 / 1-First Page; 21-Last Page"},
    {"name": "Page Address Sequence (40029)", "group": "Setup", "area": "holding", "address": "0x001D", "type": "uint16", "access": "RW", "description": "1-21 / 1-First Page; 21-Last Page"},
    {"name": "Page Address Sequence (40030)", "group": "Setup", "area": "holding", "address": "0x001E", "type": "uint16", "access": "RW", "description": "1-21 / 1-First Page; 21-Last Page"},
    {"name": "Page Address Sequence (40031)", "group": "Setup", "area": "holding", "address": "0x001F", "type": "uint16", "access": "RW", "description": "1-21 / 1-First Page; 21-Last Page"},
    {"name": "Page Address Sequence (40032)", "group": "Setup", "area": "holding", "address": "0x0020", "type": "uint16", "access": "RW", "description": "1-21 / 1-First Page; 21-Last Page"},
    {"name": "Page Address Sequence (40033)", "group": "Setup", "area": "holding", "address": "0x0021", "type": "uint16", "access": "RW", "description": "1-21 / 1-First Page; 21-Last Page"},
    {"name": "Demand Interval Method", "group": "Setup", "area": "holding", "address": "0x0022", "type": "uint16", "access": "RW", "enum": {"0": "Sliding", "1": "Fixed"}, "description": "Default 0"},
    {"name": "Demand Interval Duration", "group": "Setup", "area": "holding", "address": "0x0023", "type": "uint16", "access": "RW", "write_min": 1, "write_max": 30, "description": "Default 15"},
    {"name": "Demand Interval Length", "group": "Setup", "area": "holding", "address": "0x0024", "type": "uint16", "unit": "min", "access": "RW", "write_min": 1, "write_max": 30, "description": "Default 1"},
    {"name": "Reset Min Power", "group": "Setup", "area": "holding", "address": "0x0026", "type": "uint16", "access": "W", "description": "1: Reset all min power"},
    {"name": "Reset Max Power", "group": "Setup", "area": "holding", "address": "0x002B", "type": "uint16", "access": "W", "description": "1: Reset all max power"},
    {"name": "Reset Energy Values", "group": "Setup", "area": "holding", "address": "0x002C", "type": "uint16", "access": "W", "description": "1: Reset all energy values"},
    {"name": "Reset Run Hour", "group": "Setup", "area": "holding", "address": "0x002D", "type": "uint16", "access": "W", "description": "1: Reset run hour"},
    {"name": "Page Address Sequence (40054)", "group": "Setup", "area": "holding", "address": "0x0036", "type": "uint16", "access": "RW", "description": "1-21 / 1-First Page; 21-Last Page"},
    {"name": "Page Address Sequence (40055)", "group": "Setup", "area": "holding", "address": "0x0037", "type": "uint16", "access": "RW", "description": "1-21 / 1-First Page; 21-Last Page"},
    {"name": "Pulse Duration", "group": "Setup", "area": "holding", "address": "0x0039", "type": "uint16", "unit": "s", "access": "RW", "description": "0.1 - 2.0. Default 0.1"},
    {"name": "Pulse Weight", "group": "Setup", "area": "holding", "address": "0x003A", "type": "uint16", "unit": "kWh", "access": "RW", "description": "0.01 - 99.99. Default 0.1"},
    {"name": "Page Address Sequence (40059)", "group": "Setup", "area": "holding", "address": "0x003B", "type": "uint16", "access": "RW", "description": "1-21 / 1-First Page; 21-Last Page"},
    {"name": "Page Address Sequence (40060)", "group": "Setup", "area": "holding", "address": "0x003C", "type": "uint16", "access": "RW", "description": "1-21 / 1-First Page; 21-Last Page"},
    {"name": "Reset Max Current", "group": "Setup", "area": "holding", "address": "0x003F", "type": "uint16", "access": "W", "description": "1: Reset max current"}
  ]
}
