# 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": "",
"docs_url": null,
"requires_python": ">=3.9,<4",
"maintainer_email": "",
"keywords": "",
"author": "Kenneth J. Pronovici",
"author_email": "pronovic@ieee.org",
"download_url": "https://files.pythonhosted.org/packages/2b/d7/4aeabd2a828e63b09588a4a247889992f4f8f6007e507839aeb09b0b8e06/smartapp_sdk-0.6.7.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.7",
"project_urls": {
"Homepage": "https://pypi.org/project/smartapp-sdk/",
"Repository": "https://github.com/pronovic/smartapp-sdk"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "c00b2221cf39312a4b51f2ee08a917a323a9b9a66b977f1e1d032f27646ce935",
"md5": "7eb1912d9cee13a983735deb8e35a952",
"sha256": "020e5bfb4d110a657579c0713702652d42b1ebba9797687fac5163cc35aa79fa"
},
"downloads": -1,
"filename": "smartapp_sdk-0.6.7-py3-none-any.whl",
"has_sig": false,
"md5_digest": "7eb1912d9cee13a983735deb8e35a952",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9,<4",
"size": 22833,
"upload_time": "2024-02-26T03:46:42",
"upload_time_iso_8601": "2024-02-26T03:46:42.119481Z",
"url": "https://files.pythonhosted.org/packages/c0/0b/2221cf39312a4b51f2ee08a917a323a9b9a66b977f1e1d032f27646ce935/smartapp_sdk-0.6.7-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2bd74aeabd2a828e63b09588a4a247889992f4f8f6007e507839aeb09b0b8e06",
"md5": "d3485eb70828e6ad0a70803db9c5cf3a",
"sha256": "c261e0874ad7d593b07d3c3c172b10fa4da1f2f78ee6e1eb4c09edc04c1c519b"
},
"downloads": -1,
"filename": "smartapp_sdk-0.6.7.tar.gz",
"has_sig": false,
"md5_digest": "d3485eb70828e6ad0a70803db9c5cf3a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9,<4",
"size": 53006,
"upload_time": "2024-02-26T03:46:43",
"upload_time_iso_8601": "2024-02-26T03:46:43.992450Z",
"url": "https://files.pythonhosted.org/packages/2b/d7/4aeabd2a828e63b09588a4a247889992f4f8f6007e507839aeb09b0b8e06/smartapp_sdk-0.6.7.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-02-26 03:46:43",
"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"
}