Commit Graph
24 Commits
Author SHA1 Message Date
mrcharles 83b32d5d9f feat(heartbeat): dead-man push to out-of-band Kuma every 5 min [#792]
ci / lint (push) Successful in 42s
HA curls status.knownelement.com push URL on a 5-min pattern; Kuma
pages the founder directly if heartbeats stop. Alert path independent
of HA itself.
https://projects.knownelement.com/issues/792
2026-09-04 17:07:04 -05:00
mrcharles 239e449d45 feat(validate): post-deploy validation on every HA start [#778]
ci / lint (push) Successful in 41s
Missing/stale criticals after restart page with specifics instead of
waiting for humans; watchdog handles recovery; revert procedure
documented for repeat failures.
2026-09-04 16:23:53 -05:00
mrcharles 601c70ec5e fix(alerts): iOS data.url only — clickAction rejected by apns schema [#344 #778]
ci / lint (push) Successful in 46s
Watchdog notify crash root-caused: iOS companion schema rejects
data.clickAction; url is the iOS deep-link key. Suite updated to
assert url presence per alert.
https://projects.knownelement.com/issues/778
2026-09-04 16:11:31 -05:00
mrcharles 45024f80c3 feat(sdlc): regression test suite in CI + watchdog covers deploy sensor [#778 #789]
ci / lint (push) Successful in 38s
tests/test_sdlc.sh: alert-twin presence, per-alert deep-link check,
watchdog coverage, ghost-entity + secret guards. Runs as a CI step.
https://projects.knownelement.com/issues/778
2026-09-04 14:27:51 -05:00
mrcharles 4f54635b33 feat(watchdog): stale-entity auto-heal — reload, notify, guarded restart [#789]
ci / lint (push) Failing after 14s
5-min staleness checks on 12 critical entities; reload_config_entry
auto-heal (no restart); notify on failure; auto-restart behind
input_boolean arm (default OFF).
https://projects.knownelement.com/issues/789
2026-09-04 10:55:00 -05:00
mrcharles 8931b653d5 feat(ups): Tripp Lite into on-battery/low-battery/comms alerts [#372 #344]
tsys1_triplite entities replace the never-real tsys9_ups_status
ghost references; battery-low trigger gains the triplite charge.
dev only - release push pending founder go.
https://projects.knownelement.com/issues/372
2026-09-04 07:12:28 -05:00
mrcharles 09f3276b31 feat(deploy): branch model — box tracks release, dev is WIP-integration [#779 #344]
webhook ref-guard + sha-watch sensor pinned to ?sha=release;
sensor renamed pfv_deploy_gitea_release_head; master frozen.
https://projects.knownelement.com/issues/779
2026-09-04 06:32:56 -05:00
mrcharles 41116c7feb feat(alerts): deep-link taps to UPS/Temps/Overview views [#344]
clickAction (Android) + url (iOS) on all 9 alert notifications;
explicit lovelace view paths for deterministic links.
https://projects.knownelement.com/issues/344
2026-09-04 06:04:19 -05:00
mrcharles 33505c647e fix(plant): recovery alert condition indentation [#344]
value_template must be a sibling key of condition in the action
sequence, not a continuation - reload 500 pointed at line 494.

Detail: https://projects.knownelement.com/issues/344
2026-09-03 16:16:04 -05:00
mrcharles e6f4032865 feat(plant): temperature RECOVERY alerts - tiered clear notifications [#344]
Recovery twin of the high-temperature alert: per-tier below-triggers
(fire-line minus 5F, held 10 min), from_state guard against restart
false-positives, peak-value reporting. Matches existing notify
targets; UPS on-battery already had its restored twin.

Detail: https://projects.knownelement.com/issues/344
2026-09-03 16:12:18 -05:00
mrcharles b7f376b6b3 fix(deploy): sha-watch deploys must restart core - reload kills webhook triggers [#345]
Found live 2026-09-03: after reload-only deploys, webhook-triggered
automations (doorman ingest, deploy fast path) silently stop firing
while the endpoint still returns HTTP 200. Proven: core restart
restores them. Sha-watch now restarts core on every new master HEAD
(same semantics as the webhook fast path for packages/** changes).

https://projects.knownelement.com/issues/345
2026-09-03 06:33:00 -05:00
mrcharles ec974c9061 fix(alarms): CPU/SoC silicon tier at 176F - ambient 104F only for true ambient [#733]
subopi3 SoC idles at 117F and false-alarmed the 104F ambient bucket
at 23:15 CDT. Silicon (server CPUs, drac cpu, Pi/Jetson SoCs) now
alerts at 176F (80C pre-throttle).
Detail: https://projects.knownelement.com/issues/733
2026-09-02 23:17:07 -05:00
mrcharles 751bf1c396 fix(deploy): self-diagnosing sha sensor + drop invalid not-key [#734]
Gitea response came back a dict (error body) - sensor state now shows
the truncated body so one restart identifies it. not: rejected by
trigger schema; guard lives in the condition template already.
Detail: https://projects.knownelement.com/issues/734
2026-09-02 22:30:16 -05:00
mrcharles 975974b043 feat(deploy): gitea sha-watch safety net - reload-only deploys [#734]
REST sensor polls master HEAD (scoped read token in host secrets);
sha change -> pull + reload_all, no core bounce. Webhook stays the
fast path pending gitea ALLOWED_HOST_LIST widening (CGNAT target).
Detail: https://projects.knownelement.com/issues/734
2026-09-02 22:23:57 -05:00
mrcharles 10f9d2d02d feat(deploy): founder push notifications on deploys [#734]
Also first live E2E of the gitea webhook: this push triggers the
pull + reload_all path with no core restart.
Detail: https://projects.knownelement.com/issues/734
2026-09-02 22:09:28 -05:00
mrcharles d08f3131f0 fix(deploy): drop invalid stop_reason key (blocked automation reload) [#734]
stop action takes the message inline; stop_reason is not in the 2026.8
script schema and validation failure aborts the whole automations reload.
Detail: https://projects.knownelement.com/issues/734
2026-09-02 22:04:07 -05:00
mrcharles 2669c3cf7c feat(deploy): gitea webhook - pull + minimal reload pipeline [#734]
Webhook automation: master pushes force a git pull then reload_all;
core restart only for configuration.yaml / packages platform files.
Add-on auto_restart disabled separately on the host (race source).
Detail: https://projects.knownelement.com/issues/734
2026-09-02 21:57:17 -05:00
mrcharles 12492759bc feat(plant): drive (drivetemp) + GPU (nouveau, jetson zone) temps [#736]
12 new two-layer sensors: 10 drive temps across tsys1/4/5/9 (server
disks behind PERC remain a documented gap), tsys3 Quadro via nouveau
hwmon, jetson GPU-therm zone. Alert triggers: drives 140F (drive
ratings), GPUs 185F. Dashboard sections extended.
2026-09-02 21:27:50 -05:00
mrcharles bb863e61d9 feat(automations): class-threshold temp alerts + UPS runtime-low [#344]
NVMe 150F, DIMM 140F, PCH 160F triggers on the new storage/mem/chipset
sensors (104F general threshold retained for air/CPU); UPS runtime-low
alert (<10 min while not Online) guards the #455 shutdown window.

https://projects.knownelement.com/issues/344
2026-09-02 21:05:23 -05:00
mrcharles cdc270f8e8 fix(automations): drop invalid nested data: blocks breaking 3 plant alarms [#344]
notify.send_message rejects extra data['data'] (old mobile-app push
syntax) — UPS battery low, UPS comm lost, and high-temperature alerts
all errored on every fire. Blocks removed; notifications send plain.

https://projects.knownelement.com/issues/344
2026-09-02 20:44:10 -05:00
mrcharles aea1e49b22 feat(plant): rate-of-change temp early warning + garage PDU kWh (integration+daily) [#344][#682] 2026-09-02 17:59:59 -05:00
mrcharles deb8805c16 feat(automations): sensor watchdog; DRACs in high-temp trigger; drop dead tsys9 refs [#344][#625] 2026-09-02 17:13:57 -05:00
mrcharles 38454a45fb feat(automations): plant alerts to HA companion app (phone+iPad) [#344] 2026-09-01 13:00:52 -05:00
mrcharles 0f8e129c99 feat: import live pfv-bms HA configuration [#344] 2026-09-01 12:43:01 -05:00