Skip to content
Stand with Ukraine flag

Office CO₂ Air Quality Alarm

  • Alarm Rule
  • 87 installs
  • v1.0.0
  • Jun 15, 2026
  • MIT license
  • v4.3+

Monitor office CO₂ levels and alarm when air quality goes out of range — too low (too much fresh air) or too high (too many people) — offices, classrooms, conference rooms.

Type
  • Alarm
Category
  • Threshold
  • Environmental
Use Cases
  • Air Quality Monitoring
  • Smart Building
  • Smart Office

Who it’s for

Office building managers, HVAC engineers, and greenhouse or grow-room operators asking “is too much fresh air being pulled in and wasting energy?”, “is a conference room or classroom running too high because it’s overcrowded?”, “is the grow-room range too wide for the yield we expect?” — when CO₂ should stay inside a tight comfort or yield range and either edge deserves an alarm.

What it does

Reads the device’s co2 telemetry and raises a Major alarm when CO₂ goes too high or too low and stays out of range long enough. The alarm auto-clears once CO₂ returns to a tighter safe range and stays steady there.

Office CO₂ Air Quality Alarm diagram

How to set up

The rule has default values for every threshold, so it works as soon as it is installed. Install on a device or asset profile so the alarm covers every entity of that type at once and automatically picks up any new entity added later. Single-device or single-asset installs are also supported.

How to customize

  • To monitor a different telemetry — change the Time series key on the metric argument (e.g. co2humidity for indoor humidity ranges, co2pm25 for particulate ranges).

  • To use different threshold attribute names — change the Attribute key on the threshold arguments to match what your devices or assets already use (e.g. co2WarningHighairQualityMax).

  • To change the trigger and clear thresholds used when no per-entity attribute is set — change the Default value on the warningHigh, warningLow, clearHigh, and clearLow arguments.

  • To change how long a reading must stay out of range before firing or clearing — change the Default value on the holdMinutes or clearHoldMinutes arguments.

  • To tune thresholds and hold durations at runtime without editing the rule — set the value on the entity as a regular server-side attribute. It can be edited directly from a dashboard using Update Multiple Attributes input widget:

    • Per device or asset — set the attribute (e.g. co2WarningHigh, co2HoldMinutes) on the device or asset itself. The per-entity value overrides the Default value.
    • Per customer (in deployments that use customers) — change Entity type on the relevant argument to Current owner, then set the attribute on the customer. Every device that customer owns picks up that value.
    • Tenant-wide — change Entity type to Current tenant, then set the attribute on the tenant. The value applies across every device.
  • To make the alarm manual-clear-only — remove the Clear condition. The alarm then stays active until an operator clears it.

  • To restrict firing to occupied hours — in the trigger condition’s Schedule, choose Active at a specific time range (or Custom schedule for different intervals per day). For per-entity schedules — e.g. different rooms with different hours — switch to Dynamic mode and source the schedule JSON from an attribute on the entity.

  • To control where the alarm shows up — toggle the propagation flags under Advanced settings.

Share Your Alarm Rule with the Community

Built a reliable alarm rule? Export it as a JSON from ThingsBoard and publish it to the IoT Hub. Share it with thousands of ThingsBoard developers and help the community react to incidents faster.