Aetherfield reads AirGradient air-quality monitors over your local network. It needs no account, no subscription and no internet connection — the app talks straight to the monitor in your house. An AirGradient cloud account is optional, and only needed for monitors somewhere else.
Aetherfield is an independent app. It is not made by, affiliated with, or supported by AirGradient. Please don't send them questions about it.
What you need
- An AirGradient monitor — ONE (indoor) or Open Air (outdoor)
- Firmware 3.0.10 or later, which is what serves the local API
- The monitor and your device on the same Wi-Fi network
- iOS or iPadOS 17 or later
Adding a monitor
Tap +. There are three ways in.
On this network
Monitors running recent firmware announce themselves, and appear in this list by name. Tap one to add it.
The first time, iOS asks for permission to find devices on your local network. You must allow it. If you decline, discovery does not fail loudly — it simply finds nothing, forever, and looks identical to having no monitors. If the list stays empty, check Settings → Privacy & Security → Local Network and make sure Aetherfield is switched on.
By address
Type the monitor's IP address (192.168.1.42) or its hostname
(airgradient_abc123.local). The address is checked before it is
saved, so a typo is caught immediately rather than becoming a monitor that never
shows data.
AirGradient cloud
For monitors that aren't on this network. Add an API token in Settings first — see Cloud monitors below — and your locations appear here.
No monitor yet?
Tap Add sample data to add a made-up monitor with two days of history. Nothing is contacted; it lets you see what the app does before buying hardware. Remove it like any other monitor.
Reading the numbers
Each tile shows a measurement, its unit, and a plain-language rating. Tap a tile to point the history chart at that measurement.
| Measurement | What it means |
|---|---|
| PM2.5, PM10, PM1 | Fine particles, in µg/m³. PM2.5 is the one health guidance is written around. |
| CO₂ | Carbon dioxide, in ppm. Chiefly a measure of how well a room is ventilated. |
| Temperature, Humidity | Comfort, not health. These only ever tint a card. |
| VOC index, NOx index | Sensirion indices, not concentrations — see below. |
The colors
PM2.5 and PM10 use the US EPA's air-quality breakpoints, revised in 2024 — so "Good" for PM2.5 ends at 9.0 µg/m³, not the older 12.0.
| Rating | PM2.5 µg/m³ | CO₂ ppm |
|---|---|---|
| Good | 0 – 9.0 | under 800 |
| Moderate | 9.1 – 35.4 | 800 – 1000 |
| Sensitive | 35.5 – 55.4 | 1000 – 1500 |
| Unhealthy and above | 55.5 + | 1500 + |
VOC and NOx are relative
These are Sensirion index values, where 100 means "typical for this room over the past day." They are not concentrations, and they have no absolute meaning. A steady 100 is normal. Cooking, cleaning products, hairspray or a new piece of furniture can send the VOC index to 300 or beyond for an hour and then settle back. Treat the shape of the line, not the number, as the information.
A missing reading shows "—", never zero
Different models carry different sensors, and a sensor that hasn't warmed up reports nothing at all. Where there is no reading you will see a dash. A zero means the monitor genuinely measured zero, which is common and correct for particle counts in clean air.
History
The monitors keep no history of their own — they report only what they are measuring right now. So where the chart's data comes from depends on the source, and the two behave differently on purpose.
| Local monitor | Cloud monitor | |
|---|---|---|
| Recorded by | this app, while it is open | AirGradient, continuously |
| Resolution | about one sample a minute | five-minute buckets; hourly after two days |
| Gaps | yes — whenever the app was closed | none, unless the monitor was offline |
| Kept for | up to a year on this device | up to a year, downloaded once and kept on this device |
Gaps in a local monitor's chart are real, and the line breaks to show them. The app records only while it is open and in the foreground, so closing it leaves a genuine hole. The chart shows a break rather than drawing a straight line across, which would invent a trend nobody measured.
Local history keeps full minute-by-minute detail for two days, then averages into hourly points, so a monitor left running builds up a year of trend without the storage growing without bound.
Cloud monitors
- In the AirGradient dashboard, open the hamburger menu → Place → Connectivity Settings and enable API access to get a token.
- In Aetherfield, tap the gear, then Paste beside the API token field. The footer confirms the token is set and how long it is.
- Tap +. Your locations now appear under AirGradient cloud.
Cloud readings are aggregated in five-minute buckets upstream, so a cloud monitor always lags one on your own network, however often the app refreshes. If you have both for the same device, the two will read slightly differently — that is the difference between the sources, not an error.
Settings
| Setting | What it does |
|---|---|
| Fahrenheit | Displays temperature in °F. Ratings are always judged in Celsius underneath. |
| Corrected values | Prefers AirGradient's corrected PM2.5, temperature and humidity where the monitor reports them. On by default. |
| Refresh every | How often to poll while the app is open. The monitors sample about every two seconds; anything faster than 5 s is wasted effort. |
| API token | Optional, for cloud monitors only. Stored on this device. |
Under Monitors you can drag to reorder the dashboard, and swipe to remove. Removing a monitor also discards the history recorded for it.
Leaving it running as a display
An iPad on a shelf makes a good permanent air-quality display. Three settings help:
- Display & Brightness → Auto-Lock → Never
- Accessibility → Guided Access, then triple-click the side button inside the app, so it can't be swiped away
- Keep it on a charger
Consider slowing Refresh every as well — a display that never sleeps has no need to poll every ten seconds.
If something isn't working
No monitors found
- Check the local network permission, as above. This is by far the most common cause.
- Confirm the monitor and the device are on the same Wi-Fi network — not a guest network, and not one device on 5 GHz behind client isolation.
- Try adding it by IP address instead; that skips discovery entirely.
A monitor stops updating
The tile keeps the last reading and shows when it arrived, so a stale number is never mistaken for a live one. Check the monitor has power and Wi-Fi. Weak signal — worse than about −70 dBm, shown under Device — makes requests time out intermittently.
The cloud says the token was rejected
Make sure it is a long-term token and that API access is enabled for that place in the AirGradient dashboard.
Privacy
Aetherfield collects nothing. There is no account, no analytics, no tracking, no advertising identifier, and no server belonging to this app.
- Air-quality readings and recorded history stay on your device.
- Local monitors are contacted directly over your own network. That traffic never leaves your home.
- If you add an AirGradient cloud account, the app contacts
api.airgradient.comusing the token you supply, to fetch readings for your own locations. That is a request to AirGradient, under their privacy policy; nothing is sent anywhere else. - Your API token is stored on your device and is sent only to AirGradient.
- Removing a monitor deletes its recorded history. Deleting the app deletes everything.
Aetherfield is an independent app and is not affiliated with AirGradient. AirGradient is a trademark of its respective owner.
Questions? See the support page or email norm@sohl.com.