# 2020 Developer Year In Review

**URL:** <https://community.smartthings.com/t/2020-developer-year-in-review/213031>\
**Category:** Developer Programs\
**Created:** [November 30, 2020, 3:53pm UTC](https://community.smartthings.com/t/2020-developer-year-in-review/213031 "2020-11-30T15:53:51Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![jody.albritton](https://yyz2.discourse-cdn.com/smartthings/user_avatar/community.smartthings.com/jody.albritton/32/220661_2.png) [@jody.albritton](https://community.smartthings.com/u/jody.albritton)\
**Post date:** [November 30, 2020, 3:53pm UTC](https://community.smartthings.com/t/2020-developer-year-in-review/213031/1 "2020-11-30T15:53:51Z")

</div>

# Developer Outreach

From the early Kickstarter days in 2012 through the acquisition by Samsung, SmartThings has remained an open platform focused on helping developers create enhanced smart home experiences.  
In 2020, we renewed our commitment to our vibrant developer community with monthly newsletters keeping them informed of the new capabilities of our platform. Before we close this gruesome year, we want to thank each and every developer who has followed us along this journey, and cannot wait to show you what we have in store for 2021.

In case you missed it, here is a summary of everything we’ve accomplished this year:

## Community Refresh

To kickoff a new era of developer outreach, we refreshed the design and layout of the SmartThings Community. We reorganized the developer topics to a central area and created the new [Tutorials section](https://community.smartthings.com/c/developer-programs/tutorials) to make it easier for you to find content.

We also added two support staff — @erickv and @nayelyz — to answer developer questions.  
You will be seeing more from them in the coming months as we continue to grow our developer support initiatives on Community.

## A new Command Line Interface for SmartThings

In June, we announced the [SmartThings CLI](https://community.smartthings.com/t/custom-capability-and-cli-developer-preview/197296) — the first of many new developer tools.

As we move away from the legacy Groovy platform, we are building new tools for developers. The CLI, built on top of the new [SmartThings SDK](https://github.com/SmartThingsCommunity/smartthings-core-sdk), will serve as the primary interface for building experiences on the new platform. While it is fully extensible with plugins — using the open source CLI Framework (OCLIF) — the current version is just the first step in a new journey for developers. [Watch on GitHub](https://github.com/SmartThingsCommunity/smartthings-cli/watchers) to track updates as we continue adding features.

.

## Core SDK for Javascript

You can now leverage the same SDK we used to build the CLI to add SmartThings into your existing application or project. From dashboards to mobile apps, you can enhance your user experience by integrating the SmartThings platform into your service. Learn more about using the SDK here:

> [@SmartThings CoreSDK Javascript](https://community.smartthings.com/t/smartthings-coresdk-javascript/194663):
>
> Getting Started With CoreSDK JS The SmartThings Core SDK is a wrapper designed to simplify the use of the [SmartThings REST API](https://developer.smartthings.com/docs/api/public) from JavaScript and TypeScript applications. This is the very first release of this SDK and should be considered a work in progress. Changes may still be made that are not backwardly compatible. Prerequisites Samsung Account SmartThings Account with at least one device Github Account or Glitch Account Guide In this tutorial we will use Glitch but you should be able to follow along with any express enabled node environment. Links Github: [GitHub - SmartThingsCommunity/smartthings-core-sdk: SDK for calling the SmartThings API from JavaScript and TypeScript applications](https://github.com/SmartThingsCommunity/smartthings-core-sdk) Glitch to Remix: [Coresdk Demo](https://glitch.com/~coresdk-demo) PAT Token Page [SmartThings. Add a little smartness to your thing…](https://account.smartthings.com/tokens)

## Rules API

We released a new way to create and execute Automations on the platform with the Rules API. This new API moves beyond Groovy with faster execution, creation of complex powerful Automations, and lays the groundwork for local execution with a future update to the API.

> [@Advanced Automations with the Rules API](https://community.smartthings.com/t/advanced-automations-with-the-rules-api/201579):
>
> Advanced Rules API Tutorial We will use the rules API to create a trigger that will evaluate a condition then schedule to evaluate that condition again after a defined period of time. This rule could replace SmartApps like “Notify Me When” that were previously complex groovy apps. Requirements: Postman [PAT Token](https://account.smartthings.com/tokens) Getting Started Open Postman and add your PAT token to the header Refresher If you are new to the Rules API, you will need to supply the locationId you want to work with for most requests GET https://api.smartthings.com/v1/rules?locationId=yourID Will return a list of your existing rules Let’s Go Use Postman in a new tab to GET some device IDs. You will need to get a contact sensor and a light bulb. Once you have these, we are going to be sending a POST comman…

## SmartThings Schema

Preparing the transition away from Groovy, we introduced a new and easier option for integrating your Cloud Connected Devices. SmartThings Schema allows developers to onboard their Cloud Connected Devices with less code and a more standard method of deployment.

> [@Schema Devices and Custom Capabilities](https://community.smartthings.com/t/schema-devices-and-custom-capabilities/199675):
>
> Creating custom capabilties for schema devices Using the SmartThings CLI and Developer Workspace We are going to create a Cloud Connected Device using Schema and webhooks. Our base device will be a basic switch. The first part of this tutorial will cover create the connector, oAuth server, and adding the Switch to SmartThings. The second part of the tutorial will cover adding a custom capability to this new device. Prerequisites: Samsung Account Developer Workspace Access Developer Mode Enabled Glitch Account Text File Step 1: [Remix](https://glitch.com/edit/#!/remix/schematutorial) this Glitch account (connector) Set the values in the .env file using .env-example as a guide. Once the remixed app is up and running copy its URL to your text file. Register the webhook url in SmartThings Developer Workspace and deploy it for t…

## Custom Capabilities

After working within the constraints of a standard Capability model, developers are now free to create their own custom Capabilities. This feature has been requested since the inception of the platform, and marks a big milestone for developers building on SmartThings. Unlike Commands and Attributes, these new Capabilities will be visible to other apps, services, and integrations.

> [@Custom Capability and CLI Developer Preview](https://community.smartthings.com/t/custom-capability-and-cli-developer-preview/197296/):
>
> Overview At SmartThings we want to provide tooling to allow developers to get their device integrations working in the SmartThings app. These changes will allow an integrator to move from using custom commands and attributes to custom capabilities. DTH Migration For Custom Capabilities In order to follow along with the example set forth in this guide, you will want to have the CLI set up, so make sure that you take this step first. You can download the CLI here from the [releases tab](https://github.com/SmartThingsCommunity/smartthings-cli/releases) and read more about it in the [README](https://github.com/SmartThingsCommunity/smartthings-cli/blob/master/packages/cli/README.md). It is also recommended that you familiarize yourself with the concepts: [Custom Capabilities](https://developer.smartthings.com/docs/devices/capabilities/custom-capabilities)[Capability Presentations](https://developer.smartthings.com/docs/devices/capabilities/capability-presentations)Walkthrough We are going to walk through a simple example of updating our Device Type Handler (DTH) so that devices installed with the DTH will be …

## Direct Connected Devices

Using Direct Connected Devices, makers can now connect their hardware directly to the platform using the MQTT protocol. Direct Connected Devices do not need cloud or server infrastructure as they communicate directly with SmartThings.

> [@How to Build Direct Connected Devices](https://community.smartthings.com/t/how-to-build-direct-connected-devices/204055):
>
> How to build Direct Connected devices with the SmartThings Platform Direct connected devices do not require a middle cloud or a hub. After flashing the firmware the device will use the SmartThings platform as its backend provider. Communication happens directly between the platform and the device over MQTT. The SDK enables rapid development of these devices on a variety of low cost SOCs. Workstation Setup Prerequisites: Latest release of Ubuntu (v20.04 as of this tutorial) Python 3 ESP32 SoC Espressif IDF [SmartThings SDK for Direct Connected Devices](https://github.com/SmartThingsCommunity/st-device-sdk-c-ref)[Example Apps](https://github.com/SmartThingsCommunity/st-device-sdk-c-ref/tree/master/apps) Development of Direct Connected devices with the SDK is currently optimized for Ubuntu workstations. The tutorial will be using the latest 20.04 release of Ubuntu. The distro does not matter, but a Debian-based distro will yi…

## The Future

We are committed to building an open and inclusive ecosystem with you in 2021. Along with the monthly newsletters and tutorials, we will be delivering more new and exciting developer content and continue to work with you, the developers, to turn everything into a smart thing.

We have a few closed betas for both app and device makers happening now. If you are interested in participating in future betas, please follow the developer announcements in future newsletters or us on the SmartThings Community.

---

<div class="post-metadata">

**Author:** ![Alwas](https://avatars.discourse-cdn.com/v4/letter/a/c67d28/32.png) [@Alwas](https://community.smartthings.com/u/Alwas)\
**Post date:** [December 10, 2020, 9:52pm UTC](https://community.smartthings.com/t/2020-developer-year-in-review/213031/2 "2020-12-10T21:52:01Z")

</div>

Yes, but I’m not sure if you’re aware Jody, but with these recent changes, we’re no longer able to see what triggers our devices, like we could with the classic app, will this functionality ever return?

---

<div class="post-metadata">

**Author:** ![Automated\_House](https://yyz2.discourse-cdn.com/smartthings/user_avatar/community.smartthings.com/automated_house/32/99641_2.png) [@Automated\_House](https://community.smartthings.com/u/Automated_House)\
**Post date:** [December 11, 2020, 5:42pm UTC](https://community.smartthings.com/t/2020-developer-year-in-review/213031/3 "2020-12-11T17:42:18Z")

</div>

@erickv is missing his official SmartThings flair 🙂

---

<div class="post-metadata">

**Author:** ![erickv](https://yyz2.discourse-cdn.com/smartthings/user_avatar/community.smartthings.com/erickv/32/230792_2.png) [@erickv](https://community.smartthings.com/u/erickv)\
**Post date:** [December 11, 2020, 6:27pm UTC](https://community.smartthings.com/t/2020-developer-year-in-review/213031/4 "2020-12-11T18:27:31Z")

</div>

It’s just a disguise 🕶

---

<div class="post-metadata">

**Author:** ![GSzabados](https://yyz2.discourse-cdn.com/smartthings/user_avatar/community.smartthings.com/gszabados/32/73805_2.png) [@GSzabados](https://community.smartthings.com/u/GSzabados)\
**Post date:** [December 26, 2020, 8:18pm UTC](https://community.smartthings.com/t/2020-developer-year-in-review/213031/5 "2020-12-26T20:18:58Z")

</div>

@jody.albritton, thanks you very much for the hard work! It was a hell of a year. I hope you have some time during the holiday season to rest a bit and focus on other important things.

We are all looking forward to 2021 to see what SmartThings will bring to us!
