Pool

The Pool widget represents a rectangular pool or open basin with fill level visualization and volume readout. Use it to monitor liquid volume in fluid system diagrams where a wide, shallow vessel — such as a swimming pool, reservoir, or holding basin — matches the physical equipment.
Key capabilities
Section titled “Key capabilities”- Display the current liquid volume as a visual fill level inside the pool symbol.
- Show the exact volume value in a configurable value box with unit suffix.
- Trigger a dashboard action when the widget is clicked.
- Read pool data from device attributes, time series, or alarm status.
Target device
Section titled “Target device”The widget connects to a single data source: either a Device or an Entity alias that resolves to a device. This device provides the telemetry or attribute values used to drive the widget’s visual state.
SCADA symbol
Section titled “SCADA symbol”The SCADA symbol defines the visual shape of the widget. The Pool widget has a pre-selected symbol from the Traditional SCADA fluid system bundle. To use a different symbol, click Browse SCADA symbol from gallery and choose one from the library, or upload your own.
Behavior
Section titled “Behavior”Behavior parameters define what the widget displays, driven by real-time data from the connected device. Each parameter supports the same set of actions — see Behavior configuration for the full list.
| Parameter | Default | Values | Description |
|---|---|---|---|
| Tank capacity | Use attribute 'tankCapacity' | number | Total capacity of the pool. Used together with Current volume to compute the fill level. |
| Current volume | Use time series 'liquidVolume' | number | Current volume of liquid in the pool. |
| On click | Do nothing | — | Action triggered when the user clicks the widget. |
On click
Section titled “On click”Defines what happens when the user clicks the SCADA widget on the dashboard. Select one action type from the list below.
-
Do nothing
The widget is clickable but performs no action. Use while testing styles or as a placeholder.
-
Navigate to new dashboard state
Switches to a different view within the same dashboard, like opening a device details screen.
Parameter Description Target dashboard state The state to open (required). Open right dashboard layout (mobile view) Opens a side panel instead of replacing the view (mobile only). Set entity from widget Passes the current entity to the target state. State entity parameter name The key the entity is passed under. Dashboard state display option Normal (same view), In separate dialog (popup), or In popover (inline overlay). -
Update current dashboard state
Updates the context of the current view without navigating away.
Parameter Description Target dashboard state The state to switch to (optional). Open right dashboard layout (mobile view) Opens a side panel on mobile. Set entity from widget Passes the current entity to the updated state. State entity parameter name The key the entity is passed under. -
Navigate to other dashboard
Opens a completely different dashboard.
Parameter Description Target dashboard The dashboard to open (required). Target dashboard state The specific view to open within that dashboard. Open in a new browser tab Opens the dashboard without leaving the current page. Set entity from widget Passes the current entity to the other dashboard. State entity parameter name The key the entity is passed under. -
Custom action
Runs custom JavaScript on click. The function receives:
$event,widgetContext,entityId,entityName,additionalParams,entityLabel. -
Custom action (with HTML template)
Same as Custom action, but also renders a custom HTML panel or dialog when clicked.
Parameter Description Resources External scripts and styles loaded before the action runs. CSS Styling for the HTML template. HTML Layout of the rendered dialog or panel. JS Action logic. -
Mobile action
Triggers a native device feature inside a ThingsBoard mobile app.
Parameter Description Mobile action type Take picture from gallery, Take photo, Open map directions, Open map location, Scan QR Code, Make phone call, Get phone location, Take screenshot, or Device provision. -
Open URL
Opens a website or external link when clicked.
Parameter Description URL The address to open (required). Open in a new browser tab Keeps the current dashboard open while opening the link.
Behavior configuration
Section titled “Behavior configuration”To configure a parameter, click its edit icon. When Action is set to Do nothing, the Value field accepts a static number for both Tank capacity and Current volume.
For all other actions, the configuration dialog works the same way regardless of which parameter you are editing:
-
Execute RPC
Read the parameter value from an RPC response.
Parameter Description Method RPC method to call, like getVolumeorgetPoolState.Action result converter None — uses the result directly; Function — activated when your f(data)returnstrue.RPC request timeout (ms) How long to wait for a device response before timing out (Advanced settings). RPC request persistent Stores and retries the command until the device comes online (Advanced settings). -
Get attribute
Read the parameter value from a device attribute.
Parameter Description Attribute scope Where the attribute is stored: Any, Client, Server, or Shared. Attribute key Attribute name to read, like tankCapacity.Action result converter None — uses the result directly; Function — activated when your f(data)returnstrue. -
Get time series
Read the parameter value from the latest telemetry reading.
Parameter Description Time series key Telemetry key to monitor, like liquidVolume.Action result converter None — uses the result directly; Function — activated when your f(data)returnstrue. -
Get alarm status
Activate the parameter when a specific alarm is active on the device.
Parameter Description Alarm severity Which severity levels trigger the active state: Critical, Major, Minor, Warning, or Indeterminate. Alarm types Any alarm, or a specific alarm type. -
Get dashboard state id
Activate the parameter based on which dashboard state is currently open.
Parameter Description Action result converter None — parameter is activated when the state name matches the text you enter; Function — parameter is activated when your f(data)returnstrue.’[parameter]’ when result is The state name or condition that activates this parameter. -
Get dashboard state object
Activate the parameter using the full dashboard state context; use this when you need to evaluate multiple state parameters at once.
Parameter Description Parse value function Write a f(data)function that returns the parameter value.
Appearance
Section titled “Appearance”The Appearance section controls the widget title, pool and fluid colors, and volume display.
| Setting | Default | Description |
|---|---|---|
| Title | Pool | Widget title displayed in the header. Supports entityName and entityLabel variables. |
| Card icon | — | Icon shown in the widget header. Configure its size and color. |
| Tank color | — | Color of the pool body. |
| Fluid color | Transparent | Color of the liquid fill inside the pool. |
| Value box | Enabled | Show or hide the current volume value display on the widget. |
| Value text | — | Font and color for the value label. The Units field (default: gal) sets the unit suffix shown next to the value. |
| Transparent mode | Disabled | Make the pool body background transparent, showing only the fluid fill. |
Card appearance
Section titled “Card appearance”The Card appearance section controls the widget container style.
| Setting | Default | Description |
|---|---|---|
| Background | Transparent | Card background color. |
| Show card buttons | Fullscreen | Buttons shown on the card when hovered. |
| Card border radius | 0px | Rounding of card corners. |
| Card padding | 12px | Inner spacing between the card edge and widget content. |
Troubleshooting
Section titled “Troubleshooting”Pool fill level does not change
| Cause | Solution |
|---|---|
| Current volume action is Do nothing with a static value | Configure Current volume to read from a time series key (e.g. liquidVolume) or an attribute. |
| Tank capacity is not set or resolves to zero | Ensure Tank capacity is reading a valid numeric value greater than zero. |
| Target device is not connected | Confirm the selected device is online and actively sending data. |
Solution templates
Section titled “Solution templates”These widgets are used in the following ready-made solution templates built on the Traditional SCADA fluid system bundle:
- SCADA Swimming pool — a complete swimming pool monitoring dashboard built with pipe, pump, valve, and gauge widgets from the Traditional SCADA fluid system bundle.