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 4115048..b324484 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() @@ -1891,4 +1891,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 - } + } diff --git a/octoprint_enclosure/static/js/enclosure.js b/octoprint_enclosure/static/js/enclosure.js index b7a96e5..e9c4847 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) }); }; @@ -706,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 45a2b8a..a30ca69 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. + +
+
@@ -901,4 +909,4 @@
- \ No newline at end of file +