Skip to main content
Category: Display · Sends commands: via triggers · Reads data: yes

Mental model

A Gauge is a speedometer. It shows a single number as a needle on an arc — it’s a read-only display, driven by data pushed to its widget ID. (It can also fire threshold triggers when the value crosses a line — a display that can also act.)

When to use it

  • Show one live value at a glance: temperature, speed, battery, pressure
  • Trigger an action when a value crosses a threshold

Settings

General

  • Widget Title / ID — firmware pushes the value to this ID
  • Value range (min / max)

Style

  • Arc start / end · arc width — the gauge sweep
  • Add threshold — colored bands at value ranges
  • Animation duration / easing / delay — needle motion
  • Common background / shadow / filter controls

Data

Bind the Gauge to a device value or field path in the Data tab — or push to its widget ID from firmware.

Triggers

EventFires when
thresholdThe value crosses a configured threshold
min / maxThe value hits the range ends
changeThe value changes
(common)load, ready, destroy, update, visible, hidden

Example — drive the gauge from firmware

Push a reading to the Gauge’s widget ID (tempGauge):
void loop() {
  device.loop();
  float temperature = readTemperature();
  device.updateWidget(targetId, "tempGauge", temperature);   // needle moves live
  delay(2000);
}
The Gauge updates in real time — no refresh, no polling.

Example — act on a threshold

A threshold trigger turns something off when the value is too high:
WHEN     threshold
SEND TO  Current Device
EXECUTE  Operate
Action   OFF   params: {}

Script API example

The same interactions from a dashboard script:
widget.on('tempGauge', 'change', (t) => {
  widget.setConfig('tempGauge', 'color', t > 80 ? '#ef4444' : '#22c55e');
});
widget.on('tempGauge', 'threshold', (d) => {
  console.warn('Crossed threshold:', d.value, '>', d.threshold);
});

Binding data

Connect the gauge to device data.

Chart

To show a value over time.