# Data messed up after restart RPi

**URL:** <https://discourse.nodered.org/t/data-messed-up-after-restart-rpi/29429>\
**Category:** Dashboard\
**Created:** [3 July 2020 08:47 UTC](https://discourse.nodered.org/t/data-messed-up-after-restart-rpi/29429 "2020-07-03T08:47:59Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Becker](https://avatars.discourse-cdn.com/v4/letter/b/c77e96/32.png) [@Becker](https://discourse.nodered.org/u/Becker)\
**Post date:** [3 July 2020 08:47 UTC](https://discourse.nodered.org/t/data-messed-up-after-restart-rpi/29429/1 "2020-07-03T08:47:59Z")

</div>

Hi, after a restart my course is confused:

 ![1](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/7/d/7d0efef7c74a5046188a59624e4c619ca29286a5.jpeg)

Can I force the sequence somehow?

blue should always be "RLT", green always "AT" and black always "Hz".

🧐

thanks

---

<div class="post-metadata">

**Author:** ![Trying\_to\_learn](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/trying_to_learn/32/28400_2.png) [@Trying\_to\_learn](https://discourse.nodered.org/u/Trying_to_learn)\
**Post date:** [3 July 2020 08:51 UTC](https://discourse.nodered.org/t/data-messed-up-after-restart-rpi/29429/2 "2020-07-03T08:51:26Z")

</div>

Oooh, that is tricky.

I too have `charts` and want data to be certain colours.

Alas I don't know of a simple solution, but:

Options:  
1 - Use a `join` node to make a message after 4 messages have been received. Not exactly a solution, but something that may be handy to use later.  
2 - Have an `inject` node that is set to inject at start and use `delay` nodes to create a message in the order you want.

---

<div class="post-metadata">

**Author:** ![dceejay](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dceejay/32/38_2.png) [@dceejay](https://discourse.nodered.org/u/dceejay)\
**Post date:** [3 July 2020 08:52 UTC](https://discourse.nodered.org/t/data-messed-up-after-restart-rpi/29429/3 "2020-07-03T08:52:36Z")

</div>

If you need to fix the order you need to send a null value to each topic at deploy time in the order you want before any live data arrives. That will preset them

---

<div class="post-metadata">

**Author:** ![Trying\_to\_learn](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/trying_to_learn/32/28400_2.png) [@Trying\_to\_learn](https://discourse.nodered.org/u/Trying_to_learn)\
**Post date:** [3 July 2020 08:57 UTC](https://discourse.nodered.org/t/data-messed-up-after-restart-rpi/29429/4 "2020-07-03T08:57:46Z")

</div>

This is a quick one I whipped up.

Tweak the `delay` values as needed so they work correctly.

```auto
[{"id":"f7906acf.3ec518","type":"inject","z":"b9924a74.4d98f8","name":"On boot","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":120,"y":4700,"wires":[["b1ceefb9.070448","faf82b6a.d62d7"]]},{"id":"b1ceefb9.070448","type":"delay","z":"b9924a74.4d98f8","name":"delay","pauseType":"delay","timeout":"5","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":240,"y":4700,"wires":[["8fbadc9b.777c9","72594ad7.f113a4"]]},{"id":"faf82b6a.d62d7","type":"change","z":"b9924a74.4d98f8","name":"RLT","rules":[{"t":"set","p":"payload","pt":"msg","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":240,"y":4740,"wires":[["2c925459.e1ba8c"]]},{"id":"8fbadc9b.777c9","type":"delay","z":"b9924a74.4d98f8","name":"delay","pauseType":"delay","timeout":"5","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":380,"y":4700,"wires":[["b12b067d.1a6038"]]},{"id":"72594ad7.f113a4","type":"change","z":"b9924a74.4d98f8","name":"AT","rules":[{"t":"set","p":"payload","pt":"msg","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":380,"y":4740,"wires":[["2c925459.e1ba8c"]]},{"id":"b12b067d.1a6038","type":"change","z":"b9924a74.4d98f8","name":"HZ","rules":[{"t":"set","p":"payload","pt":"msg","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":510,"y":4740,"wires":[["2c925459.e1ba8c"]]},{"id":"2c925459.e1ba8c","type":"join","z":"b9924a74.4d98f8","name":"","mode":"custom","build":"string","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"","count":"3","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":510,"y":4790,"wires":[["74da10f1.36fbe8"]]},{"id":"74da10f1.36fbe8","type":"debug","z":"b9924a74.4d98f8","name":"To Chart","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":670,"y":4790,"wires":[]}]

```

That's a nudge in the right direction but I set the initial values to `0`. Probably better to do as @dceejay says. Just edit the `change` nodes.

 ![Screenshot from 2020-07-03 18-58-27](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/e/8/e89c70f2b5dc4c2db4a738f6d0cbcf93ee3ef681.png)

---

<div class="post-metadata">

**Author:** ![dceejay](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dceejay/32/38_2.png) [@dceejay](https://discourse.nodered.org/u/dceejay)\
**Post date:** [3 July 2020 08:59 UTC](https://discourse.nodered.org/t/data-messed-up-after-restart-rpi/29429/5 "2020-07-03T08:59:20Z")

</div>

You don’t need any delays, just make sure they are in the order you want

---

<div class="post-metadata">

**Author:** ![Trying\_to\_learn](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/trying_to_learn/32/28400_2.png) [@Trying\_to\_learn](https://discourse.nodered.org/u/Trying_to_learn)\
**Post date:** [3 July 2020 08:59 UTC](https://discourse.nodered.org/t/data-messed-up-after-restart-rpi/29429/6 "2020-07-03T08:59:52Z")

</div>

Sorry, I'm just OCD on that to make 1,000,000 % sure. 😉  
How would I make the 3 message then without a `delay` node?

Oh, as in make an `array` and spit it out. Ok. Yeah, probably better, but I can't remember how to make an array just now.

---

<div class="post-metadata">

**Author:** ![Trying\_to\_learn](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/trying_to_learn/32/28400_2.png) [@Trying\_to\_learn](https://discourse.nodered.org/u/Trying_to_learn)\
**Post date:** [3 July 2020 09:23 UTC](https://discourse.nodered.org/t/data-messed-up-after-restart-rpi/29429/7 "2020-07-03T09:23:24Z")

</div>

This is the other way @dceejay was indicating - I think.

But it sends the messages and sets their order.

```auto
[{"id":"93bc2016.84d5f8","type":"function","z":"b9924a74.4d98f8","name":"","func":"msg1 = ({\"topic\":\"RLT\",\"payload\":null});\nmsg2 = ({\"topic\":\"AT\",\"payload\":null});\nmsg3 = ({\"topic\":\"HZ\",\"payload\":null});\n\nnode.send(msg1);\nnode.send(msg2);\nnode.send(msg3);\n\nreturn;","outputs":1,"noerr":0,"x":230,"y":4870,"wires":[["2124fb20.74bf5c"]]},{"id":"8d552747.9e95b","type":"inject","z":"b9924a74.4d98f8","name":"On Boot","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":90,"y":4870,"wires":[["93bc2016.84d5f8"]]},{"id":"2124fb20.74bf5c","type":"debug","z":"b9924a74.4d98f8","name":"To chart node","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","x":390,"y":4870,"wires":[]}]

```

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [3 July 2020 10:33 UTC](https://discourse.nodered.org/t/data-messed-up-after-restart-rpi/29429/8 "2020-07-03T10:33:47Z")

</div>

You can make that a little more tidy using

```auto
msg1 = ({"topic":"RLT","payload":null});
msg2 = ({"topic":"AT","payload":null});
msg3 = ({"topic":"HZ","payload":null});

return [[msg1, msg2, msg3]];

```

Note the double brackets, otherwise is will send the messages separately to three outputs, rather than sequentially to one output.

---

<div class="post-metadata">

**Author:** ![dceejay](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dceejay/32/38_2.png) [@dceejay](https://discourse.nodered.org/u/dceejay)\
**Post date:** [3 July 2020 13:31 UTC](https://discourse.nodered.org/t/data-messed-up-after-restart-rpi/29429/9 "2020-07-03T13:31:29Z")

</div>

Thanks Colin. I’m stuck typing on phone one handed at the mo

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [3 July 2020 13:54 UTC](https://discourse.nodered.org/t/data-messed-up-after-restart-rpi/29429/10 "2020-07-03T13:54:54Z")

</div>

Also just noticed the lines

```auto
msg1 = ({"topic":"RLT","payload":null});

```

don't need the parentheses

```auto
msg1 = {"topic":"RLT","payload":null}

```

---

<div class="post-metadata">

**Author:** ![Becker](https://avatars.discourse-cdn.com/v4/letter/b/c77e96/32.png) [@Becker](https://discourse.nodered.org/u/Becker)\
**Post date:** [3 July 2020 16:12 UTC](https://discourse.nodered.org/t/data-messed-up-after-restart-rpi/29429/11 "2020-07-03T16:12:04Z")

</div>

order is correct, but the course stays empty - no data arrive ☹

---

<div class="post-metadata">

**Author:** ![dceejay](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dceejay/32/38_2.png) [@dceejay](https://discourse.nodered.org/u/dceejay)\
**Post date:** [3 July 2020 16:22 UTC](https://discourse.nodered.org/t/data-messed-up-after-restart-rpi/29429/12 "2020-07-03T16:22:42Z")

</div>

This is just to preset the order. You then need to send your data as you did before.

---

<div class="post-metadata">

**Author:** ![Becker](https://avatars.discourse-cdn.com/v4/letter/b/c77e96/32.png) [@Becker](https://discourse.nodered.org/u/Becker)\
**Post date:** [3 July 2020 19:48 UTC](https://discourse.nodered.org/t/data-messed-up-after-restart-rpi/29429/13 "2020-07-03T19:48:14Z")

</div>

i did nothing to send before.  
maybe you can help me with pictures:

 ![2](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/b/a/bacc1eabd61f6d7971d1c7b75392254df36d1c80.jpeg) ![3](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/f/4/f411d49d45338ef3b4da54ad7f100e10f96ba5bc.jpeg) ![4](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/4/3/4342c8bda986310db4903662d0c6111ff7fb492c.jpeg) ![5](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/0/0/000edec865e41603ec7a65af2fd37b4e4bc30acf.jpeg) ![6](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/1/1/1143aa21ec09bd36335095c28b17a615c6ae2af0.jpeg)

debug says: "null"  
 ![7](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/7/5/756f10fd94138a227d06bb9f4db1d332fc00fddf.jpeg)

null is german for zero !?!

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [3 July 2020 20:14 UTC](https://discourse.nodered.org/t/data-messed-up-after-restart-rpi/29429/14 "2020-07-03T20:14:54Z")

</div>

You should have left your original function as it was and added the new one along side it, driven by an inject node configured to inject once on startup. The new function node primes the chart then your data comes in through the old one as before.

Edit - just to clarify, both function nodes feed direct into the chart, not one into the other.

---

<div class="post-metadata">

**Author:** ![Becker](https://avatars.discourse-cdn.com/v4/letter/b/c77e96/32.png) [@Becker](https://discourse.nodered.org/u/Becker)\
**Post date:** [4 July 2020 09:56 UTC](https://discourse.nodered.org/t/data-messed-up-after-restart-rpi/29429/15 "2020-07-04T09:56:41Z")

</div>

Ok, but I don´t know how to inject once after restart 🧐

---

<div class="post-metadata">

**Author:** ![zenofmud](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/zenofmud/32/316_2.png) [@zenofmud](https://discourse.nodered.org/u/zenofmud)\
**Post date:** [4 July 2020 10:04 UTC](https://discourse.nodered.org/t/data-messed-up-after-restart-rpi/29429/16 "2020-07-04T10:04:47Z")

</div>

Take a look at the options of the `inject` node

---

<div class="post-metadata">

**Author:** ![dceejay](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dceejay/32/38_2.png) [@dceejay](https://discourse.nodered.org/u/dceejay)\
**Post date:** [4 July 2020 10:05 UTC](https://discourse.nodered.org/t/data-messed-up-after-restart-rpi/29429/17 "2020-07-04T10:05:21Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![Becker](https://avatars.discourse-cdn.com/v4/letter/b/c77e96/32.png) [@Becker](https://discourse.nodered.org/u/Becker)\
**Post date:** [4 July 2020 11:10 UTC](https://discourse.nodered.org/t/data-messed-up-after-restart-rpi/29429/18 "2020-07-04T11:10:32Z")

</div>

this is inject:

 ![grafik](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/2/7/27495b756f880e380cc04d84da5dd7bc29ddfa61.png)

but what should I choose ?

---

<div class="post-metadata">

**Author:** ![dceejay](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dceejay/32/38_2.png) [@dceejay](https://discourse.nodered.org/u/dceejay)\
**Post date:** [4 July 2020 11:51 UTC](https://discourse.nodered.org/t/data-messed-up-after-restart-rpi/29429/19 "2020-07-04T11:51:40Z")

</div>

it doesn't matter - (eg timestamp is ok) - as your function node then replaces the msg with it's own 4 new messages. As long as you tick the box I showed (which is hidden behind that dropdown)

(If you wanted to be super compact you could select {} JSON and then create the complete message in there instead of the function node - but I wouldn't bother for now if the function node works)

---

<div class="post-metadata">

**Author:** ![Becker](https://avatars.discourse-cdn.com/v4/letter/b/c77e96/32.png) [@Becker](https://discourse.nodered.org/u/Becker)\
**Post date:** [5 July 2020 11:29 UTC](https://discourse.nodered.org/t/data-messed-up-after-restart-rpi/29429/20 "2020-07-05T11:29:34Z")

</div>

I think it works now.  
 ![grafik](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/a/8/a88e61fee6b12574d37288d48ad9d69db1c2e4b2.png)  
just restartet once

[Next page](https://discourse.nodered.org/t/data-messed-up-after-restart-rpi/29429.md?page=2)
