Fully convert async_track_time_interval to use HassJob (#41513)
The callback type for interval_listener was being determined each time the interval hit. This was missed in the original conversion.pull/41535/head
parent
a8a2109cef
commit
3a863c4a0f
|
@ -1095,6 +1095,7 @@ def async_track_time_interval(
|
||||||
) -> CALLBACK_TYPE:
|
) -> CALLBACK_TYPE:
|
||||||
"""Add a listener that fires repetitively at every timedelta interval."""
|
"""Add a listener that fires repetitively at every timedelta interval."""
|
||||||
remove = None
|
remove = None
|
||||||
|
interval_listener_job = None
|
||||||
|
|
||||||
job = HassJob(action)
|
job = HassJob(action)
|
||||||
|
|
||||||
|
@ -1106,14 +1107,19 @@ def async_track_time_interval(
|
||||||
def interval_listener(now: datetime) -> None:
|
def interval_listener(now: datetime) -> None:
|
||||||
"""Handle elapsed intervals."""
|
"""Handle elapsed intervals."""
|
||||||
nonlocal remove
|
nonlocal remove
|
||||||
remove = async_track_point_in_utc_time(hass, interval_listener, next_interval())
|
nonlocal interval_listener_job
|
||||||
|
|
||||||
|
remove = async_track_point_in_utc_time(
|
||||||
|
hass, interval_listener_job, next_interval() # type: ignore
|
||||||
|
)
|
||||||
hass.async_run_hass_job(job, now)
|
hass.async_run_hass_job(job, now)
|
||||||
|
|
||||||
remove = async_track_point_in_utc_time(hass, interval_listener, next_interval())
|
interval_listener_job = HassJob(interval_listener)
|
||||||
|
remove = async_track_point_in_utc_time(hass, interval_listener_job, next_interval())
|
||||||
|
|
||||||
def remove_listener() -> None:
|
def remove_listener() -> None:
|
||||||
"""Remove interval listener."""
|
"""Remove interval listener."""
|
||||||
remove()
|
remove() # type: ignore
|
||||||
|
|
||||||
return remove_listener
|
return remove_listener
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue