Fleet views — one overview for every station, one dashboard for each

Updated

When you run many stations that all carry the same tags — 178 water-quality stations, each with Dissolved Oxygen, pH, Nitrate and Water level — three things make them manageable from one screen:

Rollout. Fleet views are being rolled out account by account. The two fleet widgets and the figures behind them also need a plan that includes premium widgets — the same entitlement as the analog / SCADA widgets. On a plan without it, Add Widget shows them with a 🔒 Pro badge (clicking one takes you to pricing), and a fleet tile already on a dashboard says Fleet views need a paid plan. Station variables and the station picker need only the rollout, not a paid plan. If you don't see Variables under Dashboard Settings or the fleet widgets in Add Widget, contact support.

What counts as a station

Any device. The fleet widgets group devices by tag subtype — the tag type from the catalog (Nitrate, Dissolved Oxygen, pH…; see device parameters). "Every station's Nitrate" means every device that carries a Nitrate tag, whichever gateway it is behind and however it connects. A device without that tag is simply not in that count. Both widgets take an optional Gateway filter to look at only the stations behind one gateway.

Where the numbers come from

Each station contributes its latest reading within the last hour — the same live value your dashboards stream — in engineering units, after the tag's scale factor and offset. Nothing is read from stored history, so fleet views work on plans that don't store telemetry.

A station that… Counts as In the average / min / max? In "in range"?
is online and sent the tag in the last hour, and the tag has an alarm or Watch limit Normal, Watch or Alert Yes Yes
is online and sent the tag in the last hour, but the tag has no limits Reporting, ungraded Yes No — there is nothing to grade
is online but hasn't sent that tag in the last hour No data No No
is offline Offline No No

Two things follow from this:

The Normal / Watch / Alert level of each reading is the one described in Normal, Watch and Alert. With cloud alarms on, it is exactly the level on the Active alarms page, hysteresis included — the KPI, the station list and the alarms page can't disagree. Without cloud alarms, the latest reading is compared directly against the tag's limits, with no hysteresis, the way the gateway firmware compares.

Both widgets re-fetch on their Refresh (seconds) interval, and within a couple of seconds of any station changing level.

Fleet KPI — one number across every station

Add Widget → KPIs & Counters → Fleet KPI.

Option What it does
Tag subtype The tag type to measure. The list shows every tag type found on your devices with its unit and how many devices carry it — Nitrate (mg/L) · 176 devices.
Statistic Average, Minimum, Maximum, In range, Stations in Alert, Stations on Watch or Stations offline.
Gateway Leave empty for the whole fleet, or pick one gateway to count only the stations behind it.
Decimals 0 – 6.
Refresh (seconds) 10 – 3600; default 30.
Caption Shown in the tile; defaults to the tag's label.

The tile shows the statistic as its big number — 6.4 mg/L avg — with a line of counts underneath: 174 / 176 in range · 1 watch · 1 alert · 2 offline · 3 no data. Parts that are zero are left out, and in range appears only when the tag has limits. Per statistic:

The tile turns amber when any station is on Watch and red when any is in Alert. A count tile (Alert, Watch, offline) is coloured only when its own count is non-zero. If stations disagree about the tag's unit — some in mg/L, some in ppm — a mixed units chip warns that the average is mixing them; fix the unit on the odd stations. A tile with no tag chosen says Pick a tag subtype in settings; one whose tag no device carries says No station carries this tag.

Station List — every station in a table

Add Widget → Comparisons → Station List.

Option What it does
Columns (tag subtypes) Tick one or more tag types — one column each, in that order. The header shows the tag's label and unit.
Gateway Leave empty for the whole fleet.
Show only All stations, In Alert, On Watch or Offline.
Sort by Needs attention first — Alert, then Watch, then offline, then the rest, each group by name — or Station name.
Rows per page 25 – 500; default 200. Longer fleets page in the footer.
Decimals 0 – 6.
Refresh (seconds) 10 – 3600; default 30.
Row click opens A dashboard that has a station variable. Leave empty and a row opens the station's device page.
Station variable on that dashboard The variable's name on that dashboard, e.g. station.
Caption The heading of the station column; defaults to Station.

