Need help in understanding Smartthings API

Hi,

I’m new to smartthings and was tinkering around with the API. I’m trying to build an ionic application which pretty much does the same thing the Smartthings app(the new one) does with some additional functionalities. So basically, I provide my users the devices and they should be able to add and manage the devices using MyApp(my ionic application).

So, what I’m expecting to achieve is this (I’m ignoring Hub connected devices for now):


I find the documentation really confusing (might be because i’m a total noob to smartthings). TL;DR

  1. Is the documentation for device manufacturers? Or is it for developers creating StartApps to include in Smartthings mobile app (feels kind of a plugin system)? Or is it for someone with my use case?

  1. What is a smartapp?
    Documentation says:

You can develop a SmartApp either to integrate a cloud-connected device into SmartThings Cloud, or to create an Automation.

I’m not interested in Automation for now. So integrate a cloud-connected device seems like my thing. But the confusion starts here.

A cloud-connected device communicates to SmartThings Cloud through a third-party cloud and a Cloud Connector.

For a long time I was under the impression that third-party cloud meant My API Server. Later on I figured out that it means Cloud service of the device manufacturer. CMIIW


So is that cloud above services My API Server? If it is, then where’s the documentation for that SmartApp?


  1. In Oauth integrations,
    What is third-party application? Is it MyApp?

To integrate a third-party application with SmartThings, first submit a request. Once approved, you can enable users of your platform to interact with SmartThings Cloud through your application.

Why is it required? How long does it take for a request to be approved?

Now, just below this, there’s a section called Register your application. It has instructions to enter application details to show in Smartthings app. It doesn’t seem like an API thing anymore.


  1. Should we create a smartapp for each user?

  1. What’s the difference between Smartthings API and SmartApps API. When should we use them?

  1. How do we communicate to hub connected devices? In other words, How does My API Server know about the state changes in the device? Is webhooks used here?

I know it’s a lot of questions and maybe I’m not looking at smartthings like it was intended. But it would be of great help if someone could point me in the right direction.

1 Like

There are certain functionalities that you not be able to re-create such as adding and removing devices. However if your intent is to build an alternative client you should proceed with asking for oAuth access via the form you linked. It might take a couple of weeks to get access.

1 Like

Thank you for quick response! So devices can only be managed using developer portal?

(Also if you have time, could you please clarify my other confusions)

No. I was referencing your idea to replicate the mobile app. Users will still need our mobile app to add and remove devices. You may however provide a cloud connected device to our platform (which would be added in our mobile app) or you can provide a SmartApp that brings additional functionality to the user.

Example:

You want to provide an alternative control method, a different interface, integrate SmartThings control into your app, or extend the functionality of the platform in some other way that is not possible inside of our app.

There are multiple options available to you.

  1. Connect to SmartThings with oAuth and use our REST API.
  2. Create and endpoint app that is hosted on your own server that provides configuration and life cycle management

From your description it sounds like you want oAuth and you can find details for what is available in our documentation

https://smartthings.developer.samsung.com/docs/api-ref/st-api.html#

1 Like

No. A smartapp is creared, published, and then available to install for the end user in our mobile app.

Technically they both use the SmartThings API. SmartApps are intended to be installed from our mobile app and configured there.

oAuth solutions would implement a “Connect to SmartThings” button on your service and all configuration would be done on your app or website

Yes, in either situation you create a subscription and we send events to the destination you specify.

1 Like