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).
This commit is contained in:
Claude
2026-08-17 22:50:14 +02:00
parent c562586216
commit bb1711d4c8
2 changed files with 57 additions and 0 deletions
+49
View File
@@ -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:<br/>/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,<br/>Scan höchstens 1× pro Minute
end
SYS-->>API: {cpu, ram, disk, temp}
API-->>GUI: JSON
GUI->>GUI: paintSysmon(): Ring, Balken, Zahlen,<br/>--spin (Stufe), Ampelfarbe
end
Note over GUI: nach jedem render() sofort<br/>paintSysmon(sysmon.last) — die Kopfzeile<br/>wird komplett neu geschrieben
```
Rechenwege der beiden Anzeigen:
```mermaid
flowchart LR
subgraph Ring["Ring — Aufnahme-Vorrat"]
F["freier Platz<br/>statfs.bavail"] --> B(("Vorrat<br/>= frei + Aufnahmen"))
R["Aufnahmen<br/>Summe aller mp3 + wav in recordings/<br/>(inkl. Papierkorb)"] --> B
R --> P["Prozent = Aufnahmen / Vorrat"]
B --> P
end
subgraph Fan["Ventilator — Last"]
C["CPU %<br/>/proc/stat-Differenz"] --> S["spinSeconds()<br/>7 s … 0,35 s in Stufen"]
C --> W{"schlimmster Wert"}
M["RAM %<br/>MemAvailable"] --> W
T["CPU-Temperatur<br/>soc/bigcore/littlecore"] --> W
W --> A["Ampel grün / gelb / rot"]
end
```
## Deploy-Ablauf (von Windows aus)
```mermaid
+8
View File
@@ -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