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