diff --git a/moonraker/plugins/gcode_apis.py b/moonraker/plugins/gcode_apis.py index bfd291e..4e5ecc0 100644 --- a/moonraker/plugins/gcode_apis.py +++ b/moonraker/plugins/gcode_apis.py @@ -58,10 +58,20 @@ class GCodeAPIs: return await self._send_gcode(script) async def gcode_restart(self, path, method, args): - return await self._send_gcode("RESTART") + return await self._do_restart("RESTART") async def gcode_firmware_restart(self, path, method, args): - return await self._send_gcode("FIRMWARE_RESTART") + return await self._do_restart("FIRMWARE_RESTART") + + async def _do_restart(self, gc): + try: + result = await self._send_gcode(gc) + except self.server.error as e: + if str(e) == "Klippy Disconnected": + result = "ok" + else: + raise + return result def load_plugin(config): return GCodeAPIs(config)