# Dashboard V1 vs V2

**URL:** https://discourse.nodered.org/t/dashboard-v1-vs-v2/98228
**Category:** Dashboard
**Created:** [21 July 2025 07:46 UTC](https://discourse.nodered.org/t/dashboard-v1-vs-v2/98228 "2025-07-21T07:46:34Z")
**Posts on this page:** 11
**Page:** 1

<div class="post-metadata">

### Author: ![Janvi](https://avatars.discourse-cdn.com/v4/letter/j/a587f6/32.png) [@Janvi](https://discourse.nodered.org/u/Janvi)
#### Post date: [21 July 2025 07:46 UTC](https://discourse.nodered.org/t/dashboard-v1-vs-v2/98228/1 "2025-07-21T07:46:34Z")

</div>

Realized my first NR project using V1 dashboard. It is mainly doing what it should do but soon I stumpled over the hints for V2 dashboard while V1 maintenance will be dropped in future. Therefore I installed FlowFuse V2 dashboard to try out what crashed my complete NR installation. System was still ok but NR http(s) was not more rechable. No dashboard, no flow editor. After new installation everything seems ok again.

1. Is it possible to run V1 and V2 same time while project migration?

2. Dashboard V1 is available here at [https://10.10.20.149:1881/ui](https://10.10.20.149:1881/ui)  
What is the V2 equivalent?

3. For several reasons the project uses the Ubuntu radar charts. They are cute and easy for humans to recognize any load imbalances with its "roundness". For any 3 phase electricity, the diagram equals the wye-delta vector diagram widly used for all electrical AC illustrations. Is there any V2 equivalent?

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/8/f/8fdb4b11bb4b037fc69d64c15e6a89587441e762.png)  
 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/6/7/675fdcbfe72e161f4065124ae2a78d97ec0bfea8.png)

---

<div class="post-metadata">

### Author: ![gerrybartley](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/gerrybartley/32/67495_2.png) [@gerrybartley](https://discourse.nodered.org/u/gerrybartley)
#### Post date: [21 July 2025 07:51 UTC](https://discourse.nodered.org/t/dashboard-v1-vs-v2/98228/2 "2025-07-21T07:51:28Z")

</div>

