{
 "manufacturer": "Johnson Controls",
 "manufacturer_slug": "johnson-controls",
 "model": "HMS-2000 Fume Hood Controller (BACnet MS/TP)",
 "model_slug": "hms-2000-fume-hood-controller",
 "short_model": "HMS-2000 Fume Hood Controller",
 "aliases": [
  "HMS-2000",
  "HMS2000",
  "LB-HMS2C",
  "Hood Monitoring Station",
  "JCI fume hood controller"
 ],
 "equipment_type": "Laboratory VAV controller (fume hood)",
 "applies_to": "Fume hoods controlled and monitored by the Johnson Controls HMS-2000 touchscreen fume hood controller with face velocity, sash, pressure and airflow inputs.",
 "summary": "The HMS-2000 is a touchscreen fume hood controller and monitor that holds hood face velocity by driving the exhaust valve or damper, with occupied, unoccupied and standby modes. It connects to the BAS over BACnet MS/TP and exposes its four analog and digital inputs, outputs and relays, the input setpoints, alarm and warning limits, overrides and alarm states.",
 "bacnet_transport": [
  "BACnet MS/TP"
 ],
 "firmware": null,
 "default_device_instance": "85000 + MS/TP MAC address",
 "access_inferred": false,
 "notes": [
  "The guide lists each object with a functional description, not an Object_Name string; that description is used as the point name here.",
  "Objects marked \"Not used\" in the guide (AV 5-10, 35-42, 45, 46, 48-53, 62, 63 and MV 2, 4, 9) are left out.",
  "What AI 1-4 measure depends on how each input is configured; the names give the factory default use.",
  "Operating mode (MV 1) covers occupied, unoccupied and standby (decommissioned) modes; the guide does not print the state numbers.",
  "Units are not printed in the BACnet table."
 ],
 "source": {
  "title": "HMS-2000 Fume Hood Controller Installation Guide",
  "doc_number": "LIT-12014479",
  "revision_date": "2026-08",
  "url": "https://docs.johnsoncontrols.com/bas/api/khub/documents/Gcr3KkYSiKwyX8RAGZAFGg/content"
 },
 "integration": {
  "summary": "Set the MS/TP MAC address (4-127), baud rate and device ID at the display, then map the operating mode, face velocity and its setpoint, the exhaust control output and the alarm status objects.",
  "minimum_points": [
   {
    "ref": "MV 1",
    "name": "Operating mode",
    "why": "Occupied, unoccupied or standby"
   },
   {
    "ref": "AV 1",
    "name": "AI-1 face velocity setpoint",
    "why": "Face velocity setpoint"
   },
   {
    "ref": "AI 1",
    "name": "Analog input 1, default: face velocity",
    "why": "Measured face velocity"
   },
   {
    "ref": "AI 2",
    "name": "Analog input 2, default: sash postion",
    "why": "Sash position"
   },
   {
    "ref": "AI 4",
    "name": "Analog input 4, exhaust air flow",
    "why": "Hood exhaust airflow"
   },
   {
    "ref": "AO 1",
    "name": "Analog output 1, default: hood exhaust control",
    "why": "Exhaust valve or damper signal"
   },
   {
    "ref": "MV 3",
    "name": "Face velocity alarm status",
    "why": "Face velocity alarm state"
   }
  ],
  "enable": "Operating mode (MV 1) is read/write; the occupancy switch on DI 3 can also switch the hood to occupied. The sash must be below the low alarm mute height before unoccupied mode can be selected.",
  "heartbeat": null,
  "remote_sensors": null,
  "setup": [
   "BACnet MS/TP only; MAC address 4-127, baud 38.4 kbps by default (76.8k, 19.2k and 9600 also offered).",
   "The default device ID is 85,000 plus the MAC address (for example 85,025 for MAC 25); it can be changed to any value from 0 to 4,194,303.",
   "Reset the controller or cycle power after changing the MAC address or baud rate so it rejoins the trunk."
  ],
  "gotchas": [
   "Alarm limits, deadbands and override levels are setup values; don't write them cyclically.",
   "Enter the alarm limits or the alarm logic and display won't work. The binary objects have no ActiveText/InactiveText, so a non-Metasys BAS may not show their values until those texts are set at the front end."
  ]
 },
 "points": [
  {
   "type": "AI",
   "instance": 1,
   "name": "Analog input 1, default: face velocity",
   "description": "Face velocity (default use of AI 1)",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 2,
   "name": "Analog input 2, default: sash postion",
   "description": "Sash position (default use of AI 2)",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 3,
   "name": "Analog input 3, duct static pressure",
   "description": "Duct static pressure",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 4,
   "name": "Analog input 4, exhaust air flow",
   "description": "Exhaust airflow",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 1,
   "name": "Analog output 1, default: hood exhaust control",
   "description": "Exhaust valve or damper control signal",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 2,
   "name": "Analog output 2",
   "description": "Spare analog output",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 3,
   "name": "Analog output 3",
   "description": "Spare analog output",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AO",
   "instance": 4,
   "name": "Analog output 4",
   "description": "Spare analog output",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 1,
   "name": "Digital input 1",
   "description": "Digital input 1",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 2,
   "name": "Digital input 2, default: emergency purge switch",
   "description": "Emergency purge switch (default)",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 3,
   "name": "Digital input 3, default: occupancy switch",
   "description": "Occupancy switch (default)",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 4,
   "name": "Digital input 4, default: flow switch",
   "description": "Flow switch (default)",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BO",
   "instance": 1,
   "name": "Relay output 1, spare relay output",
   "description": "Relay output 1",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BO",
   "instance": 2,
   "name": "Relay output 2",
   "description": "Relay output 2",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BO",
   "instance": 3,
   "name": "Relay output 3",
   "description": "Relay output 3",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BO",
   "instance": 4,
   "name": "Relay output 4",
   "description": "Relay output 4",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 1,
   "name": "AI-1 face velocity setpoint",
   "description": "Face velocity setpoint",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2,
   "name": "AI-2 setpoint",
   "description": "Setpoint for AI 2",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 3,
   "name": "AI-3 setpoint",
   "description": "Setpoint for AI 3",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 4,
   "name": "AI-4 setpoint",
   "description": "Setpoint for AI 4",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 11,
   "name": "Alarm relay 1 high setpoint",
   "description": "Relay 1 alarm high setpoint",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 12,
   "name": "Alarm relay 1 low setpoint",
   "description": "Relay 1 alarm low setpoint",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 13,
   "name": "Alarm relay 2 high setpoint",
   "description": "Relay 2 alarm high setpoint",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 14,
   "name": "Alarm relay 2 low setpoint",
   "description": "Relay 2 alarm low setpoint",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 15,
   "name": "Alarm relay 3 high setpoint",
   "description": "Relay 3 alarm high setpoint",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 16,
   "name": "Alarm relay 3 low setpoint",
   "description": "Relay 3 alarm low setpoint",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 17,
   "name": "Alarm relay 4 high setpoint",
   "description": "Relay 4 alarm high setpoint",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 18,
   "name": "Alarm relay 4 low setpoint",
   "description": "Relay 4 alarm low setpoint",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 19,
   "name": "AI-1 low alarm limit for face velocity",
   "description": "Face velocity low alarm limit",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 20,
   "name": "AI-1 low warning limit for face velocity",
   "description": "Face velocity low warning limit",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 21,
   "name": "AI-1 high warning limit for face velocity",
   "description": "Face velocity high warning limit",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 22,
   "name": "AI-1 high alarm limit for face velocity",
   "description": "Face velocity high alarm limit",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 23,
   "name": "AI-2 sash high alarm height (unoccupied mode)",
   "description": "Sash high alarm height, unoccupied",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 24,
   "name": "AI-2 sash low alarm mute height",
   "description": "Sash height below which the alarm is muted",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 25,
   "name": "AI-2 sash high alarm delay",
   "description": "Delay for the sash high alarm",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 26,
   "name": "AI-2 sash high alarm height (occupied mode)",
   "description": "Sash high alarm height, occupied",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 27,
   "name": "AI-3 low alarm setpoint",
   "description": "AI 3 low alarm limit",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 28,
   "name": "AI-3 low warning setpoint",
   "description": "AI 3 low warning limit",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 29,
   "name": "AI-3 high warning setpoint",
   "description": "AI 3 high warning limit",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 30,
   "name": "AI-3 high alarm setpoint",
   "description": "AI 3 high alarm limit",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 31,
   "name": "AI-4 low alarm setpoint",
   "description": "AI 4 low alarm limit",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 32,
   "name": "AI-4 low warning setpoint",
   "description": "AI 4 low warning limit",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 33,
   "name": "AI-4 high warning setpoint",
   "description": "AI 4 high warning limit",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 34,
   "name": "AI-4 high alarm setpoint",
   "description": "AI 4 high alarm limit",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 54,
   "name": "AO-1 override level",
   "description": "Override level for AO 1",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 55,
   "name": "AO-2 override level",
   "description": "Override level for AO 2",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 56,
   "name": "AO-3 override level",
   "description": "Override level for AO 3",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 57,
   "name": "AO-4 override level",
   "description": "Override level for AO 4",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 58,
   "name": "AI-1 deadband setting",
   "description": "Deadband for AI 1",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 59,
   "name": "AI-2 deadband setting",
   "description": "Deadband for AI 2",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 60,
   "name": "AI-3 deadband setting",
   "description": "Deadband for AI 3",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 61,
   "name": "AI-4 deadband setting",
   "description": "Deadband for AI 4",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 64,
   "name": "AI-1 override value",
   "description": "Override value for AI 1",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 65,
   "name": "AI-2 override value",
   "description": "Override value for AI 2",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 66,
   "name": "AI-3 override value",
   "description": "Override value for AI 3",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 67,
   "name": "AI-4 override value",
   "description": "Override value for AI 4",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "MV",
   "instance": 1,
   "name": "Operating mode",
   "description": "Fume hood operating mode",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "MV",
   "instance": 3,
   "name": "Face velocity alarm status",
   "description": "Face velocity alarm state",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "MV",
   "instance": 5,
   "name": "AI-3 alarm status",
   "description": "AI 3 alarm state",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "MV",
   "instance": 6,
   "name": "AI-4 alarm status",
   "description": "AI 4 alarm state",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "MV",
   "instance": 7,
   "name": "TI-1 alarm status",
   "description": "Thermistor input 1 alarm state",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "MV",
   "instance": 8,
   "name": "TI-2 alarm status",
   "description": "Thermistor input 2 alarm state",
   "units": "",
   "access": "R",
   "states": ""
  }
 ],
 "page": "https://easybacnet.com/bacnet-points-lists/johnson-controls/hms-2000-fume-hood-controller",
 "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"
}
