“Device Integration Coding for Dummies” ? [2018 New Platform Nongroovy Edition]


#1

As of this writing (fall 2018) smartthings is in a transitional state, moving to a new app, new hub, and new development platform.

Custom device type handlers will no longer run in the smartthings groovy cloud. Instead, Developers will host their own apps and integrate with smartthings through a developer kit.

Below thanks to a link from @prjct92eh2 , A presentation from the 2018 Samsung developers conference:

https://m.youtube.com/watch?feature=youtu.be&v=kSk8UdSGpsg

And here is the link to the new platform developer documentation for smartapps and device integrations:

https://smartthings.developer.samsung.com/develop/guides/smartapps/basics.html

  • The SmartApp can either be an AWS Lambda function, or a WebHook endpoint with a RESTful API interface.

A directly connected device communicates directly with SmartThings Cloud
.
You can use one of the following platforms:
.

  • TizenRT is an RTOS-based lightweight platform. For more information, see here.
  • Tizen IoT supports any type of special-purpose IoT device based on the Linux kernel. For more information, see here.

There is also an option to use oauth to integrate with third-party apps. On the new platform, This requires Samsung approval.

https://smartthings.developer.samsung.com/develop/guides/oauth/oauth-integration.html

SmartThings uses OAuth2 for authentication. 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.

So a lot is changing, the process is still in flux, and not all the details are known yet.

There is a discussion thread going back to the initial 2017 announcement of the changes here:


Using code to drive my own Smarthings
Starting out in smart things?
Smartthings problems? Other options?
"Device Handler for Dummies"? Any suggestions for a newbie? [Groovy/Classic App Edition, 2017]
(Jimmy) #2

There are several SDC 2018 videos on that YouTube channel that are worth watching. SmartThings has really fleshed out cloud-to-cloud, direct to cloud and smart app development on the new platform. And once the dev is ready, they now have a streamlined process for getting your cloud-to-cloud or direct to cloud devices either Works With SmartThings certified or SmartThings compatible certified. The whole SDC video series regarding SmartThings is a good watch. Even the Bixby one (you can create automations by voice)

One thing they have yet to provide any detail on are hub connected devices (LAN, z-wave or zigbee) on the new platform.

The SmartThings Device Kit seems like the SmartThings equivalent of the Alexa Gadgets dev kit. May be fun for someone like @ogiewon to tinker with, too. Maybe a second version of SmartThings Anything?


(Dave Gutheinz) #3

My biggest concern: What happens to existing SmartThings handlers and applications. Will they carry forward into the future or will they die out automatically if not updated to the new paradigm?

Dave


(Jimmy) #4

I’m sure at some point groovy dev ow handlers and smartapps will stop working because at some point the groovy platform will be retired. But considering the new platform doesn’t even have a way of writing hub connected device handlers, that’s probably a ways off.


(Keith G) #5

The new SmartThings ecosystem will be based on an html/JavaScript/xml-based plugin architecture for devices, and although they say the new “SmartThings app uses a default plugin for IoT devices that simply use predefined capabilities with built-in UI widgets”, the use of the Developer Workspace is still required to integrate devices into SmartThings. To make a device created in the Developer Workspace available to all users, it needs to be published, and I only see reference to publishing devices as SmartThings-certified or SmartThings-compatible, both of which essentially require the developer to be the manufacturer / producer of the device.

So regardless of whether the use of the groovy language for device drivers is grandfathered or supplanted (likely by JavaScript), a larger concern should be how user community created device drivers, plugins (and smart apps) will be published or shared with other users.

Will we need to create a “fake” developer account to self publish, as people are doing with SmartThings-Alexa, SmartThings-Nest, etc. integrations?

That would just raise the bar to entry a little too high for many people, I believe.


(ActionTiles.com co-founder Terry @ActionTiles; GitHub: @cosmicpuppy) #6

Yes.

The new SmartThings platform is not intended to be the same as the “old” SmartThings platform.

A miniscule fraction of SmartThings Customers use the IDE at all, let alone actually paste in a custom (non-officially-certified-published) DTH or SmartApp.

The bar is being set high intentionally. SmartThings is not meant as self-publishing platform for average consumers. “many people” < 0.1% of the target market.