From 7a393c1a3a0697c0978f7eb0dbaff0770bcbbc01 Mon Sep 17 00:00:00 2001 From: Otto Winter Date: Fri, 1 Jun 2018 22:58:23 +0200 Subject: [PATCH] Fix template/switch cover example. Fixes #27 --- esphomeyaml/automation.py | 4 ++-- esphomeyaml/components/cover/template.py | 2 +- esphomeyaml/components/sensor/__init__.py | 2 +- esphomeyaml/components/switch/template.py | 2 +- esphomeyaml/config_validation.py | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/esphomeyaml/automation.py b/esphomeyaml/automation.py index 9dd9da14a6..c7de26217d 100644 --- a/esphomeyaml/automation.py +++ b/esphomeyaml/automation.py @@ -100,7 +100,7 @@ ACTIONS_SCHEMA = vol.All(cv.ensure_list, [vol.All({ vol.Optional(CONF_SPEED): cv.templatable(fan.validate_fan_speed), }), vol.Optional(CONF_LAMBDA): cv.lambda_, -}, cv.has_at_exactly_one_key(*ACTION_KEYS))]) +}, cv.has_exactly_one_key(*ACTION_KEYS))]) # pylint: disable=invalid-name DelayAction = esphomelib_ns.DelayAction @@ -123,7 +123,7 @@ CONDITIONS_SCHEMA = vol.All(cv.ensure_list, [vol.All({ vol.Optional(CONF_BELOW): vol.Coerce(float), }), cv.has_at_least_one_key(CONF_ABOVE, CONF_BELOW)), vol.Optional(CONF_LAMBDA): cv.lambda_, -}), cv.has_at_exactly_one_key(*CONDITION_KEYS)]) +}), cv.has_exactly_one_key(*CONDITION_KEYS)]) # pylint: disable=invalid-name AndCondition = esphomelib_ns.AndCondition diff --git a/esphomeyaml/components/cover/template.py b/esphomeyaml/components/cover/template.py index 9b785e45cc..69009f3d58 100644 --- a/esphomeyaml/components/cover/template.py +++ b/esphomeyaml/components/cover/template.py @@ -14,7 +14,7 @@ PLATFORM_SCHEMA = vol.All(cover.PLATFORM_SCHEMA.extend({ vol.Optional(CONF_OPEN_ACTION): automation.ACTIONS_SCHEMA, vol.Optional(CONF_CLOSE_ACTION): automation.ACTIONS_SCHEMA, vol.Optional(CONF_STOP_ACTION): automation.ACTIONS_SCHEMA, -}).extend(cover.COVER_SCHEMA.schema), cv.has_at_exactly_one_key(CONF_LAMBDA, CONF_OPTIMISTIC)) +}).extend(cover.COVER_SCHEMA.schema), cv.has_at_least_one_key(CONF_LAMBDA, CONF_OPTIMISTIC)) MakeTemplateCover = Application.MakeTemplateCover diff --git a/esphomeyaml/components/sensor/__init__.py b/esphomeyaml/components/sensor/__init__.py index 976ca83eb3..5ae57f3d76 100644 --- a/esphomeyaml/components/sensor/__init__.py +++ b/esphomeyaml/components/sensor/__init__.py @@ -44,7 +44,7 @@ FILTERS_SCHEMA = vol.All(cv.ensure_list, [vol.All({ vol.Optional(CONF_HEARTBEAT): cv.positive_time_period_milliseconds, vol.Optional(CONF_DEBOUNCE): cv.positive_time_period_milliseconds, vol.Optional(CONF_OR): validate_recursive_filter, -}, cv.has_at_exactly_one_key(*FILTER_KEYS))]) +}, cv.has_exactly_one_key(*FILTER_KEYS))]) SENSOR_SCHEMA = cv.MQTT_COMPONENT_SCHEMA.extend({ cv.GenerateID('mqtt_sensor', CONF_MQTT_ID): cv.register_variable_id, diff --git a/esphomeyaml/components/switch/template.py b/esphomeyaml/components/switch/template.py index 47a635cb74..9286b528d4 100644 --- a/esphomeyaml/components/switch/template.py +++ b/esphomeyaml/components/switch/template.py @@ -13,7 +13,7 @@ PLATFORM_SCHEMA = vol.All(switch.PLATFORM_SCHEMA.extend({ vol.Optional(CONF_OPTIMISTIC): cv.boolean, vol.Optional(CONF_TURN_OFF_ACTION): automation.ACTIONS_SCHEMA, vol.Optional(CONF_TURN_ON_ACTION): automation.ACTIONS_SCHEMA, -}).extend(switch.SWITCH_SCHEMA.schema), cv.has_at_exactly_one_key(CONF_LAMBDA, CONF_OPTIMISTIC)) +}).extend(switch.SWITCH_SCHEMA.schema), cv.has_at_least_one_key(CONF_LAMBDA, CONF_OPTIMISTIC)) MakeTemplateSwitch = Application.MakeTemplateSwitch diff --git a/esphomeyaml/config_validation.py b/esphomeyaml/config_validation.py index 95298a69fb..6e2fd2276f 100644 --- a/esphomeyaml/config_validation.py +++ b/esphomeyaml/config_validation.py @@ -194,7 +194,7 @@ def has_at_least_one_key(*keys): return validate -def has_at_exactly_one_key(*keys): +def has_exactly_one_key(*keys): def validate(obj): if not isinstance(obj, dict): raise vol.Invalid('expected dictionary')