diff --git a/config.schema.yml b/config.schema.yml
index 8eec9d4dc8625ef884e9c94b7896d4e4306f3d35..5ebb7f1fd8519c75e02faf07e19d23d6ba85ea0e 100644
--- a/config.schema.yml
+++ b/config.schema.yml
@@ -128,4 +128,8 @@ digital_outputs:
       off_payload:
         type: string
         required: no
-        empty: no
\ No newline at end of file
+        empty: no
+      inverted:
+        type: boolean
+        required: no
+        default: no
\ No newline at end of file
diff --git a/pi_mqtt_gpio/server.py b/pi_mqtt_gpio/server.py
index 095657dc338852962f7bef40ccdc72a8f758a540..5980bc9370cee7766abde701941bbae78c6dd13e 100644
--- a/pi_mqtt_gpio/server.py
+++ b/pi_mqtt_gpio/server.py
@@ -131,12 +131,13 @@ def set_pin(output_config, value):
     :rtype: NoneType
     """
     gpio = GPIO_MODULES[output_config["module"]]
-    gpio.set_pin(output_config["pin"], value)
+    set_value = not value if output_config["inverted"] else value
+    gpio.set_pin(output_config["pin"], set_value)
     _LOG.info(
         "Set %r output %r to %r",
         output_config["module"],
         output_config["name"],
-        value)
+        set_value)
     payload = output_config["on_payload" if value else "off_payload"]
     client.publish(
         "%s/%s/%s" % (topic_prefix, OUTPUT_TOPIC, output_config["name"]),