zigBee USB dongle


(Shreddin Pb) #1

Hey guys, I posted this in a different thread, but I think it warrants its own thread so I am going to ask here :wink:

I purchased one of these in hopes of using it with my ST Hub.
http://www.adaptivem2m.com/zigbee-technology/zigbee-usb-dongle.htm
That page says this right at the top

The dongle also provides fully compliant wireless ZigBee™ connectivity (home controls stack profile) for routers, coordinators, and end devices by means of the supplied ZigBeeTM compliant platform drivers.

It supports the home protocol. So How do I connect it to the ST Hub? Do I have to issue a AT command to the dongle to set it into a pair mode (there is no pair button)?
Since it has the home protocol, do I still need to write a device type handler?

thanks!


(Ben Edwards) #2

I would imagine this needs a new device type, but am finding out for sure.

I am interested in what your plans for the device are. Could be a cool device for connecting any computer to the SmartThings platform.

Ben


(Shreddin Pb) #3

Im having a hard time getting windows to recognize it. It installs drivers just fine, but all my experience with devices like this tell me it should use a VCP driver and give me a com port… it doesnt, but drivers install fine. I also tracked down their drivers and used them instead of the windows ones that installed and still no com port… hmmm

The idea right now is very simple… and I think its totally do-able.

I have already started a simple ST app, and I think it will work.
I use a X10 CM15A which plugs into the computer via USB.

Using this dongle, or a zwave dongle (which looking deeper, might have been easier) I can make a very simple ST to X10 bridge.
Using open source python libraries
python xbee


python x10

The ST App has a text field and a numeric field. Simply send that data to the xbee dongle, python then converts it to the x10 address and sends it out.
Just basic functionality to start, but then can get into more complicated X10 commands if it works out!


(Col Hack) #4

I’m sorry to disappoint you, but it may not be as easy as you might think. One thing you have to understand is that to say that a device is “Zigbee-compatible” is pretty much meaningless. There’re numerous Zigbee “profiles” and generally speaking only devices that implement the same profile are able to communicate with each other. It’s like if I’m speaking English and you’re speaking Chinese, I could call your phone number and we could hear each other, but we won’t be able to understand each other. From whatever little information is available about ST’s Zigbee implementation, it uses ZigBee HA (Home Automation) profile, while your dongle most likely don’t. If it allows you to access Zigbee APS layer, i.e. send & receive raw data messages, you may be able to implement HA profile in software, but it’s a helluva work.

Here’s a good intro into Zigbee profiles, if you’re curious:


(Shreddin Pb) #5

Yes, I realize this… in my first post I quote the manufactures website where they state that it does support the home controls stack… is that not the home automation stack?
They also state that there are different drivers for the device that give you access to different zigbee profiles?


(Col Hack) #6

There’s no such thing as “home controls stack” in Zigbee specification. You should clarify with manufacturer what exactly they mean by that. If there’s an API specification for your dongle, you may try to figure out what is actually supported by looking at its command set. My guess would be that it’s either a generic device that does not implement any specific profile or it may implement a proprietary vendor profile that makes it “easy-to-use”.


(Shreddin Pb) #7

As a side note, I did email them, but have not heard back from them.


(Shreddin Pb) #8

So, I got this dongle working with windows.

I can get information from it, I can also set it to zigbee channels and that sort of thing.

ZigBee stack Version F, WIN:02.04.02
Dongle IEEE Address is : 0x6a75000000eb0d00

Is that all the info I need to make it work?
I can manually add a device on the website, then manually set its dongle id in the preferences?

Does the ST hub work on a specific zigBee channel?


(Col Hack) #9

Oh boy, where do I start? The first step that any Zigbee device has to do is called “Network Join”. That means finding a suitable Zigbee coordinator and registering with it. There’s typically an API command to do that. But keep in mind that ST uses HA profile that mandates network security (encryption), so you’ll need to figure out how to enable security settings in your dongle, setup encryption keys, etc.

Once your device successfully joins the network, the HA controller (ST hub in our case) will interrogate it to discover what endpoints (i.e. services) it provides. This is similar to your computer discovering what type of USB device you have plugged into its USB port. Is it keyboard, camera, flash disk, etc.? So your application software will have to implement specific endpoint descriptors and clusters (i.e. commands and states) that HA controller expects to find. It’s all documented in Zigbee HA Profile spec.


(Col Hack) #10

@johnriggs, I don’t mean to discourage you from experimenting with Zigbee dongle, because you’re definitely going to learn alot if you do. But if you want to just quickly build your custom Zigbee device that works with ST, I’d recommend using their Arduino shield, simply because it’s already programmed to do all the mundane Zigbee stuff that you’d otherwise have to program yourself. I think cost wise it’s about the same as your dongle - $35, but you’ll definitely save yourself a lot of time. :slight_smile:


(Shreddin Pb) #11

I am actually already doing that also… but I dont give up easy on things :wink:
I purchased this dongle to do this with it,before the thing shield was available, so I am going to keep trying to use it ( I dont like technology to get the better of me :wink: )

My thing shield version is in the works and will hopefully get tested this weekend since I have all the parts now.

The software I am using to access the dongle allows me to issue it commands, so I can set it up anyway its needed.
So, the ST hub is the coordinator, with the software I can run the dongle as a coordinator, router, or device. I am guessing normal lights and that sort of thing are devices, and a router is just that, a router.

So maybe when I get home from work I can run the dongle with the software and see if I can even seen the ST hub… just an idea as to where to start :wink:

I appreciate these helpful posts!


(Col Hack) #12

In Zigbee world “router” means device with routing capabilities, so any mains-powered device is typically a router. Only battery-powered devices that sleep most of the time are configured as end-devices. Good luck, and don’t hesitate to ask questions :slight_smile:


(Shreddin Pb) #13

Thanks! I will bug more when I get back to the xbee stuff…
on the shield front, I got it working… X10 lights turning on and off with the ST app… I need to make some updates to the code on both the device type and the arduino sketch, but as of right now, it does work!!

http://build.smartthings.com/projects/x10shield/hello-smarter-world/


(Col Hack) #14

Good job! I like simplicity of your solution. BTW, you can make your X10 adapter by-directional by using MR26A X10 receiver to send messages from your X10 devices (e.g. X10 remotes or EagleEye motion sensors) to you SmartThings hub.


(Andrew Urman) #15

@johnriggs nice work!


(Shreddin Pb) #16

I purchased one of these, but have had zero time to work on this :frowning:
It also stalled due to some issues getting multiple x10 devices to work in the smartthings app

soon I will get back to it