From 05cf1e9684253dae8f5941b10849ad513efd426e Mon Sep 17 00:00:00 2001 From: Daniel Korgel Date: Wed, 10 Feb 2021 21:05:43 +0100 Subject: [PATCH 1/3] Implemented temperature and humidity display in graph --- octoprint_enclosure/__init__.py | 27 ++++++++++++++++--- octoprint_enclosure/static/js/enclosure.js | 4 ++- .../templates/enclosure_settings.jinja2 | 18 +++++++++++++ 3 files changed, 45 insertions(+), 4 deletions(-) diff --git a/octoprint_enclosure/__init__.py b/octoprint_enclosure/__init__.py index 473321c..2559987 100644 --- a/octoprint_enclosure/__init__.py +++ b/octoprint_enclosure/__init__.py @@ -148,7 +148,7 @@ class EnclosurePlugin(octoprint.plugin.StartupPlugin, octoprint.plugin.TemplateP self.print_complete = False def get_settings_version(self): - return 6 + return 7 def on_settings_migrate(self, target, current=None): self._logger.warn("######### current settings version %s target settings version %s #########", current, target) @@ -157,14 +157,25 @@ class EnclosurePlugin(octoprint.plugin.StartupPlugin, octoprint.plugin.TemplateP self._logger.info("rpi_inputs: %s", self.rpi_inputs) self._logger.info("######### End Current Settings #########") if current >= 4 and target == 6: - self._logger.warn("######### migrating settings to v6 #########") old_outputs = self._settings.get(["rpi_outputs"]) + old_inputs = self._settings.get(["rpi_inputs"]) + self._logger.warn("######### migrating settings to v6+ #########") for rpi_output in old_outputs: if 'shutdown_on_failed' not in rpi_output: rpi_output['shutdown_on_failed'] = False if 'shell_script' not in rpi_output: rpi_output['shell_script'] = "" + + if target >= 7: + self._logger.warn("######### migrating settings to v7+ #########") + for rpi_input in old_inputs: + if 'show_graph_temp' not in rpi_input: + rpi_input['show_graph_temp'] = False + if 'show_graph_humidity' not in rpi_input: + rpi_input['show_graph_humidity'] = False + self._settings.set(["rpi_outputs"], old_outputs) + self._settings.set(["rpi_inputs"], old_inputs) else: self._logger.warn("######### settings not compatible #########") self._settings.set(["rpi_outputs"], []) @@ -1944,6 +1955,15 @@ class EnclosurePlugin(octoprint.plugin.StartupPlugin, octoprint.plugin.TemplateP comm_instance._log("Setting TEMP/HUM control output %s to value %s" % (index_id, set_value)) return + def get_graph_data(self, comm, parsed_temps): + for sensor in list(filter(lambda item: item['input_type'] == 'temperature_sensor', self.rpi_inputs)): + if sensor["show_graph_temp"]: + parsed_temps[str(sensor["label"])] = (sensor['temp_sensor_temp'], None) + if sensor["show_graph_humidity"]: + parsed_temps[str(sensor["label"])+" Humidity"] = (sensor['temp_sensor_humidity'], None) + + return parsed_temps + __plugin_name__ = "Enclosure Plugin" __plugin_pythoncompat__ = ">=2.7,<4" @@ -1956,5 +1976,6 @@ def __plugin_load__(): global __plugin_hooks__ __plugin_hooks__ = { "octoprint.comm.protocol.gcode.queuing" : __plugin_implementation__.hook_gcode_queuing, - "octoprint.plugin.softwareupdate.check_config": __plugin_implementation__.get_update_information + "octoprint.plugin.softwareupdate.check_config": __plugin_implementation__.get_update_information, + "octoprint.comm.protocol.temperatures.received": (__plugin_implementation__.get_graph_data, 1) } diff --git a/octoprint_enclosure/static/js/enclosure.js b/octoprint_enclosure/static/js/enclosure.js index e9c4847..36367e8 100644 --- a/octoprint_enclosure/static/js/enclosure.js +++ b/octoprint_enclosure/static/js/enclosure.js @@ -456,7 +456,9 @@ $(function () { temp_sensor_navbar: ko.observable(true), filament_sensor_timeout: ko.observable(120), filament_sensor_enabled: ko.observable(true), - temp_sensor_i2cbus: ko.observable(1) + temp_sensor_i2cbus: ko.observable(1), + show_graph_temp: ko.observable(false), + show_graph_humidity: ko.observable(false) }); }; diff --git a/octoprint_enclosure/templates/enclosure_settings.jinja2 b/octoprint_enclosure/templates/enclosure_settings.jinja2 index a30ca69..ab88291 100644 --- a/octoprint_enclosure/templates/enclosure_settings.jinja2 +++ b/octoprint_enclosure/templates/enclosure_settings.jinja2 @@ -765,6 +765,24 @@ Enable and disable temperature on navbar +
+ + Enable to show temperature in temperature graph, when a printer is connected. + +

Note:This feature currently requires a custom graph plugin like PlotlyTempGraph

+ +
+
+ + Enable to show humidity in temperature graph, when a printer is connected. + +

Note:This feature currently requires a custom graph plugin like PlotlyTempGraph

+ +
-- 2.39.5 From 77ac49ecf98bfef2b3fac9ac2f7a51edf2f5276f Mon Sep 17 00:00:00 2001 From: Daniel Korgel Date: Sun, 7 Mar 2021 11:44:58 +0100 Subject: [PATCH 2/3] Fixed bug in config updater --- octoprint_enclosure/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/octoprint_enclosure/__init__.py b/octoprint_enclosure/__init__.py index 2559987..fd9b0f8 100644 --- a/octoprint_enclosure/__init__.py +++ b/octoprint_enclosure/__init__.py @@ -156,7 +156,7 @@ class EnclosurePlugin(octoprint.plugin.StartupPlugin, octoprint.plugin.TemplateP self._logger.info("rpi_outputs: %s", self.rpi_outputs) self._logger.info("rpi_inputs: %s", self.rpi_inputs) self._logger.info("######### End Current Settings #########") - if current >= 4 and target == 6: + if current >= 4 and target >= 6: old_outputs = self._settings.get(["rpi_outputs"]) old_inputs = self._settings.get(["rpi_inputs"]) self._logger.warn("######### migrating settings to v6+ #########") -- 2.39.5 From 21281c9711ba0f12e2655febcf4034349031d933 Mon Sep 17 00:00:00 2001 From: Daniel Korgel Date: Wed, 13 Oct 2021 14:40:11 +0200 Subject: [PATCH 3/3] incremented settings version number --- octoprint_enclosure/__init__.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/octoprint_enclosure/__init__.py b/octoprint_enclosure/__init__.py index 6f0d00f..5d4af89 100644 --- a/octoprint_enclosure/__init__.py +++ b/octoprint_enclosure/__init__.py @@ -150,7 +150,7 @@ class EnclosurePlugin(octoprint.plugin.StartupPlugin, octoprint.plugin.TemplateP self.print_complete = False def get_settings_version(self): - return 8 + return 9 def on_settings_migrate(self, target, current=None): self._logger.warn("######### current settings version %s target settings version %s #########", current, target) @@ -158,8 +158,8 @@ class EnclosurePlugin(octoprint.plugin.StartupPlugin, octoprint.plugin.TemplateP self._logger.info("rpi_outputs: %s", self.rpi_outputs) self._logger.info("rpi_inputs: %s", self.rpi_inputs) self._logger.info("######### End Current Settings #########") - if current >= 4 and target == 8: - self._logger.warn("######### migrating settings to v8 #########") + if current >= 4 and target == 9: + self._logger.warn("######### migrating settings to v9 #########") old_outputs = self._settings.get(["rpi_outputs"]) old_inputs = self._settings.get(["rpi_inputs"]) for rpi_output in old_outputs: -- 2.39.5