{
  "$schema": "https://raw.githubusercontent.com/nobrega8/mbmap-library/main/schema/mbmap-2.schema.json",
  "mbmap": 2,
  "model": "MasterTemp",
  "models": [
    "MasterTemp"
  ],
  "description": "Transformer temperature monitor (ANSI 49I/49) with oil and winding temperatures, thermal image, fan groups, analog outputs and Modbus RTU",
  "vendor": "Electron do Brasil",
  "vendor_website": "electron.com.br",
  "revision": 1,
  "revised": "2026-11-10",
  "source": "Electron do Brasil, Mapa de Registradores MODBUS RTU, MasterTemp, v7.0",
  "sources": [
    {
      "title": "Mapa de Registradores MODBUS RTU, MasterTemp",
      "version": "7.0",
      "url": "https://electron.com.br/api/downloads/file/mapa_de_registradores_modbus_rtu_mastertemp_v7-0.pdf",
      "note": "linked in issue #134"
    }
  ],
  "notes": [
    "All registers are holding registers. The document numbers them from 1 and calls the type Holding Register (40.000), so the addresses are 1-based (address on the wire = number minus 1). The document does not say so explicitly: if a read fails, try address_base 0.",
    "The document allows 2400 to 57600 bps with automatic baud rate detection, 8 data bits, 1 stop bit and no, even or odd parity. It gives no default baud rate or slave address: 9600 N and 1 are placeholders. Register 92 holds the parity setting.",
    "Temperatures have the scale -1000:10 in the document. It is read here as: value = raw / 10 - 100, which fits the stated range of -50.0 to 250.0 with raw values from 500 to 3500. This reading is not confirmed by the document: check one value against the display.",
    "Other scales in the document are written as 1:N and are read as raw / N. Registers whose scale column is unclear are given as raw values.",
    "The document names the alarm temperatures of registers 2 to 4 'sensor 1 to 3' and the shutdown and fan temperatures 'winding 1 to 3'; the names here follow the document.",
    "Registers 15, 20, 46, 47, 49 are not in the document. Registers 76, 101, 108 to 118 and 140 to 149 are left out because their descriptions in the document are repeated, garbled or inconsistent.",
    "Registers 5, 10, 45, 48, 50, 52, 75 and 79 are bit fields, one entry per bit. The command bits of register 45 are write-only.",
    "Written from the manufacturer's document; not tested on a device."
  ],
  "protocol": "rtu",
  "unit_id": 1,
  "baudrate": 9600,
  "parity": "N",
  "databits": 8,
  "stopbits": 1,
  "address_base": 1,
  "byte_order": "big",
  "word_order": "big",
  "x_status": "official",
  "enums": {
    "analog_range": {"0": "0 to 1 mA", "1": "0 to 5 mA", "2": "0 to 10 mA", "3": "0 to 20 mA", "4": "4 to 20 mA"},
    "fan_rotation": {"0": "Off", "1": "Rotate groups 1 and 2", "2": "Rotate groups 1, 2 and 3", "3": "All groups together"},
    "reading_mode": {"0": "BKP", "1": "INDP"},
    "enabled": {"0": "Disabled", "1": "Enabled"},
    "analog_source": {"0": "Off", "1": "Temperature sensor 1", "2": "Temperature sensor 2", "3": "Temperature winding 1", "4": "Temperature winding 2", "5": "Temperature winding 3", "6": "Primary current winding 1", "7": "Primary current winding 2", "8": "Primary current winding 3", "9": "Secondary current winding 1", "10": "Secondary current winding 2", "11": "Secondary current winding 3", "12": "Loading winding 1", "13": "Loading winding 2", "14": "Loading winding 3", "15": "Temperature loading"},
    "register_map": {"0": "Electron map", "1": "TT map"},
    "protocol": {"0": "DNP3", "1": "Modbus RTU"},
    "parity": {"0": "No parity", "1": "Even", "2": "Odd"},
    "exercise_period": {"0": "Weekly", "1": "Daily"},
    "weekday": {"0": "Sunday", "1": "Monday", "2": "Tuesday", "3": "Wednesday", "4": "Thursday", "5": "Friday", "6": "Saturday"},
    "insulation_class": {"0": "Kraft paper, class 55", "1": "Thermally upgraded paper, class 65", "2": "Nomex paper, class 95"},
    "display_variable": {"0": "Temperature sensor 1", "1": "Temperature sensor 2", "2": "Temperature winding 1", "3": "Temperature winding 2", "4": "Temperature winding 3", "5": "Final gradient winding 1", "6": "Final gradient winding 2", "7": "Final gradient winding 3", "8": "Loading winding 1", "9": "Loading winding 2", "10": "Loading winding 3", "11": "Secondary current winding 1", "12": "Primary current winding 1", "13": "Secondary current winding 2", "14": "Primary current winding 2", "15": "Secondary current winding 3", "16": "Primary current winding 3"},
    "display_colours": {"0": "Dark text on white", "1": "White text on dark"}
  },
  "registers": [
    {"name": "Alarm temperature oil sensor", "group": "Settings", "area": "holding", "address": 1, "type": "uint16", "scale": 0.1, "offset": -100, "unit": "°C", "access": "RW", "write_min": -50, "write_max": 250},
    {"name": "Alarm temperature sensor 1", "group": "Settings", "area": "holding", "address": 2, "type": "uint16", "scale": 0.1, "offset": -100, "unit": "°C", "access": "RW", "write_min": -50, "write_max": 250},
    {"name": "Alarm temperature sensor 2", "group": "Settings", "area": "holding", "address": 3, "type": "uint16", "scale": 0.1, "offset": -100, "unit": "°C", "access": "RW", "write_min": -50, "write_max": 250},
    {"name": "Alarm temperature sensor 3", "group": "Settings", "area": "holding", "address": 4, "type": "uint16", "scale": 0.1, "offset": -100, "unit": "°C", "access": "RW", "write_min": -50, "write_max": 250},
    {"name": "Shutdown by loading enabled", "group": "Settings", "area": "holding", "address": 5, "type": "bool", "bit": 0, "access": "RW"},
    {"name": "Shutdown temperature oil sensor", "group": "Settings", "area": "holding", "address": 6, "type": "uint16", "scale": 0.1, "offset": -100, "unit": "°C", "access": "RW", "write_min": -50, "write_max": 250},
    {"name": "Shutdown temperature winding 1", "group": "Settings", "area": "holding", "address": 7, "type": "uint16", "scale": 0.1, "offset": -100, "unit": "°C", "access": "RW", "write_min": -50, "write_max": 250},
    {"name": "Shutdown temperature winding 2", "group": "Settings", "area": "holding", "address": 8, "type": "uint16", "scale": 0.1, "offset": -100, "unit": "°C", "access": "RW", "write_min": -50, "write_max": 250},
    {"name": "Shutdown temperature winding 3", "group": "Settings", "area": "holding", "address": 9, "type": "uint16", "scale": 0.1, "offset": -100, "unit": "°C", "access": "RW", "write_min": -50, "write_max": 250},
    {"name": "Fan start by loading enabled", "group": "Settings", "area": "holding", "address": 10, "type": "bool", "bit": 0, "access": "RW"},
    {"name": "Fan group 1 start temperature oil sensor", "group": "Settings", "area": "holding", "address": 11, "type": "uint16", "scale": 0.1, "offset": -100, "unit": "°C", "access": "RW", "write_min": -50, "write_max": 250},
    {"name": "Fan group 1 start temperature winding 1", "group": "Settings", "area": "holding", "address": 12, "type": "uint16", "scale": 0.1, "offset": -100, "unit": "°C", "access": "RW", "write_min": -50, "write_max": 250},
    {"name": "Fan group 1 start temperature winding 2", "group": "Settings", "area": "holding", "address": 13, "type": "uint16", "scale": 0.1, "offset": -100, "unit": "°C", "access": "RW", "write_min": -50, "write_max": 250},
    {"name": "Fan group 1 start temperature winding 3", "group": "Settings", "area": "holding", "address": 14, "type": "uint16", "scale": 0.1, "offset": -100, "unit": "°C", "access": "RW", "write_min": -50, "write_max": 250},
    {"name": "Fan group 2 start temperature oil sensor", "group": "Settings", "area": "holding", "address": 16, "type": "uint16", "scale": 0.1, "offset": -100, "unit": "°C", "access": "RW", "write_min": -50, "write_max": 250},
    {"name": "Fan group 2 start temperature winding 1", "group": "Settings", "area": "holding", "address": 17, "type": "uint16", "scale": 0.1, "offset": -100, "unit": "°C", "access": "RW", "write_min": -50, "write_max": 250},
    {"name": "Fan group 2 start temperature winding 2", "group": "Settings", "area": "holding", "address": 18, "type": "uint16", "scale": 0.1, "offset": -100, "unit": "°C", "access": "RW", "write_min": -50, "write_max": 250},
    {"name": "Fan group 2 start temperature winding 3", "group": "Settings", "area": "holding", "address": 19, "type": "uint16", "scale": 0.1, "offset": -100, "unit": "°C", "access": "RW", "write_min": -50, "write_max": 250},
    {"name": "Fan group 3 start temperature oil sensor", "group": "Settings", "area": "holding", "address": 21, "type": "uint16", "scale": 0.1, "offset": -100, "unit": "°C", "access": "RW", "write_min": -50, "write_max": 250},
    {"name": "Fan group 3 start temperature winding 1", "group": "Settings", "area": "holding", "address": 22, "type": "uint16", "scale": 0.1, "offset": -100, "unit": "°C", "access": "RW", "write_min": -50, "write_max": 250},
    {"name": "Fan group 3 start temperature winding 2", "group": "Settings", "area": "holding", "address": 23, "type": "uint16", "scale": 0.1, "offset": -100, "unit": "°C", "access": "RW", "write_min": -50, "write_max": 250},
    {"name": "Fan group 3 start temperature winding 3", "group": "Settings", "area": "holding", "address": 24, "type": "uint16", "scale": 0.1, "offset": -100, "unit": "°C", "access": "RW", "write_min": -50, "write_max": 250},
    {"name": "Alarm reset hysteresis", "group": "Settings", "area": "holding", "address": 25, "type": "uint16", "access": "RW", "write_min": 0, "write_max": 100, "description": "Range 0 to 100; the scale column in the document is not clear, so the value is raw"},
    {"name": "Fan reset hysteresis", "group": "Settings", "area": "holding", "address": 26, "type": "uint16", "access": "RW", "write_min": 0, "write_max": 100, "description": "Range 0 to 100; the scale column in the document is not clear, so the value is raw"},
    {"name": "Shutdown delay", "group": "Settings", "area": "holding", "address": 27, "type": "uint16", "unit": "min", "access": "RW", "write_min": 0, "write_max": 20},
    {"name": "Temperature gradient winding 1", "group": "Settings", "area": "holding", "address": 28, "type": "uint16", "scale": 0.1, "access": "RW", "write_min": 0, "write_max": 100, "description": "Winding-to-oil gradient setting; the document gives no unit"},
    {"name": "Temperature gradient winding 2", "group": "Settings", "area": "holding", "address": 29, "type": "uint16", "scale": 0.1, "access": "RW", "write_min": 0, "write_max": 100, "description": "Winding-to-oil gradient setting; the document gives no unit"},
    {"name": "Temperature gradient winding 3", "group": "Settings", "area": "holding", "address": 30, "type": "uint16", "scale": 0.1, "access": "RW", "write_min": 0, "write_max": 100, "description": "Winding-to-oil gradient setting; the document gives no unit"},
    {"name": "Thermal inertia time constant winding 1", "group": "Settings", "area": "holding", "address": 31, "type": "uint16", "access": "RW", "write_min": 0, "write_max": 300, "description": "Range 0 to 300; the document gives no unit"},
    {"name": "Thermal inertia time constant winding 2", "group": "Settings", "area": "holding", "address": 32, "type": "uint16", "access": "RW", "write_min": 0, "write_max": 300, "description": "Range 0 to 300; the document gives no unit"},
    {"name": "Thermal inertia time constant winding 3", "group": "Settings", "area": "holding", "address": 33, "type": "uint16", "access": "RW", "write_min": 0, "write_max": 300, "description": "Range 0 to 300; the document gives no unit"},
    {"name": "Hot-spot factor HS+", "group": "Settings", "area": "holding", "address": 34, "type": "uint16", "scale": 0.1, "access": "RW", "write_min": 0, "write_max": 20},
    {"name": "Hot-spot factor HS*", "group": "Settings", "area": "holding", "address": 35, "type": "uint16", "scale": 0.1, "access": "RW", "write_min": 1, "write_max": 1.5},
    {"name": "Winding exponent 2M", "group": "Settings", "area": "holding", "address": 36, "type": "uint16", "scale": 0.1, "access": "RW", "write_min": 1, "write_max": 2},
    {"name": "Rated current winding 1", "group": "Settings", "area": "holding", "address": 37, "type": "uint16", "access": "RW", "description": "Range 1 to 9999; the document's scale column (1000:10) is not clear, so the value is raw"},
    {"name": "Rated current winding 2", "group": "Settings", "area": "holding", "address": 38, "type": "uint16", "access": "RW", "description": "Range 1 to 9999; the document's scale column (1000:10) is not clear, so the value is raw"},
    {"name": "Rated current winding 3", "group": "Settings", "area": "holding", "address": 39, "type": "uint16", "access": "RW", "description": "Range 1 to 9999; the document's scale column (1000:10) is not clear, so the value is raw"},
    {"name": "Current transformer ratio CT1", "group": "Settings", "area": "holding", "address": 40, "type": "uint16", "access": "RW", "write_min": 1, "write_max": 9999},
    {"name": "Current transformer ratio CT2", "group": "Settings", "area": "holding", "address": 41, "type": "uint16", "access": "RW", "write_min": 1, "write_max": 9999},
    {"name": "Current transformer ratio CT3", "group": "Settings", "area": "holding", "address": 42, "type": "uint16", "access": "RW", "write_min": 1, "write_max": 9999},
    {"name": "Fan group rotation", "group": "Settings", "area": "holding", "address": 43, "type": "uint16", "access": "RW", "write_min": 0, "write_max": 3, "enum": "fan_rotation"},
    {"name": "Analog output range", "group": "Settings", "area": "holding", "address": 44, "type": "uint16", "access": "RW", "write_min": 0, "write_max": 4, "enum": "analog_range", "description": "The document labels every value \"when 0\"; the value is the index of the range"},
    {"name": "Reset maximum temperature sensor 1", "group": "Commands", "area": "holding", "address": 45, "type": "bool", "bit": 0, "access": "W", "description": "Write 1"},
    {"name": "Reset maximum temperature sensor 2", "group": "Commands", "area": "holding", "address": 45, "type": "bool", "bit": 1, "access": "W", "description": "Write 1"},
    {"name": "Reset maximum temperature winding 1", "group": "Commands", "area": "holding", "address": 45, "type": "bool", "bit": 2, "access": "W", "description": "Write 1"},
    {"name": "Reset maximum temperature winding 2", "group": "Commands", "area": "holding", "address": 45, "type": "bool", "bit": 3, "access": "W", "description": "Write 1"},
    {"name": "Reset maximum temperature winding 3", "group": "Commands", "area": "holding", "address": 45, "type": "bool", "bit": 4, "access": "W", "description": "Write 1"},
    {"name": "Reset CPU", "group": "Commands", "area": "holding", "address": 45, "type": "bool", "bit": 5, "access": "W", "description": "Write 1"},
    {"name": "Forced fan group 1 on", "group": "Commands", "area": "holding", "address": 48, "type": "bool", "bit": 0, "access": "RW", "description": "0 = automatic, 1 = forced on"},
    {"name": "Forced fan group 2 on", "group": "Commands", "area": "holding", "address": 48, "type": "bool", "bit": 1, "access": "RW", "description": "0 = automatic, 1 = forced on"},
    {"name": "Forced fan group 3 on", "group": "Commands", "area": "holding", "address": 48, "type": "bool", "bit": 2, "access": "RW", "description": "0 = automatic, 1 = forced on"},
    {"name": "Winding reading mode", "group": "Settings", "area": "holding", "address": 50, "type": "bool", "bit": 0, "access": "RW", "enum": "reading_mode", "description": "The document does not explain BKP and INDP"},
    {"name": "Temperature differential MDTE", "group": "Settings", "area": "holding", "address": 51, "type": "uint16", "scale": 0.1, "access": "RW", "write_min": 0, "write_max": 10},
    {"name": "Winding 1 enabled", "group": "Settings", "area": "holding", "address": 52, "type": "bool", "bit": 2, "access": "RW"},
    {"name": "Winding 2 enabled", "group": "Settings", "area": "holding", "address": 52, "type": "bool", "bit": 3, "access": "RW"},
    {"name": "Winding 3 enabled", "group": "Settings", "area": "holding", "address": 52, "type": "bool", "bit": 4, "access": "RW"},
    {"name": "Temperature sensor 1", "group": "Measurements", "area": "holding", "address": 53, "type": "uint16", "scale": 0.1, "offset": -100, "unit": "°C", "access": "R", "description": "Document label: current temperature of sensor 1"},
    {"name": "Temperature sensor 2", "group": "Measurements", "area": "holding", "address": 54, "type": "uint16", "scale": 0.1, "offset": -100, "unit": "°C", "access": "R"},
    {"name": "Temperature winding 1", "group": "Measurements", "area": "holding", "address": 55, "type": "uint16", "scale": 0.1, "offset": -100, "unit": "°C", "access": "R"},
    {"name": "Temperature winding 2", "group": "Measurements", "area": "holding", "address": 56, "type": "uint16", "scale": 0.1, "offset": -100, "unit": "°C", "access": "R"},
    {"name": "Temperature winding 3", "group": "Measurements", "area": "holding", "address": 57, "type": "uint16", "scale": 0.1, "offset": -100, "unit": "°C", "access": "R"},
    {"name": "Maximum temperature sensor 1", "group": "Measurements", "area": "holding", "address": 58, "type": "uint16", "scale": 0.1, "offset": -100, "unit": "°C", "access": "R"},
    {"name": "Maximum temperature sensor 2", "group": "Measurements", "area": "holding", "address": 59, "type": "uint16", "scale": 0.1, "offset": -100, "unit": "°C", "access": "R"},
    {"name": "Maximum temperature winding 1", "group": "Measurements", "area": "holding", "address": 60, "type": "uint16", "scale": 0.1, "offset": -100, "unit": "°C", "access": "R"},
    {"name": "Maximum temperature winding 2", "group": "Measurements", "area": "holding", "address": 61, "type": "uint16", "scale": 0.1, "offset": -100, "unit": "°C", "access": "R"},
    {"name": "Maximum temperature winding 3", "group": "Measurements", "area": "holding", "address": 62, "type": "uint16", "scale": 0.1, "offset": -100, "unit": "°C", "access": "R"},
    {"name": "Final temperature gradient winding 1", "group": "Measurements", "area": "holding", "address": 63, "type": "uint16", "scale": 0.1, "access": "R"},
    {"name": "Final temperature gradient winding 2", "group": "Measurements", "area": "holding", "address": 64, "type": "uint16", "scale": 0.1, "access": "R"},
    {"name": "Final temperature gradient winding 3", "group": "Measurements", "area": "holding", "address": 65, "type": "uint16", "scale": 0.1, "access": "R"},
    {"name": "Loading winding 1", "group": "Measurements", "area": "holding", "address": 66, "type": "uint16", "scale": 0.1, "unit": "%", "access": "R"},
    {"name": "Loading winding 2", "group": "Measurements", "area": "holding", "address": 67, "type": "uint16", "scale": 0.1, "unit": "%", "access": "R"},
    {"name": "Loading winding 3", "group": "Measurements", "area": "holding", "address": 68, "type": "uint16", "scale": 0.1, "unit": "%", "access": "R"},
    {"name": "Thermal image CT1 secondary current", "group": "Measurements", "area": "holding", "address": 69, "type": "uint16", "scale": 0.01, "unit": "A", "access": "R"},
    {"name": "Thermal image CT2 secondary current", "group": "Measurements", "area": "holding", "address": 70, "type": "uint16", "scale": 0.01, "unit": "A", "access": "R"},
    {"name": "Thermal image CT3 secondary current", "group": "Measurements", "area": "holding", "address": 71, "type": "uint16", "scale": 0.01, "unit": "A", "access": "R"},
    {"name": "Thermal image CT1 primary current", "group": "Measurements", "area": "holding", "address": 72, "type": "uint16", "scale": 0.01, "unit": "A", "access": "R"},
    {"name": "Thermal image CT2 primary current", "group": "Measurements", "area": "holding", "address": 73, "type": "uint16", "scale": 0.01, "unit": "A", "access": "R"},
    {"name": "Thermal image CT3 primary current", "group": "Measurements", "area": "holding", "address": 74, "type": "uint16", "scale": 0.01, "unit": "A", "access": "R"},
    {"name": "Auxiliary relay 1 enabled", "group": "Settings", "area": "holding", "address": 75, "type": "bool", "bit": 0, "access": "RW"},
    {"name": "Auxiliary relay 1 triggered by sensor 1", "group": "Settings", "area": "holding", "address": 75, "type": "bool", "bit": 1, "access": "RW"},
    {"name": "Auxiliary relay 1 triggered by sensor 2", "group": "Settings", "area": "holding", "address": 75, "type": "bool", "bit": 2, "access": "RW"},
    {"name": "Auxiliary relay 1 triggered by winding 1", "group": "Settings", "area": "holding", "address": 75, "type": "bool", "bit": 3, "access": "RW"},
    {"name": "Auxiliary relay 1 triggered by winding 2", "group": "Settings", "area": "holding", "address": 75, "type": "bool", "bit": 4, "access": "RW"},
    {"name": "Auxiliary relay 1 triggered by winding 3", "group": "Settings", "area": "holding", "address": 75, "type": "bool", "bit": 5, "access": "RW"},
    {"name": "Auxiliary relay 1 triggered by temperature differential", "group": "Settings", "area": "holding", "address": 75, "type": "bool", "bit": 6, "access": "RW"},
    {"name": "Auxiliary relay 1 triggered by cooler maintenance", "group": "Settings", "area": "holding", "address": 75, "type": "bool", "bit": 7, "access": "RW"},
    {"name": "Auxiliary relay 1 triggered by winding 1 life-loss alarm", "group": "Settings", "area": "holding", "address": 75, "type": "bool", "bit": 8, "access": "RW"},
    {"name": "Auxiliary relay 1 triggered by winding 2 life-loss alarm", "group": "Settings", "area": "holding", "address": 75, "type": "bool", "bit": 9, "access": "RW"},
    {"name": "Auxiliary relay 1 triggered by winding 3 life-loss alarm", "group": "Settings", "area": "holding", "address": 75, "type": "bool", "bit": 10, "access": "RW"},
    {"name": "Auxiliary relay hysteresis", "group": "Settings", "area": "holding", "address": 77, "type": "uint16", "scale": 0.1, "access": "RW", "write_min": 0, "write_max": 10},
    {"name": "Auxiliary relay delay enabled", "group": "Settings", "area": "holding", "address": 78, "type": "uint16", "access": "RW", "write_min": 0, "write_max": 1, "enum": "enabled"},
    {"name": "Oil alarm reset manual", "group": "Settings", "area": "holding", "address": 79, "type": "bool", "bit": 0, "access": "RW", "description": "0 = automatic reset, 1 = manual reset"},
    {"name": "Oil shutdown reset manual", "group": "Settings", "area": "holding", "address": 79, "type": "bool", "bit": 1, "access": "RW", "description": "0 = automatic reset, 1 = manual reset"},
    {"name": "Winding 1 alarm reset manual", "group": "Settings", "area": "holding", "address": 79, "type": "bool", "bit": 2, "access": "RW", "description": "0 = automatic reset, 1 = manual reset"},
    {"name": "Winding 1 shutdown reset manual", "group": "Settings", "area": "holding", "address": 79, "type": "bool", "bit": 3, "access": "RW", "description": "0 = automatic reset, 1 = manual reset"},
    {"name": "Winding 2 alarm reset manual", "group": "Settings", "area": "holding", "address": 79, "type": "bool", "bit": 4, "access": "RW", "description": "0 = automatic reset, 1 = manual reset"},
    {"name": "Winding 2 shutdown reset manual", "group": "Settings", "area": "holding", "address": 79, "type": "bool", "bit": 5, "access": "RW", "description": "0 = automatic reset, 1 = manual reset"},
    {"name": "Winding 3 alarm reset manual", "group": "Settings", "area": "holding", "address": 79, "type": "bool", "bit": 6, "access": "RW", "description": "0 = automatic reset, 1 = manual reset"},
    {"name": "Winding 3 shutdown reset manual", "group": "Settings", "area": "holding", "address": 79, "type": "bool", "bit": 7, "access": "RW", "description": "0 = automatic reset, 1 = manual reset"},
    {"name": "Fault relay reset manual", "group": "Settings", "area": "holding", "address": 79, "type": "bool", "bit": 8, "access": "RW", "description": "0 = automatic reset, 1 = manual reset"},
    {"name": "Analog output 1 source", "group": "Analog output", "area": "holding", "address": 80, "type": "uint16", "access": "RW", "write_min": 0, "write_max": 15, "enum": "analog_source"},
    {"name": "Analog output 2 source", "group": "Analog output", "area": "holding", "address": 81, "type": "uint16", "access": "RW", "write_min": 0, "write_max": 15, "enum": "analog_source"},
    {"name": "Analog output 3 source", "group": "Analog output", "area": "holding", "address": 82, "type": "uint16", "access": "RW", "write_min": 0, "write_max": 15, "enum": "analog_source"},
    {"name": "Analog output 4 source", "group": "Analog output", "area": "holding", "address": 83, "type": "uint16", "access": "RW", "write_min": 0, "write_max": 15, "enum": "analog_source"},
    {"name": "Analog output 5 source", "group": "Analog output", "area": "holding", "address": 84, "type": "uint16", "access": "RW", "write_min": 0, "write_max": 15, "enum": "analog_source"},
    {"name": "RS-485 register map", "group": "Settings", "area": "holding", "address": 85, "type": "uint16", "access": "RW", "enum": "register_map", "description": "Selects the Electron map or the TT map; this file describes the Electron map"},
    {"name": "Aging alarm winding 1", "group": "Settings", "area": "holding", "address": 86, "type": "uint16", "scale": 0.01, "access": "RW", "write_min": 1, "write_max": 300},
    {"name": "Aging alarm winding 2", "group": "Settings", "area": "holding", "address": 87, "type": "uint16", "scale": 0.01, "access": "RW", "write_min": 1, "write_max": 300},
    {"name": "Aging alarm winding 3", "group": "Settings", "area": "holding", "address": 88, "type": "uint16", "scale": 0.01, "access": "RW", "write_min": 1, "write_max": 300},
    {"name": "Time to next fan exercise", "group": "Measurements", "area": "holding", "address": 89, "type": "uint16", "access": "R", "description": "Range 0 to 24; the document gives no unit"},
    {"name": "Protocol", "group": "Device", "area": "holding", "address": 90, "type": "uint16", "access": "R", "enum": "protocol"},
    {"name": "Password reminder", "group": "Device", "area": "holding", "address": 91, "type": "uint16", "access": "R", "description": "Range 0 to 9999"},
    {"name": "Parity", "group": "Device", "area": "holding", "address": 92, "type": "uint16", "access": "RW", "write_min": 0, "write_max": 2, "enum": "parity"},
    {"name": "Write protection over RS-485", "group": "Device", "area": "holding", "address": 93, "type": "uint16", "access": "RW", "enum": "enabled"},
    {"name": "Clock seconds", "group": "Clock", "area": "holding", "address": 94, "type": "uint16", "access": "RW", "write_min": 0, "write_max": 59},
    {"name": "Clock minutes", "group": "Clock", "area": "holding", "address": 95, "type": "uint16", "access": "RW", "write_min": 0, "write_max": 59},
    {"name": "Clock hours", "group": "Clock", "area": "holding", "address": 96, "type": "uint16", "access": "RW", "write_min": 0, "write_max": 23},
    {"name": "Clock day of week", "group": "Clock", "area": "holding", "address": 97, "type": "uint16", "access": "RW", "write_min": 1, "write_max": 6},
    {"name": "Clock day of month", "group": "Clock", "area": "holding", "address": 98, "type": "uint16", "access": "RW", "write_min": 1, "write_max": 31},
    {"name": "Clock month", "group": "Clock", "area": "holding", "address": 99, "type": "uint16", "access": "RW", "write_min": 1, "write_max": 12},
    {"name": "Clock year", "group": "Clock", "area": "holding", "address": 100, "type": "uint16", "access": "RW", "write_min": 2015, "write_max": 2099},
    {"name": "Data log interval", "group": "Settings", "area": "holding", "address": 102, "type": "uint16", "access": "RW", "write_min": 5, "write_max": 180, "description": "The document gives no unit"},
    {"name": "Fan exercise enabled", "group": "Fan exercise", "area": "holding", "address": 103, "type": "uint16", "access": "RW", "enum": "enabled"},
    {"name": "Fan exercise period", "group": "Fan exercise", "area": "holding", "address": 104, "type": "uint16", "access": "RW", "enum": "exercise_period"},
    {"name": "Fan exercise weekday", "group": "Fan exercise", "area": "holding", "address": 105, "type": "uint16", "access": "RW", "write_min": 0, "write_max": 6, "enum": "weekday"},
    {"name": "Fan exercise start hour", "group": "Fan exercise", "area": "holding", "address": 106, "type": "uint16", "access": "RW", "write_min": 0, "write_max": 23},
    {"name": "Fan exercise start minute", "group": "Fan exercise", "area": "holding", "address": 107, "type": "uint16", "access": "RW", "write_min": 0, "write_max": 59},
    {"name": "Insulation thermal class", "group": "Settings", "area": "holding", "address": 119, "type": "uint16", "access": "RW", "write_min": 0, "write_max": 2, "enum": "insulation_class"},
    {"name": "Remaining life winding 1", "group": "Measurements", "area": "holding", "address": 120, "type": "uint16", "scale": 0.1, "unit": "%", "access": "RW", "write_min": 0, "write_max": 100},
    {"name": "Remaining life winding 2", "group": "Measurements", "area": "holding", "address": 121, "type": "uint16", "scale": 0.1, "unit": "%", "access": "RW", "write_min": 0, "write_max": 100},
    {"name": "Remaining life winding 3", "group": "Measurements", "area": "holding", "address": 122, "type": "uint16", "scale": 0.1, "unit": "%", "access": "RW", "write_min": 0, "write_max": 100},
    {"name": "Fan group 1 start percentage winding 1", "group": "Settings", "area": "holding", "address": 123, "type": "uint16", "scale": 0.1, "unit": "%", "access": "RW", "write_min": 0, "write_max": 200},
    {"name": "Fan group 1 start percentage winding 2", "group": "Settings", "area": "holding", "address": 124, "type": "uint16", "scale": 0.1, "unit": "%", "access": "RW", "write_min": 0, "write_max": 200},
    {"name": "Fan group 1 start percentage winding 3", "group": "Settings", "area": "holding", "address": 125, "type": "uint16", "scale": 0.1, "unit": "%", "access": "RW", "write_min": 0, "write_max": 200},
    {"name": "Fan group 2 start percentage winding 1", "group": "Settings", "area": "holding", "address": 126, "type": "uint16", "scale": 0.1, "unit": "%", "access": "RW", "write_min": 0, "write_max": 200},
    {"name": "Fan group 2 start percentage winding 2", "group": "Settings", "area": "holding", "address": 127, "type": "uint16", "scale": 0.1, "unit": "%", "access": "RW", "write_min": 0, "write_max": 200},
    {"name": "Fan group 2 start percentage winding 3", "group": "Settings", "area": "holding", "address": 128, "type": "uint16", "scale": 0.1, "unit": "%", "access": "RW", "write_min": 0, "write_max": 200},
    {"name": "Fan group 3 start percentage winding 1", "group": "Settings", "area": "holding", "address": 129, "type": "uint16", "scale": 0.1, "unit": "%", "access": "RW", "write_min": 0, "write_max": 200},
    {"name": "Fan group 3 start percentage winding 2", "group": "Settings", "area": "holding", "address": 130, "type": "uint16", "scale": 0.1, "unit": "%", "access": "RW", "write_min": 0, "write_max": 200},
    {"name": "Fan group 3 start percentage winding 3", "group": "Settings", "area": "holding", "address": 131, "type": "uint16", "scale": 0.1, "unit": "%", "access": "RW", "write_min": 0, "write_max": 200},
    {"name": "Shutdown percentage by loading winding 1", "group": "Settings", "area": "holding", "address": 132, "type": "uint16", "scale": 0.1, "unit": "%", "access": "RW", "write_min": 0, "write_max": 200},
    {"name": "Shutdown percentage by loading winding 2", "group": "Settings", "area": "holding", "address": 133, "type": "uint16", "scale": 0.1, "unit": "%", "access": "RW", "write_min": 0, "write_max": 200},
    {"name": "Shutdown percentage by loading winding 3", "group": "Settings", "area": "holding", "address": 134, "type": "uint16", "scale": 0.1, "unit": "%", "access": "RW", "write_min": 0, "write_max": 200},
    {"name": "Display line 1 variable", "group": "Display", "area": "holding", "address": 135, "type": "uint16", "access": "RW", "write_min": 0, "write_max": 16, "enum": "display_variable"},
    {"name": "Display line 2 variable", "group": "Display", "area": "holding", "address": 136, "type": "uint16", "access": "RW", "write_min": 0, "write_max": 16, "enum": "display_variable"},
    {"name": "Display line 3 variable", "group": "Display", "area": "holding", "address": 137, "type": "uint16", "access": "RW", "write_min": 0, "write_max": 16, "enum": "display_variable"},
    {"name": "Display line 4 variable", "group": "Display", "area": "holding", "address": 138, "type": "uint16", "access": "RW", "write_min": 0, "write_max": 16, "enum": "display_variable"},
    {"name": "Display line 5 variable", "group": "Display", "area": "holding", "address": 139, "type": "uint16", "access": "RW", "write_min": 0, "write_max": 16, "enum": "display_variable"},
    {"name": "Display colours", "group": "Display", "area": "holding", "address": 150, "type": "uint16", "access": "RW", "enum": "display_colours"},
    {"name": "OLED contrast", "group": "Display", "area": "holding", "address": 151, "type": "uint16", "access": "RW", "write_min": 0, "write_max": 255}
  ]
}
