diff --git a/panels/temperature.py b/panels/temperature.py index 1fbafc21..aa2a2c56 100644 --- a/panels/temperature.py +++ b/panels/temperature.py @@ -205,23 +205,32 @@ class TemperaturePanel(ScreenPanel): return for heater in self.active_heaters: + MAX_TEMP = int(self._printer.get_config_section(heater)['max_temp']) if heater.startswith('extruder'): target = self.preheat_options[setting]["extruder"] - self._screen._ws.klippy.set_tool_temp(self._printer.get_tool_number(heater), target) + if target > 0 and target <= MAX_TEMP: + self._screen._ws.klippy.set_tool_temp(self._printer.get_tool_number(heater), target) elif heater.startswith('heater_bed'): target = self.preheat_options[setting]["bed"] - self._screen._ws.klippy.set_bed_temp(target) + if target > 0 and target <= MAX_TEMP: + self._screen._ws.klippy.set_bed_temp(target) elif heater.startswith('heater_generic '): target = self.preheat_options[setting]["heater_generic"] - self._screen._ws.klippy.set_heater_temp(" ".join(heater.split(" ")[1:]), target) + if target > 0 and target <= MAX_TEMP: + self._screen._ws.klippy.set_heater_temp(" ".join(heater.split(" ")[1:]), target) elif heater.startswith('temperature_fan '): target = self.preheat_options[setting]["temperature_fan"] - self._screen._ws.klippy.set_temp_fan_temp(" ".join(heater.split(" ")[1:]), target) + if target > 0 and target <= MAX_TEMP: + self._screen._ws.klippy.set_temp_fan_temp(" ".join(heater.split(" ")[1:]), target) else: logging.info("Unknown heater: %s" % heater) self._screen.show_popup_message(_("Unknown Heater") + heater) - self._printer.set_dev_stat(heater, "target", int(target)) - logging.info("Setting %s to %d" % (heater, target)) + if target <= MAX_TEMP: + if target > 0: + self._printer.set_dev_stat(heater, "target", int(target)) + logging.info("Setting %s to %d" % (heater, target)) + else: + self._screen.show_popup_message(_("Can't set above the maximum:") + (" %s" % MAX_TEMP)) if self.preheat_options[setting]['gcode']: self._screen._ws.klippy.gcode_script(self.preheat_options[setting]['gcode'])