Async Python client for version 1 of the HAVEN IAQ local HTTP API.
The client supports capability-based data handling and local communication with:
| Product | Product type | Capabilities |
|---|---|---|
| Room Air Monitor | ram |
Air quality |
| Central Air Monitor | cam |
Air quality and airflow |
| HAVEN Controller | cac |
Relay state |
python -m pip install haveniaqfrom aiohttp import ClientSession
from haveniaq import Capability, HavenClient
async with ClientSession() as session:
client = HavenClient("haven-device.local", session=session)
info = await client.get_info()
status = await client.get_status()
if info.supports(Capability.AIR_QUALITY):
sensors = await client.get_sensors()The default base URL is http://<host>:80/api/v1. The client requires devices
to advertise api_version, product_type, and capabilities from /info.
HAVEN Controller support is read-only in version 0.1.0.
Version 1 is intended for trusted local networks. Communication uses unencrypted HTTP and devices do not require API authentication. Do not expose device HTTP ports outside the local network.
Please report security issues privately as described in
SECURITY.md.
python -m pip install -e .
pytest
ruff check .Licensed under the Apache License 2.0.