thermal: watch NVMe/RP1 temps, fan stall, and undervoltage on the Pi 5

van-thermal grows sensor kinds beyond plain temperatures: "fan" alerts when
pwmfan is commanded on (pwm > 0) but reads 0 RPM (warn on first sample, crit
if it persists — 0 RPM with pwm 0 is just the firmware idling a cool SoC),
and "undervolt" goes crit on the live rpi_volt alarm plus a sticky warn off
the firmware's latched since-boot bit, so dips shorter than the 10s sample
interval still surface once. All kinds share the existing hysteresis /
journal / Pushover machinery (fan 🌀, undervolt ).

Config adds nvme Composite (65/70), rp1_adc (80/85 — the RP1 die drives all
USB/eth I/O), fan, and undervolt to the existing cpu sensor. The CSV logger
now derives per-kind columns and self-rotates when the header changes; the
Cockpit Temps card renders RPM + pwm duty and undervoltage state alongside
the temperatures.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Andreas Wrede
2026-07-12 06:41:17 -04:00
co-authored by Claude Fable 5
parent 6fe683000d
commit 2da97d26f4
4 changed files with 194 additions and 36 deletions
+25
View File
@@ -12,6 +12,31 @@
"warn": 80,
"crit": 85,
"clear_margin": 5
},
{
"name": "nvme",
"hwmon": "nvme",
"label": "Composite",
"warn": 65,
"crit": 70,
"clear_margin": 5
},
{
"name": "rp1",
"hwmon": "rp1_adc",
"warn": 80,
"crit": 85,
"clear_margin": 5
},
{
"name": "fan",
"kind": "fan",
"hwmon": "pwmfan"
},
{
"name": "undervolt",
"kind": "undervolt",
"hwmon": "rpi_volt"
}
]
}