From 18f27ed9300b765087c59d751d47d7833eda905a Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Wed, 28 Feb 2024 21:19:34 +0100 Subject: [PATCH 01/42] 2024.3: Beta release notes (#31584) * 2024.3: Beta release notes * Tiny fixes * Add script fields * Dont use heading as it messes with toc * Add new energy graph * update * Update 2024-03-06-release-20243.markdown --------- Co-authored-by: Paulus Schoutsen Co-authored-by: Paul Bottein Co-authored-by: Bram Kragten --- _config.yml | 6 +- .../_posts/2024-03-06-release-20243.markdown | 363 +++ source/changelogs/core-2024.3.markdown | 2364 +++++++++++++++++ source/images/blog/2024-03/social.png | Bin 0 -> 139931 bytes 4 files changed, 2730 insertions(+), 3 deletions(-) create mode 100644 source/_posts/2024-03-06-release-20243.markdown create mode 100644 source/changelogs/core-2024.3.markdown create mode 100644 source/images/blog/2024-03/social.png diff --git a/_config.yml b/_config.yml index 4b610b749b7..241824da44f 100644 --- a/_config.yml +++ b/_config.yml @@ -109,9 +109,9 @@ social: # Home Assistant release details current_major_version: 2024 -current_minor_version: 2 -current_patch_version: 5 -date_released: 2024-02-27 +current_minor_version: 3 +current_patch_version: 0 +date_released: 2024-03-06 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. diff --git a/source/_posts/2024-03-06-release-20243.markdown b/source/_posts/2024-03-06-release-20243.markdown new file mode 100644 index 00000000000..bd1c7ac17d2 --- /dev/null +++ b/source/_posts/2024-03-06-release-20243.markdown @@ -0,0 +1,363 @@ +--- +layout: post +title: "2024.3: Beta release notes" +description: "The beta release notes for Home Assistant 2024.3" +date: 2024-02-28 00:00:00 +date_formatted: "March 6, 2024" +author: Franck Nijhof +author_twitter: frenck +comments: true +categories: + - Release-Notes + - Core +og_image: /images/blog/2024-03/social.png +--- + + + + + +These are the beta release notes for Home Assistant Core 2024.2 (and is thus a +work in progress). + +If you encounter any issues with the beta release, please report them on GitHub: + +- Issues with integrations, automations and such (Core related):
+ +- Issues with the frontend/UI/dashboards:
+ +- Issues with the documentation:
+ + +Please be sure to include the beta version you are running in the issue +version field (not title), so we can classify your issue correctly. + +Issues introduced in the beta are processed with priority. + +--- + + + +Home Assistant Core 2024.3! 🎉 + +Thanks for helping out testing the beta! ❤️ + +Enjoy the (beta) release! + +../Frenck + + + +- [Dashboard sections view](#dashboard-sections-view) +- [Dungeons and Dragons](#dungeons-and-dragons) +- [Running script from your dashboard with user input](#running-script-from-your-dashboard-with-user-input) +- [New energy graph](#new-energy-graph) +- [New sentences for Assist](#new-sentences-for-assist) +- [Disabling the remotely enabling of Home Assistant Remote UI](#disabling-the-remotely-enabling-of-home-assistant-remote-ui) +- [Translating states in your templates](#translating-states-in-your-templates) +- [Other noteworthy changes](#other-noteworthy-changes) +- [New integrations](#new-integrations) +- [Integrations now available to set up from the UI](#integrations-now-available-to-set-up-from-the-ui) +- [Need help? Join the community!](#need-help-join-the-community) +- [Backward-incompatible changes](#backward-incompatible-changes) +- [All changes](#all-changes) + +Don't forget to [join our release party live stream on YouTube](https://www.youtube.com/watch?v=Jxup-fKFpfs) +6 March 2024, at 20:00 GMT / 12:00 PST / 21:00 CET! + + + +## Dashboard sections view + +A brand new, experimental, view has been added this release: Sections! + +Temporary image that needs replacement. + +## Dungeons and Dragons + +Lorem ipsum + +## Running script from your dashboard with user input + +Scripts in Home Assistant allow you to capture a sequence of actions and choices in a reusable way. Scripts are extra powerful because they can have input fields, which allow you to send in data for when the script runs. + +Script fields can be defined in the script editor and show up when you call the script in your automation. In this release, script fields will be available in the more info dialog when tapping on a script in the dashboard. This allows you to provide the input fields and run the script, unlocking a whole new dimension of possibilities. + + + +To accompany this new functionality, we've created two blueprints that you can use to add to your dashboard: + +**Broadcast message** + +This blueprint allows you to create a script that broadcasts a Text-to-Speech message to specific media players and asks the user for the message to broadcast. + +{% my blueprint_import badge blueprint="https://example.com" %} + +**Add to to-do list** + +This blueprint allows you to create a script to quickly add a task to a to-do list. + +{% my blueprint_import badge blueprint="https://example.com" %} + +## New energy graph + +A new graph has been added on the energy dashboard by [@karwosts]. You can now monitor your devices energy consumption through time. + +Temporary image that needs replacement. + + +## New sentences for Assist + +Assists has been expanded with new intent sentences, allowing you to control +even more devices and services. + +Support for valves has been added. You can now ask it to adjust the position +of a valve to, for example, 50%, or just open or close a valve completely. + +Covers support has been extended, and it now can control the position of +covers, for example, "open the blinds 50%". + +No need to worry if you found a dusty spot in your home, starting the vacuum +is now also a new capability. Or, in case you are annoyed by the noise of the +vacuum, you can also ask it to return to base. + +The biggest set of changes is for media players. You can now ask it to play, +pause, unpause, and to fast-forward to the next item. But not just that, you +can also control the volume. + +## Disabling the remotely enabling of Home Assistant Remote UI + +If you are using [Home Assistant Cloud](https://nabucasa.com), you can access +your Home Assistant instance remotely using the Remote UI feature. + +If this feature is for some reason disabled and you are currently not at home, +you can enable the Remote UI feature remotely, by logging in into your [Nabu Casa +account](https://account.nabucasa.com/), and request your Home Assistant instance to turn it on. + +Feedback from the community has shown that this feature is not always desired, +and this release adds a new option to disable the remotely enabling of the +Remote UI feature. + +## Translating states in your templates + +Are you using templates to send notification in automations? If so, +[@PiotrMachowski] might just have added something you need this release! + +He added a new template methods to translate entity states right in your +templates! Here is an example: + +{% raw %} +```yaml +# Untranslated +{{ states("binary_sensor.movement_backyard") }} # Shows: on +{{ states("sun.sun") }} # Shows: below_horizon +``` +{% endraw %} + +The above two example, show the raw state of the entities. However, with the +new `state_translated` method, you can get the state in a human readable form: + +{% raw %} +```yaml +# Translated +{{ state_translated("binary_sensor.movement_backyard") }} # Shows: Detected +{{ state_translated("sun.sun") }} # Shows: Below horizon +``` +{% endraw %} + +Even better, it uses the default language of your Home Assistant instance. So, +if you are using Home Assistant in a different language, the translated state +will be in that language. + +[@PiotrMachowski]: https://github.com/PiotrMachowski + +## Other noteworthy changes + +There are many more improvements in this release; here are some of the other +noteworthy changes this release: + +- Lorem ipsum, thanks [@frenck]! + +[@frenck]: https://github.com/frenck + +_Note to remove: Processed possible noteworthy up to PR #111092_ + +Marked noteworhy from Core: + +- Add Charging sensor to Tessie ([@Bre77] - [#108205]) ([tessie docs]) (noteworthy) +- Add Speed Limit to Tessie lock platform ([@Bre77] - [#106527]) ([tessie docs]) (noteworthy) +- Add transition support to Matter light platform ([@marcelveldt] - [#109803]) ([matter docs]) (noteworthy) +- Add update platform to myuplink ([@astrandb] - [#109786]) ([myuplink docs]) (new-platform) (noteworthy) +- Add setpoints for fans to flexit_bacnet ([@lellky] - [#110262]) ([flexit_bacnet docs]) (new-platform) (noteworthy) +- Add media file playback to DuneHD ([@iliessens] - [#105796]) ([dunehd docs]) (noteworthy) +- Add toggle service to climate ([@arturpragacz] - [#100418]) ([climate docs]) (noteworthy) +- Add new range sensors to Tessie ([@Bre77] - [#110446]) ([tessie docs]) (noteworthy) +- Support Bring! recently list ([@miaucl] - [#109854]) ([bring docs]) (noteworthy) + +Marked noteworthy from Frontend: + +- Add devices to energy collection (#19849) @karwosts + +## New integrations + +We welcome the following new integrations in this release: + +- **[Aprilaire]**, added by [@chamberlain2007]
+ TODO: Description +- **[Husqvarna Automower]**, added by [@Thomas55555]
+ The Husqvarna Automower integration allows you to integrate and control + lawn mower straight from Home Assistant. +- **[microBees]**, added by [@marcolettieri]
+ TODO: Description + +[@chamberlain2007]: https://github.com/chamberlain2007 +[@marcolettieri]: /integrations/marcolettieri +[@Thomas55555]: https://github.com/Thomas55555 +[Aprilaire]: /integrations/aprilaire +[Husqvarna Automower]: /integrations/husqvarna_automower +[microBees]: /integrations/microbees + +This release also has new virtual integrations. Virtual integrations are stubs +that are handled by other (existing) integrations to help with findability. +The following virtual integrations have been added: + +- **[Duquesne Light]**, provided by [Opower] +- **[SamSam]**, provided by [EnergyZero] +- **[ZonderGas]**, provided by [EnergyZero] + +[Duquesne Light]: /integrations/duquesne_light +[EnergyZero]: /integrations/energyzero +[Opower]: /integrations/opower +[SamSam]: /integrations/samsam +[ZonderGas]: /integrations/zondergas + +## Integrations now available to set up from the UI + +The following integrations are now available via the Home Assistant UI: + +- **[Velux]**, done by [@DeerMaximum] + +[@DeerMaximum]: https://github.com/DeerMaximum +[Velux]: /integrations/velux + +## Need help? Join the community! + +Home Assistant has a great community of users who are all more than willing +to help each other out. So, join us! + +Our very active [Discord chat server](/join-chat) is an excellent place to be +at, and don't forget to join our amazing [forums](https://community.home-assistant.io/). + +Found a bug or issue? Please report it in our [issue tracker](https://github.com/home-assistant/core/issues), +to get it fixed! Or, check [our help page](/help) for guidance for more +places you can go. + +Are you more into email? [Sign-up for our Building the Open Home Newsletter](/newsletter) +to get the latest news about features, things happening in our community and +other news about building an Open Home; straight into your inbox. + +## Backward-incompatible changes + +{% details "AEMET" %} + +The daily data for the current day wasn't available after midday and +now it will be. Automations and script relying on `day[0]` for checking +next day forecast will have to be adjusted to use `day[1]` instead. + +([@Noltari] - [#107795]) ([documentation](/integrations/aemet)) + +[@Noltari]: https://github.com/Noltari +[#107795]: https://github.com/home-assistant/core/pull/107795 + +{% enddetails %} + +{% details "JuiceNet" %} + +The JuiceNet integration has been removed. + +Enel X has migrated from JuiceNet to JuicePass rendering the JuiceNet integration useless. Background and alternative solutions to the juicenet integration can be found in the related [issue](https://github.com/home-assistant/core/issues/86588). + +([@emontnemery] - [#111477]) + +[#111477]: https://github.com/home-assistant/core/pull/111477 + +{% enddetails %} + +{% details "Met.no" %} + +The met.no integration previously created two entities for each configured +location, one entity which provided daily weather forecasts and one entity +which provided hourly forecasts. + +The met.no integration now only creates a single entity which provides +both daily and hourly weather forecasts. + +([@emontnemery] - [#97023]) ([documentation](/integrations/met)) + +[@emontnemery]: https://github.com/emontnemery +[#97023]: https://github.com/home-assistant/core/pull/97023 + +{% enddetails %} + +{% details "MQTT" %} + +Aux heat, which was deprecated in Home Assistant Core 2023.9, +is now removed from MQTT climate. + +([@jbouwh] - [#109513]) ([documentation](/integrations/mqtt)) + +[@jbouwh]: https://github.com/jbouwh +[#109513]: https://github.com/home-assistant/core/pull/109513 + +{% enddetails %} + +{% details "Z-Wave" %} + +For Z-Wave `climate` entities, the behavior of the `climate.turn_on` service +has changed. Previously, the service would act in the following order depending +on whether the corresponding conditions were met: + +1. If the entity supported the `off` mode and exactly one additional mode, + `climate.turn_on` would set the mode to the additional mode. +2. If conditions for 1 were not met and at least one of the following modes is + available, the service would set the mode to the first mode it found + in specified order: `heat_cool`, `heat`, `cool`. +3. If conditions for 1 and 2 were not met, the service would silently do nothing. + +Now, the service follows the following behavior in order: + +1. If the entity supports the `resume` thermostat mode, it will be used to + restore the last mode you used before the entity was turned off. +2. If the condition for 1 isn't met and the entity was turned off in + Home Assistant, and Home Assistant wasn't restarted, Home Assistant + remembers the last "on" mode and will set it to that mode. Home Assistant + will be unable to set the entity to the previous mode if Home Assistant + starts with the entity already in `off` mode since the integration will + not know what the previous mode was. +3. If conditions for 1 and 2 are not met and at least one of the following + modes is available, the service sets the mode to the first mode it finds + in specified order: `heat_cool`, `heat`, `cool` + (no change to condition 2 above). +4. If conditions for 1, 2, and 3 are not met, the mode will be set to the first + supported mode it finds (e.g. `dry` or `fan_only`). + +([@raman325] - [#109187]) ([documentation](/integrations/zwave_js)) + +[@raman325]: https://github.com/raman325 +[#109187]: https://github.com/home-assistant/core/pull/109187 + +{% enddetails %} + +If you are a custom integration developer and want to learn about breaking +changes and new features available for your integration: Be sure to follow our +[developer blog][devblog]. The following are the most notable for this release: + +- [Altering config entries](https://developers.home-assistant.io/blog/2024/02/12/async_update_entry/) +- [It is now required for lights to set color mode](https://developers.home-assistant.io/blog/2024/02/12/light-color-mode-mandatory/) + +[devblog]: https://developers.home-assistant.io/blog/ + +## All changes + +Of course, there is a lot more in this release. You can find a list of +all changes made here: [Full changelog for Home Assistant Core 2024.3](/changelogs/core-2024.3) diff --git a/source/changelogs/core-2024.3.markdown b/source/changelogs/core-2024.3.markdown new file mode 100644 index 00000000000..5070b332383 --- /dev/null +++ b/source/changelogs/core-2024.3.markdown @@ -0,0 +1,2364 @@ +--- +title: Full changelog for Home Assistant Core 2024.3 +description: Detailed changelog for the Home Assistant Core 2024.3 release +replace_regex: \s\(\[?[a-z0-9\-\s_]+\]?\)$ +--- + +These are all the changes included in the Home Assistant Core 2024.3 release. + +For a summary in a more readable format: +[Release notes blog for this release](/blog/2024/03/06/release-20243/). + +## All changes + +- Bump version to 2024.3.0dev0 ([@frenck] - [#109238]) +- Only decode msg topic once when handling mqtt payloads ([@bdraco] - [#109258]) ([mqtt docs]) +- Bump sigstore/cosign-installer from 3.3.0 to 3.4.0 ([@dependabot] - [#109278]) +- Add icon translations to GPSd ([@jrieger] - [#108602]) ([gpsd docs]) +- Update ruff to 0.1.15 ([@cdce8p] - [#109303]) +- Add connect octoprint printer service ([@rfleming71] - [#99899]) ([octoprint docs]) +- Reduce lock contention when all icons are already cached ([@bdraco] - [#109352]) +- Load json file as binary instead of decoding to string ([@bdraco] - [#109351]) +- Avoid de/recode of bytes to string to bytes when writing json files ([@bdraco] - [#109348]) +- Add Duquesne Light virtual integration supported by opower ([@swartzd] - [#109272]) ([duquesne_light docs]) (new-integration) +- Use send_json_auto_id in recorder tests ([@emontnemery] - [#109355]) ([recorder docs]) +- Use a mocked API client in Traccar Server tests ([@ludeeus] - [#109358]) ([traccar_server docs]) +- Improve color mode handling in MockLight ([@emontnemery] - [#109298]) +- Hide unsupported devices in Airthings BLE config flow ([@LaStrada] - [#107648]) ([airthings_ble docs]) +- Disable less interesting sensors by default in ViCare integration ([@CFenner] - [#109014]) ([vicare docs]) +- Update sentry-sdk to 1.40.0 ([@frenck] - [#109363]) ([sentry docs]) +- Use translation placeholders in 1-Wire ([@jrieger] - [#109120]) ([onewire docs]) +- Change device class of Auto Seat Heater sensors in Tessie ([@Bre77] - [#109240]) ([tessie docs]) +- Centralize validation for modbus config ([@janiversen] - [#108906]) ([modbus docs]) +- Add Charging sensor to Tessie ([@Bre77] - [#108205]) ([tessie docs]) +- Add entity name translations to Tibber ([@jpbede] - [#108797]) ([tibber docs]) +- Add entity description to GPSD ([@jrieger] - [#109320]) ([gpsd docs]) +- Use send_json_auto_id in conversation tests ([@emontnemery] - [#109354]) ([conversation docs]) +- Remove remaning ESPHome files from coveragerc ([@bdraco] - [#109400]) +- Mask sensitive data in google_assistant logs ([@emontnemery] - [#109366]) ([google_assistant docs]) +- Convert auth token removal websocket api to normal functions ([@bdraco] - [#109432]) ([auth docs]) +- Improve color mode handling in light groups ([@emontnemery] - [#109390]) ([group docs]) +- Update Twinkly DHCP discovery addresses ([@codyc1515] - [#109495]) ([twinkly docs]) +- Remove useless _handle_pipeline_event function in ESPHome ([@bdraco] - [#109484]) ([esphome docs]) +- Update pyfronius to 0.7.3 ([@farmio] - [#109507]) ([fronius docs]) +- Bump qingping_ble to 0.10.0 - Add support for GCP22C (Qingping CO2 Temp RH) ([@AidasK] - [#108567]) ([qingping docs]) +- Bump mopeka-iot-ble to 0.7.0 ([@bdraco] - [#109516]) ([mopeka docs]) +- Add Speed Limit to Tessie lock platform ([@Bre77] - [#106527]) ([tessie docs]) +- Reduce overhead to convert history to float states ([@bdraco] - [#109526]) ([sensor docs]) +- Cache path for Store helper ([@bdraco] - [#109587]) +- Avoid looking up services to check if they support responses ([@bdraco] - [#109588]) +- Add ZonderGas virtual integration ([@klaasnicolaas] - [#109601]) ([zondergas docs]) (new-integration) +- Add SamSam virtual integration ([@klaasnicolaas] - [#109602]) ([samsam docs]) (new-integration) +- Avoid converting to same units when compiling stats ([@bdraco] - [#109531]) ([sensor docs]) +- Update Flo test to address review comment ([@dmulcahey] - [#109604]) ([flo docs]) +- Remove default name prefix of HomePods from Suggested Area in Apple TV integration ([@codyc1515] - [#109489]) ([apple_tv docs]) +- Avoid many string lowers in the state machine ([@bdraco] - [#109607]) +- Add tests for shelly switch unique ids ([@bdraco] - [#109617]) ([shelly docs]) +- Add diagnostics platform to Traccar Server ([@ludeeus] - [#109521]) ([traccar_server docs]) +- Reduce complexity of shelly button setup ([@bdraco] - [#109625]) ([shelly docs]) +- Remove default values from calls to async_fire ([@bdraco] - [#109613]) +- Use get_entries_for_config_entry_id helper in async_migrate_entries ([@bdraco] - [#109629]) +- Avoid linear search of entity registry in guardian ([@bdraco] - [#109634]) ([guardian docs]) +- Avoid linear search of entity registry in keenetic_ndms2 ([@bdraco] - [#109635]) ([keenetic_ndms2 docs]) +- Avoid linear search of entity registry in lcn ([@bdraco] - [#109638]) ([lcn docs]) +- Avoid linear search of entity registry in huawei_lte ([@bdraco] - [#109637]) ([huawei_lte docs]) +- Avoid linear search of entity registry in mikrotik ([@bdraco] - [#109639]) ([mikrotik docs]) +- Avoid linear search of entity registry in nmap_tracker ([@bdraco] - [#109640]) ([nmap_tracker docs]) +- Avoid linear search of entity registry in rainmachine ([@bdraco] - [#109642]) ([rainmachine docs]) +- Avoid linear search of entity registry in ruckus_unleashed ([@bdraco] - [#109643]) ([ruckus_unleashed docs]) +- Avoid linear search of entity registry in async_get_device_automations ([@bdraco] - [#109633]) ([device_automation docs]) +- Bump `aionotion` to 2024.02.0 ([@bachya] - [#109577]) ([notion docs]) +- Make get_entries_for_device_id skip disabled devices by default ([@bdraco] - [#109645]) ([device_automation docs]) +- Improve scalability of DHCP matchers ([@bdraco] - [#109406]) ([dhcp docs]) +- Add icons for fan preset modes ([@mill1000] - [#109334]) ([fan docs]) +- Add Xiaomi-ble remotes and dimmers ([@Ernst79] - [#109327]) ([xiaomi_ble docs]) +- Bump plexapi to 4.15.9 ([@jjlawren] - [#109676]) ([plex docs]) +- Use identity check in hassio websocket ingress ([@bdraco] - [#109672]) ([hassio docs]) +- Bump github/codeql-action from 3.23.2 to 3.24.0 ([@dependabot] - [#109677]) +- Move nested code to class level as static method in imap coordinator ([@jbouwh] - [#109665]) ([imap docs]) +- Index area_ids in the entity registry ([@bdraco] - [#109660]) +- Use builtin TimeoutError [a-d] ([@cdce8p] - [#109678]) +- Use builtin TimeoutError [e-i] ([@cdce8p] - [#109679]) +- Use builtin TimeoutError [k-n] ([@cdce8p] - [#109681]) +- Use builtin TimeoutError [core + helpers] ([@cdce8p] - [#109684]) +- Use builtin TimeoutError [o-s] ([@cdce8p] - [#109682]) +- Use builtin TimeoutError [t-z] ([@cdce8p] - [#109683]) +- Remove raspberry_pi config entry if hassio is not present ([@emontnemery] - [#109687]) ([raspberry_pi docs]) +- Remove hardkernel config entry if hassio is not present ([@emontnemery] - [#109680]) ([hardkernel docs]) +- Avoid linear search of device registry when no areas are referenced in service calls ([@bdraco] - [#109669]) +- Remove homeassistant_green config entry if hassio is not present ([@emontnemery] - [#109685]) ([homeassistant_green docs]) +- Remove homeassistant_yellow config entry if hassio is not present ([@emontnemery] - [#109686]) ([homeassistant_yellow docs]) +- Add test of remote enabling of remote UI ([@emontnemery] - [#109698]) ([cloud docs]) +- Use dict.get instead of inline if ([@cdce8p] - [#109693]) +- Bump hass-nabucasa from 0.76.0 to 0.77.0 ([@emontnemery] - [#109699]) ([cloud docs]) +- Copy callbacks instead of slice for event dispatch ([@bdraco] - [#109711]) +- Use a single call to add entities in Nuki ([@pree] - [#109696]) ([nuki docs]) +- Allow weight to be used as total_increasing state_class for sensors ([@jbouwh] - [#108505]) ([sensor docs]) +- Use builtin TimeoutError [misc] ([@cdce8p] - [#109703]) +- Use builtin TimeoutError [socket.timeout] ([@cdce8p] - [#109704]) +- Move async_deinitialize to google_assistant AbstractConfig ([@emontnemery] - [#109736]) ([cloud docs]) ([google_assistant docs]) +- Remove lru cache size limit of TemperatureConverter ([@emontnemery] - [#109726]) +- Set default for OSTYPE in run-in-env script ([@synesthesiam] - [#109731]) +- Fix string in xiaomi_ble ([@Betacart] - [#109758]) ([xiaomi_ble docs]) +- Avoid linear search in entity registry to clear an area ([@bdraco] - [#109735]) +- Avoid linear search of entity registry in async_clear_config_entry ([@bdraco] - [#109724]) +- Switch utc_to_timestamp to .timestamp() where possible ([@bdraco] - [#109729]) ([recorder docs]) ([history docs]) ([logbook docs]) +- Reduce dict lookups in entity registry indices ([@bdraco] - [#109712]) +- Avoid linear search of the entity registry in ps4 ([@bdraco] - [#109723]) ([ps4 docs]) +- Clean up Alexa when logging out from cloud ([@emontnemery] - [#109738]) ([alexa docs]) ([cloud docs]) +- Add Process binary sensor in System Monitor ([@gjohansson-ST] - [#108585]) ([systemmonitor docs]) (new-platform) +- Fix docstring length in ZHA sensor class ([@TheJulianJES] - [#109774]) ([zha docs]) +- Remove aux heat support from mqtt climate ([@jbouwh] - [#109513]) ([mqtt docs]) (breaking-change) +- Improve tests of mqtt device triggers ([@jbouwh] - [#108318]) ([mqtt docs]) +- Break long strings in Google generative ai conversation ([@tronikos] - [#109771]) ([google_generative_ai_conversation docs]) +- Bump yolink-api to 0.3.7 ([@matrixd2] - [#109776]) ([yolink docs]) +- Use has_capability instead of hasattr for ring history ([@sdb9696] - [#109791]) ([ring docs]) +- Include exception when reraising inside except ([@cdce8p] - [#109706]) ([ring docs]) ([lupusec docs]) ([suez_water docs]) ([zwave_js docs]) ([roborock docs]) ([comelit docs]) +- Add myuplink sensor descriptions for current and frequency sensors ([@astrandb] - [#109784]) ([myuplink docs]) +- Improve typing of cloud HTTP API ([@emontnemery] - [#109780]) ([cloud docs]) +- Add slots to bluetooth matcher objects ([@bdraco] - [#109768]) ([bluetooth docs]) +- Rename google_assistant.AbstractConfig.get_local_agent_user_id ([@emontnemery] - [#109798]) ([cloud docs]) ([google_assistant docs]) +- Update ruff to 0.2.1 ([@cdce8p] - [#109796]) ([ring docs]) ([sensor docs]) +- Make bluetooth use naming from the entity description ([@joostlek] - [#97401]) ([bluetooth docs]) +- Bump hass-nabucasa from 0.77.0 to 0.78.0 ([@emontnemery] - [#109813]) +- Make additional methods of google_assistant.AbstractConfig abstract ([@emontnemery] - [#109811]) ([google_assistant docs]) +- Add transition support to Matter light platform ([@marcelveldt] - [#109803]) ([matter docs]) +- Add update platform to myuplink ([@astrandb] - [#109786]) ([myuplink docs]) (new-platform) +- Fix hue fallback onoff colormode ([@emontnemery] - [#109856]) ([hue docs]) +- Add late PR changes to tedee ([@zweckj] - [#109858]) ([tedee docs]) +- Simplify Hue v2 color mode calculation ([@emontnemery] - [#109857]) ([hue docs]) +- Move Roborock map retrieval to coordinator and made map always diagnostic ([@Lash-L] - [#104680]) ([roborock docs]) +- Add Husqvarna Automower integration ([@Thomas55555] - [#109073]) ([husqvarna_automower docs]) (new-integration) +- Update syrupy to 4.6.1 ([@cdce8p] - [#109860]) +- Add sensor for Ecowitt raw soil moisture value ([@dcmeglio] - [#109849]) ([ecowitt docs]) +- Fix light color mode in tplink ([@emontnemery] - [#109831]) ([tplink docs]) +- Fix Shelly white light test ([@emontnemery] - [#109855]) ([shelly docs]) +- Add support for air purifiers to HomeKit Device ([@Jc2k] - [#109880]) ([homekit_controller docs]) +- Test unique IDs for Shelly entities ([@bieniu] - [#109879]) ([shelly docs]) +- Add analog input value sensor for Shelly ([@bieniu] - [#109312]) ([shelly docs]) +- Reset log level in script tests ([@cdce8p] - [#109881]) +- Bump myuplink dependency to 0.1.1 ([@astrandb] - [#109878]) ([myuplink docs]) +- Add missing `unique_id` check for Shelly Analog Input sensor ([@bieniu] - [#109888]) ([shelly docs]) +- Bump pymodbus to v3.6.4 ([@janiversen] - [#109980]) ([modbus docs]) +- Fix callable import ([@cdce8p] - [#110003]) +- Update pylint-per-file-ignores to 1.3.2 ([@cdce8p] - [#110014]) +- Bump Wandalen/wretry.action from 1.3.0 to 1.4.0 ([@dependabot] - [#109950]) +- Add option-icons for Plugwise Select ([@bouwew] - [#109986]) ([plugwise docs]) +- bump wretry.action@v1.4.4 ([@mib1185] - [#110053]) +- Avoid directly changing config entry state in tests ([@bdraco] - [#110048]) ([blink docs]) ([hue docs]) ([smartthings docs]) ([opower docs]) +- Bump aiodiscover 1.6.1 ([@bdraco] - [#110059]) ([dhcp docs]) +- Cleanup test config entry setup to use best practices ([@allenporter] - [#110070]) ([rainbird docs]) ([caldav docs]) +- Convert dhcp watcher to asyncio ([@bdraco] - [#109938]) ([dhcp docs]) +- Remove homekit_controller entity registry entries when backing char or service is gone ([@Jc2k] - [#109952]) ([homekit_controller docs]) +- Update sentry-sdk to 1.40.2 ([@frenck] - [#110049]) ([sentry docs]) +- Improve ability to debug one time listeners blocking the event loop ([@bdraco] - [#110064]) +- Address late review on husqvarna_automower ([@Thomas55555] - [#109896]) ([husqvarna_automower docs]) +- Update debugpy to 1.8.1 ([@frenck] - [#110076]) ([debugpy docs]) +- Allow passing version to ConfigEntry.async_update_entry ([@emontnemery] - [#110077]) +- Add entry diagnostics to imap integration ([@jbouwh] - [#109460]) ([imap docs]) +- Fix scene tests ([@emontnemery] - [#110097]) ([scene docs]) +- Fix color mode in flux_led light ([@emontnemery] - [#110096]) ([flux_led docs]) +- Improve apple_tv error reporting when setup fails ([@bdraco] - [#110071]) ([apple_tv docs]) +- Make ConfigEntryItems responsible for updating unique ids ([@bdraco] - [#110018]) +- Avoid delaying startup in dlna_dmr ([@bdraco] - [#109836]) ([dlna_dmr docs]) +- Reduce complexity in the homekit config flow filters ([@bdraco] - [#109850]) ([homekit docs]) +- Avoid linear search of entity registry in async_extract_referenced_entity_ids ([@bdraco] - [#109667]) +- Use async_update_entry in github tests ([@bdraco] - [#110119]) ([github docs]) +- Update pytest-asyncio to 0.23.5 ([@cdce8p] - [#110129]) +- Update sentry-sdk to 1.40.3 ([@frenck] - [#110109]) ([sentry docs]) +- Add icon translations to GIOS ([@bieniu] - [#110131]) ([gios docs]) +- Add icon translations to NAM ([@bieniu] - [#110135]) ([nam docs]) +- Add icon translations to Tractive ([@bieniu] - [#110138]) ([tractive docs]) +- Use async_update_entry to update esphome options in tests ([@bdraco] - [#110118]) ([esphome docs]) +- Simplify emulated_hue exposed entities cache ([@bdraco] - [#109890]) ([emulated_hue docs]) +- Avoid directly changing config entry state in tests (part 2) ([@bdraco] - [#110115]) +- Use async_update_entry to update dlna_dmr options in tests ([@bdraco] - [#110117]) ([dlna_dmr docs]) +- Add state_translated function to jinja templates ([@PiotrMachowski] - [#96906]) +- Add icon translations to Brother ([@bieniu] - [#110128]) ([brother docs]) +- Update systemmonitor to set config entry version using async_update_entry ([@bdraco] - [#110192]) ([systemmonitor docs]) +- Update switch_as_x to set ConfigEntry version with async_update_entry ([@bdraco] - [#110193]) ([switch_as_x docs]) +- Update islamic_prayer_times to set ConfigEntry version with async_update_entry ([@bdraco] - [#110194]) ([islamic_prayer_times docs]) +- Update prusalink to set ConfigEntry version with async_update_entry ([@bdraco] - [#110196]) ([prusalink docs]) +- Update swiss_public_transport to set ConfigEntry version with async_update_entry ([@bdraco] - [#110197]) ([swiss_public_transport docs]) +- Update airnow to set ConfigEntry version with async_update_entry ([@bdraco] - [#110202]) ([airnow docs]) +- Update airvisual to set ConfigEntry version with async_update_entry ([@bdraco] - [#110204]) ([airvisual docs]) +- Improve package schema validation ([@chammp] - [#108125]) ([core docs]) +- Enable compression for manifest.json ([@bdraco] - [#110229]) ([frontend docs]) +- Update `denonavr` to `0.11.6` ([@ol-iver] - [#110231]) ([denonavr docs]) +- Bump aioautomower to 2024.2.4 ([@Thomas55555] - [#110209]) ([husqvarna_automower docs]) +- Add icon translations to NextDNS ([@bieniu] - [#110179]) ([nextdns docs]) +- Refactor tradfri tests ([@MartinHjelmare] - [#110094]) ([tradfri docs]) +- Add missing log message for error resolving OAuth token ([@deosrc] - [#107606]) +- Update pre-commit to 3.6.1 ([@cdce8p] - [#110278]) +- Bump thermopro-ble to 0.10.0 ([@bdraco] - [#110279]) ([thermopro docs]) +- Update tqdm to 4.66.2 ([@cdce8p] - [#110277]) +- Implement late feedback for Bluecurrent ([@Floris272] - [#106918]) ([blue_current docs]) +- Add icon translations to Shelly ([@bieniu] - [#110183]) ([shelly docs]) +- Avoid calling hass internals when adding mock config entry in Blink ([@jpbede] - [#110290]) ([blink docs]) +- Avoid calling hass internals when adding mock config entry in Fully Kiosk ([@jpbede] - [#110291]) ([fully_kiosk docs]) +- Convert test helpers to get hass instance to contextmanagers ([@cdce8p] - [#109990]) ([ffmpeg docs]) ([recorder docs]) ([sensor docs]) ([homeassistant docs]) ([picnic docs]) ([bluetooth docs]) +- Update pytest to 8.0.0 ([@cdce8p] - [#109876]) +- Migrate ambient_station to use async_update_entry to alter config entries ([@bdraco] - [#110305]) ([ambient_station docs]) +- Migrate lametric to use async_update_entry to alter config entries ([@bdraco] - [#110313]) ([lametric docs]) +- Migrate forecast_solar to use async_update_entry to alter config entries ([@bdraco] - [#110306]) ([forecast_solar docs]) +- Migrate huawei_lte to use async_update_entry to alter config entries ([@bdraco] - [#110309]) ([huawei_lte docs]) +- Migrate homematicip_cloud to use async_update_entry to alter config entries ([@bdraco] - [#110308]) ([homematicip_cloud docs]) +- Migrate blink to use async_update_entry to alter config entries ([@bdraco] - [#110303]) ([blink docs]) +- Migrate axis to use async_update_entry to alter config entries ([@bdraco] - [#110302]) ([axis docs]) +- Migrate knx to use async_update_entry to alter config entries ([@bdraco] - [#110312]) ([knx docs]) +- Add pulse counter sensors for Shelly ([@bieniu] - [#110248]) ([shelly docs]) +- Fix color mode in hive light ([@emontnemery] - [#110330]) ([hive docs]) +- Fix color mode in comelit light ([@emontnemery] - [#110326]) ([comelit docs]) +- Remove old BMW vehicles/devices automatically ([@rikroe] - [#110255]) ([bmw_connected_drive docs]) +- Add myuplink diagnostics download ([@astrandb] - [#109925]) ([myuplink docs]) +- Migrate google_assistant_sdk to use async_update_entry to alter config entries ([@bdraco] - [#110307]) ([google_assistant_sdk docs]) +- Migrate landisgyr_heat_meter to use async_update_entry to alter config entries ([@bdraco] - [#110314]) ([landisgyr_heat_meter docs]) +- Correct screenlogic test's mock adapter name ([@dieselrabbit] - [#110317]) ([screenlogic docs]) +- Bump pytraccar from 2.0.0 to 2.1.0 ([@ludeeus] - [#110320]) ([traccar docs]) ([traccar_server docs]) +- Update pytest warnings filter ([@cdce8p] - [#110332]) +- Update python rflink to 0.0.66 ([@Minims] - [#110060]) ([rflink docs]) +- Upgrade myuplink package to 0.2.1 ([@pajzo] - [#110343]) ([myuplink docs]) +- Change function name in hvv_departures ([@joostlek] - [#110349]) ([hvv_departures docs]) +- Add myuplink specific sensor descriptions ([@astrandb] - [#109867]) ([myuplink docs]) +- Improve type annotation in Shelly tests ([@bieniu] - [#110361]) ([shelly docs]) +- Warn when lights violate color mode rules ([@emontnemery] - [#110336]) ([light docs]) +- Migrate openuv to use async_update_entry to alter config entries ([@bdraco] - [#110371]) ([openuv docs]) +- Migrate rainmachine to use async_update_entry to alter config entries ([@bdraco] - [#110377]) ([rainmachine docs]) +- Migrate ridwell to use async_update_entry to alter config entries ([@bdraco] - [#110380]) ([ridwell docs]) +- Migrate recollect_waste to use async_update_entry to alter config entries ([@bdraco] - [#110378]) ([recollect_waste docs]) +- Migrate samsungtv to use async_update_entry to alter config entries ([@bdraco] - [#110362]) ([samsungtv docs]) +- Remove store from google_assistant AbstractConfig ([@emontnemery] - [#109877]) ([cloud docs]) ([google_assistant docs]) +- Migrate zwave_js to use async_update_entry to alter config entries ([@bdraco] - [#110376]) ([zwave_js docs]) +- Fix color mode in wiz light ([@emontnemery] - [#110328]) ([wiz docs]) +- Migrate trafikverket_camera to use async_update_entry to alter config entries ([@bdraco] - [#110393]) ([trafikverket_camera docs]) +- Migrate smhi to use async_update_entry to alter config entries ([@bdraco] - [#110391]) ([smhi docs]) +- Migrate sensibo to use async_update_entry to alter config entries ([@bdraco] - [#110390]) ([sensibo docs]) +- Migrate sonarr to use async_update_entry to alter config entries ([@bdraco] - [#110364]) ([sonarr docs]) +- Bump securetar to 2024.2.0 ([@bdraco] - [#110383]) ([backup docs]) +- Migrate utility_meter to use async_update_entry to alter config entries ([@bdraco] - [#110394]) ([utility_meter docs]) +- Migrate switchbee to use async_update_entry to alter config entries ([@bdraco] - [#110392]) ([switchbee docs]) +- Migrate ps4 to use async_update_entry to alter config entries ([@bdraco] - [#110373]) ([ps4 docs]) +- Migrate foscam to use async_update_entry to alter config entries ([@bdraco] - [#110365]) ([foscam docs]) +- Migrate minecraft_server to use async_update_entry to alter config entries ([@bdraco] - [#110367]) ([minecraft_server docs]) +- Bump SQLAlchemy to 2.0.26 ([@bdraco] - [#110358]) ([recorder docs]) ([sql docs]) +- Add back `supported_color_modes` property to `blebox` light ([@emontnemery] - [#110350]) ([blebox docs]) +- Add power strip with 2 outlets to kitchen_sink ([@emontnemery] - [#110346]) ([kitchen_sink docs]) (new-platform) +- Migrate roku to use async_update_entry to alter config entries ([@bdraco] - [#110363]) ([roku docs]) +- Add `removal_condition` for Shelly analog input sensors ([@bieniu] - [#110331]) ([shelly docs]) +- Migrate obihai to use async_update_entry to alter config entries ([@bdraco] - [#110368]) ([obihai docs]) +- Migrate openweathermap to use async_update_entry to alter config entries ([@bdraco] - [#110372]) ([openweathermap docs]) +- Update Home Assistant base image to 2024.02.1 ([@frenck] - [#110395]) +- Migrate ipp to use async_update_entry to alter config entries ([@bdraco] - [#110311]) ([ipp docs]) +- Migrate hue to use async_update_entry to alter config entries ([@bdraco] - [#110310]) ([hue docs]) +- Cleanup myuplink imports ([@astrandb] - [#110374]) ([myuplink docs]) +- Migrate velbus to use async_update_entry to alter config entries ([@bdraco] - [#110399]) ([velbus docs]) +- Migrate yale_smart_alarm to use async_update_entry to alter config entries ([@bdraco] - [#110401]) ([yale_smart_alarm docs]) +- Migrate verisure to use async_update_entry to alter config entries ([@bdraco] - [#110400]) ([verisure docs]) +- Migrate smartthings to use async_update_entry to alter config entries ([@bdraco] - [#110403]) ([smartthings docs]) +- Migrate zha to use async_update_entry to alter config entries ([@bdraco] - [#110402]) ([zha docs]) +- Migrate ping to use async_update_entry to alter config entries ([@bdraco] - [#110404]) ([ping docs]) +- Migrate mqtt to use async_update_entry to alter config entries ([@bdraco] - [#110407]) ([mqtt docs]) +- Migrate unifiprotect to use async_update_entry to alter config entries ([@bdraco] - [#110409]) ([unifiprotect docs]) +- Migrate plex to use async_update_entry to alter config entries ([@bdraco] - [#110405]) ([plex docs]) +- Migrate trend to use async_update_entry to alter config entries ([@bdraco] - [#110408]) ([trend docs]) +- Migrate tplink to use async_update_entry to alter config entries ([@bdraco] - [#110406]) ([tplink docs]) +- Ensure deconz tests add config entry before updating it ([@bdraco] - [#110417]) ([deconz docs]) +- Migrate onewire to use async_update_entry to alter config entries ([@bdraco] - [#110413]) ([onewire docs]) +- Ensure sonarr tests add config entry before updating it ([@bdraco] - [#110422]) ([sonarr docs]) +- Migrate twentemilieu to use async_update_entry to alter config entries ([@bdraco] - [#110419]) ([twentemilieu docs]) +- Migrate luftdaten to use async_update_entry to alter config entries ([@bdraco] - [#110424]) ([luftdaten docs]) +- Ensure blink tests add config entry before updating it ([@bdraco] - [#110415]) ([blink docs]) +- Ensure gdacs tests add config entry before updating it ([@bdraco] - [#110431]) ([gdacs docs]) +- Ensure homematicip_cloud tests add config entry before updating it ([@bdraco] - [#110429]) ([homematicip_cloud docs]) +- Ensure config entry oauth2 tests add config entry before updating it ([@bdraco] - [#110421]) +- Ensure dlna_dmr tests add config entry before updating it ([@bdraco] - [#110418]) ([dlna_dmr docs]) +- Ensure cast tests add config entry before updating it ([@bdraco] - [#110416]) ([cast docs]) +- Ensure knx tests add config entry before updating it ([@bdraco] - [#110425]) ([knx docs]) +- Improve tests for Shelly WallDisplay ([@bieniu] - [#110435]) ([shelly docs]) +- Improve climate turn_on/turn_off services for zwave_js ([@raman325] - [#109187]) ([zwave_js docs]) (breaking-change) +- Remove unused instance variable in Z-wave ([@raman325] - [#110442]) ([zwave_js docs]) +- Update Notion auth to store refresh tokens instead of account passwords ([@bachya] - [#109670]) ([notion docs]) +- Add myuplink unit-based sensor descriptions ([@astrandb] - [#110370]) ([myuplink docs]) +- Ensure hue tests add config entry before updating it ([@bdraco] - [#110428]) ([hue docs]) +- Ensure github tests add config entry before updating it ([@bdraco] - [#110430]) ([github docs]) +- Ensure cast tests add config entry before updating it ([@bdraco] - [#110441]) ([cast docs]) +- Remove power_state_template from mqtt climate value template list ([@jbouwh] - [#110452]) ([mqtt docs]) +- Add additonal number entities to La Marzocco ([@zweckj] - [#108258]) ([lamarzocco docs]) +- Handle template errors on MQTT payload handling ([@jbouwh] - [#110180]) ([mqtt docs]) +- Change function name in tfiac ([@joostlek] - [#110466]) ([tfiac docs]) +- Change function name in flexit_bacnet ([@joostlek] - [#110465]) ([flexit_bacnet docs]) +- Change function name in tesla_wall_connector ([@joostlek] - [#110467]) ([tesla_wall_connector docs]) +- Deprecate cloud tts platform config ([@MartinHjelmare] - [#110461]) ([cloud docs]) +- Avoid creating many tasks when adding hue v2 entities ([@bdraco] - [#110386]) ([hue docs]) +- Switch to new Bring! lib ([@miaucl] - [#110355]) ([bring docs]) +- Small performance improvements to config entry setup retry ([@bdraco] - [#110448]) +- Add setpoints for fans to flexit_bacnet ([@lellky] - [#110262]) ([flexit_bacnet docs]) (new-platform) +- Set icons for switch without device class ([@piitaya] - [#110470]) ([switch docs]) +- Add icon translations to Teslemetry ([@StephenBrown2] - [#109928]) ([teslemetry docs]) +- Add myuplink binary_sensor platform ([@astrandb] - [#110388]) ([myuplink docs]) (new-platform) +- Refactor flexit_bacnet to use icon translations ([@lellky] - [#110479]) ([flexit_bacnet docs]) +- Bump aiowebostv to 0.4.0 ([@thecode] - [#110477]) ([webostv docs]) +- Fix logger message in samsungtv ([@bdraco] - [#110484]) ([samsungtv docs]) +- Add config flow to Velux ([@DeerMaximum] - [#89155]) ([velux docs]) +- Add DeerMaximum to velux codeowners ([@DeerMaximum] - [#110504]) ([velux docs]) +- Refactor dhcp to move all mac formatting into the client processor ([@bdraco] - [#110509]) ([dhcp docs]) +- Bump github/codeql-action from 3.24.0 to 3.24.1 ([@dependabot] - [#110522]) +- Bump SQLAlchemy to 2.0.27 ([@bdraco] - [#110517]) ([recorder docs]) ([sql docs]) +- Move Shelly thermostat check to status endpoint ([@chemelli74] - [#110543]) ([shelly docs]) +- Migrate Twinkly to has entity naming ([@joostlek] - [#97206]) ([twinkly docs]) +- Create backups files without having to copy inner tarballs ([@bdraco] - [#110267]) ([backup docs]) +- Add entity translations to OralB ([@joostlek] - [#97402]) ([oralb docs]) +- Migrate Vizio to has entity name ([@joostlek] - [#96773]) ([vizio docs]) +- Fix formatting of mac addresses from dhcp discovery mocking in hunterdouglas_powerview ([@bdraco] - [#110577]) ([hunterdouglas_powerview docs]) +- Fix formatting of mac addresses from dhcp discovery mocking in insteon ([@bdraco] - [#110578]) ([insteon docs]) +- Fix formatting of mac addresses from dhcp discovery mocking in obihai ([@bdraco] - [#110586]) ([obihai docs]) +- Fix formatting of mac addresses from dhcp discovery mocking in nuki ([@bdraco] - [#110585]) ([nuki docs]) +- Fix formatting of mac addresses from dhcp discovery mocking in motion_blinds ([@bdraco] - [#110583]) ([motion_blinds docs]) +- Fix formatting of mac addresses from dhcp discovery mocking in lifx ([@bdraco] - [#110581]) ([lifx docs]) +- Fix formatting of mac addresses from dhcp discovery mocking in intellifire ([@bdraco] - [#110579]) ([intellifire docs]) +- Fix formatting of mac addresses from dhcp discovery mocking in guardian ([@bdraco] - [#110575]) ([guardian docs]) +- Fix formatting of mac addresses from dhcp discovery mocking in fully_kiosk ([@bdraco] - [#110573]) ([fully_kiosk docs]) +- Fix formatting of mac addresses from dhcp discovery mocking in onvif ([@bdraco] - [#110589]) ([onvif docs]) +- Fix formatting of mac addresses from dhcp discovery mocking in flux_led ([@bdraco] - [#110568]) ([flux_led docs]) +- Fix formatting of mac addresses from dhcp discovery mocking in esphome ([@bdraco] - [#110567]) ([esphome docs]) +- Fix formatting of mac addresses from dhcp discovery mocking in emonitor ([@bdraco] - [#110565]) ([emonitor docs]) +- Fix formatting of mac addresses from dhcp discovery mocking in elkm1 ([@bdraco] - [#110564]) ([elkm1 docs]) +- Fix formatting of mac addresses from dhcp discovery mocking in airzone ([@bdraco] - [#110559]) ([airzone docs]) +- Improve hassio decorator typing ([@cdce8p] - [#110545]) ([hassio docs]) +- Fix formatting of mac addresses from dhcp discovery mocking in reolink ([@bdraco] - [#110594]) ([reolink docs]) +- Add support for Fully Kiosk sound playing state ([@cgarwood] - [#105762]) ([fully_kiosk docs]) +- Avoid calling internals when adding mock config entry in Squeezebox ([@jpbede] - [#110601]) ([squeezebox docs]) +- Fix formatting of mac addresses from dhcp discovery mocking in overkiz ([@bdraco] - [#110590]) ([overkiz docs]) +- Fix formatting of mac addresses from dhcp discovery mocking in dlink ([@bdraco] - [#110562]) ([dlink docs]) +- Fix misaligned mac formatting in goalzero ([@bdraco] - [#110574]) ([goalzero docs]) +- Fix formatting of mac addresses from dhcp discovery mocking in powerwall ([@bdraco] - [#110591]) ([powerwall docs]) +- Bump aioautomower to 2024.2.6 ([@Thomas55555] - [#110598]) ([husqvarna_automower docs]) +- Fix formatting of mac addresses from dhcp discovery mocking in fronius ([@bdraco] - [#110572]) ([fronius docs]) +- Fix formatting of mac addresses from dhcp discovery mocking in yeelight ([@bdraco] - [#110616]) ([yeelight docs]) +- Fix formatting of mac addresses from dhcp discovery mocking in wiz ([@bdraco] - [#110615]) ([wiz docs]) +- Fix formatting of mac addresses from dhcp discovery mocking in vicare ([@bdraco] - [#110613]) ([vicare docs]) +- Fix formatting of mac addresses from dhcp discovery mocking in verisure ([@bdraco] - [#110611]) ([verisure docs]) +- Fix formatting of mac addresses from dhcp discovery mocking in unifiprotect ([@bdraco] - [#110610]) ([unifiprotect docs]) +- Fix formatting of mac addresses from dhcp discovery mocking in twinkly ([@bdraco] - [#110609]) ([twinkly docs]) +- Fix formatting of mac addresses from dhcp discovery mocking in tolo ([@bdraco] - [#110608]) ([tolo docs]) +- Fix formatting of mac addresses from dhcp discovery mocking in tesla_wall_connector ([@bdraco] - [#110607]) ([tesla_wall_connector docs]) +- Fix formatting of mac addresses from dhcp discovery mocking in tailwind ([@bdraco] - [#110606]) ([tailwind docs]) +- Fix formatting of mac addresses from dhcp discovery mocking in steamist ([@bdraco] - [#110605]) ([steamist docs]) +- Fix formatting of mac addresses from dhcp discovery mocking in squeezebox ([@bdraco] - [#110604]) ([squeezebox docs]) +- Fix formatting of mac addresses from dhcp discovery mocking in somfy_mylink ([@bdraco] - [#110603]) ([somfy_mylink docs]) +- Fix formatting of mac addresses from dhcp discovery mocking in screenlogic ([@bdraco] - [#110602]) ([screenlogic docs]) +- Fix formatting of mac addresses from dhcp discovery mocking in lametric ([@bdraco] - [#110580]) ([lametric docs]) +- Fix formatting of mac addresses from dhcp discovery mocking in qnap_qsw ([@bdraco] - [#110592]) ([qnap_qsw docs]) +- Fix formatting of mac addresses from dhcp discovery mocking in roomba ([@bdraco] - [#110596]) ([roomba docs]) +- Correct misaligned formatting of mac addresses in samsungtv ([@bdraco] - [#110599]) ([samsungtv docs]) +- Fix formatting of mac addresses from dhcp discovery mocking in ruuvi_gateway ([@bdraco] - [#110597]) ([ruuvi_gateway docs]) +- Fix formatting of mac addresses from dhcp discovery mocking in radiotherm ([@bdraco] - [#110593]) ([radiotherm docs]) +- Fix formatting of mac addresses from dhcp discovery mocking in nest ([@bdraco] - [#110584]) ([nest docs]) +- Fix formatting of mac addresses from dhcp discovery mocking in broadlink ([@bdraco] - [#110558]) ([broadlink docs]) +- Fix formatting of mac addresses from dhcp discovery mocking in config_entries test ([@bdraco] - [#110617]) +- Fix formatting of mac addresses from dhcp discovery mocking in axis ([@bdraco] - [#110560]) ([axis docs]) +- Bump libpyfoscam to 1.2.2 ([@krmarien] - [#110625]) ([foscam docs]) +- Add monthly forecast sensor to RymPro ([@OnFreund] - [#101012]) ([rympro docs]) +- Split pre/post backup actions into dedicated methods ([@ludeeus] - [#110632]) ([backup docs]) +- Add some myuplink tests ([@astrandb] - [#110521]) ([myuplink docs]) +- Add support for multiple devices linked to a Viessmann account ([@CFenner] - [#96044]) ([vicare docs]) +- Update wallbox to 0.6.0 ([@pilotopirx] - [#110636]) ([wallbox docs]) +- Enable strict type checking on apple_tv integration ([@stackia] - [#101688]) ([apple_tv docs]) +- Bump pyMicrobot to 0.0.15 ([@spycle] - [#110502]) ([keymitt_ble docs]) +- Powerview Gen 3 functionality ([@kingy444] - [#110158]) ([hunterdouglas_powerview docs]) +- Ensure lamarzocco tests add config entry before updating it ([@bdraco] - [#110423]) ([lamarzocco docs]) +- Add state_class to ring battery sensor for LTS ([@livioavalle] - [#109872]) ([ring docs]) +- Add option to block remote enabling of HA Cloud remote ([@emontnemery] - [#109700]) ([cloud docs]) +- Categorize burner and compressor sensors as diagnostic entities in ViCare integration ([@CFenner] - [#110653]) ([vicare docs]) +- Bump pychromecast to 14.0.0 ([@emontnemery] - [#108374]) ([cast docs]) +- Bump nextcord to 2.6.0 ([@tkdrob] - [#110485]) ([discord docs]) +- Correct config entry setup in fritz tests ([@emontnemery] - [#110669]) ([fritz docs]) +- Don't add fritz entities with update_before_add ([@emontnemery] - [#110667]) ([fritz docs]) +- Remove unneeded list copy in icon helper ([@bdraco] - [#110680]) +- Speed up registry config websocket api calls with list comps ([@bdraco] - [#110693]) ([config docs]) +- Move late import of config flows in loader to load time ([@bdraco] - [#110688]) +- Use bytes join fast path for large states payload ([@bdraco] - [#110694]) ([websocket_api docs]) ([api docs]) +- Migrate dependencies loader to use async_get_integrations ([@bdraco] - [#110690]) +- Add Aprilaire integration ([@chamberlain2007] - [#95093]) ([aprilaire docs]) (new-integration) +- Add translations to AVM FRITZ!Box Call Monitor state attributes ([@jrieger] - [#108412]) ([fritzbox_callmonitor docs]) +- Avoid calling internals when adding mock config entry in Nightscout ([@jpbede] - [#110600]) ([nightscout docs]) +- Bump dorny/paths-filter from 3.0.0 to 3.0.1 ([@dependabot] - [#110698]) +- Bump github/codeql-action from 3.24.1 to 3.24.3 ([@dependabot] - [#110700]) +- add missing state class to dsmr sensors ([@dupondje] - [#110712]) ([dsmr docs]) +- Small performance improvements to collecting analytics ([@bdraco] - [#110662]) ([analytics docs]) +- Bump dawidd6/action-download-artifact from 3.0.0 to 3.1.0 ([@dependabot] - [#110699]) +- Small performance improvement to async_get_config_flows ([@bdraco] - [#110666]) +- Fix recorder ws_info blocking the event loop ([@bdraco] - [#110657]) ([recorder docs]) +- Add media file playback to DuneHD ([@iliessens] - [#105796]) ([dunehd docs]) +- Generic Hygrostat: Do not log warning if the hygrostat is already not active ([@Shulyaka] - [#102662]) ([generic_hygrostat docs]) +- Use snapshots in analytics tests ([@ludeeus] - [#110704]) ([analytics docs]) +- Make context in data entry flow possible to modify for subclasses ([@gjohansson-ST] - [#110561]) +- Add toggle service to climate ([@arturpragacz] - [#100418]) ([climate docs]) +- Raise translatable exceptions in entity set methods for BSBLan ([@jpbede] - [#105693]) ([bsblan docs]) +- Speed up bootstrap by preloading manifests for base platforms ([@bdraco] - [#110130]) +- Remove hourly weather entity from met.no ([@emontnemery] - [#97023]) ([met docs]) (breaking-change) +- Simplify loading of icons ([@bdraco] - [#110687]) +- Stop building Python 3.11 wheels ([@frenck] - [#110727]) (breaking-change) +- Adjust ConfigEntry.async_setup comments to be more clear ([@bdraco] - [#110726]) +- Guard ConfigEntry from being mutated externally without using the built-in interfaces ([@bdraco] - [#110023]) +- Add breeze switch to Renson integration ([@jimmyd-be] - [#101641]) ([renson docs]) (new-platform) +- Add filter to translation event listeners to avoid creating tasks ([@bdraco] - [#110732]) +- Run codeql on schedule only ([@frenck] - [#110729]) +- Bump cryptography to 42.0.3 ([@bdraco] - [#110728]) +- Wait for client to be created in wyoming tests ([@bdraco] - [#110751]) ([wyoming docs]) +- Fix flo sensor native unit ([@rb28z2] - [#110745]) ([flo docs]) +- Bump georss-ign-sismologia-client to 0.8 ([@exxamalte] - [#110501]) ([ign_sismologia docs]) +- Refactor config integration to use normal functions for setup ([@bdraco] - [#110750]) ([config docs]) +- Bump aiopegelonline to 0.0.9 ([@mib1185] - [#110760]) ([pegel_online docs]) +- Fix race in wyoming test ([@bdraco] - [#110766]) ([wyoming docs]) +- Add myuplink reauth flow ([@astrandb] - [#110587]) ([myuplink docs]) +- Avoid creating tasks to setup ignored and disabled config entries ([@bdraco] - [#110756]) +- Bump aioesphomeapi to 21.0.3 ([@bdraco] - [#110772]) ([esphome docs]) +- Cleanups in area registry tests ([@frenck] - [#110785]) ([config docs]) +- Avoid creating tasks to load integration platforms that do not exist ([@bdraco] - [#110743]) +- Cleanups in device registry tests ([@frenck] - [#110786]) ([config docs]) +- Cleanup Shelly async_setup_block_attribute_entities ([@thecode] - [#110792]) ([shelly docs]) +- Fix translations for binary sensors in System Bridge ([@timmo001] - [#110095]) ([system_bridge docs]) +- Add number platform to powerview to control velocity on gen 3 hubs ([@kingy444] - [#110724]) ([hunterdouglas_powerview docs]) (new-platform) +- Enable Enphase Envoy authentication credentials update ([@catsmanac] - [#110474]) ([enphase_envoy docs]) +- Make template trigger callbacks when nothing needs to be awaited ([@bdraco] - [#110771]) ([template docs]) +- Improve performance of _async_when_setup ([@bdraco] - [#110791]) +- Simplify ConfigFlow._async_current_entries ([@bdraco] - [#110799]) +- Small performance improvement in tracking template results ([@bdraco] - [#110622]) +- Cleanups in entity registry tests ([@frenck] - [#110788]) ([config docs]) +- Improve performance of async_get_integration_with_requirements ([@bdraco] - [#110770]) +- Add modbus option to manage different setPoint registers ([@crug80] - [#107600]) ([modbus docs]) +- Add floor registry ([@frenck] - [#110741]) ([config docs]) +- Remove unneeded mock from Epion ([@joostlek] - [#110815]) ([epion docs]) +- Bump pyrainbird to 4.0.2 ([@allenporter] - [#110814]) ([rainbird docs]) +- Bump ical to 7.0.0 ([@allenporter] - [#110811]) ([google docs]) ([local_calendar docs]) ([local_todo docs]) +- Add typing for EVENT_COMPONENT_LOADED ([@bdraco] - [#110812]) +- Fix Local Calendar changing user-specified capitalisation of calendar names ([@codyc1515] - [#108454]) ([local_calendar docs]) +- Avoid creating tasks for checking integrations platforms ([@bdraco] - [#110795]) +- Enable augmented-assignment operations in scripts ([@akx] - [#108081]) ([python_script docs]) +- Add typing of EVENT_COMPONENT_LOADED to integration_platform helper ([@bdraco] - [#110826]) +- Convert Integration platforms processors where nothing is awaited to callbacks ([@bdraco] - [#110825]) +- Cache JSON representation of ConfigEntry objects ([@bdraco] - [#110823]) ([config docs]) +- Ensure translations for other integrations can be loaded if one integration fails ([@bdraco] - [#110748]) +- Refactor integration startup time tracking to reduce overhead ([@bdraco] - [#110136]) +- Group loading of translations for integrations to reduce executor jobs at startup ([@bdraco] - [#110674]) +- Fix local todo list persistence for due dates ([@allenporter] - [#110830]) ([local_todo docs]) +- Clean up twitch setup ([@joostlek] - [#110849]) ([twitch docs]) +- Set up smtp integration via the UI ([@jbouwh] - [#110817]) ([smtp docs]) +- Use covariant for fire event data type ([@frenck] - [#110843]) ([image_processing docs]) ([logbook docs]) ([zha docs]) +- Improve floor registry event typing ([@frenck] - [#110844]) +- Add hex color validator ([@frenck] - [#110846]) +- Revert "Set up smtp integration via the UI" ([@jbouwh] - [#110862]) ([smtp docs]) +- Fix races in ESPHome manager tests ([@bdraco] - [#110867]) ([esphome docs]) +- Add Identify device class to homekit_controller ([@Jc2k] - [#110878]) ([homekit_controller docs]) +- Show WebRTC cameras that also support HLS in the media browser ([@OnFreund] - [#108796]) ([camera docs]) +- Fix sending multiple empty integration timing in bootstrap ([@bdraco] - [#110872]) +- Enable compression on error log api ([@bdraco] - [#110865]) ([api docs]) +- Update coverage artifact actions to v4 [ci] ([@cdce8p] - [#110344]) +- Fix trigger attachment race in conversation tests ([@bdraco] - [#110869]) ([conversation docs]) +- Fix Velux setup ([@pawlizio] - [#110886]) ([velux docs]) +- Use entity registry fixture in octoprint tests ([@jpbede] - [#110887]) ([octoprint docs]) +- Avoid creating two tasks to setup components at startup ([@bdraco] - [#110828]) +- Bump pyMicrobot to 0.0.16 ([@spycle] - [#110876]) ([keymitt_ble docs]) +- Update AEMET-OpenData to v0.4.8 ([@Noltari] - [#110890]) ([aemet docs]) +- Add better HassJob typing for IntegrationPlatform process_job ([@cdce8p] - [#110896]) +- Use entity & device registry fixtures in unifi tests ([@jpbede] - [#110889]) ([unifi docs]) +- Fix Motionblinds brand name consistency ([@LennP] - [#110222]) ([motion_blinds docs]) +- Partially revert setup typing update ([@cdce8p] - [#110901]) +- Update pytest to 8.0.1 ([@cdce8p] - [#110907]) +- Convert config entry subscriptions to callback ([@bdraco] - [#110900]) ([config docs]) +- Update pre-commit to 3.6.2 ([@cdce8p] - [#110908]) +- Fix mqtt discovery subscribe unsubscribe test with one less task ([@bdraco] - [#110914]) ([mqtt docs]) +- Update wheels artifact actions to v4 [ci] ([@cdce8p] - [#110894]) +- Narrow bosch_shc patch target in config flow tests ([@bdraco] - [#110922]) ([bosch_shc docs]) +- Fix homekit_controller test race ([@bdraco] - [#110917]) ([homekit_controller docs]) +- Reduce one iteration of pending flows in the discovery flow helper ([@bdraco] - [#110918]) +- Fix switcher_kis tests not holding patch while calling async_block_till_done ([@bdraco] - [#110916]) ([switcher_kis docs]) +- Fix steamist not setting unique id when discovered in user flow ([@bdraco] - [#110915]) ([steamist docs]) +- Add missing async_block_till_done to github config flow tests ([@bdraco] - [#110913]) ([github docs]) +- Fix cloud test RuntimeWarning ([@cdce8p] - [#110909]) ([cloud docs]) +- Improve performance of waiting for after dependencies and device config entries ([@bdraco] - [#110902]) +- Avoid creating tasks to run homekit accessories ([@bdraco] - [#110895]) ([homekit docs]) +- Bump esphome dependencies ([@bdraco] - [#110892]) ([esphome docs]) +- Fix BroadlinkThermostat inheritance order ([@eifinger] - [#110927]) ([broadlink docs]) +- Bump zhong-hong-hvac to 1.0.12 ([@crhan] - [#110701]) ([zhong_hong docs]) +- Add label registry ([@frenck] - [#110821]) ([config docs]) +- Bump dawidd6/action-download-artifact from 3.1.0 to 3.1.1 ([@dependabot] - [#110925]) +- Add Motionblinds vitual integrations __init__.py ([@starkillerOG] - [#110903]) (new-integration) +- Update vallox_websocket_api to 5.0.2 ([@yozik04] - [#110752]) ([vallox docs]) +- Fix concurrent reloads in yeelight tests ([@bdraco] - [#110911]) ([yeelight docs]) +- Add microBees integration ([@marcolettieri] - [#99573]) ([microBees docs]) (new-integration) +- Freeze light profiles for further development ([@MartinHjelmare] - [#110946]) ([light docs]) +- Revert powerwall back to awaiting each api call ([@bdraco] - [#110947]) ([powerwall docs]) +- Improve timing mqtt integration discovery test ([@jbouwh] - [#110960]) ([mqtt docs]) +- Do not turn on `denonavr` receiver when changing the source ([@ol-iver] - [#110964]) ([denonavr docs]) +- Group adding unifi entities together to reduce number of tasks ([@bdraco] - [#110965]) ([unifi docs]) +- Make EntityRegistryDisabledHandler._handle_entry_updated a callback ([@bdraco] - [#110966]) +- Add new range sensors to Tessie ([@Bre77] - [#110446]) ([tessie docs]) +- Add async_schedule_reload helper to the ConfigEntries manager ([@bdraco] - [#110912]) ([upnp docs]) ([tplink docs]) ([yeelight docs]) ([flux_led docs]) ([powerwall docs]) ([zwave_js docs]) +- Add check for myuplink startup ClientError ([@astrandb] - [#110926]) ([myuplink docs]) +- Fix failing tessie tests ([@bdraco] - [#110980]) ([tessie docs]) +- Add new intents for cover, valve, vacuum, and media player ([@synesthesiam] - [#110757]) ([media_player docs]) ([cover docs]) ([intent docs]) ([vacuum docs]) ([valve docs]) +- Fix last_reset set for Sense percentage sensors ([@kbickar] - [#110977]) ([sense docs]) +- Migrate yalexs_ble to use async_update_reload_and_abort ([@bdraco] - [#110985]) ([yalexs_ble docs]) +- Migrate unifi to use async_update_reload_and_abort ([@bdraco] - [#110987]) ([unifi docs]) +- Migrate xiaomi_miio to use async_update_reload_and_abort ([@bdraco] - [#110988]) ([xiaomi_miio docs]) +- Bump bring-api to 0.3.1 ([@tr4nt0r] - [#110769]) ([bring docs]) +- Unifi rename controller to hub ([@Kane610] - [#110976]) ([unifi docs]) +- Handle empty name in powerview config flow ([@bdraco] - [#110969]) ([hunterdouglas_powerview docs]) +- Expose Hive Motion Sensor temperature ([@drsgoodall] - [#105985]) ([hive docs]) +- Introduce actuator base entity to microBees ([@FedDam] - [#111000]) ([microBees docs]) +- Bump aioautomower to 2024.2.7 ([@Thomas55555] - [#110991]) ([husqvarna_automower docs]) +- Bump microBeesPy to 0.2.9 ([@FedDam] - [#111006]) ([microBees docs]) +- Migrate sensibo to use async_update_reload_and_abort ([@bdraco] - [#110986]) ([sensibo docs]) +- Add sensor platform to microBees ([@marcolettieri] - [#111008]) ([microBees docs]) (new-platform) +- Bump pyOverkiz to 1.13.7 ([@Tronix117] - [#111004]) ([overkiz docs]) +- Remove update_before_add from nut sensors ([@bdraco] - [#111032]) ([nut docs]) +- Remove update_before_add from legacy ios integration ([@bdraco] - [#111033]) ([ios docs]) +- Add presets to Advantage Air ([@Bre77] - [#109485]) ([advantage_air docs]) +- Fix race in gardena_bluetooth config flow tests ([@bdraco] - [#111042]) ([gardena_bluetooth docs]) +- Add state class to Motion Blinds battery sensor ([@some-guy-23] - [#111016]) ([motion_blinds docs]) +- Reduce registry overhead in tests ([@bdraco] - [#110955]) +- Avoid creating tasks to shutdown entity platforms ([@bdraco] - [#111026]) +- Avoid creating tasks to install dependent requirements ([@bdraco] - [#111048]) +- Make ConfigEntry.async_shutdown a callback ([@bdraco] - [#111027]) +- Fix race in removing entities from the registry ([@bdraco] - [#110978]) +- Reduce overhead to load multiple languages in translations ([@bdraco] - [#111028]) +- Avoid creating multiple tasks for config entry init ([@bdraco] - [#110899]) +- Fix Shelly RPC RSSI sensor removal ([@thecode] - [#111035]) ([shelly docs]) (beta fix) +- Add calendar platform to La Marzocco ([@zweckj] - [#108237]) ([lamarzocco docs]) (new-platform) +- Avoid creating tasks to remove entities ([@bdraco] - [#110967]) +- Fix race in automation test_extraction_functions ([@bdraco] - [#111056]) ([automation docs]) +- Improve UniFi Protect re-auth ([@AngellusMortis] - [#110021]) ([unifiprotect docs]) +- Guide users to migrate from Ubiquiti Cloud Accounts to local for UniFi Protect ([@AngellusMortis] - [#111018]) ([unifiprotect docs]) +- Make adding new device in unifiprotect callback functions ([@bdraco] - [#111054]) ([unifiprotect docs]) +- Increase unifiprotect fallback interval to 20s ([@bdraco] - [#110870]) ([unifiprotect docs]) +- Add async_schedule_call to the Debouncer ([@bdraco] - [#111051]) +- Revert "Reduce dict lookups in entity registry indices" ([@bdraco] - [#111055]) +- Do not directly call async_setup_entry in MQTT tests ([@jbouwh] - [#111010]) ([mqtt docs]) +- Make device registry cleanup a callback function ([@bdraco] - [#111052]) +- Replace Wolflink dependency with wolf_comm to support authentication via OpenID ([@janrothkegel] - [#110249]) ([wolflink docs]) +- Add tests to myuplink binary_sensor ([@astrandb] - [#110995]) ([myuplink docs]) +- Avoid the final write of every registry at the end of each test ([@bdraco] - [#111053]) +- Add code owner to roomba integration ([@Orhideous] - [#111071]) ([roomba docs]) +- Support Bring! recently list ([@miaucl] - [#109854]) ([bring docs]) +- Migrate shelly to use Debouncer.async_schedule_call ([@bdraco] - [#111087]) ([shelly docs]) +- Update AEMET-OpenData to v0.4.9 ([@Noltari] - [#111092]) ([aemet docs]) +- Avoid late import of area registry in device registry if its not used ([@bdraco] - [#111081]) +- Avoid compressing application (tarfile) downloads from supervisor ([@bdraco] - [#110224]) ([hassio docs]) +- Avoid circular import in Storage.async_delay_save ([@bdraco] - [#111086]) +- Fix Motionblinds TDBU ([@starkillerOG] - [#110871]) ([motion_blinds docs]) +- Add icon translations to Tessie ([@piitaya] - [#111096]) ([tessie docs]) +- Add Vital 100S & Vital 200S to VeSync sensors ([@jkossis] - [#111017]) ([vesync docs]) +- Add translation to Tessie exceptions ([@Bre77] - [#106525]) ([tessie docs]) +- Auto detect ZHA SMLIGHT SLZB-07 dongle ([@tl-sl] - [#110982]) ([zha docs]) +- Remove ZHA storage file cleanup logic ([@dmulcahey] - [#111088]) ([zha docs]) +- KNX: Group address validators use more detailed error messages ([@farmio] - [#110875]) ([knx docs]) +- Bump pyschlage to 2024.2.0 ([@dknowles2] - [#111079]) ([schlage docs]) +- Fix race in otbr config flow ([@bdraco] - [#111044]) ([otbr docs]) +- Migrate Bluetooth coordinators to use Debouncer async_schedule_call ([@bdraco] - [#111077]) ([bluetooth docs]) +- Add sensor platform for husqvarna_automower ([@Thomas55555] - [#110410]) ([husqvarna_automower docs]) (new-platform) +- Remove reserved UpdateFailed exception in AsusWRT ([@ollo69] - [#110910]) ([asuswrt docs]) +- Move backup/* WS commands to the backup integration ([@ludeeus] - [#110651]) ([recorder docs]) ([backup docs]) +- Add myuplink switch platform ([@astrandb] - [#110810]) ([myuplink docs]) (new-platform) +- Bump microBeesPy to 0.3.2 ([@FedDam] - [#111067]) ([microBees docs]) +- Bump dawidd6/action-download-artifact from 3.1.1 to 3.1.2 ([@dependabot] - [#111120]) +- Add switch platform for husqvarna_automower ([@Thomas55555] - [#110139]) ([husqvarna_automower docs]) (new-platform) +- Disable AEMET legacy options ([@Noltari] - [#107795]) ([aemet docs]) (breaking-change) +- Replace dash with hard hyphen in myuplink entity names ([@astrandb] - [#111074]) ([myuplink docs]) +- Bump georss-qld-bushfire-alert-client to 0.7 ([@exxamalte] - [#111075]) ([qld_bushfire docs]) +- Bump pydrawise to 2024.2.0 ([@dknowles2] - [#111080]) ([hydrawise docs]) +- 2024.2.3 ([@frenck] - [#111133]) +- Revert "Move backup/* WS commands to the backup integration" ([@ludeeus] - [#111136]) ([recorder docs]) ([backup docs]) +- Use async_update_reload_and_abort helper in discord ([@jpbede] - [#111104]) ([discord docs]) +- Handle media position in Bravia TV ([@Drafteed] - [#107080]) ([braviatv docs]) +- Remove filter of -1 in Shelly block based sensors ([@thecode] - [#111116]) ([shelly docs]) +- Bump pyunifiprotect to 4.23.3 ([@AngellusMortis] - [#111059]) ([unifiprotect docs]) +- Cache formatting of mac addresses ([@bdraco] - [#111140]) +- bump bring-api to 0.4.1 ([@tr4nt0r] - [#111149]) ([bring docs]) +- Bump rova to 0.4.0 ([@rkruisselbrink] - [#111131]) ([rova docs]) +- Add number entities to change heat pump program temperatures in ViCare integration ([@CFenner] - [#109315]) ([vicare docs]) +- Update AEMET-OpenData to v0.5.0 ([@Noltari] - [#111155]) ([aemet docs]) +- Refactor Debouncer usage in august ([@bdraco] - [#111102]) ([august docs]) +- Correct myUplink dash replacement ([@astrandb] - [#111143]) ([myuplink docs]) +- Bump `brother` library to version 4.0.0 ([@bieniu] - [#111157]) ([brother docs]) +- Simplify ESPHome entity removal process ([@bdraco] - [#111076]) ([esphome docs]) +- Fix lingering timer in enphase_envoy test ([@bdraco] - [#111165]) ([enphase_envoy docs]) +- Avoid creating tasks for dependencies already being setup ([@bdraco] - [#111034]) +- Add base class AndroidTVEntity to AndroidTV ([@ollo69] - [#105945]) ([androidtv docs]) +- Add metadata for UniFi Protect Media Source ([@AngellusMortis] - [#109389]) ([unifiprotect docs]) +- Update pylutron-caseta to 0.20.0 ([@mdonoughe] - [#111169]) ([lutron_caseta docs]) +- Improve error reporting in tplink config flow ([@bdraco] - [#111166]) ([tplink docs]) +- Rework how shade updates are processed in powerview ([@kingy444] - [#110928]) ([hunterdouglas_powerview docs]) +- Fix stale sensors for Recollect Waste ([@mikeodr] - [#111174]) ([recollect_waste docs]) +- Bump plexapi to 4.15.10 ([@jjlawren] - [#111180]) ([plex docs]) +- Optimize mqtt device cleanup ([@jbouwh] - [#111170]) ([mqtt docs]) +- Fix race in openalpr_cloud tests ([@bdraco] - [#111185]) ([openalpr_cloud docs]) +- Convert hardware system status websocket api to a normal function ([@bdraco] - [#111172]) ([hardware docs]) +- Bump pytraccar from 2.1.0 to 2.1.1 ([@ludeeus] - [#111188]) ([traccar docs]) ([traccar_server docs]) +- Update AEMET-OpenData to v0.5.1 ([@Noltari] - [#111191]) ([aemet docs]) +- Bump github/codeql-action from 3.24.3 to 3.24.4 ([@dependabot] - [#111184]) +- Enable SIM114 ruff rule ([@joostlek] - [#111125]) +- Update coverage to 7.4.2 ([@cdce8p] - [#111194]) +- Update beautifulsoup4 to 4.12.3 ([@cdce8p] - [#111195]) ([scrape docs]) +- Convert hassio websocket_apis that did not await to normal functions ([@bdraco] - [#111173]) ([hassio docs]) +- Avoid creating tasks to register hassio panels ([@bdraco] - [#111206]) ([hassio docs]) +- Migrate zha to use Debouncer.async_schedule_call ([@bdraco] - [#111103]) ([zha docs]) +- Add device counter entities to ZHA ([@dmulcahey] - [#111175]) ([zha docs]) +- Fix race in ESPHome entity test ([@bdraco] - [#111179]) ([esphome docs]) +- Avoid yalexs_ble delaying startup when the lock is not advertising ([@bdraco] - [#111167]) ([yalexs_ble docs]) +- YAML loader performance improvements ([@bdraco] - [#111199]) +- Avoid creating tasks for automation and script validation ([@bdraco] - [#111181]) ([automation docs]) +- Improve performance of filtering HomeKit entities ([@bdraco] - [#111201]) ([homekit docs]) +- Refactor storage collections to reduce tasks during startup ([@bdraco] - [#111182]) +- Refactor keyed event trackers to reduce future refactoring risk ([@bdraco] - [#111150]) +- Avoid linear search to remove from the entity registry index ([@bdraco] - [#111138]) +- Bump python-hpilo to 4.4.3 ([@Nirostar] - [#110325]) ([hp_ilo docs]) +- Isolate systemmonitor from psutil shared state ([@gjohansson-ST] - [#111110]) ([systemmonitor docs]) +- Avoid rechecking for missing platforms in the loader ([@bdraco] - [#111204]) +- Avoid scheduling a task to add each entity when not using update_before_add ([@bdraco] - [#110951]) +- Code improvements for microbees component ([@rlippmann] - [#111208]) ([microBees docs]) +- Update pylint to 3.0.4 ([@cdce8p] - [#111229]) ([sensor docs]) ([tuya docs]) ([stream docs]) ([bang_olufsen docs]) +- Avoid creating task per device when adding legacy device trackers ([@bdraco] - [#111220]) ([device_tracker docs]) +- Bump ZHA dependencies ([@dmulcahey] - [#111227]) ([zha docs]) +- Fix bluetooth manager stop missing callback decorator ([@bdraco] - [#111232]) ([bluetooth docs]) +- Improve tplink authenticate description wording ([@rytilahti] - [#111250]) ([tplink docs]) +- Convert debouncer async_shutdown to be a normal function ([@bdraco] - [#111257]) ([usb docs]) ([bluetooth docs]) +- Avoid reschedule churn in Storage.async_delay_save ([@bdraco] - [#111091]) +- Bump cryptography to 42.0.5 ([@bdraco] - [#111259]) +- Add debugging to coordinator output in System Monitor ([@gjohansson-ST] - [#111244]) ([systemmonitor docs]) +- Bump `pysnmp-lextudio` library to version 6.0.2 ([@bieniu] - [#111193]) ([snmp docs]) +- Subscribe to Traccar Server events ([@ludeeus] - [#111262]) ([traccar_server docs]) +- Fix bring! comment pep8 conformity ([@miaucl] - [#111276]) ([bring docs]) +- Update pipdeptree to 2.15.1 ([@cdce8p] - [#111269]) +- Update pytest-socket to 0.7.0 ([@cdce8p] - [#111270]) +- Update pytest-sugar to 1.0.0 ([@cdce8p] - [#111271]) +- Update coverage to 7.4.3 ([@cdce8p] - [#111267]) +- Bump habluetooth to 2.4.1 ([@bdraco] - [#111236]) ([bluetooth docs]) +- Add Airzone Cloud Air Quality zone sensors ([@Noltari] - [#106571]) ([airzone_cloud docs]) +- Add Airzone Cloud Air Quality zone binary sensors ([@Noltari] - [#106573]) ([airzone_cloud docs]) +- Bump odp-amsterdam to v6.0.1 ([@klaasnicolaas] - [#111296]) ([garages_amsterdam docs]) +- Update pytest-timeout to 2.2.0 ([@cdce8p] - [#111272]) +- Bump yalexs-ble to 2.4.2 ([@bdraco] - [#111247]) ([august docs]) ([yalexs_ble docs]) +- Nuki add battery critical binary sensor ([@steffenrapp] - [#111285]) ([nuki docs]) +- Add strings to the options attribute ([@dougiteixeira] - [#111302]) ([moon docs]) +- Bump motionblinds to 0.6.23 ([@starkillerOG] - [#111265]) ([motion_blinds docs]) +- Add light platform to microBees and change docstring in sensor ([@FedDam] - [#111093]) ([microBees docs]) (new-platform) +- Add diagnostics support for AEMET ([@Noltari] - [#111218]) ([aemet docs]) +- Add diagnostics to System Monitor ([@gjohansson-ST] - [#111291]) ([systemmonitor docs]) +- Add ECO temp to Generic Thermostat ([@Minims] - [#110471]) ([generic_thermostat docs]) +- Remove obsolete entities from System Monitor automatically ([@gjohansson-ST] - [#111231]) ([systemmonitor docs]) +- Fix `async_validate_location` arguments order ([@engrbm87] - [#111277]) ([islamic_prayer_times docs]) +- Bump pydiscovergy to 3.0.0 ([@jpbede] - [#111305]) ([discovergy docs]) +- Unifi websocket manager ([@Kane610] - [#111041]) ([unifi docs]) +- Fix workday blocking the event loop ([@bdraco] - [#111310]) ([workday docs]) +- Fix profiler.lru_stats always throwing an exception ([@bdraco] - [#111249]) ([profiler docs]) +- Freeze time in aemet diagnostics test ([@jpbede] - [#111308]) ([aemet docs]) +- Load translations at setup time if they were not loaded at bootstrap ([@bdraco] - [#110921]) +- Reduce Bluetooth setup time ([@bdraco] - [#111304]) ([bluetooth docs]) +- Add myuplink number platform ([@astrandb] - [#111154]) ([myuplink docs]) (new-platform) +- Fix sql integration no recorder ([@gjohansson-ST] - [#111263]) ([sql docs]) +- Bump tplink-omada-client to 1.3.11 ([@MarkGodwin] - [#111273]) ([tplink_omada docs]) +- Add icons translations for airvisual ([@joostlek] - [#111318]) ([airvisual docs]) +- Bump ibeacon-ble to 1.2.0 ([@bdraco] - [#111315]) ([ibeacon docs]) +- Update python-homewizard-energy to 4.3.1 ([@cdce8p] - [#111311]) ([homewizard docs]) +- Add icon translations to alarmdecoder ([@joostlek] - [#111319]) ([alarmdecoder docs]) +- Add icon translations to amberelectric ([@joostlek] - [#111321]) ([amberelectric docs]) +- Add icon translations to aftership ([@joostlek] - [#111317]) ([aftership docs]) +- Add icon translations to Blue current ([@joostlek] - [#111347]) ([blue_current docs]) +- Add icon translations to Balboa ([@joostlek] - [#111343]) ([balboa docs]) +- Add icon translations to apcupsd ([@joostlek] - [#111342]) ([apcupsd docs]) +- Add icon translations to aosmith ([@joostlek] - [#111340]) ([aosmith docs]) +- Use device class icon in Anthem AV ([@joostlek] - [#111339]) ([anthemav docs]) +- Add icon translations to Android TV ([@joostlek] - [#111338]) ([androidtv docs]) +- Add icon translations to Blink ([@joostlek] - [#111346]) ([blink docs]) +- Add icon translations to Comelit ([@joostlek] - [#111358]) ([comelit docs]) +- Add icon translations to DNS IP ([@joostlek] - [#111369]) ([dnsip docs]) +- Refactor deprecated workday argument ([@cdce8p] - [#111379]) ([workday docs]) +- Make matter import in google_assistant late to avoid blocking the event loop ([@bdraco] - [#111335]) ([google_assistant docs]) +- Add icon translations to Nuki ([@steffenrapp] - [#111377]) ([nuki docs]) +- Nuki add binary sensor for battery charging ([@steffenrapp] - [#111320]) ([nuki docs]) +- Add icon translations to Cast ([@joostlek] - [#111352]) ([cast docs]) +- Add icon translations to Bring ([@joostlek] - [#111351]) ([bring docs]) +- Add icon translations to Cloud ([@joostlek] - [#111355]) ([cloud docs]) +- Add icon translations to Coolmaster ([@joostlek] - [#111359]) ([coolmaster docs]) +- Add icon translations to Cert expiry ([@joostlek] - [#111354]) ([cert_expiry docs]) +- Add icon translations to Daikin ([@joostlek] - [#111362]) ([daikin docs]) +- Use device class icon in Crownstone ([@joostlek] - [#111361]) ([crownstone docs]) +- Use device class icon in cpu-speed ([@joostlek] - [#111360]) ([cpuspeed docs]) +- Add icon translations to Color extractor ([@joostlek] - [#111357]) ([color_extractor docs]) +- Add icon translations to Cloudflare ([@joostlek] - [#111356]) ([cloudflare docs]) +- Add icon translations to Bosch SHC ([@joostlek] - [#111350]) ([bosch_shc docs]) +- Add icon translations to Dremel 3D printer ([@joostlek] - [#111371]) ([dremel_3d_printer docs]) +- Add icon translations to Doorbird ([@joostlek] - [#111370]) ([doorbird docs]) +- Add icon translations to Dexcom ([@joostlek] - [#111368]) ([dexcom docs]) +- Bump Geosphere to v0.3.6 ([@killer0071234] - [#111376]) ([zamg docs]) +- Add icons translations for android_ip_webcam ([@joostlek] - [#111324]) ([android_ip_webcam docs]) +- Add icons translations for ambiclimate ([@joostlek] - [#111322]) ([ambiclimate docs]) +- Make hardware setup in hassio a normal function ([@bdraco] - [#111328]) ([hassio docs]) +- Allow EM Setpoint in Honeywell ([@mkmer] - [#111332]) ([honeywell docs]) +- Adjustment post move to WS in Traccar Server ([@ludeeus] - [#111337]) ([traccar_server docs]) +- Add icon translations to Deconz ([@joostlek] - [#111363]) ([deconz docs]) +- Update aionotion to 2024.02.2 ([@cdce8p] - [#111388]) ([notion docs]) +- Update pylint to 3.1.0 ([@cdce8p] - [#111392]) +- Fix flakey utility meter test ([@bdraco] - [#111400]) ([utility_meter docs]) +- Update pytest to 8.0.2 ([@cdce8p] - [#111399]) +- Add Nuki ID as serial number ([@steffenrapp] - [#111381]) ([nuki docs]) +- Run pylint sorted platform check also when platform has type annotations ([@jpbede] - [#111407]) +- Fix Glances translation keys on CPU load, Memory use, Swap use ([@wittypluck] - [#111401]) ([glances docs]) +- Update ciso8601 to 2.3.1 ([@cdce8p] - [#111389]) +- Bump homematicip to 1.1.0 ([@hahn-th] - [#111385]) ([homematicip_cloud docs]) +- Bump bluetooth-adapters to 0.18.0 ([@bdraco] - [#111316]) ([bluetooth docs]) +- Update bcrypt to 4.1.2 ([@cdce8p] - [#111283]) +- Enable CONF_STATION_UPDATES by default on AEMET ([@Noltari] - [#111214]) ([aemet docs]) +- Add icon translations to EasyEnergy ([@joostlek] - [#111413]) ([easyenergy docs]) +- Add icon translations to Ecoforest ([@joostlek] - [#111417]) ([ecoforest docs]) +- Add icon translations to Electric Kiwi ([@joostlek] - [#111422]) ([electric_kiwi docs]) +- Add icon translations to edl21 ([@joostlek] - [#111420]) ([edl21 docs]) +- Add icon translations to Ecobee ([@joostlek] - [#111416]) ([ecobee docs]) +- Add icon translations to Dynalite ([@joostlek] - [#111412]) ([dynalite docs]) +- Fix KNX cover schema for voluptuous 0.14.2 ([@farmio] - [#111427]) ([knx docs]) +- Bump tesla-fleet-api to 0.4.6 in Teslemetry ([@Bre77] - [#111127]) ([teslemetry docs]) +- Bump aioesphomeapi to 22.1.0 ([@dougiteixeira] - [#111435]) ([esphome docs]) +- Update freezegun to 1.4.0 ([@cdce8p] - [#111268]) +- Fix uneeded state update in Idasen Desk sensor ([@abmantis] - [#111433]) ([idasen_desk docs]) +- Esphome text sensor device class ([@dougiteixeira] - [#111057]) ([esphome docs]) +- Add sensors for energy storage system to ViCare integration ([@CFenner] - [#106600]) ([vicare docs]) +- Add @astrandb as myuplink codeowner ([@astrandb] - [#111449]) ([myuplink docs]) +- Add TechnoVE auto charge switch ([@Moustachauve] - [#109093]) ([technove docs]) (new-platform) +- Add validation to water_heater set_operation mode at entity component ([@jbouwh] - [#111168]) ([water_heater docs]) +- Add Motionblinds virtual integration Acomax ([@starkillerOG] - [#111458]) ([acomax docs]) (new-integration) +- Improve handling mqtt command template exceptions ([@jbouwh] - [#110499]) ([mqtt docs]) +- Add Motionblinds virtual integration Krispol ([@starkillerOG] - [#111456]) ([krispol docs]) (new-integration) +- Add Motionblinds virtual integration Madeco ([@starkillerOG] - [#111455]) ([madeco docs]) (new-integration) +- Improve logging of google_assistant messages ([@emontnemery] - [#110637]) ([cloud docs]) ([google_assistant docs]) +- Add @tronix117 as overkiz codeowner ([@Tronix117] - [#111464]) ([overkiz docs]) +- Bump vallox-websocket-api to 5.1.0 ([@yozik04] - [#111471]) ([vallox docs]) +- Bump Python-roborock to 0.39.2 ([@Lash-L] - [#111479]) ([roborock docs]) +- Add webmin integration ([@autinerd] - [#106976]) ([webmin docs]) (new-integration) +- Fix race in dlna_dmr test ([@bdraco] - [#111428]) ([dlna_dmr docs]) +- Bump myuplink lib to 0.5.0 ([@astrandb] - [#111447]) ([myuplink docs]) +- Update idasen-ha to v2.5.1 to fix regression ([@abmantis] - [#111439]) ([idasen_desk docs]) +- 2024.2.4 ([@balloob] - [#111441]) +- Switch nmap_tracker to use aiooui ([@bdraco] - [#111415]) ([nmap_tracker docs]) +- Add support for eager tasks ([@bdraco] - [#111425]) +- Remove `@bind_hass` from async_active_zone and make callback function ([@jpbede] - [#111488]) ([zone docs]) +- Use discovery flow helper for hardware integrations ([@bdraco] - [#111437]) ([zha docs]) ([homeassistant_yellow docs]) ([homeassistant_sky_connect docs]) +- Update xknx to 2.12.1 and xknxproject to 3.7.0 ([@farmio] - [#111460]) ([knx docs]) +- Add `single_config_entry` manifest option ([@jpbede] - [#109505]) ([config docs]) +- Image entity media source ([@OnFreund] - [#104743]) ([image docs]) +- Update rfxtrx library to handle connection retries ([@elupus] - [#111366]) ([rfxtrx docs]) +- Remove JuiceNet integration ([@emontnemery] - [#111477]) ([juicenet docs]) (breaking-change) +- Add hvac_action to flexit_bacnet climate entity ([@lellky] - [#110498]) ([flexit_bacnet docs]) +- Bump pyMicrobot to 0.0.17 ([@spycle] - [#111496]) ([keymitt_ble docs]) +- Reolink trigger ReAuth when credentials invalid during update ([@starkillerOG] - [#111492]) ([reolink docs]) +- Add support for importing integrations in the executor ([@bdraco] - [#111336]) ([matter docs]) +- Improve code comment for Chrome frame bug in Camera ([@OnFreund] - [#111504]) ([camera docs]) +- Fix dict changing size during iteration in deconz ([@bdraco] - [#111523]) ([deconz docs]) +- Add support to Lutron lights for color and temperature control ([@eclair4151] - [#109019]) ([lutron_caseta docs]) +- Import radio_browser in the executor to avoid blocking the event loop ([@bdraco] - [#111519]) ([radio_browser docs]) +- Import influxdb in the executor to avoid blocking the event loop ([@bdraco] - [#111520]) ([influxdb docs]) +- WeatherFlow Forecast (REST API) ([@jeeftor] - [#106615]) ([weatherflow_cloud docs]) (new-integration) +- Import mqtt in the executor to avoid blocking the event loop ([@bdraco] - [#111521]) ([mqtt docs]) +- Add icon translations to Flo ([@joostlek] - [#111542]) ([flo docs]) +- Bump aioshelly to 8.0.2 ([@thecode] - [#111414]) ([shelly docs]) +- Avoid call to `hass.helpers` in permobile ([@jpbede] - [#111541]) ([permobil docs]) +- Add Tado add meter readings service ([@niro1987] - [#111552]) ([tado docs]) +- Add icon translations to Fritz ([@joostlek] - [#111547]) ([fritz docs]) +- Fix text in docstrings and debug logging for loader ([@bdraco] - [#111560]) +- Add speech-to-text cooldown for local wake word ([@synesthesiam] - [#108806]) ([assist_pipeline docs]) +- Use an eager task to update multiple entities ([@bdraco] - [#111556]) +- Create tasks eagerly in the discovery flow helper ([@bdraco] - [#111557]) +- Reduce latency to set up websocket forwarding in hassio ([@bdraco] - [#111558]) ([hassio docs]) +- Reduce latency to connect websocket writer ([@bdraco] - [#111559]) ([websocket_api docs]) +- Convert person start to be a callback function ([@bdraco] - [#111571]) ([person docs]) +- Start the debouncer task eagerly ([@bdraco] - [#111569]) +- Start automations with eager tasks ([@bdraco] - [#111568]) ([automation docs]) +- Bump yalexs to 1.11.4 ([@bdraco] - [#111567]) ([august docs]) +- Make unifiprotect fallback update an eager task ([@bdraco] - [#111580]) ([unifiprotect docs]) +- Use eager_start for sonos ping background task ([@bdraco] - [#111578]) ([sonos docs]) +- Refactor rainmachine to increase chance of reusing the connection ([@bdraco] - [#111573]) ([rainmachine docs]) +- Migrate gather_with_limited_concurrency to use create_eager_task ([@bdraco] - [#111565]) +- Use eager start for august subscriber refreshes ([@bdraco] - [#111581]) ([august docs]) +- Use eager task creation for entity platform polling ([@bdraco] - [#111575]) +- Import zeroconf in the executor to avoid blocking the event loop ([@bdraco] - [#111591]) ([zeroconf docs]) +- Import dhcp in the executor to avoid blocking the event loop ([@bdraco] - [#111589]) ([dhcp docs]) +- Import samsungtv in the executor to avoid blocking the event loop ([@bdraco] - [#111588]) ([samsungtv docs]) +- Import wemo in the executor to avoid blocking the event loop ([@bdraco] - [#111587]) ([wemo docs]) +- Import thread in the executor to avoid blocking the event loop ([@bdraco] - [#111586]) ([thread docs]) +- ESPHome: Pass through wake_word_phrase from on-device microWakeWord ([@jesserockz] - [#111585]) ([esphome docs]) +- Import spotify in the executor to avoid blocking the event loop ([@bdraco] - [#111594]) ([spotify docs]) +- Import august in the executor to avoid blocking the event loop ([@bdraco] - [#111595]) ([august docs]) +- Use an eager task in the update coordinator scheduled refresh ([@bdraco] - [#111570]) +- Create component setup tasks eagerly in bootstrap ([@bdraco] - [#111511]) +- Import usb in the executor to avoid blocking the event loop ([@bdraco] - [#111592]) ([usb docs]) +- Fully fix race in removing entities ([@bdraco] - [#111499]) +- Load config entry platforms eagerly ([@bdraco] - [#111498]) +- Create bootstrap tasks eagerly ([@bdraco] - [#111497]) +- Remove zeroconf from ssdp after deps ([@bdraco] - [#111326]) ([ssdp docs]) +- Reduce bootstrap code ([@bdraco] - [#111450]) +- Import ssdp in the executor to avoid blocking the event loop ([@bdraco] - [#111593]) ([ssdp docs]) +- Update pyipp to 0.14.5 ([@ctalkington] - [#111590]) ([ipp docs]) +- Refactor eafm to avoid creating entities in the coordinator update ([@bdraco] - [#111601]) ([eafm docs]) +- Bump deebot-client to 6.0.2 ([@edenhaus] - [#111507]) ([ecovacs docs]) +- Make core tests that should run in the event loop coros ([@bdraco] - [#111605]) +- Add icon translations to Geocaching ([@joostlek] - [#111613]) ([geocaching docs]) +- Add icon translations to Garages Amsterdam ([@joostlek] - [#111610]) ([garages_amsterdam docs]) +- Deprecate Logi Circle integration ([@emontnemery] - [#111491]) ([logi_circle docs]) +- Bump actions/download-artifact from 4.1.2 to 4.1.3 ([@dependabot] - [#111602]) +- Update python-slugify to 8.0.4 ([@cdce8p] - [#111284]) +- Update typing-extensions to 4.10.0 ([@cdce8p] - [#111538]) +- Add device list to ZHA config entry diagnostics ([@dmulcahey] - [#111549]) ([zha docs]) +- Import zwave_js in the executor to avoid blocking the event loop ([@bdraco] - [#111622]) ([zwave_js docs]) +- Add statistics keep_last_sample option ([@brenank] - [#88655]) ([statistics docs]) +- Deprecate the Ambiclimate integration ([@emontnemery] - [#111627]) ([ambiclimate docs]) +- Deprecate mailbox platform ([@edenhaus] - [#110930]) ([asterisk_mbox docs]) ([mailbox docs]) ([asterisk_cdr docs]) +- Extend ZHA thermostat local temperature calibration range for Sonoff TRVZB ([@TheNoim] - [#109691]) ([zha docs]) +- Import xbox in the executor to avoid blocking the event loop ([@bdraco] - [#111625]) ([xbox docs]) +- Import airvisual in the executor to avoid blocking the event loop ([@bdraco] - [#111624]) ([airvisual docs]) +- Import shelly in the executor to avoid blocking the event loop ([@bdraco] - [#111623]) ([shelly docs]) +- Add icon translations to Fully kiosk ([@joostlek] - [#111609]) ([fully_kiosk docs]) +- Use an eager task to setup entity platforms ([@bdraco] - [#111574]) +- Ensure all data is set in seventeentrack before adding entities ([@bdraco] - [#111603]) ([seventeentrack docs]) +- Avoid call to `hass.helpers.store` in LabelRegistry ([@jpbede] - [#111555]) +- Always allow ignore and unignore flows for single config entry integrations ([@emontnemery] - [#111631]) +- Wolflink connection pooling ([@janrothkegel] - [#111483]) ([wolflink docs]) +- Fix rfxtrx flaky reconnect test ([@MartinHjelmare] - [#111635]) ([rfxtrx docs]) +- Avoid race condition with UDP voice server starting in ESPHome ([@synesthesiam] - [#111644]) ([esphome docs]) +- Move backup/* WS commands to the backup integration ([@ludeeus] - [#111636]) ([recorder docs]) ([backup docs]) +- Import bluetooth in the executor to avoid blocking the event loop ([@bdraco] - [#111596]) ([bluetooth docs]) +- Update list of integrations known to violate color mode rules ([@emontnemery] - [#111647]) ([light docs]) +- Break out UniFi get_unifi_api function ([@Kane610] - [#111323]) ([unifi docs]) +- Return FlowResultType.ABORT when violating single_config_entry ([@emontnemery] - [#111637]) +- 2024.2.5 ([@balloob] - [#111648]) ([kitchen_sink docs]) +- Add button platform to microBees ([@FedDam] - [#111141]) ([microBees docs]) (new-platform) +- Bump aiounifi to v72 ([@Kane610] - [#111649]) ([unifi docs]) +- Use eager task creation to add entities to entity platform ([@bdraco] - [#111553]) +- Bump pyenphase to 1.19.1 ([@catsmanac] - [#111653]) ([enphase_envoy docs]) +- Bump aiohomekit to 3.1.5 ([@bdraco] - [#111663]) ([homekit_controller docs]) +- Fix Switcher test update CI failure ([@thecode] - [#111667]) ([switcher_kis docs]) +- Bad Request from supervisor should be error ([@mdegat01] - [#111162]) ([hassio docs]) +- Add ODROID-M1S as a supported OS hardware board ([@sairon] - [#111022]) ([hassio docs]) ([version docs]) ([hardkernel docs]) +- Add icon translations to Goodwe ([@joostlek] - [#111655]) ([goodwe docs]) +- Add icon translations to Google Sheets ([@joostlek] - [#111661]) ([google_sheets docs]) +- Add icon translations to Google Mail ([@joostlek] - [#111660]) ([google_mail docs]) +- Add icon translations to Google Generative AI Conversation ([@joostlek] - [#111659]) ([google_generative_ai_conversation docs]) +- Add icon translations to Google Assistant ([@joostlek] - [#111657]) ([google_assistant docs]) +- Add Grid import export to Enphase Envoy ([@catsmanac] - [#110884]) ([enphase_envoy docs]) +- Add icon translations to Goalzero ([@joostlek] - [#111630]) ([goalzero docs]) +- Use eager_start for shelly task creation ([@bdraco] - [#111671]) ([shelly docs]) +- Remove `@bind_hass` from `camera` functions ([@jpbede] - [#111494]) ([camera docs]) +- Cleanup BLE-only controls when migrating HomeKit BLE device to Thread ([@Jc2k] - [#110334]) ([homekit_controller docs]) +- Avoid call to `hass.helpers.store` in FloorRegistry ([@jpbede] - [#111554]) +- Use eager_start for background service call tasks ([@bdraco] - [#111620]) +- Add icon translations to Energyzero ([@joostlek] - [#111513]) ([energyzero docs]) +- Migrate setup to use eager tasks ([@bdraco] - [#111619]) +- Small speed up to Bluetooth setup ([@bdraco] - [#111677]) ([bluetooth docs]) +- Use eager_start for homekit task creation ([@bdraco] - [#111675]) ([homekit docs]) +- Await service calls in emulated_hue instead of making them blocking ([@bdraco] - [#111674]) ([emulated_hue docs]) +- Update httpx to 0.27.0 and httpcore to 1.0.4 ([@bdraco] - [#111681]) +- Bump aioshelly to 8.1.1 ([@chemelli74] - [#111678]) ([shelly docs]) +- Drop `@bind_hass` use from hassio component ([@jpbede] - [#111522]) ([hassio docs]) +- Add icon translations to Google ([@joostlek] - [#111656]) ([google docs]) +- Add icon translations to Foscam ([@joostlek] - [#111546]) ([foscam docs]) +- Bump pysignalclirestapi to 0.3.23 ([@bbernhard] - [#111501]) ([signal_messenger docs]) +- Add icon translations to Generic camera ([@joostlek] - [#111612]) ([generic docs]) +- Reduce task overhead in homekit_controller ([@bdraco] - [#111670]) ([homekit_controller docs]) +- Reduce hassio setup time ([@bdraco] - [#111686]) ([hassio docs]) +- Reduce latency in storage by making the tasks eager ([@bdraco] - [#111500]) +- Add icon translations to Flume ([@joostlek] - [#111543]) ([flume docs]) +- Avoid tracking tasks that finish right away ([@bdraco] - [#111690]) +- Import xiaomi_ble in the executor to avoid blocking the event loop ([@bdraco] - [#111693]) ([xiaomi_ble docs]) +- Make homekit_controller platform load tasks eagerly ([@bdraco] - [#111701]) ([homekit_controller docs]) +- Add icon translations to Epson ([@joostlek] - [#111528]) ([epson docs]) +- Add icon translations to Glances ([@joostlek] - [#111615]) ([glances docs]) +- Add icon translations to GDACS ([@joostlek] - [#111611]) ([gdacs docs]) +- Add icon translations to FiveM ([@joostlek] - [#111539]) ([fivem docs]) +- Add icon translations to Environment Canada ([@joostlek] - [#111527]) ([environment_canada docs]) +- Add icon translations to Escea ([@joostlek] - [#111529]) ([escea docs]) +- Add icon translations to Fireservicerota ([@joostlek] - [#111537]) ([fireservicerota docs]) +- Add icon translations to Fastdotcom ([@joostlek] - [#111534]) ([fastdotcom docs]) +- Add icon translations to Eufylife BLE ([@joostlek] - [#111530]) ([eufylife_ble docs]) +- Add icon translations to FAA delays ([@joostlek] - [#111533]) ([faa_delays docs]) +- Add icon translations to Google Assistant SDK ([@joostlek] - [#111658]) ([google_assistant_sdk docs]) +- Avoid creating system monitor disk sensors for non-dirs ([@bdraco] - [#111695]) ([systemmonitor docs]) +- Add icon translations to Filesize ([@joostlek] - [#111536]) ([filesize docs]) +- Revert "Remove `@bind_hass` from `camera` functions" ([@jpbede] - [#111703]) ([camera docs]) ([image_processing docs]) +- Revert "Remove `@bind_hass` from async_active_zone and make callback function" ([@jpbede] - [#111704]) ([zone docs]) +- Revert "Drop `@bind_hass` use from hassio component (#111522)" ([@jpbede] - [#111705]) ([hassio docs]) +- Add icon translations to Denon avr ([@joostlek] - [#111364]) ([denonavr docs]) +- Add icon translations to Devolo home network ([@joostlek] - [#111367]) ([devolo_home_network docs]) +- Tado code quality improvements ([@erwindouna] - [#107678]) ([tado docs]) +- Add icon translations to Gree ([@joostlek] - [#111662]) ([gree docs]) +- Add icon translations to Fronius ([@joostlek] - [#111608]) ([fronius docs]) +- Bump blebox_uniapi to 2.2.1 ([@swistakm] - [#108918]) ([blebox docs]) +- Import mobile_app in the executor to avoid blocking the event loop ([@bdraco] - [#111692]) ([mobile_app docs]) +- Use eager tasks in a few more places in bootstrap ([@bdraco] - [#111697]) +- Make entity component platform setup tasks eager ([@bdraco] - [#111698]) +- Use eager tasks when updating entity state after service calls ([@bdraco] - [#111702]) +- Add icon translations to DSMR ([@joostlek] - [#111411]) ([dsmr docs]) +- Add icon translations to DROP connect ([@joostlek] - [#111373]) ([drop_connect docs]) +- Add icon translations to BMW ([@joostlek] - [#111348]) ([bmw_connected_drive docs]) +- Add icon translations to Guardian ([@joostlek] - [#111712]) ([guardian docs]) +- Add Comelit humidifier/dehumidifier ([@chemelli74] - [#111203]) ([comelit docs]) (new-platform) +- Add entities for Balboa Spa pumps ([@snoack] - [#111245]) ([balboa docs]) (new-platform) +- Add icon translations to HVV departures ([@joostlek] - [#111728]) ([hvv_departures docs]) +- Adapt Axis integration to library refactoring ([@Kane610] - [#110898]) ([axis docs]) +- Bump github/codeql-action from 3.24.4 to 3.24.5 ([@dependabot] - [#111448]) +- Import tplink in the executor to avoid blocking the event loop ([@bdraco] - [#111691]) ([tplink docs]) +- Import nexia in the executor to avoid blocking the event loop ([@bdraco] - [#111694]) ([nexia docs]) +- Allow translating device names ([@emontnemery] - [#110711]) ([kitchen_sink docs]) +- Add entities for Balboa Spa lights ([@snoack] - [#111252]) ([balboa docs]) (new-platform) +- Add icon translations to Homematic IP Cloud ([@joostlek] - [#111723]) ([homematicip_cloud docs]) +- Add icon translations to Homekit Controller ([@joostlek] - [#111720]) ([homekit_controller docs]) +- Add icon translations to Home connect ([@joostlek] - [#111718]) ([home_connect docs]) +- Add icon translations to Hive ([@joostlek] - [#111717]) ([hive docs]) +- Add icon translations to Heos ([@joostlek] - [#111716]) ([heos docs]) +- Add icon translations to Hassio ([@joostlek] - [#111715]) ([hassio docs]) +- Add icon translations to Harmony ([@joostlek] - [#111714]) ([harmony docs]) +- Add icon translations to Homekit ([@joostlek] - [#111719]) ([homekit docs]) +- Add ecovacs lawn mover ([@Augar] - [#111673]) ([ecovacs docs]) +- Add icon translations to Huawei LTE ([@joostlek] - [#111724]) ([huawei_lte docs]) +- Add icon translations to Huisbaasje ([@joostlek] - [#111726]) ([huisbaasje docs]) +- Remove gather for loading generated files in zeroconf ([@bdraco] - [#111699]) ([zeroconf docs]) +- Use eager tasks in ssdp ([@bdraco] - [#111696]) ([ssdp docs]) +- Update frontend to 20240228.0 ([@bramkragten] - [#111736]) ([frontend docs]) +- Cleanup swiss_public_transport error logging ([@miaucl] - [#111741]) ([swiss_public_transport docs]) +- Import plex in the executor to avoid blocking the event loop ([@bdraco] - [#111743]) ([plex docs]) +- Eagerly unload config entries in tests ([@bdraco] - [#111707]) +- Import powerwall in the executor to avoid blocking the event loop ([@bdraco] - [#111749]) ([powerwall docs]) +- Bump aioraven to 0.5.1 ([@cottsay] - [#111600]) ([rainforest_raven docs]) +- Use new zigpy OTA providers for ZHA ([@puddly] - [#111159]) ([zha docs]) +- Add Ecovacs goat switch entities ([@Augar] - [#111751]) ([ecovacs docs]) + +[#100418]: https://github.com/home-assistant/core/pull/100418 +[#101012]: https://github.com/home-assistant/core/pull/101012 +[#101641]: https://github.com/home-assistant/core/pull/101641 +[#101688]: https://github.com/home-assistant/core/pull/101688 +[#102662]: https://github.com/home-assistant/core/pull/102662 +[#104680]: https://github.com/home-assistant/core/pull/104680 +[#104743]: https://github.com/home-assistant/core/pull/104743 +[#105693]: https://github.com/home-assistant/core/pull/105693 +[#105762]: https://github.com/home-assistant/core/pull/105762 +[#105796]: https://github.com/home-assistant/core/pull/105796 +[#105945]: https://github.com/home-assistant/core/pull/105945 +[#105985]: https://github.com/home-assistant/core/pull/105985 +[#106525]: https://github.com/home-assistant/core/pull/106525 +[#106527]: https://github.com/home-assistant/core/pull/106527 +[#106571]: https://github.com/home-assistant/core/pull/106571 +[#106573]: https://github.com/home-assistant/core/pull/106573 +[#106600]: https://github.com/home-assistant/core/pull/106600 +[#106615]: https://github.com/home-assistant/core/pull/106615 +[#106918]: https://github.com/home-assistant/core/pull/106918 +[#106976]: https://github.com/home-assistant/core/pull/106976 +[#107080]: https://github.com/home-assistant/core/pull/107080 +[#107600]: https://github.com/home-assistant/core/pull/107600 +[#107606]: https://github.com/home-assistant/core/pull/107606 +[#107648]: https://github.com/home-assistant/core/pull/107648 +[#107678]: https://github.com/home-assistant/core/pull/107678 +[#107795]: https://github.com/home-assistant/core/pull/107795 +[#108081]: https://github.com/home-assistant/core/pull/108081 +[#108125]: https://github.com/home-assistant/core/pull/108125 +[#108205]: https://github.com/home-assistant/core/pull/108205 +[#108237]: https://github.com/home-assistant/core/pull/108237 +[#108258]: https://github.com/home-assistant/core/pull/108258 +[#108318]: https://github.com/home-assistant/core/pull/108318 +[#108374]: https://github.com/home-assistant/core/pull/108374 +[#108412]: https://github.com/home-assistant/core/pull/108412 +[#108454]: https://github.com/home-assistant/core/pull/108454 +[#108505]: https://github.com/home-assistant/core/pull/108505 +[#108567]: https://github.com/home-assistant/core/pull/108567 +[#108585]: https://github.com/home-assistant/core/pull/108585 +[#108602]: https://github.com/home-assistant/core/pull/108602 +[#108796]: https://github.com/home-assistant/core/pull/108796 +[#108797]: https://github.com/home-assistant/core/pull/108797 +[#108806]: https://github.com/home-assistant/core/pull/108806 +[#108906]: https://github.com/home-assistant/core/pull/108906 +[#108918]: https://github.com/home-assistant/core/pull/108918 +[#109014]: https://github.com/home-assistant/core/pull/109014 +[#109019]: https://github.com/home-assistant/core/pull/109019 +[#109073]: https://github.com/home-assistant/core/pull/109073 +[#109093]: https://github.com/home-assistant/core/pull/109093 +[#109120]: https://github.com/home-assistant/core/pull/109120 +[#109187]: https://github.com/home-assistant/core/pull/109187 +[#109238]: https://github.com/home-assistant/core/pull/109238 +[#109240]: https://github.com/home-assistant/core/pull/109240 +[#109258]: https://github.com/home-assistant/core/pull/109258 +[#109272]: https://github.com/home-assistant/core/pull/109272 +[#109278]: https://github.com/home-assistant/core/pull/109278 +[#109298]: https://github.com/home-assistant/core/pull/109298 +[#109303]: https://github.com/home-assistant/core/pull/109303 +[#109312]: https://github.com/home-assistant/core/pull/109312 +[#109315]: https://github.com/home-assistant/core/pull/109315 +[#109320]: https://github.com/home-assistant/core/pull/109320 +[#109327]: https://github.com/home-assistant/core/pull/109327 +[#109334]: https://github.com/home-assistant/core/pull/109334 +[#109348]: https://github.com/home-assistant/core/pull/109348 +[#109351]: https://github.com/home-assistant/core/pull/109351 +[#109352]: https://github.com/home-assistant/core/pull/109352 +[#109354]: https://github.com/home-assistant/core/pull/109354 +[#109355]: https://github.com/home-assistant/core/pull/109355 +[#109358]: https://github.com/home-assistant/core/pull/109358 +[#109363]: https://github.com/home-assistant/core/pull/109363 +[#109366]: https://github.com/home-assistant/core/pull/109366 +[#109389]: https://github.com/home-assistant/core/pull/109389 +[#109390]: https://github.com/home-assistant/core/pull/109390 +[#109400]: https://github.com/home-assistant/core/pull/109400 +[#109406]: https://github.com/home-assistant/core/pull/109406 +[#109432]: https://github.com/home-assistant/core/pull/109432 +[#109460]: https://github.com/home-assistant/core/pull/109460 +[#109484]: https://github.com/home-assistant/core/pull/109484 +[#109485]: https://github.com/home-assistant/core/pull/109485 +[#109489]: https://github.com/home-assistant/core/pull/109489 +[#109495]: https://github.com/home-assistant/core/pull/109495 +[#109505]: https://github.com/home-assistant/core/pull/109505 +[#109507]: https://github.com/home-assistant/core/pull/109507 +[#109513]: https://github.com/home-assistant/core/pull/109513 +[#109516]: https://github.com/home-assistant/core/pull/109516 +[#109521]: https://github.com/home-assistant/core/pull/109521 +[#109526]: https://github.com/home-assistant/core/pull/109526 +[#109531]: https://github.com/home-assistant/core/pull/109531 +[#109577]: https://github.com/home-assistant/core/pull/109577 +[#109587]: https://github.com/home-assistant/core/pull/109587 +[#109588]: https://github.com/home-assistant/core/pull/109588 +[#109601]: https://github.com/home-assistant/core/pull/109601 +[#109602]: https://github.com/home-assistant/core/pull/109602 +[#109604]: https://github.com/home-assistant/core/pull/109604 +[#109607]: https://github.com/home-assistant/core/pull/109607 +[#109613]: https://github.com/home-assistant/core/pull/109613 +[#109617]: https://github.com/home-assistant/core/pull/109617 +[#109625]: https://github.com/home-assistant/core/pull/109625 +[#109629]: https://github.com/home-assistant/core/pull/109629 +[#109633]: https://github.com/home-assistant/core/pull/109633 +[#109634]: https://github.com/home-assistant/core/pull/109634 +[#109635]: https://github.com/home-assistant/core/pull/109635 +[#109637]: https://github.com/home-assistant/core/pull/109637 +[#109638]: https://github.com/home-assistant/core/pull/109638 +[#109639]: https://github.com/home-assistant/core/pull/109639 +[#109640]: https://github.com/home-assistant/core/pull/109640 +[#109642]: https://github.com/home-assistant/core/pull/109642 +[#109643]: https://github.com/home-assistant/core/pull/109643 +[#109645]: https://github.com/home-assistant/core/pull/109645 +[#109660]: https://github.com/home-assistant/core/pull/109660 +[#109665]: https://github.com/home-assistant/core/pull/109665 +[#109667]: https://github.com/home-assistant/core/pull/109667 +[#109669]: https://github.com/home-assistant/core/pull/109669 +[#109670]: https://github.com/home-assistant/core/pull/109670 +[#109672]: https://github.com/home-assistant/core/pull/109672 +[#109676]: https://github.com/home-assistant/core/pull/109676 +[#109677]: https://github.com/home-assistant/core/pull/109677 +[#109678]: https://github.com/home-assistant/core/pull/109678 +[#109679]: https://github.com/home-assistant/core/pull/109679 +[#109680]: https://github.com/home-assistant/core/pull/109680 +[#109681]: https://github.com/home-assistant/core/pull/109681 +[#109682]: https://github.com/home-assistant/core/pull/109682 +[#109683]: https://github.com/home-assistant/core/pull/109683 +[#109684]: https://github.com/home-assistant/core/pull/109684 +[#109685]: https://github.com/home-assistant/core/pull/109685 +[#109686]: https://github.com/home-assistant/core/pull/109686 +[#109687]: https://github.com/home-assistant/core/pull/109687 +[#109691]: https://github.com/home-assistant/core/pull/109691 +[#109693]: https://github.com/home-assistant/core/pull/109693 +[#109696]: https://github.com/home-assistant/core/pull/109696 +[#109698]: https://github.com/home-assistant/core/pull/109698 +[#109699]: https://github.com/home-assistant/core/pull/109699 +[#109700]: https://github.com/home-assistant/core/pull/109700 +[#109703]: https://github.com/home-assistant/core/pull/109703 +[#109704]: https://github.com/home-assistant/core/pull/109704 +[#109706]: https://github.com/home-assistant/core/pull/109706 +[#109711]: https://github.com/home-assistant/core/pull/109711 +[#109712]: https://github.com/home-assistant/core/pull/109712 +[#109723]: https://github.com/home-assistant/core/pull/109723 +[#109724]: https://github.com/home-assistant/core/pull/109724 +[#109726]: https://github.com/home-assistant/core/pull/109726 +[#109729]: https://github.com/home-assistant/core/pull/109729 +[#109731]: https://github.com/home-assistant/core/pull/109731 +[#109735]: https://github.com/home-assistant/core/pull/109735 +[#109736]: https://github.com/home-assistant/core/pull/109736 +[#109738]: https://github.com/home-assistant/core/pull/109738 +[#109758]: https://github.com/home-assistant/core/pull/109758 +[#109768]: https://github.com/home-assistant/core/pull/109768 +[#109771]: https://github.com/home-assistant/core/pull/109771 +[#109774]: https://github.com/home-assistant/core/pull/109774 +[#109776]: https://github.com/home-assistant/core/pull/109776 +[#109780]: https://github.com/home-assistant/core/pull/109780 +[#109784]: https://github.com/home-assistant/core/pull/109784 +[#109786]: https://github.com/home-assistant/core/pull/109786 +[#109791]: https://github.com/home-assistant/core/pull/109791 +[#109796]: https://github.com/home-assistant/core/pull/109796 +[#109798]: https://github.com/home-assistant/core/pull/109798 +[#109803]: https://github.com/home-assistant/core/pull/109803 +[#109811]: https://github.com/home-assistant/core/pull/109811 +[#109813]: https://github.com/home-assistant/core/pull/109813 +[#109831]: https://github.com/home-assistant/core/pull/109831 +[#109836]: https://github.com/home-assistant/core/pull/109836 +[#109849]: https://github.com/home-assistant/core/pull/109849 +[#109850]: https://github.com/home-assistant/core/pull/109850 +[#109854]: https://github.com/home-assistant/core/pull/109854 +[#109855]: https://github.com/home-assistant/core/pull/109855 +[#109856]: https://github.com/home-assistant/core/pull/109856 +[#109857]: https://github.com/home-assistant/core/pull/109857 +[#109858]: https://github.com/home-assistant/core/pull/109858 +[#109860]: https://github.com/home-assistant/core/pull/109860 +[#109867]: https://github.com/home-assistant/core/pull/109867 +[#109872]: https://github.com/home-assistant/core/pull/109872 +[#109876]: https://github.com/home-assistant/core/pull/109876 +[#109877]: https://github.com/home-assistant/core/pull/109877 +[#109878]: https://github.com/home-assistant/core/pull/109878 +[#109879]: https://github.com/home-assistant/core/pull/109879 +[#109880]: https://github.com/home-assistant/core/pull/109880 +[#109881]: https://github.com/home-assistant/core/pull/109881 +[#109888]: https://github.com/home-assistant/core/pull/109888 +[#109890]: https://github.com/home-assistant/core/pull/109890 +[#109896]: https://github.com/home-assistant/core/pull/109896 +[#109925]: https://github.com/home-assistant/core/pull/109925 +[#109928]: https://github.com/home-assistant/core/pull/109928 +[#109938]: https://github.com/home-assistant/core/pull/109938 +[#109950]: https://github.com/home-assistant/core/pull/109950 +[#109952]: https://github.com/home-assistant/core/pull/109952 +[#109980]: https://github.com/home-assistant/core/pull/109980 +[#109986]: https://github.com/home-assistant/core/pull/109986 +[#109990]: https://github.com/home-assistant/core/pull/109990 +[#110003]: https://github.com/home-assistant/core/pull/110003 +[#110014]: https://github.com/home-assistant/core/pull/110014 +[#110018]: https://github.com/home-assistant/core/pull/110018 +[#110021]: https://github.com/home-assistant/core/pull/110021 +[#110023]: https://github.com/home-assistant/core/pull/110023 +[#110048]: https://github.com/home-assistant/core/pull/110048 +[#110049]: https://github.com/home-assistant/core/pull/110049 +[#110053]: https://github.com/home-assistant/core/pull/110053 +[#110059]: https://github.com/home-assistant/core/pull/110059 +[#110060]: https://github.com/home-assistant/core/pull/110060 +[#110064]: https://github.com/home-assistant/core/pull/110064 +[#110070]: https://github.com/home-assistant/core/pull/110070 +[#110071]: https://github.com/home-assistant/core/pull/110071 +[#110076]: https://github.com/home-assistant/core/pull/110076 +[#110077]: https://github.com/home-assistant/core/pull/110077 +[#110094]: https://github.com/home-assistant/core/pull/110094 +[#110095]: https://github.com/home-assistant/core/pull/110095 +[#110096]: https://github.com/home-assistant/core/pull/110096 +[#110097]: https://github.com/home-assistant/core/pull/110097 +[#110109]: https://github.com/home-assistant/core/pull/110109 +[#110115]: https://github.com/home-assistant/core/pull/110115 +[#110117]: https://github.com/home-assistant/core/pull/110117 +[#110118]: https://github.com/home-assistant/core/pull/110118 +[#110119]: https://github.com/home-assistant/core/pull/110119 +[#110128]: https://github.com/home-assistant/core/pull/110128 +[#110129]: https://github.com/home-assistant/core/pull/110129 +[#110130]: https://github.com/home-assistant/core/pull/110130 +[#110131]: https://github.com/home-assistant/core/pull/110131 +[#110135]: https://github.com/home-assistant/core/pull/110135 +[#110136]: https://github.com/home-assistant/core/pull/110136 +[#110138]: https://github.com/home-assistant/core/pull/110138 +[#110139]: https://github.com/home-assistant/core/pull/110139 +[#110158]: https://github.com/home-assistant/core/pull/110158 +[#110179]: https://github.com/home-assistant/core/pull/110179 +[#110180]: https://github.com/home-assistant/core/pull/110180 +[#110183]: https://github.com/home-assistant/core/pull/110183 +[#110192]: https://github.com/home-assistant/core/pull/110192 +[#110193]: https://github.com/home-assistant/core/pull/110193 +[#110194]: https://github.com/home-assistant/core/pull/110194 +[#110196]: https://github.com/home-assistant/core/pull/110196 +[#110197]: https://github.com/home-assistant/core/pull/110197 +[#110202]: https://github.com/home-assistant/core/pull/110202 +[#110204]: https://github.com/home-assistant/core/pull/110204 +[#110209]: https://github.com/home-assistant/core/pull/110209 +[#110222]: https://github.com/home-assistant/core/pull/110222 +[#110224]: https://github.com/home-assistant/core/pull/110224 +[#110229]: https://github.com/home-assistant/core/pull/110229 +[#110231]: https://github.com/home-assistant/core/pull/110231 +[#110248]: https://github.com/home-assistant/core/pull/110248 +[#110249]: https://github.com/home-assistant/core/pull/110249 +[#110255]: https://github.com/home-assistant/core/pull/110255 +[#110262]: https://github.com/home-assistant/core/pull/110262 +[#110267]: https://github.com/home-assistant/core/pull/110267 +[#110277]: https://github.com/home-assistant/core/pull/110277 +[#110278]: https://github.com/home-assistant/core/pull/110278 +[#110279]: https://github.com/home-assistant/core/pull/110279 +[#110290]: https://github.com/home-assistant/core/pull/110290 +[#110291]: https://github.com/home-assistant/core/pull/110291 +[#110302]: https://github.com/home-assistant/core/pull/110302 +[#110303]: https://github.com/home-assistant/core/pull/110303 +[#110305]: https://github.com/home-assistant/core/pull/110305 +[#110306]: https://github.com/home-assistant/core/pull/110306 +[#110307]: https://github.com/home-assistant/core/pull/110307 +[#110308]: https://github.com/home-assistant/core/pull/110308 +[#110309]: https://github.com/home-assistant/core/pull/110309 +[#110310]: https://github.com/home-assistant/core/pull/110310 +[#110311]: https://github.com/home-assistant/core/pull/110311 +[#110312]: https://github.com/home-assistant/core/pull/110312 +[#110313]: https://github.com/home-assistant/core/pull/110313 +[#110314]: https://github.com/home-assistant/core/pull/110314 +[#110317]: https://github.com/home-assistant/core/pull/110317 +[#110320]: https://github.com/home-assistant/core/pull/110320 +[#110325]: https://github.com/home-assistant/core/pull/110325 +[#110326]: https://github.com/home-assistant/core/pull/110326 +[#110328]: https://github.com/home-assistant/core/pull/110328 +[#110330]: https://github.com/home-assistant/core/pull/110330 +[#110331]: https://github.com/home-assistant/core/pull/110331 +[#110332]: https://github.com/home-assistant/core/pull/110332 +[#110334]: https://github.com/home-assistant/core/pull/110334 +[#110336]: https://github.com/home-assistant/core/pull/110336 +[#110343]: https://github.com/home-assistant/core/pull/110343 +[#110344]: https://github.com/home-assistant/core/pull/110344 +[#110346]: https://github.com/home-assistant/core/pull/110346 +[#110349]: https://github.com/home-assistant/core/pull/110349 +[#110350]: https://github.com/home-assistant/core/pull/110350 +[#110355]: https://github.com/home-assistant/core/pull/110355 +[#110358]: https://github.com/home-assistant/core/pull/110358 +[#110361]: https://github.com/home-assistant/core/pull/110361 +[#110362]: https://github.com/home-assistant/core/pull/110362 +[#110363]: https://github.com/home-assistant/core/pull/110363 +[#110364]: https://github.com/home-assistant/core/pull/110364 +[#110365]: https://github.com/home-assistant/core/pull/110365 +[#110367]: https://github.com/home-assistant/core/pull/110367 +[#110368]: https://github.com/home-assistant/core/pull/110368 +[#110370]: https://github.com/home-assistant/core/pull/110370 +[#110371]: https://github.com/home-assistant/core/pull/110371 +[#110372]: https://github.com/home-assistant/core/pull/110372 +[#110373]: https://github.com/home-assistant/core/pull/110373 +[#110374]: https://github.com/home-assistant/core/pull/110374 +[#110376]: https://github.com/home-assistant/core/pull/110376 +[#110377]: https://github.com/home-assistant/core/pull/110377 +[#110378]: https://github.com/home-assistant/core/pull/110378 +[#110380]: https://github.com/home-assistant/core/pull/110380 +[#110383]: https://github.com/home-assistant/core/pull/110383 +[#110386]: https://github.com/home-assistant/core/pull/110386 +[#110388]: https://github.com/home-assistant/core/pull/110388 +[#110390]: https://github.com/home-assistant/core/pull/110390 +[#110391]: https://github.com/home-assistant/core/pull/110391 +[#110392]: https://github.com/home-assistant/core/pull/110392 +[#110393]: https://github.com/home-assistant/core/pull/110393 +[#110394]: https://github.com/home-assistant/core/pull/110394 +[#110395]: https://github.com/home-assistant/core/pull/110395 +[#110399]: https://github.com/home-assistant/core/pull/110399 +[#110400]: https://github.com/home-assistant/core/pull/110400 +[#110401]: https://github.com/home-assistant/core/pull/110401 +[#110402]: https://github.com/home-assistant/core/pull/110402 +[#110403]: https://github.com/home-assistant/core/pull/110403 +[#110404]: https://github.com/home-assistant/core/pull/110404 +[#110405]: https://github.com/home-assistant/core/pull/110405 +[#110406]: https://github.com/home-assistant/core/pull/110406 +[#110407]: https://github.com/home-assistant/core/pull/110407 +[#110408]: https://github.com/home-assistant/core/pull/110408 +[#110409]: https://github.com/home-assistant/core/pull/110409 +[#110410]: https://github.com/home-assistant/core/pull/110410 +[#110413]: https://github.com/home-assistant/core/pull/110413 +[#110415]: https://github.com/home-assistant/core/pull/110415 +[#110416]: https://github.com/home-assistant/core/pull/110416 +[#110417]: https://github.com/home-assistant/core/pull/110417 +[#110418]: https://github.com/home-assistant/core/pull/110418 +[#110419]: https://github.com/home-assistant/core/pull/110419 +[#110421]: https://github.com/home-assistant/core/pull/110421 +[#110422]: https://github.com/home-assistant/core/pull/110422 +[#110423]: https://github.com/home-assistant/core/pull/110423 +[#110424]: https://github.com/home-assistant/core/pull/110424 +[#110425]: https://github.com/home-assistant/core/pull/110425 +[#110428]: https://github.com/home-assistant/core/pull/110428 +[#110429]: https://github.com/home-assistant/core/pull/110429 +[#110430]: https://github.com/home-assistant/core/pull/110430 +[#110431]: https://github.com/home-assistant/core/pull/110431 +[#110435]: https://github.com/home-assistant/core/pull/110435 +[#110441]: https://github.com/home-assistant/core/pull/110441 +[#110442]: https://github.com/home-assistant/core/pull/110442 +[#110446]: https://github.com/home-assistant/core/pull/110446 +[#110448]: https://github.com/home-assistant/core/pull/110448 +[#110452]: https://github.com/home-assistant/core/pull/110452 +[#110461]: https://github.com/home-assistant/core/pull/110461 +[#110465]: https://github.com/home-assistant/core/pull/110465 +[#110466]: https://github.com/home-assistant/core/pull/110466 +[#110467]: https://github.com/home-assistant/core/pull/110467 +[#110470]: https://github.com/home-assistant/core/pull/110470 +[#110471]: https://github.com/home-assistant/core/pull/110471 +[#110474]: https://github.com/home-assistant/core/pull/110474 +[#110477]: https://github.com/home-assistant/core/pull/110477 +[#110479]: https://github.com/home-assistant/core/pull/110479 +[#110484]: https://github.com/home-assistant/core/pull/110484 +[#110485]: https://github.com/home-assistant/core/pull/110485 +[#110498]: https://github.com/home-assistant/core/pull/110498 +[#110499]: https://github.com/home-assistant/core/pull/110499 +[#110501]: https://github.com/home-assistant/core/pull/110501 +[#110502]: https://github.com/home-assistant/core/pull/110502 +[#110504]: https://github.com/home-assistant/core/pull/110504 +[#110509]: https://github.com/home-assistant/core/pull/110509 +[#110517]: https://github.com/home-assistant/core/pull/110517 +[#110521]: https://github.com/home-assistant/core/pull/110521 +[#110522]: https://github.com/home-assistant/core/pull/110522 +[#110543]: https://github.com/home-assistant/core/pull/110543 +[#110545]: https://github.com/home-assistant/core/pull/110545 +[#110558]: https://github.com/home-assistant/core/pull/110558 +[#110559]: https://github.com/home-assistant/core/pull/110559 +[#110560]: https://github.com/home-assistant/core/pull/110560 +[#110561]: https://github.com/home-assistant/core/pull/110561 +[#110562]: https://github.com/home-assistant/core/pull/110562 +[#110564]: https://github.com/home-assistant/core/pull/110564 +[#110565]: https://github.com/home-assistant/core/pull/110565 +[#110567]: https://github.com/home-assistant/core/pull/110567 +[#110568]: https://github.com/home-assistant/core/pull/110568 +[#110572]: https://github.com/home-assistant/core/pull/110572 +[#110573]: https://github.com/home-assistant/core/pull/110573 +[#110574]: https://github.com/home-assistant/core/pull/110574 +[#110575]: https://github.com/home-assistant/core/pull/110575 +[#110577]: https://github.com/home-assistant/core/pull/110577 +[#110578]: https://github.com/home-assistant/core/pull/110578 +[#110579]: https://github.com/home-assistant/core/pull/110579 +[#110580]: https://github.com/home-assistant/core/pull/110580 +[#110581]: https://github.com/home-assistant/core/pull/110581 +[#110583]: https://github.com/home-assistant/core/pull/110583 +[#110584]: https://github.com/home-assistant/core/pull/110584 +[#110585]: https://github.com/home-assistant/core/pull/110585 +[#110586]: https://github.com/home-assistant/core/pull/110586 +[#110587]: https://github.com/home-assistant/core/pull/110587 +[#110589]: https://github.com/home-assistant/core/pull/110589 +[#110590]: https://github.com/home-assistant/core/pull/110590 +[#110591]: https://github.com/home-assistant/core/pull/110591 +[#110592]: https://github.com/home-assistant/core/pull/110592 +[#110593]: https://github.com/home-assistant/core/pull/110593 +[#110594]: https://github.com/home-assistant/core/pull/110594 +[#110596]: https://github.com/home-assistant/core/pull/110596 +[#110597]: https://github.com/home-assistant/core/pull/110597 +[#110598]: https://github.com/home-assistant/core/pull/110598 +[#110599]: https://github.com/home-assistant/core/pull/110599 +[#110600]: https://github.com/home-assistant/core/pull/110600 +[#110601]: https://github.com/home-assistant/core/pull/110601 +[#110602]: https://github.com/home-assistant/core/pull/110602 +[#110603]: https://github.com/home-assistant/core/pull/110603 +[#110604]: https://github.com/home-assistant/core/pull/110604 +[#110605]: https://github.com/home-assistant/core/pull/110605 +[#110606]: https://github.com/home-assistant/core/pull/110606 +[#110607]: https://github.com/home-assistant/core/pull/110607 +[#110608]: https://github.com/home-assistant/core/pull/110608 +[#110609]: https://github.com/home-assistant/core/pull/110609 +[#110610]: https://github.com/home-assistant/core/pull/110610 +[#110611]: https://github.com/home-assistant/core/pull/110611 +[#110613]: https://github.com/home-assistant/core/pull/110613 +[#110615]: https://github.com/home-assistant/core/pull/110615 +[#110616]: https://github.com/home-assistant/core/pull/110616 +[#110617]: https://github.com/home-assistant/core/pull/110617 +[#110622]: https://github.com/home-assistant/core/pull/110622 +[#110625]: https://github.com/home-assistant/core/pull/110625 +[#110632]: https://github.com/home-assistant/core/pull/110632 +[#110636]: https://github.com/home-assistant/core/pull/110636 +[#110637]: https://github.com/home-assistant/core/pull/110637 +[#110651]: https://github.com/home-assistant/core/pull/110651 +[#110653]: https://github.com/home-assistant/core/pull/110653 +[#110657]: https://github.com/home-assistant/core/pull/110657 +[#110662]: https://github.com/home-assistant/core/pull/110662 +[#110666]: https://github.com/home-assistant/core/pull/110666 +[#110667]: https://github.com/home-assistant/core/pull/110667 +[#110669]: https://github.com/home-assistant/core/pull/110669 +[#110674]: https://github.com/home-assistant/core/pull/110674 +[#110680]: https://github.com/home-assistant/core/pull/110680 +[#110687]: https://github.com/home-assistant/core/pull/110687 +[#110688]: https://github.com/home-assistant/core/pull/110688 +[#110690]: https://github.com/home-assistant/core/pull/110690 +[#110693]: https://github.com/home-assistant/core/pull/110693 +[#110694]: https://github.com/home-assistant/core/pull/110694 +[#110698]: https://github.com/home-assistant/core/pull/110698 +[#110699]: https://github.com/home-assistant/core/pull/110699 +[#110700]: https://github.com/home-assistant/core/pull/110700 +[#110701]: https://github.com/home-assistant/core/pull/110701 +[#110704]: https://github.com/home-assistant/core/pull/110704 +[#110711]: https://github.com/home-assistant/core/pull/110711 +[#110712]: https://github.com/home-assistant/core/pull/110712 +[#110724]: https://github.com/home-assistant/core/pull/110724 +[#110726]: https://github.com/home-assistant/core/pull/110726 +[#110727]: https://github.com/home-assistant/core/pull/110727 +[#110728]: https://github.com/home-assistant/core/pull/110728 +[#110729]: https://github.com/home-assistant/core/pull/110729 +[#110732]: https://github.com/home-assistant/core/pull/110732 +[#110741]: https://github.com/home-assistant/core/pull/110741 +[#110743]: https://github.com/home-assistant/core/pull/110743 +[#110745]: https://github.com/home-assistant/core/pull/110745 +[#110748]: https://github.com/home-assistant/core/pull/110748 +[#110750]: https://github.com/home-assistant/core/pull/110750 +[#110751]: https://github.com/home-assistant/core/pull/110751 +[#110752]: https://github.com/home-assistant/core/pull/110752 +[#110756]: https://github.com/home-assistant/core/pull/110756 +[#110757]: https://github.com/home-assistant/core/pull/110757 +[#110760]: https://github.com/home-assistant/core/pull/110760 +[#110766]: https://github.com/home-assistant/core/pull/110766 +[#110769]: https://github.com/home-assistant/core/pull/110769 +[#110770]: https://github.com/home-assistant/core/pull/110770 +[#110771]: https://github.com/home-assistant/core/pull/110771 +[#110772]: https://github.com/home-assistant/core/pull/110772 +[#110785]: https://github.com/home-assistant/core/pull/110785 +[#110786]: https://github.com/home-assistant/core/pull/110786 +[#110788]: https://github.com/home-assistant/core/pull/110788 +[#110791]: https://github.com/home-assistant/core/pull/110791 +[#110792]: https://github.com/home-assistant/core/pull/110792 +[#110795]: https://github.com/home-assistant/core/pull/110795 +[#110799]: https://github.com/home-assistant/core/pull/110799 +[#110810]: https://github.com/home-assistant/core/pull/110810 +[#110811]: https://github.com/home-assistant/core/pull/110811 +[#110812]: https://github.com/home-assistant/core/pull/110812 +[#110814]: https://github.com/home-assistant/core/pull/110814 +[#110815]: https://github.com/home-assistant/core/pull/110815 +[#110817]: https://github.com/home-assistant/core/pull/110817 +[#110821]: https://github.com/home-assistant/core/pull/110821 +[#110823]: https://github.com/home-assistant/core/pull/110823 +[#110825]: https://github.com/home-assistant/core/pull/110825 +[#110826]: https://github.com/home-assistant/core/pull/110826 +[#110828]: https://github.com/home-assistant/core/pull/110828 +[#110830]: https://github.com/home-assistant/core/pull/110830 +[#110843]: https://github.com/home-assistant/core/pull/110843 +[#110844]: https://github.com/home-assistant/core/pull/110844 +[#110846]: https://github.com/home-assistant/core/pull/110846 +[#110849]: https://github.com/home-assistant/core/pull/110849 +[#110862]: https://github.com/home-assistant/core/pull/110862 +[#110865]: https://github.com/home-assistant/core/pull/110865 +[#110867]: https://github.com/home-assistant/core/pull/110867 +[#110869]: https://github.com/home-assistant/core/pull/110869 +[#110870]: https://github.com/home-assistant/core/pull/110870 +[#110871]: https://github.com/home-assistant/core/pull/110871 +[#110872]: https://github.com/home-assistant/core/pull/110872 +[#110875]: https://github.com/home-assistant/core/pull/110875 +[#110876]: https://github.com/home-assistant/core/pull/110876 +[#110878]: https://github.com/home-assistant/core/pull/110878 +[#110884]: https://github.com/home-assistant/core/pull/110884 +[#110886]: https://github.com/home-assistant/core/pull/110886 +[#110887]: https://github.com/home-assistant/core/pull/110887 +[#110889]: https://github.com/home-assistant/core/pull/110889 +[#110890]: https://github.com/home-assistant/core/pull/110890 +[#110892]: https://github.com/home-assistant/core/pull/110892 +[#110894]: https://github.com/home-assistant/core/pull/110894 +[#110895]: https://github.com/home-assistant/core/pull/110895 +[#110896]: https://github.com/home-assistant/core/pull/110896 +[#110898]: https://github.com/home-assistant/core/pull/110898 +[#110899]: https://github.com/home-assistant/core/pull/110899 +[#110900]: https://github.com/home-assistant/core/pull/110900 +[#110901]: https://github.com/home-assistant/core/pull/110901 +[#110902]: https://github.com/home-assistant/core/pull/110902 +[#110903]: https://github.com/home-assistant/core/pull/110903 +[#110907]: https://github.com/home-assistant/core/pull/110907 +[#110908]: https://github.com/home-assistant/core/pull/110908 +[#110909]: https://github.com/home-assistant/core/pull/110909 +[#110910]: https://github.com/home-assistant/core/pull/110910 +[#110911]: https://github.com/home-assistant/core/pull/110911 +[#110912]: https://github.com/home-assistant/core/pull/110912 +[#110913]: https://github.com/home-assistant/core/pull/110913 +[#110914]: https://github.com/home-assistant/core/pull/110914 +[#110915]: https://github.com/home-assistant/core/pull/110915 +[#110916]: https://github.com/home-assistant/core/pull/110916 +[#110917]: https://github.com/home-assistant/core/pull/110917 +[#110918]: https://github.com/home-assistant/core/pull/110918 +[#110921]: https://github.com/home-assistant/core/pull/110921 +[#110922]: https://github.com/home-assistant/core/pull/110922 +[#110925]: https://github.com/home-assistant/core/pull/110925 +[#110926]: https://github.com/home-assistant/core/pull/110926 +[#110927]: https://github.com/home-assistant/core/pull/110927 +[#110928]: https://github.com/home-assistant/core/pull/110928 +[#110930]: https://github.com/home-assistant/core/pull/110930 +[#110946]: https://github.com/home-assistant/core/pull/110946 +[#110947]: https://github.com/home-assistant/core/pull/110947 +[#110951]: https://github.com/home-assistant/core/pull/110951 +[#110955]: https://github.com/home-assistant/core/pull/110955 +[#110960]: https://github.com/home-assistant/core/pull/110960 +[#110964]: https://github.com/home-assistant/core/pull/110964 +[#110965]: https://github.com/home-assistant/core/pull/110965 +[#110966]: https://github.com/home-assistant/core/pull/110966 +[#110967]: https://github.com/home-assistant/core/pull/110967 +[#110969]: https://github.com/home-assistant/core/pull/110969 +[#110976]: https://github.com/home-assistant/core/pull/110976 +[#110977]: https://github.com/home-assistant/core/pull/110977 +[#110978]: https://github.com/home-assistant/core/pull/110978 +[#110980]: https://github.com/home-assistant/core/pull/110980 +[#110982]: https://github.com/home-assistant/core/pull/110982 +[#110985]: https://github.com/home-assistant/core/pull/110985 +[#110986]: https://github.com/home-assistant/core/pull/110986 +[#110987]: https://github.com/home-assistant/core/pull/110987 +[#110988]: https://github.com/home-assistant/core/pull/110988 +[#110991]: https://github.com/home-assistant/core/pull/110991 +[#110995]: https://github.com/home-assistant/core/pull/110995 +[#111000]: https://github.com/home-assistant/core/pull/111000 +[#111004]: https://github.com/home-assistant/core/pull/111004 +[#111006]: https://github.com/home-assistant/core/pull/111006 +[#111008]: https://github.com/home-assistant/core/pull/111008 +[#111010]: https://github.com/home-assistant/core/pull/111010 +[#111016]: https://github.com/home-assistant/core/pull/111016 +[#111017]: https://github.com/home-assistant/core/pull/111017 +[#111018]: https://github.com/home-assistant/core/pull/111018 +[#111022]: https://github.com/home-assistant/core/pull/111022 +[#111026]: https://github.com/home-assistant/core/pull/111026 +[#111027]: https://github.com/home-assistant/core/pull/111027 +[#111028]: https://github.com/home-assistant/core/pull/111028 +[#111032]: https://github.com/home-assistant/core/pull/111032 +[#111033]: https://github.com/home-assistant/core/pull/111033 +[#111034]: https://github.com/home-assistant/core/pull/111034 +[#111035]: https://github.com/home-assistant/core/pull/111035 +[#111041]: https://github.com/home-assistant/core/pull/111041 +[#111042]: https://github.com/home-assistant/core/pull/111042 +[#111044]: https://github.com/home-assistant/core/pull/111044 +[#111048]: https://github.com/home-assistant/core/pull/111048 +[#111051]: https://github.com/home-assistant/core/pull/111051 +[#111052]: https://github.com/home-assistant/core/pull/111052 +[#111053]: https://github.com/home-assistant/core/pull/111053 +[#111054]: https://github.com/home-assistant/core/pull/111054 +[#111055]: https://github.com/home-assistant/core/pull/111055 +[#111056]: https://github.com/home-assistant/core/pull/111056 +[#111057]: https://github.com/home-assistant/core/pull/111057 +[#111059]: https://github.com/home-assistant/core/pull/111059 +[#111067]: https://github.com/home-assistant/core/pull/111067 +[#111071]: https://github.com/home-assistant/core/pull/111071 +[#111074]: https://github.com/home-assistant/core/pull/111074 +[#111075]: https://github.com/home-assistant/core/pull/111075 +[#111076]: https://github.com/home-assistant/core/pull/111076 +[#111077]: https://github.com/home-assistant/core/pull/111077 +[#111079]: https://github.com/home-assistant/core/pull/111079 +[#111080]: https://github.com/home-assistant/core/pull/111080 +[#111081]: https://github.com/home-assistant/core/pull/111081 +[#111086]: https://github.com/home-assistant/core/pull/111086 +[#111087]: https://github.com/home-assistant/core/pull/111087 +[#111088]: https://github.com/home-assistant/core/pull/111088 +[#111091]: https://github.com/home-assistant/core/pull/111091 +[#111092]: https://github.com/home-assistant/core/pull/111092 +[#111093]: https://github.com/home-assistant/core/pull/111093 +[#111096]: https://github.com/home-assistant/core/pull/111096 +[#111102]: https://github.com/home-assistant/core/pull/111102 +[#111103]: https://github.com/home-assistant/core/pull/111103 +[#111104]: https://github.com/home-assistant/core/pull/111104 +[#111110]: https://github.com/home-assistant/core/pull/111110 +[#111116]: https://github.com/home-assistant/core/pull/111116 +[#111120]: https://github.com/home-assistant/core/pull/111120 +[#111125]: https://github.com/home-assistant/core/pull/111125 +[#111127]: https://github.com/home-assistant/core/pull/111127 +[#111131]: https://github.com/home-assistant/core/pull/111131 +[#111133]: https://github.com/home-assistant/core/pull/111133 +[#111136]: https://github.com/home-assistant/core/pull/111136 +[#111138]: https://github.com/home-assistant/core/pull/111138 +[#111140]: https://github.com/home-assistant/core/pull/111140 +[#111141]: https://github.com/home-assistant/core/pull/111141 +[#111143]: https://github.com/home-assistant/core/pull/111143 +[#111149]: https://github.com/home-assistant/core/pull/111149 +[#111150]: https://github.com/home-assistant/core/pull/111150 +[#111154]: https://github.com/home-assistant/core/pull/111154 +[#111155]: https://github.com/home-assistant/core/pull/111155 +[#111157]: https://github.com/home-assistant/core/pull/111157 +[#111159]: https://github.com/home-assistant/core/pull/111159 +[#111162]: https://github.com/home-assistant/core/pull/111162 +[#111165]: https://github.com/home-assistant/core/pull/111165 +[#111166]: https://github.com/home-assistant/core/pull/111166 +[#111167]: https://github.com/home-assistant/core/pull/111167 +[#111168]: https://github.com/home-assistant/core/pull/111168 +[#111169]: https://github.com/home-assistant/core/pull/111169 +[#111170]: https://github.com/home-assistant/core/pull/111170 +[#111172]: https://github.com/home-assistant/core/pull/111172 +[#111173]: https://github.com/home-assistant/core/pull/111173 +[#111174]: https://github.com/home-assistant/core/pull/111174 +[#111175]: https://github.com/home-assistant/core/pull/111175 +[#111179]: https://github.com/home-assistant/core/pull/111179 +[#111180]: https://github.com/home-assistant/core/pull/111180 +[#111181]: https://github.com/home-assistant/core/pull/111181 +[#111182]: https://github.com/home-assistant/core/pull/111182 +[#111184]: https://github.com/home-assistant/core/pull/111184 +[#111185]: https://github.com/home-assistant/core/pull/111185 +[#111188]: https://github.com/home-assistant/core/pull/111188 +[#111191]: https://github.com/home-assistant/core/pull/111191 +[#111193]: https://github.com/home-assistant/core/pull/111193 +[#111194]: https://github.com/home-assistant/core/pull/111194 +[#111195]: https://github.com/home-assistant/core/pull/111195 +[#111199]: https://github.com/home-assistant/core/pull/111199 +[#111201]: https://github.com/home-assistant/core/pull/111201 +[#111203]: https://github.com/home-assistant/core/pull/111203 +[#111204]: https://github.com/home-assistant/core/pull/111204 +[#111206]: https://github.com/home-assistant/core/pull/111206 +[#111208]: https://github.com/home-assistant/core/pull/111208 +[#111214]: https://github.com/home-assistant/core/pull/111214 +[#111218]: https://github.com/home-assistant/core/pull/111218 +[#111220]: https://github.com/home-assistant/core/pull/111220 +[#111227]: https://github.com/home-assistant/core/pull/111227 +[#111229]: https://github.com/home-assistant/core/pull/111229 +[#111231]: https://github.com/home-assistant/core/pull/111231 +[#111232]: https://github.com/home-assistant/core/pull/111232 +[#111236]: https://github.com/home-assistant/core/pull/111236 +[#111244]: https://github.com/home-assistant/core/pull/111244 +[#111245]: https://github.com/home-assistant/core/pull/111245 +[#111247]: https://github.com/home-assistant/core/pull/111247 +[#111249]: https://github.com/home-assistant/core/pull/111249 +[#111250]: https://github.com/home-assistant/core/pull/111250 +[#111252]: https://github.com/home-assistant/core/pull/111252 +[#111257]: https://github.com/home-assistant/core/pull/111257 +[#111259]: https://github.com/home-assistant/core/pull/111259 +[#111262]: https://github.com/home-assistant/core/pull/111262 +[#111263]: https://github.com/home-assistant/core/pull/111263 +[#111265]: https://github.com/home-assistant/core/pull/111265 +[#111267]: https://github.com/home-assistant/core/pull/111267 +[#111268]: https://github.com/home-assistant/core/pull/111268 +[#111269]: https://github.com/home-assistant/core/pull/111269 +[#111270]: https://github.com/home-assistant/core/pull/111270 +[#111271]: https://github.com/home-assistant/core/pull/111271 +[#111272]: https://github.com/home-assistant/core/pull/111272 +[#111273]: https://github.com/home-assistant/core/pull/111273 +[#111276]: https://github.com/home-assistant/core/pull/111276 +[#111277]: https://github.com/home-assistant/core/pull/111277 +[#111283]: https://github.com/home-assistant/core/pull/111283 +[#111284]: https://github.com/home-assistant/core/pull/111284 +[#111285]: https://github.com/home-assistant/core/pull/111285 +[#111291]: https://github.com/home-assistant/core/pull/111291 +[#111296]: https://github.com/home-assistant/core/pull/111296 +[#111302]: https://github.com/home-assistant/core/pull/111302 +[#111304]: https://github.com/home-assistant/core/pull/111304 +[#111305]: https://github.com/home-assistant/core/pull/111305 +[#111308]: https://github.com/home-assistant/core/pull/111308 +[#111310]: https://github.com/home-assistant/core/pull/111310 +[#111311]: https://github.com/home-assistant/core/pull/111311 +[#111315]: https://github.com/home-assistant/core/pull/111315 +[#111316]: https://github.com/home-assistant/core/pull/111316 +[#111317]: https://github.com/home-assistant/core/pull/111317 +[#111318]: https://github.com/home-assistant/core/pull/111318 +[#111319]: https://github.com/home-assistant/core/pull/111319 +[#111320]: https://github.com/home-assistant/core/pull/111320 +[#111321]: https://github.com/home-assistant/core/pull/111321 +[#111322]: https://github.com/home-assistant/core/pull/111322 +[#111323]: https://github.com/home-assistant/core/pull/111323 +[#111324]: https://github.com/home-assistant/core/pull/111324 +[#111326]: https://github.com/home-assistant/core/pull/111326 +[#111328]: https://github.com/home-assistant/core/pull/111328 +[#111332]: https://github.com/home-assistant/core/pull/111332 +[#111335]: https://github.com/home-assistant/core/pull/111335 +[#111336]: https://github.com/home-assistant/core/pull/111336 +[#111337]: https://github.com/home-assistant/core/pull/111337 +[#111338]: https://github.com/home-assistant/core/pull/111338 +[#111339]: https://github.com/home-assistant/core/pull/111339 +[#111340]: https://github.com/home-assistant/core/pull/111340 +[#111342]: https://github.com/home-assistant/core/pull/111342 +[#111343]: https://github.com/home-assistant/core/pull/111343 +[#111346]: https://github.com/home-assistant/core/pull/111346 +[#111347]: https://github.com/home-assistant/core/pull/111347 +[#111348]: https://github.com/home-assistant/core/pull/111348 +[#111350]: https://github.com/home-assistant/core/pull/111350 +[#111351]: https://github.com/home-assistant/core/pull/111351 +[#111352]: https://github.com/home-assistant/core/pull/111352 +[#111354]: https://github.com/home-assistant/core/pull/111354 +[#111355]: https://github.com/home-assistant/core/pull/111355 +[#111356]: https://github.com/home-assistant/core/pull/111356 +[#111357]: https://github.com/home-assistant/core/pull/111357 +[#111358]: https://github.com/home-assistant/core/pull/111358 +[#111359]: https://github.com/home-assistant/core/pull/111359 +[#111360]: https://github.com/home-assistant/core/pull/111360 +[#111361]: https://github.com/home-assistant/core/pull/111361 +[#111362]: https://github.com/home-assistant/core/pull/111362 +[#111363]: https://github.com/home-assistant/core/pull/111363 +[#111364]: https://github.com/home-assistant/core/pull/111364 +[#111366]: https://github.com/home-assistant/core/pull/111366 +[#111367]: https://github.com/home-assistant/core/pull/111367 +[#111368]: https://github.com/home-assistant/core/pull/111368 +[#111369]: https://github.com/home-assistant/core/pull/111369 +[#111370]: https://github.com/home-assistant/core/pull/111370 +[#111371]: https://github.com/home-assistant/core/pull/111371 +[#111373]: https://github.com/home-assistant/core/pull/111373 +[#111376]: https://github.com/home-assistant/core/pull/111376 +[#111377]: https://github.com/home-assistant/core/pull/111377 +[#111379]: https://github.com/home-assistant/core/pull/111379 +[#111381]: https://github.com/home-assistant/core/pull/111381 +[#111385]: https://github.com/home-assistant/core/pull/111385 +[#111388]: https://github.com/home-assistant/core/pull/111388 +[#111389]: https://github.com/home-assistant/core/pull/111389 +[#111392]: https://github.com/home-assistant/core/pull/111392 +[#111399]: https://github.com/home-assistant/core/pull/111399 +[#111400]: https://github.com/home-assistant/core/pull/111400 +[#111401]: https://github.com/home-assistant/core/pull/111401 +[#111407]: https://github.com/home-assistant/core/pull/111407 +[#111411]: https://github.com/home-assistant/core/pull/111411 +[#111412]: https://github.com/home-assistant/core/pull/111412 +[#111413]: https://github.com/home-assistant/core/pull/111413 +[#111414]: https://github.com/home-assistant/core/pull/111414 +[#111415]: https://github.com/home-assistant/core/pull/111415 +[#111416]: https://github.com/home-assistant/core/pull/111416 +[#111417]: https://github.com/home-assistant/core/pull/111417 +[#111420]: https://github.com/home-assistant/core/pull/111420 +[#111422]: https://github.com/home-assistant/core/pull/111422 +[#111425]: https://github.com/home-assistant/core/pull/111425 +[#111427]: https://github.com/home-assistant/core/pull/111427 +[#111428]: https://github.com/home-assistant/core/pull/111428 +[#111433]: https://github.com/home-assistant/core/pull/111433 +[#111435]: https://github.com/home-assistant/core/pull/111435 +[#111437]: https://github.com/home-assistant/core/pull/111437 +[#111439]: https://github.com/home-assistant/core/pull/111439 +[#111441]: https://github.com/home-assistant/core/pull/111441 +[#111447]: https://github.com/home-assistant/core/pull/111447 +[#111448]: https://github.com/home-assistant/core/pull/111448 +[#111449]: https://github.com/home-assistant/core/pull/111449 +[#111450]: https://github.com/home-assistant/core/pull/111450 +[#111455]: https://github.com/home-assistant/core/pull/111455 +[#111456]: https://github.com/home-assistant/core/pull/111456 +[#111458]: https://github.com/home-assistant/core/pull/111458 +[#111460]: https://github.com/home-assistant/core/pull/111460 +[#111464]: https://github.com/home-assistant/core/pull/111464 +[#111471]: https://github.com/home-assistant/core/pull/111471 +[#111477]: https://github.com/home-assistant/core/pull/111477 +[#111479]: https://github.com/home-assistant/core/pull/111479 +[#111483]: https://github.com/home-assistant/core/pull/111483 +[#111488]: https://github.com/home-assistant/core/pull/111488 +[#111491]: https://github.com/home-assistant/core/pull/111491 +[#111492]: https://github.com/home-assistant/core/pull/111492 +[#111494]: https://github.com/home-assistant/core/pull/111494 +[#111496]: https://github.com/home-assistant/core/pull/111496 +[#111497]: https://github.com/home-assistant/core/pull/111497 +[#111498]: https://github.com/home-assistant/core/pull/111498 +[#111499]: https://github.com/home-assistant/core/pull/111499 +[#111500]: https://github.com/home-assistant/core/pull/111500 +[#111501]: https://github.com/home-assistant/core/pull/111501 +[#111504]: https://github.com/home-assistant/core/pull/111504 +[#111507]: https://github.com/home-assistant/core/pull/111507 +[#111511]: https://github.com/home-assistant/core/pull/111511 +[#111513]: https://github.com/home-assistant/core/pull/111513 +[#111519]: https://github.com/home-assistant/core/pull/111519 +[#111520]: https://github.com/home-assistant/core/pull/111520 +[#111521]: https://github.com/home-assistant/core/pull/111521 +[#111522]: https://github.com/home-assistant/core/pull/111522 +[#111523]: https://github.com/home-assistant/core/pull/111523 +[#111527]: https://github.com/home-assistant/core/pull/111527 +[#111528]: https://github.com/home-assistant/core/pull/111528 +[#111529]: https://github.com/home-assistant/core/pull/111529 +[#111530]: https://github.com/home-assistant/core/pull/111530 +[#111533]: https://github.com/home-assistant/core/pull/111533 +[#111534]: https://github.com/home-assistant/core/pull/111534 +[#111536]: https://github.com/home-assistant/core/pull/111536 +[#111537]: https://github.com/home-assistant/core/pull/111537 +[#111538]: https://github.com/home-assistant/core/pull/111538 +[#111539]: https://github.com/home-assistant/core/pull/111539 +[#111541]: https://github.com/home-assistant/core/pull/111541 +[#111542]: https://github.com/home-assistant/core/pull/111542 +[#111543]: https://github.com/home-assistant/core/pull/111543 +[#111546]: https://github.com/home-assistant/core/pull/111546 +[#111547]: https://github.com/home-assistant/core/pull/111547 +[#111549]: https://github.com/home-assistant/core/pull/111549 +[#111552]: https://github.com/home-assistant/core/pull/111552 +[#111553]: https://github.com/home-assistant/core/pull/111553 +[#111554]: https://github.com/home-assistant/core/pull/111554 +[#111555]: https://github.com/home-assistant/core/pull/111555 +[#111556]: https://github.com/home-assistant/core/pull/111556 +[#111557]: https://github.com/home-assistant/core/pull/111557 +[#111558]: https://github.com/home-assistant/core/pull/111558 +[#111559]: https://github.com/home-assistant/core/pull/111559 +[#111560]: https://github.com/home-assistant/core/pull/111560 +[#111565]: https://github.com/home-assistant/core/pull/111565 +[#111567]: https://github.com/home-assistant/core/pull/111567 +[#111568]: https://github.com/home-assistant/core/pull/111568 +[#111569]: https://github.com/home-assistant/core/pull/111569 +[#111570]: https://github.com/home-assistant/core/pull/111570 +[#111571]: https://github.com/home-assistant/core/pull/111571 +[#111573]: https://github.com/home-assistant/core/pull/111573 +[#111574]: https://github.com/home-assistant/core/pull/111574 +[#111575]: https://github.com/home-assistant/core/pull/111575 +[#111578]: https://github.com/home-assistant/core/pull/111578 +[#111580]: https://github.com/home-assistant/core/pull/111580 +[#111581]: https://github.com/home-assistant/core/pull/111581 +[#111585]: https://github.com/home-assistant/core/pull/111585 +[#111586]: https://github.com/home-assistant/core/pull/111586 +[#111587]: https://github.com/home-assistant/core/pull/111587 +[#111588]: https://github.com/home-assistant/core/pull/111588 +[#111589]: https://github.com/home-assistant/core/pull/111589 +[#111590]: https://github.com/home-assistant/core/pull/111590 +[#111591]: https://github.com/home-assistant/core/pull/111591 +[#111592]: https://github.com/home-assistant/core/pull/111592 +[#111593]: https://github.com/home-assistant/core/pull/111593 +[#111594]: https://github.com/home-assistant/core/pull/111594 +[#111595]: https://github.com/home-assistant/core/pull/111595 +[#111596]: https://github.com/home-assistant/core/pull/111596 +[#111600]: https://github.com/home-assistant/core/pull/111600 +[#111601]: https://github.com/home-assistant/core/pull/111601 +[#111602]: https://github.com/home-assistant/core/pull/111602 +[#111603]: https://github.com/home-assistant/core/pull/111603 +[#111605]: https://github.com/home-assistant/core/pull/111605 +[#111608]: https://github.com/home-assistant/core/pull/111608 +[#111609]: https://github.com/home-assistant/core/pull/111609 +[#111610]: https://github.com/home-assistant/core/pull/111610 +[#111611]: https://github.com/home-assistant/core/pull/111611 +[#111612]: https://github.com/home-assistant/core/pull/111612 +[#111613]: https://github.com/home-assistant/core/pull/111613 +[#111615]: https://github.com/home-assistant/core/pull/111615 +[#111619]: https://github.com/home-assistant/core/pull/111619 +[#111620]: https://github.com/home-assistant/core/pull/111620 +[#111622]: https://github.com/home-assistant/core/pull/111622 +[#111623]: https://github.com/home-assistant/core/pull/111623 +[#111624]: https://github.com/home-assistant/core/pull/111624 +[#111625]: https://github.com/home-assistant/core/pull/111625 +[#111627]: https://github.com/home-assistant/core/pull/111627 +[#111630]: https://github.com/home-assistant/core/pull/111630 +[#111631]: https://github.com/home-assistant/core/pull/111631 +[#111635]: https://github.com/home-assistant/core/pull/111635 +[#111636]: https://github.com/home-assistant/core/pull/111636 +[#111637]: https://github.com/home-assistant/core/pull/111637 +[#111644]: https://github.com/home-assistant/core/pull/111644 +[#111647]: https://github.com/home-assistant/core/pull/111647 +[#111648]: https://github.com/home-assistant/core/pull/111648 +[#111649]: https://github.com/home-assistant/core/pull/111649 +[#111653]: https://github.com/home-assistant/core/pull/111653 +[#111655]: https://github.com/home-assistant/core/pull/111655 +[#111656]: https://github.com/home-assistant/core/pull/111656 +[#111657]: https://github.com/home-assistant/core/pull/111657 +[#111658]: https://github.com/home-assistant/core/pull/111658 +[#111659]: https://github.com/home-assistant/core/pull/111659 +[#111660]: https://github.com/home-assistant/core/pull/111660 +[#111661]: https://github.com/home-assistant/core/pull/111661 +[#111662]: https://github.com/home-assistant/core/pull/111662 +[#111663]: https://github.com/home-assistant/core/pull/111663 +[#111667]: https://github.com/home-assistant/core/pull/111667 +[#111670]: https://github.com/home-assistant/core/pull/111670 +[#111671]: https://github.com/home-assistant/core/pull/111671 +[#111673]: https://github.com/home-assistant/core/pull/111673 +[#111674]: https://github.com/home-assistant/core/pull/111674 +[#111675]: https://github.com/home-assistant/core/pull/111675 +[#111677]: https://github.com/home-assistant/core/pull/111677 +[#111678]: https://github.com/home-assistant/core/pull/111678 +[#111681]: https://github.com/home-assistant/core/pull/111681 +[#111686]: https://github.com/home-assistant/core/pull/111686 +[#111690]: https://github.com/home-assistant/core/pull/111690 +[#111691]: https://github.com/home-assistant/core/pull/111691 +[#111692]: https://github.com/home-assistant/core/pull/111692 +[#111693]: https://github.com/home-assistant/core/pull/111693 +[#111694]: https://github.com/home-assistant/core/pull/111694 +[#111695]: https://github.com/home-assistant/core/pull/111695 +[#111696]: https://github.com/home-assistant/core/pull/111696 +[#111697]: https://github.com/home-assistant/core/pull/111697 +[#111698]: https://github.com/home-assistant/core/pull/111698 +[#111699]: https://github.com/home-assistant/core/pull/111699 +[#111701]: https://github.com/home-assistant/core/pull/111701 +[#111702]: https://github.com/home-assistant/core/pull/111702 +[#111703]: https://github.com/home-assistant/core/pull/111703 +[#111704]: https://github.com/home-assistant/core/pull/111704 +[#111705]: https://github.com/home-assistant/core/pull/111705 +[#111707]: https://github.com/home-assistant/core/pull/111707 +[#111712]: https://github.com/home-assistant/core/pull/111712 +[#111714]: https://github.com/home-assistant/core/pull/111714 +[#111715]: https://github.com/home-assistant/core/pull/111715 +[#111716]: https://github.com/home-assistant/core/pull/111716 +[#111717]: https://github.com/home-assistant/core/pull/111717 +[#111718]: https://github.com/home-assistant/core/pull/111718 +[#111719]: https://github.com/home-assistant/core/pull/111719 +[#111720]: https://github.com/home-assistant/core/pull/111720 +[#111723]: https://github.com/home-assistant/core/pull/111723 +[#111724]: https://github.com/home-assistant/core/pull/111724 +[#111726]: https://github.com/home-assistant/core/pull/111726 +[#111728]: https://github.com/home-assistant/core/pull/111728 +[#111736]: https://github.com/home-assistant/core/pull/111736 +[#111741]: https://github.com/home-assistant/core/pull/111741 +[#111743]: https://github.com/home-assistant/core/pull/111743 +[#111749]: https://github.com/home-assistant/core/pull/111749 +[#111751]: https://github.com/home-assistant/core/pull/111751 +[#88655]: https://github.com/home-assistant/core/pull/88655 +[#89155]: https://github.com/home-assistant/core/pull/89155 +[#95093]: https://github.com/home-assistant/core/pull/95093 +[#96044]: https://github.com/home-assistant/core/pull/96044 +[#96773]: https://github.com/home-assistant/core/pull/96773 +[#96906]: https://github.com/home-assistant/core/pull/96906 +[#97023]: https://github.com/home-assistant/core/pull/97023 +[#97206]: https://github.com/home-assistant/core/pull/97206 +[#97401]: https://github.com/home-assistant/core/pull/97401 +[#97402]: https://github.com/home-assistant/core/pull/97402 +[#99573]: https://github.com/home-assistant/core/pull/99573 +[#99899]: https://github.com/home-assistant/core/pull/99899 +[@AidasK]: https://github.com/AidasK +[@AngellusMortis]: https://github.com/AngellusMortis +[@Augar]: https://github.com/Augar +[@Betacart]: https://github.com/Betacart +[@Bre77]: https://github.com/Bre77 +[@CFenner]: https://github.com/CFenner +[@DeerMaximum]: https://github.com/DeerMaximum +[@Drafteed]: https://github.com/Drafteed +[@Ernst79]: https://github.com/Ernst79 +[@FedDam]: https://github.com/FedDam +[@Floris272]: https://github.com/Floris272 +[@Jc2k]: https://github.com/Jc2k +[@Kane610]: https://github.com/Kane610 +[@LaStrada]: https://github.com/LaStrada +[@Lash-L]: https://github.com/Lash-L +[@LennP]: https://github.com/LennP +[@MarkGodwin]: https://github.com/MarkGodwin +[@MartinHjelmare]: https://github.com/MartinHjelmare +[@Minims]: https://github.com/Minims +[@Moustachauve]: https://github.com/Moustachauve +[@Nirostar]: https://github.com/Nirostar +[@Noltari]: https://github.com/Noltari +[@OnFreund]: https://github.com/OnFreund +[@Orhideous]: https://github.com/Orhideous +[@PiotrMachowski]: https://github.com/PiotrMachowski +[@Shulyaka]: https://github.com/Shulyaka +[@StephenBrown2]: https://github.com/StephenBrown2 +[@TheJulianJES]: https://github.com/TheJulianJES +[@TheNoim]: https://github.com/TheNoim +[@Thomas55555]: https://github.com/Thomas55555 +[@Tronix117]: https://github.com/Tronix117 +[@abmantis]: https://github.com/abmantis +[@akx]: https://github.com/akx +[@allenporter]: https://github.com/allenporter +[@arturpragacz]: https://github.com/arturpragacz +[@astrandb]: https://github.com/astrandb +[@autinerd]: https://github.com/autinerd +[@bachya]: https://github.com/bachya +[@balloob]: https://github.com/balloob +[@bbernhard]: https://github.com/bbernhard +[@bdraco]: https://github.com/bdraco +[@bieniu]: https://github.com/bieniu +[@bouwew]: https://github.com/bouwew +[@bramkragten]: https://github.com/bramkragten +[@brenank]: https://github.com/brenank +[@catsmanac]: https://github.com/catsmanac +[@cdce8p]: https://github.com/cdce8p +[@cgarwood]: https://github.com/cgarwood +[@chamberlain2007]: https://github.com/chamberlain2007 +[@chammp]: https://github.com/chammp +[@chemelli74]: https://github.com/chemelli74 +[@codyc1515]: https://github.com/codyc1515 +[@cottsay]: https://github.com/cottsay +[@crhan]: https://github.com/crhan +[@crug80]: https://github.com/crug80 +[@ctalkington]: https://github.com/ctalkington +[@dcmeglio]: https://github.com/dcmeglio +[@deosrc]: https://github.com/deosrc +[@dependabot]: https://github.com/apps/dependabot +[@dieselrabbit]: https://github.com/dieselrabbit +[@dknowles2]: https://github.com/dknowles2 +[@dmulcahey]: https://github.com/dmulcahey +[@dougiteixeira]: https://github.com/dougiteixeira +[@drsgoodall]: https://github.com/drsgoodall +[@dupondje]: https://github.com/dupondje +[@eclair4151]: https://github.com/eclair4151 +[@edenhaus]: https://github.com/edenhaus +[@eifinger]: https://github.com/eifinger +[@elupus]: https://github.com/elupus +[@emontnemery]: https://github.com/emontnemery +[@engrbm87]: https://github.com/engrbm87 +[@erwindouna]: https://github.com/erwindouna +[@exxamalte]: https://github.com/exxamalte +[@farmio]: https://github.com/farmio +[@frenck]: https://github.com/frenck +[@gjohansson-ST]: https://github.com/gjohansson-ST +[@hahn-th]: https://github.com/hahn-th +[@iliessens]: https://github.com/iliessens +[@janiversen]: https://github.com/janiversen +[@janrothkegel]: https://github.com/janrothkegel +[@jbouwh]: https://github.com/jbouwh +[@jeeftor]: https://github.com/jeeftor +[@jesserockz]: https://github.com/jesserockz +[@jimmyd-be]: https://github.com/jimmyd-be +[@jjlawren]: https://github.com/jjlawren +[@jkossis]: https://github.com/jkossis +[@joostlek]: https://github.com/joostlek +[@jpbede]: https://github.com/jpbede +[@jrieger]: https://github.com/jrieger +[@kbickar]: https://github.com/kbickar +[@killer0071234]: https://github.com/killer0071234 +[@kingy444]: https://github.com/kingy444 +[@klaasnicolaas]: https://github.com/klaasnicolaas +[@krmarien]: https://github.com/krmarien +[@lellky]: https://github.com/lellky +[@livioavalle]: https://github.com/livioavalle +[@ludeeus]: https://github.com/ludeeus +[@marcelveldt]: https://github.com/marcelveldt +[@marcolettieri]: https://github.com/marcolettieri +[@matrixd2]: https://github.com/matrixd2 +[@mdegat01]: https://github.com/mdegat01 +[@mdonoughe]: https://github.com/mdonoughe +[@miaucl]: https://github.com/miaucl +[@mib1185]: https://github.com/mib1185 +[@mikeodr]: https://github.com/mikeodr +[@mill1000]: https://github.com/mill1000 +[@mkmer]: https://github.com/mkmer +[@niro1987]: https://github.com/niro1987 +[@ol-iver]: https://github.com/ol-iver +[@ollo69]: https://github.com/ollo69 +[@pajzo]: https://github.com/pajzo +[@pawlizio]: https://github.com/pawlizio +[@piitaya]: https://github.com/piitaya +[@pilotopirx]: https://github.com/pilotopirx +[@pree]: https://github.com/pree +[@puddly]: https://github.com/puddly +[@raman325]: https://github.com/raman325 +[@rb28z2]: https://github.com/rb28z2 +[@rfleming71]: https://github.com/rfleming71 +[@rikroe]: https://github.com/rikroe +[@rkruisselbrink]: https://github.com/rkruisselbrink +[@rlippmann]: https://github.com/rlippmann +[@rytilahti]: https://github.com/rytilahti +[@sairon]: https://github.com/sairon +[@sdb9696]: https://github.com/sdb9696 +[@snoack]: https://github.com/snoack +[@some-guy-23]: https://github.com/some-guy-23 +[@spycle]: https://github.com/spycle +[@stackia]: https://github.com/stackia +[@starkillerOG]: https://github.com/starkillerOG +[@steffenrapp]: https://github.com/steffenrapp +[@swartzd]: https://github.com/swartzd +[@swistakm]: https://github.com/swistakm +[@synesthesiam]: https://github.com/synesthesiam +[@thecode]: https://github.com/thecode +[@timmo001]: https://github.com/timmo001 +[@tkdrob]: https://github.com/tkdrob +[@tl-sl]: https://github.com/tl-sl +[@tr4nt0r]: https://github.com/tr4nt0r +[@tronikos]: https://github.com/tronikos +[@wittypluck]: https://github.com/wittypluck +[@yozik04]: https://github.com/yozik04 +[@zweckj]: https://github.com/zweckj +[acomax docs]: /integrations/acomax/ +[advantage_air docs]: /integrations/advantage_air/ +[aemet docs]: /integrations/aemet/ +[aftership docs]: /integrations/aftership/ +[airnow docs]: /integrations/airnow/ +[airthings_ble docs]: /integrations/airthings_ble/ +[airvisual docs]: /integrations/airvisual/ +[airzone docs]: /integrations/airzone/ +[airzone_cloud docs]: /integrations/airzone_cloud/ +[alarmdecoder docs]: /integrations/alarmdecoder/ +[alexa docs]: /integrations/alexa/ +[amberelectric docs]: /integrations/amberelectric/ +[ambiclimate docs]: /integrations/ambiclimate/ +[ambient_station docs]: /integrations/ambient_station/ +[analytics docs]: /integrations/analytics/ +[android_ip_webcam docs]: /integrations/android_ip_webcam/ +[androidtv docs]: /integrations/androidtv/ +[anthemav docs]: /integrations/anthemav/ +[aosmith docs]: /integrations/aosmith/ +[apcupsd docs]: /integrations/apcupsd/ +[api docs]: /integrations/api/ +[apple_tv docs]: /integrations/apple_tv/ +[aprilaire docs]: /integrations/aprilaire/ +[assist_pipeline docs]: /integrations/assist_pipeline/ +[asterisk_cdr docs]: /integrations/asterisk_cdr/ +[asterisk_mbox docs]: /integrations/asterisk_mbox/ +[asuswrt docs]: /integrations/asuswrt/ +[august docs]: /integrations/august/ +[auth docs]: /integrations/auth/ +[automation docs]: /integrations/automation/ +[axis docs]: /integrations/axis/ +[backup docs]: /integrations/backup/ +[balboa docs]: /integrations/balboa/ +[bang_olufsen docs]: /integrations/bang_olufsen/ +[blebox docs]: /integrations/blebox/ +[blink docs]: /integrations/blink/ +[blue_current docs]: /integrations/blue_current/ +[bluetooth docs]: /integrations/bluetooth/ +[bmw_connected_drive docs]: /integrations/bmw_connected_drive/ +[bosch_shc docs]: /integrations/bosch_shc/ +[braviatv docs]: /integrations/braviatv/ +[bring docs]: /integrations/bring/ +[broadlink docs]: /integrations/broadlink/ +[brother docs]: /integrations/brother/ +[bsblan docs]: /integrations/bsblan/ +[caldav docs]: /integrations/caldav/ +[camera docs]: /integrations/camera/ +[cast docs]: /integrations/cast/ +[cert_expiry docs]: /integrations/cert_expiry/ +[climate docs]: /integrations/climate/ +[cloud docs]: /integrations/cloud/ +[cloudflare docs]: /integrations/cloudflare/ +[color_extractor docs]: /integrations/color_extractor/ +[comelit docs]: /integrations/comelit/ +[config docs]: /integrations/config/ +[conversation docs]: /integrations/conversation/ +[coolmaster docs]: /integrations/coolmaster/ +[core docs]: /integrations/core/ +[cover docs]: /integrations/cover/ +[cpuspeed docs]: /integrations/cpuspeed/ +[crownstone docs]: /integrations/crownstone/ +[daikin docs]: /integrations/daikin/ +[debugpy docs]: /integrations/debugpy/ +[deconz docs]: /integrations/deconz/ +[denonavr docs]: /integrations/denonavr/ +[device_automation docs]: /integrations/device_automation/ +[device_tracker docs]: /integrations/device_tracker/ +[devolo_home_network docs]: /integrations/devolo_home_network/ +[dexcom docs]: /integrations/dexcom/ +[dhcp docs]: /integrations/dhcp/ +[discord docs]: /integrations/discord/ +[discovergy docs]: /integrations/discovergy/ +[dlink docs]: /integrations/dlink/ +[dlna_dmr docs]: /integrations/dlna_dmr/ +[dnsip docs]: /integrations/dnsip/ +[doorbird docs]: /integrations/doorbird/ +[dremel_3d_printer docs]: /integrations/dremel_3d_printer/ +[drop_connect docs]: /integrations/drop_connect/ +[dsmr docs]: /integrations/dsmr/ +[dunehd docs]: /integrations/dunehd/ +[duquesne_light docs]: /integrations/duquesne_light/ +[dynalite docs]: /integrations/dynalite/ +[eafm docs]: /integrations/eafm/ +[easyenergy docs]: /integrations/easyenergy/ +[ecobee docs]: /integrations/ecobee/ +[ecoforest docs]: /integrations/ecoforest/ +[ecovacs docs]: /integrations/ecovacs/ +[ecowitt docs]: /integrations/ecowitt/ +[edl21 docs]: /integrations/edl21/ +[electric_kiwi docs]: /integrations/electric_kiwi/ +[elkm1 docs]: /integrations/elkm1/ +[emonitor docs]: /integrations/emonitor/ +[emulated_hue docs]: /integrations/emulated_hue/ +[energyzero docs]: /integrations/energyzero/ +[enphase_envoy docs]: /integrations/enphase_envoy/ +[environment_canada docs]: /integrations/environment_canada/ +[epion docs]: /integrations/epion/ +[epson docs]: /integrations/epson/ +[escea docs]: /integrations/escea/ +[esphome docs]: /integrations/esphome/ +[eufylife_ble docs]: /integrations/eufylife_ble/ +[faa_delays docs]: /integrations/faa_delays/ +[fan docs]: /integrations/fan/ +[fastdotcom docs]: /integrations/fastdotcom/ +[ffmpeg docs]: /integrations/ffmpeg/ +[filesize docs]: /integrations/filesize/ +[fireservicerota docs]: /integrations/fireservicerota/ +[fivem docs]: /integrations/fivem/ +[flexit_bacnet docs]: /integrations/flexit_bacnet/ +[flo docs]: /integrations/flo/ +[flume docs]: /integrations/flume/ +[flux_led docs]: /integrations/flux_led/ +[forecast_solar docs]: /integrations/forecast_solar/ +[foscam docs]: /integrations/foscam/ +[fritz docs]: /integrations/fritz/ +[fritzbox_callmonitor docs]: /integrations/fritzbox_callmonitor/ +[fronius docs]: /integrations/fronius/ +[frontend docs]: /integrations/frontend/ +[fully_kiosk docs]: /integrations/fully_kiosk/ +[garages_amsterdam docs]: /integrations/garages_amsterdam/ +[gardena_bluetooth docs]: /integrations/gardena_bluetooth/ +[gdacs docs]: /integrations/gdacs/ +[generic docs]: /integrations/generic/ +[generic_hygrostat docs]: /integrations/generic_hygrostat/ +[generic_thermostat docs]: /integrations/generic_thermostat/ +[geocaching docs]: /integrations/geocaching/ +[gios docs]: /integrations/gios/ +[github docs]: /integrations/github/ +[glances docs]: /integrations/glances/ +[goalzero docs]: /integrations/goalzero/ +[goodwe docs]: /integrations/goodwe/ +[google docs]: /integrations/google/ +[google_assistant docs]: /integrations/google_assistant/ +[google_assistant_sdk docs]: /integrations/google_assistant_sdk/ +[google_generative_ai_conversation docs]: /integrations/google_generative_ai_conversation/ +[google_mail docs]: /integrations/google_mail/ +[google_sheets docs]: /integrations/google_sheets/ +[gpsd docs]: /integrations/gpsd/ +[gree docs]: /integrations/gree/ +[group docs]: /integrations/group/ +[guardian docs]: /integrations/guardian/ +[hardkernel docs]: /integrations/hardkernel/ +[hardware docs]: /integrations/hardware/ +[harmony docs]: /integrations/harmony/ +[hassio docs]: /integrations/hassio/ +[heos docs]: /integrations/heos/ +[history docs]: /integrations/history/ +[hive docs]: /integrations/hive/ +[home_connect docs]: /integrations/home_connect/ +[homeassistant docs]: /integrations/homeassistant/ +[homeassistant_green docs]: /integrations/homeassistant_green/ +[homeassistant_sky_connect docs]: /integrations/homeassistant_sky_connect/ +[homeassistant_yellow docs]: /integrations/homeassistant_yellow/ +[homekit docs]: /integrations/homekit/ +[homekit_controller docs]: /integrations/homekit_controller/ +[homematicip_cloud docs]: /integrations/homematicip_cloud/ +[homewizard docs]: /integrations/homewizard/ +[honeywell docs]: /integrations/honeywell/ +[hp_ilo docs]: /integrations/hp_ilo/ +[huawei_lte docs]: /integrations/huawei_lte/ +[hue docs]: /integrations/hue/ +[huisbaasje docs]: /integrations/huisbaasje/ +[hunterdouglas_powerview docs]: /integrations/hunterdouglas_powerview/ +[husqvarna_automower docs]: /integrations/husqvarna_automower/ +[hvv_departures docs]: /integrations/hvv_departures/ +[hydrawise docs]: /integrations/hydrawise/ +[ibeacon docs]: /integrations/ibeacon/ +[idasen_desk docs]: /integrations/idasen_desk/ +[ign_sismologia docs]: /integrations/ign_sismologia/ +[image docs]: /integrations/image/ +[image_processing docs]: /integrations/image_processing/ +[imap docs]: /integrations/imap/ +[influxdb docs]: /integrations/influxdb/ +[insteon docs]: /integrations/insteon/ +[intellifire docs]: /integrations/intellifire/ +[intent docs]: /integrations/intent/ +[ios docs]: /integrations/ios/ +[ipp docs]: /integrations/ipp/ +[islamic_prayer_times docs]: /integrations/islamic_prayer_times/ +[juicenet docs]: /integrations/juicenet/ +[keenetic_ndms2 docs]: /integrations/keenetic_ndms2/ +[keymitt_ble docs]: /integrations/keymitt_ble/ +[kitchen_sink docs]: /integrations/kitchen_sink/ +[knx docs]: /integrations/knx/ +[krispol docs]: /integrations/krispol/ +[lamarzocco docs]: /integrations/lamarzocco/ +[lametric docs]: /integrations/lametric/ +[landisgyr_heat_meter docs]: /integrations/landisgyr_heat_meter/ +[lcn docs]: /integrations/lcn/ +[lifx docs]: /integrations/lifx/ +[light docs]: /integrations/light/ +[local_calendar docs]: /integrations/local_calendar/ +[local_todo docs]: /integrations/local_todo/ +[logbook docs]: /integrations/logbook/ +[logi_circle docs]: /integrations/logi_circle/ +[luftdaten docs]: /integrations/luftdaten/ +[lupusec docs]: /integrations/lupusec/ +[lutron_caseta docs]: /integrations/lutron_caseta/ +[madeco docs]: /integrations/madeco/ +[mailbox docs]: /integrations/mailbox/ +[matter docs]: /integrations/matter/ +[media_player docs]: /integrations/media_player/ +[met docs]: /integrations/met/ +[microBees docs]: /integrations/microBees/ +[mikrotik docs]: /integrations/mikrotik/ +[minecraft_server docs]: /integrations/minecraft_server/ +[mobile_app docs]: /integrations/mobile_app/ +[modbus docs]: /integrations/modbus/ +[moon docs]: /integrations/moon/ +[mopeka docs]: /integrations/mopeka/ +[motion_blinds docs]: /integrations/motion_blinds/ +[mqtt docs]: /integrations/mqtt/ +[myuplink docs]: /integrations/myuplink/ +[nam docs]: /integrations/nam/ +[nest docs]: /integrations/nest/ +[nexia docs]: /integrations/nexia/ +[nextdns docs]: /integrations/nextdns/ +[nightscout docs]: /integrations/nightscout/ +[nmap_tracker docs]: /integrations/nmap_tracker/ +[notion docs]: /integrations/notion/ +[nuki docs]: /integrations/nuki/ +[nut docs]: /integrations/nut/ +[obihai docs]: /integrations/obihai/ +[octoprint docs]: /integrations/octoprint/ +[onewire docs]: /integrations/onewire/ +[onvif docs]: /integrations/onvif/ +[openalpr_cloud docs]: /integrations/openalpr_cloud/ +[openuv docs]: /integrations/openuv/ +[openweathermap docs]: /integrations/openweathermap/ +[opower docs]: /integrations/opower/ +[oralb docs]: /integrations/oralb/ +[otbr docs]: /integrations/otbr/ +[overkiz docs]: /integrations/overkiz/ +[pegel_online docs]: /integrations/pegel_online/ +[permobil docs]: /integrations/permobil/ +[person docs]: /integrations/person/ +[picnic docs]: /integrations/picnic/ +[ping docs]: /integrations/ping/ +[plex docs]: /integrations/plex/ +[plugwise docs]: /integrations/plugwise/ +[powerwall docs]: /integrations/powerwall/ +[profiler docs]: /integrations/profiler/ +[prusalink docs]: /integrations/prusalink/ +[ps4 docs]: /integrations/ps4/ +[python_script docs]: /integrations/python_script/ +[qingping docs]: /integrations/qingping/ +[qld_bushfire docs]: /integrations/qld_bushfire/ +[qnap_qsw docs]: /integrations/qnap_qsw/ +[radio_browser docs]: /integrations/radio_browser/ +[radiotherm docs]: /integrations/radiotherm/ +[rainbird docs]: /integrations/rainbird/ +[rainforest_raven docs]: /integrations/rainforest_raven/ +[rainmachine docs]: /integrations/rainmachine/ +[raspberry_pi docs]: /integrations/raspberry_pi/ +[recollect_waste docs]: /integrations/recollect_waste/ +[recorder docs]: /integrations/recorder/ +[renson docs]: /integrations/renson/ +[reolink docs]: /integrations/reolink/ +[rflink docs]: /integrations/rflink/ +[rfxtrx docs]: /integrations/rfxtrx/ +[ridwell docs]: /integrations/ridwell/ +[ring docs]: /integrations/ring/ +[roborock docs]: /integrations/roborock/ +[roku docs]: /integrations/roku/ +[roomba docs]: /integrations/roomba/ +[rova docs]: /integrations/rova/ +[ruckus_unleashed docs]: /integrations/ruckus_unleashed/ +[ruuvi_gateway docs]: /integrations/ruuvi_gateway/ +[rympro docs]: /integrations/rympro/ +[samsam docs]: /integrations/samsam/ +[samsungtv docs]: /integrations/samsungtv/ +[scene docs]: /integrations/scene/ +[schlage docs]: /integrations/schlage/ +[scrape docs]: /integrations/scrape/ +[screenlogic docs]: /integrations/screenlogic/ +[sense docs]: /integrations/sense/ +[sensibo docs]: /integrations/sensibo/ +[sensor docs]: /integrations/sensor/ +[sentry docs]: /integrations/sentry/ +[seventeentrack docs]: /integrations/seventeentrack/ +[shelly docs]: /integrations/shelly/ +[signal_messenger docs]: /integrations/signal_messenger/ +[smartthings docs]: /integrations/smartthings/ +[smhi docs]: /integrations/smhi/ +[smtp docs]: /integrations/smtp/ +[snmp docs]: /integrations/snmp/ +[somfy_mylink docs]: /integrations/somfy_mylink/ +[sonarr docs]: /integrations/sonarr/ +[sonos docs]: /integrations/sonos/ +[spotify docs]: /integrations/spotify/ +[sql docs]: /integrations/sql/ +[squeezebox docs]: /integrations/squeezebox/ +[ssdp docs]: /integrations/ssdp/ +[statistics docs]: /integrations/statistics/ +[steamist docs]: /integrations/steamist/ +[stream docs]: /integrations/stream/ +[suez_water docs]: /integrations/suez_water/ +[swiss_public_transport docs]: /integrations/swiss_public_transport/ +[switch docs]: /integrations/switch/ +[switch_as_x docs]: /integrations/switch_as_x/ +[switchbee docs]: /integrations/switchbee/ +[switcher_kis docs]: /integrations/switcher_kis/ +[system_bridge docs]: /integrations/system_bridge/ +[systemmonitor docs]: /integrations/systemmonitor/ +[tado docs]: /integrations/tado/ +[tailwind docs]: /integrations/tailwind/ +[technove docs]: /integrations/technove/ +[tedee docs]: /integrations/tedee/ +[template docs]: /integrations/template/ +[tesla_wall_connector docs]: /integrations/tesla_wall_connector/ +[teslemetry docs]: /integrations/teslemetry/ +[tessie docs]: /integrations/tessie/ +[tfiac docs]: /integrations/tfiac/ +[thermopro docs]: /integrations/thermopro/ +[thread docs]: /integrations/thread/ +[tibber docs]: /integrations/tibber/ +[tolo docs]: /integrations/tolo/ +[tplink docs]: /integrations/tplink/ +[tplink_omada docs]: /integrations/tplink_omada/ +[traccar docs]: /integrations/traccar/ +[traccar_server docs]: /integrations/traccar_server/ +[tractive docs]: /integrations/tractive/ +[tradfri docs]: /integrations/tradfri/ +[trafikverket_camera docs]: /integrations/trafikverket_camera/ +[trend docs]: /integrations/trend/ +[tuya docs]: /integrations/tuya/ +[twentemilieu docs]: /integrations/twentemilieu/ +[twinkly docs]: /integrations/twinkly/ +[twitch docs]: /integrations/twitch/ +[unifi docs]: /integrations/unifi/ +[unifiprotect docs]: /integrations/unifiprotect/ +[upnp docs]: /integrations/upnp/ +[usb docs]: /integrations/usb/ +[utility_meter docs]: /integrations/utility_meter/ +[vacuum docs]: /integrations/vacuum/ +[vallox docs]: /integrations/vallox/ +[valve docs]: /integrations/valve/ +[velbus docs]: /integrations/velbus/ +[velux docs]: /integrations/velux/ +[verisure docs]: /integrations/verisure/ +[version docs]: /integrations/version/ +[vesync docs]: /integrations/vesync/ +[vicare docs]: /integrations/vicare/ +[vizio docs]: /integrations/vizio/ +[wallbox docs]: /integrations/wallbox/ +[water_heater docs]: /integrations/water_heater/ +[weatherflow_cloud docs]: /integrations/weatherflow_cloud/ +[webmin docs]: /integrations/webmin/ +[webostv docs]: /integrations/webostv/ +[websocket_api docs]: /integrations/websocket_api/ +[wemo docs]: /integrations/wemo/ +[wiz docs]: /integrations/wiz/ +[wolflink docs]: /integrations/wolflink/ +[workday docs]: /integrations/workday/ +[wyoming docs]: /integrations/wyoming/ +[xbox docs]: /integrations/xbox/ +[xiaomi_ble docs]: /integrations/xiaomi_ble/ +[xiaomi_miio docs]: /integrations/xiaomi_miio/ +[yale_smart_alarm docs]: /integrations/yale_smart_alarm/ +[yalexs_ble docs]: /integrations/yalexs_ble/ +[yeelight docs]: /integrations/yeelight/ +[yolink docs]: /integrations/yolink/ +[zamg docs]: /integrations/zamg/ +[zeroconf docs]: /integrations/zeroconf/ +[zha docs]: /integrations/zha/ +[zhong_hong docs]: /integrations/zhong_hong/ +[zondergas docs]: /integrations/zondergas/ +[zone docs]: /integrations/zone/ +[zwave_js docs]: /integrations/zwave_js/ \ No newline at end of file diff --git a/source/images/blog/2024-03/social.png b/source/images/blog/2024-03/social.png new file mode 100644 index 0000000000000000000000000000000000000000..b8a114818fd754c45e014baedf211db0565294af GIT binary patch literal 139931 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 literal 0 HcmV?d00001 From 04bcb5df589d6294068c2599d0d97cb0d267aceb Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Wed, 28 Feb 2024 21:54:19 +0100 Subject: [PATCH 02/42] Update 2024.3 release notes (#31666) * Update 2024.3 release notes * Update 2024-03-06-release-20243.markdown * Update 2024-03-06-release-20243.markdown --- .../_posts/2024-03-06-release-20243.markdown | 31 +++++++++++++------ 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/source/_posts/2024-03-06-release-20243.markdown b/source/_posts/2024-03-06-release-20243.markdown index bd1c7ac17d2..e23f5c18787 100644 --- a/source/_posts/2024-03-06-release-20243.markdown +++ b/source/_posts/2024-03-06-release-20243.markdown @@ -17,7 +17,7 @@ og_image: /images/blog/2024-03/social.png -These are the beta release notes for Home Assistant Core 2024.2 (and is thus a +These are the beta release notes for Home Assistant Core 2024.3 (and is thus a work in progress). If you encounter any issues with the beta release, please report them on GitHub: @@ -44,7 +44,7 @@ Thanks for helping out testing the beta! ❤️ Enjoy the (beta) release! -../Frenck +../Frenck & Bram @@ -176,10 +176,6 @@ will be in that language. There are many more improvements in this release; here are some of the other noteworthy changes this release: -- Lorem ipsum, thanks [@frenck]! - -[@frenck]: https://github.com/frenck - _Note to remove: Processed possible noteworthy up to PR #111092_ Marked noteworhy from Core: @@ -193,10 +189,27 @@ Marked noteworhy from Core: - Add toggle service to climate ([@arturpragacz] - [#100418]) ([climate docs]) (noteworthy) - Add new range sensors to Tessie ([@Bre77] - [#110446]) ([tessie docs]) (noteworthy) - Support Bring! recently list ([@miaucl] - [#109854]) ([bring docs]) (noteworthy) +- Use new zigpy OTA providers for ZHA ([@puddly] - [#111159]) ([zha docs]) (noteworthy) -Marked noteworthy from Frontend: +[@Bre77]: https://github.com/chamberlain2007 +[@marcelveldt]: https://github.com/marcelveldt +[@astrandb]: https://github.com/astrandb +[@lellky]: https://github.com/lellky +[@iliessens]: https://github.com/iliessens +[@arturpragacz]: https://github.com/arturpragacz +[@Bre77]: https://github.com/Bre77 +[@miaucl]: https://github.com/miaucl +[@puddly]: https://github.com/puddly + +[tessie docs]: /integrations/tessie/ +[matter docs]: /integrations/matter/ +[myuplink docs]: /integrations/myuplink/ +[flexit_bacnet docs]: /integrations/flexit_bacnet/ +[dunehd docs]: /integrations/dunehd/ +[climate docs]: /integrations/climate/ +[bring docs]: /integrations/bring/ +[zha docs]: /integrations/zha/ -- Add devices to energy collection (#19849) @karwosts ## New integrations @@ -211,7 +224,7 @@ We welcome the following new integrations in this release: TODO: Description [@chamberlain2007]: https://github.com/chamberlain2007 -[@marcolettieri]: /integrations/marcolettieri +[@marcolettieri]: [/integrations/](https://github.com/)marcolettieri [@Thomas55555]: https://github.com/Thomas55555 [Aprilaire]: /integrations/aprilaire [Husqvarna Automower]: /integrations/husqvarna_automower From 2e73313bc020ff19aab9a2ad459d75a0610d8bf8 Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Wed, 28 Feb 2024 22:13:18 +0100 Subject: [PATCH 03/42] Update 2024.03 release notes (#31667) * Update 2024.03 release notes * Update 2024-03-06-release-20243.markdown --- source/_posts/2024-03-06-release-20243.markdown | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/source/_posts/2024-03-06-release-20243.markdown b/source/_posts/2024-03-06-release-20243.markdown index e23f5c18787..1f8a90683f9 100644 --- a/source/_posts/2024-03-06-release-20243.markdown +++ b/source/_posts/2024-03-06-release-20243.markdown @@ -191,6 +191,11 @@ Marked noteworhy from Core: - Support Bring! recently list ([@miaucl] - [#109854]) ([bring docs]) (noteworthy) - Use new zigpy OTA providers for ZHA ([@puddly] - [#111159]) ([zha docs]) (noteworthy) +Frontend: + +- Automated outlier detection for adjust sum dialog [#18723] by [@karwosts] +- Download energy panel data to CSV [#19863] by [@karwosts] + [@Bre77]: https://github.com/chamberlain2007 [@marcelveldt]: https://github.com/marcelveldt [@astrandb]: https://github.com/astrandb @@ -222,9 +227,12 @@ We welcome the following new integrations in this release: lawn mower straight from Home Assistant. - **[microBees]**, added by [@marcolettieri]
TODO: Description +- Add webmin integration ([@autinerd] - [#106976]) ([webmin docs]) (new-integration) +- WeatherFlow Forecast (REST API) ([@jeeftor] - [#106615]) ([weatherflow_cloud docs]) (new-integration) + [@chamberlain2007]: https://github.com/chamberlain2007 -[@marcolettieri]: [/integrations/](https://github.com/)marcolettieri +[@marcolettieri]: https://github.com/marcolettieri [@Thomas55555]: https://github.com/Thomas55555 [Aprilaire]: /integrations/aprilaire [Husqvarna Automower]: /integrations/husqvarna_automower @@ -237,6 +245,10 @@ The following virtual integrations have been added: - **[Duquesne Light]**, provided by [Opower] - **[SamSam]**, provided by [EnergyZero] - **[ZonderGas]**, provided by [EnergyZero] +- Add Motionblinds vitual integrations __init__.py ([@starkillerOG] - [#110903]) (new-integration) +- Add Motionblinds virtual integration Acomax ([@starkillerOG] - [#111458]) ([acomax docs]) (new-integration) +- Add Motionblinds virtual integration Krispol ([@starkillerOG] - [#111456]) ([krispol docs]) (new-integration) +- Add Motionblinds virtual integration Madeco ([@starkillerOG] - [#111455]) ([madeco docs]) (new-integration) [Duquesne Light]: /integrations/duquesne_light [EnergyZero]: /integrations/energyzero From bfb44a7e6750b2354e104b76274f0f08e8fdc6e1 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Mon, 4 Mar 2024 19:17:55 +0000 Subject: [PATCH 04/42] Add link to 1 blueprint + mention bdraco --- source/_posts/2024-03-06-release-20243.markdown | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/source/_posts/2024-03-06-release-20243.markdown b/source/_posts/2024-03-06-release-20243.markdown index 1f8a90683f9..14871556f20 100644 --- a/source/_posts/2024-03-06-release-20243.markdown +++ b/source/_posts/2024-03-06-release-20243.markdown @@ -55,6 +55,7 @@ Enjoy the (beta) release! - [New sentences for Assist](#new-sentences-for-assist) - [Disabling the remotely enabling of Home Assistant Remote UI](#disabling-the-remotely-enabling-of-home-assistant-remote-ui) - [Translating states in your templates](#translating-states-in-your-templates) +- [Home Assistant boots twice as fast](#home-assistant-boots-twice-as-fast) - [Other noteworthy changes](#other-noteworthy-changes) - [New integrations](#new-integrations) - [Integrations now available to set up from the UI](#integrations-now-available-to-set-up-from-the-ui) @@ -89,9 +90,9 @@ To accompany this new functionality, we've created two blueprints that you can u **Broadcast message** -This blueprint allows you to create a script that broadcasts a Text-to-Speech message to specific media players and asks the user for the message to broadcast. +This blueprint allows you to create an announce script for your dashboard that is pre-configured to a specific media player and text-to-speech engine. When activated, it will ask the user for the message to play. -{% my blueprint_import badge blueprint="https://example.com" %} +{% my blueprint_import badge blueprint="https://community.home-assistant.io/t/announce-text-to-speech-on-media-player/699186" %} **Add to to-do list** @@ -171,6 +172,10 @@ will be in that language. [@PiotrMachowski]: https://github.com/PiotrMachowski +## Home Assistant boots twice as fast + +Every release [@bdraco] improves the performance on some aspect of Home Assistant. It has become so regular that we don't always highlight his enormous efforts there. However, this release is, it is so noticeable that we wanted to call it out: Home Assistant now boots on average twice as fast! 🚀 + ## Other noteworthy changes There are many more improvements in this release; here are some of the other From 90d7502304f26ccecf865ae75ebced80d4f20c67 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Mon, 4 Mar 2024 19:52:52 +0000 Subject: [PATCH 05/42] Update blueprints --- source/_posts/2024-03-06-release-20243.markdown | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/source/_posts/2024-03-06-release-20243.markdown b/source/_posts/2024-03-06-release-20243.markdown index 14871556f20..2445470a4c8 100644 --- a/source/_posts/2024-03-06-release-20243.markdown +++ b/source/_posts/2024-03-06-release-20243.markdown @@ -84,21 +84,17 @@ Scripts in Home Assistant allow you to capture a sequence of actions and choices Script fields can be defined in the script editor and show up when you call the script in your automation. In this release, script fields will be available in the more info dialog when tapping on a script in the dashboard. This allows you to provide the input fields and run the script, unlocking a whole new dimension of possibilities. - + -To accompany this new functionality, we've created two blueprints that you can use to add to your dashboard: +To accompany this new functionality, we've created two blueprints as examples of what you could want to add to your dashboard: -**Broadcast message** - -This blueprint allows you to create an announce script for your dashboard that is pre-configured to a specific media player and text-to-speech engine. When activated, it will ask the user for the message to play. +**Announce message**: This blueprint allows you to create an announce script for your dashboard that is pre-configured to a specific media player and text-to-speech engine. When activated, it will ask the user for the message to play. {% my blueprint_import badge blueprint="https://community.home-assistant.io/t/announce-text-to-speech-on-media-player/699186" %} -**Add to to-do list** +**Add to to-do list**: This blueprint allows you to create a script to add an item to a to-do list that is pre-configured to a specific to-do list. When activated, it will ask the user for the item to add. -This blueprint allows you to create a script to quickly add a task to a to-do list. - -{% my blueprint_import badge blueprint="https://example.com" %} +{% my blueprint_import badge blueprint="https://community.home-assistant.io/t/add-to-do-item/699193" %} ## New energy graph From 67b2695f8fc3f0c4867066837ee958c93a53b18f Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Mon, 4 Mar 2024 19:58:37 +0000 Subject: [PATCH 06/42] Fix blueprint url --- source/_posts/2024-03-06-release-20243.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_posts/2024-03-06-release-20243.markdown b/source/_posts/2024-03-06-release-20243.markdown index 2445470a4c8..3207efdf70f 100644 --- a/source/_posts/2024-03-06-release-20243.markdown +++ b/source/_posts/2024-03-06-release-20243.markdown @@ -90,11 +90,11 @@ To accompany this new functionality, we've created two blueprints as examples of **Announce message**: This blueprint allows you to create an announce script for your dashboard that is pre-configured to a specific media player and text-to-speech engine. When activated, it will ask the user for the message to play. -{% my blueprint_import badge blueprint="https://community.home-assistant.io/t/announce-text-to-speech-on-media-player/699186" %} +{% my blueprint_import badge blueprint_url="https://community.home-assistant.io/t/announce-text-to-speech-on-media-player/699186" %} **Add to to-do list**: This blueprint allows you to create a script to add an item to a to-do list that is pre-configured to a specific to-do list. When activated, it will ask the user for the item to add. -{% my blueprint_import badge blueprint="https://community.home-assistant.io/t/add-to-do-item/699193" %} +{% my blueprint_import badge blueprint_url="https://community.home-assistant.io/t/add-to-do-item/699193" %} ## New energy graph From fb0d32a47f51e80b2550ad4fa5e91a0365c24fad Mon Sep 17 00:00:00 2001 From: Arie Catsman <120491684+catsmanac@users.noreply.github.com> Date: Fri, 1 Mar 2024 14:57:39 +0100 Subject: [PATCH 07/42] Document grid import / export and energy dashboard use for Enphase Envoy. (#31491) * EnphaseNet * Update text for disabled sensors. * Tiny tweaks * Spelling correction and 1 more abbreviation. --------- Co-authored-by: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com> --- source/_integrations/enphase_envoy.markdown | 29 +++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/source/_integrations/enphase_envoy.markdown b/source/_integrations/enphase_envoy.markdown index a72f6f6574c..66af2318574 100644 --- a/source/_integrations/enphase_envoy.markdown +++ b/source/_integrations/enphase_envoy.markdown @@ -36,9 +36,22 @@ This integration will offer various sensors depending on the configuration of yo - Historical energy production & consumption - Power production per-inverter -Production and consumption sensors for each phase are available for Envoy S Metered / IQ Gateway Metered with installed and configured current transformers (CT) on more than 1 phase. +_Consumption sensors require your Envoy to be properly configured with consumption CT sensors installed._ -_Consumption sensors require your Envoy to be properly configured with consumption CT sensors installed._ +For Envoy S Metered / IQ Gateway Metered with installed and configured current transformers (CT), additional features are available: + +- Production and consumption sensors for each phase, if CT are installed on more than 1 phase. +- Sensors for net production (grid export) and net consumption (grid import) if the consumption CT is a net-consumption CT. +- Disabled sensors for: + + - Phase net production and net consumption. + - Frequency net consumption CT (aggregate and phase). + - Voltage net consumption CT (aggregate and phase).[^1] + - Metering status for net consumption and production CT (`normal` | `not-metering` | `check-wiring`) (aggregate and phase). + - Meter status flags active for net consumption and production CT (aggregate and phase).[^2] + +[^1]: For multi-phase systems, the Envoy sums the voltages of the phases. May be valid for split-phase, but for 3-phase systems use the individual phases rather than the summed value. +[^2]: If this value is non-zero, consult the diagnostic report of the Envoy and look for `raw_data` - `/ivp/meters` - `statusFlags` for set flags (`production-imbalance` | `negative-production` | `power-on-unused-phase` | `negative-total-consumption`). For Enphase Ensemble systems with the Enpower/IQ System Controller and Encharge/IQ Batteries installed, additional features are available: @@ -74,3 +87,15 @@ The default polling interval is 60 seconds. To customize the polling interval, r ## Credentials update This integration supports updating configuration by re-adding the integration and specifying the same or new IP address, username, and password. Use this method if your Enlighten credentials or the device's IP address has changed and needs to be updated. + +## Energy dashboard + +This integration provides several values suitable for the energy dashboard: + +- For `Solar production`, use the `Envoy Lifetime energy production` entity. +- For `Grid consumption`, use the `Envoy Lifetime net energy consumption` entity.[^3] +- For `Return to grid`, use the `Envoy Lifetime net energy production` entity.[^3] + +[^3]: Only applies when using Envoy S Metered / IQ Gateway Metered with installed and configured current transformers (CT). + +There are no readily available battery energy sensors for use with the `Home Battery storage`. You can consider using the Encharge `real_power_mw` entity as an input to Riemann integrators for charge (negative) or discharge (positive) values. As the [polling interval](#polling-interval) is 1 minute, these may be off though. From ecfae7a938f0a48ed352b9b0dfae696ddfce8972 Mon Sep 17 00:00:00 2001 From: karwosts <32912880+karwosts@users.noreply.github.com> Date: Mon, 4 Mar 2024 04:05:49 -0500 Subject: [PATCH 08/42] Document energy devices detail card (#31559) * Update energy.markdown for new detail devices card * Add files via upload * Rename devices-detail-graph.png to source/images/dashboards/energy/devices-detail-graph.png * Update energy.markdown * tiny tweak --------- Co-authored-by: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com> --- source/_dashboards/energy.markdown | 15 +++++++++++++++ .../dashboards/energy/devices-detail-graph.png | Bin 0 -> 48216 bytes 2 files changed, 15 insertions(+) create mode 100644 source/images/dashboards/energy/devices-detail-graph.png diff --git a/source/_dashboards/energy.markdown b/source/_dashboards/energy.markdown index 4002bf157f7..9e864f695f7 100644 --- a/source/_dashboards/energy.markdown +++ b/source/_dashboards/energy.markdown @@ -196,3 +196,18 @@ The following example limits the number of shown devices to 5: type: energy-devices-graph max_devices: 5 ``` + +## Detail devices energy graph + +

+ Screenshot of the devices energy graph card + Screenshot of the detail devices energy graph card. +

+ +The **Detail devices energy graph** card is similar to the **Devices energy graph** card, but shows the individual usage on a time scale. + +### Examples + +```yaml +type: energy-devices-detail-graph +``` diff --git a/source/images/dashboards/energy/devices-detail-graph.png b/source/images/dashboards/energy/devices-detail-graph.png new file mode 100644 index 0000000000000000000000000000000000000000..7c1341d1c05fffdc225ee996a48f0bbd9199cc30 GIT binary patch literal 48216 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

!PHgPMe6_A7gqT;as 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 CKvWF? literal 0 HcmV?d00001 From 16d58ad47daae4adce855fc43fa9c20c51c770f9 Mon Sep 17 00:00:00 2001 From: Marco Lettieri Date: Tue, 5 Mar 2024 14:47:56 +0100 Subject: [PATCH 09/42] Added button platform to microBees integration (#31569) * added button platform to microbees integration * Update microbees.markdown * Update source/_integrations/microbees.markdown Co-authored-by: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com> --------- Co-authored-by: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com> --- source/_integrations/microbees.markdown | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source/_integrations/microbees.markdown b/source/_integrations/microbees.markdown index 8da1f129ddd..6c45c213bb2 100644 --- a/source/_integrations/microbees.markdown +++ b/source/_integrations/microbees.markdown @@ -3,6 +3,7 @@ title: microBees description: Instructions on how to integrate microBees devices into Home Assistant. ha_category: - Switch + - Button - Light - Sensor ha_release: 2024.3 @@ -13,6 +14,7 @@ ha_domain: microbees ha_iot_class: Cloud Polling ha_platforms: - switch + - button - light - sensor ha_integration_type: integration @@ -24,6 +26,7 @@ To retrieve the OAuth2 Client ID and Client Secret go to [microBees Developer Da There is currently support for the following device types within Home Assistant: - **Switch** +- **Button** - **Light** - **Sensor** From 80f802e23f2864595b47f1b5e8b2fb94ed90c124 Mon Sep 17 00:00:00 2001 From: Sebastian Noack Date: Thu, 29 Feb 2024 20:55:39 -0500 Subject: [PATCH 10/42] Update Balboa Spa integration documentation for new fan and lights support (#31587) --- source/_integrations/balboa.markdown | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/source/_integrations/balboa.markdown b/source/_integrations/balboa.markdown index 588b785b520..d9c9d4fb763 100644 --- a/source/_integrations/balboa.markdown +++ b/source/_integrations/balboa.markdown @@ -4,12 +4,16 @@ description: Instructions on how to integrate Balboa Spa WiFi within Home Assist ha_category: - Binary sensor - Climate + - Fan + - Light ha_release: 2021.12 ha_iot_class: Local Push ha_domain: balboa ha_platforms: - binary_sensor - climate + - fan + - light ha_codeowners: - '@garbled1' - '@natekspencer' @@ -23,6 +27,8 @@ There is currently support for the following device types within Home Assistant: - Binary sensor (Filter cycles and circulation pumps) - Climate +- Fan (Pumps/Jets) +- Light ## Compatible hardware From c35c829c716155a622eed8d3b706511dcf4e8fd2 Mon Sep 17 00:00:00 2001 From: Jevgeni Kiski Date: Mon, 4 Mar 2024 11:06:56 +0200 Subject: [PATCH 11/42] Add date platform and improve other text of Vallox integration (#31609) * Add button platform and improve other text. * cahange button to date * PR review * tiny tweak --------- Co-authored-by: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com> --- source/_integrations/vallox.markdown | 37 ++++++++++++++++++++++------ 1 file changed, 29 insertions(+), 8 deletions(-) diff --git a/source/_integrations/vallox.markdown b/source/_integrations/vallox.markdown index 3e76075e3ec..66479c71702 100644 --- a/source/_integrations/vallox.markdown +++ b/source/_integrations/vallox.markdown @@ -11,6 +11,7 @@ ha_iot_class: Local Polling ha_domain: vallox ha_platforms: - binary_sensor + - date - fan - number - sensor @@ -19,21 +20,41 @@ ha_codeowners: - '@andre-richter' - '@slovdahl' - '@viiru-' + - '@yozik04' ha_integration_type: integration --- The **Vallox** {% term integration %} lets you control any Vallox ventilation unit that is supported by the [vallox_websocket_api](https://github.com/yozik04/vallox_websocket_api) (follow the link for a list of supported units). -The **fan** platform of this {% term integration %} allows you to turn on/off the complete unit via the toggle switch, control fan speed and select a ventilation profile. - -The **sensor** platform exposes a number of relevant metrics like fan speed, various air temperatures, and humidity. - -The **switch** platform allows locking heat recovery bypass. - -The **number** platform allows to control supply air temperatures. - {% include integrations/config_flow.md %} +## Platforms + +### Fan + +The fan platform of this integration allows you to control the entire unit. You can turn the unit on/off using the toggle switch, adjust the fan speed, and select a ventilation profile. + +### Sensor + +The sensor platform allows you to monitor various metrics such as fan speeds, air temperatures, humidity, remaining filter life, cell state, and more. + +### Binary sensor + +The binary sensor platform allows you to monitor the status of the post heater. + +### Switch + +The switch platform allows you to lock the heat recovery bypass. + +### Number + +The number platform gives you control over the supply air temperatures. + +### Date + +The date platform allows you to set the filter change date. + + ## Profile switching For convenient switching of ventilation profiles in the GUI, just click on the `Vallox` fan {% term entity %} to get a drop-down menu to select from. Alternatively, the service `fan/set_preset_mode` can be used. From b3ab4eec7f2a78bab04c58a81612e0f18c03fd68 Mon Sep 17 00:00:00 2001 From: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com> Date: Thu, 29 Feb 2024 11:15:11 +0100 Subject: [PATCH 12/42] Views intro page: update (#31674) - Update steps to refelct current software - Add list introducing the different view types - Addresses feedback from #31589 --- source/dashboards/views.markdown | 13 +++++++++---- source/images/dashboards/views.png | Bin 1661 -> 17312 bytes 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/source/dashboards/views.markdown b/source/dashboards/views.markdown index 27423182592..450d138cef6 100644 --- a/source/dashboards/views.markdown +++ b/source/dashboards/views.markdown @@ -3,11 +3,16 @@ title: "Views" description: "A view is a tab inside a dashboard." --- -A View is a tab inside a dashboard. -To display cards on the UI you have to define them in views. +A view is a tab inside a dashboard. Views control the layout. -You can add a view to your user interface, by clicking the menu (three dots at the top right of the screen) and then **Edit Dashboard**. -Click the `+` button in the top menu bar. +There are four different view types: + +- **Masonry (default)**: Arranges cards in columns based on their card size. +- **Panel**: *Displays one card in full width. For example a map or an image. +- **Sidebar**: Arranges cards in 2 columns, a wide one and a smaller one on the right. +- **Sections (experimental)**: Arranges cards in a grid system and lets you group them in sections. + +To add a view to your user interface, in the top right corner, select the pencil icon. Then, select the `+` button in the top menu bar.

Views toolbar diff --git a/source/images/dashboards/views.png b/source/images/dashboards/views.png index 6cfa5c1c0a62e38144e5aab4f62b31eb1d9dc61a..be03170c199094963f65aa7376ace5caa4d4356d 100644 GIT binary patch literal 17312 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 Date: Fri, 1 Mar 2024 13:57:42 +0100 Subject: [PATCH 13/42] Dashboards: add page on sections view (#31691) * Dashboards: add page on sections view * Add note about grouping * Rephrase * Add yaml * Update source/_includes/asides/dashboards_navigation.html Co-authored-by: Klaas Schoute * Update source/_dashboards/sections.markdown --------- Co-authored-by: Klaas Schoute --- source/_dashboards/sections.markdown | 30 +++++++++++++++++++ .../asides/dashboards_navigation.html | 4 +-- 2 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 source/_dashboards/sections.markdown diff --git a/source/_dashboards/sections.markdown b/source/_dashboards/sections.markdown new file mode 100644 index 00000000000..acaa724ce76 --- /dev/null +++ b/source/_dashboards/sections.markdown @@ -0,0 +1,30 @@ +--- +type: view +title: Sections (experimental) +sidebar_label: Sections (experimental) +description: "Lets you organize your cards in sections on a grid." +--- + +The sections view lets you organize your cards in sections on a grid. +It allows you to group card directly in sections, without having to use horizontal or vertical stack cards. + +There are a few options to rearrange cards. You can move cards within the section, +move them from one section into another or even move the entire section. +You can also copy and paste cards. + +To see how it works, check out the demo: + + + +{% configuration %} +type: + required: false + description: "`sections`" + type: string +{% endconfiguration %} + +## Related topics + +- [Masonry view](/dashboards/masonry/) +- [Panel view](/dashboards/panel/) +- [Sidebar view](/dashboards/sidebar/) diff --git a/source/_includes/asides/dashboards_navigation.html b/source/_includes/asides/dashboards_navigation.html index 87e1eb85b3c..e438544380c 100644 --- a/source/_includes/asides/dashboards_navigation.html +++ b/source/_includes/asides/dashboards_navigation.html @@ -46,12 +46,12 @@

Advanced