{
 "manufacturer": "Contemporary Controls",
 "manufacturer_slug": "contemporary-controls",
 "model": "BASstat BAST-221C/CH-BW2 Wireless Multi-Stage Thermostat",
 "short_model": "BAST-221C-BW2",
 "model_slug": "bast-221c-bw2",
 "aliases": [
  "BAST-221C-BW2",
  "BAST-221CH-BW2",
  "BASstat BW2",
  "BASstat 221C"
 ],
 "equipment_type": "Thermostat (multi-stage heat/cool, Wi-Fi BACnet IP)",
 "applies_to": "Contemporary Controls BAST-221C and BAST-221CH (with humidity) Wi-Fi thermostats for multi-stage heating, cooling and ventilation, such as rooftop units.",
 "summary": "The BAST-221C-BW2 is a Wi-Fi BACnet IP thermostat for up to two cooling and two heating stages plus fan. The 221CH version adds humidity and dew point readings. It exposes temperatures, setpoints, system and fan modes, occupancy, relay control and status, and setup values as BACnet objects.",
 "bacnet_transport": [
  "BACnet IP"
 ],
 "firmware": null,
 "default_device_instance": 100001,
 "access_inferred": false,
 "notes": [
  "From the BACnet Object Table (manual pages 34-42). The table is shared across the BASstat family; rows printed in grey (objects this model does not use) are left out.",
  "Access is from the Readable/Writable column; R/W objects are shown as writable.",
  "Temperature objects follow the Temperature Scale object (BV 6: 0 = °C, 1 = °F).",
  "Fan Mode (MV 0) states are printed as \"1: Auto 1: Low 3: Med. 4: Hi\" and are kept as printed.",
  "Current Humidity (AI 4) and Current Dew Point (AI 5) are on the 221CH model only."
 ],
 "source": {
  "title": "BAST-221C/CH-BW2 Wireless Multi-Stage Thermostat User Manual",
  "doc_number": "UM-15090500-AA3",
  "revision_date": null,
  "url": "https://www.ccontrols.com/pdf/um/BASstat-BW2-usermanual.pdf"
 },
 "integration": {
  "summary": "Turn the thermostat outputs on with On-Off Control (BV 5), set occupancy with Occupancy Command (BV 14), and write the system mode, cooling and heating setpoints and fan mode. Read the space temperature, occupancy status, output status and fan speed.",
  "minimum_points": [
   {
    "ref": "BV 5",
    "name": "On-Off Control",
    "why": "Thermostat outputs on/off (1 = on)"
   },
   {
    "ref": "BV 14",
    "name": "Occupancy Command",
    "why": "0 = occupied, 1 = unoccupied"
   },
   {
    "ref": "MV 1",
    "name": "System Mode",
    "why": "Cool, heat or ventilation mode"
   },
   {
    "ref": "AV 0",
    "name": "Cooling Temperature Setpoint",
    "why": "Occupied cooling setpoint"
   },
   {
    "ref": "AV 3",
    "name": "Heating Temperature Setpoint",
    "why": "Occupied heating setpoint"
   },
   {
    "ref": "MV 0",
    "name": "Fan Mode",
    "why": "Fan mode; 1 = auto"
   },
   {
    "ref": "AI 0",
    "name": "Current Temperature",
    "why": "Space temperature in use"
   },
   {
    "ref": "BI 0",
    "name": "Occupancy Status",
    "why": "0 = occupied, 1 = unoccupied"
   },
   {
    "ref": "BI 2",
    "name": "Cooling-heating Status",
    "why": "Heating/cooling output active"
   },
   {
    "ref": "MV 5",
    "name": "Fan Speed Status",
    "why": "Current fan speed"
   }
  ],
  "enable": "On-Off Control (BV 5) switches the thermostat outputs. Occupancy Command (BV 14) only takes effect when the ESI contact is disabled in Lock (AV 18 bit value 64); by default occupancy comes from the ESI dry contact.",
  "heartbeat": "A space temperature written to Space Temperature Via BACnet (AV 1) is only used while the BMS keeps toggling Heartbeat signal (BV 16) within the Heartbeat Rate (AV 29) period, in seconds; otherwise the thermostat reverts to its own sensor.",
  "remote_sensors": "Set Temperature Source (MV 3) to 3 (Assigned through BACnet) and write the space temperature to AV 1, toggling BV 16 as a heartbeat.",
  "setup": [
   "BACnet IP over Wi-Fi; the UDP port defaults to 47808 (BAC0) and can be set in the Engineering menu (UdP) or by writing UDP Port No (AV 21).",
   "Device instance = devH x 1000 + devL in the Engineering menu, or write Device Instance (AV 20) once online.",
   "DHCP or static IP addressing is set from the thermostat's Wi-Fi setup pages.",
   "The manual gives 100001 as the default device instance."
  ],
  "gotchas": [
   "Lock (AV 18) is bit-coded: add the bit values to lock buttons, ignore the ESI or door contact, block changes to the comms settings or hand the relays to BACnet (512).",
   "The manual text calls the Lock object AV17 in places and the heartbeat rate AV-29; the object table numbers are used here.",
   "Relay control BVs only drive the relays when Lock bit 9 (512) hands the outputs to the BACnet supervisor."
  ]
 },
 "points": [
  {
   "type": "AI",
   "instance": 0,
   "name": "Current Temperature",
   "description": "",
   "units": "°F/°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 1,
   "name": "Active Temperature Setpoint",
   "description": "",
   "units": "°F/°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 2,
   "name": "Built-in Temperature Sensor",
   "description": "Built-in Temperature Sensor Reading",
   "units": "°F/°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 3,
   "name": "Remote Temperature Sensor",
   "description": "Remote Temperature Sensor Reading",
   "units": "°F/°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 4,
   "name": "Current Humidity",
   "description": "Current Humidity (221CH models only)",
   "units": "%RH",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 5,
   "name": "Current Dew Point",
   "description": "Current Dew Point (221CH models only)",
   "units": "°F/°C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 0,
   "name": "Cooling Temperature Setpoint",
   "description": "",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 1,
   "name": "Space Temperature Via BACnet",
   "description": "BACnet Assigned Current Temperature",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 3,
   "name": "Heating Temperature Setpoint",
   "description": "",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 4,
   "name": "Hr-Running Time",
   "description": "Running Time of Valve (Hr.)",
   "units": "h",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 5,
   "name": "M-Running Time",
   "description": "Running Time of Valve (M.)",
   "units": "min",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 6,
   "name": "Sec-Running Time",
   "description": "Running Time of Valve (Sec.)",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 7,
   "name": "Deadband",
   "description": "",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 8,
   "name": "Unoccupied Cool Setpoint",
   "description": "Unoccupied Cooling Setpoint",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 9,
   "name": "Unoccupied Heat Setpoint",
   "description": "Unoccupied Heating Setpoint",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 10,
   "name": "Integral-Cycle Time",
   "description": "Integral Time and Output Cycle Time",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 13,
   "name": "Low Setpoint Limit",
   "description": "Low Limit for Setpoint Temperature",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 14,
   "name": "High Setpoint Limit",
   "description": "High Limit for Setpoint Temperature",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 15,
   "name": "Temperature Offset",
   "description": "Offset for Current",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 16,
   "name": "Proportional Band- Stage Width",
   "description": "Temperature Proportional Band or Stage Width",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 17,
   "name": "Stage Differential",
   "description": "",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 18,
   "name": "Lock",
   "description": "Bit-coded lock: buttons, ESI/door contacts, comms settings, DO control",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 20,
   "name": "Device Instance",
   "description": "",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 21,
   "name": "UDP Port No",
   "description": "UDP Port Number",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 22,
   "name": "Humidity Offset",
   "description": "Humidity Offset Value (221CH models only)",
   "units": "%RH",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 23,
   "name": "Cooling Short Cycle Delay",
   "description": "",
   "units": "min",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 24,
   "name": "Cooling Maximum Cycles per Hour",
   "description": "",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 25,
   "name": "Heating Short Cycle",
   "description": "Heating Short Cycle Delay",
   "units": "min",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 26,
   "name": "Heating Maximum Cycles per Hour",
   "description": "",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 29,
   "name": "Heartbeat Rate",
   "description": "Communication Heartbeat Minimum Rate",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 39,
   "name": "Minimum Cooling Temperature Setpoint",
   "description": "Minimum Cooling Temperature Setpoint",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 40,
   "name": "Maximum Heating Temperature Setpoint",
   "description": "Maximum Heating Temperature Setpoint",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 46,
   "name": "Minimum Off Time",
   "description": "",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 47,
   "name": "Minimum On Time",
   "description": "",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "BI",
   "instance": 0,
   "name": "Occupancy Status",
   "description": "Status of Occupancy",
   "units": "",
   "access": "R",
   "states": "0=Room Occupied, 1=Room Unoccupied"
  },
  {
   "type": "BI",
   "instance": 2,
   "name": "Cooling-heating Status",
   "description": "Status of Cooling/Heating Control Output",
   "units": "",
   "access": "R",
   "states": "0=Close & Off, 1=Open & On"
  },
  {
   "type": "BI",
   "instance": 3,
   "name": "Relay 1 Status",
   "description": "Status of Relay 1 (Cooling Stage 1)",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BI",
   "instance": 4,
   "name": "Relay 2 Status",
   "description": "Status of Relay 2 (Cooling Stage 2)",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BI",
   "instance": 5,
   "name": "Relay 3 Status",
   "description": "Status of Relay 3 (Heating Stage 1)",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BI",
   "instance": 6,
   "name": "Relay 4 Status",
   "description": "Status of Relay 4 (Heating Stage 2)",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BI",
   "instance": 9,
   "name": "Relay 7 Status",
   "description": "Status of Relay 7 Fan",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BI",
   "instance": 10,
   "name": "Dl 1 Status",
   "description": "Status of Digital Input 1",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BI",
   "instance": 17,
   "name": "Fan Status",
   "description": "",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BV",
   "instance": 0,
   "name": "Occupancy Contact Definition",
   "description": "Occupancy(DI1) Contact Definition",
   "units": "",
   "access": "W",
   "states": "0=N.O., 1=N.C."
  },
  {
   "type": "BV",
   "instance": 5,
   "name": "On-Off Control",
   "description": "On/Off Status of Thermostat",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BV",
   "instance": 6,
   "name": "Temperature Scale",
   "description": "°C/ °F",
   "units": "",
   "access": "W",
   "states": "0=°C, 1=°F"
  },
  {
   "type": "BV",
   "instance": 7,
   "name": "Relay 1 Control",
   "description": "On/Off Control of Relay 1 (Cooling Stage 1)",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BV",
   "instance": 8,
   "name": "Relay 2 Control",
   "description": "On/Off Control of Relay 2 (Cooling Stage 2)",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BV",
   "instance": 9,
   "name": "Relay 3 Control",
   "description": "On/Off Control of Relay 3 (Heating Stage 1)",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BV",
   "instance": 10,
   "name": "Relay 4 Control",
   "description": "On/Off Control of Relay 4 (Heating Stage 2)",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BV",
   "instance": 13,
   "name": "Relay 7 Control",
   "description": "On/Off Control of Relay 7 Fan",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BV",
   "instance": 14,
   "name": "Occupancy Command",
   "description": "Room Occupancy Setting",
   "units": "",
   "access": "W",
   "states": "0=Occupied, 1=Unoccupied"
  },
  {
   "type": "BV",
   "instance": 15,
   "name": "Fan Output for Heating",
   "description": "Disable/ Enable Fan Output for Heating",
   "units": "",
   "access": "W",
   "states": "0=Disable, 1=Enable"
  },
  {
   "type": "BV",
   "instance": 16,
   "name": "Heartbeat signal",
   "description": "Heartbeat Pulse Signal",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=On"
  },
  {
   "type": "MV",
   "instance": 0,
   "name": "Fan Mode",
   "description": "",
   "units": "",
   "access": "W",
   "states": "1=Auto, 1=Low, 3=Med., 4=Hi"
  },
  {
   "type": "MV",
   "instance": 1,
   "name": "System Mode",
   "description": "Working Mode: Heat, Cool or Ventilation",
   "units": "",
   "access": "W",
   "states": "1=Cool Mode, 2=Heat Mode, 3=Ventilation @ Cool Mode, 4=Ventilation @ Heat Mode"
  },
  {
   "type": "MV",
   "instance": 3,
   "name": "Temperature Source",
   "description": "Current Temperature Source",
   "units": "",
   "access": "W",
   "states": "1=Built-In Temp. Sensor, 2=Remote Temp. Sensor, 3=Assigned through BACnet"
  },
  {
   "type": "MV",
   "instance": 4,
   "name": "Lowest Fan Speed",
   "description": "Lowest Fan speed in Auto Fan mode",
   "units": "",
   "access": "W",
   "states": "1=Stop, 2=Low, 3=Med., 4=Hi"
  },
  {
   "type": "MV",
   "instance": 5,
   "name": "Fan Speed Status",
   "description": "",
   "units": "",
   "access": "R",
   "states": "1=Stop, 2=Low, 3=Med, 4=Hi"
  },
  {
   "type": "MV",
   "instance": 6,
   "name": "Display Options",
   "description": "LCD Display Options",
   "units": "",
   "access": "W",
   "states": "1=T & Time (if available), 2=SP & Time (if available), 3=T & CO2 (if available), 4=CO2 & Time (if available), 5=SP & CO2 (if available), 6=T & RH (if available), 7=T & Valve (if available)"
  },
  {
   "type": "MV",
   "instance": 7,
   "name": "Control Type",
   "description": "Control Type Selection",
   "units": "",
   "access": "W",
   "states": "1=Cooling Only, 2=Cooling or Heating Manual Changeover, 3=Cooling and Heating Auto Changeover (default), 4=Heating Only NOTE: Cool only and Heat only types disabled"
  }
 ],
 "page": "https://easybacnet.com/bacnet-points-lists/contemporary-controls/bast-221c-bw2",
 "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"
}
