# Decoding a float value in a payload function

**URL:** <https://www.thethingsnetwork.org/forum/t/decoding-a-float-value-in-a-payload-function/4395>\
**Category:** Application Development\
**Created:** [December 10, 2016, 2:11pm UTC](https://www.thethingsnetwork.org/forum/t/decoding-a-float-value-in-a-payload-function/4395 "2016-12-10T14:11:04Z")\
**Posts on this page:** 1\
**Showing post:** 16

<div class="post-metadata">

**Author:** ![brandonbyrne](https://www.thethingsnetwork.org/forum/letter_avatar_proxy/v4/letter/b/7cd45c/32.png) [@brandonbyrne](https://www.thethingsnetwork.org/forum/u/brandonbyrne)\
**Post date:** [December 20, 2016, 10:03pm UTC](https://www.thethingsnetwork.org/forum/t/decoding-a-float-value-in-a-payload-function/4395/16 "2016-12-20T22:03:01Z")

</div>

var msg2 = { payload: msg.payload.length };  
msg2.payload = JSON.parse(msg.payload);  
msg2.payload = new Buffer(msg2.payload.payload, ‘base64’).toString(‘hex’);  
var lat = Buffer(msg2.payload, ‘hex’).readFloatLE(0);  
var lon = Buffer(msg2.payload, ‘hex’).readFloatLE(4);  
msg2.payload= “[{“lat”:” + lat + “,“lng”:” + lon + “}]”;//"{“lat”:lat,“lng”:lon};  
return msg2;

This is how I am decoding the ttn payload via node-red. This assumes that the payload I am getting from ttn via mqtt is an 8 byte payload, coming out of the node-red mqtt node in base64, with the first four bytes being one float, and the second four bytes being the second float.

If you are trying to decode a raw 8 byte value, it’s even easier:

var lat = new Buffer(msg.payload).readFloatLE(0);  
var lon = new Buffer(msg.payload).readFloatLE(4);  
msg.payload= “[{“lat”:” + lat + “,“lng”:” + lon + “}]”;//"{“lat”:lat,“lng”:lon};  
return msg;

I hate javascript and am terrible at doing anything with it, so there is probably a more efficient way to do this.

---

_[View the full topic](https://www.thethingsnetwork.org/forum/t/decoding-a-float-value-in-a-payload-function/4395)._
