{
 "manufacturer": "Senva",
 "manufacturer_slug": "senva",
 "model": "TGR Series recessed toxic gas sensor (BACnet MS/TP)",
 "model_slug": "tgr-toxic-gas-sensor",
 "aliases": [
  "TGR",
  "TGR-XXX",
  "Senva TGR toxic gas",
  "Senva TGR recessed gas detector"
 ],
 "equipment_type": "Gas detector / sensor (toxic gas, dual sensor)",
 "applies_to": "Senva TGR series recessed low-voltage toxic gas sensors (TGR-XXX) with one or two gas sensors, using BACnet MS/TP.",
 "summary": "The TGR is a Senva recessed toxic gas sensor with BACnet MS/TP. Analog Inputs give each sensor's reading, 5/15/60-minute time-weighted averages, alarm state, status bits and calibration/life days, plus relay and device status. Analog Values hold gas type and span, warning/alarm setpoints and hysteresis, fire-safety TWA and IDLH setpoints, relay timing and the RS-485 settings.",
 "bacnet_transport": [
  "BACnet MS/TP"
 ],
 "firmware": "VSBHP 14.10, application 1.1.x (PICS 5/13/2021)",
 "default_device_instance": null,
 "access_inferred": false,
 "notes": [
  "Points from the Analog Input and Analog Value tables (pages 5-10) of the protocol guide; names as printed, e.g. AI 1 \"Sensor1Readings\" and AV 10 \"Sensor1FactoryReset\" (read-only) versus AV 20 \"Sensor2CalReset\" (writable).",
  "AV 21-24 need a CO2 sensor fitted.",
  "Units are not printed; gas readings follow the gas type of each sensor.",
  "The TWA and IDLH setpoints apply in fire safety (fire control) mode, enabled with AV 38.",
  "There is no AV 34."
 ],
 "source": {
  "title": "BACnet Protocol Guide TGR Series",
  "doc_number": "154-0048-0A",
  "revision_date": "2023 (0A)",
  "url": "https://www.senvainc.com/catalog/documents/downloadcenter/TGR%20BACnet%20Guide.pdf"
 },
 "integration": {
  "summary": "Set the MS/TP address and baud, then read each sensor's reading and alarm state and the overall air quality state. Warning and alarm setpoints are written once; AV 37 silences the alarm.",
  "minimum_points": [
   {
    "ref": "AI 1",
    "name": "Sensor1Readings",
    "why": "Sensor 1 gas reading"
   },
   {
    "ref": "AI 9",
    "name": "Sensor2Reading",
    "why": "Sensor 2 gas reading"
   },
   {
    "ref": "AI 20",
    "name": "AirQualityState",
    "why": "Overall state: 0 Normal to 4 Extended Alarm"
   },
   {
    "ref": "AI 18",
    "name": "AlarmRelayState",
    "why": "Alarm relay state"
   },
   {
    "ref": "AI 17",
    "name": "TroubleRelayState",
    "why": "Trouble relay state"
   },
   {
    "ref": "AI 19",
    "name": "SystemStatus",
    "why": "Device error bits"
   }
  ],
  "enable": null,
  "heartbeat": null,
  "remote_sensors": null,
  "setup": [
   "MS/TP address, baud and data/parity/stop are AV 33, AV 35 and AV 36."
  ],
  "gotchas": [
   "AV 31 restores factory defaults; AV 20 resets sensor 2 calibration.",
   "Set AV 22 (CO2 auto-cal) off on dual-channel sensors, per the guide."
  ]
 },
 "points": [
  {
   "type": "AI",
   "instance": 1,
   "name": "Sensor1Readings",
   "description": "Sensor 1 instantaneous reading",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 2,
   "name": "Sensor1TWA5Reading",
   "description": "Sensor 1 5-minute time-weighted average",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 3,
   "name": "Sensor1TWA15Reading",
   "description": "Sensor 1 15-minute time-weighted average",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 4,
   "name": "Sensor1TWA60Reading",
   "description": "Sensor 1 60-minute time-weighted average",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 5,
   "name": "Sensor1AirQuality",
   "description": "Sensor 1 alarm state",
   "units": "",
   "access": "R",
   "states": "0=Normal, 1=Trouble, 2=Warning, 3=Alarm, 4=Extended Alarm"
  },
  {
   "type": "AI",
   "instance": 6,
   "name": "Sensor1Status",
   "description": "Sensor 1 status bits",
   "units": "",
   "access": "R",
   "states": "Bit flags: 1=Sensor Never Present, 2=EOL, 4=Pulse Failure, 8=Init failure, 16=No Sensor Present, 32=Other, 64=Sensor detected, 128=Sensor Ready"
  },
  {
   "type": "AI",
   "instance": 7,
   "name": "Sensor1CalDaysRemaining",
   "description": "Days until sensor 1 needs recalibration",
   "units": "days",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 8,
   "name": "Sensor1LifeDaysRemaining",
   "description": "Days of sensor 1 life left",
   "units": "days",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 9,
   "name": "Sensor2Reading",
   "description": "Sensor 2 instantaneous reading",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 10,
   "name": "Sensor2TWA5Reading",
   "description": "Sensor 2 5-minute time-weighted average",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 11,
   "name": "Sensor2TWA15Reading",
   "description": "Sensor 2 15-minute time-weighted average",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 12,
   "name": "Sensor2TWA60Reading",
   "description": "Sensor 2 60-minute time-weighted average",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 13,
   "name": "Sensor2AirQuality",
   "description": "Sensor 2 alarm state",
   "units": "",
   "access": "R",
   "states": "0=Normal, 1=Trouble, 2=Warning, 3=Alarm, 4=Extended Alarm"
  },
  {
   "type": "AI",
   "instance": 14,
   "name": "Sensor2Status",
   "description": "Sensor 2 status bits",
   "units": "",
   "access": "R",
   "states": "Bit flags: 1=Sensor Never Present, 2=EOL, 4=Pulse Failure, 8=Init failure, 16=No Sensor Present, 32=Other, 64=Sensor detected, 128=Sensor Ready"
  },
  {
   "type": "AI",
   "instance": 15,
   "name": "Sensor2CalDaysRemaining",
   "description": "Days until sensor 2 needs recalibration",
   "units": "days",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 16,
   "name": "Sensor2LifeDaysRemaining",
   "description": "Days of sensor 2 life left",
   "units": "days",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 17,
   "name": "TroubleRelayState",
   "description": "Trouble relay state",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 18,
   "name": "AlarmRelayState",
   "description": "Alarm relay state",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 19,
   "name": "SystemStatus",
   "description": "Device status bits",
   "units": "",
   "access": "R",
   "states": "Bit flags: 1=I2C error, 2=CRC error, 4=Write Error, 8=Using Factory Defaults, 16=Sensor error, 32=sensor warning, 64=nfc error, 128=assert"
  },
  {
   "type": "AI",
   "instance": 20,
   "name": "AirQualityState",
   "description": "Overall device alarm state",
   "units": "",
   "access": "R",
   "states": "0=Normal, 1=Trouble, 2=Warning, 3=Alarm, 4=Extended Alarm"
  },
  {
   "type": "AV",
   "instance": 1,
   "name": "Sensor1GasType",
   "description": "Sensor 1 gas type",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 2,
   "name": "Sensor1SpanMax",
   "description": "Highest value sensor 1 can measure",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 3,
   "name": "Sensor1SpanMin",
   "description": "Lowest value sensor 1 can measure",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 4,
   "name": "Sensor1Warning",
   "description": "Sensor 1 warning relay setpoint",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 5,
   "name": "Sensor1Alarm",
   "description": "Sensor 1 alarm relay setpoint",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 6,
   "name": "Sensor1Hysteresis",
   "description": "Sensor 1 drop below setpoint before alarm clears",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 7,
   "name": "Sensor1TWA5SP",
   "description": "Sensor 1 5-min TWA alarm setpoint (fire safety mode)",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 8,
   "name": "Sensor1TWA15SP",
   "description": "Sensor 1 15-min TWA alarm setpoint (fire safety mode)",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 9,
   "name": "Sensor1TWA60SP",
   "description": "Sensor 1 60-min TWA alarm setpoint (fire safety mode)",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 10,
   "name": "Sensor1FactoryReset",
   "description": "Resets sensor 1 calibration to factory",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 11,
   "name": "Sensor2GasType",
   "description": "Sensor 2 gas type",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 12,
   "name": "Sensor2SpanMax",
   "description": "Highest value sensor 2 can measure",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 13,
   "name": "Sensor2SpanMin",
   "description": "Lowest value sensor 2 can measure",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 14,
   "name": "Sensor2Warning",
   "description": "Sensor 2 warning relay setpoint",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 15,
   "name": "Sensor2Alarm",
   "description": "Sensor 2 alarm relay setpoint",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 16,
   "name": "Sensor2Hysteresis",
   "description": "Sensor 2 drop below setpoint before alarm clears",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 17,
   "name": "Sensor2TWA5SP",
   "description": "Sensor 2 5-min TWA alarm setpoint (fire safety mode)",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 18,
   "name": "Sensor2TWA15SP",
   "description": "Sensor 2 15-min TWA alarm setpoint (fire safety mode)",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 19,
   "name": "Sensor2TWA60SP",
   "description": "Sensor 2 60-min TWA alarm setpoint (fire safety mode)",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 20,
   "name": "Sensor2CalReset",
   "description": "Resets sensor 2 calibration to factory",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 21,
   "name": "CO2Offset*",
   "description": "CO2 offset (CO2 sensor only)",
   "units": "ppm",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 22,
   "name": "CO2AutoCal*",
   "description": "CO2 auto-calibration on/off (CO2 sensor only)",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 23,
   "name": "CO2AutoCalBaseline*",
   "description": "CO2 auto-calibration baseline (CO2 sensor only)",
   "units": "ppm",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 24,
   "name": "CO2AutoCalPeriod*",
   "description": "CO2 auto-calibration period (CO2 sensor only)",
   "units": "days",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 25,
   "name": "TroubleRelayPolarity",
   "description": "Trouble relay active polarity",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 26,
   "name": "TroubleRelayOnTime",
   "description": "Trouble relay minimum off time",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 27,
   "name": "TroubleRelayOffTime",
   "description": "Trouble relay maximum off time",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 28,
   "name": "AlarmRelayPolarity",
   "description": "Alarm relay active polarity",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 29,
   "name": "AlarmRelayOnTime",
   "description": "Alarm relay minimum off time",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 30,
   "name": "AlarmRelayOffTime",
   "description": "Alarm relay maximum off time",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 31,
   "name": "FactoryReset",
   "description": "Restores factory defaults",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 32,
   "name": "Protocol",
   "description": "Communication protocol in use",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 33,
   "name": "MACAddress",
   "description": "BACnet MS/TP address",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 35,
   "name": "BaudRate",
   "description": "Baud rate",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 36,
   "name": "Data/Parity/Stop",
   "description": "Data bits, parity and stop bits",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 37,
   "name": "SilenceEnable",
   "description": "Silences the device alarm",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 38,
   "name": "FireControlModeEnabled",
   "description": "Enables fire control (fire safety) mode",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 39,
   "name": "Sensor 1 IDLH Setpoint",
   "description": "Sensor 1 IDLH level; instant alarm in fire safety mode",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 40,
   "name": "Sensor 2 IDLH Setpoint",
   "description": "Sensor 2 IDLH level; instant alarm in fire safety mode",
   "units": "",
   "access": "W",
   "states": ""
  }
 ],
 "page": "https://easybacnet.com/bacnet-points-lists/senva/tgr-toxic-gas-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"
}
