From bb1711d4c8ff7a55d04067947a1c0e3a8127c18d Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 17 Aug 2026 22:50:14 +0200 Subject: [PATCH] docs: Mermaid-Diagramme zur Systemanzeige in Kapitel 07 Sequenzdiagramm des Abfragewegs (GUI-Poll, /api/sysstat, sysstat.js, /proc und statfs, 60-s-Puffer des recordings-Scans, 2-s-Ticker fuer die CPU- Differenz) und Flussdiagramm der beiden Rechenwege (Ring = Aufnahmen durch frei plus Aufnahmen; Ventilator = Drehstufe und Ampel). --- docs/07-betrieb.md | 49 ++++++++++++++++++++++++++++++++++++++++++++ docs/08-changelog.md | 8 ++++++++ 2 files changed, 57 insertions(+) diff --git a/docs/07-betrieb.md b/docs/07-betrieb.md index 153e070..4ae4acd 100644 --- a/docs/07-betrieb.md +++ b/docs/07-betrieb.md @@ -135,6 +135,55 @@ Einheit allein in die nächste Zeile und sah aus wie ein fehlender Wert. - Farbe: grün < 75 %, gelb ab 75 %, rot ab 90 %; beim Ventilator zählt der schlimmste Wert aus CPU, RAM und Temperatur (Temperatur skaliert 45 °C → 0 %, 90 °C → 100 %). +### Ablauf einer Abfrage + +```mermaid +sequenceDiagram + autonumber + participant GUI as Browser (main.js) + participant API as server.js + participant SYS as sysstat.js + participant K as Kernel (/proc, statfs) + participant FS as recordings/ + + Note over SYS: eigener Ticker alle 2 s:
/proc/stat lesen, CPU-% aus der Differenz + loop alle 5 s (im Hintergrund-Tab ausgesetzt) + GUI->>API: GET /api/sysstat + API->>SYS: status() + SYS->>K: statfs(recordings/) · /proc/meminfo · thermal_zone*/temp + K-->>SYS: frei/gesamt · MemAvailable · °C je CPU-Zone + alt Scan älter als 60 s + SYS->>FS: readdir rekursiv + stat (nur Audio-Endungen) + FS-->>SYS: Bytes + Dateizahl → Puffer + else Puffer frisch + Note over SYS: Puffer wiederverwenden,
Scan höchstens 1× pro Minute + end + SYS-->>API: {cpu, ram, disk, temp} + API-->>GUI: JSON + GUI->>GUI: paintSysmon(): Ring, Balken, Zahlen,
--spin (Stufe), Ampelfarbe + end + Note over GUI: nach jedem render() sofort
paintSysmon(sysmon.last) — die Kopfzeile
wird komplett neu geschrieben +``` + +Rechenwege der beiden Anzeigen: + +```mermaid +flowchart LR + subgraph Ring["Ring — Aufnahme-Vorrat"] + F["freier Platz
statfs.bavail"] --> B(("Vorrat
= frei + Aufnahmen")) + R["Aufnahmen
Summe aller mp3 + wav in recordings/
(inkl. Papierkorb)"] --> B + R --> P["Prozent = Aufnahmen / Vorrat"] + B --> P + end + subgraph Fan["Ventilator — Last"] + C["CPU %
/proc/stat-Differenz"] --> S["spinSeconds()
7 s … 0,35 s in Stufen"] + C --> W{"schlimmster Wert"} + M["RAM %
MemAvailable"] --> W + T["CPU-Temperatur
soc/bigcore/littlecore"] --> W + W --> A["Ampel grün / gelb / rot"] + end +``` + ## Deploy-Ablauf (von Windows aus) ```mermaid diff --git a/docs/08-changelog.md b/docs/08-changelog.md index 5322ec0..eaa27d7 100644 --- a/docs/08-changelog.md +++ b/docs/08-changelog.md @@ -3,6 +3,14 @@ Chronik der Entwicklungsschritte. **Regel: jede zukünftige Änderung bekommt hier einen Eintrag** (Datum, Was, Warum, betroffene Dateien/Backups). +## 2026-08-17 (Nachtrag 6) — Diagramme zur Systemanzeige + +Kapitel 07 nachgerüstet: ein Sequenzdiagramm für den Abfrageweg (GUI-Poll → `/api/sysstat` → +`sysstat.js` → `/proc`/`statfs`, dazu der 60-s-Puffer des `recordings/`-Scans und der 2-s-Ticker für +die CPU-Differenz) und ein Flussdiagramm für die beiden Rechenwege (Ring = Aufnahmen / (frei + +Aufnahmen); Ventilator = Drehstufe aus CPU-%, Ampel aus dem schlimmsten Wert von CPU, RAM, +CPU-Temperatur). Damit erfüllt die Änderung die Hausregel „neue Abläufe als Mermaid-Diagramm“. + ## 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