{"id":26701,"library":"aiohomekit","title":"aiohomekit","description":"An asyncio-based HomeKit client library for Python. Version 3.2.20, actively maintained, with frequent releases following HomeKit protocol updates.","status":"active","version":"3.2.20","language":"python","source_language":"en","source_url":"https://github.com/Jc2k/aiohomekit","tags":["homekit","asyncio","smart-home","iot"],"install":[{"cmd":"pip install aiohomekit","lang":"bash","label":"PyPI"}],"dependencies":[{"reason":"Required for mDNS discovery of HomeKit devices.","package":"zeroconf","optional":false},{"reason":"Required for HomeKit pairing and encryption.","package":"cryptography","optional":false}],"imports":[{"note":null,"wrong":null,"symbol":"Controller","correct":"from aiohomekit import Controller"}],"quickstart":{"code":"import asyncio\nfrom aiohomekit import Controller\n\nasync def main():\n    controller = Controller()\n    await controller.start()\n    # Discover devices\n    discoveries = await controller.discover()\n    for dev in discoveries:\n        print(dev.description)\n    await controller.stop()\n\nasyncio.run(main())","lang":"python","description":"Creates a Controller, starts discovery, prints discovered HomeKit accessories."},"warnings":[{"fix":"Use `from aiohomekit import Controller` and consult the 3.0 migration guide.","message":"In version 3.0, the API was rewritten. The old `HomeKitController` class was removed; use `Controller` instead. The `pair` and `list_accessories` methods changed signature.","severity":"breaking","affected_versions":">=3.0.0"},{"fix":"Access attributes like `dev.description` directly.","message":"The `async def discover()` method returns a list of `DiscoverableDevice` objects instead of raw dicts as in older versions.","severity":"deprecated","affected_versions":">=3.0.0"},{"fix":"Always call `await controller.start()` in your async setup.","message":"The `Controller` must be started with `await controller.start()` before any discovery or pairing operations. Forgetting this results in no devices found.","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 aiohomekit import Controller` instead.","cause":"Class renamed in v3.0.","error":"ImportError: cannot import name 'HomeKitController' from 'aiohomekit'"},{"fix":"Create a Controller instance and call `await controller.discover()`.","cause":"Discover is a method on Controller, not a top-level function.","error":"AttributeError: module 'aiohomekit' has no attribute 'discover'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}