# aiokwikset - Python interface for the Kwikset API
Python library for communicating with the [Kwikset Smart Locks](https://www.kwikset.com/products/electronic/electronic-smart-locks) via the Kwikset cloud API.
***WARNING***
* This library only works if you have signed up for and created a home/had a home shared with you from the Kwikset Application.
* [IOS](https://apps.apple.com/us/app/kwikset/id1465996742)
* [Android](https://play.google.com/store/apps/details?id=com.kwikset.blewifi)
NOTE:
* This library is community supported, please submit changes and improvements.
* This is a very basic interface, not well thought out at this point, but works for the use cases that initially prompted spitting this out from.
## Supports
- locking/unlocking
- retrieving basic information
## Installation
```
pip install aiokwikset
```
## Examples
```python
import asyncio
from aiokwikset import API
async def main() -> None:
"""Run!"""
#initialize the API
api = API("<EMAIL>")
#start auth
#<CODE_TYPE> = [phone, email]
pre_auth = await api.authenticate('<PASSWORD>','<CODE_TYPE>')
#MFA verification
await api.verify_user(pre_auth, input("Code:"))
# Get user account information:
user_info = await api.user.get_info()
# Get the homes
homes = await api.user.get_homes()
# Get the devices for the first home
devices = await api.device.get_devices(homes[0]['homeid'])
# Get information for a specific device
device_info = await api.device.get_device_info(devices[0]['deviceid'])
# Lock the specific device
lock = await api.device.lock_device(device_info, user_info)
# Set led status
led = await api.device.set_ledstatus(device_info, "false")
# Set audio status
audio = await api.device.set_audiostatus(device_info, "false")
# Set secure screen status
screen = await api.device.set_securescreenstatus(device_info, "false")
asyncio.run(main())
```
## Known Issues
* not all APIs supported
Raw data
{
"_id": null,
"home_page": "https://github.com/explosivo22/aiokwikset",
"name": "aiokwikset",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "kwikset,home automation,kwikset halo,kwikset smart lock",
"author": "Brad Barbour",
"author_email": "barbourbj@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/ad/09/5b0caafd8b2c8b7d771982167d639390c588266fd6bc3836f84c4ebef44f/aiokwikset-0.2.1.tar.gz",
"platform": null,
"description": "\n# aiokwikset - Python interface for the Kwikset API\n\nPython library for communicating with the [Kwikset Smart Locks](https://www.kwikset.com/products/electronic/electronic-smart-locks) via the Kwikset cloud API.\n\n***WARNING***\n* This library only works if you have signed up for and created a home/had a home shared with you from the Kwikset Application.\n* [IOS](https://apps.apple.com/us/app/kwikset/id1465996742)\n* [Android](https://play.google.com/store/apps/details?id=com.kwikset.blewifi)\n\nNOTE:\n\n* This library is community supported, please submit changes and improvements.\n* This is a very basic interface, not well thought out at this point, but works for the use cases that initially prompted spitting this out from.\n\n## Supports\n\n- locking/unlocking\n- retrieving basic information\n\n## Installation\n\n```\npip install aiokwikset\n```\n\n## Examples\n\n```python\nimport asyncio\n\nfrom aiokwikset import API\n\n\nasync def main() -> None:\n \"\"\"Run!\"\"\"\n #initialize the API\n api = API(\"<EMAIL>\")\n\n #start auth\n #<CODE_TYPE> = [phone, email]\n pre_auth = await api.authenticate('<PASSWORD>','<CODE_TYPE>')\n\n #MFA verification\n await api.verify_user(pre_auth, input(\"Code:\"))\n\n # Get user account information:\n user_info = await api.user.get_info()\n\n # Get the homes\n homes = await api.user.get_homes()\n\n # Get the devices for the first home\n devices = await api.device.get_devices(homes[0]['homeid'])\n\n # Get information for a specific device\n device_info = await api.device.get_device_info(devices[0]['deviceid'])\n\n # Lock the specific device\n lock = await api.device.lock_device(device_info, user_info)\n\n # Set led status\n led = await api.device.set_ledstatus(device_info, \"false\")\n\n # Set audio status\n audio = await api.device.set_audiostatus(device_info, \"false\")\n\n # Set secure screen status\n screen = await api.device.set_securescreenstatus(device_info, \"false\")\n\n\nasyncio.run(main())\n```\n\n## Known Issues\n\n* not all APIs supported\n",
"bugtrack_url": null,
"license": "Apache Software License",
"summary": "Python interface for Kwikset Smart Locks",
"version": "0.2.1",
"project_urls": {
"Homepage": "https://github.com/explosivo22/aiokwikset"
},
"split_keywords": [
"kwikset",
"home automation",
"kwikset halo",
"kwikset smart lock"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "78566c917d1d935de3e1c98b262a3ef13371e7c357b02f99536526caeeb75e4c",
"md5": "b6c47430e348a6ce1f7a1c7984821a18",
"sha256": "6305a4e90e98d523e222a34526c2f0ae1f049c7b6608a2948ae9fc5d1acf2996"
},
"downloads": -1,
"filename": "aiokwikset-0.2.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "b6c47430e348a6ce1f7a1c7984821a18",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 20729,
"upload_time": "2022-12-10T02:06:26",
"upload_time_iso_8601": "2022-12-10T02:06:26.102382Z",
"url": "https://files.pythonhosted.org/packages/78/56/6c917d1d935de3e1c98b262a3ef13371e7c357b02f99536526caeeb75e4c/aiokwikset-0.2.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ad095b0caafd8b2c8b7d771982167d639390c588266fd6bc3836f84c4ebef44f",
"md5": "4330bf7b94aeb7f81b4c4507274d38cf",
"sha256": "78edb83718a42f5c31b9d8462982176f726b3a141114bdf087b70732a5d938e0"
},
"downloads": -1,
"filename": "aiokwikset-0.2.1.tar.gz",
"has_sig": false,
"md5_digest": "4330bf7b94aeb7f81b4c4507274d38cf",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 18103,
"upload_time": "2022-12-10T02:06:27",
"upload_time_iso_8601": "2022-12-10T02:06:27.661131Z",
"url": "https://files.pythonhosted.org/packages/ad/09/5b0caafd8b2c8b7d771982167d639390c588266fd6bc3836f84c4ebef44f/aiokwikset-0.2.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2022-12-10 02:06:27",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "explosivo22",
"github_project": "aiokwikset",
"github_not_found": true,
"lcname": "aiokwikset"
}