diff --git a/app/sysstat.js b/app/sysstat.js
index ce709d2..2ded00e 100644
--- a/app/sysstat.js
+++ b/app/sysstat.js
@@ -34,8 +34,10 @@ sampleCpu();
setInterval(sampleCpu, 2000).unref();
// ---- Temperatur ---------------------------------------------------------
-// Interessant sind die SoC-/Kern-Zonen; WLAN-Karte & Co. bleiben draußen, sonst
-// zeigt die Anzeige eine Temperatur, die nichts mit der Rechenlast zu tun hat.
+// Gemeldet wird die CPU-Temperatur: wärmste der Kern-Zonen (bigcore0/1,
+// littlecore) plus soc-thermal. GPU, NPU und die WLAN-Karte bleiben draußen —
+// die GUI beschriftet den Wert als „CPU-Temperatur“, also darf auch nur CPU
+// drinstecken.
const TEMP_ZONES = (() => {
try {
return fs.readdirSync('/sys/class/thermal')
@@ -46,7 +48,7 @@ const TEMP_ZONES = (() => {
try { type = fs.readFileSync(`${dir}/type`, 'utf8').trim(); } catch { }
return { type, file: `${dir}/temp` };
})
- .filter(z => /soc|core|center|npu|gpu/i.test(z.type));
+ .filter(z => /^(soc|bigcore\d*|littlecore)-thermal$/i.test(z.type));
} catch { return []; }
})();
diff --git a/app/web/src/main.js b/app/web/src/main.js
index bba0ade..ba51775 100644
--- a/app/web/src/main.js
+++ b/app/web/src/main.js
@@ -118,7 +118,7 @@ function sysmonMarkup() {
RAM–
- Temperatur–
+ CPU-Temperatur–
`;
@@ -171,7 +171,7 @@ function paintSysmon(s) {
load.title = `CPU ${Math.round(cpu)} % · RAM ${Math.round(ram)} %${tc == null ? '' : ` · ${tc.toFixed(0)} °C`}`;
set('[data-cpu-pct]', `${cpu.toFixed(0)} %${s.cpu && s.cpu.cores ? ` (${s.cpu.cores} Kerne)` : ''}`);
set('[data-ram-pct]', s.ram ? `${ram.toFixed(0)} % — ${sysGb(s.ram.usedBytes)} von ${sysGb(s.ram.totalBytes)}` : '–');
- set('[data-temp]', tc == null ? '–' : `${tc.toFixed(1)} °C${s.temp.zone ? ` (${s.temp.zone})` : ''}`);
+ set('[data-temp]', tc == null ? '–' : `${tc.toFixed(1)} °C`);
const cb = document.querySelector('[data-cpu-bar]'); if (cb) cb.style.width = Math.min(100, cpu) + '%';
const rb = document.querySelector('[data-ram-bar]'); if (rb) rb.style.width = Math.min(100, ram) + '%';
const tb = document.querySelector('[data-turbine]');
diff --git a/docs/07-betrieb.md b/docs/07-betrieb.md
index 788846b..153e070 100644
--- a/docs/07-betrieb.md
+++ b/docs/07-betrieb.md
@@ -89,7 +89,7 @@ Boards ohne SSH zeigen:
| Symbol | Zeigt an | Klappkarte bei Mauskontakt |
|---|---|---|
| Ring + Prozentzahl | Anteil des **Aufnahme-Vorrats**, den die Aufnahmen schon belegen | Aufnahmen (GB + Dateizahl) mit Balken, Noch frei, Gesamt für Aufnahmen |
-| Ventilator | CPU-Last — je höher, desto schneller die Drehung | CPU % (+ Kernzahl), RAM % mit GB, Temperatur mit Zone |
+| Ventilator | CPU-Last — je höher, desto schneller die Drehung | CPU % (+ Kernzahl), RAM % mit GB, CPU-Temperatur |
**Bezugsgröße der Prozentzahl** (Wunsch des Nutzers, 2026-08-17): nicht die Partition, sondern der Platz,
den ein *frisch aufgesetztes System dieser Ausbaustufe* für Aufnahmen übrig hätte:
@@ -120,8 +120,9 @@ Einheit allein in die nächste Zeile und sah aus wie ein fehlender Wert.
- CPU-% aus der Differenz zweier `/proc/stat`-Messpunkte. `sysstat.js` misst dafür **selbst** alle 2 s
(`setInterval(...).unref()`); ohne diesen eigenen Ticker wäre die erste Antwort nach jedem Start 0 %.
- RAM rechnet mit `MemAvailable`, nicht `MemFree` — sonst stünde das Board wegen Cache dauernd bei 95 %.
-- Temperatur = wärmste der SoC-/Core-/Center-/GPU-/NPU-Zonen; `iwlwifi_1` (WLAN-Karte) fliegt raus, weil
- ihr Wert nichts über die Rechenlast sagt.
+- Temperatur = wärmste der **CPU-Zonen** (`soc-thermal`, `bigcore0/1-thermal`, `littlecore-thermal`).
+ GPU-, NPU-, Center- und WLAN-Zone (`iwlwifi_1`) bleiben draußen: die Karte beschriftet den Wert als
+ „CPU-Temperatur“, also darf auch nur CPU darin stecken. Die Zone selbst wird nicht mehr angezeigt.
- Frontend: `sysmonMarkup()` / `paintSysmon()` / `tickSysmon()` in `web/src/main.js`, Poll alle 5 s, im
Hintergrund-Tab (`document.hidden`) ausgesetzt. Ein einziger Ticker für alle `render()`-Durchläufe;
nach jedem `render()` werden die zuletzt geholten Werte sofort zurückgemalt, weil `render()` die
diff --git a/docs/08-changelog.md b/docs/08-changelog.md
index 84d922b..5322ec0 100644
--- a/docs/08-changelog.md
+++ b/docs/08-changelog.md
@@ -3,6 +3,15 @@
Chronik der Entwicklungsschritte. **Regel: jede zukünftige Änderung bekommt hier einen Eintrag** (Datum,
Was, Warum, betroffene Dateien/Backups).
+## 2026-08-17 (Nachtrag 5) — „CPU-Temperatur“ statt Zonenname in Klammern
+
+Die Zeile heißt jetzt „CPU-Temperatur“ und zeigt nur noch `46,2 °C`; der Zonenname in Klammern
+(`littlecore-thermal` o. ä.) ist weg. Damit die Beschriftung auch stimmt, filtert `sysstat.js` die
+Zonen enger: nur `soc-thermal`, `bigcore0/1-thermal`, `littlecore-thermal` — GPU-, NPU- und
+Center-Zone fielen vorher unter „wärmste Zone“ und hätten den Wert stellen können, obwohl daran
+„CPU“ steht. Feld `temp.zone` bleibt in der API (fürs Debuggen), die GUI zeigt es nicht mehr.
+Backend geändert ⇒ Neustart nach Prüfung `pending=0`.
+
## 2026-08-17 (Nachtrag 4) — Erklärtext und Partitionszeile aus der Speicherkarte
Endstand der Klappkarte: Titel, „Aufnahmen“ (GB + Dateizahl) mit Balken, „Noch frei“, „Gesamt für