{
 "manufacturer": "Veris",
 "manufacturer_slug": "veris",
 "model": "CW2 Protocol Series CO2, VOC, humidity and temperature room sensor",
 "model_slug": "cw2-protocol-air-quality-sensor",
 "aliases": [
  "CW2",
  "CW2 Protocol",
  "SpaceLogic SLP Air Quality",
  "SLP Series Air Quality",
  "Z207902",
  "Living Space Room Unit"
 ],
 "equipment_type": "Indoor air quality sensor (CO2, VOC, temperature, humidity)",
 "applies_to": "Veris CW2 Protocol Series wall air quality sensors, and the identical Schneider SpaceLogic SLP Air Quality Series, on BACnet MS/TP.",
 "summary": "The CW2 wall sensor measures temperature, humidity, CO2 and VOC and computes dew point, reported over BACnet MS/TP or Modbus. Writable values cover touchscreen setpoints, CO2 stoplight limits, offsets, CO2 calibration and display options.",
 "bacnet_transport": [
  "BACnet MS/TP"
 ],
 "firmware": null,
 "default_device_instance": "Vendor ID + MS/TP address (nnn)",
 "access_inferred": false,
 "notes": [
  "Names with * are preserved through power outages; avoid writing them cyclically.",
  "Touchscreen setpoint, fan speed, display and color objects only matter on touchscreen models.",
  "The SpaceLogic SLP Air Quality Series guide (Z207902) lists the same 27 object identifiers; it is covered by this entry. Its names differ only in spelling 'Limits' for AV 3-4.",
  "Which measurements are present depends on the model ordered.",
  "Source: CW2 Protocol Series Installation Guide Z207932-0N (03/2026), objects table p8-9."
 ],
 "source": {
  "title": "CW2 Protocol Series Installation Guide",
  "doc_number": "Z207932-0N",
  "revision_date": "2026-03",
  "url": "https://download.se.com/files?p_Doc_Ref=Z207932"
 },
 "integration": {
  "summary": "Set the MS/TP address and BACnet mode on the DIP switches, then read CO2, VOC, temperature and humidity. Offsets and limits are preserved settings to write once.",
  "minimum_points": [
   {
    "ref": "AI 3",
    "name": "CO2 Sensor",
    "why": "CO2 concentration, ppm"
   },
   {
    "ref": "AI 1",
    "name": "Room Temperature",
    "why": "Room temperature"
   },
   {
    "ref": "AI 2",
    "name": "Room Humidity",
    "why": "Room relative humidity, %"
   },
   {
    "ref": "AI 4",
    "name": "VOC Sensor",
    "why": "VOC level"
   }
  ],
  "enable": null,
  "heartbeat": null,
  "remote_sensors": null,
  "setup": [
   "BACnet MS/TP on RS-485: DIP switch ADDRESS positions 1-7 set the MAC (0-127 for BACnet), position 8 selects BACnet or Modbus.",
   "Baud rates for BACnet: 9600, 19200, 38400, 76800, set on the CONFIG DIP switch.",
   "Device instance = Vendor_ID followed by the MS/TP address (e.g. 133nnn); it can be rewritten in the device object."
  ],
  "gotchas": [
   "Writing CO2 FRC 400 (BV 10) active re-baselines the CO2 sensor to 400 ppm; treat it as a one-off calibration.",
   "Occupancy Override logic is inverted: active means not occupied."
  ]
 },
 "points": [
  {
   "type": "AI",
   "instance": 1,
   "name": "Room Temperature",
   "description": "Room temperature",
   "units": "°C or °F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 2,
   "name": "Room Humidity",
   "description": "Room relative humidity",
   "units": "%RH",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 3,
   "name": "CO2 Sensor",
   "description": "CO2 concentration",
   "units": "ppm",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 4,
   "name": "VOC Sensor",
   "description": "VOC level",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 9,
   "name": "Dew Point",
   "description": "Dew point temperature",
   "units": "°C or °F",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 1,
   "name": "Temperature Setpoint*",
   "description": "Temperature setpoint, 0-50",
   "units": "°C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2,
   "name": "Humidity Setpoint*",
   "description": "Humidity setpoint, 0-100",
   "units": "%RH",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 3,
   "name": "CO2 Yellow Limit*",
   "description": "CO2 level for green-to-yellow screen, 400-10000",
   "units": "ppm",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 4,
   "name": "CO2 Red Limit*",
   "description": "CO2 level for yellow-to-red screen, 400-10000",
   "units": "ppm",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 7,
   "name": "Temperature Offset*",
   "description": "Offset added to temperature reading, -5 to 5",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 8,
   "name": "Humidity Offset*",
   "description": "Offset added to humidity reading, -10 to 10",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 9,
   "name": "CO2 Offset*",
   "description": "Offset added to CO2, -250 to 250",
   "units": "ppm",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 10,
   "name": "VOC Offset*",
   "description": "Offset added to VOC, -500 to 500",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 1,
   "name": "CO2 Stoplight*",
   "description": "Enables the CO2 stoplight screen colors",
   "units": "",
   "access": "W",
   "states": "0=Disabled, 1=Enabled"
  },
  {
   "type": "BV",
   "instance": 2,
   "name": "Touch Disable*",
   "description": "Disables touch response when active",
   "units": "",
   "access": "W",
   "states": "0=Touch enabled, 1=Touch disabled"
  },
  {
   "type": "BV",
   "instance": 3,
   "name": "CO2 ABC Cal*",
   "description": "Enables automatic baseline calibration",
   "units": "",
   "access": "W",
   "states": "0=Disabled, 1=Enabled"
  },
  {
   "type": "BV",
   "instance": 4,
   "name": "Temperature Units*",
   "description": "Display units",
   "units": "",
   "access": "W",
   "states": "0=Celsius, 1=Fahrenheit"
  },
  {
   "type": "BV",
   "instance": 5,
   "name": "Occupancy Override",
   "description": "Occupancy override (active = room not occupied)",
   "units": "",
   "access": "W",
   "states": "0=Occupied, 1=Not occupied"
  },
  {
   "type": "BV",
   "instance": 6,
   "name": "Screen Timeout*",
   "description": "Enables screen timeout",
   "units": "",
   "access": "W",
   "states": "0=Disabled, 1=Enabled"
  },
  {
   "type": "BV",
   "instance": 7,
   "name": "Display Humidity*",
   "description": "Shows humidity on the screen",
   "units": "",
   "access": "W",
   "states": "0=Hidden, 1=Shown"
  },
  {
   "type": "BV",
   "instance": 8,
   "name": "Display CO2*",
   "description": "Shows CO2 on the screen",
   "units": "",
   "access": "W",
   "states": "0=Hidden, 1=Shown"
  },
  {
   "type": "BV",
   "instance": 9,
   "name": "Display VOC*",
   "description": "Shows VOC on the screen",
   "units": "",
   "access": "W",
   "states": "0=Hidden, 1=Shown"
  },
  {
   "type": "BV",
   "instance": 10,
   "name": "CO2 FRC 400",
   "description": "Active sets 400 ppm CO2 baseline (forced calibration)",
   "units": "",
   "access": "W",
   "states": "0=No action, 1=Set 400 ppm baseline"
  },
  {
   "type": "BV",
   "instance": 11,
   "name": "Select Temperature Display*",
   "description": "Main screen shows setpoint (active) or room temperature",
   "units": "",
   "access": "W",
   "states": "0=Room temp on main screen, 1=Setpoint on main screen"
  },
  {
   "type": "BV",
   "instance": 13,
   "name": "Display Setpoint*",
   "description": "Shows temperature setpoint on home screen",
   "units": "",
   "access": "W",
   "states": "0=Hidden, 1=Shown"
  },
  {
   "type": "MV",
   "instance": 1,
   "name": "Screen Color Set*",
   "description": "Screen color theme, 1-4",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "MV",
   "instance": 2,
   "name": "Fan Speed*",
   "description": "Fan speed selection, 1-5",
   "units": "",
   "access": "W",
   "states": ""
  }
 ],
 "page": "https://easybacnet.com/bacnet-points-lists/veris/cw2-protocol-air-quality-sensor",
 "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"
}
