Revert "Run the Pot simulation from server startup, not just once a Sud loads"

This reverts commit 63fa093a8a.
This commit is contained in:
2026-06-24 16:09:49 +02:00
parent 17e8386002
commit 0be8ffcbe0
2 changed files with 10 additions and 19 deletions
+2 -11
View File
@@ -59,17 +59,8 @@ def _build_step(number, defaults, raw_step):
EMPTY_SUD = {
'Name': '',
'Description': '',
# pot_mass/pot_material are the physical kettle's own properties, not
# really per-recipe (every sude/*.json so far uses this exact pot) -
# defaulting to 0/None here used to make derive_plant_params() come out
# with a zero-mass plant (a ZeroDivisionError in Pot.process() waiting
# to happen) for as long as no Sud had ever been loaded yet. Matching
# the real kettle here instead lets server/brewpi.py seed the Pot with
# a physically sane default at startup, so its simulation actually
# runs - and a real Sud's own doc still overrides these the moment one
# is loaded (see SudTask.apply_plant_params()).
'pot_mass': 5.96,
'pot_material': "Edelstahl 18/10",
'pot_mass': 0,
'pot_material': None,
# Pot energy loss coefficient [W/(kg*K)] and transport propagation
# delay [s] - see derive_plant_params(). Defaults match the generic
# values brewpi.py used to hardcode for every brew alike.
+8 -8
View File
@@ -75,15 +75,15 @@ if __name__ == '__main__':
sensor_task = TempSensorTask(sensor, DT_TASK, dispatcher.msgio_get("Sensor"))
taskmgr.add(sensor_task)
# Pot - seeded with the not-yet-loaded sud's own (now physically sane,
# see Sud.EMPTY_SUD) plant params right away, same as ambient below, so
# a simulated Pot already runs - manual heater power/Sud disabled or
# not - instead of sitting inert until a real Sud loads (PotReal just
# ignores this - see there). A real Sud's own doc still overrides
# these the moment one is loaded (see tasks/sud.py's SudTask.
# apply_plant_params()).
# Pot - deliberately left without plant params (M/C/L/Td) here: a
# Sud's own doc is the only source for those now (see tasks/sud.py's
# SudTask.apply_plant_params(), called immediately on Load), so the
# simulated Pot stays inert (Pot.is_configured() is False, PotTask
# skips process() - see there) until one actually is loaded (PotReal
# just ignores this - see there). Ambient is independent of any Sud
# (a global setting, changeable live via the System channel - see
# on_system_recv() below), so it's set right away regardless.
pot.set_ambient_temperature(theta_amb)
pot.set_plant_params(sud.derive_plant_params(sud.grain_mass, sud.water_mass))
taskmgr.add(PotTask(pot, DT_TASK, dispatcher.msgio_get("Pot")))
heater.set_on_changed("power_eff", ChangedFloat(pot.set_power, prec=0).set)