Decouple initial refreshes in setup for Environment Canada #64946
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.
Proposed change
When the integration is being setup and if one of the coordinators is down (most often see radar not available) then the entire integration is unavailable, instead of just the one coordinator (of the three) that is down.
Type of change
Additional information
There are two "parts" to this PR. The first bit is decoupling the
DataUpdateCoordinator
initial refreshes. The second bit is to fix all the places in the entities that break because the initial refresh of the data failed. Most of those are pretty straight forward. The only one I want to highlight is that theunique_id
for sensor is initialized from a different data source -- theunique_id
s have not changed.Big thank you to @thecode who helped me understand the options for how this is fixed.
We considered two approaches for this change. The approach that can be seen in the first commit in this PR was discarded as entities would show with unknown values when their corresponding
DataUpdateCoordinator
fails. The approach taken in the final PR show entities as Unavailable when their correspondingDataUpdateCoordinator
fails.Checklist
black --fast 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
.The integration reached or maintains the following Integration Quality Scale:
To help with the load of incoming pull requests: