{
 "manufacturer": "Senva",
 "manufacturer_slug": "senva",
 "model": "TG Series toxic gas detector (BACnet MS/TP)",
 "model_slug": "tg-toxic-gas-detector",
 "aliases": [
  "TG",
  "TGX-BXX-XX",
  "Senva TG toxic gas",
  "Senva TG CO NO2 detector"
 ],
 "equipment_type": "Gas detector / sensor (toxic gas, dual sensor)",
 "applies_to": "Senva TG series toxic gas detectors (TGX-BXX-XX) with one or two gas sensors, optional thermistor, fan and alarm relays and buzzer, using BACnet MS/TP.",
 "summary": "The TG is a Senva toxic gas detector with BACnet MS/TP. Each measurement (temperature, gas sensor 1 and 2, supply voltage) has a primary Analog Input plus Smoothed, Minimum, Maximum and Average objects. Analog Values hold the warning and alarm setpoints, hysteresis, sensor life and RS-485 settings; commandable Binary Outputs drive the fan relay, alarm relay and buzzer, and MSV 170 reports the Normal / Warning / Alarm / Extended Alarm state.",
 "bacnet_transport": [
  "BACnet MS/TP"
 ],
 "firmware": "2.0.0 (PICS 2/7/2020)",
 "default_device_instance": null,
 "access_inferred": false,
 "notes": [
  "Points from the object list and object sections of protocol guide 154-0035-0B; it replaces the older TG guide 154-0032-0A.",
  "The secondary analog inputs are printed only as \"Smoothed\", \"Minimum\", \"Maximum\" and \"Average\" under each primary AI (primary + 2, 4, 6, 8); names kept as printed.",
  "Minimum, Maximum and Average reset when 0 is written to them, when AV 192 is written with its key, or on read if BV 195 is active.",
  "Sensor 2 and thermistor objects exist only on models with those features. Gas units are not printed; ppm is assumed from the setpoint text.",
  "Multistate objects are MSV in the guide; listed here as MV. FILE 25000 holds a read-only copy of the configuration."
 ],
 "source": {
  "title": "BACnet Protocol Guide TG",
  "doc_number": "154-0035-0B",
  "revision_date": "2021-03-12",
  "url": "https://www.senvainc.com/catalog/documents/downloadcenter/TG%20BACnet%20Protocol%20Guide%20154-0035-0B.pdf"
 },
 "integration": {
  "summary": "Connect to an active MS/TP network and let the TG auto-detect baud, protocol and address, then read the gas readings and MSV 170. The relays and buzzer run automatically from the setpoints; the BMS can override them through the BO priority array.",
  "minimum_points": [
   {
    "ref": "BO 210",
    "name": "Fan Relay",
    "why": "Fan relay; BMS can override (commandable)"
   },
   {
    "ref": "AI 320",
    "name": "Sensor 1 Gas Concentration",
    "why": "Sensor 1 gas reading"
   },
   {
    "ref": "AI 330",
    "name": "Sensor 2 Gas Concentration",
    "why": "Sensor 2 gas reading"
   },
   {
    "ref": "MV 170",
    "name": "System State",
    "why": "Normal, Warning, Alarm or Extended Alarm"
   },
   {
    "ref": "BO 230",
    "name": "Alarm Relay",
    "why": "Alarm relay state"
   },
   {
    "ref": "AV 158",
    "name": "Sensor 1 Sensor Life",
    "why": "Days of sensor 1 life left"
   }
  ],
  "enable": "The device writes the relays at priority 16 from the system state; commands at priorities 1-5 override immediately, 7-15 respect minimum on/off times. Priority 6 is reserved.",
  "heartbeat": null,
  "remote_sensors": null,
  "setup": [
   "Factory default is automatic baud (9600-115200), protocol and MAC (0-127) detection on an active MS/TP network.",
   "Writing AV 123 or AV 124 turns off the automatic address or baud selection.",
   "Device Max_Master and Max_Info_Frames are writable."
  ],
  "gotchas": [
   "There is no remote way back after changing the baud rate; the device goes silent until the controller matches it.",
   "AV 190 (key 9699690) wipes the configuration, including the RS-485 settings.",
   "With BV 114 Auto Baud active, the TG will not start a token on an idle line."
  ]
 },
 "points": [
  {
   "type": "AI",
   "instance": 310,
   "name": "Temperature",
   "description": "External air temperature (thermistor models); write 0 resets stats",
   "units": "°F / °C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 312,
   "name": "Smoothed",
   "description": "Temperature, smoothed",
   "units": "°F / °C",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 314,
   "name": "Minimum",
   "description": "Temperature, lowest since reset",
   "units": "°F / °C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 316,
   "name": "Maximum",
   "description": "Temperature, highest since reset",
   "units": "°F / °C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 318,
   "name": "Average",
   "description": "Temperature, average since reset",
   "units": "°F / °C",
   "access": "W",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 320,
   "name": "Sensor 1 Gas Concentration",
   "description": "Sensor 1 gas concentration",
   "units": "ppm",
   "access": "W",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 322,
   "name": "Smoothed",
   "description": "Sensor 1 gas, smoothed",
   "units": "ppm",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 324,
   "name": "Minimum",
   "description": "Sensor 1 gas, lowest since reset",
   "units": "ppm",
   "access": "W",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 326,
   "name": "Maximum",
   "description": "Sensor 1 gas, highest since reset",
   "units": "ppm",
   "access": "W",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 328,
   "name": "Average",
   "description": "Sensor 1 gas, average since reset",
   "units": "ppm",
   "access": "W",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 330,
   "name": "Sensor 2 Gas Concentration",
   "description": "Sensor 2 gas concentration",
   "units": "ppm",
   "access": "W",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 332,
   "name": "Smoothed",
   "description": "Sensor 2 gas, smoothed",
   "units": "ppm",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 334,
   "name": "Minimum",
   "description": "Sensor 2 gas, lowest since reset",
   "units": "ppm",
   "access": "W",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 336,
   "name": "Maximum",
   "description": "Sensor 2 gas, highest since reset",
   "units": "ppm",
   "access": "W",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 338,
   "name": "Average",
   "description": "Sensor 2 gas, average since reset",
   "units": "ppm",
   "access": "W",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 380,
   "name": "Power Supply Voltage",
   "description": "Internal supply voltage (1-2 V below external)",
   "units": "V",
   "access": "W",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 382,
   "name": "Smoothed",
   "description": "Supply voltage, smoothed",
   "units": "V",
   "access": "R",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 384,
   "name": "Minimum",
   "description": "Supply voltage, lowest since reset",
   "units": "V",
   "access": "W",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 386,
   "name": "Maximum",
   "description": "Supply voltage, highest since reset",
   "units": "V",
   "access": "W",
   "states": ""
  },
  {
   "type": "AI",
   "instance": 388,
   "name": "Average",
   "description": "Supply voltage, average since reset",
   "units": "V",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 103,
   "name": "Reset Count",
   "description": "Lifetime count of firmware resets",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 104,
   "name": "Up Time",
   "description": "Time since last reset",
   "units": "s",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 123,
   "name": "MAC Address",
   "description": "MS/TP address, 0-254; writing turns Auto MAC off",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 124,
   "name": "RS485 Baud Rate",
   "description": "RS-485 baud rate, 1200-460800; writing turns Auto Baud off",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 130,
   "name": "Temperature Calibration Offset",
   "description": "Temperature calibration offset",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 134,
   "name": "Smoothed Temperature Response Time",
   "description": "Smoothed temperature response time (default 30)",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 135,
   "name": "Gas 1 Response Time",
   "description": "Gas 1 smoothing time (default 10)",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 136,
   "name": "Gas 2 Response Time",
   "description": "Gas 2 smoothing time (default 10)",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 150,
   "name": "Sensor 1 Warning Setpoint",
   "description": "Sensor 1 gas level for Warning state",
   "units": "ppm",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 152,
   "name": "Sensor 1 Alarm Setpoint",
   "description": "Sensor 1 gas level for Alarm state",
   "units": "ppm",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 154,
   "name": "Sensor 1 Hysteresis",
   "description": "Sensor 1 hysteresis (default 0)",
   "units": "ppm",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 156,
   "name": "Sensor 1 Adjustment",
   "description": "Sensor 1 scale adjustment (default 100 %)",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 158,
   "name": "Sensor 1 Sensor Life",
   "description": "Sensor 1 remaining life (starts at 1825)",
   "units": "days",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 160,
   "name": "Sensor 2 Warning Setpoint",
   "description": "Sensor 2 gas level for Warning state",
   "units": "ppm",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 162,
   "name": "Sensor 2 Alarm Setpoint",
   "description": "Sensor 2 gas level for Alarm state",
   "units": "ppm",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 164,
   "name": "Sensor 2 Hysteresis",
   "description": "Sensor 2 hysteresis (default 0)",
   "units": "ppm",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 166,
   "name": "Sensor 2 Adjustment",
   "description": "Sensor 2 scale adjustment (default 100 %)",
   "units": "%",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 168,
   "name": "Sensor 2 Sensor Life",
   "description": "Sensor 2 remaining life (starts at 1825)",
   "units": "days",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 190,
   "name": "System Configuration Reset",
   "description": "Write 9699690 to reset configuration to factory (reads 0)",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 192,
   "name": "Statistics Reset",
   "description": "Write 4765089 to reset all statistics (reads 0)",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 198,
   "name": "Reserved",
   "description": "Reserved",
   "units": "",
   "access": "R",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 212,
   "name": "Fan Maximum Off Time",
   "description": "Fan relay maximum off time, 0 = ignored (default 0)",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 232,
   "name": "Alarm Maximum Off Time",
   "description": "Alarm relay maximum off time, 0 = ignored (default 0)",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "AV",
   "instance": 252,
   "name": "Buzzer Delay",
   "description": "Buzzer delay after Alarm state (default 1800)",
   "units": "s",
   "access": "W",
   "states": ""
  },
  {
   "type": "BO",
   "instance": 210,
   "name": "Fan Relay",
   "description": "Fan relay; on automatically at Warning or above",
   "units": "",
   "access": "C",
   "states": ""
  },
  {
   "type": "BO",
   "instance": 230,
   "name": "Alarm Relay",
   "description": "Alarm relay; on automatically at Alarm or above",
   "units": "",
   "access": "C",
   "states": ""
  },
  {
   "type": "BO",
   "instance": 250,
   "name": "Alarm Buzzer",
   "description": "Alarm buzzer; on at Extended Alarm",
   "units": "",
   "access": "C",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 111,
   "name": "Identify Device",
   "description": "Identify mode: LEDs on, MAC address blinks",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 112,
   "name": "Auto Protocol",
   "description": "Automatic protocol detection (default Active)",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 113,
   "name": "Auto MAC Address",
   "description": "Automatic MAC address selection (default Active)",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 114,
   "name": "Auto Baud Rate",
   "description": "Automatic baud detection (default Active)",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 115,
   "name": "Auto Parity",
   "description": "Automatic parity detection (default Active)",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 118,
   "name": "Buzzer Override",
   "description": "Forces the buzzer off (persists)",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 195,
   "name": "Auto Reset Statistics",
   "description": "Reading a min/max/average also resets it (default Inactive)",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 196,
   "name": "Sensor 1 Pulse Status",
   "description": "Sensor 1 electrochemical pulse health check",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "BV",
   "instance": 197,
   "name": "Sensor 2 Pulse Status",
   "description": "Sensor 2 electrochemical pulse health check",
   "units": "",
   "access": "W",
   "states": ""
  },
  {
   "type": "MV",
   "instance": 122,
   "name": "RS485 Protocol",
   "description": "RS-485 protocol selection (default Auto)",
   "units": "",
   "access": "W",
   "states": "1=Auto Protocol, 2=BACnet, 3=Modbus RTU, 4=Modbus ASCII, 5=BACnet and Modbus RTU, 6=BACnet and Modbus ASCII, 7=Modbus RTU and ASCII, 8=Any Protocol"
  },
  {
   "type": "MV",
   "instance": 126,
   "name": "RS485 Parity",
   "description": "RS-485 parity (default Auto)",
   "units": "",
   "access": "W",
   "states": "1=Auto, 2=No Parity, 3=Odd Parity, 4=Even Parity"
  },
  {
   "type": "MV",
   "instance": 133,
   "name": "Temperature Units",
   "description": "Temperature units (default °F)",
   "units": "",
   "access": "W",
   "states": "1=Degrees Fahrenheit, 2=Degrees Celsius"
  },
  {
   "type": "MV",
   "instance": 170,
   "name": "System State",
   "description": "System alarm state",
   "units": "",
   "access": "R",
   "states": "1=Normal, 2=Warning, 3=Alarm, 4=Extended Alarm"
  },
  {
   "type": "FILE",
   "instance": 25000,
   "name": "User Configuration",
   "description": "Copy of the device configuration for support",
   "units": "",
   "access": "R",
   "states": ""
  }
 ],
 "page": "https://easybacnet.com/bacnet-points-lists/senva/tg-toxic-gas-detector",
 "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"
}
