fix(gui): "CPU-Temperatur" statt Zonenname in Klammern
Die Zeile zeigt nur noch den Wert in Grad. Damit die neue Beschriftung stimmt, filtert sysstat.js die Zonen enger: nur soc-thermal, bigcore0/1 und littlecore. GPU-, NPU- und Center-Zone konnten vorher den Hoechstwert stellen, obwohl "CPU" daran steht. Doku: Kapitel 07 + Changelog.
This commit is contained in:
+5
-3
@@ -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 []; }
|
||||
})();
|
||||
|
||||
|
||||
+2
-2
@@ -118,7 +118,7 @@ function sysmonMarkup() {
|
||||
<div class="sys-bar"><i data-cpu-bar style="width:0%"></i></div>
|
||||
<div class="sys-row"><span>RAM</span><b data-ram-pct>–</b></div>
|
||||
<div class="sys-bar"><i data-ram-bar style="width:0%"></i></div>
|
||||
<div class="sys-row"><span>Temperatur</span><b data-temp>–</b></div>
|
||||
<div class="sys-row"><span>CPU-Temperatur</span><b data-temp>–</b></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>`;
|
||||
@@ -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]');
|
||||
|
||||
+4
-3
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user