{"id":24842,"library":"wyzeapy","title":"wyzeapy","description":"An asynchronous Python library for interacting with Wyze home automation devices (cameras, sensors, locks, etc.) via the Wyze API. Current version 0.5.33, requires Python >=3.11. Active development with frequent releases.","status":"active","version":"0.5.33","language":"python","source_language":"en","source_url":"https://github.com/andrewjfreyer/wyzeapy","tags":["wyze","home-automation","async","api-client"],"install":[{"cmd":"pip install wyzeapy","lang":"bash","label":"Install from PyPI"}],"dependencies":[{"reason":"Async HTTP client used for API calls","package":"aiohttp","optional":false},{"reason":"Core async library (stdlib)","package":"asyncio","optional":false},{"reason":"Extended type hints","package":"typing_extensions","optional":false}],"imports":[{"note":"Old import path changed in v0.4.0","wrong":"from wyzeapy.client import Wyzeapy","symbol":"Wyzeapy","correct":"from wyzeapy import Wyzeapy"},{"note":"Client class moved to top-level in v0.5.0","wrong":"from wyzeapy.client import Client","symbol":"Client","correct":"from wyzeapy import Client"}],"quickstart":{"code":"import asyncio\nfrom wyzeapy import Wyzeapy\n\nasync def main():\n    client = await Wyzeapy.create(email='your_email', password='your_password')\n    cameras = await client.get_cameras()\n    for cam in cameras:\n        print(cam.nickname)\n\nasyncio.run(main())","lang":"python","description":"Initialize Wyzeapy client and list available cameras."},"warnings":[{"fix":"Pass credentials directly: await Wyzeapy.create(email=..., password=...)","message":"Wyzeapy.create() now requires email and password as arguments (previously used environment variables WYZE_EMAIL and WYZE_PASSWORD).","severity":"breaking","affected_versions":">=0.5.0"},{"fix":"Ensure you use 'await' when calling any method that returns a coroutine.","message":"All API calls are asynchronous and must be awaited. Failing to await will return a coroutine object, not the actual result.","severity":"gotcha","affected_versions":"all"},{"fix":"Use the type-specific getter methods instead of get_devices().","message":"The 'get_devices()' method is deprecated in favor of type-specific methods like get_cameras(), get_locks(), get_sensors().","severity":"deprecated","affected_versions":">=0.4.0"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Verify credentials and if 2FA is enabled, use keypair-based authentication or handle the 2FA flow programmatically (see docs).","cause":"Email or password is incorrect, or Wyze API requires two-factor authentication (2FA).","error":"wyzeapy.exceptions.WyzeApiError: Invalid credentials"},{"fix":"Use 'await' directly in async environments. In Jupyter, import nest_asyncio and apply nest_asyncio.apply().","cause":"Running asyncio.run() inside an environment that already has an event loop (e.g., Jupyter notebook).","error":"RuntimeError: asyncio.run() cannot be called from a running event loop"},{"fix":"Run 'pip install wyzeapy' in the correct Python environment (check with 'which python' or 'python --version').","cause":"The library is not installed or installed in a different Python environment.","error":"ModuleNotFoundError: No module named 'wyzeapy'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}