Fix reload of AVM FRITZ!Tools when new connected device is detected #142430
+15
−22
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
Newly detected device trackers are disabled while adding to hass and gets enabled automatically if a device entry for the mac address gets registered or does already exists (eq. through another integration). This works perfectly fine for integration, which only creates device trackers, but no other entities for a tracked physical device.
The
fritz
integration does not only create device trackers, but also switches (to control the internet access) and buttons (to trigger wol via the Fritzbox router). So when a newly connected device is detected, the integration will create a new device tracker (which is disabled by the device tracker platform while adding to hass) and the other entities, which also register proper device entries and those will enable the device tracker. This causes the integration to be reloaded by the device registry, because of "disabled_by has been changed".With this PR we manually register the device-registry entries for newly detected devices before we trigger to add the new entities.
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
.To help with the load of incoming pull requests: