Indoor CO2 chart card
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
| Key | Role | Type | Description |
|---|---|---|---|
co2 | Chart series | Timeseries | CO2 concentration in ppm; change the key name to match your device’s telemetry key |
| Latest | Latest value | Timeseries | The headline figure above the chart. Its own color ranges are where the band colors are edited |
| Delta percent | Percentage change | Timeseries | Change against the previous period, as a percentage |
| Delta absolute | Absolute change | Timeseries | Change 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) | Level | Color |
|---|---|---|
| 0–600 | Good | Green |
| 600–800 | Moderate | Orange |
| 800+ | High | Red |
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.