Noob Question - where is all the reference material?

I am new to making a device handler for a custom Xbee home automation project. I have read and re-read all the documentation on the Smartthings developers site. I still am puzzled by a few specific details that I need help with:
(Please note, I come from a strong C background and medium C++ background)

  1. In the following code snippet from the ZigBee example,
    def descMap = parseDescriptionAsMap(description)
    log.debug "Read attr: $description"
    if (descMap.cluster == “0006” && descMap.attrId == “0000”) {

    Where is the reference material to help me understand 'parseDescriptionAsMap”?
    Where is the reference material to help me know what sub-elements are available - such as ‘.cluster’ or ‘.attrId’?

  2. In the Cree bulb handler I see the following,
    def resultMap = zigbee.getKnownDescription(description)
    def on() {
    Where do I find the reference materials or definitions for ‘zigbee’ and all the sub-members (or methods, etc)?

Lastly, is there any error checking in the web based device handler editor? I have added the following but see no way of “compiling” or any other way of verification of correct code:
def off() {
What am I missing here? Where do I find reference materials (or at least header files) that define ‘parseDescriptionAsMap’ or ‘zigbee’?

Thanks in advance,


We’re currently in the process of documenting the zigbee object and best practices around it. And when I say “we”, I really mean @unixbeast, with me probably just getting in the way :smiley:

Look for updated docs soon; we can follow up here on this thread when they go live.


Tagging @jim

1 Like

I replied before being tagged by @JDRoberts! That’s never happened! My week can really be considered complete at this point :smiley:

(I of course appreciate and encourage the tagging for awareness, not trying to discourage it. I just couldn’t resist)



Thanks for the quick reply.

While I am waiting, can I have a copy of the documentation / files / headers / etc. that was given to Cree so they could write device handlers? I am currently working on the hardware / firmware design side of a new ZigBee widget (full custom design).

Is there a better editor to use instead of the web-site based one? I was able to add zigbee.thisshouldnotwork() to the template and publish it to my device types without so much as an error or warning.



1 Like

Thank you all for your patience. I have found some key documentation and finally figured out how the log page works. In case there is another noob like me, I found the zigbee info under the API tab and the zigbee reference. Silly me, I kept getting hung up on the Zigbee tutorial and didn’t realize there was this other branch of the document tree.

For the log file, I am using Firefox in a Windows 7 environment and I find that the log window has to be actively open - for me that means open in another tab. Then all the log outputs from my Cree bulb show up. (Silly me thought the log ran in the background and would pop up when I “opened” the log menu item. Apparently logging starts when you “open” it. No biggie.)

All that said, I am now very excited to see the log messages. It has made getting started a lot easier.

1 Like

The updated docs went live last Friday:

1 Like