Demo state
Fictional demonstration data — not real equipment
MainsKeeperCollectors 6 of 6 · UPS 6 of 6Collectors 4 of 6 · UPS 5 of 6

Wednesday 30 September 2026 · 15:22

All four places are calm.Three places need a look. Broadwater first.

Every collector is reporting, every UPS is on utility, and nothing is waiting to upload.One UPS is on battery, one site has gone quiet, and one is catching up on its history. Home is fine.

Collectors reporting6 of 64 of 6Every collector checked in within the last 11 s.Both Shop probes are silent since 15:10.
UPS communicating6 of 65 of 6All readings are current.Shop Bench UPS shows last-known readings from 15:10.
Open incidents03Last event: Home weekly summary sent 09:00.1 critical · 1 warning · 1 recovering

Your placesNeeds attention first

Site · Raspberry Pi collector on site

Broadwater

All normalOn battery · 13 min

Broadwater · 1 of 1 collector reporting · 2 of 2 UPS on utility · contact 4 s agoBW Rack UPS on battery since 15:09 (13 min) · live readings 4 s old · 1 of 1 collector reporting

Collectors 1 of 1 reportingUPS 2 of 2 communicating2 of 2 communicating · 1 on batteryLast contact 4 s ago

Critical · needs attention

BW Rack UPS on battery

Charge 71% and the UPS estimates 18 min. BW Office UPS is on a separate circuit and still on utility. The sleeping workstation bw-desk-ws is not an incident.

UPS units2

BW Rack UPSAPC Smart-UPS SMT1500 On utilityOn battery · 13 min 100% · 41 min est.71% · 18 min est.
PowerOn utilityOn batterysince 15:09 · live
Charge100%71%charge, not battery health
Runtime41 min18 min UPS estimateUPS’s own estimate
Load36%38%
Input voltage120 V0 V reported
Battery temperature29 °C31 °C

Freshness

UPS reading4 s oldcurrent
Collector contactbw-pi-01 · 4 s ago

Protects (3)

  • bw-routerrouter
  • bw-nas-01storage
  • bw-switch-24switch

Observed by bw-pi-01. Several machines can share one UPS; not every protected machine runs an agent.

BW Office UPSEaton 5S 700 On utility 100% · runtime not reported
PowerOn utilityseparate circuit
Charge100%
RuntimeNot reported
Load12%
Input voltageNot reported
Battery temperatureNot reported

Freshness

UPS reading4 s oldcurrent
Collector contactbw-pi-01 · 4 s ago

Protects (1)

  • bw-desk-wsworkstation · sleeping · no agent

Observed by bw-pi-01. Several machines can share one UPS; not every protected machine runs an agent.

Collectors1

bw-pi-01Raspberry Pi 4 UPSConnectivity Contact 4 s ago
PlatformRaspberry Pi 4
RolesUPS monitoring · Connectivity monitoringindependent roles
Contact4 s ago
ObservesBW Rack UPS, BW Office UPSone collector, two UPS units

Incidents here01 open

  • CriticalBW Rack UPS on battery
    Since 15:09 · 13 minNot acknowledgedEmail + push delivered 15:09:14

Nothing open here.

Last 24 hours

PowerContact
  • No power events in the last 24 hours.
  • 15:09 – now · BW Rack UPS on battery, 13 min so far (measured, live)

Measured On battery No records Contact lost Delayed record

Site · no computer on site — one standalone probe

Duplex

All normalRecovering · history uploading

Duplex · 1 of 1 probe reporting · contact 3 s ago · nothing waiting to uploadDuplex · 1 of 1 probe reporting · contact restored 15:02 · 1,248 delayed records uploading

Probes 1 of 1 reportingUPS 1 of 1 communicatingLast contact 3 s ago

Recovering · needs attention

Contact restored; history uploading

Current readings are live. Older records from while the probe was out of touch are arriving now and land at their event time. Acknowledged by jp at 13:52; stays open until the backlog is verified.

What happened today13:30 – now

