Welcome! This SDK is currently in preview and is not recommended for use in production applications at this time. We welcome your bug reports, feature requests, and contributions.
This SDK includes a set of JVM libraries for building webhook and AWS Lambda SmartApps, and interacting with the public SmartThings REST API.
Several artifacts are published to the Maven central repository under the com.smartthings.sdk
group.
smartapp-core
- Core SmartApp Framework
smartapp-guice
- Extension library for use with Google Guicesmartapp-spring
- Extension library for use with Spring Dependency Injectionsmartapp-contextstore-dynamodb
- Extension library to use DynamoDB to
store installed application context data.smartthings-client
- Library for working with SmartThings APIsImport the library dependencies as needed:
If you prefer, the artifacts can be downloaded directly from Maven Central.
SmartApps are an example of a SmartThings Automation. Automations allow users to control the SmartThings ecosystem without manual intervention. Creating a SmartApp allows you to control and get status notifications from SmartThings devices using the SmartThings REST API.
Webhook SmartApps are any publicly-accessible web server that will receive a POST request payload.
AWS Lambda SmartApps are hosted in the Amazon Web Services cloud and are invoked by ARN instead of a public-DNS address.
To learn more about what a SmartApp is and how you can create interesting automations, please visit the developer portal documentation.
Take a quick look at how SmartApps are declared in various languages.
Several simple examples of using the sdk are included in the examples directory.
This Kotlin example implements the Java smartapp-core
library with a simple Ktor server.
This Java example implements the Java smartapp-core
library with a Ratpack server and uses Guice for dependency management.
This Java example implements the Java smartapp-core
library using Spring Boot.
This Java example implements the Java smartapp-core
library as an AWS Lambda.
Core SmartApp framework. Provides abilities for defining a SmartApp that could be used in many environments - AWS Lambda / Dropwizard / Ratpack / etc
An API library that provides useful utilities for working with the Subscription / Schedules / Device APIs
An extension library that provides support for building a SmartApp with Guice dependency injection.
An extension library that provides support for building a SmartApp with Spring dependency injection.
An extension library that implements a context store using DynamoDB.
If you are not familiar with SmartThings, we have extensive on-line documentation.
To create and manage your services and devices on SmartThings, create an account in the developer workspace.
The SmartThings Community is a good place share and ask questions.
There is also a SmartThings reddit community where you can read and share information.
Licensed under the Apache License, Version 2.0
Copyright 2019 SmartThings, Inc.