The Basics: Zigbee Profiles
To begin with, it will help to understand a little more about zigbee profiles. Here’s the FAQ for that. (This is a clickable link.)
So you are going to want to look for devices that are certified that use the “zigbee home automation” profile, or ZHA.
Finding ZHA-certified Products
This search can be challenging if you are talking to Chinese companies, because there is often a translation issue. They will assume that since their device is created for home automation and since it uses zigbee that it is a “zigbee home automation” device, so if you write and ask them if they are certified for that, they will often say yes when they are not. And unfortunately, the zigbee alliance does not keep their List of certified products updated the way the Z wave alliance does. There is a list, but it can be 18 months out of date, so you won’t necessarily see a product there even if it does have a certification.
http://www.zigbee.org/zigbee-products-2/
And even really big companies may release products which don’t have certification. A very good example is Ikea’s new Tradfri Lighting line. It was supposed to be a ZLL line, but they never got it certified, and it does have quirks which is why it turns out it won’t work with the Phillips hue bridge right now and it has been tricky to get it to work with SmartThings, really coming down to the individual model and feature. It looks like they may have gotten one single model bulb certified, then started developing additional models, and didn’t stick strictly to the standard for those. Anyway, the point is that just being “zigbee” isn’t enough to be SmartThings-compatible
So you have two choices. Stick to products on the official compatibility list or that other community members have verified in the forums will work with SmartThings, or order the product from someplace with a good returns policy and try it yourself.
What if you’re the first person to try a new ZHA device with SmartThings? Will it work?
suppose you find a new ZHA device that looks great, but it doesn’t look like anyone else has tried it yet and it doesn’t have its own DTH. Now what?
The Zigbee Fingerprint
Z wave devices identify themselves by their device class, like a motion sensor or a dimmable light.
Zigbee devices go further: each model has its own unique “fingerprint.” This is very helpful for closed systems where the devices come in a package set and the equivalent of the device type handlers are distributed with the hub.
(It’s not an accident that Amazon’s echo’s new “smart setup” works with zigbee devices (specifically the ZHA devices in 4 device classes: bulbs, switches, outlets, and locks) and doesn’t work with Z wave.)
Unfortunately, it also means that if the hub isn’t preloaded with a device’s fingerprint, it doesn’t really know what to do with it. Unlike zwave where any new light switch will be matched with the “generic Z wave light switch” because of its device class, zigbee just identifies a device with an unknown fingerprint as a “thing.” And stops there.
SmartThings is unusual in that it will go ahead and add the “thing” to your zigbee network and then it is up to you to find the right device type handler for it. Many other home automation controllers will just refuse to join with an unknown device.
This is a Thing. Is it like another device that does have a recognized fingerprint?
So now you have to manually assign a DTH to your new device. By far the easiest way is if it can use the existing DTH for a different brand/model. Or one of the generic DTH’s.
If all you need is basic on/off/dim, you can just start trying some of the other DTH’s. Once a device has joined the network, even just as a “thing,” it’s easy to assign it to a specific DTH just by going into your account in the IDE and picking a different DTH from the list.
For example, if it’s a zigbee plug in module, there are a couple of different generic switch DTHs you might try.
When you manually change the DTH in this fashion, it won’t matter to the network that the fingerprint is unknown. It will take your word for it that that’s the right Device type handler for that particular individual device.
You could also try the brand-name DTH for a different brand/model if you think they are likely to have similar features.
It doesn’t hurt anything to try a different DTH. It will either work or it won’t work depending on whether your device recognizes the commands being sent to it.
If using one of the existing DTHs didn’t work, you’ll have to decide whether you want to return the device for trying to create your own custom DTH for it. But more about that later.
if you’re not the first person to try this device, what about Using Someone Else’s DTH?
Of course, it may be that you’re not the first person to try this device with SmartThings. If so, there may already be a custom DTH that includes this device’s fingerprint. So how do you find that?
There’s a lot of great information and many very helpful people in this forum, but the truth is, the search feature just isn’t very helpful.
Fortunately, there are quick browse lists in the community – created wiki that make it pretty fast and easy to find code of a specific type, including custom DTHs. So if you have that plug-in module, you can go to the wiki, look in the quick browse list section for DTH is, and check the “pocket socket” list to see if anyone has already created a DTH for your new device.
If they have, it’s pretty straightforward. You’re basically going to copy their code and paste it into your own account. Use the FAQ for that.
Also make sure you read the author’s thread carefully that was linked to from the quick browse list as there may be tips and tricks for getting that specific device to work.
what if none of the existing DTHs work with your device and no one seems to have written a custom version yet? Is there anything else you can do?
Again, provided this is in fact a certified ZHA device and not part of some proprietary system, you can try creating your own DTH. This usually means looking at the live logs as messages are sent back-and-forth from the device and trying to figure out just what messages this device is expecting. There are lots of people in the forum who will be glad to help you with this, but it can be a fairly tedious process and you have to be comfortable pouring over pages of numeric codes. There are definitely some non-programmers in the community who have done it when they were highly motivated to get a particular device working, but there are also a lot of people just stop if they get this far and I haven’t been able to find any existing DTH that works with the new device. So that’s up to you.
If you do want to go on and try to create a brand new DTH, see the following:
But there many people who won’t even order a new zigbee device unless they verified in the community that there’s already a working DTH for it. It’s up to you whether you want to get into the issue of new code or not.
Summary
So these are the steps:
-
research available devices to find ones which are certified for the “zigbee home automation” profile.
-
check the official “works with SmartThings” compatibility list and the community – created wiki DTH lists to see if a DTH already exists for that device or not.
-
if no DTH exists, you can go ahead and order the device and see if it will work with one of the existing DTHs for a similar device.
-
if The new device doesn’t work with any of the existing DTHs, then you have to decide whether you want to try to write your own or just return the device.
And again, a lot of people only do the first two steps. If there isn’t already an existing DTH, they don’t even try that device. Just remember that being zigbee isn’t enough – – do you want devices that use the ZHA profile.
I know that’s a really long answer, I hope the information is helpful.