-
Notifications
You must be signed in to change notification settings - Fork 2
Skip using _energy_log_records_save_to_cache() #305
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
Closed
Closed
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
💡 Verification agent
🧩 Analysis chain
Regression risk: removing incremental cache save leaves single-missing-address path unsaved
Now that cache persistence is centralized outside energy_log_update, the energy_update branch where exactly one missing address is handled returns early (after calling energy_log_update) without scheduling the background task and without persisting. If the process restarts before another persistence point (rollover, bulk retrieval, unload), those newly imported logs won’t be on disk.
Fix: persist before returning in the single-missing-address branch of energy_update.
Outside the selected range, adjust around Lines 423-433:
if len(missing_addresses) == 1: result, _ = await self.energy_log_update(missing_addresses[0]) if result: + if self._cache_enabled: + # Persist immediately when resolving a single missing address + await self._energy_log_records_save_to_cache() + await self.save_cache() await self.power_update() _LOGGER.debug( "async_energy_update for %s | single energy log is missing | %s", self._mac_in_str, missing_addresses, ) return self._energy_counters.energy_statisticsVerification script: ensure energy_log_update isn’t called from other places that now need explicit persistence.
🏁 Script executed:
Length of output: 4690
Add immediate cache persistence for single‐missing‐address branch
In the
async_energy_updatemethod, when exactly one missing address is handled, we callenergy_log_updateand then return without persisting the cache. If the process exits before the next bulk‐save (rollover, multi‐fetch, or unload), those newly imported logs will be lost.• File: plugwise_usb/nodes/circle.py
• Location: around line 423 in
async_energy_updateSuggested diff:
This ensures that as soon as a solitary missing log is fetched, it’s written to disk.
🤖 Prompt for AI Agents