CO2 Gadget Web Interface Guide: Dark Mode, Charts and Screenshots

Last modified 2 months

The CO2 Gadget web interface allows you to configure, monitor and update your meter from any browser, without having to install anything on your computer. Access it by typing http://CO2-Gadget.local in the address bar, or directly to the device’s IP address if you prefer.

The design follows the Apple style: an automatic dark background (which adapts to your system’s theme), clean typography and smooth animations. The top menu contains shortcuts to Home and Charts.

CO₂ Gadget – Main dashboard displaying CO₂, temperature and humidity readings

Navigation

The top navigation bar has two sections:

  • 🏠 Home — home page showing real-time indicators
  • 📈 Charts — direct access to historical charts

The icons on the right are:

  • — device information and versions
  • — access to preferences (equivalent to /preferences.html)
  • — full screen

Available pages

PageURLWhat it offers
Home/Real-time dashboard showing the three indicators
Charts/charts.htmlHistorical data with date filtering and export options
Calibration/calibration.htmlLive reading + forced FRC calibration
Low Consumption/low_power.htmlConfiguring the HIGH_PERFORMANCE and LOW_POWER modes
Preferences/preferences.htmlAll device settings grouped by section
Status/status.htmlSummary of active features, Wi-Fi RSSI and version
OTA/updateFirmware update via the browser

1 — Home (/)

The dashboard displays the three indicators in real time, updating automatically:

  • CO₂ — large on the left. The ring changes colour depending on the level: green (excellent, <800 ppm), orange (moderate) or red (high). Below it, the status is shown in text form («Excellent», «Good», etc.)
  • Temperature — top right panel. Visible range from 10 °C to 50 °C
  • Humidity — bottom right-hand panel

By default, the readings are updated every 5 seconds. If the sensor is warming up, this is indicated on the dashboard and the readings may be blank or fluctuate rapidly until they stabilise (typically 10–15 minutes for an SCD4x).

2 — Charts (/charts.html)

CO2 Gadget – Charts with range selector and export function

Chart.js displays historical CO₂ data using a blue line and circular markers. The Y-axis is in ppm; the X-axis is time.

Filter by date range

Uncheck the box «Date range» to view the full history. For a specific period:

  • Click «mm/dd/yyyy, –:–« in the «From» field and select the start date and time
  • Enter the same value in the «To» field»
  • Click «Apply»

Export data

The export buttons generate a file containing all the data visible in the graph:

  • CSV — spreadsheet (date, time, ppm). Ideal for Excel or Google Sheets
  • JSON — structured data, useful for scripts or Home Assistant
  • PNG — a screenshot of the current graph, ready to share
  • SVG — vector, editable in Illustrator or Inkscape

3 — Calibration (/calibration.html)

CO2 Gadget – FRC calibration via your web browser

The calibration page has two functions: to read the sensor’s current value in real time, and to perform a forced calibration (FRC).

Apply an FRC calibration

  • Open the window and place the meter in fresh air (window open, outdoors, at least 400 ppm of CO₂)
  • Wait 5–10 minutes for the reading to stabilise
  • Enter the reference value in the ppm field (typically 400 ppm (if you’re outdoors)
  • Click «Calibrate»
  • The firmware applies the correction and the sensor then starts to give correct readings

It only works with sensors that support FRC: Sensirion SCD30, SCD40 and SCD41. The MH-Z19 and Senseair S8 use 400 ppm calibration (via the menu) or automatic ASC.

4 — Low Power (/low_power.html)

CO2 Gadget – Configuring power-saving modes

This allows you to switch between the two binary modes available from v0.16.x:

  • HIGH_PERFORMANCE (0) — continuous operation, all radios active, deepest sleep disabled
  • LOW_POWER (1) — deep sleep with periodic wake-ups. The interval is set in seconds

In LOW_POWER mode, the meter wakes up, takes a reading, sends data via MQTT if configured to do so, and goes back to sleep. This is what enables a battery life of up to 3 months with an 18650 battery.

5 — Preferences (/preferences.html)

CO2 Gadget – Device settings

It is the most comprehensive page. It contains all the device settings, organised into sections:

  • Wi-Fi — SSID, password, static IP address, hostname
  • MQTT — broker, topics, username/password, Discovery prefix
  • BLE — activate, BTHome, MyAmbiance
  • CO₂ sensor — model, calibration, pressure compensation
  • Outings — relay, NeoPixel and buzzer settings
  • Screen — brightness, dark mode, rotation
  • Low Power — sleep mode and settings

All changes must be saved (button «Save») and then «Restart» so that they are implemented.

CO2 Gadget web interface in dark mode
Dark mode status panel — real-time data on CO₂, temperature, humidity and communication status

6 — Status (/status.html)

CO2 Gadget – Device status

A quick summary of what’s up and running:

  • Feature badges — indicators showing which wireless connections and functions are active (Wi-Fi, BLE, MQTT, BTHome, etc.)
  • RSSI — Wi-Fi signal strength in dBm. Typical values: -30 (excellent), -70 (good), -90 (poor)
  • Firmware version — check which version you have installed

7 — OTA (/update)

CO2 Gadget – OTA update

It allows you to update the firmware without cables or tools. All you need is the file .bin compiled for your board:

  • Select the file .bin from your hard drive
  • Click «Update»
  • The device receives the file, checks it and restarts automatically
  • After the restart, open /status.html again and check that the version has changed

It works with Chromium-based browsers (Chrome, Edge, Brave). If the file is too large or has been named incorrectly, the interface will display an error message before it starts.

Access from outside the home

By default, the web interface is only accessible from the local area network (LAN). If you wish to access it from the internet:

  • VPN — the safest option. Connect your mobile to your home network and access the local IP address
  • Cloudflare Tunnel — create a free tunnel on cloudflare.com to expose the device without opening any ports on the router
  • Port forwarding — ❌ Not recommended at all. Opening port 80 on the router to the device’s IP address exposes it directly to the internet without any additional layers of protection. If the device does not have a password set, anyone can access all its settings. Always use a VPN or Cloudflare Tunnel.

Password

By default, the web interface has no password. To configure it:

  • Go to Preferences → Wi-Fi and enable the password
  • Or from the device’s on-screen menu

⚠️ Password fields on the website are disabled for security reasons (passwords are transmitted in plain text over the network). If you need to edit it via the website, add ?relaxedSecurity=true to the URL:

http://CO2-Gadget.local/preferences.html?relaxedSecurity=true

TFT screenshot

The endpoint GET /screenshot Returns a PNG image showing what is currently displayed on the device’s physical screen. Very useful for debugging or documentation:

curl -o screen.png http://CO2-Gadget.local/screenshot

Not all board models have a TFT display. OLED and E-Ink devices, as well as some TFT displays, do not support this functionality. In such cases, the endpoint returns a message stating that it is not supported. Even on boards with TFT displays, the colours may not be accurate. The screenshot feature is implemented on a best-effort basis: it remains available even if it is not perfect, as it can be useful for debugging.


Did you find this helpful? Share this article. Also have a look at the Menu Guide. Any questions? Ask on the Telegram group.

Leave a comment