Best air quality sensors for Home Assistant
CO2, PM2.5 and VOC with no cloud account: AirGradient ONE overall, Apollo AIR-1 for ESPHome, IKEA ALPSTUGA for the money. What each one actually measures.
On this page
- Choose by the readings and connection you need
- Buying in the UK, Germany or Canada
- What to measure
- Best overall: AirGradient ONE
- Best ESPHome option: Apollo AIR-1
- Best Zigbee option: Frient Air Quality Sensor
- Budget picks and alternatives
- Best air quality sensor for the money
- Integration considerations
- Acting on the readings: purifiers Home Assistant can control
For CO₂ and PM2.5 in one local Home Assistant monitor, my starting pick is the AirGradient ONE. Choose the Apollo AIR-1 with its optional CO₂ sensor if you prefer ESPHome, or consider IKEA ALPSTUGA if you already have a Thread border router and want those two readings without VOC or NOx sensing.
I run the ALPSTUGA; it feeds the migraine early-warning system. The other two picks come from the spec sheets and what other Home Assistant users report. One good sensor in your main living space tells you more than a dozen cheap ones with misleading readings.
Choose by the readings and connection you need
All three measure PM2.5, temperature and humidity. The differences to check before buying are CO₂ inclusion, VOC/NOx sensing and the connection to Home Assistant.
| Monitor | CO₂ included? | VOC / NOx | Home Assistant connection |
|---|---|---|---|
| AirGradient ONE notes → | Yes | Both, as indices | Wi-Fi; local AirGradient integration |
| Apollo AIR-1 notes → | Only with the optional SCD40 | Both, as indices | Wi-Fi; ESPHome |
| IKEA ALPSTUGA notes → | Yes | Neither | Matter over Thread; Thread border router needed |
AirGradient’s sensor specifications and Home Assistant integration documentation, Apollo’s AIR-1 specifications and CO₂ option, and IKEA’s ALPSTUGA specifications are the sources for this comparison, checked September 11, 2026. AirGradient’s integration needs firmware 3.1.1 or later. A VOC index describes relative changes; it is not a CO₂ measurement.
Buying in the UK, Germany or Canada
| Monitor | Buying options |
|---|---|
| IKEA ALPSTUGA | IKEA UK, IKEA Germany, IKEA Canada |
| Apollo AIR-1 | The Pi Hut for the UK; Apollo direct for Germany and Canada |
| AirGradient ONE | AirGradient direct; confirm delivery to your country in its order form |
ALPSTUGA’s USB-C cable and charger are sold separately in all three IKEA stores. Include those in your budget, along with a Thread border router if you need one. For AIR-1, select the CO₂ version for ventilation monitoring; The Pi Hut’s listing excludes its cable and power supply too. The optional gas sensor is a separate choice from CO₂.
Choose the fully assembled AirGradient ONE if you want a ready-built monitor. It includes CO₂ sensing and a USB cable, but needs a separate power adapter. The cheaper kit requires assembly and does not include the assembled model’s warranty or test report.
Apollo’s regional fulfillment documentation says Canadian orders ship within Canada and EU orders from the Netherlands; it also lists The Pi Hut as a UK reseller. AirGradient’s shipping updates describe international delivery from Thailand. Check shipping and tax totals in the order form before comparing costs, and use IKEA’s local availability check for your address. These purchase paths were checked September 12, 2026.
What to measure
Before diving into products, let’s clarify what you’re measuring. The most useful metrics for a smart home are:
- PM2.5 - Fine particulate matter that penetrates deep into the lungs
- CO₂ - Carbon dioxide, a good proxy for ventilation adequacy (look for true NDIR sensors, not estimated “eCO₂”)
- TVOC - Total volatile organic compounds, off-gassing from furniture, paint, and cleaning products
- Temperature and humidity - Basic but important for comfort and mold prevention
Most people don’t need all of these. A single sensor covering PM2.5 and CO₂ in your bedroom or living room gives you most of the value. The hard part is finding sensors that actually work locally with Home Assistant rather than requiring a cloud account. If cost is your main constraint, skip to the best air quality sensor for the money below.
Best overall: AirGradient ONE
The AirGradient ONE is the clear winner if you want professional-grade air quality data without the professional price tag. It measures PM1/PM2.5/PM10 (Plantower PMS5003), true CO₂ (SenseAir S8 NDIR), TVOC and NOx index (Sensirion SGP41), and temperature/humidity (SHT4x) in one package that connects to Home Assistant over Wi-Fi.
What makes it stand out: no cloud required. The firmware is open source, and you can pull readings locally via its built-in local API (and on to MQTT if you like). The sensor is accurate enough that AirGradient sells it to schools and offices. It’s not the cheapest option, but it’s the most capable single device that works entirely locally. I haven’t run one myself; the pick rests on the published sensor parts and what other owners say about it.
The tradeoffs: it’s larger than most consumer sensors (about the size of a paperback), and Wi-Fi setup takes a bit more work than a Zigbee pairing. Once it’s running there is little to fuss with.
If you need outdoor or garage monitoring, the AirGradient Open Air is the weather-resistant sibling. It’s a different (outdoor) enclosure rather than a cheaper version of the ONE - same open firmware and local integration, focused on PM2.5, CO₂, TVOC/NOx, temperature and humidity for outside use.
Best ESPHome option: Apollo AIR-1
If you’d rather have an ESPHome node than a vendor device, the Apollo AIR-1 is a compact, fully local Wi-Fi sensor running ESPHome, so Home Assistant discovers it automatically. The standard unit (Sensirion SEN55) covers PM1-PM10, VOC index, NOx index, temperature and humidity; an optional SCD40 module adds true CO₂, and there is an optional MiCS-4514 gas sensor too. It also includes a Bluetooth proxy and RGB LEDs. It’s an easy, low-cost way to get broad coverage on a local-first setup - just remember to order the CO₂ variant if you want CO₂.
Best Zigbee option: Frient Air Quality Sensor
If you already run a Zigbee network in Home Assistant, the Frient Air Quality Sensor is a small, battery-powered pick. It measures VOC, temperature, and humidity over Zigbee and pairs with ZHA or Zigbee2MQTT (and works with Hubitat too, via a community driver). Note it does not measure CO₂ or PM2.5 - it’s a VOC trend sensor, not a full air-quality monitor. As with any MOX-style VOC sensor, treat readings as relative trends (good for triggering ventilation) rather than absolute lab numbers. The upside is simple setup and no Wi-Fi congestion; the downside is limited US availability (Frient is easier to find in Europe) and a narrower feature set than AirGradient.
Budget picks and alternatives
The SwitchBot Meter Pro CO2 is worth a look if you want true NDIR CO₂ (400-9999 ppm) on a budget, alongside temperature and humidity. It works locally with Home Assistant through the SwitchBot Bluetooth integration over BLE - no SwitchBot hub required; you just need a Bluetooth adapter or an ESPHome Bluetooth proxy in range. The limitation is BLE range, so for multi-room coverage you’ll want proxies spread around. At well under the price of an AirGradient, it’s a reasonable single-metric entry point.
For basic temperature, humidity, and VOC tracking, the Aqara TVOC Air Quality Monitor measures TVOC, temperature, and humidity via Zigbee (pairs directly to ZHA or Zigbee2MQTT; no Aqara hub required) and has a small e-ink display. If your concern is off-gassing from furniture or cleaning products and you want a tidy desk display, it’s a useful trend sensor. It supplements a PM2.5 or CO₂ sensor rather than replacing one.
The Zooz ZSE44 Temp Humidity Sensor is a solid Z-Wave option for basic temperature and humidity. Zooz makes good Z-Wave hardware, and it integrates cleanly with Home Assistant - just note it’s temp/humidity only, not air quality.
Eve Room: fine if you own one, hard to buy now
Eve Room is a local sensor - VOC (Sensirion SGP30), temperature and humidity, with no PM2.5 and no CO2 - that reaches Home Assistant through the HomeKit Controller integration over Thread, with nothing routing through a cloud. It is HomeKit-only, not Matter.
Buying one is the problem:
- Eve has taken the Eve Room product page off evehome.com. That URL now serves Eve’s home page, and Eve Room appears nowhere in Eve’s own product navigation or on its Matter lineup page (re-checked September 14, 2026).
- At the last US retail check, August 28, 2026, Amazon, Best Buy, Newegg and Verizon each showed it unavailable, no longer available new, or delisted.
- I couldn’t find anywhere that Eve says the product is discontinued, so this is not a formal end-of-life.
If one is already on your shelf it is still a good local sensor and worth keeping. If you are shopping, buy the AirGradient ONE or the IKEA ALPSTUGA instead.
One thing to avoid: cheap “7-in-1” air quality gadgets from marketplaces that promise everything for $30. Many use uncalibrated VOC modules that drift fast and report meaningless numbers. Stick with brands that publish their actual sensor part numbers (Plantower, Sensirion, SenseAir). One hazard these general monitors do not cover is radon, so if that is a concern in your area see the best smart radon monitors with Home Assistant.
Best air quality sensor for the money
Many off-the-shelf sensors lock you into proprietary apps or cloud dashboards. The best “value” sensor balances useful readings - particulates (PM2.5), VOCs, CO₂, temperature, humidity - with easy local integration at a fair price. A quick reality check on terminology first: true CO₂ comes from an NDIR sensor (e.g. SenseAir S8, Sensirion SCD40/SCD41). Many cheaper “CO₂” sensors report eCO₂ (estimated CO₂) derived from a VOC reading - useful for trends, but not an accurate CO₂ number.
For an all-in-one with real PM and true NDIR CO₂, the AirGradient ONE above is the best overall value for a Home Assistant home, and the Apollo AIR-1 is the compact ESPHome alternative (add the SCD40 if you want CO₂). On the cheapest end, the IKEA ALPSTUGA covers true CO2 and PM2.5 over Matter-over-Thread for about $35, trading accuracy for price. If you specifically want true CO₂ cheaply, the SwitchBot Meter Pro CO2 above delivers it over local Bluetooth with no hub. Whatever you pick, favor devices that expose local data and treat any “eCO₂” reading as a trend, not an exact number.
IKEA ALPSTUGA (Matter over Thread)
At around $35, the IKEA ALPSTUGA is the cheapest way to get true CO2 and particulates in one device. It uses a Sensirion SEN63C module, which measures CO2 by photoacoustic NDIR rather than deriving an eCO2 figure from a VOC reading. The module also senses PM1, PM4 and PM10, but IKEA surfaces only PM2.5 of the particulate channels, alongside temperature and humidity. It speaks Matter over Thread, so it joins Home Assistant through any Thread border router with no vendor hub and no account, and because it runs on USB-C power it also acts as a Thread router for nearby battery devices. The catch is accuracy: CO2 is specified at roughly +/- 100 ppm plus 10 percent of the reading, which is fine for deciding when to open a window but looser than the SenseAir S8 in the AirGradient ONE. It replaced the discontinued VINDSTYRKA. It is the one monitor on this page that I run; where it fits in my setup is in the integration notes below.
DIY ESP32-based sensors
For the best price-to-performance, build your own with an ESP32 plus a Plantower PMS5003 (PM), an SGP41 (VOC/NOx), and an SCD41 (true CO₂). Parts can land under about $60, you flash ESPHome, and it publishes locally to Home Assistant. The tradeoff is time and assembly, but well-documented community ESPHome configs exist for exactly these sensor combos.
Integration considerations
How a sensor connects to Home Assistant matters more than the sensor itself. Here’s how the options stack up:
Wi-Fi / ESPHome sensors (AirGradient, Apollo AIR-1): Most flexible. AirGradient exposes a local API; the Apollo runs ESPHome’s native API. Both are fully local. Downside: they need power near an outlet.
Zigbee sensors (Frient, Aqara): Need a Zigbee coordinator (e.g. the Sonoff ZBDongle-E, the Home Assistant Connect ZBT-2, or ConBee III). More setup friction but stable, and Zigbee mains-powered devices act as mesh repeaters (note: battery sensors like the Frient do not repeat).
Bluetooth sensors (SwitchBot Meter Pro CO2): Local via BLE with a Bluetooth adapter or ESPHome proxy; no vendor hub needed for readings.
Thread sensors (IKEA ALPSTUGA, Eve Room): dedicated air-quality sensors over Matter are still uncommon in 2026, and IKEA’s ALPSTUGA is the cheap exception - Matter over Thread, reporting CO2, PM2.5, temperature and humidity, and acting as a Thread router since it runs on USB-C power. I run one: it supplies the indoor air-quality input to my weather-based migraine early-warning system, which scores risk from local pressure, temperature, humidity, UV, and PM2.5. The Eve Room also runs over Thread and works locally through HomeKit Controller, but it is HomeKit-only rather than Matter, and hard to buy new - see the section above.
For most people the right starting point is one AirGradient ONE (or an Apollo AIR-1 with SCD40) in your main living space, then adding cheaper Zigbee temperature/humidity sensors in other rooms.
Acting on the readings: purifiers Home Assistant can control
A sensor tells you the air is bad; pairing it with a purifier automation fixes it. Two options, depending on your tolerance for cloud.
The fully local option is the IKEA STARKVIND, a Zigbee air purifier that pairs straight to ZHA or Zigbee2MQTT with no cloud and no app account, and it carries its own PM2.5 sensor. With inexpensive replacement filters, it is the natural local-first partner for the sensors above: automate its fan speed off your AirGradient’s PM2.5 reading and it keeps working with the internet down.
If you accept cloud control, the Levoit Core 400S is a capable smart HEPA purifier with its own air-quality sensing, but Home Assistant reaches it through the cloud-based VeSync integration, so control depends on their servers. A fine purifier, but it is not local-first.