From 5f3932c7b3ec2f83a3367da73e819b85eb2fc78d Mon Sep 17 00:00:00 2001
From: Ellis Percival <flyte@failcode.co.uk>
Date: Mon, 27 Nov 2017 09:20:47 +0000
Subject: [PATCH] Add option to set retain flag on input value publishes.
 Closes #27

---
 config.schema.yml      | 4 ++++
 pi_mqtt_gpio/server.py | 4 +++-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/config.schema.yml b/config.schema.yml
index 1671368..4dca87c 100644
--- a/config.schema.yml
+++ b/config.schema.yml
@@ -107,6 +107,10 @@ digital_inputs:
         type: boolean
         required: no
         default: no
+      retain:
+        type: boolean
+        required: no
+        default: no
 
 digital_outputs:
   type: list
diff --git a/pi_mqtt_gpio/server.py b/pi_mqtt_gpio/server.py
index 77fa9ed..aacd322 100644
--- a/pi_mqtt_gpio/server.py
+++ b/pi_mqtt_gpio/server.py
@@ -481,7 +481,9 @@ if __name__ == "__main__":
                             topic_prefix, INPUT_TOPIC, in_conf["name"]
                         ),
                         payload=(in_conf["on_payload"] if state
-                                 else in_conf["off_payload"]))
+                                 else in_conf["off_payload"]),
+                        retain=in_conf["retain"]
+                    )
                     LAST_STATES[in_conf["name"]] = state
             scheduler.loop()
             sleep(0.01)
-- 
GitLab