From f1101c97b3640e910de54899c946785499dd06ca Mon Sep 17 00:00:00 2001 From: Vitor de Miranda Henrique Date: Wed, 1 Mar 2017 10:27:25 -0600 Subject: [PATCH] 1.6 Release --- .editorconfig | 17 --- .gitignore | 9 -- MANIFEST.in | 1 - babel.cfg | 6 - octoprint_enclosure/__init__.py | 107 ++++++++++++------ .../templates/enclosure_settings.jinja2 | 58 +++++++++- .../templates/enclosure_tab.jinja2 | 20 +--- requirements.txt | 9 -- setup.py | 2 +- 9 files changed, 135 insertions(+), 94 deletions(-) delete mode 100644 .editorconfig delete mode 100644 .gitignore delete mode 100644 MANIFEST.in delete mode 100644 babel.cfg delete mode 100644 requirements.txt diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 82c8e05..0000000 --- a/.editorconfig +++ /dev/null @@ -1,17 +0,0 @@ -# This file is for unifying the coding style for different editors and IDEs -# editorconfig.org - -root = true - -[*] -end_of_line = lf -charset = utf-8 -insert_final_newline = true -trim_trailing_whitespace = true - -[**.py] -indent_style = tab - -[**.js] -indent_style = space -indent_size = 4 diff --git a/.gitignore b/.gitignore deleted file mode 100644 index ecfcd6f..0000000 --- a/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -*.pyc -*.swp -.idea -*.iml -build -dist -*.egg* -.DS_Store -*.zip diff --git a/MANIFEST.in b/MANIFEST.in deleted file mode 100644 index bb3ec5f..0000000 --- a/MANIFEST.in +++ /dev/null @@ -1 +0,0 @@ -include README.md diff --git a/babel.cfg b/babel.cfg deleted file mode 100644 index b6f5945..0000000 --- a/babel.cfg +++ /dev/null @@ -1,6 +0,0 @@ -[python: */**.py] -[jinja2: */**.jinja2] -extensions=jinja2.ext.autoescape, jinja2.ext.with_ - -[javascript: */**.js] -extract_messages = gettext, ngettext diff --git a/octoprint_enclosure/__init__.py b/octoprint_enclosure/__init__.py index cd584f7..4fa0328 100644 --- a/octoprint_enclosure/__init__.py +++ b/octoprint_enclosure/__init__.py @@ -1,11 +1,10 @@ # coding=utf-8 from __future__ import absolute_import - from octoprint.events import eventManager, Events from octoprint.util import RepeatedTimer from subprocess import Popen, PIPE import octoprint.plugin -import RPi.GPIO as GPIO +import RPi.GPIO as GPIO import flask import sched import time @@ -14,12 +13,13 @@ import os scheduler = sched.scheduler(time.time, time.sleep) class EnclosureGPIO(): - def __init__(self, pinNumber, label, activeLow, enable, autoShutDown,isOutput,timeDelay): + def __init__(self, pinNumber, label, activeLow, enable, autoShutDown,isOutput,timeDelay,autoStartup): self.pinNumber = pinNumber self.label = label self.activeLow = activeLow self.enable = enable self.autoShutDown = autoShutDown + self.autoStartup = autoStartup self.isOutput = isOutput self.timeDelay = timeDelay @@ -30,7 +30,10 @@ class EnclosureGPIO(): else: GPIO.setup(self.pinNumber, GPIO.OUT, initial=GPIO.LOW) else: - GPIO.setup(self.pinNumber, GPIO.IN, pull_up_down=GPIO.PUD_UP) + if self.activeLow: + GPIO.setup(self.pinNumber, GPIO.IN, pull_up_down=GPIO.PUD_UP) + else: + GPIO.setup(self.pinNumber, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) def write(self,active): if self.activeLow: @@ -45,28 +48,40 @@ class EnclosurePlugin(octoprint.plugin.StartupPlugin, octoprint.plugin.BlueprintPlugin, octoprint.plugin.EventHandlerPlugin): + previousHeaterStatus = False + currentHeaterStatus = False enclosureSetTemperature=0.0 enclosureCurrentTemperature=0.0 enclosureCurrentHumidity=0.0 def startGPIO(self): - GPIO.setmode(GPIO.BCM) + if self._settings.get(["useBoardPinNumber"]): + GPIO.setmode(GPIO.BOARD) + else: + GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False) self.io1 = EnclosureGPIO(self._settings.get_int(["io1Pin"]),self._settings.get(["io1Label"]),self._settings.get(["io1ActiveLow"]), - self._settings.get(["io1Enable"]),self._settings.get(["io1AutoShutDown"]),True,self._settings.get(["io1TimeDelay"])) + self._settings.get(["io1Enable"]),self._settings.get(["io1AutoShutDown"]),True,self._settings.get(["io1TimeDelay"]), + self._settings.get(["io1AutoStartup"])) self.io2 = EnclosureGPIO(self._settings.get_int(["io2Pin"]),self._settings.get(["io2Label"]),self._settings.get(["io2ActiveLow"]), - self._settings.get(["io2Enable"]),self._settings.get(["io2AutoShutDown"]),True,self._settings.get(["io2TimeDelay"])) + self._settings.get(["io2Enable"]),self._settings.get(["io2AutoShutDown"]),True,self._settings.get(["io2TimeDelay"]), + self._settings.get(["io2AutoStartup"])) self.io3 = EnclosureGPIO(self._settings.get_int(["io3Pin"]),self._settings.get(["io3Label"]),self._settings.get(["io3ActiveLow"]), - self._settings.get(["io3Enable"]),self._settings.get(["io3AutoShutDown"]),True,self._settings.get(["io3TimeDelay"])) + self._settings.get(["io3Enable"]),self._settings.get(["io3AutoShutDown"]),True,self._settings.get(["io3TimeDelay"]), + self._settings.get(["io3AutoStartup"])) self.io4 = EnclosureGPIO(self._settings.get_int(["io4Pin"]),self._settings.get(["io4Label"]),self._settings.get(["io4ActiveLow"]), - self._settings.get(["io4Enable"]),self._settings.get(["io4AutoShutDown"]),True,self._settings.get(["io4TimeDelay"])) + self._settings.get(["io4Enable"]),self._settings.get(["io4AutoShutDown"]),True,self._settings.get(["io4TimeDelay"]), + self._settings.get(["io4AutoStartup"])) - self.heater = EnclosureGPIO(self._settings.get_int(["heaterPin"]),"heater",self._settings.get(["heaterActiveLow"]), self._settings.get(["heaterEnable"]),True,True,0) + self.heater = EnclosureGPIO(self._settings.get_int(["heaterPin"]),"heater",self._settings.get(["heaterActiveLow"]), + self._settings.get(["heaterEnable"]),True,True,0,False) + + self.filamentSensor = EnclosureGPIO(self._settings.get_int(["filamentSensorPin"]),"filamentSensor",self._settings.get(["filamentSensorActiveLow"]), + self._settings.get(["filamentSensorEnable"]),False,False,0,False) - self.filamentSensor = EnclosureGPIO(self._settings.get_int(["filamentSensorPin"]),"filamentSensor",False,self._settings.get(["filamentSensorEnable"]),False,False,0) self.io1.configureGPIO() self.io2.configureGPIO() @@ -74,6 +89,8 @@ class EnclosurePlugin(octoprint.plugin.StartupPlugin, self.io4.configureGPIO() self.heater.configureGPIO() self.filamentSensor.configureGPIO() + + self._settings.set(["useCelsius"],not self._settings.get(["useFahrenheit"])) def startTimer(self): self._checkTempTimer = RepeatedTimer(10, self.checkEnclosureTemp, None, None, True) @@ -84,7 +101,6 @@ class EnclosurePlugin(octoprint.plugin.StartupPlugin, val = float(value) return val except: - self._logger.info("Failed to convert to float") return 0 def checkEnclosureTemp(self): @@ -93,33 +109,39 @@ class EnclosurePlugin(octoprint.plugin.StartupPlugin, else: stdout = Popen("sudo "+self._settings.get(["getTempScript"])+" "+str(self._settings.get(["dhtModel"]))+" "+str(self._settings.get(["dhtPin"])), shell=True, stdout=PIPE).stdout sTemp = stdout.read() + if self._settings.get(["debug"]) == True: + self._logger.info("DEBUG -> Reading temperature stdout: %s",stdout) sTemp.replace(" ", "") - if sTemp.find("Failed") != -1: + fTemp = self.toFloat(sTemp) + if sTemp.find("Failed") != -1 or fTemp == 0: self._logger.info("Failed to read Temperature") else: - #self._logger.info(sTemp) - self.enclosureCurrentTemperature = self.toFloat(sTemp) - #self._logger.info("enclosureCurrentTemperature is: %s",self.enclosureCurrentTemperature) + self.enclosureCurrentTemperature = fTemp*1.8 + 32 if self._settings.get(["useFahrenheit"]) else fTemp if self._settings.get(["dhtModel"]) != '1820': stdout = Popen("sudo "+self._settings.get(["getHumiScript"])+" "+str(self._settings.get(["dhtModel"]))+" "+str(self._settings.get(["dhtPin"])), shell=True, stdout=PIPE).stdout sHum = stdout.read() + if self._settings.get(["debug"]) == True: + self._logger.info("DEBUG -> Reading humidity stdout: %s",stdout) sHum.replace(" ", "") - if sHum.find("Failed") != -1: + fHum = self.toFloat(sHum) + if sHum.find("Failed") != -1 or fHum == 0: self._logger.info("Failed to read Humidity") else: - # self._logger.info(sHum) - self.enclosureCurrentHumidity = self.toFloat(sHum) + self.enclosureCurrentHumidity = fHum self._plugin_manager.send_plugin_message(self._identifier, dict(enclosuretemp=self.enclosureCurrentTemperature,enclosureHumidity=self.enclosureCurrentHumidity)) self.heaterHandler() def heaterHandler(self): - if self.enclosureCurrentTemperature +
+ +

