“SmartApp” is a term inherited from the previous version of the platform when all the customer-contributed code was groovy code that ran in the smartthings cloud.
For an explanation of the original term, see the FAQ (The topic title is a clickable link)
I think it’s helpful to understand the original term, because so far 99% of the threads in this forum will be using that meaning.
The new platform operates differently, because now you run your own code elsewhere and then connect via the API.
It appears that when it came to naming things, they didn’t make a terminology distinction between
A) code which is used to format command requests to the controller for a cloud-connected device (the equivalent of a DTH on the original platform) and
B) code which is used to process control data (filters, event subscriptions, user-entered values, time of day, etc) and then request that commands be sent to SmartThings-controlled devices based on that data. (The equivalent of a smartapp on the old platform, except that on the old platform this code ran in the smartthings cloud and now most of it will run on your own server.)
So on the old platform, code that would format the “turn on“ message for a specific model light switch would be in a DTH. Code that would subscribe to the event of “John arrives home” and then request that a selected switch should be turned on when he arrived would be in a smartapp.
Now they appear to have wrapped all of it under the term “smartapp” but with some additional stuff like the “cloud connector“ thrown in and some inconsistencies throughout the documentation in how the various terms are used.
But I did just want to make sure that you understood the original use of the term “smartapp“ because otherwise the rest of this forum is going to be very confusing to you. ![]()