{
 "manufacturer": "Peerless",
 "manufacturer_slug": "peerless",
 "model": "PureFire PF-460, PF-850, PF-1000, PF-1500 (852IF) - ProtoNode",
 "model_slug": "purefire-852if",
 "aliases": [
  "PureFire",
  "852IF",
  "PF-460",
  "PF-850",
  "PF-1000",
  "PF-1500",
  "ProtoNode FPC-N34",
  "PB Heat"
 ],
 "equipment_type": "Boiler controller gateway",
 "applies_to": "Peerless PureFire PF-460, PF-850, PF-1000 and PF-1500 boilers (852IF interface), read through a ProtoNode FPC-N34 gateway.",
 "summary": "A ProtoNode FPC-N34 auto-discovers PureFire boilers on Modbus RTU and makes each one a BACnet IP or BACnet MS/TP device. The 852IF profile has 35 objects: state, status and error codes for the managing and dependent controls, temperatures, firing rate, pump states and counters, plus writable CH/DHW setpoints and modes, a units selector and a controller reset.",
 "bacnet_transport": [
  "BACnet IP",
  "BACnet MS/TP"
 ],
 "firmware": null,
 "default_device_instance": "50000 + boiler Modbus node ID (Node_Offset default 50000)",
 "access_inferred": true,
 "notes": [
  "Each boiler is its own BACnet device: device instance = Node_Offset (default 50000) + the boiler's Modbus node ID.",
  "No read/write column is given. AVs and BVs map to LonWorks input variables and are marked writable; AIs and BIs are read-only.",
  "No units or state texts are given.",
  "PF-50 through PF-399 boilers use the smaller PFA-1 profile.",
  "Points come in Managing and Dependent pairs (state, status, error code, firing rate).",
  "BI 1 and BV 2 are both named Modbus Units (readback and command)."
 ],
 "integration": {
  "summary": "Set each boiler's Modbus node ID, let the ProtoNode auto-discover them, then find each boiler as its own BACnet device. Write the CH mode and CH setpoint AVs (DHW mode and setpoint for DHW), and read state, status, supply temperature, firing rate and the error and warning codes.",
  "minimum_points": [
   {
    "ref": "AV 5",
    "name": "CH Mode",
    "why": "Central heat mode command"
   },
   {
    "ref": "AV 3",
    "name": "CH Setpoint",
    "why": "Central heat setpoint command"
   },
   {
    "ref": "AI 3",
    "name": "State (Managing)",
    "why": "Operating state code"
   },
   {
    "ref": "AI 4",
    "name": "Status (Managing)",
    "why": "Status code"
   },
   {
    "ref": "AI 11",
    "name": "Supply Temp",
    "why": "Supply water temperature"
   },
   {
    "ref": "AI 16",
    "name": "Firing Rate",
    "why": "Burner firing rate"
   },
   {
    "ref": "AI 5",
    "name": "Error Code (Managing)",
    "why": "Active error code"
   },
   {
    "ref": "AI 6",
    "name": "Warning Code",
    "why": "Active warning code"
   }
  ],
  "enable": "The writable objects are AV 3 CH Setpoint, AV 4 DHW Setpoint, AV 5 CH Mode, AV 6 DHW Mode, BV 1 Controller Reset and BV 2 Modbus Units. The guide does not give the mode values or say how they interact with the boiler's local settings.",
  "heartbeat": null,
  "remote_sensors": null,
  "setup": [
   "Device instance = Node_Offset + Modbus node ID; Node_Offset defaults to 50000 and is changed in the Web Configurator (default IP 192.168.1.24).",
   "S-bank DIP switches: S0-S2 all off = BACnet IP, S0 on = BACnet MS/TP.",
   "BACnet MS/TP: one MAC address (1-127) on the A-bank switches; baud on B0-B3, factory default 38400.",
   "Boiler side: Modbus RTU 9600 baud, no parity, 8 data bits, 1 stop bit; each boiler needs a unique node ID (1-255).",
   "A ProtoNode handles up to 1,500 registers in total.",
   "Auto-discovery: S3 on at first power-up; after about 3 minutes, turn S3 off to save the configuration."
  ],
  "gotchas": [
   "No units are given; BI 1 / BV 2 Modbus Units appear to set the unit system (the guide does not say), so check temperatures against the boiler display.",
   "Code points (state, status, error, warning) need the boiler manual to decode."
  ]
 },
 "source": {
  "title": "ProtoNode FPC-N34 and ProtoNode FPC-N35 Start-up Guide for Interfacing Peerless PureFire Boilers Products: 852IF, PFA-1",
  "doc_number": "PF8296 R0",
  "revision_date": "Document Revision 1.C, November 2016",
  "url": "https://www.peerlessboilers.com/wp-content/uploads/2017/12/PF8296-REV0_Manual-ProtoNode-Start-up-Guide-PF850-1500.pdf"
 },
 "points": [
  {
   "type": "BI",
   "instance": 1,
   "name": "Modbus Units",
   "description": "Unit system in use",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 2,
   "name": "Device Type",
   "description": "Device type code",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 3,
   "name": "State (Managing)",
   "description": "Managing control state",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 4,
   "name": "Status (Managing)",
   "description": "Managing control status",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 5,
   "name": "Error Code (Managing)",
   "description": "Managing control error code",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 6,
   "name": "Warning Code",
   "description": "Active warning code",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 7,
   "name": "CH Setpoint",
   "description": "Central heat setpoint readback",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 8,
   "name": "DHW Setpoint",
   "description": "DHW setpoint readback",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 9,
   "name": "CH Mode",
   "description": "Central heat mode readback",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 10,
   "name": "DHW Mode",
   "description": "DHW mode readback",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 11,
   "name": "Supply Temp",
   "description": "Supply water temperature",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 12,
   "name": "Return Temp",
   "description": "Return water temperature",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 13,
   "name": "DHW Temp",
   "description": "DHW temperature",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 14,
   "name": "Flue Gas Temp",
   "description": "Flue gas temperature",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 15,
   "name": "Header Temp",
   "description": "System header temperature",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 16,
   "name": "Firing Rate",
   "description": "Firing rate",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 17,
   "name": "Flame Current",
   "description": "Flame current",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 18,
   "name": "Analog In",
   "description": "Analog input value",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 19,
   "name": "CH Pump",
   "description": "Central heat pump state",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 20,
   "name": "DHW Pump",
   "description": "DHW pump state",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 21,
   "name": "Successful Igntions",
   "description": "Successful ignition count",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 22,
   "name": "Failed Ignitions",
   "description": "Failed ignition count",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 23,
   "name": "Flame Failures",
   "description": "Flame failure count",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 24,
   "name": "Burner On",
   "description": "Burner on hours",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 25,
   "name": "Burner On DHW",
   "description": "Burner on hours for DHW",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 26,
   "name": "State (Dependent)",
   "description": "Dependent control state",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 27,
   "name": "Status (Dependent)",
   "description": "Dependent control status",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 28,
   "name": "Error Code (Dependent)",
   "description": "Dependent control error code",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 29,
   "name": "Firiing Rate (Dependent)",
   "description": "Dependent control firing rate",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 1,
   "name": "Controller Reset",
   "description": "Controller reset command",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 2,
   "name": "Modbus Units",
   "description": "Unit system selection",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 3,
   "name": "CH Setpoint",
   "description": "Central heat setpoint command",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 4,
   "name": "DHW Setpoint",
   "description": "DHW setpoint command",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 5,
   "name": "CH Mode",
   "description": "Central heat mode command",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 6,
   "name": "DHW Mode",
   "description": "DHW mode command",
   "units": "",
   "access": "W",
   "states": ""
  }
 ],
 "page": "https://easybacnet.com/bacnet-points-lists/peerless/purefire-852if",
 "note": "Re-typed from the manufacturer's public documentation (see source). Point availability varies by firmware and options; verify against the live device."
}
