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?