Fix Sud hold duration units: seconds, not minutes

_advance() multiplied "duration" by 60, treating it as minutes;
stirrer_speed (percent) and stirrer_time_on/off (seconds) were already
handled correctly with no conversion. Also fix the README's "duration
minutes" wording to match.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-19 19:17:42 +02:00
co-authored by Claude Sonnet 4.6
parent b33f89a569
commit 19dc7a95bb
2 changed files with 2 additions and 2 deletions
+1 -1
View File
@@ -132,7 +132,7 @@ Files under `sude/` describe a brew's mash schedule ("Sud"): pot weight,
malt/water weights, and a flat `schedule` list of steps, each either: malt/water weights, and a flat `schedule` list of steps, each either:
- `"type": "heat"` — ramp to `temp` at `rate` (°C/min), or - `"type": "heat"` — ramp to `temp` at `rate` (°C/min), or
- `"type": "hold"` — hold the current target for `duration` minutes (omit - `"type": "hold"` — hold the current target for `duration` seconds (omit
for an immediate, zero-duration step). for an immediate, zero-duration step).
Every step also carries its own stirrer timing (`stirrer_speed`, Every step also carries its own stirrer timing (`stirrer_speed`,
+1 -1
View File
@@ -59,7 +59,7 @@ class Sud(AttributeChange):
if next_step['type'] == 'heat': if next_step['type'] == 'heat':
self.state = SudState.RAMPING self.state = SudState.RAMPING
else: else:
self.hold_remaining = next_step.get('duration', 0) * 60.0 self.hold_remaining = next_step.get('duration', 0)
self.state = SudState.HOLDING self.state = SudState.HOLDING
self.user_message = next_step.get('user_message') self.user_message = next_step.get('user_message')