Value Widget
A big number. The Value widget shows a single reading from one device's field, formatted to be readable across the room. Use it when you want at-a-glance visibility for a metric that matters: current temperature, battery level, latest reading.
What it shows
One value from one device, usually numeric. Renders as a large centered number (or the field's text, for string fields) with optional prefix, suffix, and a colored label badge driven by threshold rules.
Field types supported
Best for numeric fields, but string fields work too. Bind to a Number-typed field (data, mapping, or formula) to get a formatted number with thresholds, or to a String-typed field to show its latest text value directly, for example a valve status like "Closing". For boolean state, use a Status widget.
When a string field is bound, the numeric-only options (Decimals, Abbreviate, Clamp, threshold colors) do not apply, and the aggregation choice is limited to Last or Count.
Configuring a Value widget
Open the config drawer by clicking the widget's settings icon in edit mode.
Binding tab
| Field | What it does |
|---|---|
| Device | Pick the device to read from. On device-scoped dashboards the device is implicit and this field is hidden. |
| Field | Pick the field from the device's profile. Data, mapping, and formula fields are all available. |
| Aggregation | How to summarize the field's recent values: avg, min, max, sum, last, count, plus two state aggregations, Duration in state and Last occurrence (see below). Default comes from the field's natural aggregation kind. String and boolean fields only offer last, count and the two state aggregations (numeric aggregations are hidden) and default to last. |
| Source | Duration in state only. Field counts the time a field satisfied a rule; Connectivity counts the time the device was online, from its check-ins and offline threshold, with no field involved. |
| Counts when / Occurs when | The state rule for the two state aggregations: a comparison for a number field (>, >=, <, <=, between), true or false for a boolean, an exact text value for a string. |
| Maximum gap | Duration in state, field source. How long the field can go without a reading before the state stops counting. Auto uses the device's offline threshold; Off never breaks a state; Custom sets minutes. |
| Period / Look back | Time window the aggregation runs over (labeled Look back for Last occurrence: how far back to search). Either inherit (use the dashboard's time picker) or absolute (15m, 1h, 6h, 24h, 7d, 30d). Hidden for the last aggregation, which is a point-in-time reading with no window. The aggregation runs over every reading in the period, and the "as of" caption shows the newest reading that contributed. |
A plain-language preview under the controls states exactly what the widget computes (e.g. "Shows the sum over the last 7 days"). By default the widget also renders a small caption under the value (e.g. Sum · last 7 days) so viewers know what window a sum or average covers; turn it off with "Show aggregation window" on the Appearance tab. The caption only appears for windowed aggregations, not last.
For most cases, last aggregation gives you "current reading". Use avg over 1h for "average reading over the past hour". Use max over 24h for "highest in the last day".
With last, the widget always shows the device's most recent reading, even when the device reports less often than the dashboard's selected time range: if no reading landed inside the window, the widget falls back to the last known value. The "as of" caption carries the reading's own timestamp, so you can always tell how fresh it is.
Duration in state
The total time, over the period, that a field satisfied a rule, shown as a duration such as 8h 37m. Pump running hours, door-open time, compressor duty cycle, and "total online time" are all this aggregation with a different rule.
- Bind a number field and set a comparison (
current > 0.5), a boolean field and pick true or false, or a string field and type the value that counts (open). - Or switch Source to Connectivity for the time the device was online. No field is needed; the device's offline threshold decides when a gap counts as offline.
- Turn on Show share of window on the Appearance tab to add the percentage of the period spent in the state (
36% of window). Duration format switches between8h 37mand decimal hours (8.6 h). - Threshold rules compare against the duration in decimal hours, so
> 8colors the tile once the state passed eight hours.
Granularity equals the device's report interval: a reading holds its state until the next reading or a gap, exactly like the State Timeline summary row. A device that reports every 30 minutes yields 30-minute resolution. Formula and mapping fields are not available for this aggregation yet.
Last occurrence
When a field last satisfied a rule: the date on a small line, the time of day as the headline, and how long ago underneath (Sep 9, 2026 / 7:54 AM / 7 min ago). Last motion, last door open, last alarm, last time a level exceeded a limit.
- Same rule editor as Duration in state. Look back sets how far back to search; when nothing in that window matched, the tile says so ("None in the last 24 hours") instead of showing a stale time.
- The value is the time of the last matching reading, not when the state began. With a device that reports motion every 30 minutes, "last motion 7:54 AM" is the last report that carried motion.
- Time display on the Appearance tab: Both (default), Absolute (no relative age), or Relative (
7 min agoas the headline, the absolute time underneath). The relative age and any age-based threshold update every minute on their own. - Threshold rules compare against the age in minutes, so
> 120colors the tile when the last occurrence is more than two hours old.
Trend
Any of the classic aggregations on a numeric field can show a small trend chart under the number. Turn on Show trend on the Appearance tab, pick Line or Bar, and choose the trend's own period (it defaults to the dashboard range and is independent of the aggregation window). Min and max of the trend series print at the chart's left edge; turn them off with Show min / max labels. The chart takes the widget's threshold color when a rule matches. The trend needs a tile at least five rows tall; on smaller tiles the widget shows the number only.
Appearance tab
Controls how the number looks.
| Field | What it does |
|---|---|
| Unit | Display unit. Overrides the field's natural unit. Max 16 characters (e.g., °F, %, kW). |
| Decimals | Number of decimal places (0-6, default 1). |
| Prefix | Text before the number (max 8 chars). Common: $, ±. |
| Suffix | Text after the number (max 8 chars). Common: /min, /day. |
| Abbreviate large numbers | When on, formats 1234567 as 1.23M. Use for counts, file sizes, network traffic. |
| Show trend | Adds a line or bar chart of the field's readings under the value (numeric fields, classic aggregations). See Trend. |
| Trend style / Trend period / Show min / max labels | Line or bar; the chart's own window; whether the series minimum and maximum print at the chart edge. |
| Duration format | Duration in state: 8h 37m or decimal hours 8.6 h. |
| Show share of window | Duration in state: adds 36% of window to the caption. |
| Time display | Last occurrence: Both, Absolute, or Relative. |
| Show aggregation window | Adds a small caption under the value (e.g. Sum · last 7 days) so viewers know what window a sum or average covers. On by default; only appears for windowed aggregations, not last. |
| Show last reading time | Adds a small caption with the timestamp of the reading shown (e.g. as of 6/23/2026, 7:54:02 PM) so viewers can gauge how fresh the value is. On by default. |
| Enable CSV export | Shows a download-to-CSV button on the widget. Off by default for value widgets. |
| Clamp to minimum | When on, the widget never displays a value below a floor. Set the floor with Minimum value. Display only, so stored telemetry and charts are unaffected. Handy for sensors that read small negatives at rest, such as a pressure sensor sitting just below zero. |
| Minimum value | The floor shown when Clamp to minimum is on. Defaults to 0. Any reading below it displays as this value. |
| Font size | auto-fit (sizes to the widget), small, medium, large, extra-large. auto-fit is the default and recommended for most uses. |
| Background color | Hex code; defaults to transparent (uses the widget chrome). Set this when you want a colored card. |
| Title | Header text shown above the value (required, max 120 chars). |
| Subtitle | Optional smaller text below the title (max 200 chars). |
Threshold Rules tab
The interesting tab. Set rules that change the color of the displayed number based on the value.
Each rule has:
- Operator:
>,>=,<,<=,==,between. - Value (and a second value for
between). - Color (hex).
- Label (optional, max 32 chars). When set, renders as a small badge below the number.
Rule order matters. The first matching rule wins. List them from most-specific to most-general, or in your preferred priority order.
Example: battery indicator
| Operator | Value | Color | Label |
|---|---|---|---|
< | 20 | #d11 | Low |
< | 50 | #e80 | Medium |
>= | 50 | #0a8 | OK |
A reading of 15 → red, "Low" badge. Reading of 35 → orange, "Medium". Reading of 80 → green, "OK".
Tips
- For a "current value with target" feel, set a single threshold rule at your target value with a label.
- Use a colored background on important metrics so they stand out at a glance.
- For very large or very small numbers, enable
Abbreviateto keep the display readable. - Decimals should match the field's natural precision. Temperatures usually want 1 decimal; battery percentage 0; flow rate maybe 2.
When to use a different widget
- For boolean state ("On"/"Off", "Connected"/"Disconnected") -> Status widget.
- For numbers that map onto a fixed range (a tank fill level, a speedometer, a battery icon) -> Gauge widget.
- For trends over time -> Chart widget.
- For a list of recent readings -> History widget.