feat(S3): Cold Extraction (kalte Extraktion) mit Temperatur-Freigabe (5.3.0) #11

Merged
thomas merged 1 commits from feat/cold-extraction into main 2026-08-10 21:04:17 +02:00
Owner

Kalte Extraktion ohne Kessel-Bypass, freigegeben ueber eine Temperaturschwelle am Wasserkessel (Standard 30 Grad C).

  • Wasserkreis heizt im Modus nicht (SSR gesperrt, Stellgroesse und dutyW auf 0, I-Anteil eingefroren, Feed-Forward aus); Dampfkreis unberuehrt.
  • Freigabe wird vor jedem Bezug neu geprueft (der Dampfkessel waermt den Wasserkessel ueber die Zeit auf). Abgewiesener Start meldet den Grund auf OLED, Touch-Display und Web-Dashboard; ein laufender Bezug wird nie abgebrochen. 5 Grad Hysterese, Sensorfehler sperrt.
  • Fluss ueber Pumpen-Pulsung nach Vorbenetzung; Ende ueber Zielgewicht oder Timeout. Brew-by-Time/Weight und FlowGuard sind waehrend einer kalten Extraktion ausser Kraft (FlowGuard wuerde sonst um denselben Pumpen-Ausgang konkurrieren).
  • Pumpenschutz: kumulierte Einschaltzeit mit Zwangspause (Standard 60 s / 20 s) plus Stillstands-Erkennung bei aktiver Waage.
  • Statistik: kalte Bezuege mit CSV-Feld C markiert, zaehlen in den Stueckzahlen mit, bleiben aber aus der durchschnittlichen Bezugsdauer heraus. Info-Seite und Verlaufs-Download weisen sie aus.
  • Neue additive State-Felder cx* im UART-JSON (Protokoll bleibt v2), neuer statusKey coldextraction. Aeltere Display-Firmware ignoriert sie.
  • Bewusst kein Profilfeld (maschinenabhaengig, wie der Feed-Forward) - ein Bump der Profilversion wuerde alle gespeicherten Profile unlesbar machen.

Compile-Check: 72 % Flash, 23 % RAM (arduino-cli, S3-FQBN). Die P4-Display-UI folgt als eigener PR.

Kalte Extraktion ohne Kessel-Bypass, freigegeben ueber eine Temperaturschwelle am Wasserkessel (Standard 30 Grad C). - Wasserkreis heizt im Modus nicht (SSR gesperrt, Stellgroesse und dutyW auf 0, I-Anteil eingefroren, Feed-Forward aus); Dampfkreis unberuehrt. - Freigabe wird vor jedem Bezug neu geprueft (der Dampfkessel waermt den Wasserkessel ueber die Zeit auf). Abgewiesener Start meldet den Grund auf OLED, Touch-Display und Web-Dashboard; ein laufender Bezug wird nie abgebrochen. 5 Grad Hysterese, Sensorfehler sperrt. - Fluss ueber Pumpen-Pulsung nach Vorbenetzung; Ende ueber Zielgewicht oder Timeout. Brew-by-Time/Weight und FlowGuard sind waehrend einer kalten Extraktion ausser Kraft (FlowGuard wuerde sonst um denselben Pumpen-Ausgang konkurrieren). - Pumpenschutz: kumulierte Einschaltzeit mit Zwangspause (Standard 60 s / 20 s) plus Stillstands-Erkennung bei aktiver Waage. - Statistik: kalte Bezuege mit CSV-Feld `C` markiert, zaehlen in den Stueckzahlen mit, bleiben aber aus der durchschnittlichen Bezugsdauer heraus. Info-Seite und Verlaufs-Download weisen sie aus. - Neue additive State-Felder `cx*` im UART-JSON (Protokoll bleibt v2), neuer statusKey `coldextraction`. Aeltere Display-Firmware ignoriert sie. - Bewusst kein Profilfeld (maschinenabhaengig, wie der Feed-Forward) - ein Bump der Profilversion wuerde alle gespeicherten Profile unlesbar machen. Compile-Check: 72 % Flash, 23 % RAM (arduino-cli, S3-FQBN). Die P4-Display-UI folgt als eigener PR.
thomas added 1 commit 2026-08-10 21:04:06 +02:00
Kalte Extraktion ohne Kessel-Bypass: Da kaltes Wasser nur bei kaltem Wasserkessel
am Puck ankommt, wird die Funktion über eine Temperaturschwelle freigegeben
(Standard 30 °C, 10–40 °C einstellbar). Solange der Modus aktiv ist, heizt der
Wasserkreis nicht (SSR gesperrt, Stellgröße und dutyW-Telemetrie auf 0, I-Anteil
eingefroren, Feed-Forward-Boost aus); der Dampfkreis bleibt unberührt.

Die Freigabe wird vor jedem Bezug neu geprüft, weil der weiter heizende
Dampfkessel den Wasserkessel über die Zeit über die Schwelle bringen kann. Ein
abgewiesener Start meldet den Grund auf OLED, Touch-Display und Web-Dashboard;
ein laufender Bezug wird nie abgebrochen. 5 °C Hysterese, Sensorfehler sperrt.

Fluss über Pumpen-Pulsung nach einer Vorbenetzung mit voller Leistung; Ende über
Zielgewicht oder Timeout. Brew-by-Time/Weight und FlowGuard sind während einer
kalten Extraktion außer Kraft, da FlowGuard sonst um denselben Pumpen-Ausgang
konkurrieren würde. Pumpenschutz über kumulierte Einschaltzeit mit Zwangspause
plus Stillstands-Erkennung bei aktiver Waage.

Kalte Bezüge werden im CSV-Log mit einem vierten Feld "C" gekennzeichnet, zählen
in allen Stückzahlen mit, bleiben aber aus der durchschnittlichen Bezugsdauer
heraus. Neue additive State-Felder cx* im UART-JSON (Protokoll bleibt v2) und
neuer statusKey "coldextraction".

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
thomas merged commit d7a1a8dee2 into main 2026-08-10 21:04:17 +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#11