diff --git a/opencode/decisions.yaml b/opencode/decisions.yaml index 34cfe230..48aaeb87 100644 --- a/opencode/decisions.yaml +++ b/opencode/decisions.yaml @@ -1169,7 +1169,8 @@ notes: files: - colour-sync.py - configuration.yaml - status: active + status: superseded + superseded_by: 2026-10-16-cfs-lite-grafana-bar-colours-are-synced-2 - id: 2026-10-16-new-rfid-filaments-need-the-spoolman date: 2026-10-16 title: New RFID filaments need the Spoolman filament Weight field set @@ -1187,3 +1188,23 @@ notes: integrations: - spoolman status: active + - id: 2026-10-16-cfs-lite-grafana-bar-colours-are-synced-2 + date: 2026-10-16 + title: CFS Lite Grafana bar colours are synced by an in-HA job every 5 minutes + decision: The four CFS Lite bar colours on the Grafana 'Filament - Spools & Forecast' + dashboard are rewritten every 5 min by automation.grafana_colour_sync_cfs_lite_slots + -> shell_command.grafana_colour_sync -> /config/colour-sync.py, keyed on each + spool's 'CFS Lite N' location. + rationale: Grafana cannot colour bars from the metric (colour is absent from the + Prometheus data), so colour must be a literal in the dashboard JSON rewritten + externally. HA renders the mapping and passes it as --colours because a templated + shell_command runs without a shell (no redirect/pipes), and the in-container job + cannot call HA's API (Supervisor proxy returns 401). The Grafana token lives in + /config/.colour-sync.token. + entities: + - automation.grafana_colour_sync_cfs_lite_slots + files: + - colour-sync.py + - configuration.yaml + pin: true + status: active