{{ _('IO 1') }}

@@ -73,12 +78,17 @@ Available options are: 11 for DHT11; 22 for DHT22; 2302 for AM2302; 1820 for DS1 {{ _('Active Low') }} +
+ +
- +
@@ -108,12 +118,17 @@ Available options are: 11 for DHT11; 22 for DHT22; 2302 for AM2302; 1820 for DS1 {{ _('Active Low') }} +
+ +
- +
@@ -143,12 +158,17 @@ Available options are: 11 for DHT11; 22 for DHT22; 2302 for AM2302; 1820 for DS1 {{ _('Active Low') }} +
+ +
- +
@@ -178,12 +198,17 @@ Available options are: 11 for DHT11; 22 for DHT22; 2302 for AM2302; 1820 for DS1 {{ _('Active Low') }} +
+ +
- +
@@ -206,4 +231,27 @@ Available options are: 11 for DHT11; 22 for DHT22; 2302 for AM2302; 1820 for DS1 - \ No newline at end of file +
+ +
+ + +

{{ _('Debug / Other') }}

+
+
+
+ +
+
+
+
+ +
+
+
diff --git a/octoprint_enclosure/templates/enclosure_tab.jinja2 b/octoprint_enclosure/templates/enclosure_tab.jinja2 index 559ff7f..6f46508 100644 --- a/octoprint_enclosure/templates/enclosure_tab.jinja2 +++ b/octoprint_enclosure/templates/enclosure_tab.jinja2 @@ -11,7 +11,8 @@
- °C + °C + °F
+

- +

- +

- +
- - - - - - - - - diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index a1dc463..0000000 --- a/requirements.txt +++ /dev/null @@ -1,9 +0,0 @@ -### -# This file is only here to make sure that something like -# -# pip install -e . -# -# works as expected. Requirements can be found in setup.py. -### - -. diff --git a/setup.py b/setup.py index 2b8afe4..64a3908 100644 --- a/setup.py +++ b/setup.py @@ -14,7 +14,7 @@ plugin_package = "octoprint_enclosure" plugin_name = "OctoPrint-Enclosure" # The plugin's version. Can be overwritten within OctoPrint's internal data via __plugin_version__ in the plugin module -plugin_version = "1.5" +plugin_version = "1.6" # The plugin's description. Can be overwritten within OctoPrint's internal data via __plugin_description__ in the plugin # module