Skip to content
Stand with Ukraine flag

HP Pool

HP Pool SCADA symbol

This widget belongs to the High-performance SCADA fluid system bundle — a collection of components designed for building detailed, high-fidelity fluid system diagrams on ThingsBoard dashboards.

It represents a swimming pool or open basin with a built-in fluid level visualization — the fill rises proportionally to the ratio of current volume to total pool capacity. A configurable scale along the side shows the fill level in percentage or absolute units. Use it to monitor pools, open reservoirs, cisterns, or decorative water features in swimming pool systems, water parks, irrigation networks, or any installation where an overhead pool shape fits the diagram layout better than a closed cylindrical tank.

  • Visualize the fluid fill level as a proportional bar driven by live volume and capacity data.
  • Display the level scale in percentage or absolute volume units.
  • Optionally show a unit label on the scale.
  • Configure major and minor tick intervals and their visual style.
  • Set independent colors for the pool body and the fluid.
  • Indicate warning and critical states with configurable alarm colors.
  • Animate a blinking effect when the pool is in warning or critical state.
  • Trigger separate dashboard actions when the widget is clicked in its warning or critical state.
  • Trigger a general dashboard action when the widget symbol is clicked in any state.
  • Receive state data from device attributes, time series, alarm status, or dashboard state.
  1. Open the dashboard and switch to edit mode.
  2. Click Add widget at the top, or the Add new widget icon in the center of the screen.
  3. Open the High-performance SCADA fluid system widget bundle.
  4. Select HP Pool.
  5. Configure the widget settings, then click Add.

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.

The SCADA symbol defines the visual shape of the widget. The HP Pool widget has a pre-selected symbol from the High-performance 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 parameters define what the widget displays and how it responds to user interaction, driven by real-time data from the connected device.

ParameterDefaultDescription
Tank capacityUse attribute 'tankCapacity'Total capacity of the pool. Together with Current volume, this value determines the fill level displayed on the widget. See Data source configuration.
Current volumeUse time series 'liquidVolume'Current volume of fluid in the pool. The fill level is computed as Current volume ÷ Tank capacity. See Data source configuration.

Warning state

ParameterDefaultDescription
WarningUse alarm statusWhether the pool is in warning state. See Data source configuration.
Warning clickDo nothingAction triggered when the user clicks the widget symbol while it is in warning state. See Click action configuration.

Critical state

ParameterDefaultDescription
CriticalUse alarm statusWhether the pool is in critical state. See Data source configuration.
Critical clickDo nothingAction triggered when the user clicks the widget symbol while it is in critical state. See Click action configuration.
ParameterDefaultDescription
Warning/Critical state animationFalseWhether to enable blinking animation when the pool is in warning or critical state. See Data source configuration.
On clickDo nothingAction triggered when the user clicks the widget symbol in any non-alarm state. See Click action configuration.

Applies to Warning click, Critical click, and On click. Select one action type from the list below.

  • Do nothing

    The symbol 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 pool details screen.

    ParameterDescription
    Target dashboard stateThe state to open (required).
    Open right dashboard layout (mobile view)Opens a side panel instead of replacing the view (mobile only).
    Set entity from widgetPasses the current entity to the target state.
    State entity parameter nameThe key the entity is passed under.
    Dashboard state display optionNormal (same view), In separate dialog (popup), or In popover (inline overlay).
  • Update current dashboard state

    Updates the context of the current view, like switching the selected device, without navigating away.

    ParameterDescription
    Target dashboard stateThe state to switch to (optional).
    Open right dashboard layout (mobile view)Opens a side panel on mobile.
    Set entity from widgetPasses the current entity to the updated state.
    State entity parameter nameThe key the entity is passed under.
  • Navigate to other dashboard

    Opens a completely different dashboard, like jumping from this system view to a global alarms view.

    ParameterDescription
    Target dashboardThe dashboard to open (required).
    Target dashboard stateThe specific view to open within that dashboard.
    Open in a new browser tabOpens the dashboard without leaving the current page.
    Set entity from widgetPasses the current entity to the other dashboard.
    State entity parameter nameThe key the entity is passed under.
  • Custom action

    Runs custom JavaScript on click to implement any behavior not covered by the built-in options. Use it to make HTTP requests, open custom dialogs, call other widget APIs, or interact with external services. 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 the symbol is clicked. The function receives an additional htmlTemplate parameter: $event, widgetContext, entityId, entityName, htmlTemplate, additionalParams, entityLabel.

    ParameterDescription
    ResourcesExternal scripts and styles loaded before the action runs.
    CSSStyling for the HTML template.
    HTMLLayout of the rendered dialog or panel.
    JSAction logic.
  • Mobile action

    Triggers a native device feature inside a ThingsBoard mobile app, like the camera or QR scanner.

    ParameterDescription
    Mobile action typeTake 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.

    ParameterDescription
    URLThe address to open (required).
    Open in a new browser tabKeeps the current dashboard open while opening the link.

