diff --git a/homeassistant/util/dt.py b/homeassistant/util/dt.py index d16e02913b5..3b202dad1cb 100644 --- a/homeassistant/util/dt.py +++ b/homeassistant/util/dt.py @@ -213,9 +213,13 @@ def parse_time_expression(parameter: Any, min_value: int, max_value: int) -> Lis """Parse the time expression part and return a list of times to match.""" if parameter is None or parameter == MATCH_ALL: res = list(range(min_value, max_value + 1)) - elif isinstance(parameter, str) and parameter.startswith("/"): - parameter = int(parameter[1:]) - res = [x for x in range(min_value, max_value + 1) if x % parameter == 0] + elif isinstance(parameter, str): + if parameter.startswith("/"): + parameter = int(parameter[1:]) + res = [x for x in range(min_value, max_value + 1) if x % parameter == 0] + else: + res = [int(parameter)] + elif not hasattr(parameter, "__iter__"): res = [int(parameter)] else: diff --git a/tests/util/test_dt.py b/tests/util/test_dt.py index 03d4ee53cbe..7c4ca77fd79 100644 --- a/tests/util/test_dt.py +++ b/tests/util/test_dt.py @@ -187,6 +187,7 @@ def test_parse_time_expression(): assert [x for x in range(24)] == dt_util.parse_time_expression("*", 0, 23) assert [42] == dt_util.parse_time_expression(42, 0, 59) + assert [42] == dt_util.parse_time_expression("42", 0, 59) with pytest.raises(ValueError): dt_util.parse_time_expression(61, 0, 60)