From 3ec0a248bb111813d73d9d516c0733a96f54ada4 Mon Sep 17 00:00:00 2001 From: Jens Ahrensfeld Date: Thu, 25 Jun 2026 20:33:23 +0200 Subject: [PATCH] Fix fragile substring dispatch in TcTask.recv() Replace 'Soll' in key / 'Temp' in subkey substring loops with direct dict key presence checks, matching the message structure used in send. Co-Authored-By: Claude Sonnet 4.6 Claude-Session: https://claude.ai/code/session_01Tqxrk8uj4M3w3d3eXm3xK8 --- tasks/tempctrl.py | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/tasks/tempctrl.py b/tasks/tempctrl.py index 9b93a7b..aa6c095 100644 --- a/tasks/tempctrl.py +++ b/tasks/tempctrl.py @@ -35,16 +35,14 @@ class TcTask(ATask): asyncio.create_task(self.send({'Enabled': value})) async def recv(self, msg): - for key in msg.keys(): - if 'Soll' in key: - submsg = msg['Soll'] - for subkey in submsg.keys(): - if 'Temp' in subkey: - self.tc.set_theta_soll(submsg['Temp']) - if 'Rate' in subkey: - self.tc.set_heatrate_soll(submsg['Rate']) - if 'Enable' in key: - self.tc.set_enabled(bool(msg['Enable'])) + if 'Soll' in msg: + submsg = msg['Soll'] + if 'Temp' in submsg: + self.tc.set_theta_soll(submsg['Temp']) + if 'Rate' in submsg: + self.tc.set_heatrate_soll(submsg['Rate']) + if 'Enable' in msg: + self.tc.set_enabled(bool(msg['Enable'])) async def send(self, data): await self.msg_handler.send(data)