-
-
Notifications
You must be signed in to change notification settings - Fork 30.8k
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
Fix last_reported_timestamp not being updated when last_reported is changed #118341
Conversation
When a state is created, last_update is always the same as last_reported, and we only update it later if it changes so we can pre-set the cached property to avoid it being run when the recorder accesses it later.
@@ -2282,6 +2287,7 @@ def async_set( | |||
# mypy does not understand this is only possible if old_state is not None | |||
old_last_reported = old_state.last_reported # type: ignore[union-attr] | |||
old_state.last_reported = now # type: ignore[union-attr] | |||
old_state.last_reported_timestamp = timestamp # type: ignore[union-attr] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This was actually a bug, but it went unnoticed before because it worked the first time
…nit' into last_reported_is_always_same_init
@coderabbitai review |
WalkthroughThe recent changes in the Home Assistant core involve refining timestamp management within the Changes
Sequence Diagram(s) (Beta)sequenceDiagram
participant User
participant HomeAssistant as Home Assistant
participant Core
User->>HomeAssistant: Initialize Core
HomeAssistant->>Core: __init__ method
Core-->>HomeAssistant: Set initial timestamps
User->>HomeAssistant: Update state
HomeAssistant->>Core: async_set method
Core-->>HomeAssistant: Update last_reported and last_reported_timestamp
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (invoked as PR comments)
Additionally, you can add CodeRabbit Configration File (
|
Something is broken at github today. It keeps showing that I cancelled the test runs but I haven't |
And github just started over again running the PR.... |
doing another run in #118348 to verify this is a github issue |
* dev: (751 commits) Use runtime_data in ping (home-assistant#118332) Fix last_reported_timestamp not being updated when last_reported is changed (home-assistant#118341) Replace pop calls with del where the result is discarded in restore_state (home-assistant#118339) Improve websocket message coalescing to handle thundering herds better (home-assistant#118268) Add cache to more complex entity filters (home-assistant#118344) Reduce the intent response data sent to LLMs (home-assistant#118346) Small speed up to connecting dispatchers (home-assistant#118342) Tweak Assist LLM API prompt (home-assistant#118343) Add Conversation command to timers (home-assistant#118325) LLM Assist API to ignore intents if not needed for exposed entities or calling device (home-assistant#118283) Replace pop calls with del where the result is discarded in entity (home-assistant#118340) Replace pop calls with del where the result is discarded in mqtt (home-assistant#118338) Use del instead of pop in the entity platform remove (home-assistant#118337) Update the recommended model for Google Gen AI (home-assistant#118323) Fix source_change not triggering an update (home-assistant#118312) Several fixes for the Matter climate platform (home-assistant#118322) Use None default for traccar server battery level sensor (home-assistant#118324) [esphome] 100% voice assistant test coverage (home-assistant#118334) Mark sonos group update a background task (home-assistant#118333) Filter timers more when pausing/unpausing (home-assistant#118331) ...
* dev: (8244 commits) Update zwave_js WS APIs for provisioning (home-assistant#117400) Add OSO Energy binary sensors (home-assistant#117174) Add august open action (home-assistant#113795) Add smoke detector temperature to Yale Smart Alarm (home-assistant#116306) Don't report entities with invalid unique id when loading the entity registry (home-assistant#118290) Fix epic_games_store mystery game URL (home-assistant#118314) Use runtime_data in ping (home-assistant#118332) Fix last_reported_timestamp not being updated when last_reported is changed (home-assistant#118341) Replace pop calls with del where the result is discarded in restore_state (home-assistant#118339) Improve websocket message coalescing to handle thundering herds better (home-assistant#118268) Add cache to more complex entity filters (home-assistant#118344) Reduce the intent response data sent to LLMs (home-assistant#118346) Small speed up to connecting dispatchers (home-assistant#118342) Tweak Assist LLM API prompt (home-assistant#118343) Add Conversation command to timers (home-assistant#118325) LLM Assist API to ignore intents if not needed for exposed entities or calling device (home-assistant#118283) Replace pop calls with del where the result is discarded in entity (home-assistant#118340) Replace pop calls with del where the result is discarded in mqtt (home-assistant#118338) Use del instead of pop in the entity platform remove (home-assistant#118337) Update the recommended model for Google Gen AI (home-assistant#118323) ...
* dev: (1785 commits) Update zwave_js WS APIs for provisioning (home-assistant#117400) Add OSO Energy binary sensors (home-assistant#117174) Add august open action (home-assistant#113795) Add smoke detector temperature to Yale Smart Alarm (home-assistant#116306) Don't report entities with invalid unique id when loading the entity registry (home-assistant#118290) Fix epic_games_store mystery game URL (home-assistant#118314) Use runtime_data in ping (home-assistant#118332) Fix last_reported_timestamp not being updated when last_reported is changed (home-assistant#118341) Replace pop calls with del where the result is discarded in restore_state (home-assistant#118339) Improve websocket message coalescing to handle thundering herds better (home-assistant#118268) Add cache to more complex entity filters (home-assistant#118344) Reduce the intent response data sent to LLMs (home-assistant#118346) Small speed up to connecting dispatchers (home-assistant#118342) Tweak Assist LLM API prompt (home-assistant#118343) Add Conversation command to timers (home-assistant#118325) LLM Assist API to ignore intents if not needed for exposed entities or calling device (home-assistant#118283) Replace pop calls with del where the result is discarded in entity (home-assistant#118340) Replace pop calls with del where the result is discarded in mqtt (home-assistant#118338) Use del instead of pop in the entity platform remove (home-assistant#118337) Update the recommended model for Google Gen AI (home-assistant#118323) ...
Proposed change
When a state is created, last_update is always the same as last_reported, and we only update it later if it changes so we can pre-set the cached property to avoid it being run when the recorder accesses it later.
There was a bug here where if
last_reported_timestamp
had been called, and thanlast_reported
was updated,last_reported_timestamp
would report the cached value. This has been fixed.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: