Fix regression of the xiaomi_aqara config validation (#22435)

* Fix regression of the xiaomi_aqara config validation

* Make the key optional again

* Add base schema

* Remove the GW_MAC default
This commit is contained in:
Sebastian Muszynski 2019-03-29 21:41:13 +01:00 committed by Paulus Schoutsen
parent 6401920019
commit f46a8378b0

View file

@ -61,7 +61,7 @@ SERVICE_SCHEMA_REMOVE_DEVICE = vol.Schema({
}) })
GATEWAY_CONFIG_MAC_OPT = vol.Schema({ GATEWAY_CONFIG = vol.Schema({
vol.Optional(CONF_KEY): vol.Optional(CONF_KEY):
vol.All(cv.string, vol.Length(min=16, max=16)), vol.All(cv.string, vol.Length(min=16, max=16)),
vol.Optional(CONF_HOST): cv.string, vol.Optional(CONF_HOST): cv.string,
@ -69,12 +69,12 @@ GATEWAY_CONFIG_MAC_OPT = vol.Schema({
vol.Optional(CONF_DISABLE, default=False): cv.boolean, vol.Optional(CONF_DISABLE, default=False): cv.boolean,
}) })
GATEWAY_CONFIG_MAC_REQ = vol.Schema({ GATEWAY_CONFIG_MAC_OPTIONAL = GATEWAY_CONFIG.extend({
vol.Required(CONF_KEY): vol.Optional(CONF_MAC): GW_MAC,
vol.All(cv.string, vol.Length(min=16, max=16)), })
vol.Optional(CONF_HOST): cv.string,
vol.Optional(CONF_PORT, default=9898): cv.port, GATEWAY_CONFIG_MAC_REQUIRED = GATEWAY_CONFIG.extend({
vol.Optional(CONF_DISABLE, default=False): cv.boolean, vol.Required(CONF_MAC): GW_MAC,
}) })
@ -97,8 +97,8 @@ CONFIG_SCHEMA = vol.Schema({
DOMAIN: vol.Schema({ DOMAIN: vol.Schema({
vol.Optional(CONF_GATEWAYS, default={}): vol.Optional(CONF_GATEWAYS, default={}):
vol.All(cv.ensure_list, vol.Any( vol.All(cv.ensure_list, vol.Any(
vol.All([GATEWAY_CONFIG_MAC_OPT], vol.Length(max=1)), vol.All([GATEWAY_CONFIG_MAC_OPTIONAL], vol.Length(max=1)),
vol.All([GATEWAY_CONFIG_MAC_REQ], vol.Length(min=2)) vol.All([GATEWAY_CONFIG_MAC_REQUIRED], vol.Length(min=2))
), [_fix_conf_defaults]), ), [_fix_conf_defaults]),
vol.Optional(CONF_INTERFACE, default='any'): cv.string, vol.Optional(CONF_INTERFACE, default='any'): cv.string,
vol.Optional(CONF_DISCOVERY_RETRY, default=3): cv.positive_int vol.Optional(CONF_DISCOVERY_RETRY, default=3): cv.positive_int