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
+