Standard Temperature Msg Format--need help parsing messages


#1

I’m trying to put together a specialty temperature sensor using an Arduino ThingShield. Rather than writing my own device handler, I thought I could use the standard SmartThings “Temperature Sensor” handler. But I can’t seem to get it to correctly interpret my messages. I have something like this going on in my sketch:

TempString = "temperature: " + String(WaterTemp/10) + “.” + String(Tenths);
_ smartthing.send(TempString);_

Which sends a text string like “temperature: 24.2” which, it looked to me, was the format that other temperature sensors were using. But when I look at the device event log, all I see is events like:

catchall: 0104 0000 01 01 0140 00 2B16 00 00 0000 0A 00 0A74656D70657261747572653A2032352E37

What am I missing? Any help appreciated!!!


#2

(I temporarily moved this to the developers section of the forum just so the right people would see it sooner. You can move it back to projects later after you get over this hurdle. :sunglasses: )


(ActionTiles.com co-founder Terry @ActionTiles; GitHub: @cosmicpuppy) #3

That is exactly what you should be seeing.

“74656d7065726174757265” us “temperature” in Hex code.

http://www.swingnote.com/tools/texttohex.php


(ActionTiles.com co-founder Terry @ActionTiles; GitHub: @cosmicpuppy) #4

Instead of starting with Temperature Sensor handler, start with a ThingShield example and then add code from the Temperature Sensor handler.

The ThingShield is not a generic ZigBee device. It has custom firmware and libraries that use Text for messages instead of ZigBee clusters. So using a ZigBee DTH as your starting point puts you on the wrong path…


#5

This might also be helpful:


#6

Thanks! That put me over the top and I got it working.