From 3a9e9a4bef8e6e04c743a6330249568686257f0c Mon Sep 17 00:00:00 2001 From: Timofey Titovets Date: Mon, 23 Dec 2024 23:11:58 +0100 Subject: [PATCH] temperature_combined: avoid crash with temperature monitors Signed-off-by: Timofey Titovets --- klippy/extras/temperature_combined.py | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/klippy/extras/temperature_combined.py b/klippy/extras/temperature_combined.py index f5aafd1e6..d032bce03 100644 --- a/klippy/extras/temperature_combined.py +++ b/klippy/extras/temperature_combined.py @@ -41,14 +41,22 @@ class PrinterSensorCombined: sensor = self.printer.lookup_object(sensor_name) # check if sensor has get_status function and # get_status has a 'temperature' value - if (hasattr(sensor, 'get_status') and - 'temperature' in sensor.get_status( - self.reactor.monotonic())): - self.sensors.append(sensor) - else: + if not hasattr(sensor, 'get_status'): + raise self.printer.config_error( + "'%s' does not have a status." + % (sensor_name,)) + status = sensor.get_status(self.reactor.monotonic()) + if 'temperature' not in status: raise self.printer.config_error( "'%s' does not report a temperature." % (sensor_name,)) + # Handle temperature monitors + if status["temperature"] is None: + raise self.printer.config_error( + "Temperature monitor '%s' is not supported" + % (sensor_name,)) + + self.sensors.append(sensor) def _handle_ready(self): # Start temperature update timer