13:3014:0014:3015:0015:30Connectivity proberecorded on siteServer contactseen by MainsKeeperUPS powerrecorded on siteChargemeasured13:41 failures beginContact lost — cause unknown13:52 ack’d by jp (stays open)15:02 restored14:03 on battery · received 15:17At least 27 minutes on battery; endpoint unknown.14:52 ±90 s · clock synced 14:54No records14:30–14:5241%78% rechargingCharge readings from 14:5215:17 delayed record receivedNow 15:22
Solid = measured Hollow ring = delayed record (received later) Hatched = No records Bracket = uncertain time (±90 s) Dotted outline = contact lost, cause unknown
  1. 13:41Connectivity probe failures beginRecorded locally on duplex-pi-probe
  2. 13:44Contact-lost incident opened at serverObservation only; cause unknown
  3. 13:52Acknowledged by jpIncident stays open — acknowledging never resolves
  4. 14:03UPS on batteryRecorded locally · received 15:17 (delayed)
  5. 14:30Last record before observation endedAt least 27 minutes on battery; endpoint unknown.
  6. 14:30–14:52No recordsProbe offline — history gap
  7. 14:52Probe restarted; UPS on utility, charge 41%Time uncertain ±90 s until clock sync at 14:54
  8. 15:02Connectivity restored; contact resumedRecovery recorded
  9. 15:17Delayed 14:03 record receivedPlaced at its event time above

Event times are when things happened at the site. Hollow marker = delayed record · hatched = no records · bracket = uncertain time.

History upload

Uploading · current status stays live
382 of 1,630 uploadedest. ~22 min to drain estimate
Pending1,248 records
Oldest pending13:411 h 41 m old
Last successful upload15:21:48
Batch16 of 64
Retries115:19 · server 503, accepted on retry
Drain~22 minat current rate (estimate)
Buffer38.2 MBof 512 MB
History gap14:30–14:52no records · probe offline

UPS units1

Duplex Utility UPSTripp Lite SMART1500LCD On utility 100% · 46 min est.78% recharging · 29 min est.
PowerOn utilitysince 14:52 (±90 s)
Charge100%78%charge, not battery healthrecharging · not battery health
Runtime46 min29 min UPS estimate
Load27%
Input voltage119 V
Battery temperatureNot reported

Freshness

UPS reading3 s oldcurrent — live while history uploads
Probe contactduplex-pi-probe · 3 s ago

Protects (3)

  • duplex-routerrouter · no agent
  • duplex-ontfibre ONT · no agent
  • duplex-camera-nvrcamera recorder · no agent

Observed by duplex-pi-probe. Several machines can share one UPS; not every protected machine runs an agent.

Probes1

duplex-pi-probeRaspberry Pi 4 running mainskeeperd UPSConnectivity Contact 3 s ago
PlatformRaspberry Pi 4 · mainskeeperd 0.4.2
RolesUPS monitoring · Connectivity monitoring
Contact3 s agoresumed 15:02 · restarted 14:52
UploadNothing waiting1,248 pendinglast upload a few seconds agooldest from 13:41 · see History upload

Incidents here01 open

  • RecoveringContact restored; history uploading
    Opened 13:44 · recovered 15:02Acknowledged by jp 13:52Notifications delivered

Nothing open. Resolved yesterday: utility outage 21:14–21:31.

Last 24 hours

PowerContact
  • Yesterday 21:14 – 21:31 · Utility outage, 17 min on battery (measured) · resolved. This measures that outage, not battery capacity.
  • Yesterday 21:14 – 21:31 · Utility outage, 17 min on battery (measured) · resolved. This measures that outage, not battery capacity.
  • Today 13:41 – 15:02 · See “What happened today” above for the detailed, partly delayed record.

Measured On battery No records Contact lost Delayed record

Site · Mac collector and an ESP32 probe

Home

All normal

Home · 2 of 2 collectors reporting · 2 of 2 UPS on utility · contact 6 s ago

Collectors 2 of 2 reportingUPS 2 of 2 communicatingLast contact 6 s ago

UPS units2

Office Desk UPSCyberPower CP1500PFCLCD On utility 100% · 42 min est.
PowerOn utility38 s on battery at 06:42 (measured)
Charge100%
Runtime42 min UPS estimate
Load22%
Input voltage121 V
Battery temperatureNot reported

