Goodbye, Groovy
For over three years now, the SmartThings team has been working to transition every piece of their platform from what it was when Samsung acquired them in 2014. This includes hardware, mobile apps, and now, finally, the development environment. Samsung aims to modernize the platform and combine all of its IoT offerings in one place for its over 62 million users. At the end of September 2022, the SmartThings team will start migrating services off its legacy Groovy-language-based development environment. Then it will stop functioning at all on December 31. This is right on time for the arrival of the new Matter standard at the end of the year, which Samsung has been a key part of. Here are the three key areas this retirement will affect and what SmartThings users can expect as a result:
Drivers replace Device Type Handlers
SmartThings’ legacy platform uses Groovy Device Type Handlers (DTHs) to translate data to and from devices connected to its platform. Samsung announced almost a year ago that they would replace these with Lua-based Edge Drivers for the LAN, Zigbee, and Z-wave devices that connect to SmartThings hubs. Consequently, the SmartThings team has been developing a set of Edge Drivers to replace these legacy handlers. Community developers have also been creating custom Edge Drivers that add advanced functionality power users are looking for. So far we’re impressed by what we see of SmartThings Edge.
Samsung will kick off an automatic migration process around the end of August to move devices from legacy handlers to Edge Drivers. For Z-wave and Zigbee devices, the migration to a default Edge Driver will be based on the fingerprint those devices expose to the SmartThings hub. If you use a community handler today for advanced functionality, try to find an equivalent community Edge Driver. Otherwise, you may lose some advanced functionality with a standard Edge Driver. You can manually re-add the device to use a custom Edge driver, or the migration will try to move the device to the custom driver before a standard driver.
If a device gets migrated to a driver with less functionality, it might be removed from Routines and Scenes. Any device that fails migration to an Edge Driver will show up as a “thing” and require a manual fix. There’s also a small set of devices that will have less functionality or not work at all. This includes 2015-16 Samsung TVs and older Samsung and D-link cameras.
SmartApps now use SmartThings API
SmartThings uses SmartApps to automate or connect to outside services. SmartThings provided some default SmartApps and community developers also created their own. In both cases, these were historically built in Groovy, and Samsung hosted the code in their AWS cloud. Going forward, SmartApps will use the SmartThings API. Samsung migrated some of the default SmartApps—like lock management and Smart Home Monitor—when they retired the classic SmartThings app. They will also migrate the popular Smart Lighting and Severe-Weather Alert SmartApps starting September 30th.
The new Smart Lighting app will utilize the Rules API so its automations run locally. Routines in the mobile app also use the Rules API in the background. Many of these will run locally now that all hub-connected devices will use SmartThings’ Edge Drivers.
Possible complications
Cloud-connected devices are a little…cloudy. It’s up to the manufacturer to develop new interfaces using SmartThings’ new cloud-connected API. Several cloud-connected devices like Ring, Rachio, and Arlo were automatically migrated to new API-based integrations. But several popular cloud-based products and services may stop working come December 31. This includes things like Life 360 and Logitech Harmony since their respective companies haven’t moved to the new API. Some popular community-created cloud integrations might stop working, too, including for devices like MyQ. So plan ahead before December 31 if you’re using any of these in SmartThings.
If you’re using webCoRE, we recommend the following before September 30:
- Move what you can to Routines in the SmartThings app. Routines are one of our favorite tools in the new SmartThings app. They may even run locally if your devices are Z-Wave or Zigbee.
- For more complex autonomations that Routines can’t handle, check out SharpTools. It offers a complex rule builder that works with the new SmartThings architecture.
Plan ahead and check with the developer of your third-party SmartApps to see if they plan to update their integration before September 30.
Groovy IDE goes away
SmartThings has included an integrated development environment (IDE) for developers to create and test Groovy device handlers and SmartApps. It’s also been used by SmartThings power users. They used the IDE to “paste in” code for device handlers and SmartApp, view logs, create new location modes, and more. But this IDE is going away. On October 15th, adding new Groovy code and logging will be turned off. It will totally be shutdown at the end of December.
Thankfully, you can install Edge Drivers and new SmartApp integrations by simply clicking a link. You can also change the specific Edge Driver a device uses from the SmartThings app. But the future of the other functions is a lot more ambiguous. You can view the logs for edge devices using the SmartThings CLI, but a command line interface (CLI) can be overwhelming for non-developers.
Other functions of the Groovy IDE seem to be entirely missing in the future. A few weeks ago, one of Samsung SmartThings’ Groovy IDE sites started mysteriously redirecting to the beta my.smartthings.com. If you still want or need some of the missing features, the best route to make your voice heard may be to contact SmartThings support and (politely) request that they return those features.
Samsung’s retirement of the legacy SmartThings platforms has been a two-plus-year journey full of ups and downs. The new platform localizes devices and automations via SmartThings Edge and Rules API. But there may yet still be some bumps in the road at the end of September depending on which integration and devices you use. We hope retiring the legacy Groovy platform will allow the SmartThings team to shift its resources to more exciting features in the future, like Matter support and local features. If you’re a SmartThings user, strap in for the transition and share your questions with us below. For more details on the Groovy retirement, Samsung has also provided a FAQ site.
UPDATED 9/16/2022 to reflect new dates provided by Samsung