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

FieldDescription
labelDisplay name shown on the card
value_bindingPath to the live value (e.g. bus.aircraft_count)
sparkline_fieldField to chart in the sparkline
sparkline_entityEntity ID to source sparkline data from
sparkline_window_sTime window in seconds for sparkline history
unitDisplay unit suffix (e.g. "km/h", "%", "MW")
target_valueOptional target for progress-bar rendering
thresholdsMap of value to color (e.g. {90: "red", 70: "amber"})
decimalsNumber of decimal places for the displayed value
object_set_typeObjectSet 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.