Groovy is on the way out Smartthings Edge is the replacement

You had me right up to CLI…

heheh… nah, I guess I’m just going to have to give it another go. I had a few install issues on my first go with it, but I’ll get it going.


(Cross posting from the official announcement thread)

Wow! Vera (now Ezlo) has been using Lua for home automation since 2010. It’s lightweight, fast, and pretty easy to learn if you know other if/then scripting languages.

Here’s a good one page top level beginner’s guide to Lua for programmers, comparing it to Java and Python.

It will definitely look like coding to non programmers, but so does Groovy and Webcore.

This is an intriguing step. :sunglasses:

One very good thing: if I’m read this correctly, it should provide a path for companies like Zooz and Inovelli (and Aeotec) to provide the custom drivers for their zwave devices. Once they’re rewritten as Edge Drivers, of course. I’m not quite sure how it would work for @rboy ‘s code, though.

And I don’t know what’s going to happen to all the Tuya Zigbee devices using their proprietary clusters, but rebranded and firmware modified by different companies, that could be a mess. :thinking:

Anyway, interesting for sure.

edited to update

an expert has informed me that since an edge driver can handle multiple hardware variants and the parent/child construct will be replaced by component definitions in the original edge driver, situations like the Tuya proprietary cluster can be handled in a pretty straightforward manner. Which is good news. :sunglasses:


The CLI install has been streamlined. You can install it directly from NPM if you already have that on your workstation.

Once you have the CLI and a driver you can have a device installed in less than ten minutes.

1 Like

How do we know if we are using groovy or lua?

That’s the make or break thing for me.

Yes, the channels seem like quite an interesting solution. The drivers aren’t what I’d anticipated (I was expecting a lot less code) but I guess are a pragmatic solution, particularly the LAN drivers.

You mean as a user with devices? For the most part you don’t know. At the moment, you’d know because you’d have opted into a channel: Preview | SmartThings-managed Edge Device Drivers

At the moment, you can go into graph and look at you list of devices and if the DTH is listed as “placeholder” it’s a Driver. You can also use the CLI, smartthings devices will show the package key of a driver. In the app [Edit: Android only ATM, the iOS release got delayed] you can also click the ... on the device card and there’ll be a “Driver” item that will show you which driver for a lua driver based integration.

Though, for the most part, when interacting with a device, you shouldn’t see any difference.


Ok thanks this is what is was asking.

1 Like

The interesting thing is that I ran smartthings edge:drivers out of curiosity and ten things popped up. All were custom DTHs I’d used in the past, mostly very briefly, and since deleted. Don’t know where they were dug up from.

That’s sounds really weird, Graham. Some sort of caching glitch maybe?

Yes, I can safely say I wasn’t expecting to see those ever again, and certainly not masquerading as Edge drivers.

I am now deciding whether to bother to look at Lua, or to just give up and just beat the **** out of my ST hubs with a club hammer and find something more sensible to do with my time. The advantages of the latter are that I already have a club hammer.


Someone may want to update the thread title. Instead of groovy is out which might be construed as immediately out by some. Perhaps something like groovy is on the way out

1 Like

@jkp Sure i ll fix it now.


I hope you don’t split Graham, at least not for long, if you do.

I was already imagining myself asking you some questions about how to take an alternate route (other than the documented) with this Edge/Lua stuff. Thinking you’d be the one that would be doing it.

1 Like

One significant known limitation I think deserves being called out anywhere people might be thinking about playing around with this right now:

  • Driver-based devices do not work with Groovy SmartApps, including SmartLighting. Drivers do support Rules as automatons in the App or via the API, or Endpoint Apps.

SmartThings Edge Developer Beta | Known Issues and Bug Tracking


Thanks for letting us know about this.

1 Like

If this new language and development direction makes life easier for developers

Please can someone take pity on us Fibaro RGBW 441 and 442 users and develop a driver so we don’t loose them… pleeeeease


Hey @orangebucket, if you feel comfortable posting your account username/email or one of the driverIds of the DTH here or sending me a private message with the info. I can take a look at what’s causing those old DTHs to be returned for you.

1 Like

Finally local drivers!! (YASSSSS) [Sorry, I had to be happy]

Looking at the examples at SmartThingsEdgeDrivers and the tutorial from @jody.albritton with the different yaml profiles for zigbee devices, I cannot find a case of parent/child.

How would the Lua-based drivers would handle this types of devices? (gang switches, power boards, non-standard zigbee devices, etc.)

I did read the comment by @JDRoberts that it might be via component definitions, but would love to see an example. (Yes, I’ve started coding furiously :stuck_out_tongue: )

I really hope that SmartThings/Aeotec doesn’t forget to do the drivers for their hybrid hardware devices, they definitely did with their AU/NZ smart outlet (GP-WOU019BBEWA, no local exec in the groovy one, as it uses the generic zigbee power outlet, instead of the smartpower one)


Hey, @Chares

This will be addressed through endpoint/component association.

For a better reference, check the Multi-Component devices section from the Zigbee-specific documentation.


Nowhere else to go. I don’t even need ST really, it is largely just a diversion.

I’d just been desperately hoping for Zigbee (and Z-Wave though I’ve rejected that) drivers to be more specific to devices and largely declarative. On the LAN side I was hoping for simple HTTP call support with everything else farmed out via a simple API. Sort of LAN2Hub rather than C2C. It just seemed more in the spirit of the current SmartThings.

1 Like