SmartThings Edge Driver Update
Today I am going to present information that I have been able to glean from my latest research about the progress of the conversion of SmartThings Drivers to SmartThings Edge architecture. I’ll provide you will a brief update about the SmartThings Edge Beta Program and the status of the Edge Driver Rollout. I will also talk about which drivers, AKA device handlers that are being converted and also comment about the device handlers may not be converted. I will show you how to check on the status of driver conversion, via a list on the GitHub website that displays converted device drivers as well as those drivers which are still a work in progress. I will also show you how to access a complete list of all current Edge Drivers and explain how to use the driver’s fingerprints to determine if the driver will work with your device. If you watch till the end of today’s episode you will get my recommendation about when to install SmartThings Edge Drivers. Should you install them now or should you wait?
If you want to convert a supported smart device to a locally executed Edge Driver, you must first verify that an Edge Driver is available for the device. More on that later. You then must delete the and reinstall the device using the ST App. When you view these reinstalled devices in your SmartThings Account under the ‘My Devices’ tab, you will see that the Device Type is named as a ‘placeholder’, (more about that later). You will also note that the ‘Execution Location’ is reported as the ‘Cloud’. Although the execution location is truly local, the execution location will be reported as ‘Cloud’ due to a temporary glitch in the IDE or ‘Integrated Development Environment’.
Now I am going to comment on the Edge Driver Beta program, but before I get into the status of the program, let me first explain the concept of SmartThings Edge for the benefit of those who may be hearing about this for the first time. SmartThings Edge is a new architecture for SmartThings Hub Connected devices. This new environment uses Edge Device Drivers to execute commands locally on SmartThings Hubs. Edge Drivers are Lua©-based and can be used for Hub Connected devices, including Zigbee, Z-Wave, and LAN protocols. The SmartThings developers are taking smart home events that are normally executed on the SmartThings Cloud and moving them to your SmartThings Hub. When the transition to Edge Drivers is complete, each Hub-Connected device will be defined by a driver package will include the fingerprints, components, preferences, and Lua source code for the device it is meant to control.
Currently SmartThings Edge is in Beta testing. During this Beta period, the developers are transitioning existing SmartThings Device Type Handlers (DTH) to Edge Drivers. If you wish to check Developer progress toward driver conversion, you can view a list of Groovy DTHs that have ether been competed, as well as those handlers which are scheduled to be converted to Edge drivers. You can assess that list by clicking the link that provided below in the description titled: DTH to Edge Migration
You should be aware that some of Custom Device Handlers may or may not be converted to Edge Drivers. So what is the difference between a Standard Device Handlers and Custom Device Handlers? Custom Device Handlers are device handlers that were written either by a device manufacture or a SmartThings Community Member. They are typically a variation of a standard Device Handler which was changed to enhance the capabilities of a particular smart device. The Developers have made it clear that they are only working to convert the standard DTH. They have also stated that it will be up to the creator of a particular Custom handler to convert it over to an Edge Driver to enable the device to work within the new SmartThings architecture. The Dome Siren is a Z-wave device that I have featured here on my channel. This siren will work fine with the standard built-in handler, which is the “Z-Wave Siren” DTH. However, with the standard device handler you get only a single siren. By installing the Custom Device Handler you get enhanced capabilities which include various siren sounds and multiple chimes, the ability to change sound and volume as well as battery monitoring capability. If the creator of the CDH is unwilling to update the handler to Edge, this device will merely function as single sound siren. By the way, I have contacted the author of the Dome Siren CDH and he has stated that he has written the driver, but he is still waiting for Dome to approve it and post it to their channel.
Standard Device Type Handlers which have already been converted to an Edge Driver are the device drivers that are assigned when you install a compatible device via the SmartThings App. As an example, if you have a SmartThings or Aeotec Motion sensor currently installed, you will note that these sensors are assigned the ‘SmartSense Motion Sensor’ DTH. If you uninstall your SmartThings or Aeotec sensor and reinstall it today, as I did with my SmartThings Motion sensor, it will be assigned the Zigbee Motion Sensor DTH. However, it will be display in the list under ‘My Devices’ as a device ‘Type’ called ‘placeholder’. This is because the current SmartThings IDE, integrated development environment, is still part of the old groovy based architecture. While under the old architecture, any device that is assigned is converted to an Edge Driver will be represented in the IDE with the ‘type’ designation of “placeholder”. It is my assumption that once the new architecture is established, the ‘placeholder’ name will change to new Edge Drive name. In the meantime, it is important that you do not change the device type. Changing it to a different device type may disable the integration process
How do you determine if an Edge Drive is available for your device(s). You identify a compatible edge driver by using the driver’s fingerprints. As an example, I am going to see if an Edge Driver is available for my Third Reality Motion Sensor. To do this you must identify the Product Name: Third Reality; the Model Number: 3RMS16BZ; the protocol used by the device: Zigbee; and the device type: Zigbee Motion Sensor. So now we have identified that the Third Reality device is a ‘Zigbee Motion Sensor’. With this knowledge we can then click the link provided in the description titled: SmartThings Edge Drivers and search in the list for ‘Zigbee Motion Sensor’. Once you find ‘Zigbee Motion Sensor’ you will click on it, and then click on ‘fingerprints.yml’. You then need to search the list of Zigbee Manufactures’ to see if the Product Name and Model Number of your device are in the list. If your device is listed then it will be able to function properly with the Edge Driver.
You might say to yourself, if converting to Edge Driver means that my switches, lights and sensors can operate without the internet, why shouldn’t I begin converting all of my devices to now?
Let me discuss why I think it may be a good idea to wait to convert your devices to Edge Drivers. The Short answer, to convert you must delete and reinstall each device you wish to convert. When you delete the device you will delete any associated routine in which that device is used. You then need to rewrite all routines associated with the device. If this does not give you concern, then by all mean convert your supported devices to Edge. However, it should be noted that the developers are hoping to convert all devices seamlessly, so that you do not need to go though the process of deleting and on boarding each device, and rewrite all of the associated routines.
If you would like to install Edge Drivers on a few devices while you wait, I’ll give you a couple of tips to help make the process less painful.
Assuming that an edge driver has been developed and is in place, you must first ensure that the driver provides all of the capabilities of your current device type handler. For example, the SmartThings motion sensor DTH reports temperature and battery status in addition to the detection of motion. Assuming that an Edge Driver exists and that it provides all the current capabilities of the current DTH, you then may want to proceed with the switch to an Edge Driver.
As mentioned previously, to switch the current DTH to an Edge Driver you must uninstall and then reinstall the device. However, before deleting your device you want to go into your SmartThings app, click on your device, and then click on ‘Routines’ at the bottom of the screen. Here you will see a list of all routines that are using this particular sensor. Since all of these routines will be deleted when you delete the device, you need to make some notes about them so that you can recreate them once you reinstall the device. You will also want to determine if the routine is using other devices that have not been converted to edge drivers. If you don’t convert every device used in the routine you will need to covert these other devices at some future point, which means that you will need to delete the device and recreate all associated routines. This is why I am recommending that you exercise patience and wait until your devices can be migrated to the new architecture, hopefully with minimal personal work of headaches.