diff --git a/src/octoprint/printer/standard.py b/src/octoprint/printer/standard.py index fa82aebf..1976b750 100644 --- a/src/octoprint/printer/standard.py +++ b/src/octoprint/printer/standard.py @@ -832,27 +832,30 @@ class Printer(PrinterInterface, comm.MachineComPrintCallback): return printTimeLeft, printTimeLeftOrigin - def _addTemperatureData(self, temp, bedTemp): + def _addTemperatureData(self, tools=None, bed=None): + if tools is None: + tools = dict() + currentTimeUtc = int(time.time()) data = { "time": currentTimeUtc } - for tool in temp.keys(): + for tool in tools.keys(): data["tool%d" % tool] = { - "actual": temp[tool][0], - "target": temp[tool][1] + "actual": tools[tool][0], + "target": tools[tool][1] } - if bedTemp is not None and isinstance(bedTemp, tuple): + if bed is not None and isinstance(bed, tuple): data["bed"] = { - "actual": bedTemp[0], - "target": bedTemp[1] + "actual": bed[0], + "target": bed[1] } self._temps.append(data) - self._temp = temp - self._bedTemp = bedTemp + self._temp = tools + self._bedTemp = bed self._stateMonitor.add_temperature(data) @@ -992,7 +995,7 @@ class Printer(PrinterInterface, comm.MachineComPrintCallback): self._addLog(to_unicode(message, "utf-8", errors="replace")) def on_comm_temperature_update(self, temp, bedTemp): - self._addTemperatureData(copy.deepcopy(temp), copy.deepcopy(bedTemp)) + self._addTemperatureData(tools=copy.deepcopy(temp), bed=copy.deepcopy(bedTemp)) def on_comm_position_update(self, position, reason=None): payload = dict(reason=reason) @@ -1037,6 +1040,7 @@ class Printer(PrinterInterface, comm.MachineComPrintCallback): self._setCurrentZ(None) self._setJobData(None, None, None) self._setOffsets(None) + self._addTemperatureData() self._printerProfileManager.deselect() eventManager().fire(Events.DISCONNECTED) diff --git a/src/octoprint/static/js/app/viewmodels/temperature.js b/src/octoprint/static/js/app/viewmodels/temperature.js index ef9704cf..2b2db5ac 100644 --- a/src/octoprint/static/js/app/viewmodels/temperature.js +++ b/src/octoprint/static/js/app/viewmodels/temperature.js @@ -41,7 +41,7 @@ $(function() { }); entry.offset.subscribe(function(newValue) { - if (self.changingOffset.item !== undefined && self.changingOffset.item.key() == entry.key()) { + if (self.changingOffset.item !== undefined && self.changingOffset.item.key() === entry.key()) { // if our we currently have the offset dialog open for this entry and the offset changed // meanwhile, update the displayed value in the dialog self.changingOffset.offset(newValue); @@ -115,7 +115,7 @@ $(function() { tools[extruder]["name"](gettext("Tool") + " " + extruder); tools[extruder]["key"]("tool" + extruder); } - } else if (numExtruders == 1 || sharedNozzle) { + } else if (numExtruders === 1 || sharedNozzle) { // only one extruder, no need to add numbers color = graphColors[0]; heaterOptions["tool0"] = {name: "T", color: color}; @@ -200,7 +200,7 @@ $(function() { }; self._processTemperatureUpdateData = function(serverTime, data) { - if (data.length == 0) + if (data.length === 0) return; var lastData = data[data.length - 1]; @@ -219,6 +219,9 @@ $(function() { if (lastData.hasOwnProperty("bed")) { self.bedTemp["actual"](lastData.bed.actual); self.bedTemp["target"](lastData.bed.target); + } else { + self.bedTemp["actual"](0); + self.bedTemp["target"](0); } if (!CONFIG_TEMPERATURE_GRAPH) return; @@ -278,7 +281,7 @@ $(function() { }); var temperature_cutoff = self.temperature_cutoff(); - if (temperature_cutoff != undefined) { + if (temperature_cutoff !== undefined) { var filterOld = function(item) { return item[0] >= clientTime - temperature_cutoff * 60 * 1000; }; @@ -484,7 +487,7 @@ $(function() { self.incrementTarget = function(item) { var value = item.newTarget(); - if (value === undefined || (typeof(value) == "string" && value.trim() == "")) { + if (value === undefined || (typeof(value) === "string" && value.trim() === "")) { value = item.target(); } try { @@ -499,7 +502,7 @@ $(function() { self.decrementTarget = function(item) { var value = item.newTarget(); - if (value === undefined || (typeof(value) == "string" && value.trim() == "")) { + if (value === undefined || (typeof(value) === "string" && value.trim() === "")) { value = item.target(); } try { @@ -541,7 +544,7 @@ $(function() { if (form !== undefined) { $(form).find("input").blur(); } - if (value === undefined || (typeof(value) == "string" && value.trim() == "")) return OctoPrintClient.createRejectedDeferred(); + if (value === undefined || (typeof(value) === "string" && value.trim() === "")) return OctoPrintClient.createRejectedDeferred(); self.clearAutosendTarget(item); return self.setTargetToValue(item, value); @@ -551,7 +554,7 @@ $(function() { if (!profile) return OctoPrintClient.createRejectedDeferred(); self.clearAutosendTarget(item); - return self.setTargetToValue(item, (item.key() == "bed" ? profile.bed : profile.extruder)); + return self.setTargetToValue(item, (item.key() === "bed" ? profile.bed : profile.extruder)); }; self.setTargetToZero = function(item) { @@ -575,7 +578,7 @@ $(function() { item.newTarget(""); }; - if (item.key() == "bed") { + if (item.key() === "bed") { return self._setBedTemperature(value) .done(onSuccess); } else { @@ -596,7 +599,7 @@ $(function() { self.incrementChangeOffset = function() { var value = self.changingOffset.newOffset(); - if (value === undefined || (typeof(value) == "string" && value.trim() == "")) value = self.changingOffset.offset(); + if (value === undefined || (typeof(value) === "string" && value.trim() === "")) value = self.changingOffset.offset(); try { value = parseInt(value); if (value >= 50) return; @@ -608,7 +611,7 @@ $(function() { self.decrementChangeOffset = function() { var value = self.changingOffset.newOffset(); - if (value === undefined || (typeof(value) == "string" && value.trim() == "")) value = self.changingOffset.offset(); + if (value === undefined || (typeof(value) === "string" && value.trim() === "")) value = self.changingOffset.offset(); try { value = parseInt(value); if (value <= -50) return; @@ -640,7 +643,7 @@ $(function() { self.setOffset = function(item) { var value = item.newOffset(); - if (value === undefined || (typeof(value) == "string" && value.trim() == "")) return OctoPrintClient.createRejectedDeferred(); + if (value === undefined || (typeof(value) === "string" && value.trim() === "")) return OctoPrintClient.createRejectedDeferred(); return self.setOffsetToValue(item, value); }; @@ -662,7 +665,7 @@ $(function() { item.newOffset(""); }; - if (item.key() == "bed") { + if (item.key() === "bed") { return self._setBedOffset(value) .done(onSuccess); } else { @@ -708,26 +711,26 @@ $(function() { }; self.handleEnter = function(event, type, item) { - if (event.keyCode == 13) { - if (type == "target") { + if (event.keyCode === 13) { + if (type === "target") { self.setTarget(item) .done(function() { event.target.blur(); }); - } else if (type == "offset") { + } else if (type === "offset") { self.confirmChangeOffset(); } } }; self.handleFocus = function(event, type, item) { - if (type == "target") { + if (type === "target") { var value = item.newTarget(); - if (value === undefined || (typeof(value) == "string" && value.trim() == "")) { + if (value === undefined || (typeof(value) === "string" && value.trim() === "")) { item.newTarget(item.target()); } event.target.select(); - } else if (type == "offset") { + } else if (type === "offset") { event.target.select(); } };