Skip to content

Cookie preferences

We use cookies for our own analytics, to see how our campaigns perform and, if you allow it, to load content from other services such as the Google site search. We never sell your data. Necessary cookies keep the site working and cannot be switched off. See our Cookie Policy for details and our Privacy Policy for how we handle personal data.

Security, load balancing and remembering your cookie choice.

Show us which pages people read and how they find the site, so we can improve it (Google Analytics).

Show us which of our ad campaigns bring visitors to the site and remember the campaign or partner link you arrived from (Google Ads, partner program). We do not use these cookies to build advertising profiles.

Load the site search from Google when you use it. Google sets its own cookies and shows ads in the search results.

© 2026 The ThingsBoard Authors
Try for free

ThingsBoard Cloud

Choose your data region

Your data stays in the region you choose, for residency and compliance. No credit card required.

Rather run it yourself? Install on your own servers

Indoor CO2 chart card

  • Widget
  • 171 installs
  • v1.0.0
  • Jun 15, 2026
  • MIT license
  • v4.2+

Displays a indoor CO2 level data by combining the latest and aggregated values with an optional simplified chart.

Widget Type
  • Timeseries
Category
  • Charts & Graphs
Use Cases
  • Air Quality Monitoring
  • Smart Building
  • Smart Home

Who it’s for

Facility managers, HVAC engineers, and building managers ask “what is the CO2 level in this space right now, and has it been elevated over the past few hours?” They need both the current reading and the trend to determine whether ventilation is recovering a space or whether the problem is persistent.

What it does

A sensor reporting co2 = 720 ppm shows the current value color-coded by severity alongside a time-series chart of recent readings: green for Good (0–600 ppm), orange for Moderate (600–800 ppm), and red for High (above 800 ppm). The chart lets facility staff see whether elevated CO2 is a brief post-meeting spike or a chronic under-ventilation issue.

  • Live CO2 reading in ppm with color coding across three severity bands
  • Historical trend chart shows how CO2 concentration has evolved over the selected time window
  • Shows one sensor’s data per widget; add multiple widgets to monitor different rooms

How to set up

Data keys

KeyRoleTypeDescription
co2Chart seriesTimeseriesCO2 concentration in ppm; change the key name to match your device’s telemetry key
LatestLatest valueTimeseriesThe headline figure above the chart. Its own color ranges are where the band colors are edited
Delta percentPercentage changeTimeseriesChange against the previous period, as a percentage
Delta absoluteAbsolute changeTimeseriesChange against the previous period, in the key’s own unit

The widget ships with a simulated function datasource key labeled CO2 level, so it draws random values until you point the datasource at a device and rename the key.

To point it at your own device: open the dashboard in edit mode, open the widget’s Datasources, pick the entity or entity alias, and replace the function key with the key your device reports.

Value ranges

Range (ppm)LevelColor
0–600GoodGreen
600–800ModerateOrange
800+HighRed

How to customize

  • To change the time window — adjust the dashboard time filter to show the last hour, day, or week of CO2 readings.
  • To change the severity thresholds — edit the color ranges on the Latest data key.
  • To change the chart colors — edit the color of each range on the Latest data key.

Tips

  • A chart spanning the working day shows the classic CO2 pattern: low at 8 a.m., rising during morning meetings, partial recovery at lunch, another peak in the afternoon, and a fall to ambient overnight; deviations from this pattern indicate either unusual occupancy or an HVAC fault.
  • A room that never returns to the Good band between meetings — even with the door open — indicates structural under-ventilation that requires a permanent HVAC capacity increase, not just a one-off air-out.
  • For HVAC commissioning reports, export the time-series from a representative occupied week to document baseline performance before and after any ventilation changes.

Share Your Widget with the Community

Built a custom widget? Export it as a JSON from ThingsBoard and publish it to the IoT Hub through a simple 4-step wizard (Upload, Listing, Readme, Review & Submit). Share it with thousands of ThingsBoard developers worldwide and get featured in the catalog.