Dashboard state widget
Displays specified dashboard state inside widget. Advanced widget settings allows you to configure target dashboard state to be displayed.
Who it’s for
Dashboard builders assembling a screen out of pieces they have already built. A state that works well on its own — an asset overview, a KPI strip, a control panel — can be dropped inside another dashboard as a block, so the layout is composed rather than copied, and a fix applied to the state reaches every screen that embeds it.
What it does
The Dashboard state widget renders another dashboard state inside its own tile. Pointing it at a state id draws that state’s widgets in the space the tile occupies, with the parent dashboard’s state parameters passed down, so an embedded asset panel follows whichever asset the parent is currently showing.
- One state, many screens — build a block once and embed it wherever it belongs instead of duplicating widgets that then drift apart.
- State parameters flow from the parent by default, which is what makes an embedded panel follow the parent’s selected entity rather than needing its own alias.
- The embedded layout can autofill the tile’s height, so the inner widgets stretch to the space available instead of scrolling inside a fixed frame.
- Inner margin and background are set here, which lets the same state look flush inside one dashboard and padded inside another.
- The widget reads no telemetry itself: everything shown comes from the widgets in the embedded state.
How to set up
Data keys
The Dashboard state widget takes no data keys — it renders a dashboard state, not a reading. The default configuration carries a leftover demo datasource, which can be removed.
Dashboard state
| Setting | Default | Effect |
|---|---|---|
| Dashboard state id | Unset | The state rendered inside the tile; required for anything to appear |
| Sync state params with parent dashboard | On | Passes the parent’s state parameters down, so the embedded state follows the parent’s selected entity |
| Autofill state layout height by default | On | Stretches the embedded layout to the tile height instead of keeping the state’s own height |
| Default widgets margin | 0 | Spacing between the embedded widgets |
| Default background color | #fff | Background behind the embedded state |
Choose the state id from the same dashboard the widget lives on. Leave parameter sync on unless the embedded state has to stay fixed on one entity regardless of what the parent is showing.
How to customize
- To embed a different block — change Dashboard state id.
- To pin the embedded state to its own entity — turn off Sync state params with parent dashboard, so the parent’s selection no longer reaches it.
- To stop the inner widgets from stretching — turn off Autofill state layout height by default, which keeps the state’s own layout height and scrolls if it does not fit.
- To separate the embedded widgets visually — raise Default widgets margin.
- To make the block sit flush with the page — set Default background color to match the dashboard behind it.
Tips
- Keep the embedded state small and single-purpose. A state built to fill a screen rarely reads well inside a tile, and one designed as a block can still be opened full-screen on its own when someone needs the detail.
- Avoid pointing a state widget at a state that already embeds it. Nothing prevents the loop at configuration time, and the result is a dashboard that renders until it runs out of room rather than an error that explains itself.
Share Your Widget with the Community
Built a custom widget? Export it as a JSON from ThingsBoard and publish it to the IoT Hub through a simple 4-step wizard (Upload, Listing, Readme, Review & Submit). Share it with thousands of ThingsBoard developers worldwide and get featured in the catalog.