Make a ZigBee device discoverable

I have a question about how to make a ZigBee device discoverable by any hub or just Smartthings using IAR embedded workbench 8051 or some other software. For example: I have a ZigBee dev board programmed with IAR 8051 that is just powered, and then my Smartthings hub will see it as a device and that’s all. How would I accomplish such a task by programming? I’ve already tried the default Z-Stack Home 1.2.2 samples, so I’m wondering if there is any cold I need to change in the example SampleLight. Help is much obliged!

It’s not surprising that SmartThings detects it as a “Thing” because their drivers are set up to look for specific devices, and not work with any device that follows the HA 1.2 standard.

You can either force a device handler for your “Thing” directly (in the web GUI), in your case SampleLight would probably work with ZigBee Dimmer.

You can also write your own device handler that has a fingerprint that matches the SampleLight. This could be as simple as copying the ZigBee Dimmer and adding a fingerprint line.

Where would I find the fingerprint? Which folder and file is it in of the SampleLight example?

The easiest way is through the SmartThings GUI. Look at the Raw Description on that thing. Search here on the forum, there is someone who described how to parse it.

On the SampleLight project it will be located in zclSampleLight_data.c. Look at the simple descriptor at the end of the file. There are a lot of defines and things so it can take a while to figure out what exactly to put into the fingerprint, that’s why I use the other method.

I don’t see any numbers at the bottom of the c file that might suggest as a fingerprint. Also do you have an exact link for how to parse a ZigBee raw description?

Previously I saw someone use a raw description of an Iris plug of:
[01] 0104 [0100 00 08] 0000 0003 0004 0005 0006 0B04 0B05 FC03 01 0019.

So the program listed the fingerprint as:
fingerprint profileId: “0104”, inClusters: “0000 0003 0004 0005 0006 0B04 0B05 FC03”, outClusters: “0019”, manufacturer: “CentraLite”, model: “3210-L”, deviceJoinName: “Outlet”

The stuff in brackets is what I believe to be left out for possibly all fingerprints of raw descriptions. Am I correct?