# Getting raw data from TTN Uplink node

**URL:** https://discourse.nodered.org/t/getting-raw-data-from-ttn-uplink-node/25997
**Category:** General
**Created:** [3 May 2020 13:36 UTC](https://discourse.nodered.org/t/getting-raw-data-from-ttn-uplink-node/25997 "2020-05-03T13:36:23Z")
**Posts on this page:** 19
**Page:** 2

<div class="post-metadata">

### Author: ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)
#### Post date: [10 May 2020 13:13 UTC](https://discourse.nodered.org/t/getting-raw-data-from-ttn-uplink-node/25997/22 "2020-05-10T13:13:24Z")

</div>

use copy value

![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/d/e/de9245a1821947dbabd4f6bd71f8b7f4a71d71c3.png)

then

`````  
`paste code between backticks like this`  
`````

PS - is your Raspberry Pi on the same network as your Win7 PC?

### EDIT - try pasting images now in new post below - should work now

---

<div class="post-metadata">

### Author: ![spark57](https://avatars.discourse-cdn.com/v4/letter/s/bcef8e/32.png) [@spark57](https://discourse.nodered.org/u/spark57)
#### Post date: [10 May 2020 13:26 UTC](https://discourse.nodered.org/t/getting-raw-data-from-ttn-uplink-node/25997/23 "2020-05-10T13:26:15Z")

</div>

Hi Steve,

There's no \_msgid line in the debug window. I copied the screenshot from the debug window, just warning messages:  
'''

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/b/2/b26364a35c860d38bb90064060f9de938e3e20e2.png)  
'''  
Yes, RPi is in the same network as Win7. I did some changes to RPi network config files, so it has fixed IP now (it makes easier accessing NODE-RED via browser).

I am not quite sure what you mean "flow" - isn't it the same as the picture with nodes connected? The Function node consists of code copied from your message, and that's all.

---

<div class="post-metadata">

### Author: ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)
#### Post date: [10 May 2020 13:39 UTC](https://discourse.nodered.org/t/getting-raw-data-from-ttn-uplink-node/25997/24 "2020-05-10T13:39:39Z")

</div>

> [@spark57](#):
>
> There's no \_msgid line in the debug window

My screen shot was just an example of how to copy from debug window.

> [@spark57](#):
>
> I am not quite sure what you mean "flow" - isn't it the same as the picture with nodes connected?

No. That's is a picture. I can't see inside the function node from a picture. When someone asks you to post your flow it means export the node-red flow as JSON from the hamburger menu in node-red menu--\>export

Never mind.

As I suspected, your data is NOT a buffer but an ArrayBuffer.

Do the following 2 things....

1. Select the 4 nodes on your flow then press CTRL+E, the copy the flow and paste it between 3 backticks
2. Copy the value from the debug window for the bottom debug node (the one names msg) (using the copy button as I demonstrated) and paste between 3 backticks

---

<div class="post-metadata">

### Author: ![spark57](https://avatars.discourse-cdn.com/v4/letter/s/bcef8e/32.png) [@spark57](https://discourse.nodered.org/u/spark57)
#### Post date: [10 May 2020 13:39 UTC](https://discourse.nodered.org/t/getting-raw-data-from-ttn-uplink-node/25997/25 "2020-05-10T13:39:55Z")

</div>

Steve,

I skipped the Function node and connected the Uplink node directly to Debug node confu=igured to "full message". Below is the result copied from the Debug window (as suggested):

```auto
{"app_id":"agricheck-test-jas","dev_id":"lora-agri-evl","hardware_serial":"60C5A8FFFE766873","port":1,"counter":13519,"payload_raw":[49,57,46,49,67,47,54,54,46,51,70],"metadata":{"time":"2020-05-10T13:34:33.905979911Z","frequency":868.5,"modulation":"LORA","data_rate":"SF9BW125","airtime":205824000,"coding_rate":"4/5","gateways":[{"gtw_id":"eui-58a0cbfffe8010ac","timestamp":2343304300,"time":"2020-05-10T13:34:33.436207056Z","channel":0,"rssi":-51,"snr":9.75,"rf_chain":0}]},"payload":[49,57,46,49,67,47,54,54,46,51,70],"_msgid":"46ae7100.d6206"}

```

---

<div class="post-metadata">

### Author: ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)
#### Post date: [10 May 2020 13:40 UTC](https://discourse.nodered.org/t/getting-raw-data-from-ttn-uplink-node/25997/26 "2020-05-10T13:40:58Z")

</div>

`'''` are NOT backticks. These are `````. Code is no good. Please edit your post and do it like I described.

Never mind - I'll do it!

---

<div class="post-metadata">

### Author: ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)
#### Post date: [10 May 2020 13:41 UTC](https://discourse.nodered.org/t/getting-raw-data-from-ttn-uplink-node/25997/27 "2020-05-10T13:41:17Z")

</div>

> [@Steve-Mcl](#):
>
> Do the following 2 things....
> 
> 1. Select the 4 nodes on your flow then press CTRL+E, the copy the flow and paste it between 3 backticks
> 2. Copy the value from the debug window for the bottom debug node (the one names msg) (using the copy button as I demonstrated) and paste between 3 backticks

And do this ^

---

<div class="post-metadata">

### Author: ![spark57](https://avatars.discourse-cdn.com/v4/letter/s/bcef8e/32.png) [@spark57](https://discourse.nodered.org/u/spark57)
#### Post date: [10 May 2020 14:01 UTC](https://discourse.nodered.org/t/getting-raw-data-from-ttn-uplink-node/25997/28 "2020-05-10T14:01:11Z")

</div>

Steve,  
Below are results of both 1. and 2.

```auto
[{"id":"833a11ea.79d57","type":"tab","label":"Flow 2","disabled":false,"info":""},{"id":"a58dd190.a79f7","type":"ttn uplink","z":"833a11ea.79d57","name":"RAK II","app":"a1b2d64e.20ce98","dev_id":"lora-agri-evl","field":"","x":130,"y":100,"wires":[["475d5624.c84e18","d6547c.be620b88"]]},{"id":"475d5624.c84e18","type":"function","z":"833a11ea.79d57","name":"","func":"\nnode.warn([\"typeof msg.payload.buffer\", typeof msg.payload.buffer]);\nnode.warn([\"msg.payload.buffer.constructor.name\", msg.payload.buffer.constructor.name]);\n\nif(Buffer.isBuffer(msg.payload.buffer) == false){\n msg.oldPayloadBuffer = msg.payload.buffer; //keep a copy - for later debug analysis\n node.warn(\"msg.payload.buffer is not a Buffer\");\n msg.payload.buffer = Buffer.from(msg.payload.buffer);\n}\n\nnode.warn([\"typeof msg.payload.buffer\", typeof msg.payload.buffer]);\n\nif(msg.payload.buffer.length < 1){\n node.warn(\"msg.payload.buffer does not have enough bytes\");\n return null; //halt flow\n}\nmsg.buffer = msg.payload.buffer; //first, keep a ref to buffer - for later debug analysis\nnode.warn([\"This is msg.payload.buffer\", msg.payload.buffer]); //check debug window - is byte zero correct? \n\nvar newp = {};//create new empty object\nnewp.tempC = msg.payload.buffer[0]; //get first byte\nmsg.payload = newp;//now replace payload with new payload\nreturn msg;","outputs":1,"noerr":0,"x":310,"y":100,"wires":[["ced02a66.4c8608"]]},{"id":"ced02a66.4c8608","type":"debug","z":"833a11ea.79d57","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":530,"y":100,"wires":[]},{"id":"d6547c.be620b88","type":"debug","z":"833a11ea.79d57","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","x":510,"y":200,"wires":[]},{"id":"a1b2d64e.20ce98","type":"ttn app","z":"","appId":"agricheck-test-jas","accessKey":"ttn-account-v2.MegQTVjXqaAFDfaDbfSzV3ihbvdPBhDjXq_ddgqKRtQ","discovery":"discovery.thethingsnetwork.org:1900"}]

```

```auto
{"app_id":"agricheck-test-jas","dev_id":"lora-agri-evl","hardware_serial":"60C5A8FFFE766873","port":1,"counter":13546,"payload_raw":[49,57,46,55,67,47,54,55,46,52,70],"metadata":{"time":"2020-05-10T13:58:06.70509844Z","frequency":867.9,"modulation":"LORA","data_rate":"SF9BW125","airtime":205824000,"coding_rate":"4/5","gateways":[{"gtw_id":"eui-58a0cbfffe8010ac","timestamp":3756111212,"time":"2020-05-10T13:58:06.22846198Z","channel":0,"rssi":-55,"snr":12.75,"rf_chain":0}]},"payload":[49,57,46,55,67,47,54,55,46,52,70],"_msgid":"256ff7a7.5743c8"}

```

---

<div class="post-metadata">

### Author: ![spark57](https://avatars.discourse-cdn.com/v4/letter/s/bcef8e/32.png) [@spark57](https://discourse.nodered.org/u/spark57)
#### Post date: [11 May 2020 15:50 UTC](https://discourse.nodered.org/t/getting-raw-data-from-ttn-uplink-node/25997/29 "2020-05-11T15:50:47Z")

</div>

> [@Steve-Mcl](#):
>
> `'''` are NOT backticks. These are ````` .

The reason for the misunderstanding was the use of the word "backtick" - I did not know the term. It would be more clear to me to use a "Grave accent" or its hex code 0x60h. . I apologize for causing you a problem.

---

<div class="post-metadata">

### Author: ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)
#### Post date: [11 May 2020 15:53 UTC](https://discourse.nodered.org/t/getting-raw-data-from-ttn-uplink-node/25997/30 "2020-05-11T15:53:08Z")

</div>

Sure no problem. However I did put this in the message too ...

> [@Steve-Mcl](#):
>
> `````  
> `paste code between backticks like this`  
> `````

No harm, no foul.

Ps, not too many folk know what the grave accent is and even less know the hex code haha.

---

<div class="post-metadata">

### Author: ![spark57](https://avatars.discourse-cdn.com/v4/letter/s/bcef8e/32.png) [@spark57](https://discourse.nodered.org/u/spark57)
#### Post date: [11 May 2020 16:08 UTC](https://discourse.nodered.org/t/getting-raw-data-from-ttn-uplink-node/25997/31 "2020-05-11T16:08:46Z")

</div>

But it would be easier (for me) to find the right character in the ASCII table. The same with hexadecimal code - I worked with ASCII hex codes many years ago 😉  
BTW. Any suggestions after looking at the flow and value codes?

---

<div class="post-metadata">

### Author: ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)
#### Post date: [11 May 2020 16:14 UTC](https://discourse.nodered.org/t/getting-raw-data-from-ttn-uplink-node/25997/32 "2020-05-11T16:14:38Z")

</div>

looking now.

I need you to try something - 2 seconds

---

<div class="post-metadata">

### Author: ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)
#### Post date: [11 May 2020 16:29 UTC](https://discourse.nodered.org/t/getting-raw-data-from-ttn-uplink-node/25997/33 "2020-05-11T16:29:43Z")

</div>

So i simulated your data but objiously the Array/Buffer whatever it is, is represented as a simple array in JSON (so my simulation is not exact)...

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/9/2/92e5a165ec3456ed992bf3aa1abeb9cd04057b78.png)

Try the function code from this

```auto
[{"id":"db8a6e9d.c8ec6","type":"function","z":"dadb596f.70e948","name":"inspect msg & get 1st byte","func":"\nmsg.isPayloadABuffer = Buffer.isBuffer(msg.payload)\nmsg.isPayloadRawABuffer = Buffer.isBuffer(msg.payload_raw);\nvar buf;\nif(typeof msg.payload == \"object\"){\n node.warn([\"Object.keys(msg.payload)\", Object.keys(msg.payload)]); \n node.warn([\"This is msg.payload\", msg.payload]); \n if(typeof msg.payload == \"object\"){\n if(msg.payload.buffer) {\n node.warn([\"This is msg.payload.buffer\", msg.payload.buffer]); \n node.warn([\"Object.keys(msg.payload.buffer)\", Object.keys(msg.payload.buffer)]); \n }\n }\n}\n\nif(msg.payload_raw && typeof msg.payload_raw == \"object\"){\n node.warn([\"Object.keys(msg.payload_raw)\", Object.keys(msg.payload_raw)]); \n node.warn([\"This is msg.payload_raw\", msg.payload_raw]); \n}\n\nif(Buffer.isBuffer(msg.payload)){\n msg.info = \"msg.payload is a buffer\";\n buf = msg.payload;\n} else if(typeof msg.payload == \"object\" && msg.payload.buffer && Buffer.isBuffer(msg.payload.buffer)){\n msg.info = \"msg.payload.buffer is a buffer\";\n buf = msg.payload.buffer;\n} else if(Buffer.isBuffer(msg.payload_raw)){\n msg.info = \"msg.payload_raw is a buffer\";\n buf = msg.payload_raw;\n} else {\n try {\n node.warn(\"payload & payload_raw are not buffers! Attempting to create a buffer out of msg.payload_raw\")\n buf = Buffer.from(msg.payload_raw);\n } catch(e) {\n node.warn(\"Failed to create a buffer out of msg.payload_raw - gonna try using that by itself\");\n buf = msg.payload_raw;\n }\n}\n\nmsg.buffer = buf; //first, keep a ref to buffer - for later debug analysis\n\nif(buf.length < 1){\n node.warn(\"buf does not have enough bytes\");\n msg.payload = null;\n return msg; \n}\n\nmsg.payload = {\n tempC: buf[0] //get first byte\n};\n\nreturn msg;","outputs":1,"noerr":0,"x":1160,"y":300,"wires":[["9e453a14.fa6bf8"]]},{"id":"9e453a14.fa6bf8","type":"debug","z":"dadb596f.70e948","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","x":1230,"y":340,"wires":[]},{"id":"19fd60b9.4a307f","type":"debug","z":"dadb596f.70e948","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","x":870,"y":340,"wires":[]},{"id":"457e9ee6.54654","type":"inject","z":"dadb596f.70e948","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":860,"y":260,"wires":[["e496491a.da0af8"]]},{"id":"e496491a.da0af8","type":"function","z":"dadb596f.70e948","name":"fake ttn","func":"msg = {\n \"app_id\":\"agricheck-test-jas\",\n \"dev_id\":\"lora-agri-evl\",\n \"hardware_serial\":\"60C5A8FFFE766873\",\n \"port\":1,\n \"counter\":13546,\n \"payload_raw\":[\n 49,\n 57,\n 46,\n 55,\n 67,\n 47,\n 54,\n 55,\n 46,\n 52,\n 70\n],\n \"metadata\":{\n \"time\":\"2020-05-10T13:58:06.70509844Z\",\n \"frequency\":867.9,\n \"modulation\":\"LORA\",\n \"data_rate\":\"SF9BW125\",\n \"airtime\":205824000,\n \"coding_rate\":\"4/5\",\n \"gateways\":[\n {\n \"gtw_id\":\"eui-58a0cbfffe8010ac\",\n \"timestamp\":3756111212,\n \"time\":\"2020-05-10T13:58:06.22846198Z\",\n \"channel\":0,\n \"rssi\":-55,\n \"snr\":12.75,\n \"rf_chain\":0\n }\n]\n },\n \"payload\":[\n 49,\n 57,\n 46,\n 55,\n 67,\n 47,\n 54,\n 55,\n 46,\n 52,\n 70\n],\n \"_msgid\":\"256ff7a7.5743c8\"\n}\n\n\n\nreturn msg;","outputs":1,"noerr":0,"x":860,"y":300,"wires":[["db8a6e9d.c8ec6","19fd60b9.4a307f"]]}]

```

---

<div class="post-metadata">

### Author: ![spark57](https://avatars.discourse-cdn.com/v4/letter/s/bcef8e/32.png) [@spark57](https://discourse.nodered.org/u/spark57)
#### Post date: [11 May 2020 16:41 UTC](https://discourse.nodered.org/t/getting-raw-data-from-ttn-uplink-node/25997/34 "2020-05-11T16:41:08Z")

</div>

OK, I pasted the code into a new Function node and connected it to the Debug node. Here is screen dump with the extended msg:

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/6/1/61fd29c5fb0885df5645b5c78e310db412758077.png)

Tell me please if you need something more.

---

<div class="post-metadata">

### Author: ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)
#### Post date: [11 May 2020 18:20 UTC](https://discourse.nodered.org/t/getting-raw-data-from-ttn-uplink-node/25997/35 "2020-05-11T18:20:06Z")

</div>

no - not enough unfortunately.

I have one last idea - I've modified the function to capture more detail IN THE `msg` itself

So...

1. modify the "inspect msg & get 1st byte" function & copy/paste in the code below
2. operate your RAK ||
3. capture the message by the copy object button & paste in a reply (between ````` backticks (grave accents 😉 )

### new function code (to replace the old)...

```auto

msg.isPayloadABuffer = Buffer.isBuffer(msg.payload)
msg.isPayloadRawABuffer = Buffer.isBuffer(msg.payload_raw);

var buf;

try {
    msg.payload_raw_info = "msg.payload_raw.constructor.name="
    msg.payload_raw_info += msg.payload_raw.constructor.name
} catch(e) {}

if(typeof msg.payload == "object"){

    try {
        msg.payload_info = "msg.payload.constructor.name="
        msg.payload_info += msg.payload.constructor.name
        msg.payload_keys = Object.keys(msg.payload);
    } catch(e) {}
    
    if(typeof msg.payload == "object"){
        if(msg.payload.buffer) {
            try {
                msg.payload_buffer_info = "msg.payload.buffer.constructor.name="
                msg.payload_buffer_info += msg.payload.buffer.constructor.name
                msg.payload_buffer_keys = Object.keys(msg.payload.buffer);
            } catch(e) {}
        }
    }
}

msg.payload_isBuffer = false;
msg.payload_raw_isBuffer = false;
msg.payload_buffer_isBuffer = false;

if(Buffer.isBuffer(msg.payload)){
    msg.payload_isBuffer = true;
    msg.info = "msg.payload is a buffer";
    buf = msg.payload;
} else if(typeof msg.payload == "object" && msg.payload.buffer && Buffer.isBuffer(msg.payload.buffer)){
    msg.payload_buffer_isBuffer = true;
    msg.info = "msg.payload.buffer is a buffer";
    buf = msg.payload.buffer;
} else if(Buffer.isBuffer(msg.payload_raw)){
    msg.payload_raw_isBuffer = true;
    msg.info = "msg.payload_raw is a buffer";
    buf = msg.payload_raw;
} else {
    try {
        msg.payload_buffer_isBuffer = false;
        msg.info1 = "payload & payload_raw are not buffers! Attempting to create a buffer out of msg.payload_raw"
        buf = Buffer.from(msg.payload_raw);
    } catch(e) {
        msg.info1Error = "Failed to create a buffer out of msg.payload_raw " + err.message;
        buf = msg.payload_raw;
    }
}

msg.buffer = buf; //first, keep a ref to buffer - for later debug analysis

if(buf.length < 1){
    msg.length_issue = "buf.length is < 1"
    node.warn("buf does not have enough bytes");
    msg.payload = null;
    return msg; 
}

msg.payload = {
    tempC: buf[0] //get first byte
};

return msg;

```

### What to copy

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/c/3/c3761bd6fd2d5119135cac83dd06ea6a418f50db.png)

---

<div class="post-metadata">

### Author: ![spark57](https://avatars.discourse-cdn.com/v4/letter/s/bcef8e/32.png) [@spark57](https://discourse.nodered.org/u/spark57)
#### Post date: [11 May 2020 18:29 UTC](https://discourse.nodered.org/t/getting-raw-data-from-ttn-uplink-node/25997/36 "2020-05-11T18:29:19Z")

</div>

> [@Steve-Mcl](#):
>
> operate your RAK ||

What exactly you mean? Do I need to do something special with the device (hardware)?

---

<div class="post-metadata">

### Author: ![spark57](https://avatars.discourse-cdn.com/v4/letter/s/bcef8e/32.png) [@spark57](https://discourse.nodered.org/u/spark57)
#### Post date: [11 May 2020 18:33 UTC](https://discourse.nodered.org/t/getting-raw-data-from-ttn-uplink-node/25997/37 "2020-05-11T18:33:23Z")

</div>

Here's the value copied after modifying the Function node:

```auto
{"app_id":"agricheck-test-jas","dev_id":"lora-agri-evl","hardware_serial":"60C5A8FFFE766873","port":1,"counter":15511,"payload_raw":[49,57,46,49,67,47,54,54,46,51,70],"metadata":{"time":"2020-05-11T18:31:47.734612754Z","frequency":867.9,"modulation":"LORA","data_rate":"SF9BW125","airtime":205824000,"coding_rate":"4/5","gateways":[{"gtw_id":"eui-58a0cbfffe8010ac","timestamp":2480619420,"time":"2020-05-11T18:31:47.603984117Z","channel":0,"rssi":-51,"snr":14,"rf_chain":0}]},"payload":{"tempC":49},"_msgid":"3bbfa6ef.784eea","isPayloadABuffer":true,"isPayloadRawABuffer":true,"payload_raw_info":"msg.payload_raw.constructor.name=Buffer","payload_info":"msg.payload.constructor.name=Buffer","payload_keys":["0","1","2","3","4","5","6","7","8","9","10"],"payload_buffer_info":"msg.payload.buffer.constructor.name=ArrayBuffer","payload_buffer_keys":[],"payload_isBuffer":true,"payload_raw_isBuffer":false,"payload_buffer_isBuffer":false,"info":"msg.payload is a buffer","buffer":[49,57,46,49,67,47,54,54,46,51,70]}

```

---

<div class="post-metadata">

### Author: ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)
#### Post date: [11 May 2020 19:03 UTC](https://discourse.nodered.org/t/getting-raw-data-from-ttn-uplink-node/25997/38 "2020-05-11T19:03:20Z")

</div>

Ok well now I'm stumped. It seems msg.payload IS actually a buffer. After all that nonsense.

Look at payload - it IS what you wanted - tempC = 49

You can pretty much delete the majority of the function node code and get values directly from msg.payload[0].

---

<div class="post-metadata">

### Author: ![spark57](https://avatars.discourse-cdn.com/v4/letter/s/bcef8e/32.png) [@spark57](https://discourse.nodered.org/u/spark57)
#### Post date: [11 May 2020 20:02 UTC](https://discourse.nodered.org/t/getting-raw-data-from-ttn-uplink-node/25997/39 "2020-05-11T20:02:11Z")

</div>

> [@Steve-Mcl](#):
>
> Ok well now I'm stumped. It seems msg.payload IS actually a buffer. After all that nonsense.

It seems you're absolutely right. I copied your previous code into Function node:

```auto
var newp = {};//create new empty object
newp.tempC = msg.payload[0]; //get first byte
msg.payload = newp;//now replace payload with new payload
return msg;

```

And the result is as expected:  
 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/1/6/16ad08114c80d478ed2d5ef813b0e659cd5476bc.png)

So I am finally "at home" 🙂  
I can access data in this "strange" buffer and manipulate with its data.  
Thank you very much Steve, I owe you a big beer. 🙂

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/1X/d073cd938eafa2e558d7c2cd59003b3ef4963033.png) [@system](https://discourse.nodered.org/u/system)
#### Post date: [25 May 2020 20:02 UTC](https://discourse.nodered.org/t/getting-raw-data-from-ttn-uplink-node/25997/40 "2020-05-25T20:02:22Z")

</div>

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.

[Previous page](https://discourse.nodered.org/t/getting-raw-data-from-ttn-uplink-node/25997.md?page=1)
