{
  "$schema": "https://raw.githubusercontent.com/nobrega8/mbmap-library/main/schema/mbmap-2.schema.json",
  "mbmap": 2,
  "vendor": "Moxa",
  "model": "ioLogik R1214",
  "models": ["ioLogik R1214", "ioLogik R1214-T"],
  "vendor_website": "moxa.com",
  "description": "RS-485 remote I/O with 6 digital inputs and 6 relay outputs",
  "revision": 2,
  "revised": "2026-10-17",
  "source": "Moxa, \"ioLogik R1200 Series User's Manual\", edition 3.3 (February 2018), Appendix A",
  "sources": [{"title": "ioLogik R1200 Series User's Manual", "version": "Edition 3.3", "date": "2018-02", "url": "https://cdn11.bigcommerce.com/s-hltjsp5jm3/content/pdfs/moxa-iologik-r1200-series-manual.pdf", "note": "Appendix A, Modbus address and register maps"}],
  "notes": [
    "The unit ID is set with the two rotary switches (1-99). With the mode switch in Initial position the port runs at 9600 baud, 8N1; the settings in Run mode are configured by software.",
    "32-bit values are high word first.",
    "The manual lists relay safe mode status for 8 channels (0x01E0-0x01E7) although the device has 6 relays; only the first 6 are in this map."
  ],
  "protocol": "rtu",
  "unit_id": 1,
  "baudrate": 9600,
  "parity": "N",
  "databits": 8,
  "stopbits": 1,
  "byte_order": "big",
  "word_order": "big",
  "address_base": 0,
  "x_status": "official",
  "registers": [
    {"name": "DI 0 counter status", "group": "DI", "area": "coil", "address": "0x0000", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 1 counter status", "group": "DI", "area": "coil", "address": "0x0001", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 2 counter status", "group": "DI", "area": "coil", "address": "0x0002", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 3 counter status", "group": "DI", "area": "coil", "address": "0x0003", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 4 counter status", "group": "DI", "area": "coil", "address": "0x0004", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 5 counter status", "group": "DI", "area": "coil", "address": "0x0005", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 0 counter reset", "group": "DI", "area": "coil", "address": "0x0020", "type": "bool", "access": "RW", "description": "1: reset to initial value"},
    {"name": "DI 1 counter reset", "group": "DI", "area": "coil", "address": "0x0021", "type": "bool", "access": "RW", "description": "1: reset to initial value"},
    {"name": "DI 2 counter reset", "group": "DI", "area": "coil", "address": "0x0022", "type": "bool", "access": "RW", "description": "1: reset to initial value"},
    {"name": "DI 3 counter reset", "group": "DI", "area": "coil", "address": "0x0023", "type": "bool", "access": "RW", "description": "1: reset to initial value"},
    {"name": "DI 4 counter reset", "group": "DI", "area": "coil", "address": "0x0024", "type": "bool", "access": "RW", "description": "1: reset to initial value"},
    {"name": "DI 5 counter reset", "group": "DI", "area": "coil", "address": "0x0025", "type": "bool", "access": "RW", "description": "1: reset to initial value"},
    {"name": "DI 0 counter overflow flag", "group": "DI", "area": "coil", "address": "0x0040", "type": "bool", "access": "RW", "description": "1: clear overflow flag"},
    {"name": "DI 1 counter overflow flag", "group": "DI", "area": "coil", "address": "0x0041", "type": "bool", "access": "RW", "description": "1: clear overflow flag"},
    {"name": "DI 2 counter overflow flag", "group": "DI", "area": "coil", "address": "0x0042", "type": "bool", "access": "RW", "description": "1: clear overflow flag"},
    {"name": "DI 3 counter overflow flag", "group": "DI", "area": "coil", "address": "0x0043", "type": "bool", "access": "RW", "description": "1: clear overflow flag"},
    {"name": "DI 4 counter overflow flag", "group": "DI", "area": "coil", "address": "0x0044", "type": "bool", "access": "RW", "description": "1: clear overflow flag"},
    {"name": "DI 5 counter overflow flag", "group": "DI", "area": "coil", "address": "0x0045", "type": "bool", "access": "RW", "description": "1: clear overflow flag"},
    {"name": "DI 0 counter power on status", "group": "DI", "area": "coil", "address": "0x0060", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 1 counter power on status", "group": "DI", "area": "coil", "address": "0x0061", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 2 counter power on status", "group": "DI", "area": "coil", "address": "0x0062", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 3 counter power on status", "group": "DI", "area": "coil", "address": "0x0063", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 4 counter power on status", "group": "DI", "area": "coil", "address": "0x0064", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 5 counter power on status", "group": "DI", "area": "coil", "address": "0x0065", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 0 counter safe mode status", "group": "DI", "area": "coil", "address": "0x0080", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 1 counter safe mode status", "group": "DI", "area": "coil", "address": "0x0081", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 2 counter safe mode status", "group": "DI", "area": "coil", "address": "0x0082", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 3 counter safe mode status", "group": "DI", "area": "coil", "address": "0x0083", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 4 counter safe mode status", "group": "DI", "area": "coil", "address": "0x0084", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 5 counter safe mode status", "group": "DI", "area": "coil", "address": "0x0085", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "DI 0 counter power off storage", "group": "DI", "area": "coil", "address": "0x00A0", "type": "bool", "access": "RW", "enum": {"0": "Disable", "1": "Enable"}},
    {"name": "DI 1 counter power off storage", "group": "DI", "area": "coil", "address": "0x00A1", "type": "bool", "access": "RW", "enum": {"0": "Disable", "1": "Enable"}},
    {"name": "DI 2 counter power off storage", "group": "DI", "area": "coil", "address": "0x00A2", "type": "bool", "access": "RW", "enum": {"0": "Disable", "1": "Enable"}},
    {"name": "DI 3 counter power off storage", "group": "DI", "area": "coil", "address": "0x00A3", "type": "bool", "access": "RW", "enum": {"0": "Disable", "1": "Enable"}},
    {"name": "DI 4 counter power off storage", "group": "DI", "area": "coil", "address": "0x00A4", "type": "bool", "access": "RW", "enum": {"0": "Disable", "1": "Enable"}},
    {"name": "DI 5 counter power off storage", "group": "DI", "area": "coil", "address": "0x00A5", "type": "bool", "access": "RW", "enum": {"0": "Disable", "1": "Enable"}},
    {"name": "Relay 0 status", "group": "Relay", "area": "coil", "address": "0x0140", "type": "bool", "access": "RW", "enum": {"0": "Off", "1": "On"}},
    {"name": "Relay 1 status", "group": "Relay", "area": "coil", "address": "0x0141", "type": "bool", "access": "RW", "enum": {"0": "Off", "1": "On"}},
    {"name": "Relay 2 status", "group": "Relay", "area": "coil", "address": "0x0142", "type": "bool", "access": "RW", "enum": {"0": "Off", "1": "On"}},
    {"name": "Relay 3 status", "group": "Relay", "area": "coil", "address": "0x0143", "type": "bool", "access": "RW", "enum": {"0": "Off", "1": "On"}},
    {"name": "Relay 4 status", "group": "Relay", "area": "coil", "address": "0x0144", "type": "bool", "access": "RW", "enum": {"0": "Off", "1": "On"}},
    {"name": "Relay 5 status", "group": "Relay", "area": "coil", "address": "0x0145", "type": "bool", "access": "RW", "enum": {"0": "Off", "1": "On"}},
    {"name": "Relay 0 power on status", "group": "Relay", "area": "coil", "address": "0x0160", "type": "bool", "access": "RW", "enum": {"0": "Off", "1": "On"}},
    {"name": "Relay 1 power on status", "group": "Relay", "area": "coil", "address": "0x0161", "type": "bool", "access": "RW", "enum": {"0": "Off", "1": "On"}},
    {"name": "Relay 2 power on status", "group": "Relay", "area": "coil", "address": "0x0162", "type": "bool", "access": "RW", "enum": {"0": "Off", "1": "On"}},
    {"name": "Relay 3 power on status", "group": "Relay", "area": "coil", "address": "0x0163", "type": "bool", "access": "RW", "enum": {"0": "Off", "1": "On"}},
    {"name": "Relay 4 power on status", "group": "Relay", "area": "coil", "address": "0x0164", "type": "bool", "access": "RW", "enum": {"0": "Off", "1": "On"}},
    {"name": "Relay 5 power on status", "group": "Relay", "area": "coil", "address": "0x0165", "type": "bool", "access": "RW", "enum": {"0": "Off", "1": "On"}},
    {"name": "Relay 0 pulse status", "group": "Relay", "area": "coil", "address": "0x0180", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "Relay 1 pulse status", "group": "Relay", "area": "coil", "address": "0x0181", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "Relay 2 pulse status", "group": "Relay", "area": "coil", "address": "0x0182", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "Relay 3 pulse status", "group": "Relay", "area": "coil", "address": "0x0183", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "Relay 4 pulse status", "group": "Relay", "area": "coil", "address": "0x0184", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "Relay 5 pulse status", "group": "Relay", "area": "coil", "address": "0x0185", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "Relay 0 pulse power on status", "group": "Relay", "area": "coil", "address": "0x01A0", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "Relay 1 pulse power on status", "group": "Relay", "area": "coil", "address": "0x01A1", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "Relay 2 pulse power on status", "group": "Relay", "area": "coil", "address": "0x01A2", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "Relay 3 pulse power on status", "group": "Relay", "area": "coil", "address": "0x01A3", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "Relay 4 pulse power on status", "group": "Relay", "area": "coil", "address": "0x01A4", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "Relay 5 pulse power on status", "group": "Relay", "area": "coil", "address": "0x01A5", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "Relay 0 pulse safe mode status", "group": "Relay", "area": "coil", "address": "0x01C0", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "Relay 1 pulse safe mode status", "group": "Relay", "area": "coil", "address": "0x01C1", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "Relay 2 pulse safe mode status", "group": "Relay", "area": "coil", "address": "0x01C2", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "Relay 3 pulse safe mode status", "group": "Relay", "area": "coil", "address": "0x01C3", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "Relay 4 pulse safe mode status", "group": "Relay", "area": "coil", "address": "0x01C4", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "Relay 5 pulse safe mode status", "group": "Relay", "area": "coil", "address": "0x01C5", "type": "bool", "access": "RW", "enum": {"0": "Stop", "1": "Start"}},
    {"name": "Relay 0 pulse reset", "group": "Relay", "area": "coil", "address": "0x01DF", "type": "bool", "access": "RW", "description": "1: reset pulse count"},
    {"name": "Relay 1 pulse reset", "group": "Relay", "area": "coil", "address": "0x01E0", "type": "bool", "access": "RW", "description": "1: reset pulse count"},
    {"name": "Relay 2 pulse reset", "group": "Relay", "area": "coil", "address": "0x01E1", "type": "bool", "access": "RW", "description": "1: reset pulse count"},
    {"name": "Relay 3 pulse reset", "group": "Relay", "area": "coil", "address": "0x01E2", "type": "bool", "access": "RW", "description": "1: reset pulse count"},
    {"name": "Relay 4 pulse reset", "group": "Relay", "area": "coil", "address": "0x01E3", "type": "bool", "access": "RW", "description": "1: reset pulse count"},
    {"name": "Relay 5 pulse reset", "group": "Relay", "area": "coil", "address": "0x01E4", "type": "bool", "access": "RW", "description": "1: reset pulse count"},
    {"name": "DI 0 status", "group": "DI", "area": "discrete", "address": "0x0000", "type": "bool", "access": "R", "enum": {"0": "Off", "1": "On"}},
    {"name": "DI 1 status", "group": "DI", "area": "discrete", "address": "0x0001", "type": "bool", "access": "R", "enum": {"0": "Off", "1": "On"}},
    {"name": "DI 2 status", "group": "DI", "area": "discrete", "address": "0x0002", "type": "bool", "access": "R", "enum": {"0": "Off", "1": "On"}},
    {"name": "DI 3 status", "group": "DI", "area": "discrete", "address": "0x0003", "type": "bool", "access": "R", "enum": {"0": "Off", "1": "On"}},
    {"name": "DI 4 status", "group": "DI", "area": "discrete", "address": "0x0004", "type": "bool", "access": "R", "enum": {"0": "Off", "1": "On"}},
    {"name": "DI 5 status", "group": "DI", "area": "discrete", "address": "0x0005", "type": "bool", "access": "R", "enum": {"0": "Off", "1": "On"}},
    {"name": "DI 0 status (register)", "group": "DI", "area": "input", "address": "0x0000", "type": "uint16", "access": "R", "enum": {"0": "Off", "1": "On"}},
    {"name": "DI 1 status (register)", "group": "DI", "area": "input", "address": "0x0001", "type": "uint16", "access": "R", "enum": {"0": "Off", "1": "On"}},
    {"name": "DI 2 status (register)", "group": "DI", "area": "input", "address": "0x0002", "type": "uint16", "access": "R", "enum": {"0": "Off", "1": "On"}},
    {"name": "DI 3 status (register)", "group": "DI", "area": "input", "address": "0x0003", "type": "uint16", "access": "R", "enum": {"0": "Off", "1": "On"}},
    {"name": "DI 4 status (register)", "group": "DI", "area": "input", "address": "0x0004", "type": "uint16", "access": "R", "enum": {"0": "Off", "1": "On"}},
    {"name": "DI 5 status (register)", "group": "DI", "area": "input", "address": "0x0005", "type": "uint16", "access": "R", "enum": {"0": "Off", "1": "On"}},
    {"name": "DI 0 counter value", "group": "DI", "area": "input", "address": "0x0020", "type": "uint32", "access": "R"},
    {"name": "DI 1 counter value", "group": "DI", "area": "input", "address": "0x0022", "type": "uint32", "access": "R"},
    {"name": "DI 2 counter value", "group": "DI", "area": "input", "address": "0x0024", "type": "uint32", "access": "R"},
    {"name": "DI 3 counter value", "group": "DI", "area": "input", "address": "0x0026", "type": "uint32", "access": "R"},
    {"name": "DI 4 counter value", "group": "DI", "area": "input", "address": "0x0028", "type": "uint32", "access": "R"},
    {"name": "DI 5 counter value", "group": "DI", "area": "input", "address": "0x002A", "type": "uint32", "access": "R"},
    {"name": "Relay 0 total count", "group": "Relay", "area": "input", "address": "0x0140", "type": "uint32", "access": "R"},
    {"name": "Relay 1 total count", "group": "Relay", "area": "input", "address": "0x0142", "type": "uint32", "access": "R"},
    {"name": "Relay 2 total count", "group": "Relay", "area": "input", "address": "0x0144", "type": "uint32", "access": "R"},
    {"name": "Relay 3 total count", "group": "Relay", "area": "input", "address": "0x0146", "type": "uint32", "access": "R"},
    {"name": "Relay 4 total count", "group": "Relay", "area": "input", "address": "0x0148", "type": "uint32", "access": "R"},
    {"name": "Relay 5 total count", "group": "Relay", "area": "input", "address": "0x014A", "type": "uint32", "access": "R"},
    {"name": "Relay 0 current count", "group": "Relay", "area": "input", "address": "0x0180", "type": "uint32", "access": "R"},
    {"name": "Relay 1 current count", "group": "Relay", "area": "input", "address": "0x0182", "type": "uint32", "access": "R"},
    {"name": "Relay 2 current count", "group": "Relay", "area": "input", "address": "0x0184", "type": "uint32", "access": "R"},
    {"name": "Relay 3 current count", "group": "Relay", "area": "input", "address": "0x0186", "type": "uint32", "access": "R"},
    {"name": "Relay 4 current count", "group": "Relay", "area": "input", "address": "0x0188", "type": "uint32", "access": "R"},
    {"name": "Relay 5 current count", "group": "Relay", "area": "input", "address": "0x018A", "type": "uint32", "access": "R"},
    {"name": "DI 0 mode", "group": "DI", "area": "holding", "address": "0x0000", "type": "uint16", "access": "RW", "enum": {"0": "Di", "1": "Counter"}},
    {"name": "DI 1 mode", "group": "DI", "area": "holding", "address": "0x0001", "type": "uint16", "access": "RW", "enum": {"0": "Di", "1": "Counter"}},
    {"name": "DI 2 mode", "group": "DI", "area": "holding", "address": "0x0002", "type": "uint16", "access": "RW", "enum": {"0": "Di", "1": "Counter"}},
    {"name": "DI 3 mode", "group": "DI", "area": "holding", "address": "0x0003", "type": "uint16", "access": "RW", "enum": {"0": "Di", "1": "Counter"}},
    {"name": "DI 4 mode", "group": "DI", "area": "holding", "address": "0x0004", "type": "uint16", "access": "RW", "enum": {"0": "Di", "1": "Counter"}},
    {"name": "DI 5 mode", "group": "DI", "area": "holding", "address": "0x0005", "type": "uint16", "access": "RW", "enum": {"0": "Di", "1": "Counter"}},
    {"name": "DI 0 filter", "group": "DI", "area": "holding", "address": "0x0020", "type": "uint16", "scale": 0.1, "unit": "ms", "access": "RW"},
    {"name": "DI 1 filter", "group": "DI", "area": "holding", "address": "0x0021", "type": "uint16", "scale": 0.1, "unit": "ms", "access": "RW"},
    {"name": "DI 2 filter", "group": "DI", "area": "holding", "address": "0x0022", "type": "uint16", "scale": 0.1, "unit": "ms", "access": "RW"},
    {"name": "DI 3 filter", "group": "DI", "area": "holding", "address": "0x0023", "type": "uint16", "scale": 0.1, "unit": "ms", "access": "RW"},
    {"name": "DI 4 filter", "group": "DI", "area": "holding", "address": "0x0024", "type": "uint16", "scale": 0.1, "unit": "ms", "access": "RW"},
    {"name": "DI 5 filter", "group": "DI", "area": "holding", "address": "0x0025", "type": "uint16", "scale": 0.1, "unit": "ms", "access": "RW"},
    {"name": "DI 0 counter event", "group": "DI", "area": "holding", "address": "0x0040", "type": "uint16", "access": "RW", "enum": {"0": "Rising Edge", "1": "Falling Edge", "2": "Both"}},
    {"name": "DI 1 counter event", "group": "DI", "area": "holding", "address": "0x0041", "type": "uint16", "access": "RW", "enum": {"0": "Rising Edge", "1": "Falling Edge", "2": "Both"}},
    {"name": "DI 2 counter event", "group": "DI", "area": "holding", "address": "0x0042", "type": "uint16", "access": "RW", "enum": {"0": "Rising Edge", "1": "Falling Edge", "2": "Both"}},
    {"name": "DI 3 counter event", "group": "DI", "area": "holding", "address": "0x0043", "type": "uint16", "access": "RW", "enum": {"0": "Rising Edge", "1": "Falling Edge", "2": "Both"}},
    {"name": "DI 4 counter event", "group": "DI", "area": "holding", "address": "0x0044", "type": "uint16", "access": "RW", "enum": {"0": "Rising Edge", "1": "Falling Edge", "2": "Both"}},
    {"name": "DI 5 counter event", "group": "DI", "area": "holding", "address": "0x0045", "type": "uint16", "access": "RW", "enum": {"0": "Rising Edge", "1": "Falling Edge", "2": "Both"}},
    {"name": "Relay 0 status (register)", "group": "Relay", "area": "holding", "address": "0x0140", "type": "uint16", "access": "RW", "enum": {"0": "Off", "1": "On"}},
    {"name": "Relay 1 status (register)", "group": "Relay", "area": "holding", "address": "0x0141", "type": "uint16", "access": "RW", "enum": {"0": "Off", "1": "On"}},
    {"name": "Relay 2 status (register)", "group": "Relay", "area": "holding", "address": "0x0142", "type": "uint16", "access": "RW", "enum": {"0": "Off", "1": "On"}},
    {"name": "Relay 3 status (register)", "group": "Relay", "area": "holding", "address": "0x0143", "type": "uint16", "access": "RW", "enum": {"0": "Off", "1": "On"}},
    {"name": "Relay 4 status (register)", "group": "Relay", "area": "holding", "address": "0x0144", "type": "uint16", "access": "RW", "enum": {"0": "Off", "1": "On"}},
    {"name": "Relay 5 status (register)", "group": "Relay", "area": "holding", "address": "0x0145", "type": "uint16", "access": "RW", "enum": {"0": "Off", "1": "On"}},
    {"name": "Relay 0 pulse count", "group": "Relay", "area": "holding", "address": "0x0160", "type": "uint32", "access": "RW"},
    {"name": "Relay 1 pulse count", "group": "Relay", "area": "holding", "address": "0x0162", "type": "uint32", "access": "RW"},
    {"name": "Relay 2 pulse count", "group": "Relay", "area": "holding", "address": "0x0164", "type": "uint32", "access": "RW"},
    {"name": "Relay 3 pulse count", "group": "Relay", "area": "holding", "address": "0x0166", "type": "uint32", "access": "RW"},
    {"name": "Relay 4 pulse count", "group": "Relay", "area": "holding", "address": "0x0168", "type": "uint32", "access": "RW"},
    {"name": "Relay 5 pulse count", "group": "Relay", "area": "holding", "address": "0x016A", "type": "uint32", "access": "RW"},
    {"name": "Relay 0 safe mode status", "group": "Relay", "area": "holding", "address": "0x01E0", "type": "uint16", "access": "RW", "enum": {"0": "Off", "1": "On", "2": "Hold Last"}},
    {"name": "Relay 1 safe mode status", "group": "Relay", "area": "holding", "address": "0x01E1", "type": "uint16", "access": "RW", "enum": {"0": "Off", "1": "On", "2": "Hold Last"}},
    {"name": "Relay 2 safe mode status", "group": "Relay", "area": "holding", "address": "0x01E2", "type": "uint16", "access": "RW", "enum": {"0": "Off", "1": "On", "2": "Hold Last"}},
    {"name": "Relay 3 safe mode status", "group": "Relay", "area": "holding", "address": "0x01E3", "type": "uint16", "access": "RW", "enum": {"0": "Off", "1": "On", "2": "Hold Last"}},
    {"name": "Relay 4 safe mode status", "group": "Relay", "area": "holding", "address": "0x01E4", "type": "uint16", "access": "RW", "enum": {"0": "Off", "1": "On", "2": "Hold Last"}},
    {"name": "Relay 5 safe mode status", "group": "Relay", "area": "holding", "address": "0x01E5", "type": "uint16", "access": "RW", "enum": {"0": "Off", "1": "On", "2": "Hold Last"}},
    {"name": "Relay 0 power on delay", "group": "Relay", "area": "holding", "address": "0x0220", "type": "uint16", "unit": "s", "access": "RW"},
    {"name": "Relay 1 power on delay", "group": "Relay", "area": "holding", "address": "0x0221", "type": "uint16", "unit": "s", "access": "RW"},
    {"name": "Relay 2 power on delay", "group": "Relay", "area": "holding", "address": "0x0222", "type": "uint16", "unit": "s", "access": "RW"},
    {"name": "Relay 3 power on delay", "group": "Relay", "area": "holding", "address": "0x0223", "type": "uint16", "unit": "s", "access": "RW"},
    {"name": "Relay 4 power on delay", "group": "Relay", "area": "holding", "address": "0x0224", "type": "uint16", "unit": "s", "access": "RW"},
    {"name": "Relay 5 power on delay", "group": "Relay", "area": "holding", "address": "0x0225", "type": "uint16", "unit": "s", "access": "RW"},
    {"name": "Model ID", "group": "System", "area": "input", "address": "0x7530", "type": "uint16", "access": "R"},
    {"name": "Firmware version", "group": "System", "area": "input", "address": "0x7545", "type": "uint32", "access": "R"},
    {"name": "Firmware release date", "group": "System", "area": "input", "address": "0x7547", "type": "uint32", "access": "R"},
    {"name": "Vendor ID", "group": "System", "area": "input", "address": "0x7549", "type": "uint16", "access": "R"},
    {"name": "Unit ID", "group": "System", "area": "input", "address": "0x754A", "type": "uint16", "access": "R", "description": "Set with the two rotary switches, 1-99"},
    {"name": "Serial number", "group": "System", "area": "input", "address": "0x754B", "type": "string", "length": 6, "access": "R", "role": "serial"},
    {"name": "Product name", "group": "System", "area": "input", "address": "0x7555", "type": "string", "length": 10, "access": "R"},
    {"name": "RS-485 port mode", "group": "System", "area": "input", "address": "0x756A", "type": "uint16", "access": "R", "enum": {"0": "Initial, repeater", "1": "Initial, dual RS-485", "2": "Run, repeater", "3": "Run, dual RS-485"}},
    {"name": "Server name", "group": "System", "area": "holding", "address": "0x7531", "type": "string", "length": 10, "access": "RW"},
    {"name": "Server location", "group": "System", "area": "holding", "address": "0x753B", "type": "string", "length": 10, "access": "RW"},
    {"name": "Password", "group": "System", "area": "holding", "address": "0x755F", "type": "string", "length": 5, "access": "RW"},
    {"name": "Modbus watchdog", "group": "System", "area": "holding", "address": "0x7564", "type": "uint16", "access": "RW", "enum": {"0": "Disabled", "1": "Enabled"}},
    {"name": "Modbus watchdog timeout", "group": "System", "area": "holding", "address": "0x7565", "type": "uint16", "unit": "s", "access": "RW"},
    {"name": "Modbus watchdog status", "group": "System", "area": "holding", "address": "0x7566", "type": "uint16", "access": "RW", "enum": {"0": "Normal", "1": "Timeout"}},
    {"name": "Locate device", "group": "System", "area": "holding", "address": "0x7567", "type": "uint16", "access": "RW"},
    {"name": "Restart device", "group": "System", "area": "holding", "address": "0x7568", "type": "uint16", "access": "RW", "enum": {"404": "Restart"}},
    {"name": "Load factory defaults", "group": "System", "area": "holding", "address": "0x7569", "type": "uint16", "access": "RW", "enum": {"404": "Load defaults"}},
    {"name": "Port 0 baud rate", "group": "System", "area": "holding", "address": "0x756C", "type": "uint16", "access": "RW", "enum": {"1": "1200", "2": "2400", "3": "4800", "4": "9600", "5": "19200", "6": "38400", "7": "57600", "8": "115200", "9": "921600"}},
    {"name": "Port 0 stop bits", "group": "System", "area": "holding", "address": "0x7570", "type": "uint16", "access": "RW", "enum": {"0": "1", "1": "2"}},
    {"name": "Port 0 parity", "group": "System", "area": "holding", "address": "0x7572", "type": "uint16", "access": "RW", "enum": {"0": "None", "1": "Even", "2": "Odd"}},
    {"name": "Port 1 baud rate", "group": "System", "area": "holding", "address": "0x756D", "type": "uint16", "access": "RW", "enum": {"1": "1200", "2": "2400", "3": "4800", "4": "9600", "5": "19200", "6": "38400", "7": "57600", "8": "115200", "9": "921600"}},
    {"name": "Port 1 stop bits", "group": "System", "area": "holding", "address": "0x7571", "type": "uint16", "access": "RW", "enum": {"0": "1", "1": "2"}},
    {"name": "Port 1 parity", "group": "System", "area": "holding", "address": "0x7573", "type": "uint16", "access": "RW", "enum": {"0": "None", "1": "Even", "2": "Odd"}},
    {"name": "Vendor name", "group": "System", "area": "holding", "address": "0x7594", "type": "string", "length": 20, "access": "RW"}
  ]
}
