Skip to main content

Graph Widget

📊 Chart

The Graph widget renders a line or area chart from data stored in the VWire time-series database. You can view historical ranges and enable live streaming to watch values arrive in real time.

Default size: 4 × 3 grid cells


Configuration

PropertyTypeDefaultDescription
chartTypeline | arealineChart rendering style
colorhex color#6366F1Line / fill color
timeRange1h | 6h | 24h | 7d | 30d1hDefault historical window
liveUpdatebooleantrueAppend new values without reload
yMinnumber | autoautoY-axis minimum
yMaxnumber | autoautoY-axis maximum
DevicedeviceThe device to read from
PinV0V255The virtual pin to chart
LabelstringWidget label

Firmware example

void loop() {
Vwire.run();

float temp = dht.readTemperature();
float hum = dht.readHumidity();

if (!isnan(temp)) Vwire.virtualSend(V0, temp);
if (!isnan(hum)) Vwire.virtualSend(V1, hum);

delay(10000); // 10 s resolution for historical charts
}

Data retention

VWire automatically downsamples data as it ages:

AgeResolution
< 24 hRaw (every push)
1–7 d1-minute averages
7–30 d5-minute averages
> 30 d1-hour averages

Push data at whatever rate makes sense for real-time, and let VWire handle long-term storage automatically.


Multi-series graphs

Overlay multiple pins on the same graph:

  1. Add a Graph widget and configure the primary pin.
  2. In Widget Settings, click + Add Series.
  3. Pick a second device + pin and an accent color.

Each series gets its own color and can have an independent Y-axis.


Tips

Smooth curves

Push updates every 5–30 seconds for smooth temperature/humidity graphs. Pushing every 100 ms will work but will generate a lot of data.

Y-axis auto-scale

Leave yMin/yMax as auto for self-scaling, or lock them to avoid jarring rescales on minor fluctuations.