Announcement | SmartThings Edge for Devices and Automations

Last year, we told you that we are transitioning to an API-first SmartThings Platform. As a part of this, we started investing deeply in improving stability and security. Today we are announcing the beta release of SmartThings Edge - a new architecture for Hubs that use Device Drivers and Rules to execute Hub Connected devices with lower latency, higher reliability, and… local execution.

What is SmartThings Edge?

We are taking smart home events that would have happened on the SmartThings Cloud and moving them to your SmartThings Hub. SmartThings Edge uses Lua© based Device Drivers and our Rules API to control and automate devices connected directly with a SmartThings Hub. This includes Zigbee, Z-Wave, and LAN devices as well as Automations triggered by timers and other Hub Connected devices using Drivers. In the future, this will expand to include more protocols and features, like the new Matter standard.

For customers, edge processing means reduced latency. For partners and developers, SmartThings Edge also brings new benefits, including reduced cloud costs, an improved device permissioning model, and the ability to deploy updates to their drivers. Local device support is open to everyone - not just WWST partners - enabling easier device support and integration with standard Capabilities.

Building Hub Connected Devices

Hub Connected Devices are defined by a Driver package that includes the Fingerprints, Components, Preferences, and Lua code files. As a WWST partner, you can create your own Driver package or add your device’s Fingerprint to our predefined supported Drivers.

Rules and Automations

As part of our June SmartThings app release, you may have noticed that some of your Automations show a little :house: icon. This means the Automation is using locally-executing Conditions and Actions - such as time of day. As your devices begin using Drivers and compatible Rules, they will begin running on your Hub - meaning higher reliability and faster response times.

Sharing and Distribution

Previously, sharing Device Type Handlers required end-users copy and paste the code for each individual DTH into their accounts. This could be confusing and time consuming for users to ensure they had the latest updates installed.

With SmartThings Edge, we are also introducing Driver Sharing for device testing and community distribution. OEMs can submit their Drivers to SmartThings for WWST Certification and distribution in the SmartThings Catalog. However, hobbyists can now share custom Devices with a simple link… no need to copy and paste code! To learn more, visit these Drivers

Getting Started

With this beta release, you can start testing features and providing us feedback before we start the platform migration. To get started, you need the latest version of the SmartThings app, a SmartThings Hub with firmware version 000.038.000XX or greater, and a Zigbee, Z-Wave, or LAN device.

Developers

We’ve created the following resources to help you get started:

Feel free to start a thread or reply to existing threads on the same topic if you have questions or feedback on building Edge drivers.

Customers

This first release is primarily targeted for developers and advanced users - there may be bugs. Edge Drivers downloaded from the Community are not supported for end users.

Once we work through the initial bugs and glitches, we will begin upgrading your devices from Device Type Handlers to Edge Drivers in phases. When we begin upgrading your device, the transition should be seamless; any associated Automations that can run locally will automatically transition to your Hub. We appreciate your patience while we ensure a great and seamless experience for all users.

Have feedback? Feel free to respond to one of our tutorials or create a new thread. Follow @SmartThings on Twitter and share your projects with us!

23 Likes

Was this why all of my SmartThings Hubs reported they were offline for almost 5 hours last night?

1 Like

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.

The following is a good one page top level description of Lua (for programmers), comparing it to both python and Java.

https://www.bmc.com/blogs/lua-programming-language/

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 reading 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:

8 Likes

You can check out an example driver using manufacturer specific clusters here: SampleDrivers/st-multipurpose-sensor at main · SmartThingsDevelopers/SampleDrivers · GitHub

4 Likes

Sorry, since I rely on a screen reader, I don’t read (listen to) code these days. In any language. :wink: I’ll have to wait for others to report back with analyses in English.

5 Likes

We are on it my man :slight_smile:

I got a glimpse from the guys at ST into how easy it is now to setup animated notifications in the new app using these drivers and it’s awesome.

@erocm1231 is working with the guys over there to make sure this rolls out ASAP.

Wish I could say more, but just know it’s going to be awesome and I’ve seen the demos of the Red Series switches in action!

17 Likes

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

3 Likes

Everyone with a Connect home/ Smartthings Wifi hub cries deeply. Maybe we’ll get to play sometime this year.

a SmartThings Hub with firmware version 000.038.000XX or greater

3 Likes

How is a quick copy-paste confusing??? I’ve just watched some of the ST video tutorials on creating new edge drivers and it is now beyond my abilities, with acronyms like CLI, NPM, jaml etc. bouncing about like I know what any of that is.

Point 2 on the CLI instructions have me stumped already:

Install it on your path and rename it to “smartthings”. It does not need administrator privileges but of course will need to be executable.

I used to be able to tweak dth’s to suit my needs, now I haven’t got a clue.

With github integration, updates were already simple, and only necessary anyway because ST keep breaking thing that previously worked.

