From c26a8b8718f5fa3f4c397982d5d8de363f95a77b Mon Sep 17 00:00:00 2001 From: Otto Winter Date: Sun, 2 Jun 2019 15:27:32 +0200 Subject: [PATCH] Allow old remote_transmitter repeat schema (#601) Fixes https://github.com/esphome/issues/issues/389 --- esphome/components/remote_base/__init__.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/esphome/components/remote_base/__init__.py b/esphome/components/remote_base/__init__.py index 8b6f5b1623..fa9425c434 100644 --- a/esphome/components/remote_base/__init__.py +++ b/esphome/components/remote_base/__init__.py @@ -83,14 +83,20 @@ def register_dumper(name, type): return decorator -def register_action(name, type_, schema): - validator = templatize(schema).extend({ - cv.GenerateID(CONF_TRANSMITTER_ID): cv.use_id(RemoteTransmitterBase), - cv.Optional(CONF_REPEAT): cv.Schema({ +def validate_repeat(value): + if isinstance(value, dict): + return cv.Schema({ cv.Required(CONF_TIMES): cv.templatable(cv.positive_int), cv.Optional(CONF_WAIT_TIME, default='10ms'): cv.templatable(cv.positive_time_period_milliseconds), - }), + })(value) + return validate_repeat({CONF_TIMES: value}) + + +def register_action(name, type_, schema): + validator = templatize(schema).extend({ + cv.GenerateID(CONF_TRANSMITTER_ID): cv.use_id(RemoteTransmitterBase), + cv.Optional(CONF_REPEAT): validate_repeat, }) registerer = automation.register_action('remote_transmitter.transmit_{}'.format(name), type_, validator)