Demo state Concept 9 · Synoptic
MainsKeeper

Fictional demonstration data — not real equipment. Output format is a design proposal.

The station report, in a terminal.

Like a METAR, but for people at 2 a.m.: a fixed column of short codes you can scan, each followed by the same fact in plain words. The forecast line always says “UPS estimate”. Colour only reinforces — the NO_COLOR rendition carries every meaning.

Colour rendition

jp@duplex-pi-probe — 92 columns
$ mainskeeper status
DUPLEX STATION  duplex-pi-probe  30 SEP 2026  15:22 local
host     Raspberry Pi OS 12 · mainskeeperd 0.4.2 · up 30 min (since 14:52)
roles    UPS monitoring on · connectivity monitoring on

CONTACT  OK    server connected · heartbeat 3 s ago · recovered 15:02
UPS      UTIL  Duplex Utility UPS · on utility · reading 3 s old
         CHG 78%+   charge 78%, recharging (state of charge, not battery health)
         LOD 27%    load 27%
         INP 119V   input 119 V
         TMP //     temperature not reported (// = not reported, never 0)
         FCST 29M   est. runtime 29 min — UPS estimate (a forecast, not a measurement)
PROBE    3/3   3 of 3 targets answering · last failure window 13:41–15:02
SYNC     UPLD  1,248 pending · 382 of 1,630 uploaded · oldest pending 13:41
               last upload 15:21:48 · batch 16/64 · 1 retry (15:19, 503, accepted)
               est. drain ~22 min (estimate) · buffer 38.2 MB / 512 MB
GAP      ////  14:30–14:52 no records · utility return time unknown within it

codes    OK in contact · UTIL on utility · BATT on battery · // not reported
         FCST UPS estimate · UPLD history uploading · //// no records · [ ] uncertain

$ mainskeeper episodes --since yesterday
DUPLEX UTILITY UPS  time on battery, by observation time
TODAY    BATT  start 14:03 recorded locally · received 15:17 (late report)
               last record 14:30 · then //// no records 14:30–14:52 (probe offline)
               utility first observed 14:52 [±90 s] first record after the gap
               At least 27 minutes on battery; endpoint unknown.
               Return time unknown — sometime between 14:30 and 14:52.
29 SEP   BATT  21:14–21:31 · 17 min on battery (measured) · resolved
               start record received 21:14:03 · end record received 21:31:05
               measures that outage, not battery capacity

Fictional demonstration data — not real equipment. Output format is a design proposal.

NO_COLOR rendition

NO_COLOR=1 mainskeeper status
$ mainskeeper status
DUPLEX STATION  duplex-pi-probe  30 SEP 2026  15:22 local
host     Raspberry Pi OS 12 · mainskeeperd 0.4.2 · up 30 min (since 14:52)
roles    UPS monitoring on · connectivity monitoring on

CONTACT  OK    server connected · heartbeat 3 s ago · recovered 15:02
UPS      UTIL  Duplex Utility UPS · on utility · reading 3 s old
         CHG 78%+   charge 78%, recharging (state of charge, not battery health)
         LOD 27%    load 27%
         INP 119V   input 119 V
         TMP //     temperature not reported (// = not reported, never 0)
         FCST 29M   est. runtime 29 min — UPS estimate (a forecast, not a measurement)
PROBE    3/3   3 of 3 targets answering · last failure window 13:41–15:02
SYNC     UPLD  1,248 pending · 382 of 1,630 uploaded · oldest pending 13:41
               last upload 15:21:48 · batch 16/64 · 1 retry (15:19, 503, accepted)
               est. drain ~22 min (estimate) · buffer 38.2 MB / 512 MB
GAP      ////  14:30–14:52 no records · utility return time unknown within it

codes    OK in contact · UTIL on utility · BATT on battery · // not reported
         FCST UPS estimate · UPLD history uploading · //// no records · [ ] uncertain

$ mainskeeper episodes --since yesterday
DUPLEX UTILITY UPS  time on battery, by observation time
TODAY    BATT  start 14:03 recorded locally · received 15:17 (late report)
               last record 14:30 · then //// no records 14:30–14:52 (probe offline)
               utility first observed 14:52 [±90 s] first record after the gap
               At least 27 minutes on battery; endpoint unknown.
               Return time unknown — sometime between 14:30 and 14:52.
29 SEP   BATT  21:14–21:31 · 17 min on battery (measured) · resolved
               start record received 21:14:03 · end record received 21:31:05
               measures that outage, not battery capacity

Fictional demonstration data — not real equipment. Output format is a design proposal.

Codes, in words

CodeMeaning
OKThe server is in contact with this probe now. “recovered 15:02” is fresh evidence of recovery and is never held back by the upload backlog.
UTIL / BATTUPS on utility / on battery — observed.
CHG 78%+State of charge, rising. Not battery health.
//Not reported by this device. Never printed as 0.
FCST 29MThe UPS’s own runtime estimate. A forecast, labelled “UPS estimate” every time.
UPLD / CURRStored history is uploading / history is current. A separate attribute from contact and recovery.
////No records for that span. A gap stays a gap; the first record after it does not say when power returned.
[±90 s]Uncertain timestamp, bracketed (here: before the clock synced at 14:54).