{
 "manufacturer": "Honeywell",
 "manufacturer_slug": "honeywell",
 "model": "TR50 indoor air quality sensor (BACnet MS/TP)",
 "model_slug": "tr50-iaq-sensor",
 "aliases": [
  "TR50",
  "TR50-5D",
  "TR50-5N",
  "TR50-3D",
  "TR50-3N",
  "TR50-5D-U",
  "TR50-3D-U",
  "Honeywell TR50 IAQ sensor"
 ],
 "equipment_type": "Room air quality sensor",
 "applies_to": "Honeywell TR50 wall-mount indoor air quality sensors (temperature, humidity, CO2, PM2.5 / PM1.0 / PM10, TVOC) on BACnet MS/TP.",
 "summary": "The TR50 is a wall-mount indoor air quality sensor that reports temperature, humidity, CO2, particulates, TVOC and an air quality score on BACnet MS/TP (it also speaks Modbus and Sylk). Readings are Analog Inputs; alarm limits, deadbands, delays, offsets and display settings are writable Analog, Multistate and Binary Values, and each measurement has an out-of-range multistate. Which objects appear depends on the SKU (3-sensor models lack PM and TVOC).",
 "bacnet_transport": [
  "BACnet MS/TP"
 ],
 "firmware": null,
 "default_device_instance": "Same as the MS/TP MAC address",
 "access_inferred": false,
 "notes": [
  "Objects created depend on the SKU: the 5-parameter models (TR50-5x) have PM2.5 and TVOC; the 3-parameter models do not.",
  "The guide prints CO2 names with the 2 as a subscript (e.g. 'CO 2'); names here join them (SS_AI_SensorReading_CO2). Name capitalisation (cfg / Cfg) is as printed.",
  "Defaults are given in the descriptions. Temperature-type settings follow the display unit (MV 101).",
  "CfgIsParaDisplayed (AV 381) is a bit mask of what the LCD shows; the bit meanings differ between TR50-5D and TR50-3D.",
  "The BTL PICS (Dec 2022) lists the same instances with ranges but no names."
 ],
 "source": {
  "title": "TR50 User Guide, section 4.4.5 BACnet Points",
  "doc_number": null,
  "revision_date": null,
  "url": "https://lit.stromquist.com/docs/honeywell/tr50user.pdf",
  "unofficial": true,
  "host": "Stromquist & Company"
 },
 "integration": {
  "summary": "Set the MS/TP MAC on the DIP switches, let the sensor auto-detect the baud rate, discover it and give it a unique device instance. Then read the sensor AIs and the out-of-range multistates; adjust alarm limits only if the sensor's own alarms are used.",
  "minimum_points": [
   {
    "ref": "AI 1",
    "name": "SS_AI_SensorReading_Temp",
    "why": "Space temperature"
   },
   {
    "ref": "AI 2",
    "name": "SS_AI_SensorReading_Humi",
    "why": "Space relative humidity, %"
   },
   {
    "ref": "AI 3",
    "name": "SS_AI_SensorReading_CO2",
    "why": "CO2, ppm"
   },
   {
    "ref": "AI 4",
    "name": "SS_AI_SensorReading_PM2.5",
    "why": "PM2.5, ug/m3"
   },
   {
    "ref": "AI 5",
    "name": "SS_AI_SensorReading_TVOC",
    "why": "TVOC, ppb or ug/m3"
   },
   {
    "ref": "AI 6",
    "name": "SS_AI_AIR_QUALITY_SCORE",
    "why": "Air quality score, 0-100"
   },
   {
    "ref": "MV 3",
    "name": "SS_MV_OutOfRange_CO2",
    "why": "CO2 state: normal, over high, over high-high"
   }
  ],
  "enable": null,
  "heartbeat": null,
  "remote_sensors": null,
  "setup": [
   "MS/TP MAC by DIP switch; default MAC range 1-30, Max Master 35.",
   "Device instance defaults to the MAC address; set a unique instance after discovery.",
   "Auto baud for the first 4 minutes after power-up (9600-115200); falls back to the last found rate, else 38400."
  ],
  "gotchas": [
   "Allow at least 3 minutes between two CO2 offset writes (cfgCO2SensorOffset).",
   "The out-of-range multistates (MV 1-5) are listed as R/W but report the alarm state; treat them as status."
  ]
 },
 "points": [
  {
   "type": "AI",
   "instance": 1,
   "name": "SS_AI_SensorReading_Temp",
   "description": "Temperature reading",
   "units": "°F or °C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 2,
   "name": "SS_AI_SensorReading_Humi",
   "description": "Relative humidity",
   "units": "%",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 3,
   "name": "SS_AI_SensorReading_CO2",
   "description": "CO2",
   "units": "ppm",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 4,
   "name": "SS_AI_SensorReading_PM2.5",
   "description": "PM2.5",
   "units": "ug/m3",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 5,
   "name": "SS_AI_SensorReading_TVOC",
   "description": "TVOC",
   "units": "ppb or ug/m3",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 6,
   "name": "SS_AI_AIR_QUALITY_SCORE",
   "description": "Air quality score 0-100",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 7,
   "name": "SS_AI_SensorReading_PM1.0",
   "description": "PM1.0",
   "units": "ug/m3",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 8,
   "name": "SS_AI_SensorReading_PM10",
   "description": "PM10",
   "units": "ug/m3",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 1,
   "name": "CfgAlarmTempLowLimit",
   "description": "Alarm temperature low limit (default 65(°F) 18(°C))",
   "units": "°F or °C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2,
   "name": "CfgAlarmTempHighLimit",
   "description": "Alarm temperature high limit (default 86(°F) 30(°C))",
   "units": "°F or °C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 3,
   "name": "CfgAlarmTempDeadband",
   "description": "Alarm temperature deadband (default 1(°F) 1(°C))",
   "units": "°F or °C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 4,
   "name": "CfgAlarmTempTimeDelay",
   "description": "Alarm temperature time delay (default 60(s))",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "MV",
   "instance": 1,
   "name": "SS_MV_OutofRange_Temp",
   "description": "Out-of-range state, temperature (default 1)",
   "units": "",
   "access": "W",
   "states": "1=Normal, 2=Off normal"
  },
  {
   "type": "AV",
   "instance": 281,
   "name": "CfgTempSensorOffset",
   "description": "Temperature sensor offset (default 0)",
   "units": "°F or °C",
   "access": "W",
   "states": ""
  },
  {
   "type": "MV",
   "instance": 21,
   "name": "CfgAlarmTempLimitEnable",
   "description": "Alarm temperature limit enable (default 4)",
   "units": "",
   "access": "W",
   "states": "1=Temp Low Limit And High Limit Disable, 2=Temp Low Limit Enable, 3=Temp High Limit Enable, 4=Temp Low Limit And High Limit Enable"
  },
  {
   "type": "MV",
   "instance": 101,
   "name": "cfgDisplayUnitTemp",
   "description": "Display unit temperature (default 1)",
   "units": "",
   "access": "W",
   "states": "1=Degrees Fahrenheit (°F), 2=Degrees Celsius (°C)"
  },
  {
   "type": "AV",
   "instance": 51,
   "name": "CfgAlarmHumiLowLimit",
   "description": "Alarm humidity low limit (default 10(%))",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 52,
   "name": "CfgAlarmHumiHighLimit",
   "description": "Alarm humidity high limit (default 80(%))",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 53,
   "name": "CfgAlarmHumiDeadband",
   "description": "Alarm humidity deadband (default 2)",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 54,
   "name": "CfgAlarmHumiTimeDelay",
   "description": "Alarm humidity time delay (default 60(s))",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "MV",
   "instance": 2,
   "name": "SS_MV_OutofRange_Humi",
   "description": "Out-of-range state, humidity (default 1)",
   "units": "",
   "access": "W",
   "states": "1=Normal, 2=Off normal"
  },
  {
   "type": "MV",
   "instance": 22,
   "name": "cfgAlarmHumiLimitEnable",
   "description": "Alarm humidity limit enable (default 4)",
   "units": "",
   "access": "W",
   "states": "1=Humidity Low Limit And High Limit Disable, 2=Humidity Low Limit Enable, 3=Humidity High Limit Enable, 4=Humidity Low Limit And High Limit Enable"
  },
  {
   "type": "AV",
   "instance": 282,
   "name": "cfgHumiSensorOffset",
   "description": "Humidity sensor offset (default 0)",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 101,
   "name": "CfgAlarmCO2HighLimit",
   "description": "Alarm CO2 high limit (default 1000(ppm))",
   "units": "ppm",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 102,
   "name": "CfgAlarmCO2HighHighLimit",
   "description": "Alarm CO2 high-high limit (default 1400(ppm))",
   "units": "ppm",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 103,
   "name": "CfgAlarmCO2Deadband",
   "description": "Alarm CO2 deadband (default 100)",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 104,
   "name": "CfgAlarmCO2TimeDelay",
   "description": "Alarm CO2 time delay (default 60(s))",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 283,
   "name": "cfgCO2SensorOffset",
   "description": "CO2 sensor offset (default 0)",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "MV",
   "instance": 3,
   "name": "SS_MV_OutOfRange_CO2",
   "description": "Out-of-range state, CO2 (default 1)",
   "units": "",
   "access": "W",
   "states": "1=Normal, 2=Over high limit, 3=Over highhigh limit"
  },
  {
   "type": "MV",
   "instance": 23,
   "name": "CfgAlarmCO2LimitEnable",
   "description": "Alarm CO2 limit enable (default 4)",
   "units": "",
   "access": "W",
   "states": "1=CO2 High Limit And High High Limit Disable, 2=CO2 High Limit Enable, 3=CO2 High High Limit Enable, 4=CO2 High Limit And High High Limit Enable"
  },
  {
   "type": "AV",
   "instance": 151,
   "name": "CfgAlarmPM2.5HighLimit",
   "description": "Alarm PM2.5 high limit (default 35(ug/m3))",
   "units": "ug/m3",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 152,
   "name": "cfgAlarmPM2.5HighHighLimit",
   "description": "Alarm PM2.5 high-high limit (default 55(ug/m3))",
   "units": "ug/m3",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 153,
   "name": "CfgAlarmPM2.5Deadband",
   "description": "Alarm PM2.5 deadband (default 5)",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 154,
   "name": "CfgAlarmPM2.5TimeDelay",
   "description": "Alarm PM2.5 time delay (default 60(s))",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 284,
   "name": "CfgPM2.5SensorOffset",
   "description": "PM2.5 sensor offset (default 0)",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "MV",
   "instance": 4,
   "name": "SS_MV_OutOfRange_PM2.5",
   "description": "Out-of-range state, PM2.5 (default 1)",
   "units": "",
   "access": "W",
   "states": "1=Normal, 2=Over high limit, 3=Over highhigh limit"
  },
  {
   "type": "MV",
   "instance": 24,
   "name": "CfgAlarmPM2.5LimitEnable",
   "description": "Alarm PM2.5 limit enable (default 4)",
   "units": "",
   "access": "W",
   "states": "1=PM2.5 High Limit And High High Limit Disable, 2=PM2.5 High Limit Enable, 3=PM2.5 High High Limit Enable, 4=PM2.5 High Limit And High High Limit Enable"
  },
  {
   "type": "AV",
   "instance": 287,
   "name": "CfgPM1.0SensorOffset",
   "description": "PM1.0 sensor offset (default 0)",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 288,
   "name": "CfgPM10SensorOffset",
   "description": "PM10 sensor offset (default 0)",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 201,
   "name": "CfgAlarmTVOCHighLimit",
   "description": "Alarm TVOC high limit (default 250(ppb) 500(ug/m3))",
   "units": "ppb or ug/m3",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 202,
   "name": "CfgAlarmTVOCHighHighLimit",
   "description": "Alarm TVOC high-high limit (default 350(ppb) 700(ug/m3))",
   "units": "ppb or ug/m3",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 203,
   "name": "CfgAlarmTVOCDeadband",
   "description": "Alarm TVOC deadband (default 20(ppb) 40(ug/m3))",
   "units": "ppb or ug/m3",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 204,
   "name": "CfgAlarmTVOCTimeDelay",
   "description": "Alarm TVOC time delay (default 60(s))",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 285,
   "name": "CfgTVOCSensorOffset",
   "description": "TVOC sensor offset (default 0)",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "MV",
   "instance": 5,
   "name": "SS_MV_OutOfRange_TVOC",
   "description": "Out-of-range state, TVOC (default 1)",
   "units": "",
   "access": "W",
   "states": "1=Normal, 2=Over high limit, 3=Over highhigh limit"
  },
  {
   "type": "MV",
   "instance": 25,
   "name": "CfgAlarmTVOCLimitEnable",
   "description": "Alarm TVOC limit enable (default 4)",
   "units": "",
   "access": "W",
   "states": "1=TVOC High Limit And High High Limit Disable, 2=TVOC High Limit Enable, 3=TVOC High High Limit Enable, 4=TVOC High Limit And High High Limit Enable"
  },
  {
   "type": "MV",
   "instance": 102,
   "name": "cfgDisplayUnitTVOC",
   "description": "Display unit TVOC (default 1)",
   "units": "",
   "access": "W",
   "states": "1=Parts Per Billion, 2=Micrograms Per Cubic Meter"
  },
  {
   "type": "MV",
   "instance": 6,
   "name": "SS_MV_AQI_level",
   "description": "Air quality level (default 1)",
   "units": "",
   "access": "R",
   "states": "1=Good, 2=Moderate, 3=Unhealthy"
  },
  {
   "type": "AV",
   "instance": 251,
   "name": "cfgAQIUnhealthyScore",
   "description": "AQI Unhealthy Score (default 40)",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 252,
   "name": "cfgAQIModerateScore",
   "description": "AQI Moderate Score (default 80)",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 253,
   "name": "CfgAlarmAQIDeadband",
   "description": "Alarm AQI deadband (default 2)",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 254,
   "name": "CfgAlarmAQITimeDelay",
   "description": "Alarm AQI time delay (default 60(s))",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "MV",
   "instance": 26,
   "name": "CfgAlarmAQILimitEnable",
   "description": "Alarm AQI limit enable (default 4)",
   "units": "",
   "access": "W",
   "states": "1=AQI Moderate Limit And Unhealthy Limit Disable, 2=AQI Moderate Limit Enable, 3=AQI Unhealthy Limit Enable, 4=AQI Moderate And Unhealthy Limit Enable"
  },
  {
   "type": "AV",
   "instance": 301,
   "name": "cfgLedRingBrightness",
   "description": "Led Ring Brightness (default 50)",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 302,
   "name": "CfgLedRingDimBrightness",
   "description": "Led Ring Dim Brightness (default 10)",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 321,
   "name": "CfgLcdBrightness",
   "description": "Lcd Brightness (default 80)",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 322,
   "name": "CfgLcdDimBrightness",
   "description": "Lcd Dim Brightness (default 40)",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 341,
   "name": "CfgLcdAutoCycleTime",
   "description": "Lcd Auto Cycle Time (default 5(s))",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 361,
   "name": "cfgLedRingLcdTimeoutTime",
   "description": "Led Ring Lcd Timeout Time (default 0(s))",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 362,
   "name": "cfgLedRingLcdDimTime",
   "description": "Led Ring Lcd Dim Time (default 10(s))",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 381,
   "name": "CfgIsParaDisplayed",
   "description": "Bit mask of values shown on the LCD (default TR50-5D: 63 TR50-3D: 15)",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 21,
   "name": "cfgLedRingLcdEnable",
   "description": "Led Ring Lcd Enable (default 1)",
   "units": "",
   "access": "W",
   "states": "0=Off, 1=On"
  },
  {
   "type": "MV",
   "instance": 61,
   "name": "CfgLedRingColorOption",
   "description": "Led Ring Color Option (default 1)",
   "units": "",
   "access": "W",
   "states": "1=Color mode, 2=Neutral mode"
  },
  {
   "type": "MV",
   "instance": 81,
   "name": "CfgLcdParameterSwitch",
   "description": "Lcd Parameter Switch (default 1)",
   "units": "",
   "access": "W",
   "states": "TR50-5D: 1=Auto cycling (default), 2=Manual + AQI (as the static page), 3=Manual + Temperature (as the static page), 4=Manual + Humidity (as the static page), 5=Manual + CO2 (as the static page), 6=Manual + PM2.5 (as the static page), 7=Manual + TVOC (as the static page), 8=Manual + no static page; TR50-3D: 1=Auto cycling (default), 2=Manual + AQI (as the static page), 3=Manual + Temperature (as the static page), 4=Manual + Humidity (as the static page), 5=Manual + CO2 (as the static page), 6=Manual + no static page"
  },
  {
   "type": "MV",
   "instance": 41,
   "name": "CfgAlarmIndicatorEnable",
   "description": "Alarm Indicator Enable (default 4)",
   "units": "",
   "access": "W",
   "states": "1=Disable, 2=cfgOutOfRangeAlarm IndicatorEnable, 3=cfgSensorFailureAlarm IndicatorEnable, 4=cfgOutOfRangeAlarm IndicatorEnable && cfgSensorFailureAlarm IndicatorEnable"
  },
  {
   "type": "AV",
   "instance": 500,
   "name": "MstpHeaderCrcErrCount",
   "description": "MS/TP header CRC error count",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 501,
   "name": "MstpDataCrcErrCount",
   "description": "MS/TP data CRC error count",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 41,
   "name": "CfgIsMstpBadCrcClear",
   "description": "Clear the CRC error counters (default 1)",
   "units": "",
   "access": "W",
   "states": "0=Uncleared, 1=Cleared"
  },
  {
   "type": "BV",
   "instance": 1,
   "name": "cfgIsAlarmLocalDetectionEnable",
   "description": "Local alarm detection on/off (default 1)",
   "units": "",
   "access": "W",
   "states": "0=Disable, 1=Enable"
  }
 ],
 "page": "https://easybacnet.com/bacnet-points-lists/honeywell/tr50-iaq-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"
}
