{
 "manufacturer": "Hydrotherm",
 "manufacturer_slug": "hydrotherm",
 "model": "KN / KN+ Series boilers with HeatNet V3 control",
 "model_slug": "kn-heatnet-v3",
 "aliases": [
  "HeatNet V3",
  "HeatNet",
  "KN Series",
  "KN+",
  "KN-Series",
  "ATH",
  "Mestek",
  "KN BACnet Objects"
 ],
 "equipment_type": "Commercial boiler controller",
 "applies_to": "Hydrotherm (Mestek) KN and KN+ Series condensing boilers with a HeatNet V3 control board (firmware 4.20+), including HeatNet cascades of up to 16 boilers.",
 "summary": "The HeatNet V3 control on Hydrotherm KN and KN+ boilers exposes a fixed BACnet object list. The BMS writes heat demand, the system setpoint (guarded by a countdown failsafe timer), outdoor-reset settings, DHW setpoint, clock, and flow or boiler-count limits as analog and binary values. Read-only analog inputs give plant temperatures, boiler counts, BTU/h, system flow and per-boiler run time, cycles, temperatures, modulation and local flow; read-only binary values give interlock, alarm and status flags for each of up to 16 boilers.",
 "bacnet_transport": [],
 "firmware": "HeatNet control firmware 4.20+ (some points need 1.30, 2.00, 3.11 or 4.30)",
 "default_device_instance": null,
 "access_inferred": false,
 "notes": [
  "The object list does not say which BACnet data link (BACnet IP or BACnet MS/TP) is used and gives no device instance or network settings.",
  "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, LocalFlow AI 152-167 (boiler n = boiler 1 instance + n - 1).",
  "Firmware: AV 16-17, AI 145 and BV 3012-3013 need 1.30+; AI 146-151 and BV 3014-3015 need 2.00+; AI 152-167 need 3.11+; AI 168-169 need 4.30+.",
  "No objects are printed at BV 1014, BV 1022 or BV 3004-3008. The document describes Boiler##_OutsideSensorNA with the same text as HeaderSensorNA ('Header Sensor not available'); the name suggests the outside sensor.",
  "Numbering largely matches Mestek's RBI HeatNet V3 list (RBI FIII/Fusion/CK) in this library; this Hydrotherm v2.00 list adds AI 152-169 and uses AI 7/8 for DHWTemp/StackTemp."
 ],
 "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 firmware below 3.48 only writing the setpoint does this).",
  "remote_sensors": "AV 16 BMSFlowRateGPM lets the BMS supply the system flow for flow-limited control, and AV 17 BMSLimitBoilers caps how many boilers HeatNet may run. AV 3-7 and BV 2 set up outdoor air reset; there is no writable outdoor temperature.",
  "setup": [
   "The object document gives no data link, address or device-instance settings.",
   "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.",
   "BTUH (AI 146) is an estimate only.",
   "Several points need newer HeatNet firmware (1.30, 2.00, 3.11 or 4.30); see notes."
  ]
 },
 "source": {
  "title": "ATH KN, KN+ Series - HeatNet V3 BACnet Objects",
  "doc_number": "v2.00",
  "revision_date": null,
  "url": "https://www.literature.mestek.com/dms/Hydrotherm%20Boilers/ATH%20HeatNet%20V3%20BACnet%20Objects%20v2-00.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; 0 (Monday) – 6 (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": "AV",
   "instance": 16,
   "name": "BMSFlowRateGPM",
   "description": "System flow measured by the BMS (flow-limited control); 0 – 1500",
   "units": "gpm",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 17,
   "name": "BMSLimitBoilers",
   "description": "Number of boilers HeatNet may run; 0 – 16",
   "units": "",
   "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": "BV",
   "instance": 3012,
   "name": "Boiler01_BoilersFlowLimited",
   "description": "Boilers limited by the BMS flow rate value",
   "units": "",
   "access": "R",
   "states": "0=not limited, 1=limited"
  },
  {
   "type": "BV",
   "instance": 3013,
   "name": "Boiler01_BoilersBMSLimited",
   "description": "Boilers limited by the BMS limit-boilers value",
   "units": "",
   "access": "R",
   "states": "0=not limited, 1=limited"
  },
  {
   "type": "BV",
   "instance": 3014,
   "name": "Boiler##_StackSensorNA",
   "description": "Stack Sensor is not available (detected)",
   "units": "",
   "access": "R",
   "states": "0=detected, 1=not available"
  },
  {
   "type": "BV",
   "instance": 3015,
   "name": "Boiler##_SysReturnSensorNA",
   "description": "System Return Sensor is not available (detected)",
   "units": "",
   "access": "R",
   "states": "0=detected, 1=not available"
  },
  {
   "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": "DHWTemp",
   "description": "DHW temperature",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 8,
   "name": "StackTemp",
   "description": "Stack (flue) temperature",
   "units": "°F",
   "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": 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": ""
  },
  {
   "type": "AI",
   "instance": 145,
   "name": "AvailableBoilers",
   "description": "Number of boilers available",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 146,
   "name": "BTUH",
   "description": "Estimated boiler output",
   "units": "BTU/h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 147,
   "name": "SystemReturnTemp",
   "description": "System return temperature (if fitted)",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 148,
   "name": "SystemFlow",
   "description": "System flow (meter or BMS-written value)",
   "units": "gpm",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 149,
   "name": "HeatingBoilersOn",
   "description": "Boilers running for heating",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 150,
   "name": "DHWBoilersOn",
   "description": "Boilers running for DHW",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 151,
   "name": "ManualBoilersOn",
   "description": "Boilers running on local override, T1 or T2",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 152,
   "name": "Boiler01_LocalFlow",
   "description": "Boiler 1 local flow rate (boiler n = 151 + n)",
   "units": "gpm",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 168,
   "name": "AddBoilerTimer",
   "description": "Seconds until the next boiler can start",
   "units": "s",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 169,
   "name": "ShedBoilerTimer",
   "description": "Seconds until the next boiler can be shed",
   "units": "s",
   "access": "R",
   "states": ""
  }
 ],
 "page": "https://easybacnet.com/bacnet-points-lists/hydrotherm/kn-heatnet-v3",
 "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"
}
