{
  "$schema": "https://raw.githubusercontent.com/nobrega8/mbmap-library/main/schema/mbmap-2.schema.json",
  "mbmap": 2,
  "vendor": "Microidea",
  "model": "1PH",
  "models": [
    "1PH"
  ],
  "vendor_website": "microidea.it",
  "description": "Digital power factor controller with 4, 6, 8 or 12 capacitor steps, Modbus RTU",
  "revision": 1,
  "revised": "2026-10-18",
  "source": "Microidea, \"1PH - Digital Power Factor, Registers Modbus - RTU\"; https://www.microidea.it/sites/default/files/pdf/MODBUS_TABLE_1PH.pdf",
  "sources": [
    {
      "title": "1PH - Digital Power Factor, Registers Modbus - RTU",
      "url": "https://www.microidea.it/sites/default/files/pdf/MODBUS_TABLE_1PH.pdf",
      "note": "all three pages: input registers and holding registers. The document has no version or date"
    }
  ],
  "notes": [
    "Digital power factor controller 1PH. Serial communication needs the optional PC-USB / RS485 / TTL module (order code SCUSB485).",
    "The manual does not give the order of the two words of a 32-bit value, nor the factory serial settings or which Serial protocol type value is Modbus. Big word order is assumed; check it against the display.",
    "Steps beyond the controller's step count (4, 6, 8 or 12) are not used; on a 4-step controller step 3 can be a fan output and step 4 an alarm contact, and likewise for 6, 8 and 12 steps.",
    "The manual leaves the names of the bits in the alarm masks blank, so they are shown as plain numbers.",
    "Temperatures are in the unit chosen by the Temperature scale register."
  ],
  "byte_order": "big",
  "word_order": "big",
  "address_base": 0,
  "x_status": "official",
  "registers": [
    {
      "name": "Power factor",
      "group": "Measurements",
      "area": "input",
      "address": 0,
      "type": "uint16",
      "scale": 0.001,
      "access": "R",
      "description": "Actual cos phi, sent as cos x 1000"
    },
    {
      "name": "Voltage",
      "group": "Measurements",
      "area": "input",
      "address": 1,
      "type": "uint16",
      "unit": "V",
      "access": "R",
      "description": "RMS voltage"
    },
    {
      "name": "Current",
      "group": "Measurements",
      "area": "input",
      "address": 2,
      "type": "uint32",
      "scale": 0.01,
      "unit": "A",
      "access": "R",
      "description": "RMS current"
    },
    {
      "name": "Reactive power",
      "group": "Measurements",
      "area": "input",
      "address": 4,
      "type": "int32",
      "unit": "var",
      "access": "R",
      "description": "Actual reactive power; negative is capacitive"
    },
    {
      "name": "Reactive power demand",
      "group": "Measurements",
      "area": "input",
      "address": 6,
      "type": "int32",
      "unit": "var",
      "access": "R"
    },
    {
      "name": "Active power",
      "group": "Measurements",
      "area": "input",
      "address": 8,
      "type": "int32",
      "unit": "W",
      "access": "R"
    },
    {
      "name": "THD",
      "group": "Measurements",
      "area": "input",
      "address": 10,
      "type": "uint16",
      "unit": "%",
      "access": "R"
    },
    {
      "name": "General alarms",
      "group": "Alarms",
      "area": "input",
      "address": 11,
      "type": "uint16",
      "access": "R",
      "description": "One bit per alarm, 1 = active"
    },
    {
      "name": "General alarm - Voltage too high",
      "group": "Alarms",
      "area": "input",
      "address": 11,
      "type": "bool",
      "bit": 0,
      "access": "R"
    },
    {
      "name": "General alarm - Voltage too low",
      "group": "Alarms",
      "area": "input",
      "address": 11,
      "type": "bool",
      "bit": 1,
      "access": "R"
    },
    {
      "name": "General alarm - Current too high",
      "group": "Alarms",
      "area": "input",
      "address": 11,
      "type": "bool",
      "bit": 2,
      "access": "R"
    },
    {
      "name": "General alarm - Current too low",
      "group": "Alarms",
      "area": "input",
      "address": 11,
      "type": "bool",
      "bit": 3,
      "access": "R"
    },
    {
      "name": "General alarm - Overcompensation",
      "group": "Alarms",
      "area": "input",
      "address": 11,
      "type": "bool",
      "bit": 4,
      "access": "R"
    },
    {
      "name": "General alarm - Undercompensation",
      "group": "Alarms",
      "area": "input",
      "address": 11,
      "type": "bool",
      "bit": 5,
      "access": "R"
    },
    {
      "name": "General alarm - Over temperature",
      "group": "Alarms",
      "area": "input",
      "address": 11,
      "type": "bool",
      "bit": 6,
      "access": "R"
    },
    {
      "name": "General alarm - High THD",
      "group": "Alarms",
      "area": "input",
      "address": 11,
      "type": "bool",
      "bit": 7,
      "access": "R"
    },
    {
      "name": "General alarm - Wrong frequency",
      "group": "Alarms",
      "area": "input",
      "address": 11,
      "type": "bool",
      "bit": 8,
      "access": "R"
    },
    {
      "name": "General alarm - Minimum cos",
      "group": "Alarms",
      "area": "input",
      "address": 11,
      "type": "bool",
      "bit": 9,
      "access": "R"
    },
    {
      "name": "EEPROM alarms",
      "group": "Alarms",
      "area": "input",
      "address": 12,
      "type": "uint16",
      "access": "R",
      "description": "One bit per alarm, 1 = active; bit 5 is not used"
    },
    {
      "name": "EEPROM alarm - Setup parameters error",
      "group": "Alarms",
      "area": "input",
      "address": 12,
      "type": "bool",
      "bit": 0,
      "access": "R"
    },
    {
      "name": "EEPROM alarm - Calibration parameters error",
      "group": "Alarms",
      "area": "input",
      "address": 12,
      "type": "bool",
      "bit": 1,
      "access": "R"
    },
    {
      "name": "EEPROM alarm - Various parameters error",
      "group": "Alarms",
      "area": "input",
      "address": 12,
      "type": "bool",
      "bit": 2,
      "access": "R"
    },
    {
      "name": "EEPROM alarm - Erase EEPROM error",
      "group": "Alarms",
      "area": "input",
      "address": 12,
      "type": "bool",
      "bit": 3,
      "access": "R"
    },
    {
      "name": "EEPROM alarm - Parameter set error",
      "group": "Alarms",
      "area": "input",
      "address": 12,
      "type": "bool",
      "bit": 4,
      "access": "R"
    },
    {
      "name": "EEPROM alarm - Calibration error",
      "group": "Alarms",
      "area": "input",
      "address": 12,
      "type": "bool",
      "bit": 6,
      "access": "R"
    },
    {
      "name": "Output steps status",
      "group": "Steps",
      "area": "input",
      "address": 13,
      "type": "uint16",
      "access": "R",
      "description": "Which steps are inserted; the manual does not give the bit order"
    },
    {
      "name": "Step 1 reactive power",
      "group": "Steps",
      "area": "input",
      "address": 14,
      "type": "uint32",
      "unit": "var",
      "access": "R",
      "description": "Reactive power the step really delivers"
    },
    {
      "name": "Step 2 reactive power",
      "group": "Steps",
      "area": "input",
      "address": 16,
      "type": "uint32",
      "unit": "var",
      "access": "R",
      "description": "Reactive power the step really delivers"
    },
    {
      "name": "Step 3 reactive power",
      "group": "Steps",
      "area": "input",
      "address": 18,
      "type": "uint32",
      "unit": "var",
      "access": "R",
      "description": "Reactive power the step really delivers"
    },
    {
      "name": "Step 4 reactive power",
      "group": "Steps",
      "area": "input",
      "address": 20,
      "type": "uint32",
      "unit": "var",
      "access": "R",
      "description": "Reactive power the step really delivers"
    },
    {
      "name": "Step 5 reactive power",
      "group": "Steps",
      "area": "input",
      "address": 22,
      "type": "uint32",
      "unit": "var",
      "access": "R",
      "description": "Reactive power the step really delivers"
    },
    {
      "name": "Step 6 reactive power",
      "group": "Steps",
      "area": "input",
      "address": 24,
      "type": "uint32",
      "unit": "var",
      "access": "R",
      "description": "Reactive power the step really delivers"
    },
    {
      "name": "Step 7 reactive power",
      "group": "Steps",
      "area": "input",
      "address": 26,
      "type": "uint32",
      "unit": "var",
      "access": "R",
      "description": "Reactive power the step really delivers"
    },
    {
      "name": "Step 8 reactive power",
      "group": "Steps",
      "area": "input",
      "address": 28,
      "type": "uint32",
      "unit": "var",
      "access": "R",
      "description": "Reactive power the step really delivers"
    },
    {
      "name": "Step 9 reactive power",
      "group": "Steps",
      "area": "input",
      "address": 30,
      "type": "uint32",
      "unit": "var",
      "access": "R",
      "description": "Reactive power the step really delivers"
    },
    {
      "name": "Step 10 reactive power",
      "group": "Steps",
      "area": "input",
      "address": 32,
      "type": "uint32",
      "unit": "var",
      "access": "R",
      "description": "Reactive power the step really delivers"
    },
    {
      "name": "Step 11 reactive power",
      "group": "Steps",
      "area": "input",
      "address": 34,
      "type": "uint32",
      "unit": "var",
      "access": "R",
      "description": "Reactive power the step really delivers"
    },
    {
      "name": "Step 12 reactive power",
      "group": "Steps",
      "area": "input",
      "address": 36,
      "type": "uint32",
      "unit": "var",
      "access": "R",
      "description": "Reactive power the step really delivers"
    },
    {
      "name": "Temperature",
      "group": "Measurements",
      "area": "input",
      "address": 38,
      "type": "uint16",
      "scale": 0.1,
      "unit": "°C",
      "access": "R"
    },
    {
      "name": "Maximum number of steps",
      "group": "Info",
      "area": "input",
      "address": 39,
      "type": "uint16",
      "access": "R",
      "description": "4, 6, 8 or 12"
    },
    {
      "name": "Firmware checksum",
      "group": "Info",
      "area": "input",
      "address": 40,
      "type": "uint16",
      "access": "R"
    },
    {
      "name": "Quadrant",
      "group": "Measurements",
      "area": "input",
      "address": 41,
      "type": "uint16",
      "access": "R",
      "enum": {
        "1": "Inductive load",
        "2": "Inductive generator",
        "3": "Capacitive generator",
        "4": "Capacitive load"
      }
    },
    {
      "name": "Step 1 discharge time",
      "group": "Steps",
      "area": "input",
      "address": 42,
      "type": "uint16",
      "unit": "s",
      "access": "R",
      "description": "Seconds left before the capacitor is discharged"
    },
    {
      "name": "Step 2 discharge time",
      "group": "Steps",
      "area": "input",
      "address": 43,
      "type": "uint16",
      "unit": "s",
      "access": "R",
      "description": "Seconds left before the capacitor is discharged"
    },
    {
      "name": "Step 3 discharge time",
      "group": "Steps",
      "area": "input",
      "address": 44,
      "type": "uint16",
      "unit": "s",
      "access": "R",
      "description": "Seconds left before the capacitor is discharged"
    },
    {
      "name": "Step 4 discharge time",
      "group": "Steps",
      "area": "input",
      "address": 45,
      "type": "uint16",
      "unit": "s",
      "access": "R",
      "description": "Seconds left before the capacitor is discharged"
    },
    {
      "name": "Step 5 discharge time",
      "group": "Steps",
      "area": "input",
      "address": 46,
      "type": "uint16",
      "unit": "s",
      "access": "R",
      "description": "Seconds left before the capacitor is discharged"
    },
    {
      "name": "Step 6 discharge time",
      "group": "Steps",
      "area": "input",
      "address": 47,
      "type": "uint16",
      "unit": "s",
      "access": "R",
      "description": "Seconds left before the capacitor is discharged"
    },
    {
      "name": "Step 7 discharge time",
      "group": "Steps",
      "area": "input",
      "address": 48,
      "type": "uint16",
      "unit": "s",
      "access": "R",
      "description": "Seconds left before the capacitor is discharged"
    },
    {
      "name": "Step 8 discharge time",
      "group": "Steps",
      "area": "input",
      "address": 49,
      "type": "uint16",
      "unit": "s",
      "access": "R",
      "description": "Seconds left before the capacitor is discharged"
    },
    {
      "name": "Step 9 discharge time",
      "group": "Steps",
      "area": "input",
      "address": 50,
      "type": "uint16",
      "unit": "s",
      "access": "R",
      "description": "Seconds left before the capacitor is discharged"
    },
    {
      "name": "Step 10 discharge time",
      "group": "Steps",
      "area": "input",
      "address": 51,
      "type": "uint16",
      "unit": "s",
      "access": "R",
      "description": "Seconds left before the capacitor is discharged"
    },
    {
      "name": "Step 11 discharge time",
      "group": "Steps",
      "area": "input",
      "address": 52,
      "type": "uint16",
      "unit": "s",
      "access": "R",
      "description": "Seconds left before the capacitor is discharged"
    },
    {
      "name": "Step 12 discharge time",
      "group": "Steps",
      "area": "input",
      "address": 53,
      "type": "uint16",
      "unit": "s",
      "access": "R",
      "description": "Seconds left before the capacitor is discharged"
    },
    {
      "name": "Working hours",
      "group": "Statistics",
      "area": "input",
      "address": 54,
      "type": "uint32",
      "unit": "h",
      "access": "R",
      "description": "Total hours of operation"
    },
    {
      "name": "Maximum voltage measured",
      "group": "Statistics",
      "area": "input",
      "address": 56,
      "type": "uint16",
      "unit": "V",
      "access": "R"
    },
    {
      "name": "Maximum current measured",
      "group": "Statistics",
      "area": "input",
      "address": 57,
      "type": "uint32",
      "scale": 0.01,
      "unit": "A",
      "access": "R"
    },
    {
      "name": "Maximum THD measured",
      "group": "Statistics",
      "area": "input",
      "address": 59,
      "type": "uint16",
      "unit": "%",
      "access": "R"
    },
    {
      "name": "Maximum temperature measured",
      "group": "Statistics",
      "area": "input",
      "address": 60,
      "type": "uint16",
      "unit": "°C",
      "access": "R"
    },
    {
      "name": "Mode",
      "group": "Setup",
      "area": "holding",
      "address": 0,
      "type": "uint16",
      "access": "RW",
      "enum": {
        "0": "Manual",
        "1": "Auto"
      },
      "write_min": 0,
      "write_max": 1
    },
    {
      "name": "Manual step combination",
      "group": "Setup",
      "area": "holding",
      "address": 1,
      "type": "uint16",
      "access": "RW",
      "write_min": 0,
      "write_max": 4095,
      "description": "Steps to insert in manual mode: bit 0 = step 1 ... bit 11 = step 12"
    },
    {
      "name": "Manual step 1",
      "group": "Setup",
      "area": "holding",
      "address": 1,
      "type": "bool",
      "bit": 0,
      "access": "RW"
    },
    {
      "name": "Manual step 2",
      "group": "Setup",
      "area": "holding",
      "address": 1,
      "type": "bool",
      "bit": 1,
      "access": "RW"
    },
    {
      "name": "Manual step 3",
      "group": "Setup",
      "area": "holding",
      "address": 1,
      "type": "bool",
      "bit": 2,
      "access": "RW"
    },
    {
      "name": "Manual step 4",
      "group": "Setup",
      "area": "holding",
      "address": 1,
      "type": "bool",
      "bit": 3,
      "access": "RW"
    },
    {
      "name": "Manual step 5",
      "group": "Setup",
      "area": "holding",
      "address": 1,
      "type": "bool",
      "bit": 4,
      "access": "RW"
    },
    {
      "name": "Manual step 6",
      "group": "Setup",
      "area": "holding",
      "address": 1,
      "type": "bool",
      "bit": 5,
      "access": "RW"
    },
    {
      "name": "Manual step 7",
      "group": "Setup",
      "area": "holding",
      "address": 1,
      "type": "bool",
      "bit": 6,
      "access": "RW"
    },
    {
      "name": "Manual step 8",
      "group": "Setup",
      "area": "holding",
      "address": 1,
      "type": "bool",
      "bit": 7,
      "access": "RW"
    },
    {
      "name": "Manual step 9",
      "group": "Setup",
      "area": "holding",
      "address": 1,
      "type": "bool",
      "bit": 8,
      "access": "RW"
    },
    {
      "name": "Manual step 10",
      "group": "Setup",
      "area": "holding",
      "address": 1,
      "type": "bool",
      "bit": 9,
      "access": "RW"
    },
    {
      "name": "Manual step 11",
      "group": "Setup",
      "area": "holding",
      "address": 1,
      "type": "bool",
      "bit": 10,
      "access": "RW"
    },
    {
      "name": "Manual step 12",
      "group": "Setup",
      "area": "holding",
      "address": 1,
      "type": "bool",
      "bit": 11,
      "access": "RW"
    },
    {
      "name": "Desired cos",
      "group": "Setup",
      "area": "holding",
      "address": 2,
      "type": "int16",
      "scale": 0.01,
      "access": "RW",
      "write_min": -1.0,
      "write_max": 1.0,
      "description": "Target cos phi; negative is capacitive"
    },
    {
      "name": "Sensitivity",
      "group": "Setup",
      "area": "holding",
      "address": 3,
      "type": "uint16",
      "unit": "s/step",
      "access": "RW",
      "write_min": 5,
      "write_max": 600
    },
    {
      "name": "CT primary current",
      "group": "Setup",
      "area": "holding",
      "address": 4,
      "type": "uint16",
      "unit": "A",
      "access": "RW",
      "write_min": 0,
      "write_max": 10000,
      "description": "0 or 5 to 10000"
    },
    {
      "name": "Minimum step (limited)",
      "group": "Setup",
      "area": "holding",
      "address": 5,
      "type": "uint16",
      "scale": 10,
      "unit": "var",
      "access": "RW",
      "write_min": 10,
      "write_max": 300000,
      "description": "Limited range; use the 32-bit Minimum step register for the full value"
    },
    {
      "name": "Capacitor nominal voltage",
      "group": "Setup",
      "area": "holding",
      "address": 6,
      "type": "uint16",
      "unit": "V",
      "access": "RW",
      "write_min": 80,
      "write_max": 30000
    },
    {
      "name": "Step reconnection time",
      "group": "Setup",
      "area": "holding",
      "address": 7,
      "type": "uint16",
      "unit": "s",
      "access": "RW",
      "write_min": 1,
      "write_max": 600
    },
    {
      "name": "Step 1 value",
      "group": "Setup",
      "area": "holding",
      "address": 8,
      "type": "int32",
      "unit": "var",
      "access": "RW",
      "write_min": 0,
      "write_max": 10000000,
      "description": "Step size"
    },
    {
      "name": "Step 2 value",
      "group": "Setup",
      "area": "holding",
      "address": 10,
      "type": "int32",
      "unit": "var",
      "access": "RW",
      "write_min": 0,
      "write_max": 10000000,
      "description": "Step size"
    },
    {
      "name": "Step 3 value",
      "group": "Setup",
      "area": "holding",
      "address": 12,
      "type": "int32",
      "unit": "var",
      "access": "RW",
      "write_min": -1,
      "write_max": 10000000,
      "description": "Step size. Also -1 = fan when the controller has 4 steps",
      "enum": {
        "-1": "Fan"
      }
    },
    {
      "name": "Step 4 value",
      "group": "Setup",
      "area": "holding",
      "address": 14,
      "type": "int32",
      "unit": "var",
      "access": "RW",
      "write_min": -2,
      "write_max": 10000000,
      "description": "Step size. Also -1 = NCA and -2 = NOA when the controller has 4 steps",
      "enum": {
        "-2": "Normally open alarm",
        "-1": "Normally closed alarm"
      }
    },
    {
      "name": "Step 5 value",
      "group": "Setup",
      "area": "holding",
      "address": 16,
      "type": "int32",
      "unit": "var",
      "access": "RW",
      "write_min": -1,
      "write_max": 10000000,
      "description": "Step size. Also -1 = fan when the controller has 6 steps",
      "enum": {
        "-1": "Fan"
      }
    },
    {
      "name": "Step 6 value",
      "group": "Setup",
      "area": "holding",
      "address": 18,
      "type": "int32",
      "unit": "var",
      "access": "RW",
      "write_min": -2,
      "write_max": 10000000,
      "description": "Step size. Also -1 = NCA and -2 = NOA when the controller has 6 steps",
      "enum": {
        "-2": "Normally open alarm",
        "-1": "Normally closed alarm"
      }
    },
    {
      "name": "Step 7 value",
      "group": "Setup",
      "area": "holding",
      "address": 20,
      "type": "int32",
      "unit": "var",
      "access": "RW",
      "write_min": -1,
      "write_max": 10000000,
      "description": "Step size. Also -1 = fan when the controller has 8 steps",
      "enum": {
        "-1": "Fan"
      }
    },
    {
      "name": "Step 8 value",
      "group": "Setup",
      "area": "holding",
      "address": 22,
      "type": "int32",
      "unit": "var",
      "access": "RW",
      "write_min": -2,
      "write_max": 10000000,
      "description": "Step size. Also -1 = NCA and -2 = NOA when the controller has 8 steps",
      "enum": {
        "-2": "Normally open alarm",
        "-1": "Normally closed alarm"
      }
    },
    {
      "name": "Step 9 value",
      "group": "Setup",
      "area": "holding",
      "address": 24,
      "type": "int32",
      "unit": "var",
      "access": "RW",
      "write_min": 0,
      "write_max": 10000000,
      "description": "Step size"
    },
    {
      "name": "Step 10 value",
      "group": "Setup",
      "area": "holding",
      "address": 26,
      "type": "int32",
      "unit": "var",
      "access": "RW",
      "write_min": 0,
      "write_max": 10000000,
      "description": "Step size"
    },
    {
      "name": "Step 11 value",
      "group": "Setup",
      "area": "holding",
      "address": 28,
      "type": "int32",
      "unit": "var",
      "access": "RW",
      "write_min": -1,
      "write_max": 10000000,
      "description": "Step size. Also -1 = fan when the controller has 12 steps",
      "enum": {
        "-1": "Fan"
      }
    },
    {
      "name": "Step 12 value",
      "group": "Setup",
      "area": "holding",
      "address": 30,
      "type": "int32",
      "unit": "var",
      "access": "RW",
      "write_min": -2,
      "write_max": 10000000,
      "description": "Step size. Also -1 = NCA and -2 = NOA when the controller has 12 steps",
      "enum": {
        "-2": "Normally open alarm",
        "-1": "Normally closed alarm"
      }
    },
    {
      "name": "Mains connection",
      "group": "Setup",
      "area": "holding",
      "address": 32,
      "type": "uint16",
      "access": "RW",
      "enum": {
        "0": "Three-phase",
        "1": "Single-phase"
      },
      "write_min": 0,
      "write_max": 1
    },
    {
      "name": "CT current sense",
      "group": "Setup",
      "area": "holding",
      "address": 33,
      "type": "uint16",
      "access": "RW",
      "enum": {
        "1": "L1 direct",
        "2": "L1 inverse",
        "3": "L2 direct",
        "4": "L2 inverse",
        "5": "L3 direct",
        "6": "L3 inverse"
      },
      "write_min": 1,
      "write_max": 6
    },
    {
      "name": "Frequency",
      "group": "Setup",
      "area": "holding",
      "address": 34,
      "type": "uint16",
      "access": "RW",
      "enum": {
        "1": "50 Hz",
        "2": "60 Hz"
      },
      "write_min": 1,
      "write_max": 2
    },
    {
      "name": "Serial address",
      "group": "Setup",
      "area": "holding",
      "address": 35,
      "type": "uint16",
      "access": "RW",
      "write_min": 0,
      "write_max": 247,
      "description": "0 = off, 1 to 247"
    },
    {
      "name": "Temperature alarm relay",
      "group": "Setup",
      "area": "holding",
      "address": 36,
      "type": "uint16",
      "unit": "°C / °F",
      "access": "RW",
      "write_min": 0,
      "write_max": 158,
      "description": "0 = disabled, 35 to 158 = enabled with this threshold"
    },
    {
      "name": "Temperature scale",
      "group": "Setup",
      "area": "holding",
      "address": 37,
      "type": "uint16",
      "access": "RW",
      "enum": {
        "0": "°C",
        "1": "°F"
      },
      "write_min": 0,
      "write_max": 1
    },
    {
      "name": "THD alarm threshold",
      "group": "Setup",
      "area": "holding",
      "address": 38,
      "type": "uint16",
      "unit": "%",
      "access": "RW",
      "write_min": 5,
      "write_max": 200
    },
    {
      "name": "Relay alarm mask",
      "group": "Alarms",
      "area": "holding",
      "address": 39,
      "type": "uint16",
      "access": "RW",
      "write_min": 0,
      "write_max": 1023,
      "description": "Alarms that drive the alarm relay, 1 = enabled; bits 0 to 9, bit 8 not used. The manual does not name the bits"
    },
    {
      "name": "Step disconnection warning delay",
      "group": "Alarms",
      "area": "holding",
      "address": 40,
      "type": "uint16",
      "access": "RW",
      "write_min": 1,
      "write_max": 240,
      "description": "In the unit chosen by the alarm scale register"
    },
    {
      "name": "Fan relay off below",
      "group": "Setup",
      "area": "holding",
      "address": 41,
      "type": "uint16",
      "unit": "°C",
      "access": "RW",
      "write_min": 1,
      "write_max": 240,
      "description": "Minimum temperature threshold for disabling the fan relay"
    },
    {
      "name": "Fan relay on above",
      "group": "Setup",
      "area": "holding",
      "address": 42,
      "type": "uint16",
      "unit": "°C",
      "access": "RW",
      "write_min": 1,
      "write_max": 240,
      "description": "Maximum temperature threshold for activating the fan relay"
    },
    {
      "name": "Rated voltage",
      "group": "Setup",
      "area": "holding",
      "address": 43,
      "type": "uint16",
      "unit": "V",
      "access": "RW",
      "write_min": 220,
      "write_max": 440
    },
    {
      "name": "Fixed step number",
      "group": "Setup",
      "area": "holding",
      "address": 44,
      "type": "uint16",
      "access": "RW",
      "write_min": 0,
      "write_max": 12
    },
    {
      "name": "Fixed step type",
      "group": "Setup",
      "area": "holding",
      "address": 45,
      "type": "uint16",
      "access": "RW",
      "write_min": 0,
      "write_max": 1
    },
    {
      "name": "Serial protocol type",
      "group": "Setup",
      "area": "holding",
      "address": 46,
      "type": "uint16",
      "access": "RW",
      "write_min": 0,
      "write_max": 17,
      "description": "Protocol selector, 0 to 17; the manual does not say which value is Modbus"
    },
    {
      "name": "Alarm enable mask",
      "group": "Alarms",
      "area": "holding",
      "address": 47,
      "type": "uint16",
      "access": "RW",
      "write_min": 0,
      "write_max": 1023,
      "description": "Alarms that are enabled, 1 = enabled; bits 0 to 9, bit 8 not used. The manual does not name the bits"
    },
    {
      "name": "Alarm delay 1",
      "group": "Alarms",
      "area": "holding",
      "address": 48,
      "type": "uint16",
      "access": "RW",
      "write_min": 1,
      "write_max": 240,
      "description": "Alarm delay, in the unit chosen by the alarm scale register; the manual does not say which alarm it belongs to"
    },
    {
      "name": "Alarm delay 2",
      "group": "Alarms",
      "area": "holding",
      "address": 49,
      "type": "uint16",
      "access": "RW",
      "write_min": 1,
      "write_max": 240,
      "description": "Alarm delay, in the unit chosen by the alarm scale register; the manual does not say which alarm it belongs to"
    },
    {
      "name": "Alarm delay 3",
      "group": "Alarms",
      "area": "holding",
      "address": 50,
      "type": "uint16",
      "access": "RW",
      "write_min": 1,
      "write_max": 240,
      "description": "Alarm delay, in the unit chosen by the alarm scale register; the manual does not say which alarm it belongs to"
    },
    {
      "name": "Alarm delay 4",
      "group": "Alarms",
      "area": "holding",
      "address": 51,
      "type": "uint16",
      "access": "RW",
      "write_min": 1,
      "write_max": 240,
      "description": "Alarm delay, in the unit chosen by the alarm scale register; the manual does not say which alarm it belongs to"
    },
    {
      "name": "Alarm delay 5",
      "group": "Alarms",
      "area": "holding",
      "address": 52,
      "type": "uint16",
      "access": "RW",
      "write_min": 1,
      "write_max": 240,
      "description": "Alarm delay, in the unit chosen by the alarm scale register; the manual does not say which alarm it belongs to"
    },
    {
      "name": "Alarm delay 6",
      "group": "Alarms",
      "area": "holding",
      "address": 53,
      "type": "uint16",
      "access": "RW",
      "write_min": 1,
      "write_max": 240,
      "description": "Alarm delay, in the unit chosen by the alarm scale register; the manual does not say which alarm it belongs to"
    },
    {
      "name": "Alarm delay 7",
      "group": "Alarms",
      "area": "holding",
      "address": 54,
      "type": "uint16",
      "access": "RW",
      "write_min": 1,
      "write_max": 240,
      "description": "Alarm delay, in the unit chosen by the alarm scale register; the manual does not say which alarm it belongs to"
    },
    {
      "name": "Alarm delay 8",
      "group": "Alarms",
      "area": "holding",
      "address": 55,
      "type": "uint16",
      "access": "RW",
      "write_min": 1,
      "write_max": 600,
      "description": "Alarm delay, in the unit chosen by the alarm scale register; the manual does not say which alarm it belongs to"
    },
    {
      "name": "Alarm scale mask",
      "group": "Alarms",
      "area": "holding",
      "address": 56,
      "type": "uint16",
      "access": "RW",
      "write_min": 0,
      "write_max": 1023,
      "description": "Unit of the alarm delays, bit by bit: 0 = seconds, 1 = minutes; bits 0 to 9, bit 8 not used"
    },
    {
      "name": "Alarm step disconnection mask",
      "group": "Alarms",
      "area": "holding",
      "address": 57,
      "type": "uint16",
      "access": "RW",
      "write_min": 0,
      "write_max": 1023,
      "description": "Alarms that disconnect the steps, 1 = enabled; bits 0 to 9, bit 8 not used. The manual does not name the bits"
    },
    {
      "name": "Step 1 insertions",
      "group": "Statistics",
      "area": "holding",
      "address": 58,
      "type": "uint32",
      "access": "RW",
      "description": "Number of times the step was inserted"
    },
    {
      "name": "Step 2 insertions",
      "group": "Statistics",
      "area": "holding",
      "address": 60,
      "type": "uint32",
      "access": "RW",
      "description": "Number of times the step was inserted"
    },
    {
      "name": "Step 3 insertions",
      "group": "Statistics",
      "area": "holding",
      "address": 62,
      "type": "uint32",
      "access": "RW",
      "description": "Number of times the step was inserted"
    },
    {
      "name": "Step 4 insertions",
      "group": "Statistics",
      "area": "holding",
      "address": 64,
      "type": "uint32",
      "access": "RW",
      "description": "Number of times the step was inserted"
    },
    {
      "name": "Step 5 insertions",
      "group": "Statistics",
      "area": "holding",
      "address": 66,
      "type": "uint32",
      "access": "RW",
      "description": "Number of times the step was inserted"
    },
    {
      "name": "Step 6 insertions",
      "group": "Statistics",
      "area": "holding",
      "address": 68,
      "type": "uint32",
      "access": "RW",
      "description": "Number of times the step was inserted"
    },
    {
      "name": "Step 7 insertions",
      "group": "Statistics",
      "area": "holding",
      "address": 70,
      "type": "uint32",
      "access": "RW",
      "description": "Number of times the step was inserted"
    },
    {
      "name": "Step 8 insertions",
      "group": "Statistics",
      "area": "holding",
      "address": 72,
      "type": "uint32",
      "access": "RW",
      "description": "Number of times the step was inserted"
    },
    {
      "name": "Step 9 insertions",
      "group": "Statistics",
      "area": "holding",
      "address": 74,
      "type": "uint32",
      "access": "RW",
      "description": "Number of times the step was inserted"
    },
    {
      "name": "Step 10 insertions",
      "group": "Statistics",
      "area": "holding",
      "address": 76,
      "type": "uint32",
      "access": "RW",
      "description": "Number of times the step was inserted"
    },
    {
      "name": "Step 11 insertions",
      "group": "Statistics",
      "area": "holding",
      "address": 78,
      "type": "uint32",
      "access": "RW",
      "description": "Number of times the step was inserted"
    },
    {
      "name": "Step 12 insertions",
      "group": "Statistics",
      "area": "holding",
      "address": 80,
      "type": "uint32",
      "access": "RW",
      "description": "Number of times the step was inserted"
    },
    {
      "name": "Step 1 insertion time",
      "group": "Statistics",
      "area": "holding",
      "address": 82,
      "type": "uint32",
      "unit": "s",
      "access": "RW"
    },
    {
      "name": "Step 2 insertion time",
      "group": "Statistics",
      "area": "holding",
      "address": 84,
      "type": "uint32",
      "unit": "s",
      "access": "RW"
    },
    {
      "name": "Step 3 insertion time",
      "group": "Statistics",
      "area": "holding",
      "address": 86,
      "type": "uint32",
      "unit": "s",
      "access": "RW"
    },
    {
      "name": "Step 4 insertion time",
      "group": "Statistics",
      "area": "holding",
      "address": 88,
      "type": "uint32",
      "unit": "s",
      "access": "RW"
    },
    {
      "name": "Step 5 insertion time",
      "group": "Statistics",
      "area": "holding",
      "address": 90,
      "type": "uint32",
      "unit": "s",
      "access": "RW"
    },
    {
      "name": "Step 6 insertion time",
      "group": "Statistics",
      "area": "holding",
      "address": 92,
      "type": "uint32",
      "unit": "s",
      "access": "RW"
    },
    {
      "name": "Step 7 insertion time",
      "group": "Statistics",
      "area": "holding",
      "address": 94,
      "type": "uint32",
      "unit": "s",
      "access": "RW"
    },
    {
      "name": "Step 8 insertion time",
      "group": "Statistics",
      "area": "holding",
      "address": 96,
      "type": "uint32",
      "unit": "s",
      "access": "RW"
    },
    {
      "name": "Step 9 insertion time",
      "group": "Statistics",
      "area": "holding",
      "address": 98,
      "type": "uint32",
      "unit": "s",
      "access": "RW"
    },
    {
      "name": "Step 10 insertion time",
      "group": "Statistics",
      "area": "holding",
      "address": 100,
      "type": "uint32",
      "unit": "s",
      "access": "RW"
    },
    {
      "name": "Step 11 insertion time",
      "group": "Statistics",
      "area": "holding",
      "address": 102,
      "type": "uint32",
      "unit": "s",
      "access": "RW"
    },
    {
      "name": "Step 12 insertion time",
      "group": "Statistics",
      "area": "holding",
      "address": 104,
      "type": "uint32",
      "unit": "s",
      "access": "RW"
    },
    {
      "name": "Anti-hunting threshold",
      "group": "Setup",
      "area": "holding",
      "address": 106,
      "type": "int16",
      "scale": 0.01,
      "access": "RW",
      "write_min": -0.95,
      "write_max": 0.9,
      "description": "Negative is capacitive. The manual lists it as unsigned but gives a negative range"
    },
    {
      "name": "VT ratio",
      "group": "Setup",
      "area": "holding",
      "address": 107,
      "type": "uint16",
      "scale": 0.01,
      "access": "RW",
      "write_min": 0.4,
      "write_max": 100
    },
    {
      "name": "Minimum step",
      "group": "Setup",
      "area": "holding",
      "address": 108,
      "type": "uint32",
      "unit": "var",
      "access": "RW",
      "write_min": 1,
      "write_max": 10000000
    },
    {
      "name": "Minimum cos alarm threshold",
      "group": "Alarms",
      "area": "holding",
      "address": 110,
      "type": "uint16",
      "scale": 0.01,
      "access": "RW",
      "write_min": 0.5,
      "write_max": 0.95
    },
    {
      "name": "Alarm delay 9",
      "group": "Alarms",
      "area": "holding",
      "address": 111,
      "type": "uint16",
      "access": "RW",
      "write_min": 1,
      "write_max": 240,
      "description": "Alarm delay, in the unit chosen by the alarm scale register; the manual does not say which alarm it belongs to"
    },
    {
      "name": "Delay between steps",
      "group": "Setup",
      "area": "holding",
      "address": 112,
      "type": "uint16",
      "scale": 0.1,
      "unit": "s",
      "access": "RW",
      "write_min": 1,
      "write_max": 5
    }
  ]
}
