{
 "manufacturer": "AAON",
 "manufacturer_slug": "aaon",
 "model": "PREHEAT-X Controller",
 "model_slug": "preheat-x",
 "aliases": [
  "PREHEAT-X",
  "PREHEATX",
  "Preheat-X",
  "G086640",
  "AAON preheat controller",
  "Orion PREHEAT-X"
 ],
 "equipment_type": "Air handler preheat controller",
 "applies_to": "AAON PREHEAT-X controllers that stage and modulate electric (SCR/SSR) preheat on AAON units and air handlers.",
 "summary": "The PREHEAT-X controls modulating SCR or SSR preheat plus up to six fixed heat stages to hold a leaving air temperature. It can run stand-alone, from an AAON unit controller over E-BUS, or from a BAS over its own BACnet MS/TP port. The object list is small: 9 read-only AIs (setpoint in use, stages on, modulating output, temperatures, alarm bitfield), 16 read-only BIs (inputs, relay states, alarms) and 3 writable AVs for remote enable and the leaving and entering air setpoints.",
 "bacnet_transport": [
  "BACnet MS/TP"
 ],
 "firmware": null,
 "default_device_instance": null,
 "access_inferred": false,
 "notes": [
  "BACnet only works with COM MODE set to BACNET on the COMM CONFIG screens (default is S-ALONE).",
  "The three AVs are volatile: values written by the BAS are lost when the controller resets, so the BAS must write them again after a power cycle.",
  "In BACnet mode, preheat is enabled by the BACnet command or the binary input, whichever comes first.",
  "AI 4 is a bit string; bit 7 is a communication alarm and bit 8 the emergency shutdown alarm.",
  "Source is the PREHEAT-X Technical Guide, AAON P/N G086640 Rev. F (February 2, 2024), Appendix B."
 ],
 "source": {
  "title": "PREHEAT-X Technical Guide (Appendix B: BACnet)",
  "doc_number": "G086640",
  "revision_date": "Rev. F, 2024-02-02",
  "url": "https://www.aaon.com/hubfs/G086640-PREHEATX-TGD-E.pdf"
 },
 "integration": {
  "summary": "Set COM MODE to BACNET and give the controller a MAC address, device ID and baud rate on the COMM CONFIG screens. The BAS enables preheat with AV 1, sends the leaving air setpoint on AV 2 and the entering air enable setpoint on AV 3, and reads leaving air temperature, stages and alarms. Rewrite the AVs after any controller reset.",
  "minimum_points": [
   {
    "ref": "AV 1",
    "name": "Remote Enable",
    "why": "Preheat enable from the BAS (1 = enabled)"
   },
   {
    "ref": "AV 2",
    "name": "Remote Leaving Air Setpoint",
    "why": "Leaving air temperature setpoint, °F"
   },
   {
    "ref": "AV 3",
    "name": "Remote Entering Air Setpoint",
    "why": "Preheat runs below this entering air temp, °F"
   },
   {
    "ref": "BI 3",
    "name": "Preheat Enable Status",
    "why": "Preheat is enabled"
   },
   {
    "ref": "AI 8",
    "name": "Leaving Air Average Temp",
    "why": "Average leaving air temperature"
   },
   {
    "ref": "AI 3",
    "name": "Modulating Output Position",
    "why": "Modulating heat output"
   },
   {
    "ref": "AI 2",
    "name": "Number of Heat Stages On",
    "why": "Fixed heat stages running"
   },
   {
    "ref": "AI 4",
    "name": "All Alarms Bitfield",
    "why": "Bit-coded active alarms"
   }
  ],
  "enable": "With COM MODE = BACNET, AV 1 Remote Enable (or the HEAT EN binary input, whichever comes first) enables preheat. The emergency shutdown input must be wired as a normally closed 24 VAC contact; when it opens all outputs drop and an alarm is raised.",
  "heartbeat": null,
  "remote_sensors": null,
  "setup": [
   "COMM CONFIG screens: COM MODE = BACNET (choices BACNET, EBUS, S-ALONE; default S-ALONE).",
   "MAC address 0-128, default 0.",
   "Device ID start 0-30000, default 15000.",
   "MS/TP baud 9600, 19200, 38400, 57600 or 76800; default 38400."
  ],
  "gotchas": [
   "AV 1-3 are volatile; the BAS must rewrite them after a power loss or reset.",
   "Default MAC address is 0; change it if another device already uses 0.",
   "A high leaving air temperature alarm shuts the heat off and needs a manual reset."
  ]
 },
 "points": [
  {
   "type": "AI",
   "instance": 1,
   "name": "Active Controlling Setpoint",
   "description": "Leaving air setpoint now in use",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 2,
   "name": "Number of Heat Stages On",
   "description": "Fixed heat stages running",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 3,
   "name": "Modulating Output Position",
   "description": "Modulating heat output",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 4,
   "name": "All Alarms Bitfield",
   "description": "Bit-coded alarm status",
   "units": "",
   "access": "R",
   "states": "Bits: 1 BadLeavingAir1, 2 BadLeavingAir2, 3 LowLeavingAir, 4 HighLeavingAir, 6 BadEnteringAir, 7 CommAlarm, 8 ShutDownAlarm (0 and 5 reserved)"
  },
  {
   "type": "AI",
   "instance": 5,
   "name": "Entering Air Temperature",
   "description": "Entering air temperature",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 6,
   "name": "Leaving Air Temp Sensor 1",
   "description": "Leaving air sensor 1 (LAT1)",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 7,
   "name": "Leaving Air Temp Sensor 2",
   "description": "Leaving air sensor 2 (LAT2)",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 8,
   "name": "Leaving Air Average Temp",
   "description": "Average of LAT1 and LAT2",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 9,
   "name": "Reset Input Percentage",
   "description": "Setpoint reset input, percent",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 1,
   "name": "Enable Input Value",
   "description": "Heat enable binary input",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BI",
   "instance": 2,
   "name": "Shutdown Input Value",
   "description": "Emergency shutdown binary input",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BI",
   "instance": 3,
   "name": "Preheat Enable Status",
   "description": "Controller enable status",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BI",
   "instance": 4,
   "name": "Alarm Relay Status",
   "description": "Alarm relay state",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BI",
   "instance": 5,
   "name": "Heat 1 Relay Status",
   "description": "Heat stage 1 relay state",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BI",
   "instance": 6,
   "name": "Heat 2 Relay Status",
   "description": "Heat stage 2 relay state",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BI",
   "instance": 7,
   "name": "Heat 3 Relay Status",
   "description": "Heat stage 3 relay state",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BI",
   "instance": 8,
   "name": "Heat 4 Relay Status",
   "description": "Heat stage 4 relay state",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BI",
   "instance": 9,
   "name": "Heat 5 Relay Status",
   "description": "Heat stage 5 relay state",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BI",
   "instance": 10,
   "name": "Heat 6 Relay Status",
   "description": "Heat stage 6 relay state",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BI",
   "instance": 11,
   "name": "Emergency Shutdown Alarm",
   "description": "Emergency shutdown alarm",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BI",
   "instance": 12,
   "name": "Leaving Air Sensor 1 Alarm",
   "description": "Leaving air sensor 1 failure",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BI",
   "instance": 13,
   "name": "Leaving Air Sensor 2 Alarm",
   "description": "Leaving air sensor 2 failure",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BI",
   "instance": 14,
   "name": "Low Leaving Air Temp Alarm",
   "description": "Leaving air below the low limit",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BI",
   "instance": 15,
   "name": "High Leaving Air Temp Alarm",
   "description": "Leaving air above the high limit",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BI",
   "instance": 16,
   "name": "Entering Air Sensor Alarm",
   "description": "Entering air sensor failure",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "AV",
   "instance": 1,
   "name": "Remote Enable",
   "description": "Preheat enable from the BAS (volatile)",
   "units": "",
   "access": "W",
   "states": "0=Disabled, 1=Enabled"
  },
  {
   "type": "AV",
   "instance": 2,
   "name": "Remote Leaving Air Setpoint",
   "description": "Leaving air setpoint from the BAS, 35-90 °F (volatile)",
   "units": "°F",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 3,
   "name": "Remote Entering Air Setpoint",
   "description": "Entering air enable setpoint from the BAS, -40 to 90 °F (volatile)",
   "units": "°F",
   "access": "W",
   "states": ""
  }
 ],
 "page": "https://easybacnet.com/bacnet-points-lists/aaon/preheat-x",
 "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"
}
