# aioketraapi
aiohttp-based Python Client SDK for controlling Ketra lighting products. Based on Ketra API documentation available
[here](https://s3.amazonaws.com/ketra-software/KetraMobileAPI/v1/KetraN4APIoverview.pdf).
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: 1.4.0
- Package version: 1.0.0
- Build package: org.openapitools.codegen.languages.PythonClientCodegen
## Requirements.
Python 3.6+
## Installation & Usage
### pip install
You can install from pypi using:
```sh
pip install aioketraapi
```
Or, you can install directly from github using:
```sh
pip install git+https://github.com/s4v4g3/aio-ketra-api.git
```
Note that in either case you may need to run `pip` with root permission: `sudo pip install aioketraapi` or `sudo pip install git+https://github.com/s4v4g3/aio-ketra-api.git`
Then import the package:
```python
import aioketraapi
```
### Setuptools
Install via [Setuptools](http://pypi.python.org/pypi/setuptools).
```sh
python setup.py install --user
```
(or `sudo python setup.py install` to install the package for all users)
Then import the package:
```python
import aioketraapi
```
## Getting Started
In order to use this package you will need to contact Ketra Support and get assigned a client_id and client_secret.
### Authentication
You will only need to obtain a single access token for a given user account; at present the access tokens do not expire.
```python
import asyncio
from aioketraapi.oauth import OAuthTokenResponse
async def main():
client_id = 'YOUR CLIENT ID'
client_secret = 'YOUR CLIENT SECRET'
username = '<your Ketra Design Studio username here>'
password = '<your Ketra Design Studio password here>'
oauth_token = await OAuthTokenResponse.request_token(client_id, client_secret, username, password)
access_token = oauth_token.access_token
print(f"My access token is {access_token}")
if __name__ == '__main__':
asyncio.run(main())
```
### Usage
```python
import asyncio
from aioketraapi.n4_hub import N4Hub
from aioketraapi.models.lamp_state import LampState
async def main():
# Find the installation id for your installation by logging into https://my.goketra.com
# and finding your installation in the list and going to the “Details” page for your
# installation. The installation id is displayed in the URL of this page, for example
# a URL of https://my.goketra.com/installations/0fbcada7-b318-4d29-858c1ea3ac1fd5cb
# would indicate an installation id of “0fbcada7-b318-4d29-858c1ea3ac1fd5cb”
installation_id = 'my-installation-id'
# Use the access token received from the authentication step above
access_token = 'access token received from authentication step'
# Set to False to access your installation directly through your local network,
# set to True to access your installation through the cloud (requires remote access
# to be enabled in Design Studio for the installation)
use_cloud = False
hub = await N4Hub.get_hub(installation_id,
access_token,
use_cloud=use_cloud)
# get the keypads in the installation and print all button names
keypads = await hub.get_keypads()
for keypad in keypads:
for button in keypad.buttons:
print(button.scene_name)
# activate the "Natural" button on the "Kitchen" keypad
if button.scene_name == "Kitchen Natural":
await button.activate()
# get the groups in the installation and print all group names
groups = await hub.get_groups()
for group in groups:
print(group.name)
# Control the "Office" group
if group.name == "Office":
await group.set_state(LampState(transition_time=13000, cct=2000, brightness=0.95, power_on=True))
if __name__ == '__main__':
asyncio.run(main())
```
## License
The library is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
Raw data
{
"_id": null,
"home_page": "https://github.com/s4v4g3/aio-ketra-api.git",
"name": "aioketraapi",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": "",
"keywords": "OpenAPI,OpenAPI-Generator,Ketra Lighting API",
"author": "Joe Savage",
"author_email": "joe@savage.zone",
"download_url": "https://files.pythonhosted.org/packages/61/b3/93384bd453682a90499498ee22ffff22d53aedf360be8bad71ce25b5b170/aioketraapi-0.1.12.tar.gz",
"platform": null,
"description": "# aioketraapi\r\naiohttp-based Python Client SDK for controlling Ketra lighting products. Based on Ketra API documentation available\r\n[here](https://s3.amazonaws.com/ketra-software/KetraMobileAPI/v1/KetraN4APIoverview.pdf).\r\n\r\nThis Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:\r\n\r\n- API version: 1.4.0\r\n- Package version: 1.0.0\r\n- Build package: org.openapitools.codegen.languages.PythonClientCodegen\r\n\r\n## Requirements.\r\n\r\nPython 3.6+\r\n\r\n## Installation & Usage\r\n### pip install\r\n\r\nYou can install from pypi using:\r\n\r\n```sh\r\npip install aioketraapi\r\n```\r\n\r\nOr, you can install directly from github using:\r\n\r\n```sh\r\npip install git+https://github.com/s4v4g3/aio-ketra-api.git\r\n```\r\n\r\nNote that in either case you may need to run `pip` with root permission: `sudo pip install aioketraapi` or `sudo pip install git+https://github.com/s4v4g3/aio-ketra-api.git`\r\n\r\n\r\nThen import the package:\r\n```python\r\nimport aioketraapi\r\n```\r\n\r\n### Setuptools\r\n\r\nInstall via [Setuptools](http://pypi.python.org/pypi/setuptools).\r\n\r\n```sh\r\npython setup.py install --user\r\n```\r\n(or `sudo python setup.py install` to install the package for all users)\r\n\r\nThen import the package:\r\n```python\r\nimport aioketraapi\r\n```\r\n\r\n## Getting Started\r\n\r\nIn order to use this package you will need to contact Ketra Support and get assigned a client_id and client_secret.\r\n\r\n### Authentication\r\n\r\nYou will only need to obtain a single access token for a given user account; at present the access tokens do not expire.\r\n\r\n```python\r\n\r\nimport asyncio\r\nfrom aioketraapi.oauth import OAuthTokenResponse\r\n\r\nasync def main():\r\n\r\n client_id = 'YOUR CLIENT ID'\r\n client_secret = 'YOUR CLIENT SECRET'\r\n username = '<your Ketra Design Studio username here>'\r\n password = '<your Ketra Design Studio password here>'\r\n\r\n oauth_token = await OAuthTokenResponse.request_token(client_id, client_secret, username, password)\r\n access_token = oauth_token.access_token\r\n print(f\"My access token is {access_token}\")\r\n\r\nif __name__ == '__main__':\r\n asyncio.run(main())\r\n\r\n```\r\n\r\n### Usage\r\n\r\n```python\r\nimport asyncio\r\nfrom aioketraapi.n4_hub import N4Hub\r\nfrom aioketraapi.models.lamp_state import LampState\r\n\r\nasync def main():\r\n\r\n # Find the installation id for your installation by logging into https://my.goketra.com\r\n # and finding your installation in the list and going to the \u201cDetails\u201d page for your\r\n # installation. The installation id is displayed in the URL of this page, for example\r\n # a URL of https://my.goketra.com/installations/0fbcada7-b318-4d29-858c1ea3ac1fd5cb\r\n # would indicate an installation id of \u201c0fbcada7-b318-4d29-858c1ea3ac1fd5cb\u201d\r\n installation_id = 'my-installation-id'\r\n\r\n # Use the access token received from the authentication step above\r\n access_token = 'access token received from authentication step'\r\n\r\n # Set to False to access your installation directly through your local network,\r\n # set to True to access your installation through the cloud (requires remote access\r\n # to be enabled in Design Studio for the installation)\r\n use_cloud = False\r\n hub = await N4Hub.get_hub(installation_id,\r\n access_token,\r\n use_cloud=use_cloud)\r\n\r\n # get the keypads in the installation and print all button names\r\n keypads = await hub.get_keypads()\r\n for keypad in keypads:\r\n for button in keypad.buttons:\r\n print(button.scene_name)\r\n # activate the \"Natural\" button on the \"Kitchen\" keypad\r\n if button.scene_name == \"Kitchen Natural\":\r\n await button.activate()\r\n\r\n # get the groups in the installation and print all group names\r\n groups = await hub.get_groups()\r\n for group in groups:\r\n print(group.name)\r\n # Control the \"Office\" group\r\n if group.name == \"Office\":\r\n await group.set_state(LampState(transition_time=13000, cct=2000, brightness=0.95, power_on=True))\r\n\r\n\r\nif __name__ == '__main__':\r\n asyncio.run(main())\r\n```\r\n\r\n## License\r\n\r\nThe library is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).\r\n",
"bugtrack_url": null,
"license": "",
"summary": "Ketra Lighting API",
"version": "0.1.12",
"project_urls": {
"Homepage": "https://github.com/s4v4g3/aio-ketra-api.git"
},
"split_keywords": [
"openapi",
"openapi-generator",
"ketra lighting api"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "4eb6a2aea7731752c19f3a67950af0f9d3ca93c6f69c2f0cf68616dc71bc13f4",
"md5": "ff9018cfa659823926b1f489ce974ba3",
"sha256": "ec6a1c6d24523890f8987c016dad354e2202479be2574a9014c173ae592a86e1"
},
"downloads": -1,
"filename": "aioketraapi-0.1.12-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ff9018cfa659823926b1f489ce974ba3",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 103577,
"upload_time": "2023-11-21T18:47:03",
"upload_time_iso_8601": "2023-11-21T18:47:03.877429Z",
"url": "https://files.pythonhosted.org/packages/4e/b6/a2aea7731752c19f3a67950af0f9d3ca93c6f69c2f0cf68616dc71bc13f4/aioketraapi-0.1.12-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "61b393384bd453682a90499498ee22ffff22d53aedf360be8bad71ce25b5b170",
"md5": "bfbf56f60b51b9b5e8e43c0104b8764e",
"sha256": "89ed545a0a40e3e2a1dcd0f9d3861684d43c382ddf2a31b68cff69e354d52a4c"
},
"downloads": -1,
"filename": "aioketraapi-0.1.12.tar.gz",
"has_sig": false,
"md5_digest": "bfbf56f60b51b9b5e8e43c0104b8764e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 55684,
"upload_time": "2023-11-21T18:47:06",
"upload_time_iso_8601": "2023-11-21T18:47:06.594952Z",
"url": "https://files.pythonhosted.org/packages/61/b3/93384bd453682a90499498ee22ffff22d53aedf360be8bad71ce25b5b170/aioketraapi-0.1.12.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-11-21 18:47:06",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "s4v4g3",
"github_project": "aio-ketra-api",
"travis_ci": true,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "certifi",
"specs": [
[
">=",
"14.05.14"
]
]
},
{
"name": "six",
"specs": [
[
">=",
"1.10"
]
]
},
{
"name": "python_dateutil",
"specs": [
[
">=",
"2.5.3"
]
]
},
{
"name": "setuptools",
"specs": [
[
">=",
"21.0.0"
]
]
},
{
"name": "urllib3",
"specs": [
[
">=",
"1.15.1"
]
]
}
],
"tox": true,
"lcname": "aioketraapi"
}