Der Modus wird im EEPROM (Adresse 977) gespeichert und beim Start wieder übernommen, sofern die Funktion auf /Brew-Control freigeschaltet ist. Standby beendet ihn nicht mehr, sondern verwirft nur die Laufzeitdaten. Grund: Wer nur kalte Bezüge machen will, musste den Modus nach jedem Standby neu einschalten. Bis dahin heizte die Maschine bereits auf und war für die nächste kalte Extraktion zu warm — man musste auf das Abkühlen warten, also genau die Situation, die der Modus vermeiden soll. Der Modus endet nur noch durch explizites Ausschalten, durch Entzug der Freischaltung oder durch einen Werksreset. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
258 lines
16 KiB
Plaintext
258 lines
16 KiB
Plaintext
Version 5.3.1:
|
||
- Cold Extraction ist jetzt persistent: Der Modus wird im EEPROM gespeichert und überlebt sowohl den
|
||
Standby als auch einen Neustart. Zuvor wurde er beim Standby beendet und war nach dem Aufwachen aus -
|
||
die Maschine heizte dann erst auf, obwohl der nächste kalte Bezug einen kalten Kessel braucht, und man
|
||
musste auf das Abkühlen warten. Wer nur kalte Bezüge machen will, schaltet den Modus damit einmal ein
|
||
und wieder aus, wenn er fertig ist.
|
||
- Der Modus fällt nur weg, wenn auf /Brew-Control die Freischaltung entzogen wird oder ein Werksreset
|
||
läuft. Solange er aktiv ist, heizt der Wasserkreis nicht - Dashboard, OLED („(COLD)" in der Wasserzeile)
|
||
und Touch-Display zeigen das durchgehend an.
|
||
|
||
Version 5.3.0:
|
||
- Neu: Cold Extraction (kalte Extraktion). Die Maschine hat keinen Bypass um den Wasserkessel, kaltes Wasser
|
||
kommt also nur bei kaltem Kessel am Puck an. Die Funktion wird deshalb über eine Temperaturschwelle
|
||
freigegeben (Standard 30 °C, einstellbar 10–40 °C) und ist praktisch aus dem kalten Zustand heraus nutzbar.
|
||
- Solange der Modus aktiv ist, heizt der Wasserkreis nicht (SSR gesperrt, Stellgröße und damit auch die
|
||
dutyW-Telemetrie auf 0, I-Anteil der Wasser-PID eingefroren, Feed-Forward-Boost deaktiviert). Der
|
||
Dampfkreis bleibt unberührt und darf weiter heizen.
|
||
- Die Freigabe wird vor jedem Bezug neu geprüft, nicht nur beim Aktivieren: Da der Dampfkessel weiter heizt,
|
||
kann der Wasserkessel über die Zeit über die Schwelle steigen. In diesem Fall wird der nächste Bezug
|
||
abgewiesen (Meldung auf OLED, Touch-Display und im Web-Dashboard) - ein laufender Bezug wird nie abgebrochen.
|
||
Hysterese von 5 °C, damit die Anzeige an der Schwelle nicht flattert; Sensorfehler sperrt die Funktion.
|
||
- Der Fluss wird über Pumpen-Pulsung reduziert (Pulsperiode 200–5000 ms, Pumpenleistung 5–100 %), davor läuft
|
||
eine einstellbare Vorbenetzung mit voller Pumpenleistung. Bezugsende über Zielgewicht oder Sicherheits-Timeout;
|
||
Brew-by-Time/Brew-by-Weight und FlowGuard sind während einer kalten Extraktion bewusst außer Kraft (FlowGuard
|
||
und Cold Extraction würden sonst um denselben Pumpen-Ausgang konkurrieren).
|
||
- Pumpenschutz: Die Steuerung zählt die kumulierte Pumpen-Einschaltzeit und legt nach der eingestellten
|
||
Laufzeit eine Zwangspause ein (Standard 60 s Laufzeit / 20 s Pause). Zusätzlich Stillstands-Erkennung -
|
||
läuft die Pumpe bei aktiver Waage 15 s ohne Zulauf, wird der Bezug beendet (dichter Puck oder ausgelöster
|
||
Pumpen-Thermoschutz).
|
||
- Bedienung: Parameter auf der Seite /Brew-Control, Ein-/Ausschalten über das Web-Dashboard oder das
|
||
UART-Touch-Display (neue Aktionen "startColdExtraction"/"stopColdExtraction"/"toggleColdExtraction").
|
||
Cold Extraction ist bewusst kein Profilfeld (maschinen- und situationsabhängig, wie der Feed-Forward);
|
||
der Modus selbst wird nicht persistiert und ist nach einem Neustart immer aus. Standby beendet ihn.
|
||
- Statistik: Kalte Bezüge werden im Log mit einem vierten CSV-Feld "C" gekennzeichnet, zählen in allen
|
||
Stückzahlen mit, gehen aber NICHT in die durchschnittliche Bezugsdauer ein (Minuten statt Sekunden würden
|
||
den Wert verzerren). Die Info-Seite weist die Anzahl separat aus, der Verlaufs-Download hat eine neue
|
||
Spalte "Art". Ältere Logzeilen bleiben unverändert lesbar.
|
||
- Neue additive State-Felder im UART-JSON (Protokoll bleibt v2): cxEnabled, cxActive, cxShot, cxAllowed,
|
||
cxResting, cxMaxTemp, cxTarget, cxMaxSecs, cxMessage sowie "cx" pro Eintrag in usageStats; neuer
|
||
statusKey "coldextraction". Ältere Display-Firmware ignoriert die Felder.
|
||
|
||
Version 5.2.0:
|
||
- Feed-Forward bei Bezug (Störgrößenaufschaltung) für den Wasserkessel: Während eines Bezugs wird der
|
||
Heizung sofort ein einstellbarer Leistungs-Boost (0–100 % der Fenstergröße, 0 % = aus) aufgeschaltet,
|
||
statt auf den vom Sensor gemeldeten Temperaturabfall zu warten. Die PID regelt nur noch den Restfehler;
|
||
der Temperatur-Dip während des Shots wird deutlich kleiner. Einstellung auf der /PID-Seite
|
||
(„Feed-Forward bei Bezug"), gespeichert im EEPROM (bewusst kein Profilfeld, da maschinenabhängig).
|
||
- Optional: I-Anteil der Wasser-PID während des Bezugs einfrieren. Verhindert das Aufladen des
|
||
Integral-Anteils während des Shots und damit das Überschwingen nach Bezugsende.
|
||
- Der Boost wirkt nur bei echten Bezügen (Hardware-Schalter oder Software-Start), nicht bei
|
||
Spülen/Wartungsmodus/AutoTune. Sicherheitslogik unverändert: Sensorfehler, Übertemperatur-Abschaltung
|
||
und „Heizen oberhalb Setpoint verhindern" haben weiterhin Vorrang; Deckelung auf die Fenstergröße.
|
||
- Die Heizleistungs-Telemetrie (dutyW, u. a. für das Verlaufs-Chart des Touch-Displays) zeigt den
|
||
Boost mit an - damit ist die Wirkung direkt im Chart kalibrierbar.
|
||
|
||
Version 5.1.2:
|
||
- Profil-Seite (Web-UI): Die neue „Aktives Profil"-Anzeige stand linksbündig außerhalb des
|
||
Karten-Layouts. Sie nutzt jetzt den status-message-Stil der Seite (zentriert, max. 600 px,
|
||
dezenter Rahmen) und fügt sich damit in das bestehende Layout ein; Profilname zusätzlich fett.
|
||
|
||
Version 5.1.1:
|
||
- Aktives Profil wird jetzt geführt und angezeigt: Die Steuerung merkt sich das zuletzt geladene bzw.
|
||
gespeicherte Profil dauerhaft im EEPROM (überlebt Neustarts). Web-UI: Anzeige auf dem Dashboard über der
|
||
Profil-Auswahl sowie auf der Profil-Seite (aktives Profil zusätzlich mit grünem Punkt in der Liste).
|
||
- „Geändert"-Erkennung: Werden nach dem Laden profil-relevante Einstellungen geändert (Solltemperaturen,
|
||
PID-Werte inkl. AutoTune-Ergebnis und AutoTune-Parameter, Boost, Eco, Dampfverzögerung, Fast-Heat-Up,
|
||
Brew-Control, Piezo), erscheint hinter dem Profilnamen „✱ (geändert)". Reine Anzeige-/Systemeinstellungen
|
||
(Anzeigemodus, Aufheizzeit, Licht, FlowGuard, Waage/Sensoren) lösen das bewusst nicht aus.
|
||
- Profil löschen setzt die Anzeige zurück, wenn das gelöschte Profil das aktive war; Werksreset ebenso.
|
||
- Neue additive State-Felder "profile" und "profDirty" im UART-JSON für das Touch-Display (Protokoll bleibt
|
||
kompatibel, ältere Display-Firmware ignoriert die Felder) - Grundlage für die Profil-Schnellwahl am Display.
|
||
|
||
Version 5.1.0:
|
||
- Display-Auswahl in die Web-UI (/Sensoren) verlegt: Ohne Display / OLED (SH1106, I2C) / UART-Touch-Display.
|
||
Der Compile-Schalter ENABLE_DISPLAY entfällt, die Einstellung wird im EEPROM gespeichert und ohne Neustart
|
||
übernommen. Default ist "Ohne Display", damit die Steuerung ohne angeschlossene Anzeige immer sicher startet.
|
||
- Boot-Schutz: Vor der OLED-Initialisierung wird per I2C-Probe (0x3C) geprüft, ob das Display wirklich
|
||
angeschlossen ist. Ohne Antwort bleibt die Anzeige deaktiviert und die Steuerung bootet normal weiter -
|
||
eine falsch gesetzte Display-Einstellung kann die Maschine damit nicht mehr blockieren.
|
||
- UART-Touch-Anbindung (Serial1) wird nur noch initialisiert und bedient, wenn "UART-Touch-Display" gewählt ist.
|
||
|
||
Version 5.0.12:
|
||
- Neues additives Feld "piState" im State-JSON für das UART-Touch-Display (0=inaktiv, 1=Pre-Infusion,
|
||
2=Pause, 3=Hauptbezug): Die Pre-Infusion-Phasenleiste auf dem Display folgt damit quelltreu der echten
|
||
Statemachine der Steuerung statt einer zeitbasierten Ableitung (Protokoll bleibt v2, ältere Display-Firmware ignoriert das Feld)
|
||
- Wartungsmodus und Eco-Modus werden beim Wechsel in den Standby nun beendet (Eco wurde bereits beendet, der Wartungsmodus blieb bislang aktiv)
|
||
- Bug-Fix: Im Wartungsmodus heizte der Dampfkreis trotz deaktivierter Heizung dauerhaft, wenn die Option „Permanent heizen bei Dampf-Bezug" aktiv war und Dampf bezogen wurde
|
||
|
||
Version 5.0.11:
|
||
- Bug-Fix: Dauerhafter Neustart (Panic/Exception) der Steuerung, sobald das UART-Touch-Display (P4) angeschlossen wurde.
|
||
Ursache: Stack-Überlauf im loopTask – der 3000-Byte-Puffer für das State-JSON (touchUartSendState) sowie der Puffer
|
||
für Profildetails (getProfileDetails) lagen auf dem Task-Stack (~8 KB) und liefen zusammen mit der Aufrufkette des
|
||
hello-Handshakes über. Beide Puffer sind jetzt static (analog zu touchUartSendUsageStats). Der Pfad wird nur bei
|
||
verbundenem Display ausgeführt, daher lief die Maschine ohne Display stabil.
|
||
|
||
Version 5.0.10:
|
||
- Sicherheits-Fix: Während eines Display-Firmware-Updates (P4) werden die Heizungen nun garantiert abgeschaltet.
|
||
Zuvor konnte die zeitproportionale SSR-Steuerung während der Übertragung ausgebremst werden, sodass ein gerade
|
||
eingeschaltetes Heizungs-SSR eingeschaltet blieb (Überhitzungsgefahr, z. B. zu hohe Wassertemperatur nach einem
|
||
P4-Update). Zusätzlich wurde eine Ursache für einen verzögerten Neustart (Panic) nach P4-Updates entschärft
|
||
(delay(1) statt yield(), damit die Regel-/Sicherheitsschleife während der Übertragung weiterläuft).
|
||
|
||
Version 5.0.9:
|
||
- Statistik-Seite für das UART-Display hinzugefügt
|
||
|
||
Version 5.0.8:
|
||
- Brew-by-Weight-Gewichtseingabelimit auf 150g erhöht, um auch Heißwasserbzug für Americano oder ähnliches via BBW zu ermöglichen
|
||
|
||
Version 5.0.7:
|
||
- ECO-Option „Nach Neustart/Power-On in Standby gehen" hinzugefügt
|
||
|
||
Version 5.0.6:
|
||
- UART-Touch-Display implementiert
|
||
- Rettungsmodus (für Fehlerhafte Firmware-Updates) hinzugefügt
|
||
|
||
Version 4.8.1:
|
||
- Glättungs-Funktion im Waage-Modus kann nun über Sensoren im Webinterface aktiviert/deaktiviert werden
|
||
|
||
Version 4.8.0:
|
||
- Waage-Modus nochmals verbessert
|
||
- Kalibrierungsassistent für die Wage zur Bestimmung des Kalibrierungsfaktors implementiert
|
||
|
||
Version 4.7.0:
|
||
- Unterstützung für Fully Kiosk-Endgeräte als Display hinzugefügt
|
||
- Fragmente der alten Ultraschallsensor-Komponente entfernt
|
||
- Nun nutzt auch die Desktop-Ansicht der Web-UI ein Hamburger-/Sandwich-Menü
|
||
|
||
Version 4.6.0:
|
||
- Waage weiter verbessert:
|
||
- Median-von-3 gegen einzelne Ausreißer
|
||
- Spike-Erkennung:
|
||
- außerhalb eines Bezugs: Sprünge > 3.0 g werden zunächst verworfen
|
||
- während Bezug: Sprünge > 10.0 g werden zunächst verworfen
|
||
- kommt der große Sprung wiederholt, wird er akzeptiert, damit echte Änderungen nicht hängen bleiben
|
||
- Reset der Filter bei Tara, Disconnect, Reconnect und Initialisierung
|
||
- currentWeightReading wird jetzt nur noch zentral über die Filterfunktionen gesetzt
|
||
|
||
Brew-by-Weight bleibt schnell, bekommt aber Schutz gegen einzelne Störimpulse. Performance-Kosten sind minimal: drei
|
||
Float-Samples, ein Median-Vergleich und ein paar fabs()-Checks pro Waagenmessung.
|
||
|
||
Version 4.5.2:
|
||
- Waage-Anpassung: Im Waage-Modus wird jetzt ein geglätteter und etwas trägerer Wert angezeigt, während beim Brühen der schnelle Roh-Wert der Waage verwendet wird (dieser "schwankt" daher auch manchmal leicht)
|
||
|
||
Version 4.5.1:
|
||
- Bug-Fix: Beim X-Switch war noch ein Teil der alten Schalter-Logik enthalten,
|
||
wodurch der X-Switch-Status nicht über die Web-UI geändert werden konnte
|
||
- Zeit für Longpress ist nun über die Web-UI einstellbar
|
||
|
||
Version 4.5.0:
|
||
- Neues Feature in Brew Control eingeführt: FlowGuard
|
||
Ermöglicht es, auch bei zu grober Mahlung durch Pulsen der Pumpe eine voreingestellte Ziel-Brühzeit zu erreichen
|
||
- Style-Anpassungen für mobile Ansicht
|
||
|
||
Version 4.4.2:
|
||
- Neustart-Grund wird nun in der Web-UI unter Info erweitert angezeigt, um bei Fehlern eine bessere Diagnose durchführen zu können.
|
||
|
||
Version 4.4.1:
|
||
- Einstellbares Temperatur-Offset für den Zusatz-Temperatursensor (Gehäuse/Tassenablage)
|
||
|
||
Version 4.4.0:
|
||
- Neue Funktion "Offset-Kompensation" in den PID-Einstellungen:
|
||
Bei negativem Temperatur-Offset wird in Display und Web-UI bis zur Referenzschwelle die Temperatur ohne Offset angezeigt;
|
||
funktioniert auch nach dem Aufwachen aus dem Standby
|
||
|
||
Version 4.3.5:
|
||
- Dampf- und Wasserflush ist nun auch zeitgleich möglich, sowie Dampf-Flush auch während eines Espresso-Bezugs
|
||
|
||
Version 4.3.4:
|
||
- Wechsel in Eco-Modus passiert nun nicht mehr während eines Bezugs, der knapp an der Zeit für das Eco-Umschalten liegt
|
||
- Button-Longpress von 2s auf 1s geändert
|
||
|
||
Version 4.3.3:
|
||
- Bug beim Tarieren des ersten Bezugs nach Maschinenstart / Aufwachen aus Standby behoben.
|
||
|
||
Version 4.3.2:
|
||
- Reinigungsassistent um weiteren Parameter ergänzt - Nun lässt sich auch die Pausenzeit zwischen den Zyklen einstellen.
|
||
Zudem wurde die Erfolgsmeldung/Abschlussmeldung in der Web-UI wieder entfernt.
|
||
|
||
Version 4.3.1:
|
||
- Neue Funktion für "Dampf-Nicht heizen"-Setting bei Neustart und Aufwachen aus dem Standby in den Eco-Einstellungen
|
||
|
||
Version 4.3.0:
|
||
- Home-Assistant-Integration verbessert
|
||
- Anzeige des Zusatz-Temperatursensors (Gehäuse/Tassenablage) nun im Display möglich
|
||
- Dampf-Timer in Brew-Control-Settings einstellbar für automatisches Abschalten des Dampfs nach X Sekunden
|
||
|
||
Version 4.2.8:
|
||
- HX711 verbessert: bei aktivierter Waage + Brew-by-Weight wird vor Bezugsstart zuerst 1 Sekunde tariert; im Display erscheint dabei "Waage wird tariert..."
|
||
- HX711 verbessert: beim Eintritt in den Waagenmodus wird nun ebenfalls automatisch tariert
|
||
|
||
Version 4.2.7:
|
||
- X-Switch erweitert: Short-Press und Long-Press können jetzt getrennt mit Funktionen belegt werden
|
||
|
||
Version 4.2.6:
|
||
- Hardware-Eingänge auf Tasterlogik umgestellt: Standby, Eco, X-Funktion, Bezug und Dampf arbeiten jetzt per Tastendruck statt per dauerhaftem Schalterzustand
|
||
- Bezug- und Dampftaster unterstützen jetzt Long-Press: 2 Sekunden halten startet Wasser- bzw. Dampf-Flush
|
||
- Alte Abhängigkeiten vom "Schalter zurückstellen" nach Auto-Stopp entfernt; Bezug/Dampf/Flush laufen jetzt konsistent über die Software-Logik
|
||
- OLED-Anzeige ergänzt: bei aktivem "Dampf nicht heizen" wird statt der Dampf-Temperatur "Nicht heizen aktiv" angezeigt
|
||
|
||
Version 4.2.5:
|
||
- Home-Assistant-API ergänzt: eigene HTTP-Endpunkte für Status, Standby an/aus und "Jetzt aufheizen"
|
||
- Standard-Kalibrierungsfaktor für HX711 geändert
|
||
|
||
Version 4.2.4:
|
||
- Heizung wird nach langem Standby beim Aufwecken wieder korrekt gestartet; PID-Zeitfenster werden beim Verlassen von Standby sauber resynchronisiert
|
||
|
||
Version 4.2.3:
|
||
- Standby auf reinen Software-Standby umgestellt; Hardware-Standby-Schalter arbeitet jetzt als Taster/Toggle
|
||
- Display-Hinweis ergänzt, falls der Standby-Taster versehentlich gedrückt gehalten wird
|
||
- Neue Timer-Seite in der Web-UI: beliebig viele Timer mit Wochentagen, aktiv/inaktiv sowie Standby an/aus
|
||
- Timer werden auf FATFS gespeichert und nur bei synchronisierter NTP-Zeit ausgeführt
|
||
|
||
Version 4.2.2:
|
||
- Reinigungsassistent: Heizt Wasser nun vor Start der Zyklen auf 93 °C auf, Dampfheizung bleibt dabei aus
|
||
- Reinigungsassistent: Status/Phase wird nun auch im Display angezeigt
|
||
- Standby/Web-Override: Dampf-Startverzögerung startet nach Verlassen von Standby wieder korrekt neu
|
||
- Standby: temporäre Eco- und Dampfverzögerungs-Overrides werden beim Standby-Wechsel zurückgesetzt
|
||
|
||
Version 4.2.1:
|
||
- Dampf-Timer wird nun auch (analog zum Shot-Timer) 3 Sekunden lang nach Timer-Ende im Display angezeigt
|
||
- Temperatur-Profile können nun mit Leerzeichen und Umlauten gespeichert/angezeigt werden
|
||
|
||
Version 4.2.0:
|
||
- Reinigungsassistent im Bereich Service hinzugefügt
|
||
|
||
Version 4.1.5:
|
||
- Standby-Funktion kann über Web-UI temporär deaktiviert werden
|
||
|
||
Version 4.1.4:
|
||
- Umstellung von LittleFS zu FATFS aufgrund des 16MB-MC-Flash
|
||
|
||
Version 4.1.3:
|
||
- Dampf-Heizverzögerung zählt nun erst, wenn das Gerät im "Normalbetrieb" läuft und nicht Standby-Zeit
|
||
- Standby-Zeit wird nicht mehr als Betriebszeit getrackt (verringert auch die Schreibzyklen im Speicher)
|
||
- Flush-Funktion nun auch für den Dampf-Kreislauf
|
||
|
||
Version 4.1.2:
|
||
- Dashboard: Abstände verringert / kompakter gestaltet
|
||
|
||
Version 4.1.1:
|
||
- Einstellung für Licht-Aus/An im Standby
|
||
- Versehentlich entfernte Funktion wiederhergestellt: Eco-Info im Display anzeigen
|
||
- Eco-Option "Aufheizverzögerung per Bezugsschalter überspringen" wird jetzt korrekt persistent gespeichert
|
||
- Display: Timeranzeige bei aktivem Dampf-Bezug und aktivem Flush ergänzt (Priorität: Shot > Dampf > Flush)
|
||
- Service-Seite: Flush-Zeit ist jetzt einstellbar und persistent speicherbar (Standard: 3 Sekunden)
|
||
- Eco-Timer wird nun auch durch Dampfbezug und Flush zurückgesetzt (nicht nur durch Shot)
|
||
- UART-Touch-UI (ESP32-S3 7") angebunden: neues UART-Frame-Protokoll (HELLO/STATE/CHART) mit Live-Daten für Dashboard und Chart (M1)
|
||
- UART-Touch-UI M2: ACTION_REQ/ACTION_ACK umgesetzt (Touch-Aktionen steuern jetzt direkt die Dashboard-Logik der Steuerung)
|
||
|
||
Version 4.0:
|
||
- Weitere Komfort-Funktionen (Licht, Dampf-Steuerung, Standby, Flush via Web-UI,...)
|
||
- ESP8266-Support entfällt
|
||
|
||
Version 3.7.1 - 2026-01-01
|
||
- Dashboard: Status zeigt verbleibende Minuten bis Eco-Start (z.B. "Eco-Modus in 43min")
|
||
- Web-UI /ECO: neuer Toggle "Eco-Info auf dem Display anzeigen"
|
||
- Display (Idle): optionales Layout mit Eco-Countdown bzw. "Eco-Modus aktiv"
|