SmartThings Groovy Update

As you may be aware, SmartThings plans to eventually shut down their legacy Groovy platform completely. To this end, SmartThings has been working to enhance their ‘next generation’ platform by introducing new solutions like Edge Drivers and enhanced APIs.

What about SharpTools?

Our current SmartThings integration uses Groovy, so we’ve been doing our part (behind the scenes) to build out a next generation integration with SmartThings that uses the ‘new’ APIs. We’ve been testing this integration internally for months and rolled it out to a small beta group just over a month ago.

As of today, we’re opening this up to the broader SharpTools beta community for testing. If you’d like to join the beta, see the following post:

:link: Next Generation SmartThings Beta

At some point in the future, we will make the next generation connection the default and will remove the ability to create new connections using the legacy integration. For anyone who has existing connections, those will continue to operate as expected and once (SharpTools) migration tools are in place we’ll start encouraging a switch to the next generation connection. This will ensure that new users get a smooth experience while existing users are given time to migrate to the new platform.

What about Migrations?

SmartThings

For migrations within the SmartThings platform, I would keep an eye out on the Announcements category in the SmartThings community. SmartThings has been building out new Edge drivers to replace many of the core ‘Device Type Handlers’ that were used in the Groovy platform. They’ve rolled many of these out to production already which means that a variety of Z-wave, Zigbee, and LAN devices will already use the new platform if you reonboard a device… and if you’re part of the SmartThings Hub Betas, you may have already had some devices migrated for you.

With these efforts, we can only surmise that SmartThings plans to automatically migrate as many devices as possible to Edge drivers. That being said, you’ll note one key caveat in their post: custom DTHs won’t be migrated

While this isn’t an immediate concern with respect to the SharpTools integration, you may want to start thinking about what devices you have with custom DTHs and what transition options you have for when the Groovy platform is completely shutdown. The SmartThings community has started really engaging with Edge Drivers and we’re seeing lots of cool drivers created!

SharpTools

The next generation integration is considered it’s own connection / location from the SharpTools platform perspective, so we’re working on migration tools as well. And since it’s a separate connection, that means you can connect the next-generation integration side-by-side your existing connection and start trying things without impacting your existing setup.

We’re actively working on migration tools and already have an internal proof-of-concept for migrating dashboard content from one platform to the other. We’re still working on tools for migrating rules, but in the meantime have introduced improvements around device selections so it’s easier to manually update your rules to use the next generation integration if you’d like to.

4 Likes

Thank you for the post - do you know if this will impact Hubitat integration in any way?

2 Likes

There’s no impact to the Hubitat integration.

Groovy, the language, is still alive and well. This was a choice by SmartThings to drop support for running third party SmartApps and Device Handlers in their cloud. I suspect it was quite expensive for them to run all this third-party code (some of which could be poorly written an impact the platform as a whole). For SmartApps, they’ve moved to an API first model where they better control how apps interact with their platform. For Device Handlers, they’ve been moving to ‘Edge Drivers’ which are Lua code which runs directly on their hub (and API connected devices).

Hubitat, on the other hand, has been all in on Groovy and hasn’t indicated any concerns over that choice. It’s quite a different architecture where everything runs locally on the hub though, so even if someone installs a community app/driver that is poorly written, it only impacts that one person’s hub.

1 Like

Any idea how this might impact virtual/simulated devices?

That’s not completely clear yet. We’ll have to wait until SmartThings reveals if they will automatically be transitioned from the current Groovy DTHs to Edge drivers. There was just a commit to the SmartThings official Edge driver repo the other day for a virtual switch so some of the community members are hopeful that SmartThings will automatically transition them.

Worst case, you could manually recreate virtual switches with their Edge driver equivalents.

Thanks Josh - appreciated