diff --git a/homeassistant/components/knx/__init__.py b/homeassistant/components/knx/__init__.py index 99198fbaa99..e05c18e5d5c 100644 --- a/homeassistant/components/knx/__init__.py +++ b/homeassistant/components/knx/__init__.py @@ -49,6 +49,7 @@ from .schema import ( WeatherSchema, ga_validator, ia_validator, + sensor_type_validator, ) _LOGGER = logging.getLogger(__name__) @@ -156,7 +157,7 @@ SERVICE_KNX_SEND_SCHEMA = vol.Any( [ga_validator], ), vol.Required(SERVICE_KNX_ATTR_PAYLOAD): cv.match_all, - vol.Required(SERVICE_KNX_ATTR_TYPE): vol.Any(int, float, str), + vol.Required(SERVICE_KNX_ATTR_TYPE): sensor_type_validator, } ), vol.Schema( diff --git a/homeassistant/components/knx/schema.py b/homeassistant/components/knx/schema.py index c57539b501f..376e86cf90c 100644 --- a/homeassistant/components/knx/schema.py +++ b/homeassistant/components/knx/schema.py @@ -47,6 +47,8 @@ sync_state_validator = vol.Any( cv.matches_regex(r"^(init|expire|every)( \d*)?$"), ) +sensor_type_validator = vol.Any(int, str) + ############## # CONNECTION @@ -255,7 +257,7 @@ class ExposeSchema: SCHEMA = vol.Schema( { - vol.Required(CONF_KNX_EXPOSE_TYPE): vol.Any(int, float, str), + vol.Required(CONF_KNX_EXPOSE_TYPE): sensor_type_validator, vol.Required(KNX_ADDRESS): ga_validator, vol.Optional(CONF_ENTITY_ID): cv.entity_id, vol.Optional(CONF_KNX_EXPOSE_ATTRIBUTE): cv.string, @@ -417,7 +419,7 @@ class SensorSchema: vol.Optional(CONF_SYNC_STATE, default=True): sync_state_validator, vol.Optional(CONF_ALWAYS_CALLBACK, default=False): cv.boolean, vol.Required(CONF_STATE_ADDRESS): ga_validator, - vol.Required(CONF_TYPE): vol.Any(int, float, str), + vol.Required(CONF_TYPE): sensor_type_validator, } )