{"id":23205,"library":"aioairctrl","title":"aioairctrl","description":"Library for controlling Philips air purifiers using encrypted CoAP. Currently at version 0.3.1, released on 2025-11-13. Active development, with frequent releases.","status":"active","version":"0.3.1","language":"python","source_language":"en","source_url":"https://github.com/kongo09/aioairctrl","tags":["philips","air-purifier","coap","async"],"install":[{"cmd":"pip install aioairctrl","lang":"bash","label":"Install from PyPI"}],"dependencies":[{"reason":"CoAP communication","package":"aiocoap","optional":false}],"imports":[{"note":"Import path changed in v0.3.0; direct client import is deprecated.","wrong":"from aioairctrl.client import CoAPClient","symbol":"CoAPClient","correct":"from aioairctrl import CoAPClient"}],"quickstart":{"code":"import asyncio\nfrom aioairctrl import CoAPClient\n\nasync def main():\n    host = \"192.168.1.100\"\n    client = await CoAPClient.create(host)\n    status = await client.get_status()\n    print(status)\n    await client.shutdown()\n\nasyncio.run(main())","lang":"python","description":"Connects to a Philips air purifier at given IP and fetches device status."},"warnings":[{"fix":"Change imports to `from aioairctrl import CoAPClient`.","message":"In v0.3.0, the import path for CoAPClient changed from `aioairctrl.client` to `aioairctrl`. Old imports will raise ImportError.","severity":"breaking","affected_versions":">=0.3.0"},{"fix":"Ensure Python 3.12+ is used.","message":"The library requires Python >=3.12. Attempting to install on older Python will fail.","severity":"gotcha","affected_versions":"all"},{"fix":"Verify network connectivity and that the device's CoAP port (typically 5684) is reachable.","message":"The client uses encrypted CoAP and may fail if the device is not on the same network or if ports are blocked.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Use `from aioairctrl import CoAPClient`.","cause":"Incorrect import path; CoAPClient is exported from aioairctrl, not aioairctrl.client.","error":"ImportError: cannot import name 'CoAPClient' from 'aioairctrl'"},{"fix":"Call `await main()` instead of asyncio.run() in async environments.","cause":"Calling asyncio.run() inside an async context (e.g., Jupyter notebook or another async function).","error":"RuntimeError: asyncio.run() cannot be called from a running event loop"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}