{
  "spec_version": 1,
  "slug": "carel-uchiller",
  "manufacturer": "CAREL",
  "model": "µChiller chiller / heat pump controller",
  "category": "Chiller controller",
  "supplier_url": "https://www.carel.com/documents/10191/0/+0300053EN/36cc33b9-4225-46cc-91aa-734d126b5dcb",
  "default_configuration": {
    "protocol": "modbus_tcp",
    "port": 502,
    "unit_id": 1,
    "addressing": "zero_based",
    "byte_order": "BigEndian",
    "word_order": "HighFirst",
    "native_interface": "rs485",
    "serial": {
      "parity": "None",
      "baud_rate": 115200,
      "data_bits": 8,
      "stop_bits": 2
    }
  },
  "coils": [
    {
      "address": 19,
      "count": 1,
      "name": "Free-Cooling enable",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "U068 - Enable Free-Cooling (0=Disabled, 1=Enabled)"
    },
    {
      "address": 22,
      "count": 1,
      "name": "Capacity request from BMS enable",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Hd06 - Enable capacity request from BMS (0=Disabled, 1=Enabled)"
    },
    {
      "address": 46,
      "count": 1,
      "name": "Source type",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "S068 - Source type (0=Air, 1=Water)"
    },
    {
      "address": 47,
      "count": 1,
      "name": "Unit of measure (display and BMS)",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "UoM - Unit of measure used for Display 2-Row and BMS, not for Applica (0=°C/bar, 1=°F/PSI)"
    },
    {
      "address": 48,
      "count": 1,
      "name": "BMS port database type",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Hd07 - BMS port database type (0= 32bit, 1= 16bit)"
    },
    {
      "address": 54,
      "count": 1,
      "name": "Unit ON/OFF command from keypad",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "UnSt - Unit ON/OFF command from keypad (0=OFF 1=ON)"
    },
    {
      "address": 55,
      "count": 1,
      "name": "Cool/Heat mode from keypad",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "ModE - Cool/Heat mode from keypad (0=Cool, 1=Heat)"
    },
    {
      "address": 56,
      "count": 1,
      "name": "Reset active alarms from BMS",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "RES - Reset active alarms from BMS net (0=NO, 1=Reset)"
    },
    {
      "address": 59,
      "count": 1,
      "name": "Delete alarms log",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "ClrH - Delete alarms log (0=No, 1=Yes)"
    },
    {
      "address": 63,
      "count": 1,
      "name": "Unit ON/OFF command by BMS enable",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Hd05 - Enable unit ON/OFF command by BMS net (0=Disabled, 1=Enabled)"
    },
    {
      "address": 64,
      "count": 1,
      "name": "Unit ON/OFF command from BMS",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Unit On/Off command from BMS (0=OFF, 1=ON)"
    }
  ],
  "discrete_inputs": [
    {
      "address": 0,
      "count": 1,
      "name": "Unit: retain memory write count error",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Unit - Error in the number of retain memory writes"
    },
    {
      "address": 2,
      "count": 1,
      "name": "Unit: remote alarm from digital input",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Unit - Remote alarm by digital input"
    },
    {
      "address": 14,
      "count": 1,
      "name": "Unit: high chilled water temperature",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Unit - High chilled water temperature"
    },
    {
      "address": 18,
      "count": 1,
      "name": "Circuit 1: discharge pressure probe fault",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Circuit 1 - Discharge pressure probe broken or disconnected alarm"
    },
    {
      "address": 24,
      "count": 1,
      "name": "Circuit 1: high pressure alarm from pressure switch",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Circuit 1 - High pressure alarm from pressure switch"
    },
    {
      "address": 25,
      "count": 1,
      "name": "Circuit 1: high pressure alarm from transducer",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Circuit 1 - High pressure alarm from transducer"
    },
    {
      "address": 26,
      "count": 1,
      "name": "Circuit 1: low pressure alarm from transducer",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Circuit 1 - Low pressure alarm from transducer"
    },
    {
      "address": 27,
      "count": 1,
      "name": "Circuit 1: frost evaporation temperature alarm",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Circuit 1 or unit - Frost evaporation temperature alarm"
    },
    {
      "address": 28,
      "count": 1,
      "name": "Circuit 1: low pressure alarm from pressure switch",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Circuit 1 - Low pressure alarm from pressure switch"
    },
    {
      "address": 29,
      "count": 1,
      "name": "Circuit 1: compressor 1 overload",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Circuit 1 - Overload compressor 1"
    },
    {
      "address": 34,
      "count": 1,
      "name": "Circuit 1: EVD low superheat alarm",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Circuit 1 EVD - Low superheat (SH)"
    },
    {
      "address": 39,
      "count": 1,
      "name": "Circuit 1: EVD incomplete valve closing",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Circuit 1 EVD - Incomplete valve closing"
    },
    {
      "address": 48,
      "count": 1,
      "name": "Unit: secondary board offline",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Unit - Secondary board is offl ine"
    },
    {
      "address": 58,
      "count": 1,
      "name": "Circuit 2: high pressure alarm from transducer",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Circuit 2 - High pressure alarm from transducer"
    },
    {
      "address": 59,
      "count": 1,
      "name": "Circuit 2: low pressure alarm from transducer",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Circuit 2 - Low pressure alarm from transducer"
    },
    {
      "address": 60,
      "count": 1,
      "name": "Circuit 2: frost evaporation temperature alarm",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Circuit 2 - Frost evaporation temperature alarm"
    },
    {
      "address": 92,
      "count": 1,
      "name": "Compressor 1 circuit 1 in alarm",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Comp1Circ1_DevAlrm - Comp.1 circ.1 in alarm condition"
    },
    {
      "address": 102,
      "count": 1,
      "name": "Compressor 1 circuit 1 status",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Comp1Circ1_On - Comp.1 circ.1 status (0=OFF 1=ON)"
    },
    {
      "address": 103,
      "count": 1,
      "name": "Compressor 2 circuit 1 status",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Comp2Circ1_On - Comp.2 circ.1 status (0=OFF, 1=ON)"
    },
    {
      "address": 134,
      "count": 1,
      "name": "Unit ON/OFF status",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Unit ON/OFF status (0=OFF, 1=ON)"
    },
    {
      "address": 148,
      "count": 1,
      "name": "User pump flow absent",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "UsrFlw_Absent - User pump fl ow absent (0=Flow OK, 1=Flow absent)"
    },
    {
      "address": 168,
      "count": 1,
      "name": "Control alarms active",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Al_RegulationAlrms - Control alarms"
    },
    {
      "address": 170,
      "count": 1,
      "name": "Serious alarm circuit 1",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Al_SrsCirc1 - Serious alarm circ.1"
    },
    {
      "address": 171,
      "count": 1,
      "name": "Serious alarm circuit 2",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Al_SrsCirc2 - Serious alarm circ.2"
    }
  ],
  "input_registers": [
    {
      "address": 12,
      "count": 2,
      "name": "Circuit 1 discharge temperature",
      "data_type": "Float32",
      "units": "°C",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "dSt1 - Discharge temp. probe on circ.1"
    },
    {
      "address": 14,
      "count": 2,
      "name": "Circuit 1 suction temperature",
      "data_type": "Float32",
      "units": "°C",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Sct1 - Suction temp. on circ.1"
    },
    {
      "address": 16,
      "count": 2,
      "name": "Circuit 2 discharge temperature",
      "data_type": "Float32",
      "units": "°C",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "dSt2- Discharge temp. probe on circ.2"
    },
    {
      "address": 18,
      "count": 2,
      "name": "Circuit 2 suction temperature",
      "data_type": "Float32",
      "units": "°C",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Sct2 - Suction temp. on circ.2"
    },
    {
      "address": 20,
      "count": 2,
      "name": "Circuit 1 discharge pressure",
      "data_type": "Float32",
      "units": "bar",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "dSP1 - Discharge press. probe on circ.1"
    },
    {
      "address": 22,
      "count": 2,
      "name": "Circuit 1 suction pressure",
      "data_type": "Float32",
      "units": "bar",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "ScP1 - Suction press. on circ.1"
    },
    {
      "address": 24,
      "count": 2,
      "name": "Circuit 1 condensing temperature",
      "data_type": "Float32",
      "units": "°C",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Cnd1 - Cond. temp. probe (or press. probe converted value) on circ.1"
    },
    {
      "address": 26,
      "count": 2,
      "name": "Circuit 1 evaporating temperature",
      "data_type": "Float32",
      "units": "°C",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "EuP1 - Evap. temp. probe (or press. probe converted value) on circ.1"
    },
    {
      "address": 28,
      "count": 2,
      "name": "Circuit 2 discharge pressure",
      "data_type": "Float32",
      "units": "bar",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "dSP2 - Discharge press. probe on circ.2"
    },
    {
      "address": 30,
      "count": 2,
      "name": "Circuit 2 suction pressure",
      "data_type": "Float32",
      "units": "bar",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "ScP2 - Suction press. on circ.2"
    },
    {
      "address": 32,
      "count": 2,
      "name": "Circuit 2 condensing temperature",
      "data_type": "Float32",
      "units": "°C",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Cnd2 - Cond. temp. probe (or press. probe converted value) on circ.2"
    },
    {
      "address": 34,
      "count": 2,
      "name": "Circuit 2 evaporating temperature",
      "data_type": "Float32",
      "units": "°C",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "EuP2 - Evap. temp. probe (or press. probe converted value) on circ.2"
    },
    {
      "address": 38,
      "count": 1,
      "name": "Refrigerant type",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "C045 - Refrigerant type (3=R407C, 4=R410a, 6=R290, 10=R744, 22=R32)"
    },
    {
      "address": 46,
      "count": 2,
      "name": "Active control setpoint",
      "data_type": "Float32",
      "units": "°C",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "SEtA - Actual set point used by temp. control"
    },
    {
      "address": 48,
      "count": 2,
      "name": "Circuit 1 suction superheat",
      "data_type": "Float32",
      "units": "K",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "SSH1 - Suction superheat on circ.1"
    },
    {
      "address": 50,
      "count": 1,
      "name": "Circuit 1 EEV position",
      "data_type": "UInt16",
      "units": "%",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Opn1 - EEV position on circ.1"
    },
    {
      "address": 51,
      "count": 2,
      "name": "Circuit 2 suction superheat",
      "data_type": "Float32",
      "units": "K",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "SSH2 - Suction superheat on circ.2"
    },
    {
      "address": 53,
      "count": 1,
      "name": "Circuit 2 EEV position",
      "data_type": "UInt16",
      "units": "%",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Opn2 - EEV position on circ.2"
    },
    {
      "address": 54,
      "count": 2,
      "name": "User return water temperature",
      "data_type": "Float32",
      "units": "°C",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "rUSr - Return water temp. from user"
    },
    {
      "address": 56,
      "count": 2,
      "name": "User delivery water temperature",
      "data_type": "Float32",
      "units": "°C",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "dUSr - Delivery water temperature to user"
    },
    {
      "address": 58,
      "count": 1,
      "name": "MC capacity request",
      "data_type": "UInt16",
      "units": "%",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "PwrReq_MC - MC capacity request"
    },
    {
      "address": 59,
      "count": 1,
      "name": "MC output capacity",
      "data_type": "UInt16",
      "units": "%",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "PwrOut_MC - MC output capacity"
    },
    {
      "address": 71,
      "count": 1,
      "name": "Unit status",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "UnitStatus - Unit status (0=OFF from remote DI, 1=OFF from key- pad, 2=OFF from scheduler, 3=OFF from BMS, 4=OFF from CH/HP changeover mode, 5=OFF from alarm, 6=Unit defrosting, 7=Unit ON, 8=Manual mode)"
    }
  ],
  "holding_registers": [
    {
      "address": 7,
      "count": 2,
      "name": "Cool setpoint low limit",
      "data_type": "Float32",
      "units": "°C",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "U006 - Cool set point low limit"
    },
    {
      "address": 9,
      "count": 2,
      "name": "Cool setpoint high limit",
      "data_type": "Float32",
      "units": "°C",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "U007 - Cool set point high limit"
    },
    {
      "address": 11,
      "count": 2,
      "name": "Heat setpoint low limit",
      "data_type": "Float32",
      "units": "°C",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "U008 - Heat set point low limit"
    },
    {
      "address": 13,
      "count": 2,
      "name": "Heat setpoint high limit",
      "data_type": "Float32",
      "units": "°C",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "U009 - Heat set point high limit"
    },
    {
      "address": 15,
      "count": 2,
      "name": "Cool setpoint compensation start temperature",
      "data_type": "Float32",
      "units": "°C",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "U011 - Start temp. for cool set point compensation"
    },
    {
      "address": 17,
      "count": 2,
      "name": "Cool setpoint compensation end temperature",
      "data_type": "Float32",
      "units": "°C",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "U012 - End temp. for cool set point compensation"
    },
    {
      "address": 19,
      "count": 2,
      "name": "Maximum compensation for cool setpoint",
      "data_type": "Float32",
      "units": "K",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "U013 - Max compensation for cool set point"
    },
    {
      "address": 21,
      "count": 2,
      "name": "Heat setpoint compensation start temperature",
      "data_type": "Float32",
      "units": "°C",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "U014 - Start temp. for heat set point compensation"
    },
    {
      "address": 23,
      "count": 2,
      "name": "Outside temperature difference for heat setpoint compensation",
      "data_type": "Float32",
      "units": "°C",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "U015 - Outside temp. diff . for heat set point compensation"
    },
    {
      "address": 25,
      "count": 2,
      "name": "Maximum compensation for heat setpoint",
      "data_type": "Float32",
      "units": "K",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "U016 - Max compensation for heat set point"
    },
    {
      "address": 31,
      "count": 2,
      "name": "Second cool setpoint",
      "data_type": "Float32",
      "units": "°C",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "U023 - 2nd cool set point"
    },
    {
      "address": 33,
      "count": 2,
      "name": "Second heat setpoint",
      "data_type": "Float32",
      "units": "°C",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "U024 - 2nd heat set point μchiller +0300053EN rel. 2.4 - 09.10.2023"
    },
    {
      "address": 35,
      "count": 1,
      "name": "Analogue setpoint input type",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "U025 - Analogue set point input type (0=0-5V, 1=0-10V, 2=4-20mA)"
    },
    {
      "address": 37,
      "count": 2,
      "name": "Remote setpoint minimum value",
      "data_type": "Float32",
      "units": "°C",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "U026 - Remote set point min value"
    },
    {
      "address": 39,
      "count": 2,
      "name": "Remote setpoint maximum value",
      "data_type": "Float32",
      "units": "°C",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "U027 - Remote set point max value"
    },
    {
      "address": 41,
      "count": 1,
      "name": "Time band hours",
      "data_type": "UInt16",
      "units": "h",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Time band hours"
    },
    {
      "address": 42,
      "count": 1,
      "name": "Time band minutes",
      "data_type": "UInt16",
      "units": "min",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Time band minutes"
    },
    {
      "address": 43,
      "count": 2,
      "name": "Remote setpoint offset",
      "data_type": "Float32",
      "units": "K",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "U028 - Remote set point off set"
    },
    {
      "address": 49,
      "count": 2,
      "name": "High water temperature setpoint offset",
      "data_type": "Float32",
      "units": "K",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "U031 - High water temp. set point off set"
    },
    {
      "address": 51,
      "count": 1,
      "name": "High water temperature startup delay",
      "data_type": "UInt16",
      "units": "min",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "U032 - High water temp. startup delay"
    },
    {
      "address": 52,
      "count": 1,
      "name": "High water temperature run delay",
      "data_type": "UInt16",
      "units": "s",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "U033 - High water temp.run delay"
    },
    {
      "address": 53,
      "count": 1,
      "name": "Cool/heat changeover delay",
      "data_type": "UInt16",
      "units": "min",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "U035 - Changeover delay time"
    },
    {
      "address": 55,
      "count": 2,
      "name": "Startup PID proportional gain",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "U039 - Startup PID Kp"
    },
    {
      "address": 57,
      "count": 1,
      "name": "Startup PID integral time",
      "data_type": "UInt16",
      "units": "s",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "U040 - Startup PID Ti"
    },
    {
      "address": 58,
      "count": 1,
      "name": "Startup PID derivative time",
      "data_type": "UInt16",
      "units": "s",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "U041 - Startup PID Td"
    },
    {
      "address": 59,
      "count": 2,
      "name": "Run PID proportional gain",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "U042 - Run PID Kp"
    },
    {
      "address": 61,
      "count": 1,
      "name": "Run PID integral time",
      "data_type": "UInt16",
      "units": "s",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "U043 - Run PID Ti"
    },
    {
      "address": 62,
      "count": 1,
      "name": "Run PID derivative time",
      "data_type": "UInt16",
      "units": "s",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "U044 - Run PID Td"
    },
    {
      "address": 63,
      "count": 1,
      "name": "User pump flow alarm startup delay",
      "data_type": "UInt16",
      "units": "s",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "U045 - User pump fl ow alarm startup delay"
    },
    {
      "address": 64,
      "count": 1,
      "name": "User pump flow alarm run delay",
      "data_type": "UInt16",
      "units": "s",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "U046 - User pump fl ow alarm run delay"
    },
    {
      "address": 65,
      "count": 1,
      "name": "Compressor ON delay after user pump ON",
      "data_type": "UInt16",
      "units": "s",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "U047 - Comp. ON delay after user pump ON"
    },
    {
      "address": 147,
      "count": 1,
      "name": "BMS port serial address",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Hd00 - BMS port serial address"
    },
    {
      "address": 148,
      "count": 1,
      "name": "BMS port baud rate",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Hd01 - BMS port baud rate (3=9600, 4=19200, 5=38400, 6=57600, 7=115200) 97 Supervisor table"
    },
    {
      "address": 149,
      "count": 1,
      "name": "BMS port serial settings",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Hd02 - BMS port network settings (0=8-NONE-1, 1=8-NONE-2, 2=8- EVEN-1, 3=8-EVEN-2, 4=8-ODD-1, 5=8-ODD-2)"
    }
  ],
  "combined_registers": [],
  "notes": "Source: CAREL \"Chiller - Controller for Chiller / Heat Pump, User Manual\", +0300053EN rel. 2.4, 09.10.2023 (the revision the cited URL serves; version=1.16 serves rel. 2.5, 03.10.2024), sections 6.8 (BMS port) and 7 (Supervisor table) (https://www.carel.com/documents/10191/0/+0300053EN/36cc33b9-4225-46cc-91aa-734d126b5dcb?version=1.14). Section 7 defines the supervisor database as Modbus RTU over the controller's RS-485 BMS port with factory settings 115,200 bps, 8 data bits, no parity, 2 stop bits, serial address 1 (parameters Hd00/Hd01/Hd02, section 6.8) and states that the table's \"Index\" is the address specified in the Modbus frame, so the addresses here are wire addresses and the file declares zero_based addressing. The database is 32-bit per Hd07 default 0, so REAL values are IEEE-754 single precision in two registers and UINT values one register. Register numbers shown in the manual's parameter tables (for example HR 147 = serial address) are the supervisor-table indexes of the same variables. Coil and input-status points are bit-addressed in the controller and are listed as one-register values here. Only a working subset of the supervisor table is included: the temperature/pressure probes and alarms that a first integration needs, plus the BMS-port settings. 32-bit hour counters and the secondary-board registers are left out, as is HR 331 (BMS_PwrReq, the BMS capacity request), which section 7.2 does list as a REAL written to two registers big-endian without swap - it is a scope choice, not a missing data type."
}