Freshness

UPS reading6 s oldcurrent
Collector contacthome-studio · 6 s ago

Protects (3)

  • home-studioMac · runs the collector
  • home-modemmodem
  • home-apaccess point

Observed by home-studio. Several machines can share one UPS; not every protected machine runs an agent.

Garage UPSAPC Back-UPS 600 On utility 100% · few values reported
PowerOn utility
Charge100%
RuntimeNot reported
LoadNot reported
Input voltageNot reported
Battery temperatureNot reported

Freshness

UPS reading11 s oldcurrent
Collector contacthome-esp32-garage · 11 s ago

Protects (2)

  • garage-door-hubdoor hub · no agent
  • garage-cameracamera · no agent

Observed by home-esp32-garage. Several machines can share one UPS; not every protected machine runs an agent.

Collectors2

home-studiomacOS UPSConnectivity Contact 6 s ago
PlatformmacOS
RolesUPS monitoring · Connectivity monitoring
Contact6 s ago
ObservesOffice Desk UPS
home-esp32-garageESP32 probe (qualified) UPSConnectivity: not this collector Contact 11 s ago
PlatformESP32 probe (qualified)
RolesUPS monitoring onlyconnectivity is watched by home-studio
Contact11 s ago
ObservesGarage UPS

Incidents here0

Nothing open here. Last event: weekly summary sent 09:00.

Internet availability

Observed internet availability99.93%last 30 days · coverage 98.1% (13 h 41 m unknown)
Reporting availability99.4%same period · how often collectors checked in — not internet uptime

Coverage bar: solid = observed (98.1%), hatched = unknown (13 h 41 m).

Last 24 hours

PowerContact
  • 06:42:10 · Office Desk UPS on battery 38 s (measured), back on utility
  • 06:42:10 · Office Desk UPS on battery 38 s (measured), back on utility

Measured On battery No records Contact lost Delayed record

Site · no computer on site — two standalone probes

Shop

All normalContact lost — cause unknown

Shop · 2 of 2 probes reporting · contact 5 s agoShop · 0 of 2 probes reporting · contact lost 12 min ago, cause unknown

Probes 2 of 2 reporting0 of 2 reportingUPS 1 of 1 communicating0 of 1 · last known 15:10Last contact 5 s ago15:10:02

Warning · needs attention

Contact lost with 2 of 2 probes — cause unknown

Both probes went quiet within seconds of each other. MainsKeeper can’t tell why; it only knows contact stopped. The UPS values below are last known from 15:10.

UPS units1

Shop Bench UPSAPC Back-UPS Pro 1500 On utilityLast known 15:10 · on utility 100% · 26 min est.Last known · 12 min ago
PowerPower · last knownOn utility
ChargeCharge · last known100%
RuntimeRuntime · last known26 min UPS estimate
LoadLoad · last known31%
Input voltageNot reported
Battery temperatureNot reported

Freshness

UPS reading5 s old12 min old · Last knowncurrentfrom 15:10; not current
Probe contactshop-esp32-ups · 5 s agoshop-esp32-ups · last 15:10:02

Protects (3)

  • shop-cnc-ctrlCNC controller · no agent
  • shop-switchswitch
  • shop-cameracamera

Observed by shop-esp32-ups. Several machines can share one UPS; not every protected machine runs an agent.

Probes2

shop-esp32-upsESP32 (qualified) · USB to the UPS UPSConnectivity: not this collector Contact 5 s agoLast contact 15:10:02
PlatformESP32 (qualified)
RolesUPS monitoringUSB to Shop Bench UPS
Contact5 s agoLost — last 15:10:0212 min ago · cause unknown
ObservesShop Bench UPS
shop-esp32-netESP32 (qualified) UPS: not this collectorConnectivity Contact 7 s agoLast contact 15:09:58
PlatformESP32 (qualified)
RolesConnectivity monitoring
Contact7 s agoLost — last 15:09:5812 min ago · cause unknown
ObservesInternet reachability from the shop

Incidents here01 open

  • WarningContact lost with 2 of 2 probes — cause unknown
    Since 15:10 · 12 minNot acknowledgedEmail delivered 15:15:03 · push failed, retrying

