Dashboard Pane
A configurable grid of KPI cards for at-a-glance operational metrics. Each card binds to a live value from the ControlBus or ComputedFieldEngine, displaying the current number with trend direction, sparkline history, and threshold-based coloring. Dashboards are the executive summary layer — designed for wall displays, shift handoffs, and management oversight.
Grid Layout
Cards are arranged in a responsive grid. The default column count is 3 but can be configured per dashboard. Cards reflow automatically when the pane is resized or split.
KpiCardConfig
| Field | Description |
|---|---|
| label | Display name shown on the card |
| value_binding | Path to the live value (e.g. bus.aircraft_count) |
| sparkline_field | Field to chart in the sparkline |
| sparkline_entity | Entity ID to source sparkline data from |
| sparkline_window_s | Time window in seconds for sparkline history |
| unit | Display unit suffix (e.g. "km/h", "%", "MW") |
| target_value | Optional target for progress-bar rendering |
| thresholds | Map of value to color (e.g. {90: "red", 70: "amber"}) |
| decimals | Number of decimal places for the displayed value |
| object_set_type | ObjectSet type filter for scoping the metric |
Runtime State
- current_value: The latest numeric value from the binding
- color: Active threshold color based on current_value
- trend: Up, Down, or Flat arrow based on recent change direction
- sparkline_points: Rolling buffer of recent values for the mini-chart
Data Pipeline
Cards connect to ControlBus.live_values for real-time metrics and the ComputedFieldEngine for derived calculations. Each card has a config editor accessible via its context menu for adjusting bindings, thresholds, and display options.
Keyboard Shortcuts
Ctrl + E Edit card configuration Ctrl + R Force refresh all cards Tab Cycle focus between cards YAML Configuration
yaml DashboardConfig
auto-generated
Field Type Default Description columns usize 3 Number of columns in the KPI card grid. cards Vec<KpiCardConfig> [] KPI card definitions. title String — Optional pane title override.
yaml KpiCardConfig
auto-generated
Field Type Default Description label String "New Card".into() Display label. value_binding String "new()" Key into `live_values` for the current value. sparkline_field String — Optional field name in `FieldHistoryStore` for sparkline data. sparkline_entity String — Entity ID to use for sparkline lookup (if field is per-entity). sparkline_window_s f64 300.0 Sparkline time window in seconds. unit String — Optional unit label (e.g. "km/h", "C", "%"). target_value f64 — Optional target/baseline value for comparison. thresholds Vec<KpiThreshold> [] Threshold color rules (checked in order, first match wins). decimals usize 1 Number of decimal places for value display. object_set_type String — Optional ObjectSet query to scope the value to matching entities. When set, the card computes the average of `value_binding` across entities matching this query, instead of reading from `live_values`.
Example YAML
dashboard:
columns: 3
title: "Fleet Overview"
cards:
- label: "Active Vehicles"
value_binding: fleet.active_count
unit: ""
target_value: 50
decimals: 0
- label: "Avg Speed"
value_binding: fleet.avg_speed
unit: "km/h"
sparkline_field: speed
sparkline_window_s: 600
decimals: 1
- label: "Fuel Efficiency"
value_binding: fleet.fuel_efficiency
unit: "%"
target_value: 85.0
decimals: 1
object_set_type: Vehicle
Questions?
Reach out for help with integration, deployment, or custom domain codecs.