From 1d493fa522db9689f9cbf115db786b48c15d962c Mon Sep 17 00:00:00 2001 From: IhatemyISP Date: Sat, 12 Mar 2022 13:46:31 -0500 Subject: [PATCH] Obey bus setting for MCP9808 Bus setting for MCP9808 sensors is now obeyed. --- octoprint_enclosure/__init__.py | 6 +++--- octoprint_enclosure/mcp9808.py | 9 ++++----- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/octoprint_enclosure/__init__.py b/octoprint_enclosure/__init__.py index a03cc69..72d8376 100644 --- a/octoprint_enclosure/__init__.py +++ b/octoprint_enclosure/__init__.py @@ -1036,7 +1036,7 @@ class EnclosurePlugin(octoprint.plugin.StartupPlugin, octoprint.plugin.TemplateP hum = 0 airquality = 0 elif sensor['temp_sensor_type'] == "mcp9808": - temp = self.read_mcp_temp(sensor['temp_sensor_address']) + temp = self.read_mcp_temp(sensor['temp_sensor_address'], sensor['temp_sensor_i2cbus']) hum = 0 airquality = 0 elif sensor['temp_sensor_type'] == "temp_raw_i2c": @@ -1121,10 +1121,10 @@ class EnclosurePlugin(octoprint.plugin.StartupPlugin, octoprint.plugin.TemplateP self._logger.warn(message) return str(-1) - def read_mcp_temp(self, address): + def read_mcp_temp(self, address, i2cbus): try: script = os.path.dirname(os.path.realpath(__file__)) + "/mcp9808.py" - args = ["python", script, str(address)] + args = ["python", script, str(i2cbus), str(address)] if self._settings.get(["debug_temperature_log"]) is True: self._logger.debug("Temperature MCP9808 cmd: %s", " ".join(args)) proc = Popen(args, stdout=PIPE) diff --git a/octoprint_enclosure/mcp9808.py b/octoprint_enclosure/mcp9808.py index 672045b..6d9f707 100644 --- a/octoprint_enclosure/mcp9808.py +++ b/octoprint_enclosure/mcp9808.py @@ -28,13 +28,12 @@ MCP9808_REG_CONFIG_ALERTMODE = 0x0001 def main(): - # get bus address if provided or use default address + # get i2c bus and bus address if provided or use defaults address = MCP9808_I2CADDR_DEFAULT - if len(sys.argv) == 2: - address = int(sys.argv[1], 16) - - # get I2C bus bus = smbus.SMBus(1) + if len(sys.argv) > 1: + bus = smbus.SMBus(int(sys.argv[1])) + address = int(sys.argv[2], 16) # MCP9808 address, default 0x18(24) # configuration register, 0x01(1) -- 2.39.5