aioairq
Asynchronous library to retrieve data from air-Q devices.
What it is and what it does
aioairq is an async Python client for air-Q air quality sensors—devices that measure indoor air parameters and store historical data on an SD card. It wraps the air-Q HTTP API, letting you query real-time sensor readings (CO₂, particulates, temperature, etc.) and browse or download timestamped historical measurements from the device's local storage. The library requires you to provide an aiohttp session and handles device discovery via mDNS (converting a 5-character device ID to a hostname) or direct IP/hostname connection.
The main use case is home automation, environmental monitoring dashboards, or data logging systems that need to pull air quality data from one or more air-Q devices on a local network. It's built on async/await, so it integrates naturally with other async Python code and avoids blocking I/O. Historical data can be downloaded compressed (about 1/5 the size) or uncompressed, and the library supports verbose DEBUG-level logging to track sensor reading changes.
Use it for:
- Poll real-time air quality metrics from an air-Q device and feed them into a Home Assistant or other home automation system.
- Download and archive historical air quality data from the device's SD card for analysis or compliance reporting.
- Build a web dashboard that displays current and historical air quality trends by querying multiple air-Q devices asynchronously.
- Trigger alerts or HVAC adjustments based on CO₂ or particulate thresholds by monitoring sensor readings in a background task.
- Integrate air-Q data into a scientific study or environmental monitoring project that requires local, non-cloud sensor access.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Asynchronous Python library for retrieving real-time and historical sensor data from local air-Q air quality monitoring devices over the network.
Yes. The package is actively maintained, has low install friction, carries a permissive license, and solves a specific problem well: async access to air-Q devices without external dependencies beyond aiohttp and pycryptodome. Install it if you own an air-Q device and need to integrate its data into a Python application. Not relevant if you don't have an air-Q device or need cloud-based air quality APIs instead.
Install
aioairq on PyPI
pip
pip install aioairquv
uv add aioairqpoetry
poetry add aioairqInstalling aioairq
Before you install
Low friction: pure Python wheel with only aiohttp and pycryptodome as runtime dependencies. Actively maintained with recent commits; last release 143 days ago. Supports Python 3.9 through 3.13.
License in practice
Apache-2.0 (permissive): you can use, modify, and distribute this library freely in commercial or private projects, provided you include a copy of the license and state any significant changes.
Quickstart
import asyncio
import aiohttp
from aioairq import AirQ
async def main():
async with aiohttp.ClientSession() as session:
airq = await AirQ.connect("123ab", "airqsetup", session)
data = await airq.data
print(data)
asyncio.run(main())
Requires an air-Q device on the local network; mDNS resolution (Avahi/Bonjour) needed for device ID lookup, or use IP address directly if mDNS is blocked.
Verify before relying
- Whether the library handles device authentication failures or network timeouts gracefully.
- Performance characteristics when downloading large historical datasets or querying many sensors simultaneously.
- Whether debug logging overhead is negligible at non-DEBUG levels as claimed.
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — aiohttp, pycryptodome |
| Maintenance | actively maintained — 143 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 73,821/month — #14,926 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: aioairq-0.6.0-py3-none-any.whl
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
pyairvisualA thin async Python wrapper for the AirVisual…
permissive · top 15,000 on PyPI
giosFetches real-time air quality measurements from…
permissive · top 15,000 on PyPI
nettigo-air-monitorFetches and parses air quality data from…
permissive · top 15,000 on PyPI
vallox-websocket-apiAsync WebSocket client for controlling and…
copyleft · top 15,000 on PyPI
airthings-cloudA Python library for communicating with…
permissive · top 15,000 on PyPI
lacrosse-viewRetrieves sensor data from La Crosse…
permissive · top 15,000 on PyPI
aiopyarrAsync Python client library for Lidarr, Radarr,…
permissive · top 15,000 on PyPI
pyairnowA thin async Python client for the EPA AirNow…
permissive · top 15,000 on PyPI
aionotionaionotion is an asyncio-friendly Python library…
permissive · top 15,000 on PyPI
aioecowittProvides an async Python wrapper for the…
permissive · top 15,000 on PyPI