Move Sud step's target temperature from ramp.temp to step.temperature

A step's target temperature applies to the whole step (it's what a
ramp ramps to and what a hold then holds at), not just its ramp phase
- promote it from a nested "ramp": {"temp": ...} to a step-level
"temperature" field, defaulted like descr/grain_mass/etc. Updates all
consumers (Sud._build_step, SudTask, the GUI's forecast estimator,
demo_sud.py) and migrates sude/sud_0010.json and the README.
This commit is contained in:
2026-06-21 09:47:45 +02:00
parent e62863ca93
commit 194156f244
6 changed files with 28 additions and 26 deletions
+8 -6
View File
@@ -130,17 +130,19 @@ environment (`$WORKON_HOME`/`$BREWPI_HOME`) on a Raspberry Pi-style deployment.
Files under `sude/` describe a brew's mash schedule ("Sud"): `pot_mass`,
`pot_material` (fixed for the whole brew), and a `steps` list, each a ramp, a
hold, or both:
hold, or both, plus a step-level `temperature` (the target a ramp step ramps
to, and what a hold step holds at):
- a ramp — `"ramp": {"rate": ..., "temp": ...}` — ramp to `temp` at `rate`
- a ramp — `"ramp": {"rate": ...}` — ramp to `temperature` at `rate`
(°C/min), and/or
- a hold — `"hold": {"duration": ...}` — hold the current target for
`duration` minutes (omit/`0` for an immediate step).
A step with both ramps to `temp` and then holds there for `duration` -
useful for a mash rest ("ramp to 63°C, then hold 40 min") without needing two
separate schedule entries. `user_wait_for_continue`/`user_message` (below)
apply once the whole step is done, i.e. after the hold phase if there is one.
A step with both ramps to `temperature` and then holds there for `duration`
- useful for a mash rest ("ramp to 63°C, then hold 40 min") without needing
two separate schedule entries. `user_wait_for_continue`/`user_message`
(below) apply once the whole step is done, i.e. after the hold phase if
there is one.
Both `ramp` and `hold` carry a `stirrer` block (`speed`, `interval_time`,
`on_ratio`): `interval_time: 0` runs the stirrer continuously at `speed`;