Mirror raw sensor temp through when the controller isn't configured yet

is_configured() (Smith's model plant params, only ever set once a Sud
loads) gates TcTask's call to tc.process() - the only place theta_ist/
heatrate_ist/heatrate_soll get updated and broadcast. Right after
server start, before any Sud has ever loaded, that left them frozen at
their __init__ defaults forever, so the GUI's Ist Temp/Rate and Soll
Rate displays never showed anything on connect. Mirror the raw sensor
reading through instead, with rates at 0 since there's no controller
output yet.
This commit is contained in:
2026-06-23 19:11:50 +02:00
parent deb370257d
commit 616cf113f2
+14
View File
@@ -78,5 +78,19 @@ class TcTask(ATask):
# would otherwise raise. # would otherwise raise.
if self.tc.is_configured(): if self.tc.is_configured():
self.tc.process() self.tc.process()
else:
# Smith's model plant params only ever arrive from a Sud's
# doc (see brewpi.py), so right after server start - before
# any Sud has ever loaded - is_configured() stays False and
# process() never runs. Without this, theta_ist/
# heatrate_ist/heatrate_soll (and thus the 'Ist'/'Soll'
# messages below) would stay frozen at their __init__
# defaults forever, leaving the GUI's Ist Temp/Rate and
# Soll Rate displays blank on connect. Mirror the raw
# sensor reading straight through instead - there's no
# controller output yet to report a real rate for.
self.tc.theta_ist = self.tc.get_theta_ist_set()
self.tc.heatrate_ist = 0.0
self.tc.heatrate_soll = 0.0
await asyncio.sleep(self.interval) await asyncio.sleep(self.interval)