# SmartApp SDK
[![pypi](https://img.shields.io/pypi/v/smartapp-sdk.svg)](https://pypi.org/project/smartapp-sdk/)
[![license](https://img.shields.io/pypi/l/smartapp-sdk.svg)](https://github.com/pronovic/smartapp-sdk/blob/master/LICENSE)
[![wheel](https://img.shields.io/pypi/wheel/smartapp-sdk.svg)](https://pypi.org/project/smartapp-sdk/)
[![python](https://img.shields.io/pypi/pyversions/smartapp-sdk.svg)](https://pypi.org/project/smartapp-sdk/)
[![Test Suite](https://github.com/pronovic/smartapp-sdk/workflows/Test%20Suite/badge.svg)](https://github.com/pronovic/smartapp-sdk/actions?query=workflow%3A%22Test+Suite%22)
[![docs](https://readthedocs.org/projects/smartapp-sdk/badge/?version=stable&style=flat)](https://smartapp-sdk.readthedocs.io/en/stable/)
[![coverage](https://coveralls.io/repos/github/pronovic/smartapp-sdk/badge.svg?branch=master)](https://coveralls.io/github/pronovic/smartapp-sdk?branch=master)
[![Poetry](https://img.shields.io/endpoint?url=https://python-poetry.org/badge/v0.json)](https://python-poetry.org/)
smartapp-sdk is a Python library to build a [webhook-based SmartApp](https://developer-preview.smartthings.com/docs/connected-services/smartapp-basics/) for the [SmartThings platform](https://www.smartthings.com/).
The SDK is intended to be easy to use no matter how you choose to structure your code, whether that's a traditional Python webapp (such as FastAPI on Uvicorn) or a serverless application (such as AWS Lambda).
The SDK handles all the mechanics of the [webhook lifecycle interface](https://developer-preview.smartthings.com/docs/connected-services/lifecycles/) on your behalf. You just implement a single endpoint to accept the SmartApp webhook requests, and a single callback class where you define specialized behavior for the webhook events. A clean [attrs](https://www.attrs.org/en/stable/) object interface is exposed for use by your callback.
SDK documentation is found at [smartapp-sdk.readthedocs.io](https://smartapp-sdk.readthedocs.io/en/stable/). Look there for installation instructions, the class model documentation, and example code. The [smartapp-sensortrack](https://github.com/pronovic/smartapp-sensortrack) repo on GitHub is also a good example of how to use this SDK to build a traditional Python webapp.
Raw data
{
"_id": null,
"home_page": "https://pypi.org/project/smartapp-sdk/",
"name": "smartapp-sdk",
"maintainer": null,
"docs_url": null,
"requires_python": "<4,>=3.10",
"maintainer_email": null,
"keywords": null,
"author": "Kenneth J. Pronovici",
"author_email": "pronovic@ieee.org",
"download_url": "https://files.pythonhosted.org/packages/73/d9/9e0cf37f62b5d83543f436a414e437ebb205735ccdaa4d57bd54440b39b0/smartapp_sdk-0.6.8.tar.gz",
"platform": null,
"description": "# SmartApp SDK\n\n[![pypi](https://img.shields.io/pypi/v/smartapp-sdk.svg)](https://pypi.org/project/smartapp-sdk/)\n[![license](https://img.shields.io/pypi/l/smartapp-sdk.svg)](https://github.com/pronovic/smartapp-sdk/blob/master/LICENSE)\n[![wheel](https://img.shields.io/pypi/wheel/smartapp-sdk.svg)](https://pypi.org/project/smartapp-sdk/)\n[![python](https://img.shields.io/pypi/pyversions/smartapp-sdk.svg)](https://pypi.org/project/smartapp-sdk/)\n[![Test Suite](https://github.com/pronovic/smartapp-sdk/workflows/Test%20Suite/badge.svg)](https://github.com/pronovic/smartapp-sdk/actions?query=workflow%3A%22Test+Suite%22)\n[![docs](https://readthedocs.org/projects/smartapp-sdk/badge/?version=stable&style=flat)](https://smartapp-sdk.readthedocs.io/en/stable/)\n[![coverage](https://coveralls.io/repos/github/pronovic/smartapp-sdk/badge.svg?branch=master)](https://coveralls.io/github/pronovic/smartapp-sdk?branch=master)\n[![Poetry](https://img.shields.io/endpoint?url=https://python-poetry.org/badge/v0.json)](https://python-poetry.org/)\n\nsmartapp-sdk is a Python library to build a [webhook-based SmartApp](https://developer-preview.smartthings.com/docs/connected-services/smartapp-basics/) for the [SmartThings platform](https://www.smartthings.com/).\n\nThe SDK is intended to be easy to use no matter how you choose to structure your code, whether that's a traditional Python webapp (such as FastAPI on Uvicorn) or a serverless application (such as AWS Lambda).\n\nThe SDK handles all the mechanics of the [webhook lifecycle interface](https://developer-preview.smartthings.com/docs/connected-services/lifecycles/) on your behalf. You just implement a single endpoint to accept the SmartApp webhook requests, and a single callback class where you define specialized behavior for the webhook events. A clean [attrs](https://www.attrs.org/en/stable/) object interface is exposed for use by your callback.\n\nSDK documentation is found at [smartapp-sdk.readthedocs.io](https://smartapp-sdk.readthedocs.io/en/stable/). Look there for installation instructions, the class model documentation, and example code. The [smartapp-sensortrack](https://github.com/pronovic/smartapp-sensortrack) repo on GitHub is also a good example of how to use this SDK to build a traditional Python webapp.\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "Framework to build a webhook-based SmartThings SmartApp",
"version": "0.6.8",
"project_urls": {
"Homepage": "https://pypi.org/project/smartapp-sdk/",
"Repository": "https://github.com/pronovic/smartapp-sdk"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "25955d456fbf2f86e9dc2d340c3a17593783fe484e410de2ff6478af74700f29",
"md5": "c585e487e0889dfb41d150cac9720deb",
"sha256": "d9a2d6e5f586c8a785447a260be009289817564f45285f0b589c3363640384d0"
},
"downloads": -1,
"filename": "smartapp_sdk-0.6.8-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c585e487e0889dfb41d150cac9720deb",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4,>=3.10",
"size": 22853,
"upload_time": "2024-10-15T16:23:04",
"upload_time_iso_8601": "2024-10-15T16:23:04.447332Z",
"url": "https://files.pythonhosted.org/packages/25/95/5d456fbf2f86e9dc2d340c3a17593783fe484e410de2ff6478af74700f29/smartapp_sdk-0.6.8-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "73d99e0cf37f62b5d83543f436a414e437ebb205735ccdaa4d57bd54440b39b0",
"md5": "f424d0bb165ef15fed0b6e7e90d8f404",
"sha256": "fe2512fa2c913c2e607a9eeaf765d21b4e0a7f318ab9577a75da2aa34298b5d3"
},
"downloads": -1,
"filename": "smartapp_sdk-0.6.8.tar.gz",
"has_sig": false,
"md5_digest": "f424d0bb165ef15fed0b6e7e90d8f404",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4,>=3.10",
"size": 53178,
"upload_time": "2024-10-15T16:23:05",
"upload_time_iso_8601": "2024-10-15T16:23:05.751413Z",
"url": "https://files.pythonhosted.org/packages/73/d9/9e0cf37f62b5d83543f436a414e437ebb205735ccdaa4d57bd54440b39b0/smartapp_sdk-0.6.8.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-15 16:23:05",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "pronovic",
"github_project": "smartapp-sdk",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"lcname": "smartapp-sdk"
}