# Dashboard 1 example versus dashboard 2 example what must be changed by data restore?

**URL:** <https://discourse.nodered.org/t/dashboard-1-example-versus-dashboard-2-example-what-must-be-changed-by-data-restore/99809>\
**Category:** Dashboard\
**Created:** [29 November 2025 15:52 UTC](https://discourse.nodered.org/t/dashboard-1-example-versus-dashboard-2-example-what-must-be-changed-by-data-restore/99809 "2025-11-29T15:52:41Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![reiry](https://avatars.discourse-cdn.com/v4/letter/r/ebca7d/32.png) [@reiry](https://discourse.nodered.org/u/reiry)\
**Post date:** [29 November 2025 15:52 UTC](https://discourse.nodered.org/t/dashboard-1-example-versus-dashboard-2-example-what-must-be-changed-by-data-restore/99809/1 "2025-11-29T15:52:42Z")

</div>

There is an example in the Node-RED Help Dashboard 1 for saving and restoring charts,  
but I haven't been able to replicate this so easily with Dashboard 2. What is different?

Spezific to those situation:

```auto
flows
[{"id":"4679091.0341ff8","type":"ui_button","z":"89b47660.0ba428","name":"","group":"212b7f06.b4731","order":2,"width":"2","height":"1","label":"Inject","color":"","bgcolor":"","icon":"","payload":"","payloadType":"str","topic":"","x":90,"y":60,"wires":[["63911393.d1513c"]]},{"id":"fa4f25b6.ea4048","type":"ui_button","z":"89b47660.0ba428","name":"","group":"212b7f06.b4731","order":4,"width":"2","height":"1","label":"restore","color":"","bgcolor":"","icon":"","payload":"","payloadType":"str","topic":"","x":90,"y":360,"wires":[["9b9cfb63.2f50f8"]]},{"id":"63911393.d1513c","type":"random","z":"89b47660.0ba428","name":"","low":"0","high":"10","inte":"true","x":240,"y":60,"wires":[["9e4c2fd0.aac16"]]},{"id":"9e4c2fd0.aac16","type":"ui_chart","z":"89b47660.0ba428","name":"","group":"212b7f06.b4731","order":1,"width":0,"height":0,"label":"chart","chartType":"line","legend":"false","xformat":"HH:mm:ss","interpolate":"bezier","nodata":"","ymin":"","ymax":"","removeOlder":"15","removeOlderPoints":"100","removeOlderUnit":"60","cutout":0,"x":390,"y":60,"wires":[["ef3ff83b.aa5008"],]},{"id":"8f316ad0.85cdd8","type":"file","z":"89b47660.0ba428","name":"","filename":"/tmp/chart.log","appendNewline":true,"createDir":false,"overwriteFile":"true","x":540,"y":220,"wires":},{"id":"9b9cfb63.2f50f8","type":"file in","z":"89b47660.0ba428","name":"","filename":"/tmp/chart.log","format":"utf8","x":240,"y":360,"wires":[["b13ea0c3.a7955"]]},{"id":"ef3ff83b.aa5008","type":"json","z":"89b47660.0ba428","name":"","x":530,"y":60,"wires":[["ef80c15e.8dbc3"]]},{"id":"b13ea0c3.a7955","type":"json","z":"89b47660.0ba428","name":"","x":390,"y":360,"wires":[["9e4c2fd0.aac16"]]},{"id":"ef80c15e.8dbc3","type":"function","z":"89b47660.0ba428","name":"","func":"if (msg.topic === "save") {\n msg.payload = context.last;\n return msg;\n}\nelse {\n context.last = msg.payload;\n}\nreturn null;","outputs":1,"noerr":0,"x":270,"y":220,"wires":[["8f316ad0.85cdd8"]]},{"id":"87cc5e2e.b0836","type":"ui_button","z":"89b47660.0ba428","name":"","group":"212b7f06.b4731","order":3,"width":"2","height":"1","label":"save","color":"","bgcolor":"","icon":"","payload":"","payloadType":"str","topic":"save","x":90,"y":220,"wires":[["ef80c15e.8dbc3"]]},{"id":"212b7f06.b4731","type":"ui_group","z":"","name":"Gauge","tab":"e7f7ff66.2de07","order":2,"disp":true,"width":"6"},{"id":"e7f7ff66.2de07","type":"ui_tab","z":"","name":"Restore","icon":"dashboard"}]

```

---

<div class="post-metadata">

**Author:** ![reiry](https://avatars.discourse-cdn.com/v4/letter/r/ebca7d/32.png) [@reiry](https://discourse.nodered.org/u/reiry)\
**Post date:** [29 November 2025 15:54 UTC](https://discourse.nodered.org/t/dashboard-1-example-versus-dashboard-2-example-what-must-be-changed-by-data-restore/99809/2 "2025-11-29T15:54:34Z")

</div>

and i now but it code in dose not work with chromium browser!!! Sorry and my question was verry specific @Colin

---

<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:** [29 November 2025 16:17 UTC](https://discourse.nodered.org/t/dashboard-1-example-versus-dashboard-2-example-what-must-be-changed-by-data-restore/99809/3 "2025-11-29T16:17:27Z")

</div>

> [@reiry](#):
>
> What is different?

Everything is different with the new dashboard.

See [Is there a way to have the data in the 2.0 chart node survive restarts? · Issue #1362 · FlowFuse/node-red-dashboard · GitHub](https://github.com/FlowFuse/node-red-dashboard/issues/1362)

Or possibly [this](https://discourse.nodered.org/t/storing-chart-data-from-a-d2-dashboard/90832) may be helpful.

---

<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:** [29 November 2025 16:18 UTC](https://discourse.nodered.org/t/dashboard-1-example-versus-dashboard-2-example-what-must-be-changed-by-data-restore/99809/4 "2025-11-29T16:18:11Z")

</div>

For the future, if you are posting flows, In order to make code readable and usable it is necessary to surround your code with three backticks (also known as a left quote or backquote `````)

````auto
``` 
   code goes here 
```

````

You can edit and correct your post by clicking the pencil ✏ icon.

See this post for more details - [How to share code or flow json](https://discourse.nodered.org/t/how-to-share-code-or-flow-json/506)

---

<div class="post-metadata">

**Author:** ![reiry](https://avatars.discourse-cdn.com/v4/letter/r/ebca7d/32.png) [@reiry](https://discourse.nodered.org/u/reiry)\
**Post date:** [29 November 2025 18:44 UTC](https://discourse.nodered.org/t/dashboard-1-example-versus-dashboard-2-example-what-must-be-changed-by-data-restore/99809/5 "2025-11-29T18:44:48Z")

</div>

not helpfull sorry not logic and not spezific!

---

<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:** [29 November 2025 19:51 UTC](https://discourse.nodered.org/t/dashboard-1-example-versus-dashboard-2-example-what-must-be-changed-by-data-restore/99809/6 "2025-11-29T19:51:42Z")

</div>

> [@reiry](#):
>
> What is different?

Dashnoard1 outputted the complete data array for the number of point to display, so you could save the complate data array .

Dashboard2 only outputs the single data point just added to the chart.  
So you would need to append that data to your stored data. and limit the data you require to store.

As Colin has mentioned you flow example is corrupt. If you require assistance please supply a working example of what you have tried.

Meantime a search of the forum may help [Search results for 'dashboard 2 store chart data' - Node-RED Forum](https://discourse.nodered.org/search?q=dashboard%202%20store%20chart%20data)

---

<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:** [29 November 2025 21:11 UTC](https://discourse.nodered.org/t/dashboard-1-example-versus-dashboard-2-example-what-must-be-changed-by-data-restore/99809/7 "2025-11-29T21:11:59Z")

</div>

> [@reiry](#):
>
> not helpfull sorry not logic and not spezific!

Did the solution in the first link not work for you?

---

<div class="post-metadata">

**Author:** ![reiry](https://avatars.discourse-cdn.com/v4/letter/r/ebca7d/32.png) [@reiry](https://discourse.nodered.org/u/reiry)\
**Post date:** [1 December 2025 12:44 UTC](https://discourse.nodered.org/t/dashboard-1-example-versus-dashboard-2-example-what-must-be-changed-by-data-restore/99809/8 "2025-12-01T12:44:25Z")

</div>

again the exsample:

```auto
[
    {
        "id": "4679091.0341ff8",
        "type": "ui_button",
        "z": "d730d09642dfbb06",
        "name": "",
        "group": "212b7f06.b4731",
        "order": 2,
        "width": 2,
        "height": 1,
        "passthru": false,
        "label": "Inject",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "className": "",
        "icon": "",
        "payload": "",
        "payloadType": "str",
        "topic": "",
        "topicType": "str",
        "x": 350,
        "y": 260,
        "wires": [
            [
                "c5468c55441423ab"
            ]
        ]
    },
    {
        "id": "fa4f25b6.ea4048",
        "type": "ui_button",
        "z": "d730d09642dfbb06",
        "name": "",
        "group": "212b7f06.b4731",
        "order": 4,
        "width": 2,
        "height": 1,
        "passthru": false,
        "label": "restore",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "className": "",
        "icon": "",
        "payload": "",
        "payloadType": "str",
        "topic": "",
        "topicType": "str",
        "x": 360,
        "y": 580,
        "wires": [
            [
                "9b9cfb63.2f50f8"
            ]
        ]
    },
    {
        "id": "9e4c2fd0.aac16",
        "type": "ui_chart",
        "z": "d730d09642dfbb06",
        "name": "",
        "group": "212b7f06.b4731",
        "order": 1,
        "width": 0,
        "height": 0,
        "label": "chart",
        "chartType": "line",
        "legend": "false",
        "xformat": "HH:mm:ss",
        "interpolate": "bezier",
        "nodata": "",
        "dot": false,
        "ymin": "",
        "ymax": "",
        "removeOlder": "15",
        "removeOlderPoints": "100",
        "removeOlderUnit": "60",
        "cutout": 0,
        "useOneColor": false,
        "useUTC": false,
        "colors": [
            "#1f77b4",
            "#aec7e8",
            "#ff7f0e",
            "#2ca02c",
            "#98df8a",
            "#d62728",
            "#ff9896",
            "#9467bd",
            "#c5b0d5"
        ],
        "outputs": 1,
        "useDifferentColor": false,
        "className": "",
        "x": 770,
        "y": 240,
        "wires": [
            [
                "ef3ff83b.aa5008"
            ]
        ]
    },
    {
        "id": "8f316ad0.85cdd8",
        "type": "file",
        "z": "d730d09642dfbb06",
        "name": "",
        "filename": "/home/rr/Dokumente/Logger/testloggerb.log",
        "filenameType": "str",
        "appendNewline": true,
        "createDir": false,
        "overwriteFile": "true",
        "x": 1030,
        "y": 420,
        "wires": [
            []
        ]
    },
    {
        "id": "9b9cfb63.2f50f8",
        "type": "file in",
        "z": "d730d09642dfbb06",
        "name": "",
        "filename": "/home/rr/Dokumente/Logger/testloggerb.log",
        "filenameType": "str",
        "format": "utf8",
        "allProps": false,
        "x": 750,
        "y": 640,
        "wires": [
            [
                "b13ea0c3.a7955"
            ]
        ]
    },
    {
        "id": "ef3ff83b.aa5008",
        "type": "json",
        "z": "d730d09642dfbb06",
        "name": "",
        "property": "payload",
        "action": "",
        "pretty": false,
        "x": 1010,
        "y": 200,
        "wires": [
            [
                "ef80c15e.8dbc3",
                "4fae6e8b5f0590ec"
            ]
        ]
    },
    {
        "id": "b13ea0c3.a7955",
        "type": "json",
        "z": "d730d09642dfbb06",
        "name": "",
        "property": "payload",
        "action": "",
        "pretty": false,
        "x": 750,
        "y": 560,
        "wires": [
            [
                "9e4c2fd0.aac16"
            ]
        ]
    },
    {
        "id": "ef80c15e.8dbc3",
        "type": "function",
        "z": "d730d09642dfbb06",
        "name": "",
        "func": "if (msg.topic === \"save\") {\n msg.payload = context.last;\n return msg;\n}\nelse {\n context.last = msg.payload;\n}\nreturn null;",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 650,
        "y": 400,
        "wires": [
            [
                "8f316ad0.85cdd8"
            ]
        ]
    },
    {
        "id": "87cc5e2e.b0836",
        "type": "ui_button",
        "z": "d730d09642dfbb06",
        "name": "",
        "group": "212b7f06.b4731",
        "order": 3,
        "width": 2,
        "height": 1,
        "passthru": false,
        "label": "save",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "className": "",
        "icon": "",
        "payload": "",
        "payloadType": "str",
        "topic": "save",
        "topicType": "str",
        "x": 330,
        "y": 400,
        "wires": [
            [
                "ef80c15e.8dbc3"
            ]
        ]
    },
    {
        "id": "c5468c55441423ab",
        "type": "Number",
        "z": "d730d09642dfbb06",
        "name": "Random Number",
        "minimum": "0",
        "maximum": "100",
        "roundTo": "2",
        "Floor": true,
        "x": 550,
        "y": 180,
        "wires": [
            [
                "9e4c2fd0.aac16"
            ]
        ]
    },
    {
        "id": "4fae6e8b5f0590ec",
        "type": "debug",
        "z": "d730d09642dfbb06",
        "name": "debug 36",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 1220,
        "y": 200,
        "wires": []
    },
    {
        "id": "212b7f06.b4731",
        "type": "ui_group",
        "name": "Gauge",
        "tab": "e7f7ff66.2de07",
        "order": 2,
        "disp": true,
        "width": "6",
        "collapse": false,
        "className": ""
    },
    {
        "id": "e7f7ff66.2de07",
        "type": "ui_tab",
        "name": "Restore",
        "icon": "dashboard",
        "disabled": false,
        "hidden": false
    }
]

```

but for deep dive it clear that the dasboard 2 so massiv the datastucure has changed but how ?

Yes i have read the GIT HUB but is absolut mis understanding…

also how works vom any chart the array to any log file what is teh difrrenz? In dashboard 1 it was so easy ,\_9

---

<div class="post-metadata">

**Author:** ![reiry](https://avatars.discourse-cdn.com/v4/letter/r/ebca7d/32.png) [@reiry](https://discourse.nodered.org/u/reiry)\
**Post date:** [1 December 2025 12:52 UTC](https://discourse.nodered.org/t/dashboard-1-example-versus-dashboard-2-example-what-must-be-changed-by-data-restore/99809/9 "2025-12-01T12:52:55Z")

</div>

![Bildschirmfoto vom 2025-12-01 13-51-05](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/1/2/123c9b1dbb0d4da2336849b1f9c1d5a83f46267f.png)

It look so clear and easy for dashboard 1 !

But when I look at it, I see the difference, and it's frightening. For anyone coming from Dashboard 1. Guys, guys, guys, what a mess. The nodes are supposed to make work easier, so someone at Dashboard 1 thought it through wonderfully and set up an array so that you can continue to use it right away without any additional code.

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

---

<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:** [31 December 2025 12:53 UTC](https://discourse.nodered.org/t/dashboard-1-example-versus-dashboard-2-example-what-must-be-changed-by-data-restore/99809/10 "2025-12-31T12:53:15Z")

</div>

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