{
 "manufacturer": "CaptiveAire",
 "manufacturer_slug": "captiveaire",
 "model": "EMSplus Kitchen Hood Exhaust Controls (BACnet IP)",
 "model_slug": "emsplus-kitchen-exhaust-controls",
 "aliases": [
  "EMSplus",
  "EMS Plus",
  "EMS+",
  "A0017802",
  "CaptiveAire EMSplus"
 ],
 "equipment_type": "Kitchen hood exhaust / make-up air fan controller (demand control)",
 "applies_to": "CaptiveAire EMSplus kitchen ventilation control panels ordered with the BACnet IP communication option.",
 "summary": "EMSplus runs a commercial kitchen's hood exhaust and supply fans from duct temperature sensors, with optional hood wash, PCU and fire/CO interlocks. With the BACnet IP option, the main controller's Ethernet port exposes 105 analog values: duct and room temperatures, fan speeds, amps and kW, VFD fault codes, proving and safety faults, plus run commands for up to eight exhaust fans and wash-start commands. Commands only work when BMS Control is enabled on the touch screen.",
 "bacnet_transport": [
  "BACnet IP"
 ],
 "firmware": null,
 "default_device_instance": null,
 "access_inferred": false,
 "notes": [
  "Every object is an Analog Value, including on/off commands and fault flags.",
  "Scaled values: temperatures in tenths of °F, fan speed in tenths of Hz, amps in tenths, kW in hundredths.",
  "The drive fault AVs return the numeric fault codes printed under the table (0 = no fault).",
  "The manual describes the two supply-fan load-fault objects as Exhaust #9 and #10; the names say Sup1/Sup2.",
  "Up to 30 duct sensors, 8 exhaust and 2 supply fans are listed; unused positions read nothing useful.",
  "Source: Annex A BACnet Objects, manual pages 36-39 (105 objects)."
 ],
 "source": {
  "title": "EMSplus Installation, Operation, and Maintenance Manual",
  "doc_number": "A0017802",
  "revision_date": "September 2013 Rev. 3D",
  "url": "https://www.captiveaire.com/manuals/electrical/emsplus-oim.pdf"
 },
 "points": [
  {
   "type": "AV",
   "instance": 0,
   "name": "BACNET_Temp1_Sens_Reading",
   "description": "Temperature duct Sensor #1; value x10",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 1,
   "name": "BACNET_Temp2_Sens_Reading",
   "description": "Temperature duct Sensor #2; value x10",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2,
   "name": "BACNET_Temp3_Sens_Reading",
   "description": "Temperature duct Sensor #3; value x10",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 3,
   "name": "BACNET_Temp4_Sens_Reading",
   "description": "Temperature duct Sensor #4; value x10",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 4,
   "name": "BACNET_Temp5_Sens_Reading",
   "description": "Temperature duct Sensor #5; value x10",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 5,
   "name": "BACNET_Temp6_Sens_Reading",
   "description": "Temperature duct Sensor #6; value x10",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 6,
   "name": "BACNET_Temp7_Sens_Reading",
   "description": "Temperature duct Sensor #7; value x10",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 7,
   "name": "BACNET_Temp8_Sens_Reading",
   "description": "Temperature duct Sensor #8; value x10",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 8,
   "name": "BACNET_Temp9_Sens_Reading",
   "description": "Temperature duct Sensor #9; value x10",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 9,
   "name": "BACNET_Temp10_Sens_Reading",
   "description": "Temperature duct Sensor #10; value x10",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 10,
   "name": "BACNET_Temp11_Sens_Reading",
   "description": "Temperature duct Sensor #11; value x10",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 11,
   "name": "BACNET_Temp12_Sens_Reading",
   "description": "Temperature duct Sensor #12; value x10",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 12,
   "name": "BACNET_Temp13_Sens_Reading",
   "description": "Temperature duct Sensor #13; value x10",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 13,
   "name": "BACNET_Temp14_Sens_Reading",
   "description": "Temperature duct Sensor #14; value x10",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 14,
   "name": "BACNET_Temp15_Sens_Reading",
   "description": "Temperature duct Sensor #15; value x10",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 15,
   "name": "BACNET_Temp16_Sens_Reading",
   "description": "Temperature duct Sensor #16; value x10",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 16,
   "name": "BACNET_Temp17_Sens_Reading",
   "description": "Temperature duct Sensor #17; value x10",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 17,
   "name": "BACNET_Temp18_Sens_Reading",
   "description": "Temperature duct Sensor #18; value x10",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 18,
   "name": "BACNET_Temp19_Sens_Reading",
   "description": "Temperature duct Sensor #19; value x10",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 19,
   "name": "BACNET_Temp20_Sens_Reading",
   "description": "Temperature duct Sensor #20; value x10",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 20,
   "name": "BACNET_Temp21_Sens_Reading",
   "description": "Temperature duct Sensor #21; value x10",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 21,
   "name": "BACNET_Temp22_Sens_Reading",
   "description": "Temperature duct Sensor #22; value x10",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 22,
   "name": "BACNET_Temp23_Sens_Reading",
   "description": "Temperature duct Sensor #23; value x10",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 23,
   "name": "BACNET_Temp24_Sens_Reading",
   "description": "Temperature duct Sensor #24; value x10",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 24,
   "name": "BACNET_Temp25_Sens_Reading",
   "description": "Temperature duct Sensor #25; value x10",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 25,
   "name": "BACNET_Temp26_Sens_Reading",
   "description": "Temperature duct Sensor #26; value x10",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 26,
   "name": "BACNET_Temp27_Sens_Reading",
   "description": "Temperature duct Sensor #27; value x10",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 27,
   "name": "BACNET_Temp28_Sens_Reading",
   "description": "Temperature duct Sensor #28; value x10",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 28,
   "name": "BACNET_Temp29_Sens_Reading",
   "description": "Temperature duct Sensor #29; value x10",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 29,
   "name": "BACNET_Temp30_Sens_Reading",
   "description": "Temperature duct Sensor #30; value x10",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 30,
   "name": "BACNET_Room_Temp_Reading",
   "description": "Temperature Room Sensor; value x10",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 31,
   "name": "BACNET_Exh1_Temp_Max_Reading",
   "description": "Max Temperature from all duct sensors on Exhaust #1; value x10",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 32,
   "name": "BACNET_Exh2_Temp_Max_Reading",
   "description": "Max Temperature from all duct sensors on Exhaust #2; value x10",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 33,
   "name": "BACNET_Exh3_Temp_Max_Reading",
   "description": "Max Temperature from all duct sensors on Exhaust #3; value x10",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 34,
   "name": "BACNET_Exh4_Temp_Max_Reading",
   "description": "Max Temperature from all duct sensors on Exhaust #4; value x10",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 35,
   "name": "BACNET_Exh5_Temp_Max_Reading",
   "description": "Max Temperature from all duct sensors on Exhaust #5; value x10",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 36,
   "name": "BACNET_Exh6_Temp_Max_Reading",
   "description": "Max Temperature from all duct sensors on Exhaust #6; value x10",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 37,
   "name": "BACNET_Exh7_Temp_Max_Reading",
   "description": "Max Temperature from all duct sensors on Exhaust #7; value x10",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 38,
   "name": "BACNET_Exh8_Temp_Max_Reading",
   "description": "Max Temperature from all duct sensors on Exhaust #8; value x10",
   "units": "°F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 39,
   "name": "BACNET_Exh1_Fans_Speed",
   "description": "Speed of Exhaust fan #1; value x10",
   "units": "Hz",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 40,
   "name": "BACNET_Exh2_Fans_Speed",
   "description": "Speed of Exhaust fan #2; value x10",
   "units": "Hz",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 41,
   "name": "BACNET_Exh3_Fans_Speed",
   "description": "Speed of Exhaust fan #3; value x10",
   "units": "Hz",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 42,
   "name": "BACNET_Exh4_Fans_Speed",
   "description": "Speed of Exhaust fan #4; value x10",
   "units": "Hz",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 43,
   "name": "BACNET_Exh5_Fans_Speed",
   "description": "Speed of Exhaust fan #5; value x10",
   "units": "Hz",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 44,
   "name": "BACNET_Exh6_Fans_Speed",
   "description": "Speed of Exhaust fan #6; value x10",
   "units": "Hz",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 45,
   "name": "BACNET_Exh7_Fans_Speed",
   "description": "Speed of Exhaust fan #7; value x10",
   "units": "Hz",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 46,
   "name": "BACNET_Exh8_Fans_Speed",
   "description": "Speed of Exhaust fan #8; value x10",
   "units": "Hz",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 47,
   "name": "BACNET_Sup1_Fans_Speed",
   "description": "Speed of Supply fan #1; value x10",
   "units": "Hz",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 48,
   "name": "BACNET_Sup2_Fans_Speed",
   "description": "Speed of Supply fan #2; value x10",
   "units": "Hz",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 49,
   "name": "BACNET_Exh1_Drive_Amps",
   "description": "Amps of Exhaust fan #1; value x10",
   "units": "A",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 50,
   "name": "BACNET_Exh2_Drive_Amps",
   "description": "Amps of Exhaust fan #2; value x10",
   "units": "A",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 51,
   "name": "BACNET_Exh3_Drive_Amps",
   "description": "Amps of Exhaust fan #3; value x10",
   "units": "A",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 52,
   "name": "BACNET_Exh4_Drive_Amps",
   "description": "Amps of Exhaust fan #4; value x10",
   "units": "A",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 53,
   "name": "BACNET_Exh5_Drive_Amps",
   "description": "Amps of Exhaust fan #5; value x10",
   "units": "A",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 54,
   "name": "BACNET_Exh6_Drive_Amps",
   "description": "Amps of Exhaust fan #6; value x10",
   "units": "A",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 55,
   "name": "BACNET_Exh7_Drive_Amps",
   "description": "Amps of Exhaust fan #7; value x10",
   "units": "A",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 56,
   "name": "BACNET_Exh8_Drive_Amps",
   "description": "Amps of Exhaust fan #8; value x10",
   "units": "A",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 57,
   "name": "BACNET_Sup1_Drive_Amps",
   "description": "Amps of Supply fan #1; value x10",
   "units": "A",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 58,
   "name": "BACNET_Sup2_Drive_Amps",
   "description": "Amps of Supply fan #2; value x10",
   "units": "A",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 59,
   "name": "BACNET_Exh1_Drive_KW",
   "description": "KW of Exhaust fan #1; value x100",
   "units": "kW",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 60,
   "name": "BACNET_Exh2_Drive_KW",
   "description": "KW of Exhaust fan #2; value x100",
   "units": "kW",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 61,
   "name": "BACNET_Exh3_Drive_KW",
   "description": "KW of Exhaust fan #3; value x100",
   "units": "kW",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 62,
   "name": "BACNET_Exh4_Drive_KW",
   "description": "KW of Exhaust fan #4; value x100",
   "units": "kW",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 63,
   "name": "BACNET_Exh5_Drive_KW",
   "description": "KW of Exhaust fan #5; value x100",
   "units": "kW",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 64,
   "name": "BACNET_Exh6_Drive_KW",
   "description": "KW of Exhaust fan #6; value x100",
   "units": "kW",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 65,
   "name": "BACNET_Exh7_Drive_KW",
   "description": "KW of Exhaust fan #7; value x100",
   "units": "kW",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 66,
   "name": "BACNET_Exh8_Drive_KW",
   "description": "KW of Exhaust fan #8; value x100",
   "units": "kW",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 67,
   "name": "BACNET_Sup1_Drive_KW",
   "description": "KW of Supply fan #1; value x100",
   "units": "kW",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 68,
   "name": "BACNET_Sup2_Drive_KW",
   "description": "KW of Supply fan #2; value x100",
   "units": "kW",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 69,
   "name": "BACNET_Exh1_Drive_Fault_Status",
   "description": "Fault on Exhaust VFD #1",
   "units": "",
   "access": "R",
   "states": "0=No fault, 1=TMP output, 2=Output (transistor), 3=Ground, 4=High drive temp, 5=Flying start, 6=High DC bus, 7=Low DC bus, 8=Thermal overload, 9=OEM, 10=Illegal setup, 11=Dynamic brake overtemp, 12=Single phase, 13=External, 14=Control, 15=Start error, 16=Incompatibility, 17=Internal 1 (EPM), 18-25=Internal, 26=Personality, 27=AD offset, 28=Remote keypad lost, 29=Assertion level, 30-31=Internal, 32=Follower lost, 33=ISO comm, 34=SPI time-out, 35=Invalid message, 36=Network time-out, 37=Communication error"
  },
  {
   "type": "AV",
   "instance": 70,
   "name": "BACNET_Exh2_Drive_Fault_Status",
   "description": "Fault on Exhaust VFD #2",
   "units": "",
   "access": "R",
   "states": "0=No fault, 1=TMP output, 2=Output (transistor), 3=Ground, 4=High drive temp, 5=Flying start, 6=High DC bus, 7=Low DC bus, 8=Thermal overload, 9=OEM, 10=Illegal setup, 11=Dynamic brake overtemp, 12=Single phase, 13=External, 14=Control, 15=Start error, 16=Incompatibility, 17=Internal 1 (EPM), 18-25=Internal, 26=Personality, 27=AD offset, 28=Remote keypad lost, 29=Assertion level, 30-31=Internal, 32=Follower lost, 33=ISO comm, 34=SPI time-out, 35=Invalid message, 36=Network time-out, 37=Communication error"
  },
  {
   "type": "AV",
   "instance": 71,
   "name": "BACNET_Exh3_Drive_Fault_Status",
   "description": "Fault on Exhaust VFD #3",
   "units": "",
   "access": "R",
   "states": "0=No fault, 1=TMP output, 2=Output (transistor), 3=Ground, 4=High drive temp, 5=Flying start, 6=High DC bus, 7=Low DC bus, 8=Thermal overload, 9=OEM, 10=Illegal setup, 11=Dynamic brake overtemp, 12=Single phase, 13=External, 14=Control, 15=Start error, 16=Incompatibility, 17=Internal 1 (EPM), 18-25=Internal, 26=Personality, 27=AD offset, 28=Remote keypad lost, 29=Assertion level, 30-31=Internal, 32=Follower lost, 33=ISO comm, 34=SPI time-out, 35=Invalid message, 36=Network time-out, 37=Communication error"
  },
  {
   "type": "AV",
   "instance": 72,
   "name": "BACNET_Exh4_Drive_Fault_Status",
   "description": "Fault on Exhaust VFD #4",
   "units": "",
   "access": "R",
   "states": "0=No fault, 1=TMP output, 2=Output (transistor), 3=Ground, 4=High drive temp, 5=Flying start, 6=High DC bus, 7=Low DC bus, 8=Thermal overload, 9=OEM, 10=Illegal setup, 11=Dynamic brake overtemp, 12=Single phase, 13=External, 14=Control, 15=Start error, 16=Incompatibility, 17=Internal 1 (EPM), 18-25=Internal, 26=Personality, 27=AD offset, 28=Remote keypad lost, 29=Assertion level, 30-31=Internal, 32=Follower lost, 33=ISO comm, 34=SPI time-out, 35=Invalid message, 36=Network time-out, 37=Communication error"
  },
  {
   "type": "AV",
   "instance": 73,
   "name": "BACNET_Exh5_Drive_Fault_Status",
   "description": "Fault on Exhaust VFD #5",
   "units": "",
   "access": "R",
   "states": "0=No fault, 1=TMP output, 2=Output (transistor), 3=Ground, 4=High drive temp, 5=Flying start, 6=High DC bus, 7=Low DC bus, 8=Thermal overload, 9=OEM, 10=Illegal setup, 11=Dynamic brake overtemp, 12=Single phase, 13=External, 14=Control, 15=Start error, 16=Incompatibility, 17=Internal 1 (EPM), 18-25=Internal, 26=Personality, 27=AD offset, 28=Remote keypad lost, 29=Assertion level, 30-31=Internal, 32=Follower lost, 33=ISO comm, 34=SPI time-out, 35=Invalid message, 36=Network time-out, 37=Communication error"
  },
  {
   "type": "AV",
   "instance": 74,
   "name": "BACNET_Exh6_Drive_Fault_Status",
   "description": "Fault on Exhaust VFD #6",
   "units": "",
   "access": "R",
   "states": "0=No fault, 1=TMP output, 2=Output (transistor), 3=Ground, 4=High drive temp, 5=Flying start, 6=High DC bus, 7=Low DC bus, 8=Thermal overload, 9=OEM, 10=Illegal setup, 11=Dynamic brake overtemp, 12=Single phase, 13=External, 14=Control, 15=Start error, 16=Incompatibility, 17=Internal 1 (EPM), 18-25=Internal, 26=Personality, 27=AD offset, 28=Remote keypad lost, 29=Assertion level, 30-31=Internal, 32=Follower lost, 33=ISO comm, 34=SPI time-out, 35=Invalid message, 36=Network time-out, 37=Communication error"
  },
  {
   "type": "AV",
   "instance": 75,
   "name": "BACNET_Exh7_Drive_Fault_Status",
   "description": "Fault on Exhaust VFD #7",
   "units": "",
   "access": "R",
   "states": "0=No fault, 1=TMP output, 2=Output (transistor), 3=Ground, 4=High drive temp, 5=Flying start, 6=High DC bus, 7=Low DC bus, 8=Thermal overload, 9=OEM, 10=Illegal setup, 11=Dynamic brake overtemp, 12=Single phase, 13=External, 14=Control, 15=Start error, 16=Incompatibility, 17=Internal 1 (EPM), 18-25=Internal, 26=Personality, 27=AD offset, 28=Remote keypad lost, 29=Assertion level, 30-31=Internal, 32=Follower lost, 33=ISO comm, 34=SPI time-out, 35=Invalid message, 36=Network time-out, 37=Communication error"
  },
  {
   "type": "AV",
   "instance": 76,
   "name": "BACNET_Exh8_Drive_Fault_Status",
   "description": "Fault on Exhaust VFD #8",
   "units": "",
   "access": "R",
   "states": "0=No fault, 1=TMP output, 2=Output (transistor), 3=Ground, 4=High drive temp, 5=Flying start, 6=High DC bus, 7=Low DC bus, 8=Thermal overload, 9=OEM, 10=Illegal setup, 11=Dynamic brake overtemp, 12=Single phase, 13=External, 14=Control, 15=Start error, 16=Incompatibility, 17=Internal 1 (EPM), 18-25=Internal, 26=Personality, 27=AD offset, 28=Remote keypad lost, 29=Assertion level, 30-31=Internal, 32=Follower lost, 33=ISO comm, 34=SPI time-out, 35=Invalid message, 36=Network time-out, 37=Communication error"
  },
  {
   "type": "AV",
   "instance": 77,
   "name": "BACNET_Sup1_Drive_Fault_Status",
   "description": "Fault on Supply VFD #1",
   "units": "",
   "access": "R",
   "states": "0=No fault, 1=TMP output, 2=Output (transistor), 3=Ground, 4=High drive temp, 5=Flying start, 6=High DC bus, 7=Low DC bus, 8=Thermal overload, 9=OEM, 10=Illegal setup, 11=Dynamic brake overtemp, 12=Single phase, 13=External, 14=Control, 15=Start error, 16=Incompatibility, 17=Internal 1 (EPM), 18-25=Internal, 26=Personality, 27=AD offset, 28=Remote keypad lost, 29=Assertion level, 30-31=Internal, 32=Follower lost, 33=ISO comm, 34=SPI time-out, 35=Invalid message, 36=Network time-out, 37=Communication error"
  },
  {
   "type": "AV",
   "instance": 78,
   "name": "BACNET_Sup2_Drive_Fault_Status",
   "description": "Fault on Supply VFD #2",
   "units": "",
   "access": "R",
   "states": "0=No fault, 1=TMP output, 2=Output (transistor), 3=Ground, 4=High drive temp, 5=Flying start, 6=High DC bus, 7=Low DC bus, 8=Thermal overload, 9=OEM, 10=Illegal setup, 11=Dynamic brake overtemp, 12=Single phase, 13=External, 14=Control, 15=Start error, 16=Incompatibility, 17=Internal 1 (EPM), 18-25=Internal, 26=Personality, 27=AD offset, 28=Remote keypad lost, 29=Assertion level, 30-31=Internal, 32=Follower lost, 33=ISO comm, 34=SPI time-out, 35=Invalid message, 36=Network time-out, 37=Communication error"
  },
  {
   "type": "AV",
   "instance": 79,
   "name": "BACNET_Exh1_Load_Fault",
   "description": "Load (Proving) fault on Exhaust #1",
   "units": "",
   "access": "R",
   "states": "0=No Fault, 1=Load Fault"
  },
  {
   "type": "AV",
   "instance": 80,
   "name": "BACNET_Exh2_Load_Fault",
   "description": "Load (Proving) fault on Exhaust #2",
   "units": "",
   "access": "R",
   "states": "0=No Fault, 1=Load Fault"
  },
  {
   "type": "AV",
   "instance": 81,
   "name": "BACNET_Exh3_Load_Fault",
   "description": "Load (Proving) fault on Exhaust #3",
   "units": "",
   "access": "R",
   "states": "0=No Fault, 1=Load Fault"
  },
  {
   "type": "AV",
   "instance": 82,
   "name": "BACNET_Exh4_Load_Fault",
   "description": "Load (Proving) fault on Exhaust #4",
   "units": "",
   "access": "R",
   "states": "0=No Fault, 1=Load Fault"
  },
  {
   "type": "AV",
   "instance": 83,
   "name": "BACNET_Exh5_Load_Fault",
   "description": "Load (Proving) fault on Exhaust #5",
   "units": "",
   "access": "R",
   "states": "0=No Fault, 1=Load Fault"
  },
  {
   "type": "AV",
   "instance": 84,
   "name": "BACNET_Exh6_Load_Fault",
   "description": "Load (Proving) fault on Exhaust #6",
   "units": "",
   "access": "R",
   "states": "0=No Fault, 1=Load Fault"
  },
  {
   "type": "AV",
   "instance": 85,
   "name": "BACNET_Exh7_Load_Fault",
   "description": "Load (Proving) fault on Exhaust #7",
   "units": "",
   "access": "R",
   "states": "0=No Fault, 1=Load Fault"
  },
  {
   "type": "AV",
   "instance": 86,
   "name": "BACNET_Exh8_Load_Fault",
   "description": "Load (Proving) fault on Exhaust #8",
   "units": "",
   "access": "R",
   "states": "0=No Fault, 1=Load Fault"
  },
  {
   "type": "AV",
   "instance": 87,
   "name": "BACNET_Sup1_Load_Fault",
   "description": "Load (proving) fault on Supply #1 (printed as Exhaust #9)",
   "units": "",
   "access": "R",
   "states": "0=No Fault, 1=Load Fault"
  },
  {
   "type": "AV",
   "instance": 88,
   "name": "BACNET_Sup2_Load_Fault",
   "description": "Load (proving) fault on Supply #2 (printed as Exhaust #10)",
   "units": "",
   "access": "R",
   "states": "0=No Fault, 1=Load Fault"
  },
  {
   "type": "AV",
   "instance": 89,
   "name": "BACNET_Surfactant_Level_Low",
   "description": "Surfactant level low for Self Cleaning system",
   "units": "",
   "access": "R",
   "states": "0=No fault, 1=Low Surfactant Fault"
  },
  {
   "type": "AV",
   "instance": 90,
   "name": "BACNET_PCU_Pressure_SW",
   "description": "Pollution Control Unit Pressure Fault if PCU in the system",
   "units": "",
   "access": "R",
   "states": "0=No fault, 1=PCU Pressure fault"
  },
  {
   "type": "AV",
   "instance": 91,
   "name": "BACNET_Fire_Alarm",
   "description": "Fire Alarm on hood system",
   "units": "",
   "access": "R",
   "states": "0=No fault, 1=Fire Alarm"
  },
  {
   "type": "AV",
   "instance": 92,
   "name": "BACNET_CO_Sensor",
   "description": "CO Sensor alarm",
   "units": "",
   "access": "R",
   "states": "0=No fault, 1=CO Alarm"
  },
  {
   "type": "AV",
   "instance": 93,
   "name": "BACNET_Exh1_Fan_Start_Cmd",
   "description": "Fan control command for Exhaust #1",
   "units": "",
   "access": "W",
   "states": "0=Stop, 1=Run"
  },
  {
   "type": "AV",
   "instance": 94,
   "name": "BACNET_Exh2_Fan_Start_Cmd",
   "description": "Fan control command for Exhaust #2",
   "units": "",
   "access": "W",
   "states": "0=Stop, 1=Run"
  },
  {
   "type": "AV",
   "instance": 95,
   "name": "BACNET_Exh3_Fan_Start_Cmd",
   "description": "Fan control command for Exhaust #3",
   "units": "",
   "access": "W",
   "states": "0=Stop, 1=Run"
  },
  {
   "type": "AV",
   "instance": 96,
   "name": "BACNET_Exh4_Fan_Start_Cmd",
   "description": "Fan control command for Exhaust #4",
   "units": "",
   "access": "W",
   "states": "0=Stop, 1=Run"
  },
  {
   "type": "AV",
   "instance": 97,
   "name": "BACNET_Exh5_Fan_Start_Cmd",
   "description": "Fan control command for Exhaust #5",
   "units": "",
   "access": "W",
   "states": "0=Stop, 1=Run"
  },
  {
   "type": "AV",
   "instance": 98,
   "name": "BACNET_Exh6_Fan_Start_Cmd",
   "description": "Fan control command for Exhaust #6",
   "units": "",
   "access": "W",
   "states": "0=Stop, 1=Run"
  },
  {
   "type": "AV",
   "instance": 99,
   "name": "BACNET_Exh7_Fan_Start_Cmd",
   "description": "Fan control command for Exhaust #7",
   "units": "",
   "access": "W",
   "states": "0=Stop, 1=Run"
  },
  {
   "type": "AV",
   "instance": 100,
   "name": "BACNET_Exh8_Fan_Start_Cmd",
   "description": "Fan control command for Exhaust #8",
   "units": "",
   "access": "W",
   "states": "0=Stop, 1=Run"
  },
  {
   "type": "AV",
   "instance": 101,
   "name": "BACNET_Wash_Start_Zone1_Cmd",
   "description": "Wash control command for Wash Zone #1",
   "units": "",
   "access": "W",
   "states": "1=Start Wash, 0=Wash has ended"
  },
  {
   "type": "AV",
   "instance": 102,
   "name": "BACNET_Wash_Start_Zone2_Cmd",
   "description": "Wash control command for Wash Zone #2",
   "units": "",
   "access": "W",
   "states": "1=Start Wash, 0=Wash has ended"
  },
  {
   "type": "AV",
   "instance": 103,
   "name": "BACNET_Wash_Start_Zone3_Cmd",
   "description": "Wash control command for Wash Zone #3",
   "units": "",
   "access": "W",
   "states": "1=Start Wash, 0=Wash has ended"
  },
  {
   "type": "AV",
   "instance": 104,
   "name": "BACNET_Wash_Start_All_Zone_Cmd",
   "description": "Wash control command for All Wash Zones",
   "units": "",
   "access": "W",
   "states": "1=Start Wash, 0=Wash has ended"
  }
 ],
 "integration": {
  "summary": "Plug the BACnet IP network into the EMSplus controller's Ethernet port and turn on BMS Control Enable in the touch screen setup. The BMS starts and stops each exhaust fan with the Fan_Start_Cmd AVs (1 = run) and can start a hood wash, then reads temperatures, fan speeds, drive faults and the fire and CO alarms.",
  "minimum_points": [
   {
    "ref": "AV 93",
    "name": "BACNET_Exh1_Fan_Start_Cmd",
    "why": "Exhaust fan 1 command: 0 = stop, 1 = run"
   },
   {
    "ref": "AV 104",
    "name": "BACNET_Wash_Start_All_Zone_Cmd",
    "why": "Start wash in all zones (1)"
   },
   {
    "ref": "AV 39",
    "name": "BACNET_Exh1_Fans_Speed",
    "why": "Exhaust fan 1 speed, tenths of Hz"
   },
   {
    "ref": "AV 47",
    "name": "BACNET_Sup1_Fans_Speed",
    "why": "Supply fan 1 speed, tenths of Hz"
   },
   {
    "ref": "AV 31",
    "name": "BACNET_Exh1_Temp_Max_Reading",
    "why": "Highest duct temperature, exhaust 1, tenths of °F"
   },
   {
    "ref": "AV 30",
    "name": "BACNET_Room_Temp_Reading",
    "why": "Kitchen room temperature, tenths of °F"
   },
   {
    "ref": "AV 69",
    "name": "BACNET_Exh1_Drive_Fault_Status",
    "why": "Exhaust VFD 1 fault code (0 = none)"
   },
   {
    "ref": "AV 79",
    "name": "BACNET_Exh1_Load_Fault",
    "why": "Exhaust 1 proving fault (1 = fault)"
   },
   {
    "ref": "AV 91",
    "name": "BACNET_Fire_Alarm",
    "why": "Hood fire alarm (1 = alarm)"
   },
   {
    "ref": "AV 92",
    "name": "BACNET_CO_Sensor",
    "why": "CO sensor alarm (1 = alarm)"
   }
  ],
  "enable": "BMS Control Enable (factory default off) must be turned on in the touch screen setup before the BACnet fan and wash commands work. In BMS mode the fan schedule and the touch screen fan and wash icons are disabled; Preparation Time and the 100 % override button still work. If the wash schedule is enabled, the wash cannot be started over BACnet.",
  "heartbeat": null,
  "remote_sensors": null,
  "setup": [
   "BACnet IP only: a CAT-5 cable plugs into the main controller's RJ-45 Ethernet port.",
   "The manual does not give default device instance or IP settings."
  ],
  "gotchas": [
   "All objects are Analog Values, even commands and alarms; write 0 or 1.",
   "Scaled integers: divide temperatures, Hz and amps by 10 and kW by 100.",
   "A CO alarm forces all exhaust fans to high speed and shuts off supply fans and the gas valve, whatever the BMS commands."
  ]
 },
 "page": "https://easybacnet.com/bacnet-points-lists/captiveaire/emsplus-kitchen-exhaust-controls",
 "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"
}
