diff --git a/homeassistant/components/automation/time.py b/homeassistant/components/automation/time.py index 922b6b8287e8bad9c5775bd07a41f0ebf794d185..0f0e2fe38dd19b0b111709826a9a8756af2d997b 100644 --- a/homeassistant/components/automation/time.py +++ b/homeassistant/components/automation/time.py @@ -19,20 +19,27 @@ CONF_WEEKDAY = "weekday" WEEKDAYS = ['mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun'] +_LOGGER = logging.getLogger(__name__) + def trigger(hass, config, action): """ Listen for state changes based on `config`. """ - hours = convert(config.get(CONF_HOURS), int) - minutes = convert(config.get(CONF_MINUTES), int) - seconds = convert(config.get(CONF_SECONDS), int) - if CONF_AFTER in config: after = dt_util.parse_time_str(config[CONF_AFTER]) if after is None: - logging.getLogger(__name__).error( + _LOGGER.error( 'Received invalid after value: %s', config[CONF_AFTER]) return False hours, minutes, seconds = after.hour, after.minute, after.second + elif CONF_HOURS in config or CONF_MINUTES in config \ + or CONF_SECONDS in config: + hours = convert(config.get(CONF_HOURS), int) + minutes = convert(config.get(CONF_MINUTES), int) + seconds = convert(config.get(CONF_SECONDS), int) + else: + _LOGGER.error('One of %s, %s, %s OR %s needs to be specified', + CONF_HOURS, CONF_MINUTES, CONF_SECONDS, CONF_AFTER) + return False def time_automation_listener(now): """ Listens for time changes and calls action. """