# Nodes global variables

**URL:** <https://discourse.nodered.org/t/nodes-global-variables/39243>\
**Category:** General\
**Created:** [16 January 2021 21:43 UTC](https://discourse.nodered.org/t/nodes-global-variables/39243 "2021-01-16T21:43:17Z")\
**Posts on this page:** 11\
**Page:** 2

<div class="post-metadata">

**Author:** ![Marty1982](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/marty1982/32/20162_2.png) [@Marty1982](https://discourse.nodered.org/u/Marty1982)\
**Post date:** [20 January 2021 20:55 UTC](https://discourse.nodered.org/t/nodes-global-variables/39243/21 "2021-01-20T20:55:34Z")

</div>

> [@Steve-Mcl](#):
>
> ```auto
> [{"id":"1c91208.fec35df","type":"html","z":"f22589c6.40ba28","name":"","property":"payload","outproperty":"payload","tag":"tr","ret":"html","as":"multi","x":594,"y":416,"wires":[["24ff0fa2.0bd78"]]},{"id":"24ff0fa2.0bd78","type":"html","z":"f22589c6.40ba28","name":"","property":"payload","outproperty":"payload","tag":"td","ret":"html","as":"single","x":714,"y":416,"wires":[["dd64a4c0.568c58"]]},{"id":"99820d79.ce827","type":"http request","z":"f22589c6.40ba28","name":"","method":"GET","ret":"txt","paytoqs":"ignore","url":"http://ota.tasmota.com/tasmota/release/","tls":"","persist":false,"proxy":"","authType":"","x":454,"y":416,"wires":[["1c91208.fec35df"]]},{"id":"dd64a4c0.568c58","type":"switch","z":"f22589c6.40ba28","name":"","property":"payload[0]","propertyType":"msg","rules":[{"t":"cont","v":"tasmota.bin","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":594,"y":464,"wires":[["f16ce907.a37a88"]]},{"id":"3fc09af7.0c6176","type":"inject","z":"f22589c6.40ba28","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":304,"y":416,"wires":[["99820d79.ce827"]]},{"id":"f16ce907.a37a88","type":"change","z":"f22589c6.40ba28","name":"","rules":[{"t":"set","p":"topic","pt":"msg","to":"availableVersion","tot":"str"},{"t":"set","p":"payload","pt":"msg","to":"payload[6]","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":768,"y":464,"wires":[["a7dbed0c.cc957","9b06e128.2a5fe"]]},{"id":"a7dbed0c.cc957","type":"join","z":"f22589c6.40ba28","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":true,"timeout":"","count":"2","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":962,"y":496,"wires":[["d3fe8df0.e1e6e","88eaf502.bf6ce8"]]},{"id":"d3fe8df0.e1e6e","type":"function","z":"f22589c6.40ba28","name":"compare tasmota web version with tasmota version","func":"var webVersion = msg.payload.availableVersion; //get web version\nvar deviceData = msg.payload.deviceData; //get array of devices\nvar current = [];//where results will go\nvar old = [];\n//loop through each device\nfor (let i = 0; i < deviceData.length; i++) {\n let device = deviceData[i]; //get this device\n var v = device.version; //get device version\n device.version = v.split(\"(\")[0]; //split on \"(\" then take first element [0]\n device.webVersion = webVersion; //optional\n device.match = (device.version == device.webVersion); //compare device version to webVersion\n if(device.match) {\n current.push(device); //add result\n } else {\n old.push(device); //add result\n }\n}\n\nmsg.payload = {\n current: current,\n old: old\n}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1294,"y":496,"wires":[["88f9688.fd3c198"]]},{"id":"7aa173f.df7f18c","type":"debug","z":"f22589c6.40ba28","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":982,"y":544,"wires":[]},{"id":"88f9688.fd3c198","type":"debug","z":"f22589c6.40ba28","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1398,"y":544,"wires":[]},{"id":"f8eb8e72.964b3","type":"function","z":"f22589c6.40ba28","name":"hosts","func":"const tasmotas = [\"192.168.1.40\",\"192.168.1.180\"]\nconst status= \"/cm?cmnd=Status%200\"\nfor(let x=0;x<tasmotas.length;x++){\n node.send({\n url:\"http://\"+tasmotas[x]+status,\n ip: tasmotas[x]\n })\n}\nmsg.complete = true;\nmsg.payload = null;\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","x":434,"y":592,"wires":[["bb624e81.2c073"]]},{"id":"19318c4c.785cc4","type":"inject","z":"f22589c6.40ba28","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":300,"y":592,"wires":[["f8eb8e72.964b3"]]},{"id":"24ca6b8a.fb6844","type":"comment","z":"f22589c6.40ba28","name":"NOTA","info":"Al agregar mas sonoff hay que dar de alta la ip en el nodo \"hosts\" y en el nodo \"batch\" hay que sumar la cantidad de mensajes, osea, 2 mensajes 2 sonoffs, 3 mensajes 3 sonoffs...","x":274,"y":640,"wires":[]},{"id":"8828e76c.1e13c8","type":"comment","z":"f22589c6.40ba28","name":"Check Sonoff versions","info":"","x":324,"y":536,"wires":[]},{"id":"5c4cede2.0021b4","type":"comment","z":"f22589c6.40ba28","name":"Check Tasmota Web Version","info":"","x":344,"y":356,"wires":[]},{"id":"bb624e81.2c073","type":"function","z":"f22589c6.40ba28","name":"fake device requests","func":"var fake_httprequests = {\n \"192.168.1.40\": {\"Status\":{\"Module\":1,\"DeviceName\":\"luz_prueba\",\"FriendlyName\":[\"luz_prueba\"],\"Topic\":\"luz_prueba\",\"ButtonTopic\":\"0\",\"Power\":0,\"PowerOnState\":3,\"LedState\":1,\"LedMask\":\"FFFF\",\"SaveData\":1,\"SaveState\":1,\"SwitchTopic\":\"0\",\"SwitchMode\":[0,0,0,0,0,0,0,0],\"ButtonRetain\":0,\"SwitchRetain\":0,\"SensorRetain\":0,\"PowerRetain\":0},\"StatusPRM\":{\"Baudrate\":115200,\"SerialConfig\":\"8N1\",\"GroupTopic\":\"tasmotas\",\"OtaUrl\":\"http://ota.tasmota.com/tasmota/release/tasmota.bin\",\"RestartReason\":\"Power On\",\"Uptime\":\"14T20:22:27\",\"StartupUTC\":\"2021-01-05T21:28:02\",\"Sleep\":50,\"CfgHolder\":4617,\"BootCount\":304,\"BCResetTime\":\"2020-06-12T04:30:48\",\"SaveCount\":3440,\"SaveAddress\":\"F9000\"},\"StatusFWR\":{\"Version\":\"9.2.0(tasmota)\",\"BuildDateTime\":\"2020-12-21T15:03:40\",\"Boot\":7,\"Core\":\"2_7_4_9\",\"SDK\":\"2.2.2-dev(38a443e)\",\"CpuFrequency\":80,\"Hardware\":\"ESP8285\",\"CR\":\"404/699\"},\"StatusLOG\":{\"SerialLog\":2,\"WebLog\":2,\"MqttLog\":0,\"SysLog\":0,\"LogHost\":\"\",\"LogPort\":514,\"SSId\":[\"BellVille2.4ghz\",\"\"],\"TelePeriod\":300,\"Resolution\":\"558180C0\",\"SetOption\":[\"002A8009\",\"2805C8000100060000005A00000000000000\",\"00000228\",\"00006000\",\"00000000\"]},\"StatusMEM\":{\"ProgramSize\":586,\"Free\":416,\"Heap\":23,\"ProgramFlashSize\":1024,\"FlashSize\":1024,\"FlashChipId\":\"144051\",\"FlashFrequency\":40,\"FlashMode\":3,\"Features\":[\"00000809\",\"8FDAC787\",\"04368001\",\"000000CF\",\"010013C0\",\"C000F981\",\"00004004\",\"00001000\"],\"Drivers\":\"1,2,3,4,5,6,7,8,9,10,12,16,18,19,20,21,22,24,26,27,29,30,35,37,45\",\"Sensors\":\"1,2,3,4,5,6\"},\"StatusNET\":{\"Hostname\":\"luz_prueba-6101\",\"IPAddress\":\"192.168.1.40\",\"Gateway\":\"192.168.1.1\",\"Subnetmask\":\"255.255.255.0\",\"DNSServer\":\"192.168.1.1\",\"Mac\":\"60:01:94:CA:37:D5\",\"Webserver\":2,\"WifiConfig\":4,\"WifiPower\":17},\"StatusMQT\":{\"MqttHost\":\"192.168.1.8\",\"MqttPort\":1883,\"MqttClientMask\":\"DVES_%06X\",\"MqttClient\":\"DVES_CA37D5\",\"MqttUser\":\"mosquitto\",\"MqttCount\":4,\"MAX_PACKET_SIZE\":1200,\"KEEPALIVE\":30},\"StatusTIM\":{\"UTC\":\"2021-01-20T17:50:29\",\"Local\":\"2021-01-20T18:50:29\",\"StartDST\":\"2021-03-28T02:00:00\",\"EndDST\":\"2021-10-31T03:00:00\",\"Timezone\":\"+01:00\",\"Sunrise\":\"08:34\",\"Sunset\":\"17:28\"},\"StatusSNS\":{\"Time\":\"2021-01-20T18:50:29\"},\"StatusSTS\":{\"Time\":\"2021-01-20T18:50:29\",\"Uptime\":\"14T20:22:27\",\"UptimeSec\":1282947,\"Heap\":23,\"SleepMode\":\"Dynamic\",\"Sleep\":50,\"LoadAvg\":19,\"MqttCount\":4,\"POWER\":\"OFF\",\"Wifi\":{\"AP\":1,\"SSId\":\"BellVille2.4ghz\",\"BSSId\":\"C8:D7:19:52:9D:27\",\"Channel\":10,\"RSSI\":100,\"Signal\":-40,\"LinkCount\":4,\"Downtime\":\"0T00:09:52\"}}},\n \"192.168.1.180\": {\"Status\":{\"Module\":1,\"DeviceName\":\"luz_escritorio_garaje\",\"FriendlyName\":[\"luz_escritorio_garaje\"],\"Topic\":\"luz_escritorio_garaje\",\"ButtonTopic\":\"0\",\"Power\":1,\"PowerOnState\":3,\"LedState\":1,\"LedMask\":\"FFFF\",\"SaveData\":1,\"SaveState\":1,\"SwitchTopic\":\"0\",\"SwitchMode\":[0,0,0,0,0,0,0,0],\"ButtonRetain\":0,\"SwitchRetain\":0,\"SensorRetain\":0,\"PowerRetain\":0},\"StatusPRM\":{\"Baudrate\":115200,\"SerialConfig\":\"8N1\",\"GroupTopic\":\"sonoffs\",\"OtaUrl\":\"http://thehackbox.org/tasmota/release/tasmota.bin\",\"RestartReason\":\"Software/System restart\",\"Uptime\":\"0T23:52:49\",\"StartupUTC\":\"2021-01-19T17:57:41\",\"Sleep\":50,\"CfgHolder\":4617,\"BootCount\":488,\"BCResetTime\":\"2020-04-15T00:57:39\",\"SaveCount\":6301,\"SaveAddress\":\"F7000\"},\"StatusFWR\":{\"Version\":\"8.5.0(tasmota)\",\"BuildDateTime\":\"2020-09-09T11:41:02\",\"Boot\":7,\"Core\":\"2_7_4_1\",\"SDK\":\"2.2.2-dev(38a443e)\",\"CpuFrequency\":80,\"Hardware\":\"ESP8285\",\"CR\":\"430/699\"},\"StatusLOG\":{\"SerialLog\":2,\"WebLog\":2,\"MqttLog\":0,\"SysLog\":0,\"LogHost\":\"\",\"LogPort\":514,\"SSId\":[\"BellVille2.4ghz\",\"\"],\"TelePeriod\":300,\"Resolution\":\"558180C0\",\"SetOption\":[\"002A8109\",\"2805C8000100060000005AFF000000000000\",\"00000200\",\"00006000\",\"00000000\"]},\"StatusMEM\":{\"ProgramSize\":595,\"Free\":408,\"Heap\":23,\"ProgramFlashSize\":1024,\"FlashSize\":1024,\"FlashChipId\":\"144051\",\"FlashFrequency\":40,\"FlashMode\":3,\"Features\":[\"00000809\",\"8FDAE797\",\"04368001\",\"000000CD\",\"010013C0\",\"C000F981\",\"00004004\",\"00000000\"],\"Drivers\":\"1,2,3,4,5,6,7,8,9,10,12,16,18,19,20,21,22,24,26,27,29,30,35,37\",\"Sensors\":\"1,2,3,4,5,6\"},\"StatusNET\":{\"Hostname\":\"luz_escritorio_garaje\",\"IPAddress\":\"192.168.1.180\",\"Gateway\":\"192.168.1.1\",\"Subnetmask\":\"255.255.255.0\",\"DNSServer\":\"192.168.1.1\",\"Mac\":\"DC:4F:22:F9:7D:69\",\"Webserver\":2,\"WifiConfig\":2,\"WifiPower\":17},\"StatusMQT\":{\"MqttHost\":\"192.168.1.8\",\"MqttPort\":1883,\"MqttClientMask\":\"DVES_%06X\",\"MqttClient\":\"DVES_F97D69\",\"MqttUser\":\"mosquitto\",\"MqttCount\":1,\"MAX_PACKET_SIZE\":1200,\"KEEPALIVE\":30},\"StatusTIM\":{\"UTC\":\"2021-01-20T17:50:30\",\"Local\":\"2021-01-20T18:50:30\",\"StartDST\":\"2021-03-28T02:00:00\",\"EndDST\":\"2021-10-31T03:00:00\",\"Timezone\":\"+01:00\",\"Sunrise\":\"08:34\",\"Sunset\":\"17:28\"},\"StatusSNS\":{\"Time\":\"2021-01-20T18:50:30\"},\"StatusSTS\":{\"Time\":\"2021-01-20T18:50:30\",\"Uptime\":\"0T23:52:49\",\"UptimeSec\":85969,\"Heap\":23,\"SleepMode\":\"Dynamic\",\"Sleep\":50,\"LoadAvg\":19,\"MqttCount\":1,\"POWER\":\"ON\",\"Wifi\":{\"AP\":1,\"SSId\":\"BellVille2.4ghz\",\"BSSId\":\"C8:D7:19:52:9D:27\",\"Channel\":10,\"RSSI\":94,\"Signal\":-53,\"LinkCount\":1,\"Downtime\":\"0T00:00:06\"}}},\n}\n\nmsg.payload = fake_httprequests[msg.ip]\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":612,"y":592,"wires":[["ec9d2b2e.071af8"]]},{"id":"ec9d2b2e.071af8","type":"join","z":"f22589c6.40ba28","name":"","mode":"custom","build":"array","property":"payload","propertyType":"msg","key":"","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"","count":"","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":594,"y":544,"wires":[["17b0f4da.d1640b"]]},{"id":"17b0f4da.d1640b","type":"change","z":"f22589c6.40ba28","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.{ \"name\": **.Hostname, \"ipAddress\":**.IPAddress, \"version\":**.Version }","tot":"jsonata"},{"t":"set","p":"topic","pt":"msg","to":"deviceData","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":768,"y":544,"wires":[["7aa173f.df7f18c","a7dbed0c.cc957"]]},{"id":"9b06e128.2a5fe","type":"debug","z":"f22589c6.40ba28","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":982,"y":448,"wires":[]},{"id":"88eaf502.bf6ce8","type":"debug","z":"f22589c6.40ba28","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1190,"y":544,"wires":[]}]
> 
> ```

Great work man! Absolutely great...now i know how it works!

Thanks a lot!!

---

<div class="post-metadata">

**Author:** ![Marty1982](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/marty1982/32/20162_2.png) [@Marty1982](https://discourse.nodered.org/u/Marty1982)\
**Post date:** [25 January 2021 03:28 UTC](https://discourse.nodered.org/t/nodes-global-variables/39243/22 "2021-01-25T03:28:32Z")

</div>

Hi @Steve-Mcl

One last question about the flow, i want to have one final message with the devices that are not updated (comparing them in the previous nodes), is it possible with a Switch node?.

Thanks a lot!

---

<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:** [25 January 2021 07:23 UTC](https://discourse.nodered.org/t/nodes-global-variables/39243/23 "2021-01-25T07:23:27Z")

</div>

In the message is already a list (array) of devices that don't have up to date firmware already. I don't understand what you are asking.

---

<div class="post-metadata">

**Author:** ![Marty1982](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/marty1982/32/20162_2.png) [@Marty1982](https://discourse.nodered.org/u/Marty1982)\
**Post date:** [25 January 2021 12:39 UTC](https://discourse.nodered.org/t/nodes-global-variables/39243/24 "2021-01-25T12:39:06Z")

</div>

ok, i mean, what about to filter somehow the devices that have key/value match:false, that tells me what are the devices that are not updated.

---

<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:** [25 January 2021 12:56 UTC](https://discourse.nodered.org/t/nodes-global-variables/39243/25 "2021-01-25T12:56:30Z")

</div>

I don't understand. The array in `msg.payload.old` is already a filtered list of all devices that don't match the web version (match: false). What exactly do you require? What is it you are trying to achieve?

---

<div class="post-metadata">

**Author:** ![Marty1982](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/marty1982/32/20162_2.png) [@Marty1982](https://discourse.nodered.org/u/Marty1982)\
**Post date:** [25 January 2021 13:14 UTC](https://discourse.nodered.org/t/nodes-global-variables/39243/26 "2021-01-25T13:14:41Z")

</div>

Ok, i want to send via Telegram (i already use this), only the devices that are not updated. Maybe i should filter somehow only the OLD array in order to obtain what i want.

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

Maybe i misundertood something o im confused...

---

<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:** [25 January 2021 13:23 UTC](https://discourse.nodered.org/t/nodes-global-variables/39243/27 "2021-01-25T13:23:37Z")

</div>

> [@Marty1982](#):
>
> Maybe i should filter somehow

there is no need to filter - just use `msg.payload.old` - all items in that list (array) will be the NON matching versions. You already have this!

* * *

However, as you are sending to telegram then you likely want a string so try this...

add function node ("after compare version" function)

```auto
var oldDevices = msg.payload.old;
if(oldDevices && oldDevices.length) {
  msg.payload = `Found ${oldDevices.length} devices with wrong version...\n` + msg.payload.old.map(e => `NAME: ${e.name}, IP: ${ipAddress}, VER: ${e.version}`).join("\n")
  return msg;
}

```

---

<div class="post-metadata">

**Author:** ![Marty1982](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/marty1982/32/20162_2.png) [@Marty1982](https://discourse.nodered.org/u/Marty1982)\
**Post date:** [25 January 2021 13:57 UTC](https://discourse.nodered.org/t/nodes-global-variables/39243/28 "2021-01-25T13:57:22Z")

</div>

Uh ok, great approach...

There is something wrong or missing with the IpAddress key...

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

I have this inside the function node, i've added the telegram options so i can send the message.  
 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/d/9/d9c4f381e419270000bf18e0bf6efca448ac20ed.png)

---

<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:** [25 January 2021 17:25 UTC](https://discourse.nodered.org/t/nodes-global-variables/39243/29 "2021-01-25T17:25:03Z")

</div>

Was missing the `e.` (code was untested)

```auto
var oldDevices = msg.payload.old;
if(oldDevices && oldDevices.length) {
  msg.payload = `Found ${oldDevices.length} devices with wrong version...\n` + msg.payload.old.map(e => `NAME: ${e.name}, IP: ${e.ipAddress}, VER: ${e.version}`).join("\n")
  return msg;
}

```

---

<div class="post-metadata">

**Author:** ![Marty1982](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/marty1982/32/20162_2.png) [@Marty1982](https://discourse.nodered.org/u/Marty1982)\
**Post date:** [25 January 2021 18:02 UTC](https://discourse.nodered.org/t/nodes-global-variables/39243/30 "2021-01-25T18:02:35Z")

</div>

> [@Steve-Mcl](#):
>
> ```auto
> msg.payload = `Found ${oldDevices.length} devices with wrong version...\n` + msg.payload.old.map(e => `NAME: ${e.name}, IP: ${e.ipAddress}, VER: ${e.version}`).join("\n")
> 
> ```

Thanks it works great!!

Regards!

---

<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:** [8 February 2021 18:03 UTC](https://discourse.nodered.org/t/nodes-global-variables/39243/31 "2021-02-08T18:03:36Z")

</div>

Closed on 8 February 2021 18:03 UTC

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

[Previous page](https://discourse.nodered.org/t/nodes-global-variables/39243.md?page=1)
