battery: van-battery daemon (low-charge Pushover alerts + safe shutdown)

While on battery (AC0/online=0), sends escalating Pushover alerts at 25/20/15%
and at 10% sends a final alert then `systemctl poweroff` (after shutdown_grace
so the alert flushes first). Edge-triggered per discharge episode; re-arms when
mains returns; plug-out already-low collapses to a single alert (no burst).

Pushover token+user live only in /etc/van-battery/pushover.json (0600), seeded
from pushover.json.example on first deploy and never committed. Missing/
placeholder creds disable sending but NOT the shutdown — running flat must
always power down safely. Publishes /run/van-battery/state.json. Stdlib only.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Andreas Wrede
2026-06-28 21:48:24 -04:00
co-authored by Claude Opus 4.8
parent ef6c1ce182
commit b75b5b16c7
6 changed files with 273 additions and 3 deletions
+13
View File
@@ -0,0 +1,13 @@
[Unit]
Description=Battery monitor + low-charge Pushover alerts / safe shutdown for the campervan router
After=local-fs.target network-online.target
Wants=network-online.target
[Service]
Type=simple
ExecStart=/usr/local/sbin/van-battery
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target