A few weeks ago, the Canadian wildfire haze reached Central Virginia, where I live, and we noticed it as a haziness in the air. Well, I have an AirGradient Open Air (model O-1PST) outdoor sensor and two AirGradient ONE units (model I-9PSL) indoor sensors. I'm a data-driven person, and I was instantly curious how this was showing up to the sensors in Home Assistant.
Here's what it looked like in the sensor logs:

Hourly mean PM2.5, 17-18 July 2026, central Virginia. The shaded band spans the two indoor sensors; the dashed line is the EPA 24-hour "unhealthy for sensitive groups" breakpoint (35.4 µg/m³).
The signal was unmistakable. Outside, PM2.5 peaked at 164 µg/m³, against a normal range of 7 to 15 for that sensor. Inside, both sensors traced the same curve at about a quarter the height, topping out near 38.
What I didn't expect was the timing. Outside peaked at 9 a.m., but inside didn't level off until noon. And the house was slower to clear than the air outside was. At the worst of it, inside was running about a fifth of outside. The next morning, as the outdoor numbers dropped away, inside was still sitting at a third of them.
Here are some of my automation ideas based on this event:
- I have a morning automation that fires at 7 a.m. It basically just gives the current weather conditions, the daily forecast, if any litter robots need to be emptied, etc. I can add an air quality alert to this announcement if it's outside of the 'good' range.
- I can also use the same sensor data to trigger ad hoc voice announcements and alerts.
- I built a Corsi-Rosenthal Box a couple years ago, but Rachelle really didn't like it because it's ugly. I think I will resurrect one anyway. I still have the fan, and I've already purchased new MERV filters for it. Wildfires are the exact use case for these box fan filters, so I intend to use one! When the indoor sensors cross my clean-air threshold, I can build automations to run the filter.
- Of course, I'll need automations and sensors to track how long the fan filter has run so we can have some idea on when to change the filters out.
Did you detect the wildfires where you live? Do you have any smart home automations about air quality?
After I got pm2.5 into homeassistant, I started buying MERV13 filters for central air. A jury-rigged system for turning that on/off graduated to a proper wireless thermostat, and I now have an automation that turns the fan on at pm2.5>10, then back off <3. A good 5" filter will last 9 months before the time-to-clear gets to be too long. 3 ug/m3 can be a difficult lower bound, and if it seems like we get into a bad outside aq period, I'll bump it up to 6 with a trigger at 15. MERV11 could not hold even 10 ug/m3.
My indoor aq sensor spikes from fireworks on 4th of July and neighbors cooking on the other side of the shared wall. Most interesting to me is that aq - both inside and out - is worst overnight, not at rush hour.
ed: I use https://map.purpleair.com/ for outdoor air quality. Their global data can be polled with a (free) API key, and as long as you don't poll too often, the free data limit will last years. Someone wrote an HA integration for purpleair, but it polls to often and rapidly exhausts the free data.