From 09010c6743d2ec4ebc6e7a785e5539c48d8060d7 Mon Sep 17 00:00:00 2001
From: Ellis Percival <flyte@failcode.co.uk>
Date: Wed, 3 Apr 2019 21:35:30 +0100
Subject: [PATCH] Just allow strings and ints for pins.

---
 config.schema.yml        | 10 ++++++----
 pi_mqtt_gpio/__init__.py | 10 ++++++----
 pi_mqtt_gpio/server.py   | 13 -------------
 3 files changed, 12 insertions(+), 21 deletions(-)

diff --git a/config.schema.yml b/config.schema.yml
index 6fa3531..133374e 100644
--- a/config.schema.yml
+++ b/config.schema.yml
@@ -148,10 +148,11 @@ digital_inputs:
         required: yes
         empty: no
       pin:
-        type: string
+        type:
+          - string
+          - integer
         required: yes
         empty: no
-        coerce: int_if_possible
       on_payload:
         type: string
         required: yes
@@ -187,10 +188,11 @@ digital_outputs:
         type: string
         required: yes
       pin:
-        type: string
+        type:
+          - string
+          - integer
         required: yes
         empty: no
-        coerce: int_if_possible
       on_payload:
         type: string
         required: no
diff --git a/pi_mqtt_gpio/__init__.py b/pi_mqtt_gpio/__init__.py
index d3a4def..65cc2cb 100644
--- a/pi_mqtt_gpio/__init__.py
+++ b/pi_mqtt_gpio/__init__.py
@@ -151,10 +151,11 @@ digital_inputs:
         required: yes
         empty: no
       pin:
-        type: string
+        type:
+          - string
+          - integer
         required: yes
         empty: no
-        coerce: int_if_possible
       on_payload:
         type: string
         required: yes
@@ -190,10 +191,11 @@ digital_outputs:
         type: string
         required: yes
       pin:
-        type: string
+        type:
+          - string
+          - integer
         required: yes
         empty: no
-        coerce: int_if_possible
       on_payload:
         type: string
         required: no
diff --git a/pi_mqtt_gpio/server.py b/pi_mqtt_gpio/server.py
index e3777f9..37dc166 100644
--- a/pi_mqtt_gpio/server.py
+++ b/pi_mqtt_gpio/server.py
@@ -87,19 +87,6 @@ class ConfigValidator(cerberus.Validator):
         """
         return str(value)
 
-    @staticmethod
-    def _normalize_coerce_int_if_possible(value):
-        """
-        Convert value to integer if possible.
-        :param value: Value to convert
-        :return: Value represented as an int if possible, else string.
-        :rtype: str or int
-        """
-        try:
-            return int(value)
-        except ValueError:
-            return value
-
 
 def on_log(client, userdata, level, buf):
     """
-- 
GitLab