Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Expose polling interval as a sensor #948

Merged
merged 5 commits into from
Apr 24, 2024
Merged

Conversation

ddaddy
Copy link
Contributor

@ddaddy ddaddy commented Apr 24, 2024

Exposes the polling interval as a sensor as requested in #946

@ddaddy
Copy link
Contributor Author

ddaddy commented Apr 24, 2024

It seems the pre-commit is throwing Fatal Errors

@alandtse alandtse merged commit d5040ac into alandtse:dev Apr 24, 2024
4 of 5 checks passed
bdraco added a commit to bdraco/tesla that referenced this pull request Apr 26, 2024
alandtse#948 made me realize that the car data was being polled far less
frequently than I thought as the underlying library was caching, but
every time the coordinator fired, it would still callback all the listeners
and write the state of all the entities which meant we ended up writing
state every 10 seconds even if nothing has changed.

Since the data the coordinator returns can be compared with __eq__, enabling
always_update=False will check if the data has changed and only fire
the listeners if it has. This avoids 1000s of entity writes
per minute which was the bulk of the state writes on my HA instance
bdraco added a commit to bdraco/tesla that referenced this pull request Apr 26, 2024
alandtse#948 made me realize that the car data was being polled far less frequently than I thought as the underlying library was caching, but every time the coordinator fired, it would still callback all the listeners and write the state of all the entities which meant we ended up writing state every 10 seconds even if nothing has changed.

Keep track of when the controller was last updated in each entity and if it has not changed, we skip
the state write.

This reduced the number of calls to `async_write_ha_state` by 62% on my production HA instance!
alandtse pushed a commit that referenced this pull request Apr 26, 2024
* perf: avoid writing state when the controller did not actually update

#948 made me realize that the car data was being polled far less frequently than I thought as the underlying library was caching, but every time the coordinator fired, it would still callback all the listeners and write the state of all the entities which meant we ended up writing state every 10 seconds even if nothing has changed.

Keep track of when the controller was last updated in each entity and if it has not changed, we skip
the state write.

This reduced the number of calls to `async_write_ha_state` by 62% on my production HA instance!

* fix async_added_to_hass was being overridden and forgot to remove in pr
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants