Skip to content
Try for free

ThingsBoard Cloud

Choose your data region

Your data stays in the region you choose, for residency and compliance. No credit card required.

Rather run it yourself? Install on your own servers

Sand Filter

Sand filter SCADA symbol

The Sand filter widget represents a sand filter with a running state indicator, a set of filtration mode buttons (Filter, Waste, Backwash, Recirculate, Rinse, Closed), and direct mode-switching control from the dashboard. Use it on pool or water treatment dashboards to monitor filter operating status and switch filtration modes without leaving the SCADA view.

  • Display the current filtration mode by highlighting the active mode button.
  • Switch the filtration mode directly from the dashboard by clicking a mode button.
  • Show or hide individual mode buttons to match the actual capabilities of the connected device.
  • Indicate the running state of the filter.
  • Trigger a dashboard action when the widget symbol is clicked.
  • 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 Traditional SCADA fluid system widget bundle.
  4. Select Sand filter.
  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 Sand filter 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 parameters define what the widget displays and how it responds to user interaction, driven by real-time data from the connected device.

Parameter Default Description
Running Use attribute 'running' Whether the filter is currently running. See Data source configuration.
Filtration mode Use attribute 'filtrationMode' Integer indicating the active filtration mode: 0 — Filter, 1 — Waste, 2 — Backwash, 3 — Recirculate, 4 — Rinse, 5 — Closed. See Data source configuration.
Filtration mode update state Set 'filtrationMode' attribute to: value Action sent to the device when the user clicks a mode button to switch the filtration mode. See Write parameter configuration.
On click Do nothing Action triggered when the user clicks the widget symbol. See Click action configuration.

Applies to On click. Select one action type from the list below.

  • Do nothing

    The symbol is clickable but performs no action. Use while testing layouts or as a placeholder.

  • Navigate to new dashboard state

    Switches to a different view within the same dashboard, like opening a filter 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, like switching the selected device, 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, like jumping from a pool overview to a filter performance 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 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.

    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, like the camera or QR scanner.

    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.

Applies to Running and Filtration mode. 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:

Parameter Value
Running True or False
Filtration mode Any integer — used as the active mode until the device sends data.

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 getState or getFiltrationMode.
    Action result converter None — parameter is activated when the result matches the value you specify; Function — parameter is activated when your f(data) returns true.
    ‘[parameter]’ when result is The value or condition that activates this parameter (not shown for Filtration mode, which uses the raw numeric result).
    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 running or filtrationMode.
    Action result converter None — parameter is activated when the attribute equals the value you specify; Function — parameter is activated when your f(data) returns true.
    ‘[parameter]’ when result is The value or condition that activates this parameter (not shown for Filtration mode, which uses the raw numeric result).
  • Get time series

    Read the parameter value from the latest telemetry reading.

    Parameter Description
    Time series key Telemetry key to monitor, like filtrationMode or running.
    Action result converter None — parameter is activated when the telemetry value equals what you specify; Function — parameter is activated when your f(data) returns true.
    ‘[parameter]’ when result is The value or condition that activates this parameter (not shown for Filtration mode, which uses the raw numeric result).
  • 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) returns true.
    ‘[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 A 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 is The expected type and value that activates the parameter. Choose String, Integer, Double, Boolean (then select True or False), or JSON.

Filtration mode update state defines what is sent to the device when the user clicks a mode button. Click the parameter’s edit icon to configure it.

  • Execute RPC

    Call an RPC method on the device.

    Parameter Description
    Method RPC method name, like setState or setFiltrationMode.
    Parameters Value — pass the selected mode value; Function — write a f(value) function to transform the value before sending; None — send no parameters.
    RPC request timeout (ms) How long to wait before timing out (Advanced settings).
    RPC request persistent Stores and retries the command until the device comes online (Advanced settings).
  • Set attribute

    Write the mode value to a device attribute.

    Parameter Description
    Attribute scope Target scope: Server or Shared.
    Attribute key Attribute name to write, like filtrationMode.
    Value Value — pass the selected mode value directly; Function — write a f(value) function to compute the value.
  • Add time series

    Write the mode value to a device time series key.

    Parameter Description
    Time series key Telemetry key to write, like filtrationMode or state.
    Value Value — pass the selected mode value directly; Function — write a f(value) function to compute the value.

The Appearance section controls the widget title, which mode buttons are visible, and the colors used for active and default states.

Setting Default Description
Title Sand filter Widget title displayed in the header. Supports entityName and entityLabel variables.
Card icon — Icon shown in the widget header. Configure its size and color.
Filter Enabled Show or hide the Filter mode button.
Waste Enabled Show or hide the Waste mode button.
Backwash Enabled Show or hide the Backwash mode button.
Recirculate Enabled Show or hide the Recirculate mode button.
Rinse Enabled Show or hide the Rinse mode button.
Closed Enabled Show or hide the Closed mode button.
Sand filter color Transparent Color of the filter body.
Mode box background Transparent Background color of the mode button area.
Border color (Active) Green Border color of the currently active mode button.
Border color (Default) Transparent Border color of inactive mode buttons.
Label color (Active) Dark Label text color of the currently active mode button.
Label color (Default) Gray Label text color of inactive mode buttons.

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.

Active mode button does not highlight

Cause Solution
Filtration mode action is set to Do nothing Open the Filtration mode edit dialog, set the correct Action, and specify the attribute key.
Attribute key mismatch Verify that the key name in the behavior configuration matches exactly what the device reports.
Target device is not connected Confirm that the selected device is online and actively sending data.

Clicking a mode button has no effect on the device

Cause Solution
Filtration mode update state action is misconfigured Open the Filtration mode update state edit dialog and verify the attribute key, scope, and value match the device’s expected format.
Target device is not connected Confirm that the selected device is online and reachable.
IoT Hub

Install the Swimming pool SCADA system Solution Template from the ThingsBoard IoT Hub to see this widget running in a complete, ready-to-use dashboard.

Browse the catalog

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.