Files
Dual-PID/Changelog.txt
T
raw-designsandClaude Opus 5 334896b9cf fix: Zielgewicht bei Cold Extraction überall korrekt anzeigen (S3 5.4.1 / P4 1.2.1)
Während einer kalten Extraktion stand als Zielgewicht überall noch der
Brew-by-Weight-Wert des normalen Espresso-Bezugs. OLED, Web-Dashboard und
Touch-Display griffen alle direkt auf brewByWeightTargetGrams zu — die kalte
Extraktion ersetzt Brew-by-Weight aber und stoppt nach coldExtractionTargetGrams.

Neue Hilfsfunktion activeTargetWeightGrams() liefert das Ziel des aktuellen bzw.
nächsten Bezugs. Das UART-Feld targetWeight führt jetzt diesen Wert; bbwTarget
bleibt unverändert die Roh-Einstellung, damit die Brew-Control-Seite weiter das
Richtige anzeigt.

Zusätzlich hing die Gewichtsanzeige selbst an "Brew-by-Weight aktiv" — das ist bei
kalter Extraktion typischerweise aus, obwohl ein Ziel existiert. OLED, Waage-Kachel
und Live-Bezugsschirm zeigen Gewicht und Fortschritt jetzt auch beim kalten Bezug.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-12 00:51:48 +02:00

