feat: Cold Extraction im Standby scharf schaltbar (S3 5.3.5 / P4 1.1.3)
"Standby aktiv" und "Kessel zu warm" galten bisher 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 schon zu heizen begonnen hatte — genau der Ablauf, den die Funktion vermeiden soll. Scharfschalten und Beziehen sind jetzt getrennt: - 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 gesperrt, sagen Web-UI und Display das jetzt ausdrücklich. Bei Aktivierung mit warmem Kessel geht die Heizung sofort aus, die Rückmeldung nennt die Sperre bis zum Unterschreiten der Schwelle. P4: Der Aufweck-Dialog bekommt "Aufwecken mit Cold Extraction" — sendet startColdExtraction vor deactivateStandby, damit der Wasserkreis gar nicht erst anheizt. Der Schalter hängt jetzt an cxArmable; bei älterer S3-Firmware fällt das Feld auf cxEnabled zurück und bleibt bedienbar. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
6dd3f1eaf2
commit
9b91543435
@@ -323,8 +323,17 @@ Alle gültigen `action`-Strings aus `executeDashboardAction()` (Stand v4.8.1, Ze
|
||||
| `stopColdExtraction` | — | Modus beenden |
|
||||
| `toggleColdExtraction` | — | Modus umschalten |
|
||||
|
||||
Alle drei Aktionen werden abgewiesen (`ok:false` + `message`), solange die Bedingungen nicht
|
||||
erfüllt sind — Hauptfall ist ein zu warmer Wasserkessel (`cxAllowed:false`). Der Modus ist
|
||||
Für das Bedienelement zählt `cxArmable`, **nicht** `cxAllowed`: Der Modus schaltet die
|
||||
Wasserheizung ab und muss deshalb auch im Standby und bei noch warmem Kessel scharf zu
|
||||
stellen sein — sonst heizt die Maschine nach dem Aufwecken an, bevor man an den Schalter
|
||||
kommt. `cxAllowed` gilt nur für den einzelnen Bezug; ist der Modus scharf und `cxAllowed`
|
||||
false, sollte die UI „Modus aktiv, Bezug noch gesperrt" zeigen.
|
||||
|
||||
Ein Aufwecken direkt in die kalte Extraktion sendet `startColdExtraction` **vor**
|
||||
`deactivateStandby` — in dieser Reihenfolge, damit der Wasserkreis gar nicht erst anheizt.
|
||||
|
||||
Die Aktionen werden abgewiesen (`ok:false` + `message`), solange die Bedingungen nicht
|
||||
erfüllt sind. Der Modus ist
|
||||
**persistent** (EEPROM) und überlebt Standby und Neustart; er endet nur durch explizites
|
||||
Ausschalten, durch Entzug der Freischaltung auf `/Brew-Control` oder durch einen Werksreset.
|
||||
Das P4-UI sollte `cxActive` deshalb dauerhaft sichtbar spiegeln — sonst wundert sich der
|
||||
@@ -383,7 +392,8 @@ Aus `getTouchUartStatus()`. Für sprach-unabhängige UI-Logik/Icons auf dem P4 v
|
||||
| `cxEnabled` | bool | Funktion in der Web-UI freigeschaltet (sonst Bedienelement ausblenden) |
|
||||
| `cxActive` | bool | Modus scharf: Wasserkreis heizt nicht |
|
||||
| `cxShot` | bool | Der laufende Bezug ist eine kalte Extraktion |
|
||||
| `cxAllowed` | bool | Freigabe **jetzt** (Wasserkessel kalt genug, kein Standby/Wartung/Tuning) |
|
||||
| `cxAllowed` | bool | **Bezug** jetzt möglich (Wasserkessel kalt genug, kein Standby/Wartung/Tuning) |
|
||||
| `cxArmable` | bool | **Modus umschaltbar** — auch im Standby und bei warmem Kessel (ab S3 5.3.5) |
|
||||
| `cxResting` | bool | Zwangspause des Pumpenschutzes läuft (Bezug läuft weiter) |
|
||||
| `cxMaxTemp` | float | Freigabeschwelle in °C (für eigene Hinweistexte am Display) |
|
||||
| `cxTarget` | float | Zielgewicht in g |
|
||||
|
||||
Reference in New Issue
Block a user