Skip to content
Stand with Ukraine flag

Progress Bar

Progress bar widget

The Progress bar widget displays a numeric value as a horizontal bar that fills proportionally within a configured min/max range. Use it wherever the relative position of a reading within its bounds matters as much as the raw number — battery level, tank fill, CPU usage, completion percentage, or any bounded metric where a glance at the fill communicates status instantly.

  • Display any numeric telemetry or attribute as a filled horizontal bar against a defined range.
  • Two layout options: Default (large value above the bar with range ticks) and Simplified (compact inline label and value).
  • Four bar color modes: constant, gradient, value range segments, or a JavaScript color function — including threshold-based color bands without writing code.
  • Configurable min/max range, unit label, decimal precision, and optional range tick markers.
  • Optional icon and auto-scaling text to fit any widget size.
  1. Open the dashboard in edit mode. Click Add widget in the top toolbar, or click the Add new widget icon in the center of an empty dashboard.
  2. In the widget bundle selection dialog, find and click Cards.
  3. Select the Progress bar widget.
  4. Configure the datasource and appearance, then click Add.

All settings in this section use Basic mode — a quick-start configuration covering the essentials. For finer widget controls like title font, card style, and tooltip, switch to the Advanced tab.

Select the source of the displayed value:

  • Device — a specific device; the bar shows the latest telemetry or attribute value from this device.
  • Entity alias — a set of entities matched by an entity alias; use this when the target device is selected dynamically at runtime.

Add exactly one data key — a telemetry key or attribute — whose latest numeric value will determine the bar fill.

Controls the widget layout, label, icon, value display, and range.

SettingDescription
LayoutDefault — shows a large numeric value above the bar with range ticks below. Simplified — places the title and value on one line with a compact bar underneath.
Auto scaleAutomatically adjusts text sizes to fit the widget area when resized.
TitleLabel shown on the card. Supports {x} dynamic placeholders: entityName and entityLabel. Configure font and color independently.
IconOptional icon displayed on the card. Set size and color. Disabled by default.
ValueDisplays the resolved numeric value. Configure the unit suffix (like %), decimal places, and font color.
RangeDefines the min and max bounds of the bar. The bar fills proportionally between these values. Default: 0–100.
Range ticksDisplays the min and max labels below the bar ends. Toggle on/off; configure font and color.

Controls the fill color and background of the progress bar.

SettingDescription
Bar colorFill color of the bar. Supports four modes — see below.
Bar backgroundBackground color of the unfilled portion of the bar track.
ModeDescription
ConstantSingle fixed color for the entire bar fill.
GradientColor transitions smoothly from one end of the range to the other. Configure start and end values and color stops.
RangeAssigns a specific color to each defined value segment (From / To). Add multiple segments to create threshold-based color bands — for example, green for 0–60, yellow for 60–80, red for 80–100.
FunctionA JavaScript function f(value) that returns a CSS color string. Use for custom or non-linear coloring logic.
SettingDescription
BackgroundSolid color or image background for the card.
Show card buttonsToggle Data export and Fullscreen buttons in the widget header.
Card border radiusCorner rounding in pixels.
Card paddingSpacing between card content and its border.

The Progress bar supports the Widget header button action — a button placed in the widget header that triggers a configured action when clicked.

Battery level indicator with threshold colors

Section titled “Battery level indicator with threshold colors”

Goal: Display the battery level from a device named Smart Device as a progress bar. The bar turns red when critically low, yellow when moderate, and green when healthy.

Prerequisites: A device named Smart Device that sends batteryLevel (0–100) as a telemetry key.

Step 1. Add the widget. Open your dashboard in edit mode, click Add widget, select Cards, then choose Progress bar.

Step 2. Configure the datasource. Set Datasource type to Device, select Smart Device, and add batteryLevel as the data key.

Step 3. Configure appearance. Set Title to Battery. Set Value units to % and decimals to 0. Leave Range at min 0 / max 100.

Step 4. Configure bar color. Open Bar color → select Range mode. Add three segments:

FromToColor
020Red (#F44336)
2060Yellow (#FFC107)
60100Green (#4CAF50)

Step 5. Save. Click Add, resize and reposition as needed, then click Save on the dashboard toolbar.

Result: The battery level bar fills proportionally and changes color based on the current charge — red when critically low, yellow when moderate, green when healthy. The card updates automatically as new telemetry arrives.

Bar is empty or shows no fill

CauseSolution
No data receivedOpen Devices → Latest telemetry and verify the device is sending the configured data key. Key names are case-sensitive.
Value outside the configured rangeIf the value is below min or above max, the bar may render empty or fully filled. Adjust the Range settings to match your data.
Entity alias resolves to no entitiesOpen Entity aliases in the dashboard and verify the alias returns results.

Bar color does not change with value

CauseSolution
Bar color set to ConstantSwitch Bar color to Gradient, Range, or Function mode to enable value-dependent coloring.
Range segments do not cover all valuesIn Range mode, ensure segments together span the full min–max range with no gaps.

Title shows entity name instead of custom text

CauseSolution
Dynamic placeholder in useThe Title field supports {x} placeholders (entityName, entityLabel). Replace with your desired static text if dynamic substitution is not needed.