# Node-Red dashboard for 1000 sensors

**URL:** <https://discourse.nodered.org/t/node-red-dashboard-for-1000-sensors/56797>\
**Category:** Dashboard\
**Created:** [17 January 2022 13:03 UTC](https://discourse.nodered.org/t/node-red-dashboard-for-1000-sensors/56797 "2022-01-17T13:03:22Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Lance99](https://avatars.discourse-cdn.com/v4/letter/l/6de8d8/32.png) [@Lance99](https://discourse.nodered.org/u/Lance99)\
**Post date:** [17 January 2022 13:03 UTC](https://discourse.nodered.org/t/node-red-dashboard-for-1000-sensors/56797/1 "2022-01-17T13:03:22Z")

</div>

So far, I have just doing dashboard for monitoring 20-30 sensors.  
A special case is comming up, 10 sensors in 100 different buildings. Any leads how to estiblish a kind of menu based dashboard to select building and its sensors?

---

<div class="post-metadata">

**Author:** ![shrickus](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/shrickus/32/517_2.png) [@shrickus](https://discourse.nodered.org/u/shrickus)\
**Post date:** [17 January 2022 14:44 UTC](https://discourse.nodered.org/t/node-red-dashboard-for-1000-sensors/56797/2 "2022-01-17T14:44:09Z")

</div>

As you have probably discovered, there is no easy way to dynamically add UI nodes to your Dashboard flows. However, you can dynamically generate some basic html elements using `ng-repeat` inside a `ui-template` node, iterating over an array of all the data and displaying it. That is basically what `ui-table` is doing (iirc), and there are several examples in this forum that shown how to iterate over array of images, for example.

But it sounds like you would like to select 1 building out of the list of 100(!) -- so best to have a way to search that list. If you know the max number of sensors in any building will be 10, then you can build a single Dashboard page that shows all 10 sensor types with their charts and gauges. Then you use the building selection list to trigger a flow that pulls only the 10 readings for that selected building. Pass that data to your dashboard, and configure the UI nodes to pull the data by type (e.g. temperature, humidity, utitily usage, whatever). This gives you a way to show all buildings, one at a time, without making a custom dashboard for each.

Here is [another similar thread](https://discourse.nodered.org/t/duplicate-nodes-dynamiquely/709) that also mentions the use of the `uibuilder` node to provide a more dynamic UI app. Although that type of solution is only practical if you have some experience building html/css/js based web apps.

---

<div class="post-metadata">

**Author:** ![Christian-Me](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/christian-me/32/10774_2.png) [@Christian-Me](https://discourse.nodered.org/u/Christian-Me)\
**Post date:** [17 January 2022 20:13 UTC](https://discourse.nodered.org/t/node-red-dashboard-for-1000-sensors/56797/3 "2022-01-17T20:13:40Z")

</div>

Perhaps try ui-table with a tree view where you can organize all your values by i.e. Building, level, room

> [@Tree browser for JSON?](https://discourse.nodered.org/t/tree-browser-for-json/56425/5):
>
> I don’t know how your data looks like but if it is somehow structured to fit into a table you could perhaps use ui-table. You can even use a tree view as long as you can sort your data into columns Warning: This is not an easy task.

and the example in the last post.

---

<div class="post-metadata">

**Author:** ![Bobo](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/bobo/32/8401_2.png) [@Bobo](https://discourse.nodered.org/u/Bobo)\
**Post date:** [18 January 2022 02:02 UTC](https://discourse.nodered.org/t/node-red-dashboard-for-1000-sensors/56797/4 "2022-01-18T02:02:45Z")

</div>

I think you would be better off using a separate front end framework for the dashboard (like React) and letting NR handle just the back end, especially if this is a commercial product.

---

<div class="post-metadata">

**Author:** ![Christian-Me](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/christian-me/32/10774_2.png) [@Christian-Me](https://discourse.nodered.org/u/Christian-Me)\
**Post date:** [18 January 2022 07:47 UTC](https://discourse.nodered.org/t/node-red-dashboard-for-1000-sensors/56797/5 "2022-01-18T07:47:23Z")

</div>

Ui-table (tabulator) is capable to handle 100k + rows. Together with custom formattes like bar graph or spark lines it might be perhpas not necessary for adding gauges or other ui elements. But you also could select a row in ui-table and then feed this data to some gauges.  
If you have so many sensors and interested in the live state you might consider only updating the cells affected and not replacing the hole table. [Ui-table: highlight updated cells with animations](https://discourse.nodered.org/t/ui-table-highlight-updated-cells-with-animations/49333)

> **[Tabulator - Interactive JavaScript Tables](http://tabulator.info/examples/4.3)**
>
> Create interactive data tables in seconds with Tabulator. A lightweight, fully featured JavaScript table generation library.

---

<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:** [17 February 2022 07:48 UTC](https://discourse.nodered.org/t/node-red-dashboard-for-1000-sensors/56797/6 "2022-02-17T07:48:14Z")

</div>

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