Each row is one station: a status dot, its name and gateway, one cell per column, then Last seen (just now, 12 min ago, 3 h ago, 2 d ago, or never). A cell is coloured by that tag's level, and hovering it shows the tag's limit in words — Alarms below 4 mg/L · Watch below 5 mg/L. A cell shows — when the station hasn't sent that tag in the last hour. An offline station's row is greyed with its last-seen time, so a silent site reads as silent, not as healthy. The table header takes the colour of the worst row on the page.

Clicking a row opens the station: in the drill-down dashboard with that station selected (the address ends in ?var-station=<device id>) when Row click opens is set, otherwise on the device page.

Dashboard variables — one dashboard for every station

A dashboard's widgets normally point at fixed devices, so a per-station detail view means one dashboard per station — Duplicate and re-point, 178 times. A station variable replaces the fixed device: widgets bind to ${station}, and a station picker in the toolbar switches the whole dashboard to whichever station you choose.

Add a station variable

  1. Open the dashboard in edit mode and open Dashboard Settings. Under Variables, click Add station variable.
  2. Name — an identifier, e.g. station. This is what widgets bind to, as ${station}.
  3. Label — what the toolbar shows next to the picker, e.g. Station.
  4. Only devices with tag (optional) — offer only devices carrying this tag type.
  5. Only devices on gateway (optional) — offer only devices behind this gateway.
  6. Default device (optional) — the station shown when nobody has picked one. Left empty, the first device matching the filter is used.

The dashboard saves as usual.

Bind widgets to it

On a widget's Data tab, the device dropdown gains a Station variables group: choose ${station} — Station (station variable) instead of a fixed device, then pick the tag as usual. The tag list you are offered comes from the variable's default device (or the first matching one), and the widget looks for a tag of the same name on whichever station is picked — so give every station the same tag names. A tag type from the catalog does that for you.

A computed widget can use the variable too: each of its variables' device fields offers the same Station variables group.

Pick a station

The dashboard toolbar shows one searchable picker per variable — the label and a Select a station dropdown, each device with its online dot. Choosing one re-points every widget bound to the variable at once.

Build a fleet overview for 178 water-quality stations

Every station carries Dissolved Oxygen, pH, Nitrate and Water level, each with the limits from the lake example.

1. The detail dashboard. Create a dashboard Station detail. Under Dashboard Settings → Variables, add a variable named station, labelled Station, with Only devices with tag set to Dissolved Oxygen so the picker offers exactly the stations. Add a line chart and a readout per parameter, each bound to ${station} on the Data tab; give the Dissolved Oxygen level meter Show the tag's alarm limits (see threshold markers). Open the picker and step through a few stations to check every widget follows.

2. The overview dashboard. Create Lake overview. Add Fleet KPI tiles across the top:

Tile Tag subtype Statistic Why
Lowest oxygen Dissolved Oxygen Minimum The number that matters, and the station that has it.
pH in range pH In range 171 / 176 is the health of the network in one glance.
Average nitrate Nitrate Average The trend figure for the report.
Highest water level Water level Maximum Names the station closest to flooding.
Stations offline Dissolved Oxygen Stations offline Every station carries this tag, so its offline count is the fleet's.

3. The station list. Below the tiles, add a Station List with Columns Dissolved Oxygen, pH, Nitrate, Water level; Sort by Needs attention first; Row click opens Station detail; Station variable on that dashboard station.

4. Use it. A tile goes red; the station in Alert is the first row of the list; click it and Station detail opens on that station with its charts, limits drawn in. Copy the address from the bar and paste it to whoever is going out to the site.

5. Per basin. For a screen per lake or per basin, duplicate the overview and set the Gateway filter on every tile and the list to that basin's gateway.

Limitations

For AI agents

A connected AI agent gets the same figures with get_fleet_summary, and can build a dashboard with a station variable by setting a widget's deviceId to "${station}".

Related