aiokwikset


Nameaiokwikset JSON
Version 0.2.1 PyPI version JSON
download
home_pagehttps://github.com/explosivo22/aiokwikset
SummaryPython interface for Kwikset Smart Locks
upload_time2022-12-10 02:06:27
maintainer
docs_urlNone
authorBrad Barbour
requires_python
licenseApache Software License
keywords kwikset home automation kwikset halo kwikset smart lock
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            
# 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"
}
        
Elapsed time: 0.07986s