I’m so glad the only devices I have left on ST are my Samsung freezer and ring doorbell, everything else is working perfectly on Hubitat now.

Even those don’t work properly:

  • For the freezer, I cannot use the door contact status to trigger automations (but I can in webcore) / not compatible with Home Care Wizard despite being less than 6 months old. The only thing available in automations is the setting temperature (not even the actual temperature). webcore can see over 20 capabilities that can be used to trigger things.
  • For the ring doorbell, I can’t use motion as a trigger for automations, (but I can in webcore)
3 Likes

Yes! I can not wait to play!
#local-execution #hub-first #offline-usecases #lua #rapboard #edge-device #edge #hashtag

11 Likes

Will this include a local API on the hub? I’m assuming that’s a pretty long shot but if so I’d be over the moon!

2 Likes

I’ve had SmartThings pretty much the entire time it’s been in existence so I take a look from time to time at posts here in the community. I must say that this one caught my eye and gave me cause to actually make a reply to the topic, which is something I haven’t felt compelled to do in a long time simply due to nothing but not being satisfied with the new SmartThings app and from changes made functionally well beyond the new app, it seemed becoming less and less reliable.

With that being said as at least my personal experience, I was made to then explore other options. So, I depend on SmarThings now less and less.

Although, surely I’m not the only somewhat early adopter of SmartThings that notices the irony in that essentially, Samsung has, in a roundabout way, just reinstated features that were available as promised on the original Kickstarter listing of SmartThings? Am, I?

6 Likes

I agree on this one, being that those “hubs” are 2.5 basically.
This is huge news none the less, That’s something that drove me away from this platform in favor of Apple HomeKit, All is left now is to have the hub connect directly to Apple’s eco system and thats a huge win for everyone, everywhere. (something that wont happen because apple’s strict rules)

1 Like

I know your frustration. You’ve got what you have paid for, a Samsung product with half baked, generalised integration in Samsung’s own in-house SmartThings app… Look at the Samsung Hob integration, search for some topics, and you will cry when you see how much that is basic without any understanding of home automation.

2 Likes

Pfft, I cant even automate a Samsung vacuum anymore (something that i was able to do when i first bought it back in 2018!!!)

2 Likes

So what is the migration process going to look like for existing handlers? Is there going to be a conversion tool?

2 Likes

It may happen with Matter for matter compliant devices. Samsung hasn’t published any details on what their matter support will look like, but Apple has published a lot, including the fact that other hubs will be able to join and their Matter-exposed devices can appear in the Home app. Which is very cool. :sunglasses:

1 Like

To be honest, this looks awesome, but I feel it is a bit late for many people who have jumped ships during the past year.

Anyhow, congratulations to the developer team, you have done it again, you put back SmartThings to the map of home automation systems with this improved local execution solution. I am curious to see a local API next for interoperability. (And a working Google Home integration without sharing all devices with the Voice Assistant :wink: )

Just few short questions,

Where is this solution standing regarding bindings and group associations? (Both Zigbee and Zwave…)

Is there an example how the IKEA motion sensors and 5 button remotes are working with this edge solution? (The group binding of these devices was an Achilles heel for their integration of missing local execution.)

Is there an example of the old presence sensors, as those were using undocumented manufacturer specific clusters and multiple endpoints as well for reporting and beep control?

7 Likes

The new APIs are very much so speaking the raw underlying protocols with some reasonable security restrictions based around our Permissions system along with a larger variety of helper methods for zigbee/z-wave generated based off specifications where applicable.

See Edge Device Driver Reference — SmartThings Edge Device Drivers documentation for the detailed API docs.

For both Zigbee and Z-Wave, our development teams put together a structure for configuring the drivers decoratively where possible but there is still the full power to drop down to do what needs to be done for more bespoke devices.

If you take a look at the drivers that have been released you can get a feel and when we are able to release more drivers, things will hopefully be easier to build off those additional examples. For something like the IKEA 5-button device, we need to do a little extra work during configure to build and send a ZDO Bind Request via st.zigbee.zdo.bind_request

Hopefully we’ll have one of the drivers using that feature released soon to share as a reference in addition to what can be found in the docs.

I believe we have working integrations for both of those devices and we will be making the source available as well as sharing the driver via beta in the coming days and weeks as devices go through rounds of internal testing. I believe these will be part of the “zigbee-button” and “zigbee-motion” category drivers that will eventually be present in https://github.com/SmartThingsCommunity/SmartThingsEdgeDrivers/tree/main/drivers/SmartThings

These haven’t been ported to the new engine yet as they are supported locally via the existing “Protocol Handlers” so they weren’t an early priority but these may be ones we move to support via drivers in the future.

2 Likes

Will the new edge drivers support zwave central scene commands or are these still going to be abstracted into some kind of button press paradigm?