Replace async_track_time_interval with loop.call_later to avoid the useless time fetch and datetime object construction every time the listener fired since we always throw it away. Fetching time is a lot more expensive on some aarch64 system (ie Home Assistant Blue) because they cannot use VDSO due to arm errata.
In most cases, this is the second most frequent call listener after the update coordinator which already uses a similar scheduling design to avoid this problem.
Type of change
[ ] Dependency upgrade
[ ] Bugfix (non-breaking change which fixes an issue)
[ ] New integration (thank you!)
[ ] New feature (which adds functionality to an existing integration)
[ ] Deprecation (breaking change to happen in the future)
[ ] Breaking change (fix/feature causing existing functionality to break)
[x] Code quality improvements to existing code or addition of tests
Additional information
This PR fixes or closes issue: fixes #
This PR is related to issue:
Link to documentation pull request:
Checklist
[x] The code change is tested and works locally.
[ ] Local tests pass. Your PR cannot be merged unless tests pass
Proposed change
Replace
async_track_time_interval
withloop.call_later
to avoid the useless time fetch and datetime object construction every time the listener fired since we always throw it away. Fetching time is a lot more expensive on some aarch64 system (ie Home Assistant Blue) because they cannot use VDSO due to arm errata.In most cases, this is the second most frequent call listener after the update coordinator which already uses a similar scheduling design to avoid this problem.
Type of change
Additional information
Checklist
ruff format homeassistant tests
)If user exposed functionality or configuration variables are added/changed:
If the code communicates with devices, web services, or third-party tools:
Updated and included derived files by running:
python3 -m script.hassfest
.requirements_all.txt
.Updated by running
python3 -m script.gen_requirements_all
..coveragerc
.To help with the load of incoming pull requests: