SmartThings is in the middle of a transition to a completely new architecture, part of which is called Edge.
The Samsung-hosted free groovy cloud will gradually go away beginning on September 30, 2022. For hub-connected devices, including Zwave and Zigbee, the DTH replacement will be Edge Drivers, which are written in the Lua programming language and will run locally on your own hub.
IF YOU ARE NEW TO SMARTTHINGS
If you are new to SmartThings, the basics of the SmartThings architecture are pretty simple:
A) An âEdge Driverâ is code that runs on your SmartThings/Aeotec hub so the hub can talk directly to an individual device. If you donât have a hub, you can skip all the rest of this thread: it wonât apply to your setup.
B) If your device uses a âcloud to cloudâ integration where it talks to its own manufacturerâs cloud and that cloud sends messages to the SmartThings cloud, again this FAQ will not apply, so again you can skip all the rest of this thread. Some examples of this are Ring doorbells, Arlo cameras, and Google Nest products. These do use the 2023 architecture but they donât need Edge Drivers.
C. To use an Edge Driver, you have to get it loaded onto your own hub. Samsung supplies every customer who has a hub with a bunch of âstockâ Edge Drivers. These are automatically downloaded when you add the hub to your account. They also get automatically updated as needed when the hub gets a firmware update. đ
D. Sometimes you might want to use a âcustomâ edge driver created by the device manufacturer or another community member instead of the stock edge driver for that device. To use one of these you follow a link to a âchannelâ page where you can subscribe to individual custom edge drivers created by the author of that channel. Once you have subscribed to a driver, it will be automatically downloaded to your hub. You will also automatically get future updates to that edge driver.
E. Once the edge driver is downloaded to your hub, when you go to add a new device that needs that particular edge driver, it should automatically use it. You can also switch from one edge driver to another for zwave or Zigbee devices by going into the âdevice detailsâ for that device in the smartthings app. Just remember that you have to already have the edge Driver you want to switch to downloaded onto your hub. (While it is possible to switch between drivers by using the web interface at my.smartthings.com/advanced , that appears to just sync up the change to be implemented later, probably on a time cycle. If instead you make the change in the smartthings app on your mobile device, it will take effect immediately.)
Caution: switching works fine for Z wave or directly-connected zigbee devices. In contrast, LAN devices typically exchange a security key when they are first added to your account and trying to switch to a new driver may make that device non-functional. Devices in this category include the hue bridge and Sonos. If you are getting custom code for an LAN edge driver the author will usually give you instructions about how to switch your device to it, so youâll need to read those instructions carefully if your device is not using Z wave or directly-connected Zigbee. The community has put in a feature request to have the smartthings app changed so you wonât be allowed to try to switch an LAN device (since it isnât going to work anyway), but that hasnât happened yet.
F. If you want to find detailed information about your smartthings account which is not available in the app there are two good places to look.
SmartThings provides an official account web interface for the new architecture at my.SmartThings.com
In July 2023 they added an âadvanced usersâ page with more technical details:
https://my.smartthings.com/advanced
There is also a community-created project called âAPI BROWSER PLUSâ which is a web interface that can give you even more of the technical details about your account like all the edge drivers you have installed on your hub. Hereâs the thread about that:
SmartThings API Browser+ ... Now Available to All
Summary for New SmartThings Users
So thatâs it for the basic information on Edge Drivers! SmartThings uses âEdge Driversâ so a SmartThings/Aeotec hub can talk to a specific device. Samsung provides stock Edge Drivers which are automatically loaded Whenever you add a new hub to your smartthings account and will be automatically updated and used from then on.
Some customers may want to use custom edge drivers in order to get access to additional features of a device which are not available through the stock edge driver. To use a custom edge driver you follow a link to subscribe to the authorâs channel and then select the individual edge drivers you want to have downloaded to your own hub. Once you have selected the one you want, it will also be automatically downloaded and updated. You might have to manually switch your device from the stock edge driver to the custom edge driver, but once you have downloaded the custom edge driver you can do the switch in the smartthings app just by picking from a list of available edge Drivers for that device.
If you donât have a SmartThings/Aeotec hub or you donât plan to use any custom code and you arenât interested in the technical details of the smartthings Architecture, you can probably skip all the rest of this thread.
If you are a power user, you are planning to use custom code, or you just like to read about the internal details of how the system works, the rest of this thread is for you.
POWER USER EDGE FAQ BEGINS HERE
- Here are the official announcements:
Announcement | Changes to our Legacy SmartThings Platform
Announcement | SmartThings Edge for Devices and Automations
December 2022 update announcement on progress of the migration
Update to SmartThings Groovy Transition
Official transition FAQ:
https://support.smartthings.com/hc/en-us/articles/9339624925204
List of stock edge drivers which hav been put into production:
Groovy to Edge Device Migration List
Official timeline for what gets shut off when:
The End of Groovy Has Arrived - #765 by SmartThings
And here is a thread on which hub models will work with Edge:
Smartthings Edge and code/hw requirements
And on December 27, smartthings added a new thread, which lists which models have been migrated:
Some of your devices may be automatically transitioned to stock edge drivers as this rollout takes place.
2. Using a custom edge driver
You can find a list of community-created Edge Drivers in the quick browse lists in the community-created wiki. You are limited to a total of 50 Edge Drivers per hub, but many handle many different models in one Edge Driver.
https://thingsthataresmart.wiki/index.php?title=Quick_Browse_Lists_for_Edge_Drivers
To use a custom Edge Driver, you have to subscribe to the authorâs channel, which means following a weblink they will give you. That will take you to a webpage that SmartThings hosts where you can select which specific drivers you want downloaded to your hub. If you have more than one hub, you will be able to specify which one you want to use.
It can then take a little time for the driver to be downloaded to your own hub (in some cases as much as 12 hours has been reported), but it usually happens within a few minutes.
Once it is on your hub, you can add a device of that model to your account by using the âscan nearbyâ option in the ST app and it should automatically use the driver that matches its âfingerprint.â The device should then show up in your app either under âno room assignedâ or in the same room as your hub.
@Terri_Baker has an excellent post that details the complete process for getting a new Edge Driver on your hub. Or removing one you donât want anymore.
Note that during the transition phase while both architectures are still running There are a bunch of extra steps you have to take in order to switch from using a groovy DTH to using a custom edge driver. The exact steps are detailed in post 3 below.
3. How To tell if your device has a driver already available on your hub
If no driver is listed that just means you donât already have one on your hub. you may still be able to find a custom driver and download that.
Switching between available drivers
If your device uses zigbee or zwave, you will be able to switch from one of the listed drivers to another just by selecting it on the list.
However, if your device uses LAN communications, like the hue bridge, and you try to use the device details list of drivers to switch between available drivers, your integration will break, and your device will become uncontrollable, because these kinds of devices require some security information which is only available when the devices first connected to your smartthings account.
There have been community requests to support that the app be updated to not allow for a driver change if it would break the integration, but this has not been done yet, and right now you can get yourself in trouble.
It appears that the only way to fix it once this problem occurs is to remove the device from your smartthings account, remove all the matching drivers except the one you want to use, and then re-add the device. But thatâs a lot of work and also requires updating all your routines and automations.
Hopefully not too many people will run into this issue as there are very few LAN devices that have drivers right now, but itâs definitely something to be aware of.
How to see which custom driver channels your hub is subscribed to
To see which custom driver channels you are subscribed to, go to
your hub device page in the mobile app, tap the upper right menu and choose Drivers.
To see which Devices are using each driver on your hub
4. IDE Information will be incomplete for devices using Edge Drivers
Note that the IDE will be going away when the groovy cloud goes away, and it has not been updated to deal with non-groovy code, so all the edge drivers will show up just as âplaceholderâ and if you try to make changes to them through the IDE you can break communications with the device.
The following thread may also be helpful:
Life after the IDE: Questions and Answers
5. Questions about a specific edge driver
If you have any questions about a specific edge driver, ask in the author thread for that channel.
6. The future for groovy
And, yes, this means that all groovy DTHs, stock and custom, will stop working once the transition is complete. SmartThings says they are working on a method to automatically transition everyone if there is an Edge Driver with a matching fingerprint, but if you are using a custom DTH that might lose you some features unless you can find a custom Edge Driver with feature parity. But this is just something youâll have to research model by model.
7. More tools
The following thread discusses how to use the CLI to get device information in the new architecture and how to set up a development environment if you want to write your own edge driver.
The CLI is a programmerâs tool and requires that you have a laptop.
If youâre looking for something more like the old IDE, a webpage with details about your account that doesnât require getting into code, a community member has created a webpage for the new API which helps fill that gap. (The topic title is a clickable link.)
8. A note about âfingerprintsâ
You will see a lot of discussion of âfingerprintsâ with respect to edge drivers. A âfingerprintâ is the smartthingsâ term for a numeric code representing the manufacturer and model number of a device. Zigbee and zwave Devices will send this information to the hub at the time that they join the network for the first time.
Some smartthings documentation and third-party apps Will call this The âmanufacturing code.â Itâs the same thing.
If all you need is the fingerprint for an individual model, you can skip the rest of this section, and just use the new âadvancedâ section of the official web interface:
https://my.SmartThings.com/advanced
If youâd like to know more details, or get more information, the rest of this section goes into that.
@jds13 had a very good post on the details
There are several different ways to find a deviceâs fingerprint without using the IDE:
The most popular method at the time of this posting was probably the API browser plus webpage. It gives a very nice view of device details, including the fingerprints. The following image was posted by @h0ckeysk8er in another thread:
But if you are already using the CLI for other things, you may prefer to use that directly. Itâs up to you.
9. a note about edge driver integrity
The old smartthings architecture was unusual in that you could look at every line of custom groovy code that was going to run on your account. But of course thatâs not how most apps work. If you download something from the Google playstore, you donât really have any idea what the code does and you are not typically given a means to look at it.
Custom edge drivers are more similar to google play store apps in that regard.
edge drivers run on your own hub.
In order to get them onto your hub, you have to download them from a âchannelâ which is in the smartthings cloud.
In order to do that download, you will follow a link that the channel owner gives you that takes you to a webpage which is accessing the smartthings cloud.
You sign into your SmartThings account on that webpage.
It then displays the channel details. You can subscribe to the channel and then select individual drivers that you want to have downloaded to your hub. ( the download process can reportedly take as much as 12 hours, but itâs usually pretty quick.)
Once the driver has been downloaded to your hub, you will be able to see its presence through the smartthings app.
In order for a developer to get a channel in the smartthings cloud, they have to go through some paperwork and sign up. But itâs not like an app in the Apple store: they are not required to have the code reviewed for malicious intent before it becomes publicly available.
So at no point does the code have to be available for the end userâs inspection. And even if there is code in GitHub that the channel owner says is what will be downloaded to your hub, thereâs no guarantee that it will be the same.
Which is pretty much the same as apps on the Google playstore, if I understand that process. There are promises, but no guarantees that the promises will be kept.
There is a thread in the developer section of this forum which discusses these issues in detail if you are interested in that.
Note that a lot of community developers welcome this change, because it allows them to charge a license fee for their work Without concern that someone will get a copy and then just share it around.
10. OK, thatâs edge drivers. What about groovy smartapps, including webcore? Are those being shut off, too? Are there edge smartapps?
Yes, all custom Groovy cloud that runs in the SmartThings cloud will be shut off, including Webcore. And, no, there are no edge smartapps. Thatâs because we as customers are not allowed to add anything to the hub except edge drivers.
The official announcement says that the shut off will occur during the week of January 16, 2023.
11. WaitâŠwhat? So how do I replace my custom smartapps?
The short answer is you can still write your own customs smartapps, even in Groovy, but you have to host them yourself, either at a hosting service or on a local server. The smartapp will then communicate with the SmartThings cloud through a REST API. (There is no option for a smartapp to communicate directly with an ST hub, so the new architecture for SmartApps is very similar to the old groovy cloud architecture in that regard. Your smartapp basically requests the cloud to talk to the hub for you.)
And, yes, thatâs a lot more work and potentially money.
Noncoders May prefer to use other prebuilt alternatives. One of the most popular is SharpTools. It has a very user-friendly visual interface that runs in any browser. More powerful than the routines built into the SmartThings app, although not as powerful as Webcore (yet). Thereâs a free tier that may be all you need, or a pro tier for $30/year. And a free trial. So if youâre not a programmer, itâs worth a look.
There are other options, too. See the following discussion thread:
Replace Groovy with Automationsâwhatâs your plan?
Just remember that when it comes to smartapps, you are usually talking about âautomations,â not âEdge.â