Applies to Tank capacity, Current volume, Warning, Critical, and Warning/Critical state animation. Click the edit icon next to a parameter to open its configuration dialog. When Action is set to Do nothing, the Value options depend on which parameter you are configuring:

ParameterValue
Tank capacityNumeric value representing the total pool capacity
Current volumeNumeric value representing the current fluid volume
WarningTrue or False
CriticalTrue or False
Warning/Critical state animationTrue or False

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.

    ParameterDescription
    MethodRPC method to call, like getPoolCapacity or getLiquidVolume.
    Action result converterNone — parameter is activated when the result matches the value you specify; Function — parameter is activated when your f(data) returns true.
    ’[parameter]’ when result isThe value or condition that activates this parameter.
    RPC request timeout (ms)How long to wait for a device response before timing out (Advanced settings).
    RPC request persistentStores and retries the command until the device comes online (Advanced settings).
  • Get attribute

    Read the parameter value from a device attribute.

    ParameterDescription
    Attribute scopeWhere the attribute is stored: Any, Client, Server, or Shared.
    Attribute keyAttribute name to read, like tankCapacity.
    Action result converterNone — parameter is activated when the attribute equals the value you specify; Function — parameter is activated when your f(data) returns true.
    ’[parameter]’ when result isThe value or condition that activates this parameter.
  • Get time series

    Read the parameter value from the latest telemetry reading.

    ParameterDescription
    Time series keyTelemetry key to monitor, like liquidVolume.
    Action result converterNone — parameter is activated when the telemetry value equals what you specify; Function — parameter is activated when your f(data) returns true.
    ’[parameter]’ when result isThe value or condition that activates this parameter.
  • Get alarm status

    Activate the parameter when a specific alarm is active on the device.

    ParameterDescription
    Alarm severityWhich severity levels trigger the active state: Critical, Major, Minor, Warning, or Indeterminate.
    Alarm typesAny alarm, or a specific alarm type.
  • Get dashboard state id

    Activate the parameter based on which dashboard state is currently open.

    ParameterDescription
    Action result converterNone — parameter is activated when the state name matches the text you enter; Function — parameter is activated when your f(data) returns true.
    ’[parameter]’ when result isThe 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.

    ParameterDescription
    Parse value functionA f(data) function that receives the current dashboard state object. Use data.id to read the active state name, or data.params to inspect state parameters.
    ’[parameter]’ when result isThe expected type and value that activates the parameter. Choose String, Integer, Double, Boolean (then select True or False), or JSON.

The Appearance section controls the widget title, pool and fluid colors, the level scale, and alarm colors.

SettingDefaultDescription
TitleHP PoolWidget title displayed in the header. Supports entityName and entityLabel variables.
Card iconIcon shown in the widget header. Configure its size and color.
Tank colorOffOptional background fill color for the pool body. When disabled, the default pool style is used.
Fluid colorLight blueColor of the fluid fill inside the pool.
ScaleOnWhether to display the level scale on the side of the pool.
Scale display formatPercentageHow scale values are labeled: Percentage (0–100) or Absolute (raw volume units).
Enable units on scaleOffWhether to show a unit label alongside the scale values. Click Set to configure the label text.
Major ticks10 intervalsSpacing of the numbered major tick marks on the scale. Configure their color and font.
Minor ticks5 intervalsSpacing of the minor tick marks between major ticks. Configure their color.
Warning colorOrangePool color when in warning state.
Critical colorRedPool color when in critical state.

The Card appearance section controls the widget container style.

SettingDefaultDescription
BackgroundTransparentCard background color.
Show card buttonsFullscreenButtons shown on the card when hovered.
Card border radius0pxRounding of card corners.
Card padding12pxInner spacing between the card edge and widget content.

Fill level does not update or is always empty

CauseSolution
Tank capacity or Current volume action is Do nothing with a zero or missing valueOpen the respective edit dialog and configure Tank capacity to read from a device attribute and Current volume to read from a time series key.
Device is not sending telemetryConfirm the device is online and publishing the expected time series key.

Fill level shows 100% even when the pool is not full

CauseSolution
Tank capacity is not configured or returns zeroOpen the Tank capacity edit dialog and confirm the attribute key and value are correct.

Warning or critical color does not appear

CauseSolution
Warning or Critical action is Do nothing and value is FalseConfigure the state parameter to read from an alarm status or a device attribute.
Alarm is not active on the deviceConfirm that the device has an active alarm of the expected severity.

This widget is used in the following ready-made solution template built on the High-performance SCADA fluid system bundle:

  • SCADA Swimming pool — a complete swimming pool monitoring dashboard built with pump, valve, and gauge widgets from the High-performance SCADA fluid system bundle.