Hi all, I am looking for developers for building edge drivers for our product. If anyone is interested, do let me know to discuss further. Thank you.
Hi Satish,
If you are still on the lookout to hire someone, I would be glad to help you out as what you are wanting done is within my skillset
You can reach out to me on my email here
Colin
Edge drivers for which protocol? Several of the more expert community developers do specialize as the payload content varies significantly.
Thank you, Colin! I sent you an email with further details, appreciate if you can review and get back.
Regards
Sathish
Hi Robert,
Thank you for the note!
Edge drivers required for Zigbee, ZWave & WiFi devices. At a high level, the requirement is for a cloud service to send commands/receive events to/from locks. Though cloud services from device manufacturers could be used for this, our need is to standardize on Smartthings as the common layer against the standard protocols. Do let me now if this detail is sufficient.
Thank you.
Regards
Sathish
That does not sound to me like edge drivers: it sounds to me like an endpoint smartapp. But perhaps I am misunderstanding.
Edge drivers run on a SmartThings hub and allow that hub to communicate directly with a local device, in this case, a lock. So that is very similar to how a printer driver works. It is just translating commands between the hub and the lock. Everything is happening within the SmartThings platform.
Edge drivers themselves run on a SmartThings hub.
Typically custom edge drivers are requested by the device manufacturers, that is, the company that physically builds the lock, so that their lock can communicate with a SmartThings hub. Is that the situation you are in? If so, then, yes, you would need edge drivers so that your Lock could communicate with the SmartThings platform.
Endpoint smartapps are so that websites or apps outside of the SmartThings platform Can make requests of the SmartThings cloud to get device status or to change a device status. Examples might include a dashboard app, a multifamily residential building manager app, an energy monitoring app, an Airbnb host services app, etc. These companies do not physically build the devices. Instead, they provide information services for people who have devices on the SmartThings platform. So they need to pass information to and from a customer’s SmartThings account. This is sort of similar to MQTT, But with a broader range of status features.
Endpoint Smartapps run outside of the SmartThings platform. They might be hosted on a physical server device like a raspberry pi or at a cloud service like Amazon web services. Samsung does not provide the hosting for these: the company or the individual customer has to arrange for that. The hosting mechanism is where the company typically introduces a membership or subscription feature if they want to do that.
Here’s the current official schema:
And here I have marked the environments for edge drivers (which run on a SmartThings hub) and endpoint smartapps (which are hosted outside of the SmartThings platform, and communicate with the SmartThings cloud through an API endpoint).
So… Are you the manufacturer of physical lock devices and you are looking for a developer to create the edge driver that would allow a SmartThings hub to communicate to that device within the SmartThings platform?
Or are you a services provider and you are looking for a developer to create an endpoint smartapp to communicate with the smartthings cloud to get information from, and make requests of, the end customer’s SmartThings account, so that you can aggregate that information and provide some kind of wraparound service to the end customer outside of the SmartThings platform?
Hi Robert,
Thank you for the detailed explanation, highly appreciate it.
We are a service provider looking to aggregate information of devices in the Smartthings customer account through a cloud app.
As I am new to this integration, perhaps my understanding is limited. Let me try to rephrase the requirement within the context of the information you provided. In the official schema, I see all the data from the devices end up in Smartthings cloud. Let’s take an example of a Yale lock connected to Smartthings hub. My supposition is that Yale has built an edge driver that runs on Smartthings hub thereby exposing the lock status / operations through the Smarttthings API on the Smartthings cloud. Does this include real-time events, say an user unlocks the lock, would I be able to subscribe to this event and receive it through a Smartthings webhook (does Smartthings have webhooks?)? I understand from my research in Smartthings community topics is that events are not available out of the box and custom drivers (DTH) are required to achieve this. I suppose that the drivers can still only reach to a server in the LAN, which then has to channel the communication to a cloud server.
Let me know if my understanding is correct.
Thank you
Regards
Sathish
Your understanding is essentially correct, the terminology is a little different.
SmartThings went through a major major architecture change in 2023. DTHs is are part of the old architecture and are no longer used. (Except that Samsung, being Samsung, does sometimes use the term “device handler“ in a completely different context than the old device type handlers. But that’s a different topic.) Their replacement is edge drivers. Again, edge drivers run on the SmartThings hub and enable communication between that hub and the home automation device on the premises.
You can use Webhooks with SmartThings through the cloud API. That goes to a particular endpoint. It’s the same way you can create an MQTT integration and similar to the way endpoint smartapps work, although I believe they actually hit a slightly different endpoint within the SmartThings API.
Endpoint smart apps can subscribe to events within SmartThings, so, yes, your app can get a Message when, say, a device state changes. And you can send a request to change the state.
Authorization is handled through a typical oauth 2 function.
So it all ends up working very similar to the way that a voice assistant communicates with smartthings. The customer authorizes the two accounts to talk to each other, and then information gets passed back-and-forth as needed.
That’s all happening through an endpoint smart app, not an edge driver. The edge driver is within the SmartThings platform. The endpoint Smartapp is outside of the SmartThings platform and is communicating through the SmartThings API. Very similar to API set ups on other home automation platforms, such as Lutron.
So what you are looking for is a developer to write a custom endpoint Smartapp for you.
This smartapp can be in any language you like, and hosted anywhere you like: the integration to smartthings is through the SmartThings API, similar to Webhooks.
One place where your understanding is a little bit off… Look at the schema again. Do you notice that the SmartThings mobile app always communicates through the SmartThings cloud? (Upper right of the diagram.) There is no direct connection between the mobile app and the hub. This is true even if both are connected to the same Wi-Fi network. All mobile app communications go through the ST cloud.
.
For this reason, every event which occurs locally is communicated to the SmartThings cloud, so that the mobile app can update its information. So a customer’s SmartThings account already has a full history of every event. While primarily used to update the states in the official SmartThings mobile app, it is also available for subscription to external endpoint smartapps.
A further note…
Under the pre-2023 architecture, custom smartapps were hosted in the Samsung cloud, which was provided for free to anyone who had a SmartThings account. Lots of people wrote them.
With the new architecture, that hosting Option went away, and because you now have to provide your own hosting, there are only a few community developers even attempting to write endpoint smartapps.
I’m going to tag a couple of the ones who have done the most in this area, but there may be others as well who will respond. I don’t know who’s open to new projects, though.
Smartapps can create subscriptions that result in a post to the Smartapp when an event occurs (webhook call). This is all managed through the ST API and no local server is required on the network where the hub is located.
OK, I understand it better now, thank you for the explanation. Let me try to reach out to the developers that you tagged and others to check if anyone is available.
Thank you. I had seen this earlier, seems I missed the approach focusing on the edge drivers part.