From 397ad4deadd08496a3d62ca40f6f3552db1450ad Mon Sep 17 00:00:00 2001 From: ameixler Date: Wed, 13 May 2020 18:49:40 -0400 Subject: [PATCH 1/2] testing adding i2cbus settings --- octoprint_enclosure/static/js/enclosure.js | 3 ++- octoprint_enclosure/templates/enclosure_settings.jinja2 | 8 ++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/octoprint_enclosure/static/js/enclosure.js b/octoprint_enclosure/static/js/enclosure.js index b7a96e5..66e6a31 100644 --- a/octoprint_enclosure/static/js/enclosure.js +++ b/octoprint_enclosure/static/js/enclosure.js @@ -455,7 +455,8 @@ $(function () { printer_action: ko.observable("filament"), temp_sensor_navbar: ko.observable(true), filament_sensor_timeout: ko.observable(120), - filament_sensor_enabled: ko.observable(true) + filament_sensor_enabled: ko.observable(true), + temp_sensor_i2cbus: ko.observable("1") }); }; diff --git a/octoprint_enclosure/templates/enclosure_settings.jinja2 b/octoprint_enclosure/templates/enclosure_settings.jinja2 index 45a2b8a..508232c 100644 --- a/octoprint_enclosure/templates/enclosure_settings.jinja2 +++ b/octoprint_enclosure/templates/enclosure_settings.jinja2 @@ -582,6 +582,14 @@ i2cdetect -y 1 on your Raspberry Pi +
+ +
+ + This value should remain 1 unless you've used dtoverlay=i2c-gpio. + +
+
From 3b6233a731de4e90929148bbde71f837857f0d0c Mon Sep 17 00:00:00 2001 From: ameixler Date: Wed, 13 May 2020 20:38:04 -0400 Subject: [PATCH 2/2] Working changes Confirmed works with 2 Si7021 modules. --- octoprint_enclosure/SI7021.py | 8 ++++++-- octoprint_enclosure/__init__.py | 8 ++++---- octoprint_enclosure/static/js/enclosure.js | 4 ++-- octoprint_enclosure/templates/enclosure_settings.jinja2 | 2 +- 4 files changed, 13 insertions(+), 9 deletions(-) diff --git a/octoprint_enclosure/SI7021.py b/octoprint_enclosure/SI7021.py index 6b352f1..3e1eb60 100644 --- a/octoprint_enclosure/SI7021.py +++ b/octoprint_enclosure/SI7021.py @@ -3,14 +3,18 @@ import time import sys -if len(sys.argv) == 2: +if len(sys.argv) == 2 or len(sys.argv) == 3: address = int(sys.argv[1],16) + if len(sys.argv) == 3: + busNum = int(sys.argv[2],16) + else: + busNum = 1 else: print('-1 | -1') sys.exit(1) # Get I2C bus -bus = smbus.SMBus(1) +bus = smbus.SMBus(busNum) # SI7021 address, 0x40(64) # 0xF5(245) Select Relative Humidity NO HOLD master mode diff --git a/octoprint_enclosure/__init__.py b/octoprint_enclosure/__init__.py index f01f06c..6e388d9 100644 --- a/octoprint_enclosure/__init__.py +++ b/octoprint_enclosure/__init__.py @@ -800,7 +800,7 @@ class EnclosurePlugin(octoprint.plugin.StartupPlugin, octoprint.plugin.TemplateP elif sensor['temp_sensor_type'] == "am2320": temp, hum = self.read_am2320_temp() # sensor has fixed address elif sensor['temp_sensor_type'] == "si7021": - temp, hum = self.read_si7021_temp(sensor['temp_sensor_address']) + temp, hum = self.read_si7021_temp(sensor['temp_sensor_address'], sensor['temp_sensor_i2cbus']) elif sensor['temp_sensor_type'] == "tmp102": temp = self.read_tmp102_temp(sensor['temp_sensor_address']) hum = 0 @@ -933,14 +933,14 @@ class EnclosurePlugin(octoprint.plugin.StartupPlugin, octoprint.plugin.TemplateP self.log_error(ex) return (0, 0) - def read_si7021_temp(self, address): + def read_si7021_temp(self, address, i2cbus): try: script = os.path.dirname(os.path.realpath(__file__)) + "/SI7021.py " if self._settings.get(["use_sudo"]): sudo_str = "sudo " else: sudo_str = "" - cmd = sudo_str + "python " + script + str(address) + cmd = sudo_str + "python " + script + str(address) + " " + str(i2cbus) if self._settings.get(["debug_temperature_log"]) is True: self._logger.debug("Temperature SI7021 cmd: %s", cmd) stdout = (Popen(cmd, shell=True, stdout=PIPE).stdout).read() @@ -1890,4 +1890,4 @@ def __plugin_load__(): __plugin_hooks__ = { "octoprint.comm.protocol.gcode.queuing" : __plugin_implementation__.hook_gcode_queuing, "octoprint.plugin.softwareupdate.check_config": __plugin_implementation__.get_update_information - } \ No newline at end of file + } diff --git a/octoprint_enclosure/static/js/enclosure.js b/octoprint_enclosure/static/js/enclosure.js index 66e6a31..e9c4847 100644 --- a/octoprint_enclosure/static/js/enclosure.js +++ b/octoprint_enclosure/static/js/enclosure.js @@ -456,7 +456,7 @@ $(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) }); }; @@ -707,4 +707,4 @@ $(function () { elements: ["#tab_plugin_enclosure", "#settings_plugin_enclosure", "#navbar_plugin_enclosure_1", "#navbar_plugin_enclosure_2"] }); -}); \ No newline at end of file +}); diff --git a/octoprint_enclosure/templates/enclosure_settings.jinja2 b/octoprint_enclosure/templates/enclosure_settings.jinja2 index 508232c..a30ca69 100644 --- a/octoprint_enclosure/templates/enclosure_settings.jinja2 +++ b/octoprint_enclosure/templates/enclosure_settings.jinja2 @@ -909,4 +909,4 @@
- \ No newline at end of file +