# Extract mac and raw

**URL:** https://discourse.nodered.org/t/extract-mac-and-raw/75520
**Category:** General
**Created:** [21 February 2023 17:18 UTC](https://discourse.nodered.org/t/extract-mac-and-raw/75520 "2023-02-21T17:18:37Z")
**Posts on this page:** 16
**Page:** 1

<div class="post-metadata">

### Author: ![ankit.prasad](https://avatars.discourse-cdn.com/v4/letter/a/ea5d25/32.png) [@ankit.prasad](https://discourse.nodered.org/u/ankit.prasad)
#### Post date: [21 February 2023 17:18 UTC](https://discourse.nodered.org/t/extract-mac-and-raw/75520/1 "2023-02-21T17:18:37Z")

</div>

{"msg\_id":3004,"device\_info":{"device\_id":"0016","mac":"4091518a489a"},"data":[{"type":8,"value":{"timestamp":"2023-02-21T22:15:56+05:00","type":"Unknown","mac":"bc572900a054","rssi":-36,"name":"KBPro\_290155","raw":"0201060303aafe1216aafe21010f0e5be8d148f3000ffff103f7091680207001000000000d094b4250726f5f323930313535"}},{"type":8,"value":{"timestamp":"2023-02-21T22:15:56+05:00","type":"Unknown","mac":"bc572900a097","rssi":-87,"name":"KBPro\_290222","raw":"0201060303aafe0c16aafe2101070bf216e3427e091680206901000000000d094b4250726f5f323930323232"}},{"type":8,"value":{"timestamp":"2023-02-21T22:15:55+05:00","type":"Unknown","mac":"bc572900a046","rssi":-48,"name":"KBPro\_290141","raw":"0201060303aafe1216aafe21010f0e5bf1aa41d3ffd2fbf9ffe1091680207001000000000d094b4250726f5f323930313431"}}]}

how to extract all "raw" and "mac" values  
from this

---

<div class="post-metadata">

### Author: ![ghayne](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/ghayne/32/39_2.png) [@ghayne](https://discourse.nodered.org/u/ghayne)
#### Post date: [21 February 2023 17:29 UTC](https://discourse.nodered.org/t/extract-mac-and-raw/75520/2 "2023-02-21T17:29:59Z")

</div>

Pass this through a JSON node and read this, which will help you extract the information you want.

[https://nodered.org/docs/user-guide/messages](https://nodered.org/docs/user-guide/messages)

---

<div class="post-metadata">

### Author: ![ankit.prasad](https://avatars.discourse-cdn.com/v4/letter/a/ea5d25/32.png) [@ankit.prasad](https://discourse.nodered.org/u/ankit.prasad)
#### Post date: [21 February 2023 17:34 UTC](https://discourse.nodered.org/t/extract-mac-and-raw/75520/3 "2023-02-21T17:34:27Z")

</div>

{"msg\_id":3004,"device\_info":{"device\_id":"0016","mac":"4091518a489a"},"data":[{"type":8,"value":{"timestamp":"2023-02-21T22:33:35+05:00","type":"Unknown","mac":"bc57290093db","rssi":-62,"name":"Test1","raw":"0201060303aafe1216aafe21010f0e5b05ff1f3cfff103c8005d0916802070010000000006095465737431"}},{"type":8,"value":{"timestamp":"2023-02-21T22:33:34+05:00","type":"Unknown","mac":"bc5729009fe9","rssi":-43,"name":"KBPro\_290048","raw":"0201060303aafe1216aafe21010f0e5820762ada001f03e8ff83091680207001000000000d094b4250726f5f323930303438"}},{"type":8,"value":{"timestamp":"2023-02-21T22:33:34+05:00","type":"Unknown","mac":"bc572900a054","rssi":-58,"name":"KBPro\_290155","raw":"0201060303aafe1216aafe21010f0e5be99448e2000f001f03f7091680207001000000000d094b4250726f5f323930313535"}}]}

using json got this now how to extract raw and mac into a new message

---

<div class="post-metadata">

### Author: ![E1cid](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/e1cid/32/77971_2.png) [@E1cid](https://discourse.nodered.org/u/E1cid)
#### Post date: [21 February 2023 17:35 UTC](https://discourse.nodered.org/t/extract-mac-and-raw/75520/4 "2023-02-21T17:35:41Z")

</div>

Extract them how, in what format should the output be?

In a change node usingJSONata Expression

```auto
 $$.payload.data.value.mac

```

Would return an array of all mac's contained in the data.value property of the payload.

---

<div class="post-metadata">

### Author: ![ankit.prasad](https://avatars.discourse-cdn.com/v4/letter/a/ea5d25/32.png) [@ankit.prasad](https://discourse.nodered.org/u/ankit.prasad)
#### Post date: [21 February 2023 17:38 UTC](https://discourse.nodered.org/t/extract-mac-and-raw/75520/5 "2023-02-21T17:38:59Z")

</div>

![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/4/7/4715c535255f99d530bb019e2ae2fb3c8dfcb7e3.png)  
tried this but not decoding

![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/6/2/62a9f7db56b0e914f5d49202582e3f4e8885c8f6.png)

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

---

<div class="post-metadata">

### Author: ![ankit.prasad](https://avatars.discourse-cdn.com/v4/letter/a/ea5d25/32.png) [@ankit.prasad](https://discourse.nodered.org/u/ankit.prasad)
#### Post date: [21 February 2023 17:42 UTC](https://discourse.nodered.org/t/extract-mac-and-raw/75520/6 "2023-02-21T17:42:27Z")

</div>

> [@E1cid](#):
>
> `$.payload.data.value.mac`

{"msg\_id":3004,"device\_info":{"device\_id":"0016","mac":"4091518a489a"},"data":[{"type":8,"value":{"timestamp":"2023-02-21T22:42:13+05:00","type":"Unknown","mac":"bc572900a054","rssi":-36,"name":"KBPro\_290155","raw":"0201060303aafe1216aafe21010f0e5bea344943000f002e03f7091680207001000000000d094b4250726f5f323930313535"}},{"type":8,"value":{"timestamp":"2023-02-21T22:42:12+05:00","type":"Unknown","mac":"bc572900a046","rssi":-49,"name":"KBPro\_290141","raw":"0201060303aafe1216aafe21010f0e5bf3e84fe0ffd2fbf9ffe1091680207001000000000d094b4250726f5f323930313431"}},{"type":8,"value":{"timestamp":"2023-02-21T22:42:11+05:00","type":"Unknown","mac":"bc572900a046","rssi":-41,"name":"KBPro\_290141","raw":"0201060303aafe1216aafe21010f0e5bf3e84fe0ffc2fbf9ffd2091680207001000000000d094b4250726f5f323930313431"}}]}

---

<div class="post-metadata">

### Author: ![ghayne](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/ghayne/32/39_2.png) [@ghayne](https://discourse.nodered.org/u/ghayne)
#### Post date: [21 February 2023 17:50 UTC](https://discourse.nodered.org/t/extract-mac-and-raw/75520/7 "2023-02-21T17:50:36Z")

</div>

Show us how you have set up your JSON node, you still have a string instead of a JavaScript object. @E1cid.'s suggestion only works on a JavaScript object.

---

<div class="post-metadata">

### Author: ![E1cid](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/e1cid/32/77971_2.png) [@E1cid](https://discourse.nodered.org/u/E1cid)
#### Post date: [21 February 2023 17:52 UTC](https://discourse.nodered.org/t/extract-mac-and-raw/75520/8 "2023-02-21T17:52:13Z")

</div>

> [@ankit.prasad](#):
>
> {"msg\_id":3004,"device\_info":{"device\_id":"0016","mac":"4091518a489a"},"data":[{"type":8,"value":{"timestamp":"2023-02-21T22:42:13+05:00","type":"Unknown","mac":"bc572900a054","rssi":-36,"name":"KBPro\_290155","raw":"0201060303aafe1216aafe21010f0e5bea344943000f002e03f7091680207001000000000d094b4250726f5f323930313535"}},{"type":8,"value":{"timestamp":"2023-02-21T22:42:12+05:00","type":"Unknown","mac":"bc572900a046","rssi":-49,"name":"KBPro\_290141","raw":"0201060303aafe1216aafe21010f0e5bf3e84fe0ffd2fbf9ffe1091680207001000000000d094b4250726f5f323930313431"}},{"type":8,"value":{"timestamp":"2023-02-21T22:42:11+05:00","type":"Unknown","mac":"bc572900a046","rssi":-41,"name":"KBPro\_290141","raw":"0201060303aafe1216aafe21010f0e5bf3e84fe0ffc2fbf9ffd2091680207001000000000d094b4250726f5f323930313431"}}]}

Is there a question hidden there somewhere?

> [@ankit.prasad](#):
>
> ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/4/7/4715c535255f99d530bb019e2ae2fb3c8dfcb7e3.png)

You need to select jsonata J: not string a/z. Also you have to input an object not a json (string)

 ![chrome_screenshot_1677001696652](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/e/e/ee205ecf492379ce1eff5ec3de5913a69540ce4c.png)  
example flow

```auto
[{"id":"8b48b1d7ea63411d","type":"inject","z":"da8a6ef0b3c9a5c8","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"{\"msg_id\":3004,\"device_info\":{\"device_id\":\"0016\",\"mac\":\"4091518a489a\"},\"data\":[{\"type\":8,\"value\":{\"timestamp\":\"2023-02-21T22:15:56+05:00\",\"type\":\"Unknown\",\"mac\":\"bc572900a054\",\"rssi\":-36,\"name\":\"KBPro_290155\",\"raw\":\"0201060303aafe1216aafe21010f0e5be8d148f3000ffff103f7091680207001000000000d094b4250726f5f323930313535\"}},{\"type\":8,\"value\":{\"timestamp\":\"2023-02-21T22:15:56+05:00\",\"type\":\"Unknown\",\"mac\":\"bc572900a097\",\"rssi\":-87,\"name\":\"KBPro_290222\",\"raw\":\"0201060303aafe0c16aafe2101070bf216e3427e091680206901000000000d094b4250726f5f323930323232\"}},{\"type\":8,\"value\":{\"timestamp\":\"2023-02-21T22:15:55+05:00\",\"type\":\"Unknown\",\"mac\":\"bc572900a046\",\"rssi\":-48,\"name\":\"KBPro_290141\",\"raw\":\"0201060303aafe1216aafe21010f0e5bf1aa41d3ffd2fbf9ffe1091680207001000000000d094b4250726f5f323930313431\"}}]}","payloadType":"json","x":170,"y":4600,"wires":[["cf0b16afe5f152c9","a81b088bee7c3ea9"]]},{"id":"cf0b16afe5f152c9","type":"change","z":"da8a6ef0b3c9a5c8","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"$$.payload.data.value.mac[]","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":360,"y":4600,"wires":[["9b498d9f9b9b0b73"]]},{"id":"a81b088bee7c3ea9","type":"debug","z":"da8a6ef0b3c9a5c8","name":"debug 234","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":350,"y":4680,"wires":[]},{"id":"9b498d9f9b9b0b73","type":"debug","z":"da8a6ef0b3c9a5c8","name":"debug 231","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":570,"y":4600,"wires":[]}]

```

---

<div class="post-metadata">

### Author: ![ankit.prasad](https://avatars.discourse-cdn.com/v4/letter/a/ea5d25/32.png) [@ankit.prasad](https://discourse.nodered.org/u/ankit.prasad)
#### Post date: [21 February 2023 17:57 UTC](https://discourse.nodered.org/t/extract-mac-and-raw/75520/9 "2023-02-21T17:57:30Z")

</div>

The data is received from MQTT

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

and the data array keeps changing like it may contain object from 1 to 4  
inside each object

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

we have timestamp mac rssi name raw

I just need to further process this which i am unable to do

---

<div class="post-metadata">

### Author: ![ankit.prasad](https://avatars.discourse-cdn.com/v4/letter/a/ea5d25/32.png) [@ankit.prasad](https://discourse.nodered.org/u/ankit.prasad)
#### Post date: [21 February 2023 18:09 UTC](https://discourse.nodered.org/t/extract-mac-and-raw/75520/10 "2023-02-21T18:09:53Z")

</div>

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

I am getting just mac address sometimes just 1 or in an array ,  
how can i have mac and raw together in one

---

<div class="post-metadata">

### Author: ![ankit.prasad](https://avatars.discourse-cdn.com/v4/letter/a/ea5d25/32.png) [@ankit.prasad](https://discourse.nodered.org/u/ankit.prasad)
#### Post date: [21 February 2023 18:12 UTC](https://discourse.nodered.org/t/extract-mac-and-raw/75520/11 "2023-02-21T18:12:26Z")

</div>

![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/6/0/60029fe2d1850efb9f092a761995d47f9355604a.png)

Some of the Array have 1 object but when it has more than 1 how to handle this condition

---

<div class="post-metadata">

### Author: ![ankit.prasad](https://avatars.discourse-cdn.com/v4/letter/a/ea5d25/32.png) [@ankit.prasad](https://discourse.nodered.org/u/ankit.prasad)
#### Post date: [21 February 2023 18:40 UTC](https://discourse.nodered.org/t/extract-mac-and-raw/75520/12 "2023-02-21T18:40:48Z")

</div>

Step 1 ##  
how to count number of object ?  
 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/a/3/a3ce38f55af30025d85020560e0490ff5c8a1e79.png)

and based on number of object if we can run loop to extract all values from inside

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

and them will send the data to influxdb ?

need help from step 1

---

<div class="post-metadata">

### Author: ![jbudd](https://avatars.discourse-cdn.com/v4/letter/j/5f8ce5/32.png) [@jbudd](https://discourse.nodered.org/u/jbudd)
#### Post date: [21 February 2023 20:24 UTC](https://discourse.nodered.org/t/extract-mac-and-raw/75520/13 "2023-02-21T20:24:45Z")

</div>

![Untitled 1](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/e/f/efd9f455a148191236be60d021f367d14ecd41d3.jpeg)

```auto
[{"id":"338ef65f42fb415e","type":"inject","z":"5e0266844891bb1c","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"{\"msg_id\":3004,\"device_info\":{\"device_id\":\"0016\",\"mac\":\"4091518a489a\"},\"data\":[{\"type\":8,\"value\":{\"timestamp\":\"2023-02-21T22:15:56+05:00\",\"type\":\"Unknown\",\"mac\":\"bc572900a054\",\"rssi\":-36,\"name\":\"KBPro_290155\",\"raw\":\"0201060303aafe1216aafe21010f0e5be8d148f3000ffff103f7091680207001000000000d094b4250726f5f323930313535\"}},{\"type\":8,\"value\":{\"timestamp\":\"2023-02-21T22:15:56+05:00\",\"type\":\"Unknown\",\"mac\":\"bc572900a097\",\"rssi\":-87,\"name\":\"KBPro_290222\",\"raw\":\"0201060303aafe0c16aafe2101070bf216e3427e091680206901000000000d094b4250726f5f323930323232\"}},{\"type\":8,\"value\":{\"timestamp\":\"2023-02-21T22:15:55+05:00\",\"type\":\"Unknown\",\"mac\":\"bc572900a046\",\"rssi\":-48,\"name\":\"KBPro_290141\",\"raw\":\"0201060303aafe1216aafe21010f0e5bf1aa41d3ffd2fbf9ffe1091680207001000000000d094b4250726f5f323930313431\"}}]}","payloadType":"json","x":890,"y":80,"wires":[["1107097c9215ae0f"]]},{"id":"10ab00c9fa760a7d","type":"split","z":"5e0266844891bb1c","name":"","splt":"\\n","spltType":"str","arraySplt":1,"arraySpltType":"len","stream":false,"addname":"","x":870,"y":160,"wires":[["3fec5ce32bb24029"]]},{"id":"1107097c9215ae0f","type":"change","z":"5e0266844891bb1c","name":"","rules":[{"t":"move","p":"payload.device_info.mac","pt":"msg","to":"mac","tot":"msg"},{"t":"move","p":"payload.data","pt":"msg","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":900,"y":120,"wires":[["10ab00c9fa760a7d"]]},{"id":"fdb8241d0ab9f9a5","type":"debug","z":"5e0266844891bb1c","name":"debug 263","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":890,"y":240,"wires":[]},{"id":"3fec5ce32bb24029","type":"change","z":"5e0266844891bb1c","name":"","rules":[{"t":"move","p":"payload.value.raw","pt":"msg","to":"payload.raw","tot":"msg"},{"t":"move","p":"mac","pt":"msg","to":"payload.mac","tot":"msg"},{"t":"delete","p":"parts","pt":"msg"},{"t":"delete","p":"payload.type","pt":"msg"},{"t":"delete","p":"payload.value","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":900,"y":200,"wires":[["fdb8241d0ab9f9a5"]]}]

```

---

<div class="post-metadata">

### Author: ![ankit.prasad](https://avatars.discourse-cdn.com/v4/letter/a/ea5d25/32.png) [@ankit.prasad](https://discourse.nodered.org/u/ankit.prasad)
#### Post date: [22 February 2023 05:36 UTC](https://discourse.nodered.org/t/extract-mac-and-raw/75520/14 "2023-02-22T05:36:20Z")

</div>

![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/c/b/cb51879f48253abc425c445b84a2df6689feee4b.png)  
Is it possible to add substring in rules to extract values if

1. MAC starts with BC
2. Extract substring from raw eg. substr(32, 4)

var Temp = Number(hexTo8p8(msg.payload.data[i].value.raw.substr(32, 4)));  
var Humidity = Number(hexTo8p8(msg.payload.data[i].value.raw.substr(36, 4)));

---

<div class="post-metadata">

### Author: ![jbudd](https://avatars.discourse-cdn.com/v4/letter/j/5f8ce5/32.png) [@jbudd](https://discourse.nodered.org/u/jbudd)
#### Post date: [22 February 2023 09:23 UTC](https://discourse.nodered.org/t/extract-mac-and-raw/75520/15 "2023-02-22T09:23:21Z")

</div>

I expect you could do that in the change node using Jsonata, otherwise in a function node.

---

<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: [23 April 2023 09:23 UTC](https://discourse.nodered.org/t/extract-mac-and-raw/75520/16 "2023-04-23T09:23:25Z")

</div>

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