Backyard Air

watching for cigarette smoke in the backyard
checking the air…

Right now

connecting…
What the backyard air is like at this moment.
waiting
µg/m³
Technical readings
raw PM2.5
background
alert trigger
PM10
PM1
Past hour · dashed lines mark the smoke alert levels (25 and 60)

Step outside?

Timing from the neighbour's routine: how long the air has been clear, and how long it usually stays that way.
working it out…

Recent smoke

Each bump is a smoke event — taller means more smoke.
smoke level peak range smoke episode alert sent
Drag to pan · scroll or pinch to zoom

Smoke alerts in this period

  • none
Data table
Download data (Excel) the last 60 days of 10-second readings, plus every alert ever sent — for making your own charts. The Pi builds it while it downloads, so give it a minute or two.

How to read these numbers

The verdict bar (top of page)
The whole dashboard in one line. While a smoke alert is active (no all-clear yet) it says stay inside no matter the number — actual smoke isn't haze. Otherwise it follows the particle level: under 12 = safe to be outside · 12–25 = OK, a little hazy · 25–60 = think twice · 60+ = stay in. It turns grey whenever the sensor can't be reached — grey means "don't know", never "everything's fine".
The big number (PM2.5)
Fine smoke particles per cubic metre of air, averaged over 30 seconds. This is the smoke number — all alerts come from it. 0–1 backyard normal · 2–11 something's in the air · 12–24 hazy · 25–59 smoke · 60+ heavy smoke.
raw PM2.5
The same measurement this exact second, no averaging — jumpy by nature. The fast "smoke starting" alert watches it.
PM10 and PM1
Bigger and smaller particles. High PM10 alone = dust or pollen, not smoke. PM1 rising along with PM2.5 = burning something.
gas (kΩ)
The smell sensor's raw reading. Higher = cleaner air, lower = smellier. The exact number means nothing on its own — only drops below its own usual level matter.
smell
Watches for sudden drops in the gas reading versus the last 15 minutes — real smells arrive in minutes, while weather (heat, humidity) moves it slowly all day. "Steady" = nothing new in the air. "↓12%" = the air just got smellier; the verdict line says whether smoke particles rose with it (burning) or not (fumes/chemicals, like a solvent or marker).
pressure (hPa)
Weather bonus: about 1013 is average. Rising = fair weather coming, falling fast = storm on the way.
background
What the air has averaged over the last half hour — the "floor". On clear days it's 0. During regional wildfire smoke or fog it floats up, and smoke alerts automatically look for spikes above the floor (a cigarette) instead of comparing to zero, so a hazy day doesn't cause false alarms. The size of spike needed (the "alert trigger") widens on its own when the haze is thick or gusty and tightens back to normal on clean days. A slowly climbing haze front also lifts the trigger in real time, so only fast jumps — actual smoke — set off alerts. The region check line compares against the nearest official government station, 8 km away.
orange line
Smoke level over time (left axis). Dashed lines are the alert levels (25 and 60), triangles are alerts that were sent, shaded bands are smoke episodes, "peak N" marks a spike taller than the chart.
blue line
Sudden smell changes — the same signal as the "smell" reading above, drawn over time. It hugs the bottom when nothing new is in the air (the slow weather hills that used to shape this line are filtered out) and spikes when the air abruptly gets smellier. A blue spike with an orange spike = smoke both sensors agree on; a blue spike alone = fumes without particles. Lingering smell after smoke fades from this line within about 15 minutes even if your nose still notices it — it tracks new smells, not old ones. It needs 15 minutes of history to judge against, so it goes quiet briefly after a restart, and disappears on charts zoomed out past a day (the data gets too coarse to judge sudden changes). It's deliberately drawn small — it tops out at the "↓25%+" mark partway up the chart so it never crowds out the orange smoke line; the exact drop is in the tooltip.
amber shading
Regional haze — wildfire smoke or fog sitting over the whole area, detected when the air's floor stays elevated for a long stretch. It's not the neighbours: cigarette smoke is a short spike, regional smoke is a raised floor that lasts hours to days. During amber periods the counters split "local smoke" from "regional haze", the pattern map skips those hours, and heavy-smoke phone pushes collapse into a single "wildfire-level smoke" notification until it clears.
teal line
Outside temperature from the sensor, read against the °C scale on the right edge (its own scale — it has nothing to do with the smoke numbers on the left). It's the same temperature shown up top, drawn over time so you can watch the day warm up and cool down. Weather context only — it never triggers an alert.
🔔 alarm button
Turns your phone into an audible smoke alarm while this page is open — tap it on when you sit outside and the phone beeps loudly the moment smoke is detected (the same moment the banner turns orange), until you tap the screen to silence it. During regional wildfire haze it only sirens for fresh local smoke on top of the haze, not the background itself. You can keep listening to music or stay on a call while it's armed — it only takes over the phone's sound at the moment it actually fires, and hands it back once silenced. While it's on, the phone keeps its screen awake so the alarm can always fire, and a "test" link appears so you can check the volume. It switches off each time you leave the page — phones only allow sound after a tap, so it can't re-arm itself. Handy when ntfy notifications are muted.
Next 12 hours (Patterns)
A forecast of the neighbour's smoking, hour by hour, worked out from their routine over every day recorded so far (wildfire-haze days left out). "About 1 in 8" means that in past days, that hour had smoke about one time in eight. It's a habit clock, not a sensor reading — the verdict on the Now screen is what's true right now. Weekends and weekdays turned out to look the same, so it doesn't split them.
Step outside? (Now)
The neighbour smokes in short bursts, so the best moment to go out is right after one ends. This card times it: how long the air has been clear since the last all-clear, and, from every recorded gap between their cigarettes at this time of day, the odds the next one holds off another 15 or 30 minutes. The odds move as the clear minutes tick up, because a gap that has already lasted 20 minutes tends to last longer. The 12-hour outlook is folded in too: a green verdict drops to amber when this is one of their usual smoking hours. It's odds from history, not a promise — the verdict bar is what's true right now.
Evidence report (Patterns)
Builds a printable report for one month (or everything so far): days monitored, episodes, minutes, the time-of-day pattern, a half-hour calendar, and an episode log, plus a plain description of the method and its limits. Regional wildfire smoke is shown hatched and left out of the local totals, so the local pattern stands on its own. It never names anyone and has no address; add those in your letter.
Icon badge (Now)
With the badge on, the Backyard Air icon on your home screen shows the PM2.5 number whenever the verdict is "smoke in the air" or worse (25+, or an alert still waiting for its all-clear), and shows nothing when the air is clear. The Pi sends it to the phone as a quiet notification, because iPhone only allows a badge to change that way; if you'd rather see just the badge, turn off Banners for Backyard Air in Settings → Notifications and keep Badges on. It updates within a minute of a change, and every ten minutes or so while smoke continues. Only works from the home-screen app, not from Safari.

Next 12 hours

How likely the neighbour is to smoke, hour by hour, going by their routine.
Learning the neighbour's routine…

When smoke usually happens

Each square is a time of day. Darker = smoke happens more often then. The outlined square is right now.

Evidence report

A printable month of what the sensor saw, written for a strata council or bylaw office. Wildfire days are shown but kept out of the local totals.
Open report
Opens as a web page. On iPhone: Share → Print, then pinch out on the preview to turn it into a PDF you can attach. On a Mac: File → Print → Save as PDF.

Sensor box (Raspberry Pi)

All green means everything is working.