From 19dc7a95bb833739d93bbc21cb29b701e6643aaa Mon Sep 17 00:00:00 2001 From: Jens Ahrensfeld Date: Fri, 19 Jun 2026 19:17:42 +0200 Subject: [PATCH] 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 --- README.md | 2 +- components/sud.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 0c77160..65827f5 100644 --- a/README.md +++ b/README.md @@ -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: - `"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). Every step also carries its own stirrer timing (`stirrer_speed`, diff --git a/components/sud.py b/components/sud.py index d928a2e..6d99c9e 100644 --- a/components/sud.py +++ b/components/sud.py @@ -59,7 +59,7 @@ class Sud(AttributeChange): if next_step['type'] == 'heat': self.state = SudState.RAMPING else: - self.hold_remaining = next_step.get('duration', 0) * 60.0 + self.hold_remaining = next_step.get('duration', 0) self.state = SudState.HOLDING self.user_message = next_step.get('user_message')