{
 "manufacturer": "Patterson-Kelley",
 "manufacturer_slug": "patterson-kelley",
 "model": "LOVE controller (ProtoNode FPC-N34/N35)",
 "model_slug": "love-protonode",
 "aliases": [
  "LOVE",
  "P-K LOVE",
  "Patterson-Kelley LOVE",
  "ProtoNode FPC-N34"
 ],
 "equipment_type": "Boiler controller gateway",
 "applies_to": "Patterson-Kelley equipment with a LOVE temperature controller, read through the ProtoNode FPC-N34 / FPC-N35.",
 "summary": "The ProtoNode maps the LOVE temperature (PID) controller used on Patterson-Kelley equipment to 40 objects: process value, setpoint and range, PID tuning, output limits, alarm types and limits, lock and write-in status, run/stop commands and error flags.",
 "bacnet_transport": [
  "BACnet IP",
  "BACnet MS/TP"
 ],
 "firmware": null,
 "default_device_instance": null,
 "access_inferred": true,
 "notes": [
  "Appendix B.2 LOVE of the guide (pages 41-42).",
  "The table has no read/write column; access is inferred from the N2 type (AO/DO = writable).",
  "The guide is hosted on weil-mclain.com and prints no boiler brand (only the ProtoNode vendor code Harsco12); ENVI, LOVE and NURO are listed here under Patterson-Kelley.",
  "State texts come from the notes under the table."
 ],
 "integration": {
  "summary": "Use Control RUN/STOP (BV 27) and the Setpoint (AV 2). Read the process value and output value, and watch the error objects.",
  "minimum_points": [
   {
    "ref": "BV 27",
    "name": "Control RUN/STOP Setting",
    "why": "Control run command: 0 = STOP, 1 = RUN"
   },
   {
    "ref": "AV 2",
    "name": "Setpoint",
    "why": "Temperature setpoint"
   },
   {
    "ref": "AI 25",
    "name": "Communication Write-in Selection",
    "why": "Comms write-in must be 1 = enabled to write"
   },
   {
    "ref": "AI 1",
    "name": "Process Value",
    "why": "Process value (measured temperature)"
   },
   {
    "ref": "AV 9",
    "name": "Output Value",
    "why": "Control output value"
   },
   {
    "ref": "AI 33",
    "name": "Input Sensor Did Not Connect",
    "why": "Input sensor not connected"
   }
  ],
  "enable": "BV 27 Control RUN/STOP Setting (0 = STOP, 1 = RUN) and AV 2 Setpoint. AI 25 Communication Write-in Selection must read 1 (enabled) for network writes; AV 24 Setting Lock Status can lock settings.",
  "heartbeat": null,
  "remote_sensors": null,
  "setup": [
   "ProtoNode FPC-N34 (BACnet MS/TP, BACnet IP, Metasys N2, Modbus TCP) or FPC-N35 (LonWorks).",
   "Boiler side: Modbus RTU, 9600, 19200 or 38400 baud, 1 or 2 stop bits, no parity, 8 data bits; Node-ID 1-255 per boiler. Mixed ENVI/LOVE/NURO networks must run at 9600.",
   "BACnet device instance = Node_Offset (default 50,000) + Modbus Node-ID."
  ],
  "gotchas": [
   "Access is inferred from the N2 types; tuning and alarm objects (AV 5-24) are writable but are controller configuration.",
   "Process value codes 8002H-8007H mean sensor or memory errors, not temperatures."
  ]
 },
 "source": {
  "title": "ProtoNode FPC-N34 and FPC-N35 Startup Guide For Interfacing Products: ENVI, LOVE, NURO, Appendix B.2 LOVE",
  "doc_number": "Document Revision 14.B",
  "revision_date": "2016-04 (effective date)",
  "url": "https://www.weil-mclain.com/wp-content/uploads/Nuro-Controller-ProtoNode-Startup-Guide_1.pdf"
 },
 "points": [
  {
   "type": "AI",
   "instance": 1,
   "name": "Process Value",
   "description": "Process value (temperature); error codes 8002H-8007H",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2,
   "name": "Setpoint",
   "description": "Temperature setpoint",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 3,
   "name": "Upper-Limit of Temp Range",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 4,
   "name": "Lower-Limit of Temp Range",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 5,
   "name": "Control Method",
   "description": "",
   "units": "",
   "access": "W",
   "states": "0=PID, 1=On/Off, 2=manual tuning, 3=PID program control"
  },
  {
   "type": "AV",
   "instance": 6,
   "name": "PB Proportional Band",
   "description": "",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 7,
   "name": "Ti Integral Time",
   "description": "",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 8,
   "name": "Td Derivative Time",
   "description": "",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 9,
   "name": "Output Value",
   "description": "Control output value",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 10,
   "name": "Upper-Limit Regulation",
   "description": "",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 11,
   "name": "Lower-Limit Regulation",
   "description": "",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 12,
   "name": "Analog Decimal Setting",
   "description": "",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 13,
   "name": "PID Parameter Selection",
   "description": "",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 14,
   "name": "SV Value",
   "description": "",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 15,
   "name": "Alarm 1 Type",
   "description": "",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 16,
   "name": "Alarm 2 Type",
   "description": "",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 17,
   "name": "Alarm 3 Type",
   "description": "",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 18,
   "name": "Upper-Limit Alarm 1",
   "description": "",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 19,
   "name": "Lower-Limit Alarm 1",
   "description": "",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 20,
   "name": "Upper-Limit Alarm 2",
   "description": "",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 21,
   "name": "Lower-Limit Alarm 2",
   "description": "",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 22,
   "name": "Upper-Limit Alarm 3",
   "description": "",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 23,
   "name": "Lower-Limit Alarm 3",
   "description": "",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 24,
   "name": "Setting Lock Status",
   "description": "",
   "units": "",
   "access": "W",
   "states": "0=normal, 1=all setting lock, 11=lock others than SV value"
  },
  {
   "type": "AI",
   "instance": 25,
   "name": "Communication Write-in Selection",
   "description": "",
   "units": "",
   "access": "R",
   "states": "0=disabled, 1=enabled"
  },
  {
   "type": "BV",
   "instance": 26,
   "name": "Temp Unit Display Selection",
   "description": "",
   "units": "",
   "access": "W",
   "states": "0=°F, 1=°C"
  },
  {
   "type": "BV",
   "instance": 27,
   "name": "Control RUN/STOP Setting",
   "description": "",
   "units": "",
   "access": "W",
   "states": "0=STOP, 1=RUN"
  },
  {
   "type": "BV",
   "instance": 28,
   "name": "STOP Setting for PID",
   "description": "",
   "units": "",
   "access": "W",
   "states": "0=RUN, 1=STOP"
  },
  {
   "type": "BV",
   "instance": 29,
   "name": "Temp STOP for PID",
   "description": "",
   "units": "",
   "access": "W",
   "states": "0=RUN, 1=temporary STOP"
  },
  {
   "type": "AI",
   "instance": 30,
   "name": "PV Unstable",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 31,
   "name": "Re-initialize",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 32,
   "name": "PV Value for Error 0002H",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 33,
   "name": "Input Sensor Did Not Connect",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 34,
   "name": "PV Value for error 0003H",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 35,
   "name": "Input Signal Error",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 36,
   "name": "PV Value for Error 0004H",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 37,
   "name": "Over Input Range",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 38,
   "name": "ADC Fail",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 39,
   "name": "PV Value for Error 0006H",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 40,
   "name": "EEPROM Read/Write error",
   "description": "",
   "units": "",
   "access": "R",
   "states": ""
  }
 ],
 "page": "https://easybacnet.com/bacnet-points-lists/patterson-kelley/love-protonode",
 "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"
}
