Metadata-Version: 2.1
Name: imouapi
Version: 1.0.2
Summary: Library for controlling Imou devices by interacting with the Imou Life API.
Home-page: https://github.com/user2684/imouapi
License: MIT
Author: user2684
Author-email: user2684@users.noreply.github.com
Requires-Python: >=3.7,<4.0
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Provides-Extra: dev
Provides-Extra: doc
Provides-Extra: test
Requires-Dist: aiohttp (>=3.8.1,<4.0.0)
Requires-Dist: aioresponses (>=0.7.3,<0.8.0); extra == "test"
Requires-Dist: black (>=22.3.0,<23.0.0); extra == "test"
Requires-Dist: bump2version (>=1.0.1,<2.0.0); extra == "dev"
Requires-Dist: flake8 (>=3.9.2,<4.0.0); extra == "test"
Requires-Dist: flake8-docstrings (>=1.6.0,<2.0.0); extra == "test"
Requires-Dist: isort (>=5.8.0,<6.0.0); extra == "test"
Requires-Dist: mkdocs (>=1.3.1,<2.0.0); extra == "doc"
Requires-Dist: mkdocs-autorefs (>=0.4.1,<0.5.0); extra == "doc"
Requires-Dist: mkdocs-include-markdown-plugin (>=3.8.1,<4.0.0); extra == "doc"
Requires-Dist: mkdocs-material (>=8.5.3,<9.0.0); extra == "doc"
Requires-Dist: mkdocs-material-extensions (>=1.0.3,<2.0.0)
Requires-Dist: mkdocstrings-python (>=0.7.1,<0.8.0); extra == "doc"
Requires-Dist: mypy (>=0.900,<0.901); extra == "test"
Requires-Dist: pip (>=20.3.1,<21.0.0); extra == "dev"
Requires-Dist: pre-commit (>=2.12.0,<3.0.0); extra == "dev"
Requires-Dist: pytest (>=6.2.4,<7.0.0); extra == "test"
Requires-Dist: pytest-cov (>=2.12.0,<3.0.0); extra == "test"
Requires-Dist: toml (>=0.10.2,<0.11.0); extra == "dev"
Requires-Dist: tox (>=3.20.1,<4.0.0); extra == "dev"
Requires-Dist: twine (>=3.3.0,<4.0.0); extra == "dev"
Requires-Dist: virtualenv (>=20.2.2,<21.0.0); extra == "dev"
Description-Content-Type: text/markdown

# imouapi
This python library helps in interacting with [Imou Life Open API](https://open.imoulife.com) for remote controlling programmatically your [Imou devices](https://www.imoulife.com), especially those settings such as motion detection, human detection, privacy, etc that can be changed by the Imou Life App only.

## Features

- Provide classes for both low level API interaction as well as device and sensors abastractions
- Exceptions and error handling
- Based on asyncio module

## Quickstart

- Install the library with `pip install imouapi`
- Register a developer account on [Imou Life Open API](https://open.imoulife.com) and get your `appId` and `appSecret`
- Instantiate the Imou API client (`from imouapi.api import ImouAPIClient`) and initialize it (e.g. `api_client = ImouAPIClient(app_id, app_secret, session)`)
- Discover registered devices by importing the Discover service (`from imouapi.device import ImouDiscoverService`), inializing it (e.g. `discover_service = ImouDiscoverService(api_client)`) and running a discovery (e.g. `discovered_devices = await discover_service.async_discover_devices()`)
- Either use the high level API by importing the Imou Device class (`from imouapi.device import ImouDevice`) and initializing it (e.g. `device = ImouDevice(api_client, device_id)`) or using directly the low level API provided by `ImouAPIClient` to interact with the device

Full details on the installation process, requirements, usage and classes and methods made available by the library are available at [https://user2684.github.io/imouapi](https://user2684.github.io/imouapi)

