Thingshield raw receive messages

Hi, I’m new to SmartThings. There doesn’t seem to be much developer information for the ThingShield. I’ve been using Arduinos for years, though.

I can get the textual messages like ‘on’, ‘off’, but is there a way to get what device sent the shield the message. I modified the library to pass the 255 byte receive buffer to inspect the raw message. I was hoping for a sender ID or something. Is this even possible? I’d like the shield to be a receiver that displays the status of different sensors.

Any information is greatly appreciated.

1 Like

Great Topic, thanks!

The ThingShield uses the same ZigBee chip as several standard SmartThings devices, but likely has custom firmware. It’s actually a powerful MCU and could probably run without an extra MCU… It has it’s own GPIO, etc.

I haven’t tried to dig up detailed specs in the raw chip and I don’t know if SmartThings will release custom firmware, etc.

Still…SmartThings is designed as single-chip = single-device. So you can multiplex through software, and, really, that should be sufficient considering how hard it is to get ST to take and implement feature requests.

So pass a Device ID with the text message (i.e., “001:On”), and use a SmartApp Service Manager pattern to create and pass these on to child Device Instances…

Thanks for the info!

It seems to me that a smarter base payload would be able to have a smarter network of devices. I was hoping to not go through a central manager, but it seemed inevitable.

Is there a way to query the hub from a device? Enumerate the network so to speak?


Not that I know of.

The ZigBee mesh protocol is published, and must involve some distribution of information about the network throughout the nodes, but this is most certainly limited for security reasons. Even so, the Hub’s ZigBee firmware and other exposed APIs are unlikely to give us access to special queries like this.