Challenges in (Group) Dashboard Management and Replication

Product/components used and version/fix level:

Cumulcoity IoT
Backend: 1017.0.289
UI: 1015.0.309

Detailed explanation of the problem:

We have developed an application that receives measurements from meters and displays them with the help of different Dashboards. We have defined two kinds of Dashboards.

The Group Dashboard displays graphs and diagrams about measurements of the devices combined in that group. Every group has its own Group Dashboard, but every Group Dashboard has exactly the same elements (same widgets and same data points, but from the devices in that group).

The Device Dashboard contains all the graphs and diagrams that hold the measurements specific to the device. But here again, all Device Dashboards have exactly the same elements.

In our application, users have the possibility to create new groups on their own and add devices to these groups according to their needs.

Once a user created a new group, this group also needs its own Group Dashboard. We developed a mechanism, that allows us to automatically generate a new Group Dashboard, after the user created his new group.

However, some of the widgets in this new Group Dashboard are not being updated with the correct datapoints of the devices in that group. They still try to link to the devices of the Dashboard template. This happens with standard Cumulocity widgets that are deployed to this dashboard. But it works with our customer widgets.

Is there a way that allows us also to update the linked data points also within the Cumulocity standard widgets automatically? This update should also be done if a user adds or removes devices from that group. Meaning, the respective widget (line graph) needs to add or remove that specific data point of that device.

Idea is, that uses never need to adjust settings of the widgets. All this should happen in the background.

Question related to a free trial, or to a production (customer) instance?

Production instance

Hi Miller,

we’ve discussed some options within the team:

  • using a custom component with WidgetsDashboardComponent, hooked to ViewContext.Group or ViewContext.Device:
    widgets can be dynamically configured when user visits group/device, however, no manual changes are possible

  • using a custom component with a named ContextDashboardComponent, hooked to ViewContext.Group or ViewContext.Device:
    widgets can be configured on the first visit on group/device, later the configuration can be refreshed on demand (user needs to click “Reset dashboard” button in the toolbar), manual changes will be persisted until dashboard is reset

  • developing a custom microservice to observe changes in group/device hierarchy and update widgets in dashboard managed objects on device additions/removals

There are examples of both mentioned types of dashboards in our tutorial application (under ./dashboard/widget-dashboard and ./dashboard/named-context-dashboard), including how to hook a custom component to the context.