feat(S3): Aktives Profil führen und anzeigen — Grundlage für Profil-Schnellwahl am Display #7

Merged
thomas merged 1 commits from feat/aktives-profil-anzeige-s3 into main 2026-07-13 20:48:40 +02:00
Owner

Bisher wusste die Steuerung selbst nicht, welches Profil aktiv ist — loadProfile wendete nur die Werte an. Jetzt:

  • Aktives Profil persistent: zuletzt geladenes bzw. gespeichertes Profil landet im EEPROM (Adressen 912–943, Name + Dirty-Flag), überlebt Neustarts. Boot-Validierung verwirft unprogrammierten Inhalt (0xFF/Steuerzeichen), UTF-8-Umlaute im Namen bleiben erlaubt.
  • „Geändert"-Erkennung: profil-relevante Änderungen (Setpoints, Offsets, PID inkl. AutoTune-Ergebnis und -Parameter, Boost, MaxTemp, Window, Eco, Dampfverzögerung, Fast-Heat-Up, Brew-Control BBT/BBW/PI/SBT, Piezo) setzen ein Dirty-Flag → Anzeige „Espresso ✱ (geändert)". Anzeige-/Systemeinstellungen (Anzeigemodus, Aufheizzeit, Licht, FlowGuard, Sensoren) lösen es bewusst nicht aus; dafür wurde in applyBrewControlUpdate das FlowGuard-Flag vom Profil-Flag getrennt.
  • Zurücksetzen: Löschen des aktiven Profils und Werksreset leeren die Anzeige.
  • Sichtbarkeit: Web-Dashboard (Zeile über der Profil-Auswahl, live via WebSocket/Poll) + Profil-Seite (Textzeile und grüner Punkt am aktiven Listeneintrag).
  • UART: neue additive State-Felder profile + profDirty (Protokoll bleibt v2-kompatibel, alte P4-Firmware ignoriert sie) — Grundlage für die Profil-Schnellwahl am Display (separater P4-PR folgt).

Version 5.1.1, Changelog ergänzt.

🤖 Generated with Claude Code

Bisher wusste die Steuerung selbst nicht, welches Profil aktiv ist — `loadProfile` wendete nur die Werte an. Jetzt: - **Aktives Profil persistent**: zuletzt geladenes bzw. gespeichertes Profil landet im EEPROM (Adressen 912–943, Name + Dirty-Flag), überlebt Neustarts. Boot-Validierung verwirft unprogrammierten Inhalt (0xFF/Steuerzeichen), UTF-8-Umlaute im Namen bleiben erlaubt. - **„Geändert"-Erkennung**: profil-relevante Änderungen (Setpoints, Offsets, PID inkl. AutoTune-Ergebnis und -Parameter, Boost, MaxTemp, Window, Eco, Dampfverzögerung, Fast-Heat-Up, Brew-Control BBT/BBW/PI/SBT, Piezo) setzen ein Dirty-Flag → Anzeige „Espresso ✱ (geändert)". Anzeige-/Systemeinstellungen (Anzeigemodus, Aufheizzeit, Licht, FlowGuard, Sensoren) lösen es bewusst nicht aus; dafür wurde in `applyBrewControlUpdate` das FlowGuard-Flag vom Profil-Flag getrennt. - **Zurücksetzen**: Löschen des aktiven Profils und Werksreset leeren die Anzeige. - **Sichtbarkeit**: Web-Dashboard (Zeile über der Profil-Auswahl, live via WebSocket/Poll) + Profil-Seite (Textzeile und grüner Punkt am aktiven Listeneintrag). - **UART**: neue additive State-Felder `profile` + `profDirty` (Protokoll bleibt v2-kompatibel, alte P4-Firmware ignoriert sie) — Grundlage für die Profil-Schnellwahl am Display (separater P4-PR folgt). Version 5.1.1, Changelog ergänzt. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
thomas added 1 commit 2026-07-13 20:48:39 +02:00
Die Steuerung merkt sich das zuletzt geladene bzw. gespeicherte Profil
dauerhaft im EEPROM (Adressen 912-943). Profil-relevante Änderungen
(Setpoints, PID inkl. AutoTune, Boost, Eco, Brew-Control, Piezo,
Fast-Heat-Up) markieren das Profil als „geändert"; reine Anzeige-/
Systemeinstellungen bewusst nicht. Löschen des aktiven Profils und
Werksreset setzen die Anzeige zurück.

Sichtbar in der Web-UI (Dashboard + Profil-Seite) und als neue additive
State-Felder "profile"/"profDirty" im UART-JSON für das Touch-Display.
Version 5.1.1.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
thomas merged commit 00a4c80b13 into main 2026-07-13 20:48:40 +02:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: thomas/Dual-PID#7