Zigbee Raw Message Help


(Scott G) #1

I’m trying to understand how to structure raw zigbee messages like the “Enroll Response” message used in zigbee contact switches. That message is

"raw 0x500 {01 23 00 00 00}", "delay 200", "send 0x${device.deviceNetworkId} 1 1"

I understand this to be sending the enroll response command to the IAS Zone cluster, but I don’t understand the payload information {01 23 00 00 00}. Can anyone help?

What if I wanted to send a raw message to the on/off cluster to turn a switch off? I tried a ton of variations, but could not get it to work. Thanks!


(John Rucker) #2

The best thing to do would be to look at the device type templates and find a device that sends an on / off command. Here is a method for sending the on command to the on/off cluster 0x0006

def on() {
	log.debug "Relay 1 on()"
	sendEvent(name: "switch", value: "on")
	"st cmd 0x${device.deviceNetworkId} 0x01 0x0006 0x1 {}"
}

(Scott G) #3

Thanks John! I’m familiar with using the st cmd format to send cluster commands. I’m interested in the raw formatting because I think we can use “send_multicast [groupId] [source_endpoint]” to send the raw formatted command out to a zigbee group. I don’t know if ST supports that command, but it’s part of the Ember framework their chip is based on (just like “raw” and “send” are).

Then we could use group commands to turn on/off/dim multiple zigbee bulbs (GE Link for example) with a single command, which should help with bulbs getting missed and improve the aesthetic of the bulbs responding in sync. It also opens up the zigbee scene cluster.


(John Rucker) #4

Ahh good deal. Yes I would like to do that as well. If you get this working please share. I have an outside SmartThings C# app that allows me to group ZigBee devices and send multicast messages to them. It would be so cool to do this from a custom device type. Maybe @urman can help us with this command if it exist.

Groups and Multicast messages are part of the ZigBee core protocol and are not used by SmartThings at all as far as I can tell. All we need is a way to send a hand-full of commands and we will be off and running.

@urman If you can give us the raw commands to:
Add a device to a group, and send a multicast message (Group message) we should be able to figure out everything else.


(Scott G) #5

I’m specifically looking to adapt it for use with GE Links, and I think it could really elevate their functionality with ST.

I’ve already tested commands to add groups, remove groups, get group membership, as well as most of the scene cluster commands and they work using the typical “st cmd” format. GE Link can hold 8 groups, and 16 scenes. We just need a way to send commands to the group.

If we can use send_multicast, then we’ll need to understand how to format pre-buffered “raw” message commands. I tried several variations of “raw 0x0006 {00}” and using the same send format to address it to a specific bulb, but nothing so far.


(John Rucker) #6

Scott, looks like your way ahead of me on this!! Sounds like all you need is the format to send a multicast message.