{
  "$schema": "https://raw.githubusercontent.com/nobrega8/mbmap-library/main/schema/mbmap-2.schema.json",
  "mbmap": 2,
  "vendor": "Wellpro",
  "model": "WP8025ADAM",
  "models": [
    "WP8025ADAM"
  ],
  "vendor_website": "shwellpro.com",
  "description": "8-channel relay output module (SPST) with RS485 Modbus RTU",
  "revision": 1,
  "revised": "2026-10-20",
  "source": "WP8025ADAM User's Manual V1.42",
  "sources": [
    {
      "title": "WP8025ADAM User's Manual",
      "version": "1.42"
    }
  ],
  "notes": [
    "Relays are coils 0 to 7 (RY1 to RY8): read with FC01, write with FC05 or FC15.",
    "Unit ID 0 is a broadcast: use it to set the address only with a single module on the RS485 line, or all modules take the same address.",
    "The address and the communication parameter are kept after power off; a new communication parameter takes effect after the module restarts.",
    "Written from the manufacturer's manual; not tested on a device."
  ],
  "protocol": "rtu",
  "unit_id": 1,
  "baudrate": 9600,
  "parity": "N",
  "databits": 8,
  "stopbits": 1,
  "address_base": 0,
  "x_status": "official",
  "enums": {
    "comm_param": {"1": "4800, N, 8, 1", "2": "9600, N, 8, 1", "3": "19200, N, 8, 1", "4": "38400, N, 8, 1", "5": "4800, E, 8, 1", "6": "9600, E, 8, 1", "7": "19200, E, 8, 1", "8": "38400, E, 8, 1"}
  },
  "registers": [
    {"name": "Relay 01", "group": "Relays", "area": "coil", "address": 0, "type": "bool", "access": "RW", "description": "Relay output 1 (RY1)"},
    {"name": "Relay 02", "group": "Relays", "area": "coil", "address": 1, "type": "bool", "access": "RW", "description": "Relay output 2 (RY2)"},
    {"name": "Relay 03", "group": "Relays", "area": "coil", "address": 2, "type": "bool", "access": "RW", "description": "Relay output 3 (RY3)"},
    {"name": "Relay 04", "group": "Relays", "area": "coil", "address": 3, "type": "bool", "access": "RW", "description": "Relay output 4 (RY4)"},
    {"name": "Relay 05", "group": "Relays", "area": "coil", "address": 4, "type": "bool", "access": "RW", "description": "Relay output 5 (RY5)"},
    {"name": "Relay 06", "group": "Relays", "area": "coil", "address": 5, "type": "bool", "access": "RW", "description": "Relay output 6 (RY6)"},
    {"name": "Relay 07", "group": "Relays", "area": "coil", "address": 6, "type": "bool", "access": "RW", "description": "Relay output 7 (RY7)"},
    {"name": "Relay 08", "group": "Relays", "area": "coil", "address": 7, "type": "bool", "access": "RW", "description": "Relay output 8 (RY8)"},
    {"name": "Device Address", "group": "Configuration", "area": "holding", "address": 100, "type": "uint16", "access": "RW", "write_min": 1, "write_max": 254, "description": "Modbus slave address (range 1-254)"},
    {"name": "Communication Parameter", "group": "Configuration", "area": "holding", "address": 101, "type": "uint16", "access": "RW", "enum": "comm_param", "description": "Baudrate and parity settings (requires restart)"}
  ]
}
