FAQ: I have no idea what Edge is. Is that a new developer tool? (2022)

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.

  1. Here are the official announcements:

Announcement | Changes to our Legacy SmartThings Platform

Announcement | SmartThings Edge for Devices and Automations

The End of Groovy Has Arrived

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

Groovy SmartApp Shutdown

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.

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 Driver.

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. :persevere:

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. :thinking:

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.

CLI: How to Install and Use

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 joined the network for the first time.

@jds13 had a very good post on the details

While we still have access to the IDE, that’s probably the fastest way, it will be listed with the device information.

There are several different ways to find a device’s fingerprint without using the IDE:

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. :thinking:

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.

Groovy SmartApp Shutdown

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.”

19 Likes

Yup, everyone just sit tight (no pun) and dont make any drastic moves like jumping to another platform as it just might have underlying hidden problems of its own.

HOW TO MANUALLY SWITCH FROM A CUSTOM GROOVY DTH TO A CUSTOM EDGE DRIVER DURING THE TRANSITION PHASE

The following gives the details for manually switching to a custom edge driver during this transition phase, while both architectures are still running.

Once the transition is fully complete, you won’t have to do this anymore: you will just subscribe to a custom edge driver, and then add a device in the regular way. All these extra steps are just because both architectures are currently running. This is why many people are just going to wait for the automatic migration, and then fix any issues that occur then. But if you do want to manually force a transition, here are the steps.

(if you are trying to manually transition from a custom groovy DTH to a stock edge driver, it’s all the same steps except you won’t have to do step five if the stock edge driver is already on your hub. If it isn’t already on your hub, you can’t force the transition to a stock edge driver right now.)

Right now, custom groovy device type handlers are still operational, so the priority sequence during this transition time gives them a higher priority than edge drivers.

That means that in order to manually transfer from a custom device type handler to an edge driver at the current time you must:

  1. If you have any routines that use the device, they may be deleted when you do the next steps in this process. :scream: So you have to manually change those to temporarily use a different device, or a virtual device, to keep the routines from being deleted.

  2. As @Terri_Baker noted in another thread, the following step is absolutely critical: make sure that the exact fingerprint of your device is included in the custom edge driver that you want to use. Not just the same model name. Not something close. But an exact match. If you are not sure, ask the author of the edge driver to confirm that your fingerprint is included.

  3. Delete the device from your account. (After you do this, check the IDE as well: some people have said they have to delete device in two places to make it work.)

  4. Delete the custom DTH from your account using the IDE. Note that you will not be able to get it back again, so be sure you want to do this. :thinking:

You can probably still get to the IDE on the day of 27 February 2023 at the following URL, but it is expected to go away soon. However, a lot of the functionality has been shut off. You can’t edit existing custom DTH‘s or add them, but you may be able to delete one or delete a device.

They keep changing the functionality without announcement, so I can’t promise what you’ll find when you get there, but this is what you can try.

https://graph.api.smartthings.com/

  1. Subscribe to the new custom edge driver. You do this by following a channel link that the author gives you and selecting the edge drivers that you want to have downloaded to your own hub. This normally only takes a few minutes, but it can take longer.

  2. Open the SmartThings app, go to the device tile for your hub, and check the drivers that you have installed. Make sure the new driver that you want is listed there before proceeding.

  3. If this is a physical Z wave or Zigbee device, Put your device into pairing mode. (see the user manual for instructions)

  4. now use the smartthings app to add a device using “scan nearby.” it should now pick up the custom edge driver.

  5. If you have more than one custom edge driver on your hub that matches the fingerprints of the device, it will randomly pick one. After that, go to the device in the app, select the three dot menu to open up “more“ choices, choose “driver“ and you will be able to switch to a different driver on your hub if you want to.

  6. Now go back into any of the routines that you had to change in step one and change them to use the correct device.

And if that seems like a lot of work, it is, which is why many people are just waiting for the automatic migration to happen.

Here’s a link to the official transition FAQ that explains the priority sequence during this transition time while both architectures are still operating.

9 Likes

It def seems like way to much work. I have about 8 devices left that have not been migrated. I’m not sure when the official migration period ends -says Q1 2023 (but who knows).

Most of the work is looking thru posts to confirm I have the right edge driver installed. I do use the API browser (LOVE this) to compare code, but IDK how to look at the driver installed to confirm its the correct one. I will look for the thread you mentioned. Thanks for the detailed instructions!

How do I download a stock edge driver? I’m adding a thermostat I previously had on the generic z-wave thermostat DTH, but it’s picking up a custom driver that I don’t want to use. When I try to change drivers I see no other option.

if you have subscribed to the ST Edge beta channel
 open the hub in the app, tap the 3 dots, select Driver and click on the ST beta channel and enroll the Driver you wish to use. But you need to check if the finger print of the device is supported by the Edge Driver you chose.

so you may want to post the brand/model/finder print and others can give you a better response.

and when you say “custom driver” is that an Edge Driver or Groovy? if custom groovy DTH, you would need to remove it in IDE before adding the device.

I mean edge driver. So it at least moved to edge vs picking up generic thermostat groovy DTH.

I’ll try the beta channel quickly. Will beta drivers be moved automatically to a production driver or will I have to exclude and re include again?

The fingerprint is below. It’s not in the production driver here (SmartThingsEdgeDrivers/drivers/SmartThings/zwave-thermostat at main · SmartThingsCommunity/SmartThingsEdgeDrivers · GitHub) but I see generic thermostats at the bottom of the fingerprint file, so I thought that might pick this up.

type:0806 mfr:009B prod:5354 model:5A31

You do not need to remove/add the device. after you enroll the Driver, open the device in the app, tap the 3 dots, select Driver and switch Drivers and select the one you enrolled.

I get that, but will I forever be on a beta driver? Or will that switch automatically to a production version at some point? Or will I be able to download the production one and switch to that?

I switched to the beta one and seems to be working.

1 Like

You might enjoy my answer → UNKNOWN.

I assume at some point they will remove the word Beta from their Edge Drivers (or will they?) :man_shrugging:

3 Likes

Got it thanks for the help. Guess will just take the plunge with the beta. Seems better than having the device potentially getting temporarily bricked in the transition.

If you experience issues with ST Edge Drivers, check around for Community developed Edge drivers.

1 Like