349 lines
23 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Version 5.4.1:
- Bug-Fix: Während einer kalten Extraktion stand als Zielgewicht überall noch der Brew-by-Weight-Wert
des normalen Espresso-Bezugs. Betroffen waren OLED, Web-Dashboard und Touch-Display, weil alle drei
direkt brewByWeightTargetGrams anzeigten - die kalte Extraktion ersetzt Brew-by-Weight aber und stoppt
nach coldExtractionTargetGrams. Neue Hilfsfunktion activeTargetWeightGrams() liefert jetzt das Ziel
des aktuellen bzw. nächsten Bezugs; das UART-Feld "targetWeight" führt diesen Wert (bbwTarget bleibt
unverändert die Roh-Einstellung).
- Auf dem OLED wird während eines kalten Bezugs jetzt überhaupt Gewicht angezeigt: Die Anzeige hing an
„Brew-by-Weight aktiv", das bei kalter Extraktion typischerweise aus ist - trotz vorhandenem Ziel.
Version 5.4.0:
- Cold Extraction hat eine eigene Seite: /Cold-Extraction, eigener Eintrag im Menü. Auf /Brew-Control
steht nur noch ein Verweis darauf - die Seite war mit dem angehängten Block unübersichtlich geworden.
- Die neue Seite ist in Abschnitte gegliedert (Grundeinstellung, Vorbenetzung, Hauptbezug, Bezugsende,
Pumpenschutz), jeder mit einer kurzen Erklärung, warum der Wert so eingestellt gehört.
- Wichtig für bestehende Installationen: Ein Speichern auf /Brew-Control fasst die Cold-Extraction-
Einstellungen nicht mehr an. Vorher wertete dieser Handler die cx-Felder mit aus; nach dem Verschieben
hätte ein Speichern dort die Freischaltung abgeschaltet, weil die Checkbox im Formular fehlt.
- Das UART-Kommando "saveBrew" akzeptiert jetzt zusätzlich die Cold-Extraction-Felder (cxEnabled,
cxMaxTemp, cxPreInf, cxPreInfDuty, cxPulseMs, cxDuty, cxTarget, cxMaxSecs, cxPumpMaxRun, cxPumpRest) -
damit lässt sich die Funktion auch am Touch-Display vollständig einstellen.
- Das State-JSON liefert die restlichen Parameter mit (cxPreInfDuty, cxDuty, cxPulseMs, cxPumpMaxRun,
cxPumpRest), damit das Display seine Eingabefelder vorbelegen kann.
Version 5.3.6:
- Cold Extraction: Die Vorbenetzung läuft nicht mehr mit voller Pumpenleistung, sondern gepulst mit
eigener, niedriger Leistung (neue Einstellung „Pumpenleistung Vorbenetzung", Standard 10 %).
Messung an der Maschine: Nach 7 s Vorbenetzung kommen heiß 1-2 Tropfen, kalt bei voller Leistung
rund 10 g dünne Brühe ohne Crema - etwa zehnfacher Durchfluss trotz dreifacher Viskosität.
Ursache ist nicht die Viskosität, sondern das Kaffeebett: Kaltes Mehl quillt nicht, ist schlecht
benetzbar, es wandert kein Feinanteil und es lösen sich kaum Feststoffe, die das Bett verdichten.
Volle Leistung auf den trockenen kalten Puck legt deshalb sofort Kanäle an, die sich - anders als
bei heißem Bezug - nie wieder schließen; der restliche Bezug läuft daran vorbei statt zu extrahieren.
- Standard der Pumpenleistung im Hauptbezug von 30 % auf 20 % gesenkt (gleicher Grund: das kalte Bett
ist erheblich durchlässiger als ein heißes). Bestehende Installationen behalten ihren Wert.
- Der Erklärtext auf /Brew-Control benennt den Zusammenhang jetzt und weist darauf hin, dass die
Vorbenetzung deutlich schwächer eingestellt sein sollte als der Hauptbezug.
Version 5.3.5:
- Cold Extraction lässt sich jetzt auch im Standby und bei noch warmem Kessel scharf schalten.
Bisher galt „Standby aktiv" und „Kessel zu warm" auch fürs Aktivieren - das war falsch herum
gedacht: Der Modus schaltet die Heizung AB, man kam aber erst an den Schalter, nachdem die
Maschine aufgeweckt war und bereits zu heizen begonnen hatte. Genau der Ablauf, den die
Funktion vermeiden soll.
- Scharfschalten und Beziehen sind jetzt zwei getrennte Bedingungen:
- Scharfschalten (neues State-Feld „cxArmable"): blockiert nur durch fehlende Freischaltung,
Wartungsmodus, Reinigungsassistent, PID-Tuning oder einen laufenden Bezug/Spülvorgang.
- Bezug (unverändert „cxAllowed"): zusätzlich kein Standby, Kessel unter der Freigabeschwelle,
gültiger Sensorwert.
Ist der Modus scharf, der Bezug aber noch gesperrt, sagen Web-UI und Display das jetzt
ausdrücklich („Modus aktiv, Bezug noch gesperrt: …").
- Wird bei warmem Kessel aktiviert, geht die Wasserheizung sofort aus und der Kessel kühlt ab;
die Rückmeldung weist darauf hin, dass Bezüge bis zum Unterschreiten der Schwelle gesperrt sind.
Version 5.3.4:
- Cold Extraction weist jetzt deutlich darauf hin, wenn keine Waage aktiv/verbunden ist. Ohne Waage
greifen weder das Zielgewicht noch die Stillstands-Erkennung - der Bezug endet dann erst nach der
maximalen Bezugsdauer, die damit faktisch zur Dosierung wird. Bisher passierte das stillschweigend.
- Die Funktion bleibt ohne Waage bewusst nutzbar (Zeitsteuerung als Rückfallebene): Ein kurzzeitig
abgemeldeter HX711 soll die kalte Extraktion nicht komplett blockieren.
- Angezeigt wird das an vier Stellen: dauerhafter Warnhinweis auf /Brew-Control (dort ist das
Zielgewicht-Feld zusätzlich als „nur mit Waage wirksam" beschriftet), Hinweiszeile unter dem
Dashboard-Schalter, Statustext „Cold Extraction bereit (ohne Waage: Zeitsteuerung)" sowie eine
einmalige Meldung beim Aktivieren.
- Neuer Code im UART-Feld cxNotice: 4 = ohne Waage aktiviert (additiv, Protokoll bleibt v2).
Version 5.3.3:
- Bug-Fix (Cold Extraction, hätte die Funktion mit Waage komplett unbrauchbar gemacht): Die
Stillstands-Erkennung lief bereits während der Vorbenetzung mit. In dieser Phase sättigt der Puck
aber erst, es kommt naturgemäß nichts in der Tasse an - bei einer Vorbenetzung länger als die
15 s Stillstands-Zeit wurde deshalb JEDER kalte Bezug mit „kein Zulauf" abgebrochen. Mit dem
bisherigen Standard von 30 s Vorbenetzung wäre das immer passiert. Die Erkennung startet jetzt
erst mit dem Hauptbezug.
- Standard der Vorbenetzung von 30 s auf 10 s gesenkt. In dieser Phase läuft die Pumpe bewusst
ungepulst auf voller Leistung; bei heißem Bezug kommt der erste Tropfen nach etwa 7 s, kalt
(rund dreifache Viskosität) entsprechend später. 30 s wären also längst voller Bezug bei vollem
Druck gewesen, und die Hälfte des Pumpen-Laufzeitbudgets wäre vor dem eigentlichen Bezug
verbraucht. Bestehende Installationen behalten ihren gespeicherten Wert - dort ggf. auf
/Brew-Control nachziehen.
- Die Beschriftung auf /Brew-Control sagt jetzt ausdrücklich, dass die Pumpe während der
Vorbenetzung durchläuft und erst im Hauptbezug gepulst wird.
Version 5.3.2:
- Cold Extraction sendet den Sperrgrund jetzt als Code („cxBlock") statt als Klartext („cxMessage"),
dazu eine transiente Meldung als Code („cxNotice") und die Vorbenetzungsdauer („cxPreInf").
Hintergrund: Die State-Zeile ans Touch-Display liegt real bereits bei rund 2,1 KB, und der P4
verwirft eingehende Zeilen ab einer Obergrenze komplett - ein bis zu 110 Byte langer Klartext
hätte die Zeile über diese Grenze gedrückt und damit die ganze Telemetrie unbrauchbar gemacht.
Die Texte rendert jetzt das Display, analog zur bestehenden Trennung statusKey/statusText.
- Der Klartext bleibt unverändert auf dem OLED und in den Web-/UART-Antworten (ack-message).
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 1040 °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 2005000 ms, Pumpenleistung 5100 %), 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 (0100 % 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"