V1 and V2 can co-exist  
V2 is served at [https://10.10.20.149:1881/dashboard](https://10.10.20.149:1881/dashboard)

D2 charts has these options. Have a look at Scatter?

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

---

<div class="post-metadata">

### Author: ![Janvi](https://avatars.discourse-cdn.com/v4/letter/j/a587f6/32.png) [@Janvi](https://discourse.nodered.org/u/Janvi)
#### Post date: [21 July 2025 07:57 UTC](https://discourse.nodered.org/t/dashboard-v1-vs-v2/98228/3 "2025-07-21T07:57:12Z")

</div>

> [@gerrybartley](#):
>
> V1 and V2 can co-exist

Although they cannot co-exist inside same dashboard page I am going to try this again.

> [@gerrybartley](#):
>
> D2 charts has these options. Have a look at Scatter?

Thats where my installation crashed

Another topic raised: As I like to access the dashboard from public internet outside my intranet using ngix reverse proxy/cname record it requires a secure user/password authentication what I did not find within V1. Are there any V2 improvements?

---

<div class="post-metadata">

### Author: ![gerrybartley](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/gerrybartley/32/67495_2.png) [@gerrybartley](https://discourse.nodered.org/u/gerrybartley)
#### Post date: [21 July 2025 08:12 UTC](https://discourse.nodered.org/t/dashboard-v1-vs-v2/98228/4 "2025-07-21T08:12:00Z")

</div>

Can you post the payload to your radar chart

---

<div class="post-metadata">

### Author: ![Janvi](https://avatars.discourse-cdn.com/v4/letter/j/a587f6/32.png) [@Janvi](https://discourse.nodered.org/u/Janvi)
#### Post date: [21 July 2025 08:24 UTC](https://discourse.nodered.org/t/dashboard-v1-vs-v2/98228/5 "2025-07-21T08:24:13Z")

</div>

Here is how I did:

```flows
[{"id":"71464544b44378e5","type":"victron-input-gridmeter","z":"dc5e4f93c45afcbe","service":"com.victronenergy.grid/40","path":"/Ac/L2/Power","serviceObj":{"service":"com.victronenergy.grid/40","name":"eHZ18"},"pathObj":{"path":"/Ac/L2/Power","type":"float","name":"L2 Power (W)"},"name":"ABB","onlyChanges":false,"roundValues":"1","x":90,"y":1380,"wires":[["89d127a2741e743b"]]},{"id":"6b110a168e4c23b5","type":"victron-input-gridmeter","z":"dc5e4f93c45afcbe","service":"com.victronenergy.grid/40","path":"/Ac/L1/Power","serviceObj":{"service":"com.victronenergy.grid/40","name":"eHZ18"},"pathObj":{"path":"/Ac/L1/Power","type":"float","name":"L1 Power (W)"},"name":"ABB","onlyChanges":false,"roundValues":"1","x":90,"y":1320,"wires":[["5e69582fb1fda53f"]]},{"id":"56486db0c67fea28","type":"victron-input-gridmeter","z":"dc5e4f93c45afcbe","service":"com.victronenergy.grid/40","path":"/Ac/L3/Power","serviceObj":{"service":"com.victronenergy.grid/40","name":"eHZ18"},"pathObj":{"path":"/Ac/L3/Power","type":"float","name":"L3 Power (W)"},"name":"ABB","onlyChanges":false,"roundValues":"1","x":90,"y":1440,"wires":[["a05928cdf2a8b335"]]},{"id":"5e69582fb1fda53f","type":"function","z":"dc5e4f93c45afcbe","name":"Topic P1","func":"msg.topic = \"P1\";\nreturn msg;\n","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":240,"y":1320,"wires":[["b56cfc0a31079f32"]]},{"id":"89d127a2741e743b","type":"function","z":"dc5e4f93c45afcbe","name":"Topic P2","func":"msg.topic = \"P2\";\nreturn msg;\n","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":240,"y":1380,"wires":[["b56cfc0a31079f32"]]},{"id":"a05928cdf2a8b335","type":"function","z":"dc5e4f93c45afcbe","name":"Topic P3","func":"msg.topic = \"P3\";\nreturn msg;\n","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":240,"y":1440,"wires":[["b56cfc0a31079f32"]]},{"id":"b56cfc0a31079f32","type":"join","z":"dc5e4f93c45afcbe","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"10","count":"3","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":410,"y":1380,"wires":[["0ded24460dc90e51"]]},{"id":"0ded24460dc90e51","type":"function","z":"dc5e4f93c45afcbe","name":"Zoom","func":"msg1 = {\"payload\" : msg.payload.P1 *-1,\n \"topic\" : \"P1\"};\n\nmsg2 = {\"payload\" : msg.payload.P2 *-1,\n \"topic\" : \"P2\"};\n\nmsg3 = {\"payload\" : msg.payload.P3 *-1,\n \"topic\" : \"P3\"};\n\nreturn [msg1,msg2,msg3];\n","outputs":3,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":550,"y":1380,"wires":[["d4d69b01eda9c158"],["d4d69b01eda9c158"],["d4d69b01eda9c158"]]},{"id":"d4d69b01eda9c158","type":"ui_chart","z":"dc5e4f93c45afcbe","name":"","group":"c4b14b3c0e4dc051","order":10,"width":0,"height":0,"label":"Einspeisung","chartType":"radar","legend":"false","xformat":"HH:mm:ss","interpolate":"linear","nodata":"","dot":false,"ymin":"","ymax":"","removeOlder":"5","removeOlderPoints":"","removeOlderUnit":"60","cutout":0,"useOneColor":false,"useUTC":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"outputs":1,"useDifferentColor":false,"className":"","x":710,"y":1380,"wires":[[]]},{"id":"c4b14b3c0e4dc051","type":"ui_group","name":"Spalte3","tab":"52c4a1be8450fe1a","order":2,"disp":false,"width":"6","collapse":false,"className":""},{"id":"52c4a1be8450fe1a","type":"ui_tab","name":"Gottlieb-Daimler-Microgrid","icon":"dashboard","disabled":false,"hidden":false}]

```

You have to replace the data source of my ABB hardware by any injects. As 3 values are similar, the zoom function searches the smallest value and adds some zoom offset to recognize smaller differences in shape.

Here is a typical JSON example from 9-point radar chart by 9 hardware devices. Values are always negative as the project uses 4 quadrant complex numbers with real and imaginary parts calculation. Illustration does not need to take care therefore.

```auto
7/21/2025, 10:27:45 AMnode: debug 1Dev8 : msg.payload : Object
object
Dev0: -102
Dev1: -98
Dev2: -87
Dev3: -122
Dev4: -113
Dev5: -118
Dev6: -102
Dev7: -107
Dev8: -84

```

---

<div class="post-metadata">

### Author: ![gerrybartley](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/gerrybartley/32/67495_2.png) [@gerrybartley](https://discourse.nodered.org/u/gerrybartley)
#### Post date: [21 July 2025 08:47 UTC](https://discourse.nodered.org/t/dashboard-v1-vs-v2/98228/6 "2025-07-21T08:47:15Z")

</div>

Can you put a debug node on the output of the join node and copy the full message. This is all I need to replicate your issue

---

<div class="post-metadata">

### Author: ![Janvi](https://avatars.discourse-cdn.com/v4/letter/j/a587f6/32.png) [@Janvi](https://discourse.nodered.org/u/Janvi)
#### Post date: [21 July 2025 08:50 UTC](https://discourse.nodered.org/t/dashboard-v1-vs-v2/98228/7 "2025-07-21T08:50:09Z")

</div>

Thats what I did:

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

---

<div class="post-metadata">

### Author: ![gerrybartley](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/gerrybartley/32/67495_2.png) [@gerrybartley](https://discourse.nodered.org/u/gerrybartley)
#### Post date: [21 July 2025 09:45 UTC](https://discourse.nodered.org/t/dashboard-v1-vs-v2/98228/8 "2025-07-21T09:45:06Z")

</div>

But your Zoom function in the flow you posted references P1,P2 etc. and adds a topic So theres a lot more in the payload than you've shown. I can't figure it out

---

<div class="post-metadata">

### Author: ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)
#### Post date: [21 July 2025 10:08 UTC](https://discourse.nodered.org/t/dashboard-v1-vs-v2/98228/9 "2025-07-21T10:08:14Z")

</div>

> [@Janvi](#):
>
> Another topic raised: As I like to access the dashboard from public internet outside my intranet using ngix reverse proxy/cname record it requires a secure user/password authentication what I did not find within V1. Are there any V2 improvements?

D2 (and UIBUILDER) supports most common proxy authentication tokens. So if you do your authentication via an NGINX integration, you should be able to do something.

---

<div class="post-metadata">

### Author: ![Janvi](https://avatars.discourse-cdn.com/v4/letter/j/a587f6/32.png) [@Janvi](https://discourse.nodered.org/u/Janvi)
#### Post date: [21 July 2025 11:16 UTC](https://discourse.nodered.org/t/dashboard-v1-vs-v2/98228/10 "2025-07-21T11:16:10Z")

</div>

The join output is a key/value object (array). As I did not find a way on how the V1 chart can process this, I changed the 3 values with inverted sign inside the zoom to 3 individual msg.payload with own topic each.

The 9 value radar chart is doing the same. Device 1-8 from the array are copied into individual msg.payload with own topic L/X(Master/Slave/Y what appear as labels in the diagram.

```auto
[{"id":"066565bb2de6182b","type":"victron-input-custom","z":"dc5e4f93c45afcbe","service":"com.victronenergy.vebus/276","path":"/Devices/0/Ac/In/P","serviceObj":{"service":"com.victronenergy.vebus/276","name":"MultiPlus-II 48/5000/70-50 (276)"},"pathObj":{"path":"/Devices/0/Ac/In/P","name":"/Devices/0/Ac/In/P","type":"number","value":-2883},"name":"Dev0","onlyChanges":false,"x":90,"y":4180,"wires":[["7def4fd9e37cfdd8"]]},{"id":"d372aac64af3b599","type":"victron-input-custom","z":"dc5e4f93c45afcbe","service":"com.victronenergy.vebus/276","path":"/Devices/1/Ac/In/P","serviceObj":{"service":"com.victronenergy.vebus/276","name":"MultiPlus-II 48/5000/70-50 (276)"},"pathObj":{"path":"/Devices/1/Ac/In/P","name":"/Devices/1/Ac/In/P","type":"number","value":-3003},"name":"Dev1","onlyChanges":false,"x":90,"y":4240,"wires":[["7def4fd9e37cfdd8"]]},{"id":"7baca92790433a21","type":"victron-input-custom","z":"dc5e4f93c45afcbe","service":"com.victronenergy.vebus/276","path":"/Devices/2/Ac/In/P","serviceObj":{"service":"com.victronenergy.vebus/276","name":"MultiPlus-II 48/5000/70-50 (276)"},"pathObj":{"path":"/Devices/2/Ac/In/P","name":"/Devices/2/Ac/In/P","type":"number","value":-2951},"name":"Dev2","onlyChanges":false,"x":90,"y":4300,"wires":[["7def4fd9e37cfdd8"]]},{"id":"13ede845a536f68e","type":"victron-input-custom","z":"dc5e4f93c45afcbe","service":"com.victronenergy.vebus/276","path":"/Devices/6/Ac/In/P","serviceObj":{"service":"com.victronenergy.vebus/276","name":"MultiPlus-II 48/5000/70-50 (276)"},"pathObj":{"path":"/Devices/6/Ac/In/P","name":"/Devices/6/Ac/In/P","type":"number","value":-2256},"name":"Dev6","onlyChanges":false,"x":90,"y":4540,"wires":[["7def4fd9e37cfdd8"]]},{"id":"ddf7d4d560df2a06","type":"victron-input-custom","z":"dc5e4f93c45afcbe","service":"com.victronenergy.vebus/276","path":"/Devices/7/Ac/In/P","serviceObj":{"service":"com.victronenergy.vebus/276","name":"MultiPlus-II 48/5000/70-50 (276)"},"pathObj":{"path":"/Devices/7/Ac/In/P","name":"/Devices/7/Ac/In/P","type":"number","value":-2252},"name":"Dev7","onlyChanges":false,"x":90,"y":4600,"wires":[["7def4fd9e37cfdd8"]]},{"id":"b8af945e1718ab4c","type":"victron-input-custom","z":"dc5e4f93c45afcbe","service":"com.victronenergy.vebus/276","path":"/Devices/8/Ac/In/P","serviceObj":{"service":"com.victronenergy.vebus/276","name":"MultiPlus-II 48/5000/70-50 (276)"},"pathObj":{"path":"/Devices/8/Ac/In/P","name":"/Devices/8/Ac/In/P","type":"number","value":-2566},"name":"Dev8","onlyChanges":false,"x":90,"y":4660,"wires":[["7def4fd9e37cfdd8"]]},{"id":"3bd082dc9ac5d0ec","type":"victron-input-custom","z":"dc5e4f93c45afcbe","service":"com.victronenergy.vebus/276","path":"/Devices/3/Ac/In/P","serviceObj":{"service":"com.victronenergy.vebus/276","name":"MultiPlus-II 48/5000/70-50 (276)"},"pathObj":{"path":"/Devices/3/Ac/In/P","name":"/Devices/3/Ac/In/P","type":"number","value":-2881},"name":"Dev3","onlyChanges":false,"x":90,"y":4360,"wires":[["7def4fd9e37cfdd8"]]},{"id":"63b8ba0413bbf27b","type":"victron-input-custom","z":"dc5e4f93c45afcbe","service":"com.victronenergy.vebus/276","path":"/Devices/4/Ac/In/P","serviceObj":{"service":"com.victronenergy.vebus/276","name":"MultiPlus-II 48/5000/70-50 (276)"},"pathObj":{"path":"/Devices/4/Ac/In/P","name":"/Devices/4/Ac/In/P","type":"number","value":-2780},"name":"Dev4","onlyChanges":false,"x":90,"y":4420,"wires":[["7def4fd9e37cfdd8"]]},{"id":"b30ec91b08b9a2f1","type":"victron-input-custom","z":"dc5e4f93c45afcbe","service":"com.victronenergy.vebus/276","path":"/Devices/5/Ac/In/P","serviceObj":{"service":"com.victronenergy.vebus/276","name":"MultiPlus-II 48/5000/70-50 (276)"},"pathObj":{"path":"/Devices/5/Ac/In/P","name":"/Devices/5/Ac/In/P","type":"number","value":-2519},"name":"Dev5","onlyChanges":false,"x":90,"y":4480,"wires":[["7def4fd9e37cfdd8"]]},{"id":"7def4fd9e37cfdd8","type":"join","z":"dc5e4f93c45afcbe","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"6","count":"9","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":310,"y":4420,"wires":[["82d5ca1b62a4d766"]]},{"id":"12aa05c0c0697ff2","type":"ui_chart","z":"dc5e4f93c45afcbe","name":"","group":"5d6aa5fa2cd38a95","order":8,"width":0,"height":0,"label":"Multiplus Lastverteilung","chartType":"radar","legend":"false","xformat":"HH:mm:ss","interpolate":"linear","nodata":"","dot":false,"ymin":"","ymax":"","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"3600","cutout":0,"useOneColor":false,"useUTC":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"outputs":1,"useDifferentColor":false,"className":"","x":830,"y":4420,"wires":[[]]},{"id":"82d5ca1b62a4d766","type":"function","z":"dc5e4f93c45afcbe","name":"Topics Dev1-8","func":"msg1 = {\"payload\" : msg.payload.Dev0 *-1,\n \"topic\" : \"L1Master\"};\n\nmsg2 = {\"payload\" : msg.payload.Dev1 *-1,\n \"topic\" : \"L1Slave1\"};\n\nmsg3 = {\"payload\" : msg.payload.Dev2 *-1,\n \"topic\" : \"L1Slave2\"};\n\nmsg4 = {\"payload\" : msg.payload.Dev3 *-1,\n \"topic\" : \"L2Master\"};\n\nmsg5 = {\"payload\" : msg.payload.Dev4 *-1,\n \"topic\" : \"L2Slave1\"};\n\nmsg6 = {\"payload\" : msg.payload.Dev5 *-1,\n \"topic\" : \"L2Slave2\"};\n\nmsg7 = {\"payload\" : msg.payload.Dev6 *-1,\n \"topic\" : \"L3Master\"};\n\nmsg8 = {\"payload\" : msg.payload.Dev7 *-1,\n \"topic\" : \"L3Slave1\"};\n\nmsg9 = {\"payload\" : msg.payload.Dev8 *-1,\n \"topic\" : \"L3Slave2\"};\n\nreturn [msg1,msg2,msg3,msg4,msg5,msg6,msg7,msg8,msg9];\n","outputs":9,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":540,"y":4420,"wires":[["12aa05c0c0697ff2"],["12aa05c0c0697ff2"],["12aa05c0c0697ff2"],["12aa05c0c0697ff2"],["12aa05c0c0697ff2"],["12aa05c0c0697ff2"],["12aa05c0c0697ff2"],["12aa05c0c0697ff2"],["12aa05c0c0697ff2"]]},{"id":"b250ef14f4f0e9e5","type":"comment","z":"dc5e4f93c45afcbe","name":"Multiplus Lastverteilung","info":"","x":340,"y":4240,"wires":[]},{"id":"5d6aa5fa2cd38a95","type":"ui_group","name":"Spalte1","tab":"52c4a1be8450fe1a","order":1,"disp":false,"width":"6","collapse":false,"className":""},{"id":"52c4a1be8450fe1a","type":"ui_tab","name":"Gottlieb-Daimler-Microgrid","icon":"dashboard","disabled":false,"hidden":false}]

```

---

<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: [20 August 2025 11:16 UTC](https://discourse.nodered.org/t/dashboard-v1-vs-v2/98228/11 "2025-08-20T11:16:22Z")

</div>

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