diff --git a/octoprint_enclosure/__init__.py b/octoprint_enclosure/__init__.py index 473321c..509abbe 100644 --- a/octoprint_enclosure/__init__.py +++ b/octoprint_enclosure/__init__.py @@ -21,7 +21,7 @@ import inspect import threading import json import copy - +from .getPiTemp import PiTemp #Function that returns Boolean output state of the GPIO inputs / outputs def PinState_Boolean(pin, ActiveLow) : @@ -865,6 +865,9 @@ class EnclosurePlugin(octoprint.plugin.StartupPlugin, octoprint.plugin.TemplateP temp, hum = self.read_bme280_temp(sensor['temp_sensor_address']) elif sensor['temp_sensor_type'] == "am2320": temp, hum = self.read_am2320_temp() # sensor has fixed address + elif sensor['temp_sensor_type'] == "rpi": + temp = self.read_rpi_temp() # rpi CPU Temp + hum = 0 elif sensor['temp_sensor_type'] == "si7021": temp, hum = self.read_si7021_temp(sensor['temp_sensor_address'], sensor['temp_sensor_i2cbus']) elif sensor['temp_sensor_type'] == "tmp102": @@ -998,6 +1001,19 @@ class EnclosurePlugin(octoprint.plugin.StartupPlugin, octoprint.plugin.TemplateP "Failed to execute python scripts, try disabling use SUDO on advanced section of the plugin.") self.log_error(ex) return (0, 0) + + def read_rpi_temp(self): + try: + pitemp = PiTemp() + temp = pitemp.getTemp() + if self._settings.get(["debug_temperature_log"]) is True: + self._logger.debug("Pi CPU result: %s", temp) + return temp + except Exception as ex: + self._logger.info( + "Failed to get pi cpu temperature") + self.log_error(ex) + return 0 def read_si7021_temp(self, address, i2cbus): try: diff --git a/octoprint_enclosure/getPiTemp.py b/octoprint_enclosure/getPiTemp.py new file mode 100644 index 0000000..ca8f137 --- /dev/null +++ b/octoprint_enclosure/getPiTemp.py @@ -0,0 +1,10 @@ +from gpiozero import CPUTemperature + +import ctypes +import struct +import sys + +class PiTemp: + def getTemp(self): + temp = CPUTemperature() + return '{0:0.1f}'.format(temp.temperature) diff --git a/octoprint_enclosure/templates/enclosure_settings.jinja2 b/octoprint_enclosure/templates/enclosure_settings.jinja2 index a30ca69..4a9e42b 100644 --- a/octoprint_enclosure/templates/enclosure_settings.jinja2 +++ b/octoprint_enclosure/templates/enclosure_settings.jinja2 @@ -539,6 +539,7 @@ + @@ -614,7 +615,7 @@ - +