{
 "manufacturer": "Contemporary Controls",
 "manufacturer_slug": "contemporary-controls",
 "model": "BASstat BAST-321HP-B2 Heat Pump Thermostat",
 "short_model": "BAST-321HP-B2",
 "model_slug": "bast-321hp-b2",
 "aliases": [
  "BAST-321HP-B2",
  "BAST-321-B2",
  "BASstat 321HP"
 ],
 "equipment_type": "Thermostat for 2-stage HP systems (BACnet MS/TP)",
 "applies_to": "Contemporary Controls BAST-321HP-B2 wired thermostats for single or dual compressor heat pumps with auxiliary heat.",
 "summary": "The BAST-321HP-B2 is a BACnet MS/TP thermostat for 2-stage heat pumps (O/B reversing valve, two compressors, auxiliary heat and fan). It exposes temperatures, setpoints, system and fan modes, occupancy, relay control and status, and setup values as BACnet objects.",
 "bacnet_transport": [
  "BACnet MS/TP"
 ],
 "firmware": null,
 "default_device_instance": 600001,
 "access_inferred": false,
 "notes": [
  "From the BACnet Object Table (manual pages 24-32). 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)."
 ],
 "source": {
  "title": "BAST-321HP-B2 Heat Pump Thermostat User Manual",
  "doc_number": "UM-15094000-AA0",
  "revision_date": null,
  "url": "https://www.ccontrols.com/pdf/um/BAST-321-B2-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": "1 = auto, then fan speeds"
   },
   {
    "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 Network (AV 1) is only used while the BMS keeps toggling Heartbeat (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 MS/TP: MAC address set in the Engineering menu (Addr, 1-127) or AV 20; baud 9600-76800 set with bAud or Baud Rate (MV 6).",
   "Device instance = devH x 1000 + devL in the Engineering menu, or write Device Instance (AV 21) once online.",
   "The manual gives 600001 as the default device instance, MAC address 1 and 38400 baud."
  ],
  "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 Space Temperature Sensor",
   "description": "Built-in Space 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": "AV",
   "instance": 0,
   "name": "Cooling Temperature Setpoint",
   "description": "",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 1,
   "name": "Space Temperature via Network",
   "description": "",
   "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",
   "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 Set-Point Temperature",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 14,
   "name": "High Setpoint Limit",
   "description": "High Limit for Set-Point Temperature",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 15,
   "name": "Temperature Offset",
   "description": "Offset for Current Temperature",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 16,
   "name": "Proportional Band- Stage Width",
   "description": "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": "MAC Address",
   "description": "",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 21,
   "name": "Device Instance",
   "description": "",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 23,
   "name": "Cooling Short Cycle",
   "description": "Cooling Short Cycle Delay",
   "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": "",
   "units": "°F/°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 40,
   "name": "Maximum Heating Temperature Setpoint",
   "description": "",
   "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 (O/B Valve)",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BI",
   "instance": 4,
   "name": "Relay 2 Status",
   "description": "Status of Relay 2 (Comp 1)",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BI",
   "instance": 5,
   "name": "Relay 3 Status",
   "description": "Status of Relay 3 (Comp 2)",
   "units": "",
   "access": "R",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BI",
   "instance": 6,
   "name": "Relay 4 Status",
   "description": "Status of Relay 4 (Aux. Heating Stage 3)",
   "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": "BV",
   "instance": 0,
   "name": "Occupancy Contact Definition",
   "description": "Occupancy (D1) Contact Definition",
   "units": "",
   "access": "W",
   "states": "0=N.O.= Occupied, 1=N.C. = Occupied"
  },
  {
   "type": "BV",
   "instance": 3,
   "name": "Reversing Valve Polarity",
   "description": "",
   "units": "",
   "access": "W",
   "states": "0=N.O./ N.C., 1=N.C./ N.O."
  },
  {
   "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 (O/B Valve)",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BV",
   "instance": 8,
   "name": "Relay 2 Control",
   "description": "On/Off Control of Relay 2 (Comp 1)",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=On"
  },
  {
   "type": "BV",
   "instance": 9,
   "name": "Relay 3 Control",
   "description": "On/Off Control of Relay 3 (Comp 2)",
   "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 3)",
   "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",
   "description": "Communication Heartbeat Flip-Flop",
   "units": "",
   "access": "W",
   "states": "0=Disable, 1=Enable"
  },
  {
   "type": "MV",
   "instance": 0,
   "name": "Fan Mode",
   "description": "",
   "units": "",
   "access": "W",
   "states": "1=Auto, 2=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": "Baud Rate",
   "description": "Baud Rate (BPS for MS/TP)",
   "units": "",
   "access": "W",
   "states": "1=9600 bps, 2=19200 bps, 3=38400 bps, 4=57600 bps, 5=76800 bps"
  },
  {
   "type": "MV",
   "instance": 7,
   "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": 8,
   "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-321hp-b2",
 "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"
}