Nothing open here.

Last 24 hours

PowerContact
  • No events in the last 24 hours.
  • 15:10 – now · Contact lost with both probes, cause unknown (dotted) · no UPS records since (hatched)

Measured On battery No records Contact lost Delayed record

Critical · Broadwater

BW Rack UPS on battery

Since 15:09 · 13 min

AcknowledgmentNot acknowledged
RecoveryNot recovered — still on battery
MaintenanceNone scheduled
NotificationsEmail delivered 15:09:14
Push delivered 15:09:14

Acknowledging tells others you’re on it. It never resolves the incident.

Live readings · 4 s old

PowerOn battery since 15:0913 min observed
Charge71%charge is not battery health
Runtime18 min UPS estimatethe UPS’s own guess, not a measurement
Load38%
Input0 V reported
Battery temperature31 °C

What happened

  1. 15:09BW Rack UPS on batteryMeasured start · live readings from bw-pi-01
  2. 15:09:14Email and push deliveredBoth channels confirmed
  3. 15:22Still on battery13 min observed so far

Protects

bw-router, bw-nas-01, bw-switch-24. BW Office UPS is on a separate circuit and still on utility.

MainsKeeper watches and tells. It can’t switch power, shut anything down, or change UPS settings.

Warning · Shop

Contact lost with 2 of 2 probes — cause unknown

Since 15:10 · 12 min

AcknowledgmentNot acknowledged
RecoveryNot recovered — waiting for contact
MaintenanceNone scheduled
NotificationsEmail delivered 15:15:03
Push failed — retrying

Acknowledging tells others you’re on it. It never resolves the incident.

What we know

shop-esp32-upsLast contact 15:10:02UPS role · USB to the UPS
shop-esp32-netLast contact 15:09:58Connectivity role

Shop Bench UPS · Last known 15:10 (12 min ago)

PowerOn utility
Charge100%
Runtime26 min UPS estimate
Load31%

Contact stopped with both probes at about the same time. That is all we can see — it doesn’t tell us whether power, the network, or the probes are at fault. There is no computer on site, so nothing else is reporting.

MainsKeeper watches and tells. It can’t switch power, shut anything down, or change UPS settings.

Recovering · Duplex

Contact restored; history uploading

Opened 13:44 · recovered 15:02

AcknowledgmentAcknowledged by jp 13:52
RecoveryRecovered 15:02 · stays open until the backlog is verified
MaintenanceNone scheduled
NotificationsEmail and push delivered

Acknowledging tells others you’re on it. It never resolves the incident.

What happened today

  1. 13:41Connectivity probe failures beginRecorded locally on duplex-pi-probe
  2. 13:44Contact-lost incident opened at serverObservation only; cause unknown
  3. 13:52Acknowledged by jpIncident stays open — acknowledging never resolves
  4. 14:03UPS on batteryRecorded locally · received 15:17 (delayed)
  5. 14:30Last record before observation endedAt least 27 minutes on battery; endpoint unknown.
  6. 14:30–14:52No recordsProbe offline — history gap
  7. 14:52Probe restarted; UPS on utility, charge 41%Time uncertain ±90 s until clock sync at 14:54
  8. 15:02Connectivity restored; contact resumedRecovery recorded
  9. 15:17Delayed 14:03 record receivedPlaced at its event time above

Event times are when things happened at the site. Hollow marker = delayed record · hatched = no records · bracket = uncertain time.

History upload

Uploading · current status stays live
382 of 1,630 uploadedest. ~22 min to drain estimate
Pending1,248 records
Oldest pending13:411 h 41 m old
Last successful upload15:21:48
Batch16 of 64
Retries115:19 · server 503, accepted on retry
Drain~22 minat current rate (estimate)
Buffer38.2 MBof 512 MB
History gap14:30–14:52no records · probe offline

Yesterday 21:14–21:31: utility outage, 17 min on battery (measured), utility returned, resolved. That measures the outage, not battery capacity.

MainsKeeper watches and tells. It can’t switch power, shut anything down, or change UPS settings.