{
 "manufacturer": "Laars",
 "manufacturer_slug": "laars",
 "model": "HTD control - ProtoNode",
 "model_slug": "htd-protonode",
 "aliases": [
  "HTD",
  "Laars HTD",
  "ProtoNode FPC-N34",
  "ProtoNode FPC-N35",
  "FPC-N34-0701",
  "Laars ProtoNode"
 ],
 "equipment_type": "Boiler controller gateway",
 "applies_to": "Laars boilers with the HTD control, read through a ProtoNode FPC-N34 gateway (the document does not name the models).",
 "summary": "The ProtoNode reads the HTD control over Modbus RTU and serves 180 objects per boiler. Analog inputs cover temperatures, flame signal, 0-10 V inputs and outputs, O2/CO2, pressures, firing rates, lockout and alarm codes, LMV burner data and lag states; binary inputs break out the safety chain, outputs and LMV I/O bits. Writable AVs and BVs hold the CH1-CH4, DHW, cascade and hybrid enables, setpoints, PID terms and demands.",
 "bacnet_transport": [
  "BACnet IP",
  "BACnet MS/TP"
 ],
 "firmware": null,
 "default_device_instance": "50000 + device Node-ID",
 "access_inferred": true,
 "notes": [
  "Each boiler on the ProtoNode's RS-485 bus shows up as its own BACnet device, and every one uses the same object IDs. The device instance is Node_Offset (default 50000) plus the boiler's Node-ID, so Node-ID 1 = device 50001.",
  "The mapping has no read/write column. AV, BV and MV objects are mapped to Metasys N2 outputs and LonWorks input variables, so they are listed here as writable; AI, BI and MI objects are read-only.",
  "Temperatures are listed as °C/°F; the mapping does not say how the unit is chosen.",
  "The LMV objects (phase, actuator positions, trim, error and diagnostic codes, LMV inputs and outputs) come from an LMV burner control; several have to be decoded with the LMV manual.",
  "Bit-mapped registers (safety chain, digital outputs, gas valve, LMV inputs/outputs) are split into one BI per bit; the object names here join the register name and the bit label.",
  "AI 13 is marked not used."
 ],
 "integration": {
  "summary": "Enable CH1 with AV 0, give it a call for heat with BV 1 and write the CH1 setpoint (or the cascade setpoint for a cascade). Read the run contact, outlet temperature and firing rate, and watch the alarm contact and lockout code.",
  "minimum_points": [
   {
    "ref": "AV 0",
    "name": "CH1 enable/disable",
    "why": "CH1 enable (1 = enable)"
   },
   {
    "ref": "BV 1",
    "name": "CH1 demand",
    "why": "CH1 call for heat (1 = demand)"
   },
   {
    "ref": "AV 1",
    "name": "CH1 setpoint",
    "why": "CH1 water setpoint, °C/°F"
   },
   {
    "ref": "AV 27",
    "name": "Cascade setpoint",
    "why": "Setpoint when boilers run in cascade"
   },
   {
    "ref": "BI 11",
    "name": "Digital Output Status - Run Contact",
    "why": "Boiler run output"
   },
   {
    "ref": "AI 1",
    "name": "Outlet sensor",
    "why": "Outlet water temperature, °C/°F"
   },
   {
    "ref": "AI 33",
    "name": "Modulating Burner1 Firing rate",
    "why": "Burner 1 firing rate, %"
   },
   {
    "ref": "BI 12",
    "name": "Digital Output Status - Alarm Contact",
    "why": "Alarm output"
   },
   {
    "ref": "AI 35",
    "name": "Lockout code",
    "why": "Lockout code (0-29)"
   }
  ],
  "enable": "AV 0 CH1 enable/disable (0 = disable, 1 = enable) and BV 1 CH1 demand (0 = no demand, 1 = demand). CH2-CH4 and DHW have matching objects.",
  "heartbeat": null,
  "remote_sensors": null,
  "setup": [
   "Device instance = Node_Offset + boiler Node-ID. Node_Offset defaults to 50000 and is changed in the ProtoNode web configurator; Node-IDs must be unique, 1-255.",
   "Boiler to ProtoNode: Modbus RTU, 38400 baud, 8 data bits, no parity, 1 stop bit.",
   "Default ProtoNode IP address 192.168.1.24, mask 255.255.255.0. Choose BACnet IP or BACnet MS/TP with the Protocol Selector, then add one profile per device with its Node-ID.",
   "With more than one device on a ProtoNode, set BACnet Virtual Server Nodes to Yes. For BACnet MS/TP also set MAC address, baud rate and Max Master.",
   "Two or more ProtoNodes on the same subnet need different BACnet Network Numbers (default 50).",
   "A ProtoNode handles 1,500 registers in total; this profile uses 254 per device."
  ],
  "gotchas": [
   "PID terms (P unitless, I and D in seconds) for each circuit are writable AVs; they are tuning values, not BMS commands.",
   "AI 36 Alarm reason uses codes 30-44, continuing the lockout code list in AI 35.",
   "BV 0 DHW demand reads 0 = Disable, 1 = Enable in the mapping, unlike the CH demand BVs."
  ]
 },
 "source": {
  "title": "Vendor Protocol Mapping (LAARS Vendor Mappings for the ProtoNode FPC-N34 / FPC-N35)",
  "doc_number": "4404",
  "revision_date": "Document Revision 14.B, October 2020",
  "url": "https://www.laars.com/uploads/products/4404.pdf"
 },
 "points": [
  {
   "type": "AI",
   "instance": 0,
   "name": "Inlet sensor",
   "description": "",
   "units": "°C/°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 1,
   "name": "Outlet sensor",
   "description": "",
   "units": "°C/°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 2,
   "name": "Stack Sensor",
   "description": "",
   "units": "°C/°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 3,
   "name": "DHW sensor",
   "description": "",
   "units": "°C/°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 4,
   "name": "System Return Sensor",
   "description": "",
   "units": "°C/°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 5,
   "name": "System Supply Sensor",
   "description": "",
   "units": "°C/°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 6,
   "name": "Outdoor Sensor",
   "description": "",
   "units": "°C/°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 7,
   "name": "Auxiliary Sensor 1",
   "description": "",
   "units": "°C/°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 8,
   "name": "Auxiliary Sensor 2",
   "description": "",
   "units": "°C/°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 9,
   "name": "Auxiliary Sensor 3",
   "description": "",
   "units": "°C/°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 10,
   "name": "Auxiliary Sensor 4",
   "description": "",
   "units": "°C/°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 11,
   "name": "Auxiliary Sensor 5",
   "description": "",
   "units": "°C/°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 12,
   "name": "Flame Signal",
   "description": "",
   "units": "µA",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 13,
   "name": "Not used",
   "description": "Marked not used in the mapping",
   "units": "µA",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 14,
   "name": "0-10VDC (4-20mA) Input for BAS",
   "description": "",
   "units": "mV",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 15,
   "name": "0-10VDC (4-20mA) Input for Pump",
   "description": "",
   "units": "mV",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 16,
   "name": "0-10VDC (4-20mA) Input for Mixing Valve",
   "description": "",
   "units": "mV",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 17,
   "name": "0-10VDC (4-20mA) Input for Auxiliary",
   "description": "",
   "units": "mV",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 20,
   "name": "Current demand source",
   "description": "",
   "units": "",
   "access": "R",
   "states": "0=No demand, 1=Anti Short Cycle, 2=Service, 3=DHW, 4=Slave Cascade, 5=External, 6=CH1, 7=CH2, 8=CH3, 9=CH4, 10=Antifrost"
  },
  {
   "type": "AI",
   "instance": 23,
   "name": "0-10VDC (4-20mA) Output for Pump Speed",
   "description": "",
   "units": "mV",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 24,
   "name": "0-10VDC (4-20mA) Output for Fan Speed",
   "description": "",
   "units": "mV",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 25,
   "name": "0-10VDC (4-20mA) Output for Mixing Valve",
   "description": "",
   "units": "mV",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 26,
   "name": "0-10VDC (4-20mA) Output for Auxiliary 1",
   "description": "",
   "units": "mV",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 27,
   "name": "Modulating Fan 1 - Speed",
   "description": "",
   "units": "rpm",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 28,
   "name": "O2",
   "description": "",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 29,
   "name": "High/Low Blower 1 Status",
   "description": "",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=Low, 2=High"
  },
  {
   "type": "AI",
   "instance": 30,
   "name": "CO2",
   "description": "",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 31,
   "name": "Pressure 1",
   "description": "",
   "units": "in. W.C.",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 32,
   "name": "Pressure 2",
   "description": "",
   "units": "in. W.C.",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 33,
   "name": "Modulating Burner1 Firing rate",
   "description": "",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 34,
   "name": "Modulating Burner2 Firing rate",
   "description": "",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 35,
   "name": "Lockout code",
   "description": "",
   "units": "",
   "access": "R",
   "states": "0=Low Flow Error, 1=Low Water Cut Off Error, 2=Manual Reset High Limit Error, 3=Blocked Flue Error, 4=High Gas Pressure Error, 5=Low Gas Pressure Error, 6=Auto Reset High Limit Error, 7=Spare Safety Chain Error, 8=Outlet Probe Error, 9=Outlet Probe Drift Error, 10=Outlet Probe High Limit Error, 11=Flue Probe Error, 12=Condensing Shutdown Error, 13=Flue Probe Drift Error, 14=Flue Probe High Limit Error, 15=Inlet Probe Error, 16=Delta T Error, 17=Generic Lockout, 18=Burner1 APS Switch Error, 19=Burner2 APS Switch Error, 20=Burner1 HSI Flame Error, 21=Burner2 HSI Flame Error, 22=Burner1 Max Trials Error, 23=Burner2 Max Trials Error, 24=Burner1 Max Flame Lost Error, 25=Burner2 Max Flame Lost Error, 26=Burner1 Proven HSI Error, 27=Burner2 Proven HSI Error, 28=Burner1 Fan Speed Error, 29=Burner2 Fan Speed Error"
  },
  {
   "type": "AI",
   "instance": 36,
   "name": "Alarm reason",
   "description": "",
   "units": "",
   "access": "R",
   "states": "30=24VDC Error, 31=24VAC Error, 32=DHW Probe Error, 33=System Supply Probe Error, 34=System Return Probe Error, 35=Outdoor Probe Error, 36=Spare1 Probe Error, 37=Spare2 Probe Error, 38=Spare3 Probe Error, 39=Spare4 Probe Error, 40=Spare5 Probe Error, 41=High Limit Auto Error, 42=High Delta T Error, 43=Fan Speed Error, 44=Condensing Alarm"
  },
  {
   "type": "AI",
   "instance": 37,
   "name": "LMV - Phase",
   "description": "LMV burner sequence phase",
   "units": "",
   "access": "R",
   "states": "0=Lockout, 2=Safety, 10=Home Run Position, 12=Burner Standby, 22=Combustion Fan, SV On, 24=Drive to Prepurge Position, 30=Prepurge, 35=VSD Drive to Ignition Position, 36=Drive to Ignition Position, 38=Preignition (Spark) On, 40=Pilot Vlave On, 42=Ignition (Spark) Off, 44=Interval 1 (Pilot Stabilization), 50=Safety Time 2, 52=Interval 2 (Main Stabilization), 60=Operation 1 (Normal Operation), 62=Operation 2 (Driving to Low Fire), 64=Drive to Ignition Position, 65=Interval 2, 66=Ignition (Spark) + Pilot Valve On, 67=Main Valve Off, 68=Pilot Waiting Time, 69=Pilot Waiting Time - Startup (Interval 1), 70=Afterburn Time, 72=Drive to Postpurge Position, 74=Mandatory Postpurge, 78=Optional Postpurge, 80=Evacuate, 81=Atmospheric Test, 82=Fill, 83=Pressure Test, 90=Gas Shortage"
  },
  {
   "type": "AI",
   "instance": 38,
   "name": "History - DHW Heat Demand Cycles",
   "description": "Cycle count",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 39,
   "name": "History - CH1 Heat Demand Cycles",
   "description": "Cycle count",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 40,
   "name": "History - CH2 Heat Demand Cycles",
   "description": "Cycle count",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 41,
   "name": "History - CH3 Heat Demand Cycles",
   "description": "Cycle count",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 42,
   "name": "History - CH4 Heat Demand Cycles",
   "description": "Cycle count",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 43,
   "name": "History - Cascade Heat Demand Cycles",
   "description": "Cycle count",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 44,
   "name": "History - Burner Stage 1 Cycles",
   "description": "Cycle count",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 45,
   "name": "LMV - Fuel Actuator Position",
   "description": "Actuator position, -50 to 150°",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 46,
   "name": "LMV - Air Actuator Position",
   "description": "Actuator position, -50 to 150°",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 47,
   "name": "LMV - VSD Setting",
   "description": "",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 48,
   "name": "History - Boiler Pump Cycles",
   "description": "Cycle count",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 49,
   "name": "History - DHW Pump Cycles",
   "description": "Cycle count",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 50,
   "name": "History - System Pump Cycles",
   "description": "Cycle count",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 51,
   "name": "History - Average Boiler Outlet Temperature",
   "description": "",
   "units": "°C/°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 52,
   "name": "History - Maximum Boiler Outlet Temperature",
   "description": "",
   "units": "°C/°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 53,
   "name": "History - Minimum Boiler Outlet Temperature",
   "description": "",
   "units": "°C/°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 54,
   "name": "History - Boiler Average Firing Temperature",
   "description": "",
   "units": "°C/°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 55,
   "name": "History - Boiler Maximum Firing Time",
   "description": "",
   "units": "h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 56,
   "name": "History - Boiler Minimum Firing Time",
   "description": "",
   "units": "h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 57,
   "name": "LMV - Modulation Rate",
   "description": "",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 58,
   "name": "LMV - Flame Signal",
   "description": "",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 59,
   "name": "LMV - Error Code",
   "description": "Code 0-255",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 60,
   "name": "LMV - Diagnostic Code",
   "description": "Code 0-255",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 63,
   "name": "LMV - Burner ID",
   "description": "Decode with the LMV manual",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 64,
   "name": "Modulating probe",
   "description": "",
   "units": "",
   "access": "R",
   "states": "0=None, 1=Outlet, 2=DHW, 3=System Supply, 4=Inlet, 5=Flue, 6=System Return"
  },
  {
   "type": "AI",
   "instance": 65,
   "name": "Service active",
   "description": "",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 66,
   "name": "Lag 1 State",
   "description": "",
   "units": "",
   "access": "R",
   "states": "0=Not Present, 1=Not Available, 2=Available, 3=Running, 4=Locked out"
  },
  {
   "type": "AI",
   "instance": 67,
   "name": "Lag 1 Firing Rate",
   "description": "",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 68,
   "name": "Lag 2 State",
   "description": "",
   "units": "",
   "access": "R",
   "states": "0=Not Present, 1=Not Available, 2=Available, 3=Running, 4=Locked out"
  },
  {
   "type": "AI",
   "instance": 69,
   "name": "Lag 2 Firing Rate",
   "description": "",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 70,
   "name": "Lag 3 State",
   "description": "",
   "units": "",
   "access": "R",
   "states": "0=Not Present, 1=Not Available, 2=Available, 3=Running, 4=Locked out"
  },
  {
   "type": "AI",
   "instance": 71,
   "name": "Lag 3 Firing Rate",
   "description": "",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 72,
   "name": "Lag 4 State",
   "description": "",
   "units": "",
   "access": "R",
   "states": "0=Not Present, 1=Not Available, 2=Available, 3=Running, 4=Locked out"
  },
  {
   "type": "AI",
   "instance": 73,
   "name": "Lag 4 Firing Rate",
   "description": "",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 74,
   "name": "Lag 5 State",
   "description": "",
   "units": "",
   "access": "R",
   "states": "0=Not Present, 1=Not Available, 2=Available, 3=Running, 4=Locked out"
  },
  {
   "type": "AI",
   "instance": 75,
   "name": "Lag 5 Firing Rate",
   "description": "",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 76,
   "name": "Lag 6 State",
   "description": "",
   "units": "",
   "access": "R",
   "states": "0=Not Present, 1=Not Available, 2=Available, 3=Running, 4=Locked out"
  },
  {
   "type": "AI",
   "instance": 77,
   "name": "Lag 6 Firing Rate",
   "description": "",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 78,
   "name": "Lag 7 State",
   "description": "",
   "units": "",
   "access": "R",
   "states": "0=Not Present, 1=Not Available, 2=Available, 3=Running, 4=Locked out"
  },
  {
   "type": "AI",
   "instance": 79,
   "name": "Lag 7 Firing Rate",
   "description": "",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 80,
   "name": "Lead 0 State",
   "description": "",
   "units": "",
   "access": "R",
   "states": "0=Not Present, 1=Not Available, 2=Available, 3=Running, 4=Locked out"
  },
  {
   "type": "AI",
   "instance": 81,
   "name": "Lead 0 Firing Rate",
   "description": "",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 83,
   "name": "Active CH setpoint",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 84,
   "name": "Burner Status 1",
   "description": "",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "AI",
   "instance": 85,
   "name": "LMV - Lower Trim Limit",
   "description": "Decode with the LMV manual",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 86,
   "name": "LMV - Upper Trim Limit",
   "description": "Decode with the LMV manual",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 87,
   "name": "LMV - Current Trim",
   "description": "Decode with the LMV manual",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 88,
   "name": "LMV - Fan Speed",
   "description": "",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 89,
   "name": "Boiler Pump Status",
   "description": "",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "AI",
   "instance": 90,
   "name": "Cascade Lead Heat Demand",
   "description": "",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "AI",
   "instance": 91,
   "name": "Burner 1 Run Time",
   "description": "",
   "units": "h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 92,
   "name": "Burner 2 Run Time",
   "description": "",
   "units": "h",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 0,
   "name": "CH1 enable/disable",
   "description": "",
   "units": "",
   "access": "W",
   "states": "0=Disable, 1=Enable"
  },
  {
   "type": "AV",
   "instance": 1,
   "name": "CH1 setpoint",
   "description": "",
   "units": "°C/°F",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2,
   "name": "CH1 P",
   "description": "",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 3,
   "name": "CH1 I",
   "description": "",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 4,
   "name": "CH1 D",
   "description": "",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 5,
   "name": "CH2 enable/disable",
   "description": "",
   "units": "",
   "access": "W",
   "states": "0=Disable, 1=Enable"
  },
  {
   "type": "AV",
   "instance": 6,
   "name": "CH2 setpoint",
   "description": "",
   "units": "°C/°F",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 7,
   "name": "CH2 P",
   "description": "",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 8,
   "name": "CH2 I",
   "description": "",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 9,
   "name": "CH2 D",
   "description": "",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 10,
   "name": "CH3 enable/disable",
   "description": "",
   "units": "",
   "access": "W",
   "states": "0=Disable, 1=Enable"
  },
  {
   "type": "AV",
   "instance": 11,
   "name": "CH3 setpoint",
   "description": "",
   "units": "°C/°F",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 12,
   "name": "CH3 P",
   "description": "",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 13,
   "name": "CH3 I",
   "description": "",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 14,
   "name": "CH3 D",
   "description": "",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 15,
   "name": "CH4 enable/disable",
   "description": "",
   "units": "",
   "access": "W",
   "states": "0=Disable, 1=Enable"
  },
  {
   "type": "AV",
   "instance": 16,
   "name": "CH4 setpoint",
   "description": "",
   "units": "°C/°F",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 17,
   "name": "CH4 P",
   "description": "",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 18,
   "name": "CH4 I",
   "description": "",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 19,
   "name": "CH4 D",
   "description": "",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 20,
   "name": "DHW enable/disable",
   "description": "",
   "units": "",
   "access": "W",
   "states": "0=Disable, 1=Enable"
  },
  {
   "type": "AV",
   "instance": 21,
   "name": "DHW setpoint",
   "description": "",
   "units": "°C/°F",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 22,
   "name": "DHW P",
   "description": "",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 23,
   "name": "DHW I",
   "description": "",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 24,
   "name": "DHW D",
   "description": "",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 25,
   "name": "DHW recirculation enable",
   "description": "",
   "units": "",
   "access": "W",
   "states": "0=Disable, 1=Enable"
  },
  {
   "type": "AV",
   "instance": 26,
   "name": "DHW recirculation Set point",
   "description": "",
   "units": "°C/°F",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 27,
   "name": "Cascade setpoint",
   "description": "",
   "units": "°C/°F",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 28,
   "name": "Cascade P",
   "description": "",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 29,
   "name": "Cascade I",
   "description": "",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 30,
   "name": "Cascade D",
   "description": "",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 35,
   "name": "Hybrid setpoint",
   "description": "",
   "units": "°C/°F",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 36,
   "name": "Hybrid differential temp",
   "description": "",
   "units": "°C/°F",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 37,
   "name": "VariPrime P",
   "description": "",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 38,
   "name": "VariPrime I",
   "description": "",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 39,
   "name": "VariPrime D",
   "description": "",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 40,
   "name": "VariPrime delta T",
   "description": "",
   "units": "°C/°F",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 41,
   "name": "AntiCondens Enable",
   "description": "",
   "units": "",
   "access": "W",
   "states": "0=Disable, 1=Enable"
  },
  {
   "type": "AV",
   "instance": 42,
   "name": "AntiCondens Temp",
   "description": "",
   "units": "°C/°F",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 43,
   "name": "AntiCondens P",
   "description": "",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 44,
   "name": "AntiCondens I",
   "description": "",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 45,
   "name": "AntiCondens D",
   "description": "",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 1,
   "name": "Safety Chain Status - flow",
   "description": "Modbus register 40018 bit 0",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 2,
   "name": "Safety Chain Status - Low Water Cut-off",
   "description": "Modbus register 40018 bit 1",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 3,
   "name": "Safety Chain Status - Manual Reset High Limit",
   "description": "Modbus register 40018 bit 2",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 4,
   "name": "Safety Chain Status - Air Proving Switch",
   "description": "Modbus register 40018 bit 3",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 5,
   "name": "Safety Chain Status - High Gas Pressure Switch",
   "description": "Modbus register 40018 bit 4",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 6,
   "name": "Safety Chain Status - Low Gas Pressure Switch",
   "description": "Modbus register 40018 bit 5",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 7,
   "name": "Safety Chain Status - Auto Reset High Limit",
   "description": "Modbus register 40018 bit 6",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 8,
   "name": "Safety Chain Status - Field Interlock",
   "description": "Modbus register 40018 bit 7",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 9,
   "name": "Non-Safety Chain Status - Interlock 1",
   "description": "Modbus register 40019 bit 0",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 10,
   "name": "Non-Safety Chain Status - Interlock 2",
   "description": "Modbus register 40019 bit 1",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 11,
   "name": "Digital Output Status - Run Contact",
   "description": "Modbus register 40021 bit 0",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 12,
   "name": "Digital Output Status - Alarm Contact",
   "description": "Modbus register 40021 bit 1",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 13,
   "name": "Digital Output Status - DHW Pump",
   "description": "Modbus register 40021 bit 2",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 14,
   "name": "Digital Output Status - System Pump",
   "description": "Modbus register 40021 bit 3",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 15,
   "name": "Digital Output Status - Auxiliary (40021 bit 4)",
   "description": "Modbus register 40021 bit 4",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 16,
   "name": "Digital Output Status - Auxiliary (40021 bit 5)",
   "description": "Modbus register 40021 bit 5",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 17,
   "name": "Digital Output Status - Auxiliary (40021 bit 6)",
   "description": "Modbus register 40021 bit 6",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 18,
   "name": "Digital Output Status - Boiler Pump",
   "description": "Modbus register 40021 bit 7",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 19,
   "name": "Digital Output Status - Auxiliary (40021 bit 8)",
   "description": "Modbus register 40021 bit 8",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 20,
   "name": "Gas Valve Status - Pilot Valve 1",
   "description": "Modbus register 40022 bit 0",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 21,
   "name": "Gas Valve Status - Stage 1/Valve 1",
   "description": "Modbus register 40022 bit 1",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 22,
   "name": "LMV - Inputs - Controller On/Off",
   "description": "Modbus register 40061 bit 0",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 23,
   "name": "LMV - Inputs - Fan contactor contact",
   "description": "Modbus register 40061 bit 1",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 24,
   "name": "LMV - Inputs - Fuel selection oil",
   "description": "Modbus register 40061 bit 2",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 25,
   "name": "LMV - Inputs - Fuel selection gas",
   "description": "Modbus register 40061 bit 3",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 26,
   "name": "LMV - Inputs - Pressure switch-max-oil",
   "description": "Modbus register 40061 bit 5",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 27,
   "name": "LMV - Inputs - Pressure switch-min-oil",
   "description": "Modbus register 40061 bit 6",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 28,
   "name": "LMV - Inputs - Pressure switch - valve proving",
   "description": "Modbus register 40061 bit 7",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 29,
   "name": "LMV - Inputs - Safety loop",
   "description": "Modbus register 40061 bit 8",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 30,
   "name": "LMV - Inputs - Pressure switch-min-gas",
   "description": "Modbus register 40061 bit 10",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 31,
   "name": "LMV - Inputs - Pressure switch-max-gas",
   "description": "Modbus register 40061 bit 11",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 32,
   "name": "LMV - Inputs - LP",
   "description": "Modbus register 40061 bit 13",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 33,
   "name": "LMV - Inputs - Start release oil",
   "description": "Modbus register 40061 bit 14",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 34,
   "name": "LMV - Inputs - Heavy oil immediate start",
   "description": "Modbus register 40061 bit 15",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 35,
   "name": "LMV - Outputs - Alarm",
   "description": "Modbus register 40062 bit 0",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 36,
   "name": "LMV - Outputs - Ignition",
   "description": "Modbus register 40062 bit 4",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 37,
   "name": "LMV - Outputs - Start signal/DW valve",
   "description": "Modbus register 40062 bit 5",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 38,
   "name": "LMV - Outputs - Fan",
   "description": "Modbus register 40062 bit 6",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 39,
   "name": "LMV - Outputs - Oil pump/magnetic coupling",
   "description": "Modbus register 40062 bit 7",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 40,
   "name": "LMV - Outputs - Fuel valve SV oil",
   "description": "Modbus register 40062 bit 8",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 41,
   "name": "LMV - Outputs - Fuel vlave V1 oil",
   "description": "Modbus register 40062 bit 9",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 42,
   "name": "LMV - Outputs - Fuel valve V2 oil",
   "description": "Modbus register 40062 bit 10",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 43,
   "name": "LMV - Outputs - Fuel valve V3 oil",
   "description": "Modbus register 40062 bit 11",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 44,
   "name": "LMV - Outputs - Fuel valve SV gas",
   "description": "Modbus register 40062 bit 12",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 45,
   "name": "LMV - Outputs - Fuel valve V1 gas",
   "description": "Modbus register 40062 bit 13",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 46,
   "name": "LMV - Outputs - Fuel valve V2 gas",
   "description": "Modbus register 40062 bit 14",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 47,
   "name": "LMV - Outputs - Fuel valve PV gas",
   "description": "Modbus register 40062 bit 15",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 0,
   "name": "DHW demand",
   "description": "",
   "units": "",
   "access": "W",
   "states": "0=Disable, 1=Enable"
  },
  {
   "type": "BV",
   "instance": 1,
   "name": "CH1 demand",
   "description": "",
   "units": "",
   "access": "W",
   "states": "0=No Demand, 1=Demand"
  },
  {
   "type": "BV",
   "instance": 2,
   "name": "CH2 demand",
   "description": "",
   "units": "",
   "access": "W",
   "states": "0=No Demand, 1=Demand"
  },
  {
   "type": "BV",
   "instance": 3,
   "name": "CH3 demand",
   "description": "",
   "units": "",
   "access": "W",
   "states": "0=No Demand, 1=Demand"
  },
  {
   "type": "BV",
   "instance": 4,
   "name": "CH4 demand",
   "description": "",
   "units": "",
   "access": "W",
   "states": "0=No Demand, 1=Demand"
  }
 ],
 "page": "https://easybacnet.com/bacnet-points-lists/laars/htd-protonode",
 "note": "Re-typed from the manufacturer's public documentation (see source). Point availability varies by firmware and options; verify against the live device."
}
