{
 "manufacturer": "Hydrotherm",
 "manufacturer_slug": "hydrotherm",
 "model": "KN Series (KNSX) boilers - HeatNet BACnet Bridge",
 "model_slug": "knsx-heatnet-bacnet-bridge",
 "aliases": [
  "KNSX",
  "KN Series",
  "HeatNet",
  "HeatNet bridge",
  "Mestek"
 ],
 "equipment_type": "Commercial boiler controller",
 "applies_to": "Hydrotherm (Mestek) KN Series boilers covered by the KNSX object list, with a HeatNet control and a HeatNet BACnet IP or BACnet MS/TP bridge.",
 "summary": "The KNSX list is the HeatNet BACnet bridge object set for Hydrotherm KN Series boilers. The bridge translates the HeatNet Modbus registers into fixed objects: the BMS writes heat demand, the system setpoint (with a countdown failsafe timer), outdoor-reset settings, DHW setpoint and the clock, and reads plant temperatures, boilers on, modulation and a full set of per-boiler interlock, valve, alarm and sensor flags for up to 16 boilers.",
 "bacnet_transport": [
  "BACnet IP",
  "BACnet MS/TP"
 ],
 "firmware": "Bridge configuration 2.50+ for some points; HeatNet firmware 3.48+ for some points",
 "default_device_instance": null,
 "access_inferred": false,
 "notes": [
  "Per-boiler binary values are printed once as Boiler##_<name> with an instance formula and are listed here at the boiler 1 instance: 1000-series base + (n - 1) x 32, 2000/3000-series base + (n - 1) x 16. Boiler 1 is the master or stand-alone boiler; members are 2-16.",
  "Per-boiler analog inputs are printed as ranges and listed here for boiler 1 only: Runtime AI 48-63, Cycles AI 64-79, SupplyTemp AI 80-95, ReturnTemp AI 96-111, DHWTemp AI 112-127, Modulation AI 128-143 (boiler n = boiler 1 instance + n - 1).",
  "Bridge configuration 2.50+ with HeatNet firmware 3.48+ is needed for AV 15, AI 112-144 and BV 3000-3011.",
  "The document does not say which KN model sizes it covers.",
  "The document describes Boiler##_OutsideSensorNA with the same text as HeaderSensorNA ('Header Sensor not available'); the name suggests the outside sensor.",
  "Weekday values here run 1 (Monday) to 7 (Sunday)."
 ],
 "integration": {
  "summary": "Connect the BMS to the master (boiler 1) HeatNet control. Write BV 1 HeatDemand to call for heat and AV 2 Setpoint for the system setpoint, and keep reloading AV 1 SetpointTimer so the plant does not fall back to its local setpoint. Read header/supply/return temperatures, boilers on, modulation and the per-boiler alarm and failed flags.",
  "minimum_points": [
   {
    "ref": "BV 1",
    "name": "HeatDemand",
    "why": "Heat demand from the BMS (1 = heat)"
   },
   {
    "ref": "AV 2",
    "name": "Setpoint",
    "why": "System setpoint, 40-220 °F"
   },
   {
    "ref": "AV 1",
    "name": "SetpointTimer",
    "why": "Failsafe countdown; reload before it reaches 0"
   },
   {
    "ref": "AI 144",
    "name": "OperatingSetpoint",
    "why": "Active setpoint in use"
   },
   {
    "ref": "AI 3",
    "name": "HeaderTemp",
    "why": "Header / system temperature, °F"
   },
   {
    "ref": "AI 1",
    "name": "BoilersOn",
    "why": "Number of boilers running"
   },
   {
    "ref": "AI 2",
    "name": "Modulation",
    "why": "System target modulation, %"
   },
   {
    "ref": "BV 1005",
    "name": "Boiler##_Running",
    "why": "Boiler 1 firing (add 32 per boiler number)"
   },
   {
    "ref": "BV 1002",
    "name": "Boiler##_Alarm",
    "why": "Boiler 1 alarm (add 32 per boiler number)"
   },
   {
    "ref": "BV 1003",
    "name": "Boiler##_Failed",
    "why": "Boiler 1 failed (add 32 per boiler number)"
   }
  ],
  "enable": "BV 1 HeatDemand puts the boiler (plant) into heating mode when set to 1; 0 removes the demand. The setpoint the BMS writes is AV 2 Setpoint.",
  "heartbeat": "AV 1 SetpointTimer (0-65535 s) is a BMS failsafe countdown. The BMS must reload it periodically; if it reaches zero the control assumes the BMS has stopped and reloads its own saved local setpoint. Writing any read/write variable reloads the timer to 60 s if it is below 60 (on control firmware below 3.48 only writing the setpoint does this).",
  "remote_sensors": "AV 3-7 and BV 2 set up outdoor air reset; there is no writable outdoor temperature or flow value on this bridge.",
  "setup": [
   "The HeatNet bridge comes as a BACnet IP or a BACnet MS/TP version (an extra-cost option); it translates the HeatNet Modbus registers to these objects.",
   "BACnet IP bridge defaults, from Mestek's separate 'HeatNet Communication Protocols' v1.01 document (not the object list): IP 192.168.1.24, mask 255.255.255.0, BACnet MAC 11, BACnet node 11.",
   "BACnet MS/TP bridge defaults (same HeatNet Communication Protocols document): MAC 11, BACnet node 11, 38400 baud.",
   "To set the clock, write AV 8-14 (month, day, year, hour, minute, second, weekday) and then write 1 to BV 3 SetClock."
  ],
  "gotchas": [
   "If SetpointTimer runs out, the plant quietly returns to its local setpoint.",
   "Per-boiler objects are listed at the boiler 1 instance; offset them by boiler number using the formulas in the notes. Boiler 1 is the master or stand-alone boiler.",
   "Per-boiler modulation (AI 128-143) does not work in AA/High Fire, T1 or T2 modes.",
   "The bridge polls the HeatNet Modbus registers continuously; a few less important registers are not carried over to BACnet."
  ]
 },
 "source": {
  "title": "KNSX BACnet Bridge Objects",
  "doc_number": "v2.52",
  "revision_date": null,
  "url": "https://www.literature.mestek.com/dms/Hydrotherm%20Boilers/HeatNet/KNSX%20BACnet%20Objects%20v2-52.pdf"
 },
 "points": [
  {
   "type": "AV",
   "instance": 1,
   "name": "SetpointTimer",
   "description": "BMS failsafe countdown; reload before it reaches zero; 0 – 65535 seconds",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2,
   "name": "Setpoint",
   "description": "System setpoint written by the BMS; 40 - 220 °F (4.5 – 104.4 °C)",
   "units": "°F",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 3,
   "name": "OARSetpoint",
   "description": "Outdoor temperature at which the boiler shuts down; 40 – 100 °F (4.5 – 37.8 °C)",
   "units": "°F",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 4,
   "name": "OARHighWaterTemp",
   "description": "Water setpoint at the high outdoor temperature; 60 – 190 °F (15.6 – 87.8 °C)",
   "units": "°F",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 5,
   "name": "OARHighAirTemp",
   "description": "High outdoor air temperature reset point; 50 – 90 °F (10 – 32.2 °C)",
   "units": "°F",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 6,
   "name": "OARLowWaterTemp",
   "description": "Header/supply setpoint at the low outdoor temperature; 70 – 220 °F (21.1 – 104.4 °C)",
   "units": "°F",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 7,
   "name": "OARLowAirTemp",
   "description": "Low outdoor air temperature reset point; -35 – 40 °F (-37.2 – 4.4 °C)",
   "units": "°F",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 8,
   "name": "SetMonth",
   "description": "Clock set value: month (0 = January); 0 (January) – 11 (December)",
   "units": "months",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 9,
   "name": "SetDay",
   "description": "Clock set value: day; 1 – 31",
   "units": "days",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 10,
   "name": "SetYear",
   "description": "Clock set value: year (0-99); 0 – 99",
   "units": "years",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 11,
   "name": "SetHour",
   "description": "Clock set value: hour; 0 – 23",
   "units": "h",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 12,
   "name": "SetMinute",
   "description": "Clock set value: minute; 0 – 59",
   "units": "min",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 13,
   "name": "SetSecond",
   "description": "Clock set value: second; 0 – 59",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 14,
   "name": "SetWeekday",
   "description": "Clock set value: weekday; 1 (Monday) – 7 (Sunday)",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 15,
   "name": "DHWSetpoint",
   "description": "DHW setpoint; 40 – 200 °F (4.4 – 93.3 °C)",
   "units": "°F",
   "access": "W",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 1,
   "name": "HeatDemand",
   "description": "BMS heat demand: 1 puts the boiler plant into heating",
   "units": "",
   "access": "W",
   "states": "0=no heat demand, 1=heat demand"
  },
  {
   "type": "BV",
   "instance": 2,
   "name": "OAResetEnable",
   "description": "Enable outdoor air reset",
   "units": "",
   "access": "W",
   "states": "0=disabled, 1=enabled"
  },
  {
   "type": "BV",
   "instance": 3,
   "name": "SetClock",
   "description": "Write 1 to load the Set... values into the clock",
   "units": "",
   "access": "W",
   "states": "1=set the clock"
  },
  {
   "type": "BV",
   "instance": 1000,
   "name": "Boiler##_Disabled",
   "description": "Boiler is disabled",
   "units": "",
   "access": "R",
   "states": "0=enabled, 1=disabled"
  },
  {
   "type": "BV",
   "instance": 1001,
   "name": "Boiler##_LocalOverride",
   "description": "Local Override (member boilers only)",
   "units": "",
   "access": "R",
   "states": "0=no override, 1=override"
  },
  {
   "type": "BV",
   "instance": 1002,
   "name": "Boiler##_Alarm",
   "description": "Boiler Alarm",
   "units": "",
   "access": "R",
   "states": "0=ok, 1=alarm"
  },
  {
   "type": "BV",
   "instance": 1003,
   "name": "Boiler##_Failed",
   "description": "Boiler Failed",
   "units": "",
   "access": "R",
   "states": "0=ok, 1=failed"
  },
  {
   "type": "BV",
   "instance": 1004,
   "name": "Boiler##_MemberError",
   "description": "Member Alarm or Failed",
   "units": "",
   "access": "R",
   "states": "0=ok, 1=error"
  },
  {
   "type": "BV",
   "instance": 1005,
   "name": "Boiler##_Running",
   "description": "Boiler is running/firing",
   "units": "",
   "access": "R",
   "states": "0=off, 1=running (firing)"
  },
  {
   "type": "BV",
   "instance": 1006,
   "name": "Boiler##_LocalPumpOn",
   "description": "Local pump is on/running",
   "units": "",
   "access": "R",
   "states": "0=off, 1=on (running)"
  },
  {
   "type": "BV",
   "instance": 1007,
   "name": "Boiler##_SystemFlowInterlock",
   "description": "System Flow Interlock",
   "units": "",
   "access": "R",
   "states": "0=open, 1=closed"
  },
  {
   "type": "BV",
   "instance": 1008,
   "name": "Boiler##_LwcoInterlock",
   "description": "Low Water Cutoff Interlock",
   "units": "",
   "access": "R",
   "states": "0=open, 1=closed"
  },
  {
   "type": "BV",
   "instance": 1009,
   "name": "Boiler##_VfdInterlock",
   "description": "VFD Interlock",
   "units": "",
   "access": "R",
   "states": "0=open, 1=closed"
  },
  {
   "type": "BV",
   "instance": 1010,
   "name": "Boiler##_GasProveInterlock",
   "description": "Gas Prove Interlock",
   "units": "",
   "access": "R",
   "states": "0=open, 1=closed"
  },
  {
   "type": "BV",
   "instance": 1011,
   "name": "Boiler##_Spare4Interlock",
   "description": "Spare 4 (application defined) Interlock",
   "units": "",
   "access": "R",
   "states": "0=open, 1=closed"
  },
  {
   "type": "BV",
   "instance": 1012,
   "name": "Boiler##_OperatorInterlock",
   "description": "Operator Interlock",
   "units": "",
   "access": "R",
   "states": "0=open, 1=closed"
  },
  {
   "type": "BV",
   "instance": 1013,
   "name": "Boiler##_LocalFlowInterlock",
   "description": "Local Flow Interlock",
   "units": "",
   "access": "R",
   "states": "0=open, 1=closed"
  },
  {
   "type": "BV",
   "instance": 1015,
   "name": "Boiler##_MainValve",
   "description": "Main Valve",
   "units": "",
   "access": "R",
   "states": "0=closed, 1=open"
  },
  {
   "type": "BV",
   "instance": 1016,
   "name": "Boiler##_PilotValve",
   "description": "Pilot Valve",
   "units": "",
   "access": "R",
   "states": "0=closed, 1=open"
  },
  {
   "type": "BV",
   "instance": 1017,
   "name": "Boiler##_BlowerOn",
   "description": "Blower is on/running",
   "units": "",
   "access": "R",
   "states": "0=off, 1=on (running)"
  },
  {
   "type": "BV",
   "instance": 1018,
   "name": "Boiler##_IgnitionAlarm",
   "description": "Ignition Circuit Alarm",
   "units": "",
   "access": "R",
   "states": "0=ok, 1=alarm"
  },
  {
   "type": "BV",
   "instance": 1019,
   "name": "Boiler##_IRIAlarm",
   "description": "IRI Alarm",
   "units": "",
   "access": "R",
   "states": "0=ok, 1=alarm"
  },
  {
   "type": "BV",
   "instance": 1020,
   "name": "Boiler##_HighLimit",
   "description": "High Limit",
   "units": "",
   "access": "R",
   "states": "0=ok, 1=tripped"
  },
  {
   "type": "BV",
   "instance": 1021,
   "name": "Boiler##_AirProveSwitch",
   "description": "Air Prove Switch",
   "units": "",
   "access": "R",
   "states": "0=proven, 1=not proven"
  },
  {
   "type": "BV",
   "instance": 1023,
   "name": "Boiler##_SoftwareOperator",
   "description": "Software Operator Tripped",
   "units": "",
   "access": "R",
   "states": "0=not tripped, 1=tripped"
  },
  {
   "type": "BV",
   "instance": 1024,
   "name": "Boiler##_HeaderSensorNA",
   "description": "Header Sensor not available (detected)",
   "units": "",
   "access": "R",
   "states": "0=detected, 1=not available"
  },
  {
   "type": "BV",
   "instance": 1025,
   "name": "Boiler##_SupplySensorNA",
   "description": "Supply/Outlet Sensor not available (detected)",
   "units": "",
   "access": "R",
   "states": "0=detected, 1=not available"
  },
  {
   "type": "BV",
   "instance": 1026,
   "name": "Boiler##_ReturnSensorNA",
   "description": "Return/Inlet Sensor not available (detected)",
   "units": "",
   "access": "R",
   "states": "0=detected, 1=not available"
  },
  {
   "type": "BV",
   "instance": 1027,
   "name": "Boiler##_OutsideSensorNA",
   "description": "Header Sensor not available (detected)",
   "units": "",
   "access": "R",
   "states": "0=detected, 1=not available"
  },
  {
   "type": "BV",
   "instance": 1028,
   "name": "Boiler##_SystemPumpOn",
   "description": "System Pump is on/running",
   "units": "",
   "access": "R",
   "states": "0=off, 1=on (running)"
  },
  {
   "type": "BV",
   "instance": 1029,
   "name": "Boiler##_DamperProve1",
   "description": "Combustion Air Damper Prove (J10B)",
   "units": "",
   "access": "R",
   "states": "0=not proven, 1=proven"
  },
  {
   "type": "BV",
   "instance": 1030,
   "name": "Boiler##_Master",
   "description": "This is the Master Boiler",
   "units": "",
   "access": "R",
   "states": "0=member, 1=master"
  },
  {
   "type": "BV",
   "instance": 1031,
   "name": "Boiler##_Detected",
   "description": "Boiler ## is detected (present)",
   "units": "",
   "access": "R",
   "states": "0=not detected, 1=detected"
  },
  {
   "type": "BV",
   "instance": 2000,
   "name": "Boiler##_AAHighFire",
   "description": "AA/High Fire Input",
   "units": "",
   "access": "R",
   "states": "0=open, 1=closed"
  },
  {
   "type": "BV",
   "instance": 2001,
   "name": "Boiler##_HeatDemand",
   "description": "Heat Demand (Local Override) Input",
   "units": "",
   "access": "R",
   "states": "0=open, 1=closed"
  },
  {
   "type": "BV",
   "instance": 2002,
   "name": "Boiler##_4to20Remote",
   "description": "4 to 20ma Remote Input",
   "units": "",
   "access": "R",
   "states": "0=open, 1=closed"
  },
  {
   "type": "BV",
   "instance": 2003,
   "name": "Boiler##_OAROverride",
   "description": "Outside Air Reset Override Input",
   "units": "",
   "access": "R",
   "states": "0=open, 1=closed"
  },
  {
   "type": "BV",
   "instance": 2004,
   "name": "Boiler##_T1",
   "description": "T1 Input",
   "units": "",
   "access": "R",
   "states": "0=open, 1=closed"
  },
  {
   "type": "BV",
   "instance": 2005,
   "name": "Boiler##_T2",
   "description": "T2 Input",
   "units": "",
   "access": "R",
   "states": "0=open, 1=closed"
  },
  {
   "type": "BV",
   "instance": 2006,
   "name": "Boiler##_T3",
   "description": "T3 Input",
   "units": "",
   "access": "R",
   "states": "0=open, 1=closed"
  },
  {
   "type": "BV",
   "instance": 2007,
   "name": "Boiler##_T4",
   "description": "T4 Input",
   "units": "",
   "access": "R",
   "states": "0=open, 1=closed"
  },
  {
   "type": "BV",
   "instance": 3000,
   "name": "Boiler##_DHWEnabled",
   "description": "DHW enabled status (menus)",
   "units": "",
   "access": "R",
   "states": "0=disabled, 1=enabled"
  },
  {
   "type": "BV",
   "instance": 3001,
   "name": "Boiler##_DamperProve2",
   "description": "Damper Prove (J12B)",
   "units": "",
   "access": "R",
   "states": "0=open, 1=closed (proven)"
  },
  {
   "type": "BV",
   "instance": 3002,
   "name": "Boiler##_ServiceFault",
   "description": "Call service fault",
   "units": "",
   "access": "R",
   "states": "0=ok, 1=fault"
  },
  {
   "type": "BV",
   "instance": 3003,
   "name": "Boiler##_BlowerFault",
   "description": "Air Switch Blower fault",
   "units": "",
   "access": "R",
   "states": "0=ok, 1=fault"
  },
  {
   "type": "BV",
   "instance": 3009,
   "name": "Boiler##_DHWSensorNA",
   "description": "DHW Sensor is not available (detected)",
   "units": "",
   "access": "R",
   "states": "0=detected, 1=not available"
  },
  {
   "type": "BV",
   "instance": 3010,
   "name": "Boiler##_DHWBoiler",
   "description": "DHW Boiler",
   "units": "",
   "access": "R",
   "states": "0=no, 1=yes"
  },
  {
   "type": "BV",
   "instance": 3011,
   "name": "Boiler##_OpLimitClamp",
   "description": "Boiler input is limited (clamped) due to high supply (outlet) temperature",
   "units": "",
   "access": "R",
   "states": "0=not clamped, 1=clamped"
  },
  {
   "type": "AI",
   "instance": 1,
   "name": "BoilersOn",
   "description": "Number of boilers running",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 2,
   "name": "Modulation",
   "description": "System target modulation",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 3,
   "name": "HeaderTemp",
   "description": "Header / system temperature",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 4,
   "name": "SupplyTemp",
   "description": "Supply temperature",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 5,
   "name": "ReturnTemp",
   "description": "Return temperature",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 6,
   "name": "OutsideTemp",
   "description": "Outside air temperature",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 7,
   "name": "Spare1",
   "description": "Raw A/D value of spare input 1",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 8,
   "name": "Spare2",
   "description": "Raw A/D value of spare input 2",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 9,
   "name": "Month",
   "description": "Clock: month (0-11)",
   "units": "months",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 10,
   "name": "Day",
   "description": "Clock: day",
   "units": "days",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 11,
   "name": "Year",
   "description": "Clock: year (0-99)",
   "units": "years",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 12,
   "name": "Hour",
   "description": "Clock: hour",
   "units": "h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 13,
   "name": "Minute",
   "description": "Clock: minute",
   "units": "min",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 14,
   "name": "Second",
   "description": "Clock: second",
   "units": "s",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 15,
   "name": "Weekday",
   "description": "Clock: weekday",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 16,
   "name": "DHWTemp",
   "description": "DHW temperature",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 48,
   "name": "Boiler01_Runtime",
   "description": "Boiler 1 run time on the current board (boiler n = 47 + n)",
   "units": "min",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 64,
   "name": "Boiler01_Cycles",
   "description": "Boiler 1 cycle count (boiler n = 63 + n)",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 80,
   "name": "Boiler01_SupplyTemp",
   "description": "Boiler 1 supply (outlet) temperature (boiler n = 79 + n)",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 96,
   "name": "Boiler01_ReturnTemp",
   "description": "Boiler 1 return (inlet) temperature (boiler n = 95 + n)",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 112,
   "name": "Boiler01_DHWTemp",
   "description": "Boiler 1 DHW sensor temperature (boiler n = 111 + n)",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 128,
   "name": "Boiler01_Modulation",
   "description": "Boiler 1 modulation (boiler n = 127 + n)",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 144,
   "name": "OperatingSetpoint",
   "description": "Active setpoint in use (heating, DHW, reset or 4-20 mA)",
   "units": "°F",
   "access": "R",
   "states": ""
  }
 ],
 "page": "https://easybacnet.com/bacnet-points-lists/hydrotherm/knsx-heatnet-bacnet-bridge",
 "note": "Provided as-is. Point availability varies by firmware and options; verify against the live device.",
 "disclaimer": "DISCLAIMER: reference only, provided AS IS with no warranty. May contain errors or be out of date. You must verify every point against the manufacturer's current documentation and the live device before use. easybacnet.com accepts no liability for its use and is not affiliated with the manufacturer. Terms: https://easybacnet.com/terms#content"
}
