{
 "manufacturer": "Peerless",
 "manufacturer_slug": "peerless",
 "model": "PureFire PF-50 to PF-399 (PFA-1) - ProtoNode",
 "model_slug": "purefire-pfa-1",
 "aliases": [
  "PureFire",
  "PFA-1",
  "PF-50",
  "PF-399",
  "ProtoNode FPC-N34",
  "PB Heat"
 ],
 "equipment_type": "Boiler controller gateway",
 "applies_to": "Peerless PureFire PF-50 through PF-399 boilers (PFA-1 control), 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 PFA-1 profile is short: 14 read-only values (state, status, error and warning numbers, flow, return, DHW and flue temperatures, modes and setpoints) and two writable setpoint commands for CH and DHW.",
 "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-460 through PF-1500 boilers use the larger 852IF profile.",
  "There is no writable mode or enable object in this profile; only the CH and DHW setpoint commands are writable."
 ],
 "integration": {
  "summary": "Set each boiler's Modbus node ID, let the ProtoNode auto-discover them, then find each boiler as its own BACnet device. The BMS can write the CH and DHW setpoint commands and read state, status, temperatures and the error and warning numbers.",
  "minimum_points": [
   {
    "ref": "AV 15",
    "name": "CH_SETPOINT CMD",
    "why": "Central heat setpoint command"
   },
   {
    "ref": "AI 1",
    "name": "STATE",
    "why": "Operating state code"
   },
   {
    "ref": "AI 2",
    "name": "STATUS",
    "why": "Status code"
   },
   {
    "ref": "AI 5",
    "name": "FLOW_TEMP",
    "why": "Supply water temperature"
   },
   {
    "ref": "AI 6",
    "name": "RETURN_TEMP",
    "why": "Return water temperature"
   },
   {
    "ref": "AI 13",
    "name": "CH_SETPOINT",
    "why": "Central heat setpoint in use"
   },
   {
    "ref": "AI 3",
    "name": "ERROR_NUMBER",
    "why": "Active error number"
   },
   {
    "ref": "AI 4",
    "name": "WARNING_NUMBER",
    "why": "Active warning number"
   }
  ],
  "enable": "Only AV 15 CH_SETPOINT CMD and AV 16 DHW_SETPOINT CMD are writable. The profile has no run/enable command; CH_MODE and DHW_MODE are read-only.",
  "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; check the temperature scale against the boiler display.",
   "State, status, error and warning values 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": "AI",
   "instance": 1,
   "name": "STATE",
   "description": "Operating state code",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 2,
   "name": "STATUS",
   "description": "Status code",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 3,
   "name": "ERROR_NUMBER",
   "description": "Active error number",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 4,
   "name": "WARNING_NUMBER",
   "description": "Active warning number",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 5,
   "name": "FLOW_TEMP",
   "description": "Supply (flow) water temperature",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 6,
   "name": "RETURN_TEMP",
   "description": "Return water temperature",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 7,
   "name": "DHW_TEMP",
   "description": "DHW temperature",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 8,
   "name": "FLUE_TEMP",
   "description": "Flue temperature",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 9,
   "name": "APPLIANCE_TYPE",
   "description": "Appliance type code",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 10,
   "name": "CONTROL_CONFIG_BYTE",
   "description": "Control configuration byte",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 11,
   "name": "CH_MODE",
   "description": "Central heat mode readback",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 12,
   "name": "DHW_MODE",
   "description": "DHW mode readback",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 13,
   "name": "CH_SETPOINT",
   "description": "Central heat setpoint readback",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 14,
   "name": "DHW_SETPOINT",
   "description": "DHW setpoint readback",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 15,
   "name": "CH_SETPOINT CMD",
   "description": "Central heat setpoint command",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 16,
   "name": "DHW_SETPOINT CMD",
   "description": "DHW setpoint command",
   "units": "",
   "access": "W",
   "states": ""
  }
 ],
 "page": "https://easybacnet.com/bacnet-points-lists/peerless/purefire-pfa-1",
 "note": "Re-typed from the manufacturer's public documentation (see source). Point availability varies by firmware and options; verify against the live device."
}
