-
-
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 mobile_app cloudhook creation #107068
Conversation
Hey there @home-assistant/core, mind taking a look at this pull request as it has been labeled with an integration ( Code owner commandsCode owners of
|
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.
Looks good, but consider renaming the create-function
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.
Nice!
…to v2024.1.1 (#290) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [ghcr.io/home-assistant/home-assistant](https://www.home-assistant.io/) ([source](https://github.com/home-assistant/core)) | patch | `2024.1.0` -> `2024.1.1` | --- ### Release Notes <details> <summary>home-assistant/core (ghcr.io/home-assistant/home-assistant)</summary> ### [`v2024.1.1`](https://github.com/home-assistant/core/releases/tag/2024.1.1) [Compare Source](home-assistant/core@2024.1.0...2024.1.1) - Enable strict typing for airthings_ble ([@​cdce8p] - [#​106815]) ([airthings_ble docs]) - Fix qBittorrent torrent count when empty ([@​finder39] - [#​106903]) ([qbittorrent docs]) - Bump dropmqttapi to 1.0.2 ([@​pfrazer] - [#​106978]) ([drop_connect docs]) (dependency) - bump openwebifpy to 4.0.3 ([@​autinerd] - [#​106593]) ([enigma2 docs]) (dependency) - Close stale connections (Airthings BLE) ([@​LaStrada] - [#​106748]) ([airthings_ble docs]) - Bump openwebifpy to 4.0.4 ([@​autinerd] - [#​107000]) ([enigma2 docs]) (dependency) - Get Shelly RPC device `gen` from config entry data ([@​bieniu] - [#​107019]) ([shelly docs]) - Fix missing backwards compatiblity layer for humidifier supported_features ([@​bdraco] - [#​107026]) ([humidifier docs]) - Use async_register in streamlabswater ([@​joostlek] - [#​107060]) ([streamlabswater docs]) - Fix data access in streamlabs water ([@​joostlek] - [#​107062]) ([streamlabswater docs]) - Fix mobile_app cloudhook creation ([@​edenhaus] - [#​107068]) ([mobile_app docs]) - Deduplicate handling of duplicated constants ([@​emontnemery] - [#​107074]) - Fix missing backwards compatibility layer for water_heater supported_features ([@​bdraco] - [#​107091]) ([water_heater docs]) - Bump habluetooth to 2.0.2 ([@​bdraco] - [#​107097]) ([bluetooth docs]) (dependency) - Include deprecated constants in wildcard imports ([@​emontnemery] - [#​107114]) - Update frontend to [`2024010`](https://github.com/home-assistant/core/commit/20240104).0 ([@​bramkragten] - [#​107155]) ([frontend docs]) - Bump Orvibo to 1.1.2 ([@​emericklaw] - [#​107162]) ([orvibo docs]) (dependency) - Bump aiohomekit to 3.1.2 ([@​bdraco] - [#​107177]) ([homekit_controller docs]) (dependency) - Bump to PyTado 0.17.3 ([@​erwindouna] - [#​107181]) ([tado docs]) (dependency) - Fix switch states in AVM FRITZ!Box Tools ([@​mib1185] - [#​107183]) ([fritz docs]) - Hotfix cache logic bug in Tessie ([@​Bre77] - [#​107187]) ([tessie docs]) - Disable IPv6 in the opower integration to fix AEP utilities ([@​tronikos] - [#​107203]) ([opower docs]) - Fix entity property cache creation arguments ([@​ppetru] - [#​107221]) - Use supported_features_compat in update.install service ([@​ludeeus] - [#​107224]) ([update docs]) - Bump zwave-js-server-python to 0.55.3 ([@​raman325] - [#​107225]) ([zwave_js docs]) (dependency) [#​106593]: home-assistant/core#106593 [#​106748]: home-assistant/core#106748 [#​106815]: home-assistant/core#106815 [#​106903]: home-assistant/core#106903 [#​106970]: home-assistant/core#106970 [#​106978]: home-assistant/core#106978 [#​107000]: home-assistant/core#107000 [#​107019]: home-assistant/core#107019 [#​107026]: home-assistant/core#107026 [#​107060]: home-assistant/core#107060 [#​107062]: home-assistant/core#107062 [#​107068]: home-assistant/core#107068 [#​107074]: home-assistant/core#107074 [#​107091]: home-assistant/core#107091 [#​107097]: home-assistant/core#107097 [#​107114]: home-assistant/core#107114 [#​107155]: home-assistant/core#107155 [#​107162]: home-assistant/core#107162 [#​107177]: home-assistant/core#107177 [#​107181]: home-assistant/core#107181 [#​107183]: home-assistant/core#107183 [#​107187]: home-assistant/core#107187 [#​107203]: home-assistant/core#107203 [#​107221]: home-assistant/core#107221 [#​107224]: home-assistant/core#107224 [#​107225]: home-assistant/core#107225 [@​Bre77]: https://github.com/Bre77 [@​LaStrada]: https://github.com/LaStrada [@​autinerd]: https://github.com/autinerd [@​bdraco]: https://github.com/bdraco [@​bieniu]: https://github.com/bieniu [@​bramkragten]: https://github.com/bramkragten [@​cdce8p]: https://github.com/cdce8p [@​edenhaus]: https://github.com/edenhaus [@​emericklaw]: https://github.com/emericklaw [@​emontnemery]: https://github.com/emontnemery [@​erwindouna]: https://github.com/erwindouna [@​finder39]: https://github.com/finder39 [@​frenck]: https://github.com/frenck [@​joostlek]: https://github.com/joostlek [@​ludeeus]: https://github.com/ludeeus [@​mib1185]: https://github.com/mib1185 [@​pfrazer]: https://github.com/pfrazer [@​ppetru]: https://github.com/ppetru [@​raman325]: https://github.com/raman325 [@​tronikos]: https://github.com/tronikos [airthings_ble docs]: https://www.home-assistant.io/integrations/airthings_ble/ [bluetooth docs]: https://www.home-assistant.io/integrations/bluetooth/ [drop_connect docs]: https://www.home-assistant.io/integrations/drop_connect/ [enigma2 docs]: https://www.home-assistant.io/integrations/enigma2/ [fritz docs]: https://www.home-assistant.io/integrations/fritz/ [frontend docs]: https://www.home-assistant.io/integrations/frontend/ [homekit_controller docs]: https://www.home-assistant.io/integrations/homekit_controller/ [humidifier docs]: https://www.home-assistant.io/integrations/humidifier/ [mobile_app docs]: https://www.home-assistant.io/integrations/mobile_app/ [opower docs]: https://www.home-assistant.io/integrations/opower/ [orvibo docs]: https://www.home-assistant.io/integrations/orvibo/ [qbittorrent docs]: https://www.home-assistant.io/integrations/qbittorrent/ [shelly docs]: https://www.home-assistant.io/integrations/shelly/ [streamlabswater docs]: https://www.home-assistant.io/integrations/streamlabswater/ [tado docs]: https://www.home-assistant.io/integrations/tado/ [tessie docs]: https://www.home-assistant.io/integrations/tessie/ [update docs]: https://www.home-assistant.io/integrations/update/ [water_heater docs]: https://www.home-assistant.io/integrations/water_heater/ [zwave_js docs]: https://www.home-assistant.io/integrations/zwave_js/ </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMjMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEyMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9--> Reviewed-on: https://git.home/nrdufour/home-ops/pulls/290 Co-authored-by: Renovate <renovate@ptinem.io> Co-committed-by: Renovate <renovate@ptinem.io>
Breaking change
Proposed change
During a debug session with @ludeeus, we found that for some devices a cloudhook already exists but was not saved in the mobile_app config entry. We couldn't identify when they were created (at least on my instance) but they were created before HA 2024.1.
Other integrations like withings are always deleting the cloudhook before creating:
core/homeassistant/components/withings/__init__.py
Lines 334 to 340 in 896ca8c
Deleting and then creating returns a different (new) cloudhook url. In the mobile app use case, we don't want to do that as maybe the cloud hook is used by the app even when it was not correctly stored in the config entry.
To reuse already created cloud hooks
async_get_or_create_cloudhook
is added, which returns the cloudhook_url if a cloudhook for the passed webhook_id exists. Otherwise, a cloudhook is created.We think that also other integrations like withings can benefit from the new function.
In addition we guard the cloudhook creation with a
asyncio.Lock
to prevent parallel execution.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: