diff --git a/octoprint_enclosure/__init__.py b/octoprint_enclosure/__init__.py index 53c9dc0..0614e13 100644 --- a/octoprint_enclosure/__init__.py +++ b/octoprint_enclosure/__init__.py @@ -461,7 +461,10 @@ class EnclosurePlugin(octoprint.plugin.StartupPlugin, ((rpi_input['edge']=='fall') ^ GPIO.input(self.toInt(rpi_input['gpioPin']))): for rpi_output in self.rpi_outputs: if self.toInt(rpi_input['controlledIO']) == self.toInt(rpi_output['gpioPin']) and rpi_output['outputType']=='regular': - val = GPIO.LOW if rpi_input['setControlledIO']=='low' else GPIO.HIGH + if rpi_input['setControlledIO']=='toggle': + val = GPIO.LOW if GPIO.input(self.toInt(rpi_output['gpioPin']))==GPIO.HIGH else GPIO.HIGH + else: + val = GPIO.LOW if rpi_input['setControlledIO']=='low' else GPIO.HIGH self.writeGPIO(self.toInt(rpi_output['gpioPin']),val) for notification in self.notifications: if notification['gpioAction']: diff --git a/octoprint_enclosure/templates/enclosure_settings.jinja2 b/octoprint_enclosure/templates/enclosure_settings.jinja2 index 1b75f9a..60c6446 100644 --- a/octoprint_enclosure/templates/enclosure_settings.jinja2 +++ b/octoprint_enclosure/templates/enclosure_settings.jinja2 @@ -375,6 +375,7 @@ When the event happen, you want to turn the controlled IO HIGH or LOW?