From 20eba0e442ac1c8c189ba65d91526087ae930897 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Wed, 28 Apr 2021 21:04:08 +0200 Subject: [PATCH] Beta release notes for 2021.5 --- _config.yml | 9 +- .../_posts/2021-05-05-release-20215.markdown | 2009 +++++++++++++++++ 2 files changed, 2013 insertions(+), 5 deletions(-) create mode 100644 source/_posts/2021-05-05-release-20215.markdown diff --git a/_config.yml b/_config.yml index 72b55c7b9f3..e30b07103e8 100644 --- a/_config.yml +++ b/_config.yml @@ -8,8 +8,7 @@ title: Home Assistant subtitle: Open source home automation that puts local control and privacy first. author: Home Assistant simple_search: https://www.google.com/search -description: - Open source home automation that puts local control and privacy first. +description: Open source home automation that puts local control and privacy first. # Default date format is "ordinal" (resulting in "July 22nd 2007") # You can customize the format as defined in @@ -105,9 +104,9 @@ social: # Home Assistant release details current_major_version: 2021 -current_minor_version: 4 -current_patch_version: 6 -date_released: 2021-04-19 +current_minor_version: 5 +current_patch_version: 0 +date_released: 2021-05-05 # 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/2021-05-05-release-20215.markdown b/source/_posts/2021-05-05-release-20215.markdown new file mode 100644 index 00000000000..ced59539e6f --- /dev/null +++ b/source/_posts/2021-05-05-release-20215.markdown @@ -0,0 +1,2009 @@ +--- +layout: post +title: "2021.5: Beta release notes" +description: "Beta release notes for Home Assistant 2021.5" +date: 2021-04-28 00:00:00 +date_formatted: "May 5, 2021" +author: Franck Nijhof +author_twitter: frenck +comments: true +categories: +- Release-Notes +- Core +og_image: /images/blog/2021-05/social.png +feedback: true +--- + + + +These are the beta release notes for Home Assistant Core 2021.5 (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/Lovelace:
+ +- Issues with the Supervisor:
+ +- Issues with the documentation:
+ + +Please be sure to include the beta version you are running in the issue +description (not title), so we can classify your issue correctly. + +Issues introduced in the beta are processed with priority. + +This release we did an exhaustive review of the startup, shutdown, and upgrade +processes. + +- [Code Editor bug & Safari](#code-editor-bug--safari) +- [Database upgrades & performance](#database-upgrades--performance) +- [Startup visibility - What is taking so long?](#startup-visibility---what-is-taking-so-long) +- [Ever wonder why Home Assistant didn’t restart when you pressed the restart button?](#ever-wonder-why-home-assistant-didnt-restart-when-you-pressed-the-restart-button) +- [Memory Leaks](#memory-leaks) +- [Lorem ipsum](#lorem-ipsum) +- [Other noteworthy changes](#other-noteworthy-changes) +- [New Integrations](#new-integrations) +- [New Platforms](#new-platforms) +- [Integrations now available to set up from the UI](#integrations-now-available-to-set-up-from-the-ui) +- [If you need help...](#if-you-need-help) +- [Breaking Changes](#breaking-changes) +- [Farewell to the following](#farewell-to-the-following) +- [All changes](#all-changes) + +## Code Editor bug & Safari + +We are aware of bug with CodeMirror, the code editor in Home Assistant that +used for things like YAML, when using the Safari browser. + +We currently advise not to use Safari when using the code editor in +Home Assistant. + +We are working with the upstream project to have this fixed during the beta. + +## Database upgrades & performance + +There is a database upgrade this release, but worry not as database upgrades +now happen in the background and no longer prevent Home Assistant from starting. + +Thanks to [@lmagyar] and [@raman325] we now can store events up to +64 characters and the recorder won’t get stuck if there is one exceeding that +length. + +And if you have ever had to wait for the recorder to shutdown, worry no more +as Home Assistant can now shut down successfully, even when the database is +broken. + +Talking about broken databases: If you have ever had database corruption of +your sqlite database, you probably know how much of a pain it is to get things +back up and running again. We recently added live recovery to allow +Home Assistant to recover and start a new database when the recorder encountered +corruption when saving events or states to the database. This release extends +this live recovery to work during migration and purge.This also means no more +waiting for a database check on unclean shutdown! + +Finally, the recorder performance has been improved and SD Cards should last +a bit longer now, as we reduced how frequently we write to the database. + +## Startup visibility - What is taking so long? + +TODO: +- Some rewording / flow fixes +- Screenshot + +Ever wondered why starting up Home Assistant took so long? + +Stop wondering, as you can now see which integration is delaying startup as +the integration taking the longest time to setup is now displayed when +Home Assistant is starting. + +## Ever wonder why Home Assistant didn’t restart when you pressed the restart button? + +TODO: +- Title... +- Wording/flow adjustments + +The restart button now provides feedback so you know right away if a restart +can’t happen because of invalid config, broken integration, or database upgrade +in progress. + +We adjusted timeouts and fixed a few places were shutdown would block +forever, for example, when restarting Home Assistant the configuration gets +checked and there was a case that could hang in this check forever. + +Restarts are faster now... (WTH https://community.home-assistant.io/t/wth-stopping-service-is-too-slow/220507), +as more parts of Home Assistant now cancel/react to the shutdown procedure +better. + +We also audited the top 35 integrations to make sure they stop polling on stop. +Thanks for {% my general title="turning on analytics" %}! + +## Memory Leaks + +TODO: +- Extend or move to other noteworthy changes + +We did an audit of memory leaks and fixed a couple of generic cases in our core +codebase. But also fixed over 15 cases during unload/reload in popular +integrations. + +## Updated look and feel for the integration dashboard + +TODO: + +- Screenshot +- Improve flow/writing + +The {% my integrations title="Integrations dashboard" %} has been updated to +have a more compacted look and provide more useful information. + +For example, it now shows the state of the integration and in case of a +failure, it will now tell you why that is. + +Additionally, you can now recognize integrations that rely on the cloud +(they show a little cloud label) and integration that are installed as +custom integration (they show a little package label). + +## Color modes! + +TODO: +- Make story out of it +- Add screenshot + +We now have support RGBWW, RGBW and many more color modes! Previously, we +relied mainly on HS & Brightness (HSB/HSV) and colors in Home Assistant was +based on that. But now, an integration can provide the actual color mode an +light supports. This allow Home Assistant (and integration to adjust the +behavior for the light better. + +For example, the frontend will adjust the color picker based on the color mode +of the light. + + + +At this moment not all integrations are able to support color modes yet. + +## Enter and exit criteria improvements for zones + +TODO: + +- Improve wording/flow a little +- Pull down image locally, use standard image block +- link justus502 +- Maybe move up a little? + +The enter and exit criteria for zones have been improved this release. + +So, location updates from device trackers have a center location and an accuracy. +The true location of the device can be anywhere within the circle centered at +location, with radius accuracy. Likewise, zones are circular defined by a center +location and a radius. + +The previous criteria for zones would at every location update find the zone +nearest to the center of the location update where the circles defined by the +location update and the zone were overlapping, no matter how big the circle +defined by the location update was. + +This meant it was possible to jump in to a very small zone based on a highly +inaccurate location update. + +To illustrate further, @justus502 made an illustration: + + + +The brown circles are the GPS-coordinates in the center and the (in)accuracy +sent by the device. The green circles are zones and their center in the middle. +The red circle is the actual location of the device. + +The old logic would consider the device to be within all three zones +(the green circles), and would pick the one to the upper left. + +As of this release it no longer enter a zone unless the location +(the brown circle) is entirely within the green circle, this means none of the +three zones in the illustration would be entered. + +Once a zone has been entered however, less accurate location updates +(a larger brown circle) are allowed, and the zone won't be exited unless the +location (brown circle) is no longer overlapping the zone (the green circle). + +TL;DR: This change will improve the zone a tracked device is in, is +be less "jumpy" and will reduce false positives. + + + +## Other noteworthy changes + +There is much more juice in this release; here are some of the other +noteworthy changes this release: + +Backend things/candidates: + +- Add ClimaCell v4 API support ([@raman325] - [#47575]) ([climacell docs]) +- Add hive boost off functionality ([@KJonline] - [#48701]) ([hive docs]) (breaking-change) +- Allow template covers to have opening and closing states ([@bdr99] - [#47925]) ([template docs]) +- Bump hass-nabucasa 0.43 ([@balloob] - [#48964]) ([cloud docs]) +- Add new attributes to Climacell ([@raman325] - [#48707]) ([climacell docs]) +- Reintroduce iAlarm integration ([@RyuzakiKK] - [#43525]) ([ialarm docs]) (new-integration) +- Add Rituals Perfume Genie sensor platform ([@milanmeu] - [#48270]) ([rituals_perfume_genie docs]) (new-platform) +- Live db migrations and recovery ([@bdraco] - [#49036]) ([recorder docs]) (breaking-change) +- Support min()/max() as template function ([@frenck] - [#48996]) +- Add support for custom configurations in ZHA ([@dmulcahey] - [#48423]) ([zha docs]) +- Allow top level non-trigger template entities ([@balloob] - [#48976]) ([template docs]) +- Added Spanish US voice to Google Cloud TTS ([@soundch3z] - [#49200]) ([google_cloud docs]) +- Support all available Google Cloud TTS languages ([@hmmbob] - [#49208]) ([google_cloud docs]) +- Add binary sensor platform to Rituals Perfume Genie Integration ([@milanmeu] - [#49207]) ([rituals_perfume_genie docs]) (new-platform) +- Add support for multiple AdGuard instances ([@eifinger] - [#49116]) ([adguard docs]) +- Add alarm control panel support to deCONZ integration ([@Kane610] - [#48736]) ([deconz docs]) (new-platform) +- Skip recorder commit if there is nothing to do ([@bdraco] - [#49614]) ([recorder docs]) +- Add battery support for Sonos speakers ([@jjlawren] - [#49441]) ([sonos docs]) (new-platform) +- Add Blueprint foundation to Scripts ([@frenck] - [#48621]) ([config docs]) ([script docs]) + +Frontend things/candidates: + +- Align layout of all cards (#8931) @balloob +- Highlight if log comes from custom component (#8912) @balloob +- Add UI for Z-Wave JS Device Reinterview (#8957) @cgarwood +- Add opt-in toggle for zwave-js telemetry to config panel (#8958) @cgarwood + +## New Integrations + +We welcome the following new integrations this release: + +- [Compensation][compensation docs], added by [@Petro31] +- [iAlarm][ialarm docs], added by [@RyuzakiKK] +- [Kostal Plenticore][kostal_plenticore docs], added by [@stegm] +- [Met Éireann][met_eireann docs], added by [@DylanGore] +- [motionEye][motioneye docs], added by [@dermotduffy] +- [Mutesync][mutesync docs], added by [@currentoor] +- [Picnic][picnic docs], added by [@corneyl] +- [SiteSage Emonitor][emonitor docs], added by [@bdraco] + +## New Platforms + +The following integration got support for a new platform: + +- [ClimaCell][climacell docs] added sensor that provide a whole bunch of additional data, done by [@raman325] +- [deCONZ][deconz docs] now has support for alarm control panels, added by [@Kane610] +- [Mazda Connected Services][mazda docs] now provides a device tracker for your car, added by [@bdr99] +- [National Weather Service (NWS)][nws docs] added support for weather sensors, added by [@MatthewFlamm] +- [Rituals Perfume Genie][rituals_perfume_genie docs] now provides sensors and binary sensors, added by [@milanmeu] +- [Sonos][sonos docs] added battery & charging binary sensors for Sonos speakers that have those, done by [@jjlawren] +- [Zigbee Home Automation (ZHA)][zha docs] now has support for alarm control panels, added by [@dmulcahey] + +## Integrations now available to set up from the UI + +The following integrations are now available via the Home Assistant UI: + +- [Enphase Envoy][enphase_envoy docs], done by [@bdraco] +- [Google Maps Travel Time][google_travel_time docs], done by [@raman325] +- [SMA Solar][sma docs], done by [@rklomp] +- [Waze Travel Time][waze_travel_time docs], done by [@raman325] +- [Ezviz][ezviz docs], done by [@RenierM26] +- [AVM FRITZ!Box Tools][fritz docs], done by [@chemelli74] + +## If you need help... + +...don't hesitate to use our very active [forums](https://community.home-assistant.io/) or join us for a little [chat](https://discord.gg/c5DvZ4e). + +Experiencing issues introduced by this release? Please report them in our [issue tracker](https://github.com/home-assistant/core/issues). Make sure to fill in all fields of the issue template. + + + +## Breaking Changes + +Below is a listing of the breaking change for this release, per subject or +integration. Click on one of those to read more about the breaking change +for that specific item. + +{% details "Custom integration" %} + +Custom integrations now require a version key in their manifest file, this also +means that all custom integrations now require a manifest file. + +If you are using a legacy custom integration like `custom_components/awesome.py` +this now needs to move to `custom_components/awesome/__init__.py` so you can +add `custom_components/awesome/manifest.json` to it. + +For more information about integration, manifests have a look here: + + +Custom integrations that do not have this will be blocked from loading if +it’s missing a version in the manifest starting with Home Assistant 2021.6. + +If you see these errors, please report the issue with the author of that +custom integration. + +([@ludeeus] - [#49726]) + +{% enddetails %} + +{% details "Google Travel Time" %} + +The Google Travel Time integration is now configured via the UI. Configuring +the integration via YAML is now deprecated. Existing YAML configuration is +automatically imported on upgrade and can be safely removed after upgrade. + +([@raman325] - [#43509]) + +{% enddetails %} + +{% details "Garmin Connect" %} + +The unit of measurement from Garmin Connect timestamp sensors has been removed. +It used to be set to empty string. If you have automations, scripts or external +data recvorder that rely on unit of measurement for these sensors, you might +need to adjust to this change. + +([@MartinHjelmare] - [#48431]) + +{% enddetails %} + +{% details "System Monitor" %} + +The unit of measurement from System Monitor timestamp sensors has been removed. +It used to be set to empty string. If you have automations, scripts or external +data recvorder that rely on unit of measurement for these sensors, you might +need to adjust to this change. + +([@MartinHjelmare] - [#48431]) + +{% enddetails %} + +{% details "Enphase Envoy" %} + +Enphase Envoy has fully transitioned to configuration via UI. YAML configuration +will be removed in an upcoming version. Existing YAML configuration will be +imported automatically, and can now safely be removed from your configuration +files. + +All sensors are now configured by default. Each inverter has a unique ID and +can now be disabled in the UI. + +([@bdraco] - [#48517]) + +{% enddetails %} + +{% details "Waze Travel Time" %} + +The Waze Travel Time integration is now configured via the UI. Configuring +the integration via YAML is now deprecated. Existing YAML configuration is +automatically imported on upgrade and can be safely removed after upgrade. + +([@raman325] - [#43419]) + +{% enddetails %} + +{% details "ASUSWRT" %} + +The `device_tracker` entity state attribute `ip_address` has been changed and is +now be named `ip`. You need to update automations and scripts that use this +attribute. + +([@bieniu] - [#48764]) + +{% enddetails %} + +{% details " Recollect Waste" %} + +Recollect Waste pickup dates are now stored as UTC timestamps. + +([@bachya] - [#48690]) + +{% enddetails %} + +{% details "KNX" %} + +The `config_file` YAML option for KNX was deprecated before and has now been +removed. + +([@marvin-w] - [#48799]) + +{% enddetails %} + +{% details "Events" %} + +An event fired with an `event_type` of more than 64 characters would previously +result in recorder errors but the event would otherwise work. Now, firing an +event with more than 64 characters in the event type will raise immediately. + +If you are using long events in your automations or scripts, you should adjust +to this change. Custom integration authors should review their event types. + +([@raman325] - [#48115]) + +{% enddetails %} + +{% details "Hive" %} + +The existing Hive service `heating_boost` will be deprecated in Home Assistant +release 2021.0.6 and a new service to replace it has been created called +`heating_boost_on`. + +If you use the `heating_boost` Hive service please update your configuration +to the new service. A deprecation warning will be printed to the logs when the +deprecated service is used. + +([@KJonline] - [#48701]) + +{% enddetails %} + +{% details "Ezviz" %} + +The Ezviz integration is now configured via the UI. Configuring +the integration via YAML is now deprecated. Existing YAML configuration is +automatically imported on upgrade and can be safely removed after upgrade. + +All camera state attributes were removed and replaced by binary_sensors, +sensors or switches. + +List of old camera state attributes with their new replacements: + +- "privacy": switch entity, camera_name.privacy +- "audio": switch entity, camera_name.sound +- "ir_led": switch entity, camera_name.infrared +- "state_led": switch entity, camera_name.light +- "follow_move": switch entity, camera_name.tracking +- "alarm_notify": camara status, "Recording" +- "alarm_sound_mod": sensor, camera_name.alarm_sound_mod +- "encrypted": binary_sensor, camera_name.encrypted +- "local_ip": sensor, camera_name.local_ip +- "detection_sensibility": sensor, camera_name.detection_sensibility + +If you are using one of these attributes in your automations or scripts, you +will need to adjust to this change. + +([@RenierM26] - [#45722]) + +{% enddetails %} + +{% details "Litter-Robot" %} + +`reset_waste_drawer`, `set_sleep_mode`, and `set_wait_time` now have their own +services. Previously, they were triggered by using `send_command`. +If you used any of those commands in your automations or scripts, you'll need +to replace them with their service counter-part. + +([@natekspencer] - [#48300]) + +{% enddetails %} + +{% details "Recorder" %} + +Database migrations are now done in the background and no longer prevent +Home Assistant from starting. + +The migration is started shortly after the started event since they are CPU +intensive (mostly just sqlite since its in the same process) and we do not want +to compete with startup. + +Events created by your system are queued and processed when the migration is +completed. There is a safety to start discarding events if more than ~30000 +events happen before migration is completed to avoid memory exhaustion. + +During migration, Home Assistant will prevent being start or stopped and +this will also disable the `homeassistant.stop` and `homeassistant.start` +services until the migration has been completed. + +The sqlite database recovery logic can now recover at point after setup +including purge, migration, and event insert. In short we can _always_ +(hopefully) recover and start a new db without a restart. + +The quick check is no longer performed on unclean shutdown since we can always +recover live. The `db_integrity_check` option has been deprecated. + +([@bdraco] - [#49036] [#49098]) + +{% enddetails %} + +{% details "SMA Solar" %} + +The SMA integration is now configured via the UI. Configuring the integration +via YAML is now deprecated. Existing YAML configuration is automatically +imported on upgrade and can be safely removed after upgrade. + +Using custom sensors is deprecated and not possible using the UI. Feel free to +submit additional sensors to be added as standard sensors to the +[pysma library](https://github.com/kellerza/pysma/blob/master/pysma/__init__.py#L100). + +([@rklomp] - [#48003]) + +{% enddetails %} + +{% details "Swiss Hydrological Data" %} + +FEON/BAFU changed their data which required removing some of the attributes. + +The following attributes are no longer available: + +- delta-24h +- max-1h +- min-1h +- mean-1h +- previous-24h + +([@Bouni] - [#49119]) + +{% enddetails %} + +{% details "Shelly" %} + +The Shelly Wi-fi RSSI sensor unit was wrong, it is **dBm** and not **dB**. +If you rely on the unit of measurement from this sensor, you might need to +adjust to this change. + +([@thecode] - [#49265]) + +{% enddetails %} + +{% details "GNTP (Growl)" %} + +The GNTP (Growl) integration has been deprecated and is going to be removed in +Home Assistant Core 2021.6. + +The Growl project has now fully retired, see: + +([@frenck] - [#49273]) + +{% enddetails %} + +{% details "ecobee" %} + +ecobee climate devices will change the reported temperature precision for their +`current_temperature` attribute from whole degrees to 0.1 degree increments. +Automations which rely on whole-number precision may need adjustments. + +([@bjpetit] - [#48086]) + +Setting a fan hold in the ecobee integration will no longer also set a +temperature hold. If any automations assumed that the temperature would be set +when calling the set_fan_mode service on an ecobee device, those automations +will need to add the appropriate `set_temperature` service call. + +([@jjlawren] - [#48697]) + +{% enddetails %} + +{% details "ZeroConf" %} + +If the `default_interface` is not set, the value is auto-detected based on the +system routing next hop for the mDNS broadcast address (`224.0.0.251`). + +If the next-hop cannot be detected or is a loopback address, `zeroconf` will +broadcast on all interfaces. If the next hop is a non-loopback address, +`zeroconf` will only broadcast on the default interface. + +Setting the `default_interface` to `true` or `false` will override the auto +detection. + +([@bdraco] - [#49529]) + +{% enddetails %} + +{% details "AVM FRITZ!Box Tools" %} + +The AVM FRITZ!Box Tools integration is now configured via the UI. Configuring +the integration via YAML is now deprecated. Existing YAML configuration is +automatically imported on upgrade and can be safely removed after upgrade. + +([@chemelli74] - [#48287]) + +{% enddetails %} + +{% details "AVM FRITZ!SmartHome" %} + +YAML configuration for AVM FRITZ!SmartHome has been removed, after it has been +deprecated for 12 months. Configuration via UI is fully integrated. Existing +YAML configuration has already been imported automatically in the previous +releases and can now safely be removed from your configuration files. + +([@mib1185] - [#49663]) + +{% enddetails %} + +{% details "Modbus" %} + +A new option `SWAP` replaces `REVERSE_ORDER`, however `REVERSE_ORDER` is +still accepted and silently converted to `SWAP=WORD`. + +Note: `REVERSE_ORDER` will be removed in a future release. + +Old configuration example: + +```yaml +modbus: + sensors: + - name: "sensor1" + address: 17 + reverse_order: true + ... + - name: "sensor2" + address: 17 + reverse_order: false + ... +``` + +New configuration example: + +```yaml +modbus: + sensors: + - name: "sensor1" + address: 17 + swap: word + ... + - name: "sensor2" + address: 17 + swap: none + ... +``` + +Swap allows `none`/`byte`/`word`/`word_byte` options. + +([@janiversen] - [#49719]) + +{% enddetails %} + +{% details "Sure Petcare" %} + +The following YAML configuration options have been deprecated: + +- `feeders` +- `flaps` +- `pets` +- `scan_interval` + +If you have one of these options in your YAML cnfiguration, you can safely +remove those. + +([@benleb] - [#49223]) + +{% enddetails %} + +{% details "RoonLabs music player" %} + +The RoonLabs music player `media_player` previous had integration specific +services for `roon.join` and `roon.un_join`. These have been removed removes +and replaced with the `media_player.join` and `media_player.unjoin` services. + +If you use these services in your automations or script, you need to adjust those. + +([@pavoni] - [#49667]) + +{% enddetails %} + +{% details "DHT Sensor" %} + +The `pin` configuration option is currently is an integer but will need to be +prefixed with D for Raspberry Pi platforms. + +Please adjust your YAML configuration for this change. + +([@TheGardenMonkey] - [#41525]) + +{% enddetails %} + +## Farewell to the following + +The following integrations are no longer available as of this release: + +- **Geuzhals** has been removed. ([@frenck] - [#48594]) +- **Social Blade** has been removed. ([@frenck] - [#48677]) + +Both integrations were in a broken state and using webscaping methods to gather +their data, which is not allowed for core integrations. + +## All changes + +{% details "Click to see all changes!" %} + +- Add config flow support to google_travel_time ([@raman325] - [#43509]) ([google_travel_time docs]) (breaking-change) +- Bump version to 2021.5.0dev0 ([@frenck] - [#48559]) +- Remove device class timestamp from device condition and trigger ([@MartinHjelmare] - [#48431]) ([garmin_connect docs]) ([hvv_departures docs]) ([sensor docs]) (breaking-change) +- Add nws sensor platform ([@MatthewFlamm] - [#45027]) ([nws docs]) (new-platform) +- Only raise integrationnotfound for dependencies ([@alandtse] - [#48241]) +- Clean lazytox script ([@MartinHjelmare] - [#48583]) +- Typing improvements for SolarEdge ([@frenck] - [#48596]) ([solaredge docs]) +- Remove Geizhals integration (ADR-0004) ([@frenck] - [#48594]) ([geizhals docs]) (breaking-change) +- Upgrade Astral to 2.2 ([@FMKaiba] - [#48573]) ([moon docs]) ([sun docs]) ([tod docs]) (breaking-change) +- Add zwave_js WS API command to call node.refresh_info ([@raman325] - [#48564]) ([zwave_js docs]) +- Add hive heat on demand ([@KJonline] - [#48591]) ([hive docs]) +- Add variables to execute script ([@balloob] - [#48613]) ([websocket_api docs]) +- Going async with denonavr ([@scarface-4711] - [#47920]) ([denonavr docs]) +- Remove duplicate test case in modbus switch ([@janiversen] - [#48636]) ([modbus docs]) +- Add modbus CONF_VERIFY_STATE to new switch config ([@janiversen] - [#48632]) ([modbus docs]) +- Make modbus WRITE_COIL use write_coils in case of an array ([@janiversen] - [#48633]) ([modbus docs]) +- Add Compensation Integration ([@Petro31] - [#41675]) ([compensation docs]) (new-integration) +- Add retry mechanism on onewire sysbus devices ([@epenet] - [#48614]) ([onewire docs]) +- Make sonos event asyncio ([@bdraco] - [#48618]) ([sonos docs]) +- Optimize storage collection entity operations with asyncio.gather ([@bdraco] - [#48352]) +- Apply ConfigEntryNotReady improvements to PlatformNotReady ([@bdraco] - [#48665]) +- Upgrade pytest to 6.2.3 ([@frenck] - [#48672]) +- Upgrade holidays to 0.11.1 ([@frenck] - [#48673]) ([workday docs]) +- Remove modbus duplicate strings ([@janiversen] - [#48654]) ([modbus docs]) +- Remove Social Blade integration (ADR-0004) ([@frenck] - [#48677]) ([socialblade docs]) (breaking-change) +- Add modbus write coils ([@janiversen] - [#48676]) ([modbus docs]) +- Cleanup sonos ([@bdraco] - [#48684]) ([sonos docs]) +- Upgrade wakonlan to 2.0.0 ([@frenck] - [#48683]) ([wake_on_lan docs]) +- Use shared aiohttp.ClientSession in bond ([@bdraco] - [#48669]) ([bond docs]) +- Add more device triggers to deCONZ integration ([@Kane610] - [#48680]) ([deconz docs]) +- Limit log spam from rest and include reason in platform retry ([@bdraco] - [#48666]) ([rest docs]) +- Fix sonos volume always showing 0 ([@bdraco] - [#48685]) ([sonos docs]) +- Add config flow for enphase envoy ([@bdraco] - [#48517]) ([enphase_envoy docs]) (breaking-change) +- Add emonitor integration ([@bdraco] - [#48310]) ([emonitor docs]) (new-integration) +- Provide api to see which integrations are being loaded ([@bdraco] - [#48274]) ([websocket_api docs]) +- Update all systemmonitor sensors in one executor call ([@bdraco] - [#48689]) ([systemmonitor docs]) +- Add ClimaCell v4 API support ([@raman325] - [#47575]) ([climacell docs]) +- Clean and optimize systemmonitor ([@bdraco] - [#48699]) ([systemmonitor docs]) (breaking-change) +- Add a new weather integration - Met Éireann ([@DylanGore] - [#39429]) ([met_eireann docs]) (new-integration) +- Add config flow for Waze Travel Time ([@raman325] - [#43419]) ([waze_travel_time docs]) (breaking-change) +- Add AMD Ryzen processor temperatur capability to systemmonitor ([@mib1185] - [#48705]) ([systemmonitor docs]) +- Small improvements for emonitor ([@bdraco] - [#48700]) ([emonitor docs]) +- Bump codecov/codecov-action from v1.3.1 to v1.3.2 (@dependabot - [#48716]) +- Fix sync api use in alarm control panel test ([@MartinHjelmare] - [#48725]) +- Add doorsensor + coordinator to nuki ([@pree] - [#40933]) ([nuki docs]) +- Fix systemmonitor IP address look-up logic ([@spacegaier] - [#48740]) ([systemmonitor docs]) +- Bump pysonos to 0.0.42 to fix I/O in event loop ([@bdraco] - [#48743]) ([sonos docs]) +- New integration for Kostal Plenticore solar inverters ([@stegm] - [#43404]) ([kostal_plenticore docs]) (new-integration) +- Upgrade pre-commit to 2.12.0 ([@frenck] - [#48731]) +- Set AsusWRT mac_address and ip_address properties ([@bieniu] - [#48764]) ([asuswrt docs]) (breaking-change) +- Clean up google travel time code ([@raman325] - [#48708]) ([google_travel_time docs]) +- Bump actions/upload-artifact from v2.2.2 to v2.2.3 (@dependabot - [#48761]) +- Update __init__.py ([@DanielTheCoder] - [#48659]) ([homematic docs]) +- Remove doorbird recorder test workaround ([@bdraco] - [#48781]) ([doorbird docs]) +- Store Recollect Waste pickup dates in UTC ([@bachya] - [#48690]) ([recollect_waste docs]) (breaking-change) +- Add Xiaomi Miio zhimi.airpurifier.mc2 ([@starkillerOG] - [#48840]) ([xiaomi_miio docs]) +- Update xknx to version 0.18.0 ([@marvin-w] - [#48799]) ([knx docs]) (breaking-change) +- Return TP-Link sensor & light attributes as `float` rather than `string` ([@spacegaier] - [#48828]) ([tplink docs]) +- Let recorder deal with event names longer than 32 chars ([@lmagyar] - [#47748]) ([recorder docs]) +- Fix subscribe_bootstrap_integrations to send events ([@bdraco] - [#48754]) ([websocket_api docs]) +- Raise an exception when event_type exceeds the max length ([@raman325] - [#48115]) (breaking-change) +- Add hive boost off functionality ([@KJonline] - [#48701]) ([hive docs]) (breaking-change) +- Add manufacturer matching support to zeroconf ([@bdraco] - [#48810]) ([zeroconf docs]) +- Test that we do not initialize bad configuration ([@balloob] - [#48872]) ([automation docs]) +- Fix logic reversal in sonos update_media_radio ([@bdraco] - [#48900]) ([sonos docs]) +- Don't get code_context when calling inspect.stack ([@emontnemery] - [#48849]) +- Fix cpu temperature reporting for Armbian on Odroid ([@tels7ar] - [#48903]) ([systemmonitor docs]) +- Add fixtures for Axis rtsp client and adapt tests to use them ([@Kane610] - [#47901]) ([axis docs]) +- Allow template covers to have opening and closing states ([@bdr99] - [#47925]) ([template docs]) +- Update "issur_melacha_in_effect" via time tracking ([@amitfin] - [#42485]) ([jewish_calendar docs]) +- AEMET town timestamp should be UTC ([@Noltari] - [#48916]) ([aemet docs]) +- Update Ezviz Component ([@RenierM26] - [#45722]) ([ezviz docs]) (breaking-change) +- Bump pyupgrade to 2.12.0 ([@cdce8p] - [#48943]) +- Detach aiohttp.ClientSession created by config entry setup on unload ([@bdraco] - [#48908]) +- Bump boto3 to 1.16.52 ([@bdraco] - [#47772]) ([amazon_polly docs]) ([route53 docs]) +- Don't log template errors from developer tool ([@emontnemery] - [#48933]) ([websocket_api docs]) +- Bump hass-nabucasa 0.43 ([@balloob] - [#48964]) ([cloud docs]) +- Huawei LTE cleanups ([@scop] - [#48959]) ([huawei_lte docs]) +- Remove uneeded check in ZHA battery voltage attrib ([@abmantis] - [#48968]) ([zha docs]) +- Add custom JSONEncoder for subscribe_trigger WS endpoint ([@zachowj] - [#48664]) +- Raise ConfigEntryAuthFailed during setup or coordinator update to start reauth ([@bdraco] - [#48962]) +- Add helper to get an entity's supported features ([@emontnemery] - [#48825]) ([device_automation docs]) ([light docs]) +- Add missing internal quality scale label ([@MartinHjelmare] - [#48947]) +- Bump python-typing-update to v0.3.3 ([@cdce8p] - [#48992]) ([axis docs]) ([climacell docs]) ([denonavr docs]) ([kostal_plenticore docs]) ([modbus docs]) ([onewire docs]) +- Improve schema of media_player.join service ([@EetuRasilainen] - [#48342]) ([media_player docs]) +- Fix Zeroconf manifest schema in hassfest script ([@chemelli74] - [#49006]) +- Log zone cleaning ([@chemelli74] - [#47912]) ([neato docs]) +- Add support for event type closed to integration folder_watcher ([@dynasticorpheus] - [#48226]) ([folder_watcher docs]) +- Bump libhdate dependency ([@amitfin] - [#48695]) ([jewish_calendar docs]) +- Fix light template invalid color temp message ([@adrienbrault] - [#48337]) ([template docs]) +- Add KNX source address to Sensor and BinarySensor ([@marvin-w] - [#48857]) ([knx docs]) +- Bump pysml to 0.0.5 ([@mtdcr] - [#49014]) ([edl21 docs]) +- Upgrade wakonlan to 2.0.1 ([@frenck] - [#48995]) ([wake_on_lan docs]) +- Change vicare unit of power production current to POWER_WATT ([@nbraem] - [#49000]) ([vicare docs]) +- Upgrade aioambient to 1.2.4 ([@nebhale] - [#49035]) ([ambient_station docs]) +- Correct vicare power production device class ([@nbraem] - [#49040]) ([vicare docs]) +- Fix non-metric atmospheric pressure in Open Weather Map ([@tels7ar] - [#49030]) ([openweathermap docs]) +- Add new attributes to Climacell ([@raman325] - [#48707]) ([climacell docs]) +- Type data parameter as Mapping in async_create_entry ([@KapJI] - [#49050]) +- Reintroduce iAlarm integration ([@RyuzakiKK] - [#43525]) ([ialarm docs]) (new-integration) +- Add set_wait_time command support to Litter-Robot ([@natekspencer] - [#48300]) ([litterrobot docs]) (breaking-change) +- Add Rituals Perfume Genie sensor platform ([@milanmeu] - [#48270]) ([rituals_perfume_genie docs]) (new-platform) +- Patch ip interface instead of XKNX in knx ([@mptei] - [#49064]) ([knx docs]) +- Add device_tracker scanners to hass.config.components ([@ludeeus] - [#49063]) ([device_tracker docs]) +- Release ownership of amcrest integration ([@pnbruckner] - [#49086]) ([amcrest docs]) +- Create DataUpdateCoordinator for each proxmoxve vm/container ([@Corbeno] - [#45171]) ([proxmoxve docs]) +- Set hass when adding template attribute ([@balloob] - [#49094]) ([template docs]) +- Live db migrations and recovery ([@bdraco] - [#49036]) ([recorder docs]) (breaking-change) +- Support min()/max() as template function ([@frenck] - [#48996]) +- Use shared httpx client in enphase_envoy ([@bdraco] - [#48709]) ([enphase_envoy docs]) +- Bump pyeconet to 0.1.14 ([@w1ll1am23] - [#49067]) ([econet docs]) +- Fix forecast pressure unit in OpenWeatherMap ([@l2dy] - [#49069]) ([openweathermap docs]) +- Add support for custom configurations in ZHA ([@dmulcahey] - [#48423]) ([zha docs]) +- Fix xbox type hint ([@cdce8p] - [#49102]) ([xbox docs]) +- Replace old style type comments ([@cdce8p] - [#49103]) ([stream docs]) +- Reduce reporting delta for ZHA humidity channel ([@abmantis] - [#49070]) ([zha docs]) +- Don't import stdlib typing types from helpers.typing ([@cdce8p] - [#49104]) ([command_line docs]) ([edl21 docs]) ([isy994 docs]) ([kodi docs]) +- Improve trace of template conditions ([@emontnemery] - [#49101]) ([trace docs]) +- Add min and max temp properties to zwave_js.climate ([@raman325] - [#49125]) ([zwave_js docs]) +- iAlarm small code quality improvements ([@RyuzakiKK] - [#49126]) ([ialarm docs]) +- Add Ecobee humidifier ([@treylok] - [#45003]) ([ecobee docs]) +- Bump yeelight version to 0.6.0 ([@starkillerOG] - [#49111]) ([yeelight docs]) +- Allow top level non-trigger template entities ([@balloob] - [#48976]) ([template docs]) +- Prevent calling stop or restart services during db upgrade ([@bdraco] - [#49098]) ([homeassistant docs]) ([recorder docs]) (breaking-change) +- Lazy load zwave_js platforms when the first entity needs to be created ([@raman325] - [#49016]) ([zwave_js docs]) +- ZHA support Quotra LED On quirk ([@mikeodr] - [#49137]) ([zha docs]) +- Add Hyperion device support ([@dermotduffy] - [#47881]) ([hyperion docs]) +- Improve the discovery process for Gree ([@cmroche] - [#45449]) ([gree docs]) +- Bump actions/setup-python from v2.2.1 to v2.2.2 (@dependabot - [#49156]) +- Bump actions/cache from v2.1.4 to v2.1.5 (@dependabot - [#49157]) +- Use named constants for core shutdown timeouts ([@bdraco] - [#49146]) +- Name the dhcp watcher thread ([@bdraco] - [#49144]) ([dhcp docs]) +- Clean up camera service schema ([@cgtobi] - [#49151]) ([camera docs]) +- Raise exception for invalid call to DeviceRegistry.async_get_or_create ([@raman325] - [#49038]) +- Add 'mix' system support for Growatt integration ([@muppet3000] - [#49026]) ([growatt_server docs]) +- Fix services for Armcrest & Logi Circle ([@frenck] - [#49166]) ([amcrest docs]) ([logi_circle docs]) +- Migrate existing zwave_js entities if endpoint has changed ([@raman325] - [#48963]) ([zwave_js docs]) +- Do not compile static templates ([@bdraco] - [#49148]) +- Internally work with modern config syntax for template binary sensor platform config ([@balloob] - [#48981]) ([template docs]) +- Don't assert the device registry entry in zwave_js ([@raman325] - [#49178]) ([zwave_js docs]) +- Add edl21 OBIS IDs for Holley DTZ541-ZEBA ([@mtdcr] - [#49170]) ([edl21 docs]) +- Implement SMA config flow ([@rklomp] - [#48003]) ([sma docs]) (breaking-change) +- Describe Google Assistant events ([@balloob] - [#49141]) ([cloud docs]) ([google_assistant docs]) +- Fix Hue service being removed on entry reload ([@balloob] - [#48663]) ([hue docs]) +- Cloud to set up Alexa conditionally ([@balloob] - [#49136]) ([cloud docs]) +- Enable the custom quirks path ZHA config option ([@puddly] - [#49143]) ([zha docs]) +- Enable passing Amcrest/Dahua signals through as HA events ([@FrnchFrgg] - [#49004]) ([amcrest docs]) +- Cancel sense updates on the stop event ([@bdraco] - [#49187]) ([sense docs]) +- Replace http startup logic with async_when_setup_or_start ([@bdraco] - [#48784]) ([http docs]) +- Cancel config entry retry, platform retry, and polling at the stop event ([@bdraco] - [#49138]) +- Use supported_color_modes in google_assistant ([@emontnemery] - [#49176]) ([google_assistant docs]) +- Use supported_color_modes in homekit ([@emontnemery] - [#49177]) ([homekit docs]) +- Use supported_color_modes in alexa ([@emontnemery] - [#49174]) ([alexa docs]) +- Added Spanish US voice to Google Cloud TTS ([@soundch3z] - [#49200]) ([google_cloud docs]) +- Fix logic of entity id extraction ([@cgtobi] - [#49164]) +- Bump pykmtronic to 0.3.0 ([@dgomes] - [#49191]) ([kmtronic docs]) +- Support all available Google Cloud TTS languages ([@hmmbob] - [#49208]) ([google_cloud docs]) +- Bump androidtv (0.0.58) and adb-shell (0.3.1) ([@JeffLIrion] - [#49209]) ([androidtv docs]) +- Allow debugging of integration dependancies ([@KJonline] - [#49211]) +- Add unique-ids to maxcube component ([@unaiur] - [#49196]) ([maxcube docs]) +- Stop ssdp scans when stop event happens ([@bdraco] - [#49140]) ([ssdp docs]) +- Add binary sensor platform to Rituals Perfume Genie Integration ([@milanmeu] - [#49207]) ([rituals_perfume_genie docs]) (new-platform) +- Reinitialize upnp device on config change ([@StevenLooman] - [#49081]) ([upnp docs]) +- Upgrade colorlog to 5.0.1 ([@frenck] - [#49221]) +- Fix stop listener memory leak in DataUpdateCoordinator on retry ([@bdraco] - [#49186]) +- Do not schedule future ping device tracker updates once hass is stopping ([@bdraco] - [#49236]) ([ping docs]) +- Disconnect homekit_controller devices on the stop event ([@bdraco] - [#49244]) ([homekit_controller docs]) +- Create KNX switch entity directly from config ([@farmio] - [#49238]) ([knx docs]) +- Add support for IoT class in manifest ([@frenck] - [#46935]) +- Ensure original log handlers are restored at close ([@bdraco] - [#49230]) +- Only enable envoy inverters when the user has access ([@bdraco] - [#49234]) ([enphase_envoy docs]) +- Disconnect roomba on stop event ([@bdraco] - [#49235]) ([roomba docs]) +- Fix broken swiss_hydrological_data integration ([@Bouni] - [#49119]) ([swiss_hydrological_data docs]) (breaking-change) +- Remove redundant text from documentation ([@apapadopoulou] - [#49262]) +- Cancel discovery flows that are initializing at shutdown ([@bdraco] - [#49241]) +- Define data flow result type ([@KapJI] - [#49260]) ([bond docs]) ([hassio docs]) ([huawei_lte docs]) ([hyperion docs]) ([zwave_js docs]) +- Fix shelly RSSI sensor unit ([@thecode] - [#49265]) ([shelly docs]) (breaking-change) +- Fix Tasmota Wifi Signal Strength unit ([@thecode] - [#49263]) ([tasmota docs]) +- Add `search` and `match` as Jinja tests ([@mdegat01] - [#49229]) +- Add common light helpers to test for feature support ([@emontnemery] - [#49199]) ([alexa docs]) ([google_assistant docs]) ([homekit docs]) ([light docs]) +- Add support for multiple AdGuard instances ([@eifinger] - [#49116]) ([adguard docs]) +- Add missing typing to data_entry_flow ([@bdraco] - [#49271]) +- Add sensors for other ClimaCell data ([@raman325] - [#49259]) ([climacell docs]) (new-platform) +- Add missing target field to media_seek ([@Lau1406] - [#49031]) ([media_player docs]) +- Update issue form to use latest changes ([@frenck] - [#49272]) +- Process AdGuard review comments ([@frenck] - [#49274]) ([adguard docs]) +- Move top-level av import behind type checking flag ([@balloob] - [#49281]) ([stream docs]) +- Avoid sending empty integration list multiple times during subscribe_bootstrap_integrations ([@bdraco] - [#49181]) +- Fix ignorability of AdGuard hassio discovery step ([@frenck] - [#49276]) ([adguard docs]) +- Upgrade flake8 to 3.9.1 ([@frenck] - [#49284]) +- Deprecate GNTP (Growl) integration ([@frenck] - [#49273]) ([gntp docs]) (breaking-change) +- Clean up superfluous integration setup - part 4 ([@frenck] - [#49295]) +- Clean up superfluous integration setup - part 5 ([@frenck] - [#49296]) +- Clean up superfluous integration setup - part 6 ([@frenck] - [#49298]) +- Add `device_info` property to OpenWeatherMap entities ([@bieniu] - [#49293]) ([openweathermap docs]) +- Add dhcp discovery to tuya ([@bdraco] - [#49312]) ([tuya docs]) +- Add DHCP to MyQ ([@balloob] - [#49319]) ([myq docs]) +- Improve DHCP + Zeroconf manifest validation ([@balloob] - [#49321]) ([lyric docs]) +- Do not wait for websocket response to be delivered before shutdown ([@bdraco] - [#49323]) ([homeassistant docs]) +- Cancel tuya updates on the stop event ([@bdraco] - [#49324]) ([tuya docs]) +- Bump pysonos to 0.0.43 ([@bdraco] - [#49330]) ([sonos docs]) +- Type hint improvements ([@scop] - [#49320]) +- Exclude epson init module from coverage ([@MartinHjelmare] - [#49316]) +- Ensure restore state is not written after the stop event ([@bdraco] - [#49329]) +- Upgrade pre-commit to 2.12.1 ([@frenck] - [#49331]) +- Remove some unneeded pylint disables, update ref to util.process one ([@scop] - [#49314]) ([notify docs]) ([zha docs]) +- Add device tracker platform to Mazda integration ([@bdr99] - [#47974]) ([mazda docs]) (new-platform) +- Explicitly define all methods in ConfigFlow ([@KapJI] - [#49341]) +- Remove HomeAssistantType alias - Part 3 ([@frenck] - [#49339]) +- Rituals Perfume Genie improvements ([@milanmeu] - [#49277]) ([rituals_perfume_genie docs]) +- Add reauth flow for lyric ([@timmo001] - [#47863]) ([lyric docs]) +- Fix lyric heat cool setting ([@timmo001] - [#47875]) ([lyric docs]) +- Update mazda to use ConfigEntryAuthFailed ([@bdraco] - [#49333]) ([mazda docs]) +- Shutdown harmony connection on stop ([@bdraco] - [#49335]) ([harmony docs]) +- Bump aiodiscover to 1.4.0 for dhcp ([@bdraco] - [#49359]) ([dhcp docs]) +- Only fetch the local ip once per run ([@bdraco] - [#49336]) +- Add set_myzone service to Advantage Air ([@Bre77] - [#46934]) ([advantage_air docs]) +- Ensure shutdown does not deadlock ([@bdraco] - [#49282]) +- Only set fan state in ecobee set_fan_mode service ([@bjpetit] - [#48086]) ([ecobee docs]) (breaking-change) +- Shutdown bond bpup and skip polling after the stop event ([@bdraco] - [#49326]) ([bond docs]) +- Add battery sensor to fritzbox smart home devices ([@mib1185] - [#49374]) ([fritzbox docs]) +- Do not log error messages when discovering Broadlink devices ([@felipediel] - [#49394]) ([broadlink docs]) +- Reduce time to first byte for frontend index ([@bdraco] - [#49396]) ([frontend docs]) +- Fix esphome registering invalid service name ([@glmnet] - [#49398]) ([esphome docs]) +- Change HomeAssistantType -> HomeAssistant in modbus ([@janiversen] - [#49400]) ([modbus docs]) +- Use broadlink.hello() for direct discovery ([@felipediel] - [#49405]) ([broadlink docs]) +- Small cleanups to rachio ([@bdraco] - [#49404]) ([rachio docs]) +- Improve debuggability by providing job as an arg to loop.call_later ([@bdraco] - [#49328]) +- Force recorder shutdown at final write event ([@bdraco] - [#49145]) ([recorder docs]) +- Add services to the profiler to log threads and event loop schedule ([@bdraco] - [#49327]) ([profiler docs]) +- Use google assistant TemperatureControl trait to report sensor ([@koying] - [#46491]) ([google_assistant docs]) +- Bump codecov/codecov-action from v1.3.2 to v1.4.0 (@dependabot - [#49412]) +- Expose the hostname of the device in asuswrt ([@bdraco] - [#49393]) ([asuswrt docs]) +- Upgrade dsmr_parser to 0.29 ([@frenck] - [#49417]) ([dsmr docs]) +- Add additional myq homekit models ([@bdraco] - [#49381]) ([myq docs]) +- Bump fritzconnection to 1.4.2 ([@danielrheinbay] - [#49356]) ([fritzbox_netmonitor docs]) +- Log an error if modbus Cover is not initialized correctly ([@vzahradnik] - [#48829]) ([modbus docs]) +- Add pymodbus exception handling and isolate pymodbus to class modbusHub ([@janiversen] - [#49052]) ([modbus docs]) +- Increase recorder test coverage ([@bdraco] - [#49362]) ([recorder docs]) +- Avoid executor jumps in history stats when no update is needed ([@bdraco] - [#49407]) ([history_stats docs]) +- Raise HassioAPIError when error is returned ([@ludeeus] - [#49418]) ([hassio docs]) +- Fix modbus switch "old style" config problem ([@janiversen] - [#49352]) ([modbus docs]) +- Use Hyperion human-readable effect names instead of API identifiers ([@dermotduffy] - [#45763]) ([hyperion docs]) +- Bump faadelays to 0.0.7 ([@ntilley905] - [#49443]) ([faa_delays docs]) +- Set temperature precision for Ecobee climate entities to tenths ([@jjlawren] - [#48697]) ([ecobee docs]) (breaking-change) +- Bump pymodbus version to 2.5.1 ([@janiversen] - [#49401]) ([modbus docs]) +- SMA code quality improvement and bugfix ([@rklomp] - [#49346]) ([sma docs]) +- Fix memory leak in netatmo ([@bdraco] - [#49464]) ([netatmo docs]) +- Bump youtube-dl to 2021.04.17 ([@chpego] - [#49474]) ([media_extractor docs]) +- Fix/Workaround GitHub issue forms ([@frenck] - [#49475]) +- Update modbus state when sensor fails ([@janiversen] - [#49481]) ([modbus docs]) +- Ensure harmony callbacks run in the event loop ([@bdraco] - [#49450]) ([harmony docs]) +- Mqtt cover avoid warnings on empty payload ([@jbouwh] - [#49253]) ([mqtt docs]) +- Fix memory leak in wemo on reload ([@bdraco] - [#49457]) ([wemo docs]) +- Add alarm control panel support to deCONZ integration ([@Kane610] - [#48736]) ([deconz docs]) (new-platform) +- Update typing syntax ([@cdce8p] - [#49480]) +- Fix memory leak in verisure ([@bdraco] - [#49460]) ([verisure docs]) +- Fix homekit memory leak on entry reload ([@bdraco] - [#49452]) ([homekit docs]) +- Fix memory leak on apple_tv reload ([@bdraco] - [#49454]) ([apple_tv docs]) +- Fix memory leak in logi_circle ([@bdraco] - [#49458]) ([logi_circle docs]) +- Fix memory leak in vera ([@bdraco] - [#49459]) ([vera docs]) +- Fix memory leak in heos ([@bdraco] - [#49461]) ([heos docs]) +- Fix memory leak in fritzbox ([@bdraco] - [#49462]) ([fritzbox docs]) +- Fix memory leak in unifi on reload ([@bdraco] - [#49456]) ([unifi docs]) +- Fix memory leak in freebox ([@bdraco] - [#49463]) ([freebox docs]) +- Fix memory leak in tibber ([@bdraco] - [#49465]) ([tibber docs]) +- Fix memory leak in insteon ([@bdraco] - [#49466]) ([insteon docs]) +- Fix memory leak in firmata ([@bdraco] - [#49467]) ([firmata docs]) +- Fix memory leak in deconz ([@bdraco] - [#49468]) ([deconz docs]) +- Fix memory leak in legacy nest ([@bdraco] - [#49469]) ([nest docs]) +- Fix memory leak in huawei_lte ([@bdraco] - [#49470]) ([huawei_lte docs]) +- Fix memory leak in hangouts ([@bdraco] - [#49471]) ([hangouts docs]) +- Fix memory leak in plum_lightpad ([@bdraco] - [#49472]) ([plum_lightpad docs]) +- Fix memory leak in onvif ([@bdraco] - [#49473]) ([onvif docs]) +- Limit executor jobs during custom_components load to match non-custom behavior ([@bdraco] - [#49451]) +- Fix memory leak in ambient_station on reload ([@bdraco] - [#49455]) ([ambient_station docs]) +- Fix mysensors mqtt integration setup guard ([@MartinHjelmare] - [#49423]) ([mysensors docs]) +- Send only a single event per incoming Google command ([@balloob] - [#49449]) ([google_assistant docs]) +- Replace local listener implementation to using config_entry.on_unload in deCONZ ([@Kane610] - [#49494]) ([deconz docs]) +- Cleanup history states tests that were converted to async tests ([@bdraco] - [#49446]) ([history_stats docs]) +- Reduce broadlink executor jobs at setup time ([@bdraco] - [#49447]) ([broadlink docs]) +- Test pymodbus ([@janiversen] - [#49053]) ([modbus docs]) +- Bump yeelight dependency to 0.6.1 ([@calebmah] - [#49490]) ([yeelight docs]) +- Bump codecov to 1.4.1 ([@bdraco] - [#49497]) +- Use config_entry.on_unload rather than local listener implementation in UniFi ([@Kane610] - [#49496]) ([unifi docs]) +- Use config_entry.on_unload rather than local listener implementation in Axis ([@Kane610] - [#49495]) ([axis docs]) +- Fix HmIP-HAP attributes unit ([@dfigus] - [#49476]) ([homematic docs]) +- Upgrade to the latest hyperion-py ([@dermotduffy] - [#49448]) ([hyperion docs]) +- Fix and add some ScannerEntity property type hints ([@scop] - [#49500]) ([device_tracker docs]) +- Add additional device classes to devolo Home Control ([@Shutgun] - [#49425]) ([devolo_home_control docs]) +- Bump zwave_js dependency to 0.24.0 ([@raman325] - [#49445]) ([zwave_js docs]) +- Support wired clients in Huawei LTE device tracker ([@scop] - [#48987]) ([huawei_lte docs]) +- prefer total_seconds over seconds ([@balloob] - [#49505]) +- Add support to enable/disable zwave_js data collection ([@raman325] - [#49440]) ([zwave_js docs]) +- Do not close non existing clients in modbus ([@janiversen] - [#49489]) ([modbus docs]) +- Upgrade isort to 5.8.0 ([@frenck] - [#49516]) +- Remove HomeAssistantType alias - Part 4 ([@frenck] - [#49515]) ([elgato docs]) ([esphome docs]) ([evohome docs]) ([ffmpeg docs]) ([fireservicerota docs]) ([flo docs]) ([freebox docs]) +- Fix typo in tuya config_flow ([@ZephireNZ] - [#49517]) ([tuya docs]) +- Add subscription for Z-Wave JS node re-interview status ([@cgarwood] - [#49024]) ([zwave_js docs]) +- Add WS API command to capture zwave_js logs from server ([@raman325] - [#49444]) ([zwave_js docs]) +- Add Screenlogic set_color_mode service ([@dieselrabbit] - [#49366]) ([screenlogic docs]) +- Change HomeAssistantType to HomeAssistant ([@janiversen] - [#49522]) +- Add denonavr DynamicEQ and Audyssey service ([@MarBra] - [#48694]) ([denonavr docs]) +- Autodetect zeroconf interface selection when not set ([@bdraco] - [#49529]) ([zeroconf docs]) (breaking-change) +- Add Picnic integration ([@corneyl] - [#47507]) ([picnic docs]) (new-integration) +- Upgrade to sqlalchemy 1.4.11 ([@bdraco] - [#49538]) ([recorder docs]) ([sql docs]) +- Implement reauth for smarttub ([@mdz] - [#47628]) ([smarttub docs]) +- Support local Smappee Genius device ([@bsmappee] - [#48627]) ([smappee docs]) +- Secure 100% test coverage for modbus, binary_sensor and sensor ([@janiversen] - [#49521]) ([modbus docs]) +- Bump `brother` library to version 1.0.0 ([@bieniu] - [#49547]) ([brother docs]) +- Bump snapcast to 2.1.3 ([@D3v01dZA] - [#49553]) ([snapcast docs]) +- Rename HomeAssistantType —> HomeAssistant, integrations s* - t* ([@janiversen] - [#49550]) +- Rename HomeAssistantType —> HomeAssistant, integrations t* - v* ([@janiversen] - [#49544]) +- Rename HomeAssistantType to HomeAssistant, integrations w* - z* ([@janiversen] - [#49543]) +- HomeAssistantType —> HomeAssistant for Integrations p* - s* ([@janiversen] - [#49558]) +- Rename HomeAssistantType —> HomeAssistant for integrations n* - p* ([@janiversen] - [#49559]) +- Add zeroconf detection to devolo Home Control ([@Shutgun] - [#47934]) ([devolo_home_control docs]) +- Clean plex services.yaml ([@tkdrob] - [#49535]) ([plex docs]) +- Replace HomeAssistantType with HomeAssistant for integrations m* - n* ([@janiversen] - [#49566]) ([minecraft_server docs]) ([mobile_app docs]) ([mysensors docs]) ([neato docs]) +- Fix deadlock in async_get_integration_with_requirements after failed dep pip install ([@bdraco] - [#49540]) +- Bump pyvlx to 0.2.19 ([@tikismoke] - [#49533]) ([velux docs]) +- Integrations m*: Rename HomeAssistantType to HomeAssistant. ([@janiversen] - [#49567]) ([melcloud docs]) ([meteo_france docs]) ([metoffice docs]) ([mqtt docs]) +- Support trigger-based template binary sensors ([@balloob] - [#49504]) ([template docs]) +- Use supported_color_modes in emulated_hue ([@emontnemery] - [#49175]) ([emulated_hue docs]) +- Improve sun condition trace ([@emontnemery] - [#49551]) ([sun docs]) +- Correct min and max mired for light with color_mode support ([@emontnemery] - [#49572]) ([light docs]) +- Remove SUPPORT_WHITE_VALUE from ZHA light groups ([@emontnemery] - [#49569]) ([zha docs]) +- Change dict[str, Any] to FlowResultDict ([@milanmeu] - [#49546]) +- SmartTub cleanup ([@mdz] - [#49579]) ([smarttub docs]) +- SmartTub: use get_full_status() ([@mdz] - [#49580]) ([smarttub docs]) +- Fix opening cover via emulated_hue without specifying a position ([@Tho85] - [#49570]) ([emulated_hue docs]) +- Bump async-upnp-client to 0.16.1 ([@bdraco] - [#49577]) ([dlna_dmr docs]) ([ssdp docs]) ([upnp docs]) +- Allow config entries to store a reason ([@balloob] - [#49581]) ([config docs]) +- Make lights supporting rgbw and rgbww accept colors ([@emontnemery] - [#49565]) ([light docs]) +- Integrations h*: Rename HomeAssistantType to HomeAssistant. ([@janiversen] - [#49590]) ([heos docs]) ([homematicip_cloud docs]) ([huawei_lte docs]) +- Integrations i* - m*: Rename HomeAssistantType to HomeAssistant. ([@janiversen] - [#49586]) +- Use disabled_by constants ([@scop] - [#49584]) +- Integrations h* - i*: Rename HomeAssistantType to HomeAssistant. ([@janiversen] - [#49587]) ([hyperion docs]) ([iaqualink docs]) ([icloud docs]) ([isy994 docs]) +- Change Jewish calendar IOT class to calculated ([@tsvi] - [#49571]) ([jewish_calendar docs]) +- Integrations: HomeAssistantType --> HomeAssistant. Last batch. ([@janiversen] - [#49591]) ([garmin_connect docs]) ([geniushub docs]) ([gpslogger docs]) ([gtfs docs]) ([hassio docs]) +- Encode ONVIF username password in URL ([@xuefer] - [#49512]) ([onvif docs]) +- Remove HomeAssistantType from typing.py as it is no longer used. ([@janiversen] - [#49593]) (breaking-change) +- Requesting data from last seven days ([@mariwing] - [#49485]) ([withings docs]) +- Add target and selectors to remote services ([@tkdrob] - [#49384]) ([remote docs]) +- Clean up devolo Home Control config flow ([@Shutgun] - [#49585]) ([devolo_home_control docs]) +- Batch Google Report State ([@balloob] - [#49511]) ([google_assistant docs]) +- Allow data entry flows to hint for additional steps ([@emontnemery] - [#49202]) ([mqtt docs]) +- Use dev endpoint for dev installations ([@ludeeus] - [#49597]) ([analytics docs]) +- Update met.no library ([@Danielhiversen] - [#49607]) ([met docs]) +- Fix charging error in Roomba integration ([@gralin] - [#49416]) ([roomba docs]) +- Upgrade watchdog to 2.0.3 ([@frenck] - [#49594]) ([folder_watcher docs]) +- Create a motionEye integration ([@dermotduffy] - [#48239]) ([motioneye docs]) (new-integration) +- Cancel august interval track at stop event ([@bdraco] - [#49198]) ([august docs]) +- Update xknx to version 0.18.1 ([@farmio] - [#49609]) ([knx docs]) +- Add entity service for deCONZ alarm control panel to control states used to help guide user transition between primary states ([@Kane610] - [#49606]) ([deconz docs]) +- Template sensor/binary sensors without trigger now respect section unique id ([@balloob] - [#49613]) ([template docs]) +- Add new Huawei LTE sensor metadata, improve icons ([@ofalvai] - [#49436]) ([huawei_lte docs]) +- Revert "Remove HomeAssistantType from typing.py as it is no...2 ([@janiversen] - [#49617]) +- Update pylint to 2.8.0 ([@cdce8p] - [#49637]) +- Implement DataUpdateCoordinator to fritzbox integration ([@mib1185] - [#49611]) ([fritzbox docs]) +- Fix August Type error ([@danielpervan] - [#49636]) ([august docs]) +- Bump scapy to 2.4.5 for dhcp ([@bdraco] - [#49437]) ([dhcp docs]) +- Fix Shelly button first trigger ([@thecode] - [#49635]) ([shelly docs]) +- Use config_entries.SOURCE_* constants ([@scop] - [#49631]) +- Small cleanups for august ([@bdraco] - [#49493]) ([august docs]) +- Reduce hue gamut warning to debug ([@starkillerOG] - [#49624]) ([hue docs]) +- Skip recorder commit if there is nothing to do ([@bdraco] - [#49614]) ([recorder docs]) +- Rework Fritz config_flow and device_tracker ([@chemelli74] - [#48287]) ([fritz docs]) (breaking-change) +- Ask for IoT class during scaffold ([@balloob] - [#49647]) +- Enable mccabe complexity checks in flake8 ([@bdraco] - [#49616]) +- Switch screenlogic discovery to use async version ([@bdraco] - [#49650]) ([screenlogic docs]) +- Remove dead code in modbus sensor and 100% test coverage ([@janiversen] - [#49634]) ([modbus docs]) +- Supplementary fixes to new motionEye integration ([@dermotduffy] - [#49626]) +- Fix pylint failures caused by fritz ([@tkdrob] - [#49655]) ([fritz docs]) +- Add battery support for Sonos speakers ([@jjlawren] - [#49441]) ([sonos docs]) (new-platform) +- Improve zeroconf test fixture ([@cdce8p] - [#49657]) +- Fix missing default value in fritz scan_devices ([@cdce8p] - [#49668]) ([fritz docs]) +- Fix Fritz unload ([@chemelli74] - [#49669]) ([fritz docs]) +- Fix typing.Any spelling ([@scop] - [#49673]) +- Remove yaml configuration from fritzbox ([@mib1185] - [#49663]) ([fritzbox docs]) (breaking-change) +- Don't mark Somfy devices as unavailable ([@tetienne] - [#49662]) ([somfy docs]) +- Add target and selectors to sonos services ([@tkdrob] - [#49536]) ([sonos docs]) +- Bump async-upnp-client to 0.16.2 ([@bdraco] - [#49671]) ([dlna_dmr docs]) ([ssdp docs]) ([upnp docs]) +- Fix frontend freeze due to modbus device not responding ([@janiversen] - [#49651]) ([modbus docs]) +- Drop unneeded async_setup from august ([@bdraco] - [#49675]) ([august docs]) +- Fix Rituals battery sensor KeyError ([@milanmeu] - [#49661]) ([rituals_perfume_genie docs]) +- Refactor screenlogic API data selection ([@dieselrabbit] - [#49682]) ([screenlogic docs]) +- Stop fast polling of a Zigbee device after a check-in command ([@Adminiuga] - [#49685]) ([zha docs]) +- Use core constants for apprise ([@tkdrob] - [#49683]) ([apprise docs]) +- Ensure hue connection errors are passed to ConfigEntryNotReady ([@bdraco] - [#49674]) ([hue docs]) +- Upgrade TwitterAPI to 2.7.2 ([@fabaff] - [#49680]) ([twitter docs]) +- Address late review comments for denonavr ([@MarBra] - [#49666]) ([denonavr docs]) +- Only compile esphome icon schema once ([@bdraco] - [#49688]) ([esphome docs]) +- Add selectors to ecobee services ([@tkdrob] - [#49499]) ([ecobee docs]) +- Don't ignore mypy errors by default ([@KapJI] - [#49270]) ([automation docs]) ([knx docs]) +- Add selectors to cast services ([@tkdrob] - [#49684]) ([cast docs]) +- KNX Schema improvements ([@farmio] - [#49678]) ([knx docs]) +- Add selector to tts services ([@tkdrob] - [#49703]) ([tts docs]) +- Add selectors to ps4 services ([@tkdrob] - [#49702]) ([ps4 docs]) +- Add selectors to frontend services ([@tkdrob] - [#49701]) ([frontend docs]) +- Add selectors to plex services ([@tkdrob] - [#49706]) ([plex docs]) +- Add unique_id to WOL integration ([@Doomic] - [#49604]) ([wake_on_lan docs]) +- Use core constants for kwb ([@tkdrob] - [#49708]) ([kwb docs]) +- Reduce boilerplate to setup config entry platforms A-C ([@bdraco] - [#49681]) +- Upgrade black to 21.4b0 ([@frenck] - [#49715]) +- Build images on GitHub actions ([@pvizeli] - [#48318]) +- Don't combine old and new value on scene update ([@bramkragten] - [#49248]) ([config docs]) +- Cleanup implementation of new Sonos sensors ([@jjlawren] - [#49716]) ([sonos docs]) +- Bump omnilogic dependency to 0.4.5 ([@djtimca] - [#49526]) ([omnilogic docs]) +- Change log severity from warn to error for custom integration version ([@ludeeus] - [#49726]) (breaking-change) +- Add restore last state test to modbus sensor ([@janiversen] - [#49721]) ([kwb docs]) ([modbus docs]) +- Use core constants for nad ([@tkdrob] - [#49709]) ([nad docs]) +- Use StaticPool for recorder and NullPool for all other threads with sqlite3 ([@bdraco] - [#49693]) ([recorder docs]) +- Entities for secondary temperature values created by certain Xiaomi devices in deCONZ ([@Kane610] - [#49724]) ([deconz docs]) +- Reduce config entry setup/unload boilerplate D-F ([@bdraco] - [#49733]) +- Use ' instead of " for build if workflows ([@pvizeli] - [#49739]) +- Add swap byte/word/byteword option to modbus sensor ([@janiversen] - [#49719]) ([modbus docs]) (breaking-change) +- Add dispatch - odroid c2 ([@pvizeli] - [#49744]) +- TP Link: Don't report HS when in CT mode ([@bramkragten] - [#49704]) ([tplink docs]) +- Fix config entry reference for Home Assistant Cast user ([@emontnemery] - [#49729]) ([cast docs]) +- Fix arch command on build pipeline for machine ([@pvizeli] - [#49748]) +- Fix variable{1} on build pipeline ([@pvizeli] - [#49750]) +- Update actions/setup-python requirement to v2.2.2 (@dependabot - [#49742]) +- Fix " on build pipeline ([@pvizeli] - [#49756]) +- Fix neato possible None state when creating entity ([@vlebourl] - [#49746]) ([neato docs]) +- Manifest cleanup ([@milanmeu] - [#49745]) ([guardian docs]) ([srp_energy docs]) +- Use machine in name for machine build ([@ludeeus] - [#49761]) +- Bump ZHA quirks library ([@dmulcahey] - [#49757]) ([zha docs]) +- Better ZHA device reconfiguration ([@dmulcahey] - [#49672]) ([zha docs]) +- Clean up profiler constants ([@tkdrob] - [#49752]) ([profiler docs]) +- Clean up deconz constants ([@tkdrob] - [#49754]) ([deconz docs]) +- Use core constants for openalpr_cloud ([@tkdrob] - [#49755]) ([openalpr_cloud docs]) +- Reduce config entry setup/unload boilerplate G-J ([@bdraco] - [#49737]) +- Add selectors to wake_on_lan services ([@tkdrob] - [#49767]) ([wake_on_lan docs]) +- Add power binary_sensor support to Sonos ([@jjlawren] - [#49730]) ([sonos docs]) (new-platform) +- Add alarm control panel support to ZHA ([@dmulcahey] - [#49080]) ([zha docs]) (new-platform) +- Replace .no-strict-typing with .strict-typing ([@KapJI] - [#49762]) +- Add selector to google assistant services ([@tkdrob] - [#49769]) ([google_assistant docs]) +- Clean up tellduslive constants ([@tkdrob] - [#49765]) ([tellduslive docs]) +- Reduce config entry setup/unload boilerplate K-M ([@bdraco] - [#49775]) +- Make number of stored traces configurable ([@emontnemery] - [#49728]) ([automation docs]) ([script docs]) ([trace docs]) +- Add selectors to zha services ([@tkdrob] - [#49773]) ([zha docs]) +- Improve color conversion for RGBW lights ([@emontnemery] - [#49764]) ([light docs]) +- Add selectors to device_tracker services ([@tkdrob] - [#49780]) ([device_tracker docs]) +- Add selectors to synology_dsm services ([@tkdrob] - [#49772]) ([synology_dsm docs]) +- Add selectors to group services ([@tkdrob] - [#49779]) ([group docs]) +- Reduce config entry setup/unload boilerplate N-P ([@bdraco] - [#49777]) +- Fix and upgrade surepetcare ([@benleb] - [#49223]) ([surepetcare docs]) (breaking-change) +- Add selectors to profiler services ([@tkdrob] - [#49781]) ([profiler docs]) +- Use ConfigEntry.async_on_unload in UpCloud ([@scop] - [#49784]) ([upcloud docs]) +- Limit precision when stringifying float states ([@emontnemery] - [#48822]) +- Reduce config entry setup/unload boilerplate Q-S ([@bdraco] - [#49778]) +- Reduce config entry setup/unload boilerplate T-U ([@bdraco] - [#49786]) +- Add Screenlogic IntelliChem and SCG data ([@dieselrabbit] - [#49689]) ([screenlogic docs]) +- Mutesync integration ([@currentoor] - [#49679]) ([mutesync docs]) (new-integration) +- Reduce config entry setup/unload boilerplate V-Z ([@bdraco] - [#49789]) +- Clean up intent_script ([@tkdrob] - [#49770]) ([intent_script docs]) +- Huawei LTE unload cleanups ([@scop] - [#49788]) ([huawei_lte docs]) +- Add dynamic update interval to Airly integration ([@bieniu] - [#47505]) ([airly docs]) +- Change motionEye to use a two item device identifier tuple ([@dermotduffy] - [#49774]) ([motioneye docs]) +- Rework roon media player grouping to use media_player base services ([@pavoni] - [#49667]) ([roon docs]) (breaking-change) +- Add Blueprint foundation to Scripts ([@frenck] - [#48621]) ([config docs]) ([script docs]) +- Update frontend to 20210427.0 ([@bramkragten] - [#49794]) ([frontend docs]) +- Fix entity_id change for Google Cast ([@emontnemery] - [#49743]) ([cast docs]) +- Don't bind all clusters unconditionally ([@Adminiuga] - [#49793]) ([zha docs]) +- update python-smarttub dependency to 0.0.24 ([@mdz] - [#49800]) ([smarttub docs]) +- Convert DHT to use circuitpython library ([@TheGardenMonkey] - [#41525]) ([dht docs]) (breaking-change) +- Correct conversion of RGB and XY colors to RGBW ([@emontnemery] - [#49802]) ([light docs]) +- Add zwave_js discovery schema for Vision Security ZL7432 ([@raman325] - [#49510]) ([zwave_js docs]) +- Bump httpx to 0.18.0 and respx to 0.17.0 ([@bdraco] - [#49805]) +- Fix scrape sensor auth with httpx ([@bdraco] - [#49806]) ([scrape docs]) +- Fix zeroconf test inadvertently matching strings that start with name ([@bdraco] - [#49578]) ([zeroconf docs]) +- Add selectors to icloud services ([@tkdrob] - [#49797]) ([icloud docs]) +- Small typing tweaks to Light component ([@frenck] - [#49718]) ([light docs]) +- Add selector and target to pi_hole services ([@tkdrob] - [#49795]) ([pi_hole docs]) +- Bump hatasmota to 0.2.11 ([@emontnemery] - [#49811]) ([tasmota docs]) +- Fix zwave_js flow set add-on options ([@MartinHjelmare] - [#49813]) ([zwave_js docs]) +- Improve color conversion for RGBWW lights ([@emontnemery] - [#49807]) ([light docs]) ([mqtt docs]) +- Fix KNX unique_id ([@farmio] - [#49677]) ([knx docs]) +- Add additional zwave_js WS API commands for nodes ([@raman325] - [#49509]) ([zwave_js docs]) +- Don't overwrite existing files when generating configuration ([@ludeeus] - [#49815]) +- Serialize websocket messages before placing them in the queue ([@bdraco] - [#49582]) ([websocket_api docs]) +- Update base image to version 2021.04.3 ([@pvizeli] - [#49817]) +- Fix white_value causing zwave-js to set non-existing values ([@firstof9] - [#49799]) ([zwave_js docs]) +- Add OS version and board type to analytics ([@ludeeus] - [#49725]) +- Add support for deCONZ alarm events in logbook ([@Kane610] - [#49652]) ([deconz docs]) +- Handle special Plex library sections ([@jjlawren] - [#49525]) ([plex docs]) +- Add selectors to google services ([@tkdrob] - [#49796]) ([google docs]) +- Add tampering sensor to deCONZ integration ([@Kane610] - [#49776]) ([deconz docs]) +- Bump frontend to 20210428.0 ([@balloob] - [#49821]) ([frontend docs]) + +{% enddetails %} + +[#39429]: https://github.com/home-assistant/core/pull/39429 +[#40933]: https://github.com/home-assistant/core/pull/40933 +[#41525]: https://github.com/home-assistant/core/pull/41525 +[#41675]: https://github.com/home-assistant/core/pull/41675 +[#42485]: https://github.com/home-assistant/core/pull/42485 +[#43404]: https://github.com/home-assistant/core/pull/43404 +[#43419]: https://github.com/home-assistant/core/pull/43419 +[#43509]: https://github.com/home-assistant/core/pull/43509 +[#43525]: https://github.com/home-assistant/core/pull/43525 +[#45003]: https://github.com/home-assistant/core/pull/45003 +[#45027]: https://github.com/home-assistant/core/pull/45027 +[#45171]: https://github.com/home-assistant/core/pull/45171 +[#45449]: https://github.com/home-assistant/core/pull/45449 +[#45722]: https://github.com/home-assistant/core/pull/45722 +[#45763]: https://github.com/home-assistant/core/pull/45763 +[#46491]: https://github.com/home-assistant/core/pull/46491 +[#46934]: https://github.com/home-assistant/core/pull/46934 +[#46935]: https://github.com/home-assistant/core/pull/46935 +[#47505]: https://github.com/home-assistant/core/pull/47505 +[#47507]: https://github.com/home-assistant/core/pull/47507 +[#47575]: https://github.com/home-assistant/core/pull/47575 +[#47628]: https://github.com/home-assistant/core/pull/47628 +[#47748]: https://github.com/home-assistant/core/pull/47748 +[#47772]: https://github.com/home-assistant/core/pull/47772 +[#47863]: https://github.com/home-assistant/core/pull/47863 +[#47875]: https://github.com/home-assistant/core/pull/47875 +[#47881]: https://github.com/home-assistant/core/pull/47881 +[#47901]: https://github.com/home-assistant/core/pull/47901 +[#47912]: https://github.com/home-assistant/core/pull/47912 +[#47920]: https://github.com/home-assistant/core/pull/47920 +[#47925]: https://github.com/home-assistant/core/pull/47925 +[#47934]: https://github.com/home-assistant/core/pull/47934 +[#47974]: https://github.com/home-assistant/core/pull/47974 +[#48003]: https://github.com/home-assistant/core/pull/48003 +[#48086]: https://github.com/home-assistant/core/pull/48086 +[#48115]: https://github.com/home-assistant/core/pull/48115 +[#48226]: https://github.com/home-assistant/core/pull/48226 +[#48239]: https://github.com/home-assistant/core/pull/48239 +[#48241]: https://github.com/home-assistant/core/pull/48241 +[#48270]: https://github.com/home-assistant/core/pull/48270 +[#48274]: https://github.com/home-assistant/core/pull/48274 +[#48287]: https://github.com/home-assistant/core/pull/48287 +[#48300]: https://github.com/home-assistant/core/pull/48300 +[#48310]: https://github.com/home-assistant/core/pull/48310 +[#48318]: https://github.com/home-assistant/core/pull/48318 +[#48337]: https://github.com/home-assistant/core/pull/48337 +[#48342]: https://github.com/home-assistant/core/pull/48342 +[#48352]: https://github.com/home-assistant/core/pull/48352 +[#48423]: https://github.com/home-assistant/core/pull/48423 +[#48431]: https://github.com/home-assistant/core/pull/48431 +[#48517]: https://github.com/home-assistant/core/pull/48517 +[#48559]: https://github.com/home-assistant/core/pull/48559 +[#48564]: https://github.com/home-assistant/core/pull/48564 +[#48573]: https://github.com/home-assistant/core/pull/48573 +[#48583]: https://github.com/home-assistant/core/pull/48583 +[#48591]: https://github.com/home-assistant/core/pull/48591 +[#48594]: https://github.com/home-assistant/core/pull/48594 +[#48596]: https://github.com/home-assistant/core/pull/48596 +[#48613]: https://github.com/home-assistant/core/pull/48613 +[#48614]: https://github.com/home-assistant/core/pull/48614 +[#48618]: https://github.com/home-assistant/core/pull/48618 +[#48621]: https://github.com/home-assistant/core/pull/48621 +[#48627]: https://github.com/home-assistant/core/pull/48627 +[#48632]: https://github.com/home-assistant/core/pull/48632 +[#48633]: https://github.com/home-assistant/core/pull/48633 +[#48636]: https://github.com/home-assistant/core/pull/48636 +[#48654]: https://github.com/home-assistant/core/pull/48654 +[#48659]: https://github.com/home-assistant/core/pull/48659 +[#48663]: https://github.com/home-assistant/core/pull/48663 +[#48664]: https://github.com/home-assistant/core/pull/48664 +[#48665]: https://github.com/home-assistant/core/pull/48665 +[#48666]: https://github.com/home-assistant/core/pull/48666 +[#48669]: https://github.com/home-assistant/core/pull/48669 +[#48672]: https://github.com/home-assistant/core/pull/48672 +[#48673]: https://github.com/home-assistant/core/pull/48673 +[#48676]: https://github.com/home-assistant/core/pull/48676 +[#48677]: https://github.com/home-assistant/core/pull/48677 +[#48680]: https://github.com/home-assistant/core/pull/48680 +[#48683]: https://github.com/home-assistant/core/pull/48683 +[#48684]: https://github.com/home-assistant/core/pull/48684 +[#48685]: https://github.com/home-assistant/core/pull/48685 +[#48689]: https://github.com/home-assistant/core/pull/48689 +[#48690]: https://github.com/home-assistant/core/pull/48690 +[#48694]: https://github.com/home-assistant/core/pull/48694 +[#48695]: https://github.com/home-assistant/core/pull/48695 +[#48697]: https://github.com/home-assistant/core/pull/48697 +[#48699]: https://github.com/home-assistant/core/pull/48699 +[#48700]: https://github.com/home-assistant/core/pull/48700 +[#48701]: https://github.com/home-assistant/core/pull/48701 +[#48705]: https://github.com/home-assistant/core/pull/48705 +[#48707]: https://github.com/home-assistant/core/pull/48707 +[#48708]: https://github.com/home-assistant/core/pull/48708 +[#48709]: https://github.com/home-assistant/core/pull/48709 +[#48716]: https://github.com/home-assistant/core/pull/48716 +[#48725]: https://github.com/home-assistant/core/pull/48725 +[#48731]: https://github.com/home-assistant/core/pull/48731 +[#48736]: https://github.com/home-assistant/core/pull/48736 +[#48740]: https://github.com/home-assistant/core/pull/48740 +[#48743]: https://github.com/home-assistant/core/pull/48743 +[#48754]: https://github.com/home-assistant/core/pull/48754 +[#48761]: https://github.com/home-assistant/core/pull/48761 +[#48764]: https://github.com/home-assistant/core/pull/48764 +[#48781]: https://github.com/home-assistant/core/pull/48781 +[#48784]: https://github.com/home-assistant/core/pull/48784 +[#48799]: https://github.com/home-assistant/core/pull/48799 +[#48810]: https://github.com/home-assistant/core/pull/48810 +[#48822]: https://github.com/home-assistant/core/pull/48822 +[#48825]: https://github.com/home-assistant/core/pull/48825 +[#48828]: https://github.com/home-assistant/core/pull/48828 +[#48829]: https://github.com/home-assistant/core/pull/48829 +[#48840]: https://github.com/home-assistant/core/pull/48840 +[#48849]: https://github.com/home-assistant/core/pull/48849 +[#48857]: https://github.com/home-assistant/core/pull/48857 +[#48872]: https://github.com/home-assistant/core/pull/48872 +[#48900]: https://github.com/home-assistant/core/pull/48900 +[#48903]: https://github.com/home-assistant/core/pull/48903 +[#48908]: https://github.com/home-assistant/core/pull/48908 +[#48916]: https://github.com/home-assistant/core/pull/48916 +[#48933]: https://github.com/home-assistant/core/pull/48933 +[#48943]: https://github.com/home-assistant/core/pull/48943 +[#48947]: https://github.com/home-assistant/core/pull/48947 +[#48959]: https://github.com/home-assistant/core/pull/48959 +[#48962]: https://github.com/home-assistant/core/pull/48962 +[#48963]: https://github.com/home-assistant/core/pull/48963 +[#48964]: https://github.com/home-assistant/core/pull/48964 +[#48968]: https://github.com/home-assistant/core/pull/48968 +[#48976]: https://github.com/home-assistant/core/pull/48976 +[#48981]: https://github.com/home-assistant/core/pull/48981 +[#48987]: https://github.com/home-assistant/core/pull/48987 +[#48992]: https://github.com/home-assistant/core/pull/48992 +[#48995]: https://github.com/home-assistant/core/pull/48995 +[#48996]: https://github.com/home-assistant/core/pull/48996 +[#49000]: https://github.com/home-assistant/core/pull/49000 +[#49004]: https://github.com/home-assistant/core/pull/49004 +[#49006]: https://github.com/home-assistant/core/pull/49006 +[#49014]: https://github.com/home-assistant/core/pull/49014 +[#49016]: https://github.com/home-assistant/core/pull/49016 +[#49024]: https://github.com/home-assistant/core/pull/49024 +[#49026]: https://github.com/home-assistant/core/pull/49026 +[#49030]: https://github.com/home-assistant/core/pull/49030 +[#49031]: https://github.com/home-assistant/core/pull/49031 +[#49035]: https://github.com/home-assistant/core/pull/49035 +[#49036]: https://github.com/home-assistant/core/pull/49036 +[#49038]: https://github.com/home-assistant/core/pull/49038 +[#49040]: https://github.com/home-assistant/core/pull/49040 +[#49050]: https://github.com/home-assistant/core/pull/49050 +[#49052]: https://github.com/home-assistant/core/pull/49052 +[#49053]: https://github.com/home-assistant/core/pull/49053 +[#49063]: https://github.com/home-assistant/core/pull/49063 +[#49064]: https://github.com/home-assistant/core/pull/49064 +[#49067]: https://github.com/home-assistant/core/pull/49067 +[#49069]: https://github.com/home-assistant/core/pull/49069 +[#49070]: https://github.com/home-assistant/core/pull/49070 +[#49080]: https://github.com/home-assistant/core/pull/49080 +[#49081]: https://github.com/home-assistant/core/pull/49081 +[#49086]: https://github.com/home-assistant/core/pull/49086 +[#49094]: https://github.com/home-assistant/core/pull/49094 +[#49098]: https://github.com/home-assistant/core/pull/49098 +[#49101]: https://github.com/home-assistant/core/pull/49101 +[#49102]: https://github.com/home-assistant/core/pull/49102 +[#49103]: https://github.com/home-assistant/core/pull/49103 +[#49104]: https://github.com/home-assistant/core/pull/49104 +[#49111]: https://github.com/home-assistant/core/pull/49111 +[#49116]: https://github.com/home-assistant/core/pull/49116 +[#49119]: https://github.com/home-assistant/core/pull/49119 +[#49125]: https://github.com/home-assistant/core/pull/49125 +[#49126]: https://github.com/home-assistant/core/pull/49126 +[#49136]: https://github.com/home-assistant/core/pull/49136 +[#49137]: https://github.com/home-assistant/core/pull/49137 +[#49138]: https://github.com/home-assistant/core/pull/49138 +[#49140]: https://github.com/home-assistant/core/pull/49140 +[#49141]: https://github.com/home-assistant/core/pull/49141 +[#49143]: https://github.com/home-assistant/core/pull/49143 +[#49144]: https://github.com/home-assistant/core/pull/49144 +[#49145]: https://github.com/home-assistant/core/pull/49145 +[#49146]: https://github.com/home-assistant/core/pull/49146 +[#49148]: https://github.com/home-assistant/core/pull/49148 +[#49151]: https://github.com/home-assistant/core/pull/49151 +[#49156]: https://github.com/home-assistant/core/pull/49156 +[#49157]: https://github.com/home-assistant/core/pull/49157 +[#49164]: https://github.com/home-assistant/core/pull/49164 +[#49166]: https://github.com/home-assistant/core/pull/49166 +[#49170]: https://github.com/home-assistant/core/pull/49170 +[#49174]: https://github.com/home-assistant/core/pull/49174 +[#49175]: https://github.com/home-assistant/core/pull/49175 +[#49176]: https://github.com/home-assistant/core/pull/49176 +[#49177]: https://github.com/home-assistant/core/pull/49177 +[#49178]: https://github.com/home-assistant/core/pull/49178 +[#49181]: https://github.com/home-assistant/core/pull/49181 +[#49186]: https://github.com/home-assistant/core/pull/49186 +[#49187]: https://github.com/home-assistant/core/pull/49187 +[#49191]: https://github.com/home-assistant/core/pull/49191 +[#49196]: https://github.com/home-assistant/core/pull/49196 +[#49198]: https://github.com/home-assistant/core/pull/49198 +[#49199]: https://github.com/home-assistant/core/pull/49199 +[#49200]: https://github.com/home-assistant/core/pull/49200 +[#49202]: https://github.com/home-assistant/core/pull/49202 +[#49207]: https://github.com/home-assistant/core/pull/49207 +[#49208]: https://github.com/home-assistant/core/pull/49208 +[#49209]: https://github.com/home-assistant/core/pull/49209 +[#49211]: https://github.com/home-assistant/core/pull/49211 +[#49221]: https://github.com/home-assistant/core/pull/49221 +[#49223]: https://github.com/home-assistant/core/pull/49223 +[#49229]: https://github.com/home-assistant/core/pull/49229 +[#49230]: https://github.com/home-assistant/core/pull/49230 +[#49234]: https://github.com/home-assistant/core/pull/49234 +[#49235]: https://github.com/home-assistant/core/pull/49235 +[#49236]: https://github.com/home-assistant/core/pull/49236 +[#49238]: https://github.com/home-assistant/core/pull/49238 +[#49241]: https://github.com/home-assistant/core/pull/49241 +[#49244]: https://github.com/home-assistant/core/pull/49244 +[#49248]: https://github.com/home-assistant/core/pull/49248 +[#49253]: https://github.com/home-assistant/core/pull/49253 +[#49259]: https://github.com/home-assistant/core/pull/49259 +[#49260]: https://github.com/home-assistant/core/pull/49260 +[#49262]: https://github.com/home-assistant/core/pull/49262 +[#49263]: https://github.com/home-assistant/core/pull/49263 +[#49265]: https://github.com/home-assistant/core/pull/49265 +[#49270]: https://github.com/home-assistant/core/pull/49270 +[#49271]: https://github.com/home-assistant/core/pull/49271 +[#49272]: https://github.com/home-assistant/core/pull/49272 +[#49273]: https://github.com/home-assistant/core/pull/49273 +[#49274]: https://github.com/home-assistant/core/pull/49274 +[#49276]: https://github.com/home-assistant/core/pull/49276 +[#49277]: https://github.com/home-assistant/core/pull/49277 +[#49281]: https://github.com/home-assistant/core/pull/49281 +[#49282]: https://github.com/home-assistant/core/pull/49282 +[#49284]: https://github.com/home-assistant/core/pull/49284 +[#49293]: https://github.com/home-assistant/core/pull/49293 +[#49295]: https://github.com/home-assistant/core/pull/49295 +[#49296]: https://github.com/home-assistant/core/pull/49296 +[#49298]: https://github.com/home-assistant/core/pull/49298 +[#49312]: https://github.com/home-assistant/core/pull/49312 +[#49314]: https://github.com/home-assistant/core/pull/49314 +[#49316]: https://github.com/home-assistant/core/pull/49316 +[#49319]: https://github.com/home-assistant/core/pull/49319 +[#49320]: https://github.com/home-assistant/core/pull/49320 +[#49321]: https://github.com/home-assistant/core/pull/49321 +[#49323]: https://github.com/home-assistant/core/pull/49323 +[#49324]: https://github.com/home-assistant/core/pull/49324 +[#49326]: https://github.com/home-assistant/core/pull/49326 +[#49327]: https://github.com/home-assistant/core/pull/49327 +[#49328]: https://github.com/home-assistant/core/pull/49328 +[#49329]: https://github.com/home-assistant/core/pull/49329 +[#49330]: https://github.com/home-assistant/core/pull/49330 +[#49331]: https://github.com/home-assistant/core/pull/49331 +[#49333]: https://github.com/home-assistant/core/pull/49333 +[#49335]: https://github.com/home-assistant/core/pull/49335 +[#49336]: https://github.com/home-assistant/core/pull/49336 +[#49339]: https://github.com/home-assistant/core/pull/49339 +[#49341]: https://github.com/home-assistant/core/pull/49341 +[#49346]: https://github.com/home-assistant/core/pull/49346 +[#49352]: https://github.com/home-assistant/core/pull/49352 +[#49356]: https://github.com/home-assistant/core/pull/49356 +[#49359]: https://github.com/home-assistant/core/pull/49359 +[#49362]: https://github.com/home-assistant/core/pull/49362 +[#49366]: https://github.com/home-assistant/core/pull/49366 +[#49374]: https://github.com/home-assistant/core/pull/49374 +[#49381]: https://github.com/home-assistant/core/pull/49381 +[#49384]: https://github.com/home-assistant/core/pull/49384 +[#49393]: https://github.com/home-assistant/core/pull/49393 +[#49394]: https://github.com/home-assistant/core/pull/49394 +[#49396]: https://github.com/home-assistant/core/pull/49396 +[#49398]: https://github.com/home-assistant/core/pull/49398 +[#49400]: https://github.com/home-assistant/core/pull/49400 +[#49401]: https://github.com/home-assistant/core/pull/49401 +[#49404]: https://github.com/home-assistant/core/pull/49404 +[#49405]: https://github.com/home-assistant/core/pull/49405 +[#49407]: https://github.com/home-assistant/core/pull/49407 +[#49412]: https://github.com/home-assistant/core/pull/49412 +[#49416]: https://github.com/home-assistant/core/pull/49416 +[#49417]: https://github.com/home-assistant/core/pull/49417 +[#49418]: https://github.com/home-assistant/core/pull/49418 +[#49423]: https://github.com/home-assistant/core/pull/49423 +[#49425]: https://github.com/home-assistant/core/pull/49425 +[#49436]: https://github.com/home-assistant/core/pull/49436 +[#49437]: https://github.com/home-assistant/core/pull/49437 +[#49440]: https://github.com/home-assistant/core/pull/49440 +[#49441]: https://github.com/home-assistant/core/pull/49441 +[#49443]: https://github.com/home-assistant/core/pull/49443 +[#49444]: https://github.com/home-assistant/core/pull/49444 +[#49445]: https://github.com/home-assistant/core/pull/49445 +[#49446]: https://github.com/home-assistant/core/pull/49446 +[#49447]: https://github.com/home-assistant/core/pull/49447 +[#49448]: https://github.com/home-assistant/core/pull/49448 +[#49449]: https://github.com/home-assistant/core/pull/49449 +[#49450]: https://github.com/home-assistant/core/pull/49450 +[#49451]: https://github.com/home-assistant/core/pull/49451 +[#49452]: https://github.com/home-assistant/core/pull/49452 +[#49454]: https://github.com/home-assistant/core/pull/49454 +[#49455]: https://github.com/home-assistant/core/pull/49455 +[#49456]: https://github.com/home-assistant/core/pull/49456 +[#49457]: https://github.com/home-assistant/core/pull/49457 +[#49458]: https://github.com/home-assistant/core/pull/49458 +[#49459]: https://github.com/home-assistant/core/pull/49459 +[#49460]: https://github.com/home-assistant/core/pull/49460 +[#49461]: https://github.com/home-assistant/core/pull/49461 +[#49462]: https://github.com/home-assistant/core/pull/49462 +[#49463]: https://github.com/home-assistant/core/pull/49463 +[#49464]: https://github.com/home-assistant/core/pull/49464 +[#49465]: https://github.com/home-assistant/core/pull/49465 +[#49466]: https://github.com/home-assistant/core/pull/49466 +[#49467]: https://github.com/home-assistant/core/pull/49467 +[#49468]: https://github.com/home-assistant/core/pull/49468 +[#49469]: https://github.com/home-assistant/core/pull/49469 +[#49470]: https://github.com/home-assistant/core/pull/49470 +[#49471]: https://github.com/home-assistant/core/pull/49471 +[#49472]: https://github.com/home-assistant/core/pull/49472 +[#49473]: https://github.com/home-assistant/core/pull/49473 +[#49474]: https://github.com/home-assistant/core/pull/49474 +[#49475]: https://github.com/home-assistant/core/pull/49475 +[#49476]: https://github.com/home-assistant/core/pull/49476 +[#49480]: https://github.com/home-assistant/core/pull/49480 +[#49481]: https://github.com/home-assistant/core/pull/49481 +[#49485]: https://github.com/home-assistant/core/pull/49485 +[#49489]: https://github.com/home-assistant/core/pull/49489 +[#49490]: https://github.com/home-assistant/core/pull/49490 +[#49493]: https://github.com/home-assistant/core/pull/49493 +[#49494]: https://github.com/home-assistant/core/pull/49494 +[#49495]: https://github.com/home-assistant/core/pull/49495 +[#49496]: https://github.com/home-assistant/core/pull/49496 +[#49497]: https://github.com/home-assistant/core/pull/49497 +[#49499]: https://github.com/home-assistant/core/pull/49499 +[#49500]: https://github.com/home-assistant/core/pull/49500 +[#49504]: https://github.com/home-assistant/core/pull/49504 +[#49505]: https://github.com/home-assistant/core/pull/49505 +[#49509]: https://github.com/home-assistant/core/pull/49509 +[#49510]: https://github.com/home-assistant/core/pull/49510 +[#49511]: https://github.com/home-assistant/core/pull/49511 +[#49512]: https://github.com/home-assistant/core/pull/49512 +[#49515]: https://github.com/home-assistant/core/pull/49515 +[#49516]: https://github.com/home-assistant/core/pull/49516 +[#49517]: https://github.com/home-assistant/core/pull/49517 +[#49521]: https://github.com/home-assistant/core/pull/49521 +[#49522]: https://github.com/home-assistant/core/pull/49522 +[#49525]: https://github.com/home-assistant/core/pull/49525 +[#49526]: https://github.com/home-assistant/core/pull/49526 +[#49529]: https://github.com/home-assistant/core/pull/49529 +[#49533]: https://github.com/home-assistant/core/pull/49533 +[#49535]: https://github.com/home-assistant/core/pull/49535 +[#49536]: https://github.com/home-assistant/core/pull/49536 +[#49538]: https://github.com/home-assistant/core/pull/49538 +[#49540]: https://github.com/home-assistant/core/pull/49540 +[#49543]: https://github.com/home-assistant/core/pull/49543 +[#49544]: https://github.com/home-assistant/core/pull/49544 +[#49546]: https://github.com/home-assistant/core/pull/49546 +[#49547]: https://github.com/home-assistant/core/pull/49547 +[#49550]: https://github.com/home-assistant/core/pull/49550 +[#49551]: https://github.com/home-assistant/core/pull/49551 +[#49553]: https://github.com/home-assistant/core/pull/49553 +[#49558]: https://github.com/home-assistant/core/pull/49558 +[#49559]: https://github.com/home-assistant/core/pull/49559 +[#49565]: https://github.com/home-assistant/core/pull/49565 +[#49566]: https://github.com/home-assistant/core/pull/49566 +[#49567]: https://github.com/home-assistant/core/pull/49567 +[#49569]: https://github.com/home-assistant/core/pull/49569 +[#49570]: https://github.com/home-assistant/core/pull/49570 +[#49571]: https://github.com/home-assistant/core/pull/49571 +[#49572]: https://github.com/home-assistant/core/pull/49572 +[#49577]: https://github.com/home-assistant/core/pull/49577 +[#49578]: https://github.com/home-assistant/core/pull/49578 +[#49579]: https://github.com/home-assistant/core/pull/49579 +[#49580]: https://github.com/home-assistant/core/pull/49580 +[#49581]: https://github.com/home-assistant/core/pull/49581 +[#49582]: https://github.com/home-assistant/core/pull/49582 +[#49584]: https://github.com/home-assistant/core/pull/49584 +[#49585]: https://github.com/home-assistant/core/pull/49585 +[#49586]: https://github.com/home-assistant/core/pull/49586 +[#49587]: https://github.com/home-assistant/core/pull/49587 +[#49590]: https://github.com/home-assistant/core/pull/49590 +[#49591]: https://github.com/home-assistant/core/pull/49591 +[#49593]: https://github.com/home-assistant/core/pull/49593 +[#49594]: https://github.com/home-assistant/core/pull/49594 +[#49597]: https://github.com/home-assistant/core/pull/49597 +[#49604]: https://github.com/home-assistant/core/pull/49604 +[#49606]: https://github.com/home-assistant/core/pull/49606 +[#49607]: https://github.com/home-assistant/core/pull/49607 +[#49609]: https://github.com/home-assistant/core/pull/49609 +[#49611]: https://github.com/home-assistant/core/pull/49611 +[#49613]: https://github.com/home-assistant/core/pull/49613 +[#49614]: https://github.com/home-assistant/core/pull/49614 +[#49616]: https://github.com/home-assistant/core/pull/49616 +[#49617]: https://github.com/home-assistant/core/pull/49617 +[#49624]: https://github.com/home-assistant/core/pull/49624 +[#49626]: https://github.com/home-assistant/core/pull/49626 +[#49631]: https://github.com/home-assistant/core/pull/49631 +[#49634]: https://github.com/home-assistant/core/pull/49634 +[#49635]: https://github.com/home-assistant/core/pull/49635 +[#49636]: https://github.com/home-assistant/core/pull/49636 +[#49637]: https://github.com/home-assistant/core/pull/49637 +[#49647]: https://github.com/home-assistant/core/pull/49647 +[#49650]: https://github.com/home-assistant/core/pull/49650 +[#49651]: https://github.com/home-assistant/core/pull/49651 +[#49652]: https://github.com/home-assistant/core/pull/49652 +[#49655]: https://github.com/home-assistant/core/pull/49655 +[#49657]: https://github.com/home-assistant/core/pull/49657 +[#49661]: https://github.com/home-assistant/core/pull/49661 +[#49662]: https://github.com/home-assistant/core/pull/49662 +[#49663]: https://github.com/home-assistant/core/pull/49663 +[#49666]: https://github.com/home-assistant/core/pull/49666 +[#49667]: https://github.com/home-assistant/core/pull/49667 +[#49668]: https://github.com/home-assistant/core/pull/49668 +[#49669]: https://github.com/home-assistant/core/pull/49669 +[#49671]: https://github.com/home-assistant/core/pull/49671 +[#49672]: https://github.com/home-assistant/core/pull/49672 +[#49673]: https://github.com/home-assistant/core/pull/49673 +[#49674]: https://github.com/home-assistant/core/pull/49674 +[#49675]: https://github.com/home-assistant/core/pull/49675 +[#49677]: https://github.com/home-assistant/core/pull/49677 +[#49678]: https://github.com/home-assistant/core/pull/49678 +[#49679]: https://github.com/home-assistant/core/pull/49679 +[#49680]: https://github.com/home-assistant/core/pull/49680 +[#49681]: https://github.com/home-assistant/core/pull/49681 +[#49682]: https://github.com/home-assistant/core/pull/49682 +[#49683]: https://github.com/home-assistant/core/pull/49683 +[#49684]: https://github.com/home-assistant/core/pull/49684 +[#49685]: https://github.com/home-assistant/core/pull/49685 +[#49688]: https://github.com/home-assistant/core/pull/49688 +[#49689]: https://github.com/home-assistant/core/pull/49689 +[#49693]: https://github.com/home-assistant/core/pull/49693 +[#49701]: https://github.com/home-assistant/core/pull/49701 +[#49702]: https://github.com/home-assistant/core/pull/49702 +[#49703]: https://github.com/home-assistant/core/pull/49703 +[#49704]: https://github.com/home-assistant/core/pull/49704 +[#49706]: https://github.com/home-assistant/core/pull/49706 +[#49708]: https://github.com/home-assistant/core/pull/49708 +[#49709]: https://github.com/home-assistant/core/pull/49709 +[#49715]: https://github.com/home-assistant/core/pull/49715 +[#49716]: https://github.com/home-assistant/core/pull/49716 +[#49718]: https://github.com/home-assistant/core/pull/49718 +[#49719]: https://github.com/home-assistant/core/pull/49719 +[#49721]: https://github.com/home-assistant/core/pull/49721 +[#49724]: https://github.com/home-assistant/core/pull/49724 +[#49725]: https://github.com/home-assistant/core/pull/49725 +[#49726]: https://github.com/home-assistant/core/pull/49726 +[#49728]: https://github.com/home-assistant/core/pull/49728 +[#49729]: https://github.com/home-assistant/core/pull/49729 +[#49730]: https://github.com/home-assistant/core/pull/49730 +[#49733]: https://github.com/home-assistant/core/pull/49733 +[#49737]: https://github.com/home-assistant/core/pull/49737 +[#49739]: https://github.com/home-assistant/core/pull/49739 +[#49742]: https://github.com/home-assistant/core/pull/49742 +[#49743]: https://github.com/home-assistant/core/pull/49743 +[#49744]: https://github.com/home-assistant/core/pull/49744 +[#49745]: https://github.com/home-assistant/core/pull/49745 +[#49746]: https://github.com/home-assistant/core/pull/49746 +[#49748]: https://github.com/home-assistant/core/pull/49748 +[#49750]: https://github.com/home-assistant/core/pull/49750 +[#49752]: https://github.com/home-assistant/core/pull/49752 +[#49754]: https://github.com/home-assistant/core/pull/49754 +[#49755]: https://github.com/home-assistant/core/pull/49755 +[#49756]: https://github.com/home-assistant/core/pull/49756 +[#49757]: https://github.com/home-assistant/core/pull/49757 +[#49761]: https://github.com/home-assistant/core/pull/49761 +[#49762]: https://github.com/home-assistant/core/pull/49762 +[#49764]: https://github.com/home-assistant/core/pull/49764 +[#49765]: https://github.com/home-assistant/core/pull/49765 +[#49767]: https://github.com/home-assistant/core/pull/49767 +[#49769]: https://github.com/home-assistant/core/pull/49769 +[#49770]: https://github.com/home-assistant/core/pull/49770 +[#49772]: https://github.com/home-assistant/core/pull/49772 +[#49773]: https://github.com/home-assistant/core/pull/49773 +[#49774]: https://github.com/home-assistant/core/pull/49774 +[#49775]: https://github.com/home-assistant/core/pull/49775 +[#49776]: https://github.com/home-assistant/core/pull/49776 +[#49777]: https://github.com/home-assistant/core/pull/49777 +[#49778]: https://github.com/home-assistant/core/pull/49778 +[#49779]: https://github.com/home-assistant/core/pull/49779 +[#49780]: https://github.com/home-assistant/core/pull/49780 +[#49781]: https://github.com/home-assistant/core/pull/49781 +[#49784]: https://github.com/home-assistant/core/pull/49784 +[#49786]: https://github.com/home-assistant/core/pull/49786 +[#49788]: https://github.com/home-assistant/core/pull/49788 +[#49789]: https://github.com/home-assistant/core/pull/49789 +[#49793]: https://github.com/home-assistant/core/pull/49793 +[#49794]: https://github.com/home-assistant/core/pull/49794 +[#49795]: https://github.com/home-assistant/core/pull/49795 +[#49796]: https://github.com/home-assistant/core/pull/49796 +[#49797]: https://github.com/home-assistant/core/pull/49797 +[#49799]: https://github.com/home-assistant/core/pull/49799 +[#49800]: https://github.com/home-assistant/core/pull/49800 +[#49802]: https://github.com/home-assistant/core/pull/49802 +[#49805]: https://github.com/home-assistant/core/pull/49805 +[#49806]: https://github.com/home-assistant/core/pull/49806 +[#49807]: https://github.com/home-assistant/core/pull/49807 +[#49811]: https://github.com/home-assistant/core/pull/49811 +[#49813]: https://github.com/home-assistant/core/pull/49813 +[#49815]: https://github.com/home-assistant/core/pull/49815 +[#49817]: https://github.com/home-assistant/core/pull/49817 +[#49821]: https://github.com/home-assistant/core/pull/49821 +[@Adminiuga]: https://github.com/Adminiuga +[@Bouni]: https://github.com/Bouni +[@Bre77]: https://github.com/Bre77 +[@Corbeno]: https://github.com/Corbeno +[@D3v01dZA]: https://github.com/D3v01dZA +[@DanielTheCoder]: https://github.com/DanielTheCoder +[@Danielhiversen]: https://github.com/Danielhiversen +[@Doomic]: https://github.com/Doomic +[@DylanGore]: https://github.com/DylanGore +[@EetuRasilainen]: https://github.com/EetuRasilainen +[@FMKaiba]: https://github.com/FMKaiba +[@FrnchFrgg]: https://github.com/FrnchFrgg +[@JeffLIrion]: https://github.com/JeffLIrion +[@KJonline]: https://github.com/KJonline +[@Kane610]: https://github.com/Kane610 +[@KapJI]: https://github.com/KapJI +[@Lau1406]: https://github.com/Lau1406 +[@MarBra]: https://github.com/MarBra +[@MartinHjelmare]: https://github.com/MartinHjelmare +[@MatthewFlamm]: https://github.com/MatthewFlamm +[@Noltari]: https://github.com/Noltari +[@Petro31]: https://github.com/Petro31 +[@RenierM26]: https://github.com/RenierM26 +[@RyuzakiKK]: https://github.com/RyuzakiKK +[@Shutgun]: https://github.com/Shutgun +[@StevenLooman]: https://github.com/StevenLooman +[@TheGardenMonkey]: https://github.com/TheGardenMonkey +[@Tho85]: https://github.com/Tho85 +[@ZephireNZ]: https://github.com/ZephireNZ +[@abmantis]: https://github.com/abmantis +[@adrienbrault]: https://github.com/adrienbrault +[@alandtse]: https://github.com/alandtse +[@amitfin]: https://github.com/amitfin +[@apapadopoulou]: https://github.com/apapadopoulou +[@bachya]: https://github.com/bachya +[@balloob]: https://github.com/balloob +[@bdr99]: https://github.com/bdr99 +[@bdraco]: https://github.com/bdraco +[@benleb]: https://github.com/benleb +[@bieniu]: https://github.com/bieniu +[@bjpetit]: https://github.com/bjpetit +[@bramkragten]: https://github.com/bramkragten +[@bsmappee]: https://github.com/bsmappee +[@calebmah]: https://github.com/calebmah +[@cdce8p]: https://github.com/cdce8p +[@cgarwood]: https://github.com/cgarwood +[@cgtobi]: https://github.com/cgtobi +[@chemelli74]: https://github.com/chemelli74 +[@chpego]: https://github.com/chpego +[@cmroche]: https://github.com/cmroche +[@corneyl]: https://github.com/corneyl +[@currentoor]: https://github.com/currentoor +[@danielpervan]: https://github.com/danielpervan +[@danielrheinbay]: https://github.com/danielrheinbay +[@dermotduffy]: https://github.com/dermotduffy +[@dfigus]: https://github.com/dfigus +[@dgomes]: https://github.com/dgomes +[@dieselrabbit]: https://github.com/dieselrabbit +[@djtimca]: https://github.com/djtimca +[@dmulcahey]: https://github.com/dmulcahey +[@dynasticorpheus]: https://github.com/dynasticorpheus +[@eifinger]: https://github.com/eifinger +[@emontnemery]: https://github.com/emontnemery +[@epenet]: https://github.com/epenet +[@fabaff]: https://github.com/fabaff +[@farmio]: https://github.com/farmio +[@felipediel]: https://github.com/felipediel +[@firstof9]: https://github.com/firstof9 +[@frenck]: https://github.com/frenck +[@glmnet]: https://github.com/glmnet +[@gralin]: https://github.com/gralin +[@hmmbob]: https://github.com/hmmbob +[@janiversen]: https://github.com/janiversen +[@jbouwh]: https://github.com/jbouwh +[@jjlawren]: https://github.com/jjlawren +[@koying]: https://github.com/koying +[@l2dy]: https://github.com/l2dy +[@lmagyar]: https://github.com/lmagyar +[@ludeeus]: https://github.com/ludeeus +[@mariwing]: https://github.com/mariwing +[@marvin-w]: https://github.com/marvin-w +[@mdegat01]: https://github.com/mdegat01 +[@mdz]: https://github.com/mdz +[@mib1185]: https://github.com/mib1185 +[@mikeodr]: https://github.com/mikeodr +[@milanmeu]: https://github.com/milanmeu +[@mptei]: https://github.com/mptei +[@mtdcr]: https://github.com/mtdcr +[@muppet3000]: https://github.com/muppet3000 +[@natekspencer]: https://github.com/natekspencer +[@nbraem]: https://github.com/nbraem +[@nebhale]: https://github.com/nebhale +[@ntilley905]: https://github.com/ntilley905 +[@ofalvai]: https://github.com/ofalvai +[@pavoni]: https://github.com/pavoni +[@pnbruckner]: https://github.com/pnbruckner +[@pree]: https://github.com/pree +[@puddly]: https://github.com/puddly +[@pvizeli]: https://github.com/pvizeli +[@raman325]: https://github.com/raman325 +[@rklomp]: https://github.com/rklomp +[@scarface-4711]: https://github.com/scarface-4711 +[@scop]: https://github.com/scop +[@soundch3z]: https://github.com/soundch3z +[@spacegaier]: https://github.com/spacegaier +[@starkillerOG]: https://github.com/starkillerOG +[@stegm]: https://github.com/stegm +[@tels7ar]: https://github.com/tels7ar +[@tetienne]: https://github.com/tetienne +[@thecode]: https://github.com/thecode +[@tikismoke]: https://github.com/tikismoke +[@timmo001]: https://github.com/timmo001 +[@tkdrob]: https://github.com/tkdrob +[@treylok]: https://github.com/treylok +[@tsvi]: https://github.com/tsvi +[@unaiur]: https://github.com/unaiur +[@vlebourl]: https://github.com/vlebourl +[@vzahradnik]: https://github.com/vzahradnik +[@w1ll1am23]: https://github.com/w1ll1am23 +[@xuefer]: https://github.com/xuefer +[@zachowj]: https://github.com/zachowj +[adguard docs]: /integrations/adguard/ +[advantage_air docs]: /integrations/advantage_air/ +[aemet docs]: /integrations/aemet/ +[airly docs]: /integrations/airly/ +[alexa docs]: /integrations/alexa/ +[amazon_polly docs]: /integrations/amazon_polly/ +[ambient_station docs]: /integrations/ambient_station/ +[amcrest docs]: /integrations/amcrest/ +[analytics docs]: /integrations/analytics/ +[androidtv docs]: /integrations/androidtv/ +[apple_tv docs]: /integrations/apple_tv/ +[apprise docs]: /integrations/apprise/ +[asuswrt docs]: /integrations/asuswrt/ +[august docs]: /integrations/august/ +[automation docs]: /integrations/automation/ +[axis docs]: /integrations/axis/ +[bond docs]: /integrations/bond/ +[broadlink docs]: /integrations/broadlink/ +[brother docs]: /integrations/brother/ +[camera docs]: /integrations/camera/ +[cast docs]: /integrations/cast/ +[climacell docs]: /integrations/climacell/ +[cloud docs]: /integrations/cloud/ +[command_line docs]: /integrations/command_line/ +[compensation docs]: /integrations/compensation/ +[config docs]: /integrations/config/ +[deconz docs]: /integrations/deconz/ +[denonavr docs]: /integrations/denonavr/ +[device_automation docs]: /integrations/device_automation/ +[device_tracker docs]: /integrations/device_tracker/ +[devolo_home_control docs]: /integrations/devolo_home_control/ +[dhcp docs]: /integrations/dhcp/ +[dht docs]: /integrations/dht/ +[dlna_dmr docs]: /integrations/dlna_dmr/ +[doorbird docs]: /integrations/doorbird/ +[dsmr docs]: /integrations/dsmr/ +[ecobee docs]: /integrations/ecobee/ +[econet docs]: /integrations/econet/ +[edl21 docs]: /integrations/edl21/ +[elgato docs]: /integrations/elgato/ +[emonitor docs]: /integrations/emonitor/ +[emulated_hue docs]: /integrations/emulated_hue/ +[enphase_envoy docs]: /integrations/enphase_envoy/ +[esphome docs]: /integrations/esphome/ +[evohome docs]: /integrations/evohome/ +[ezviz docs]: /integrations/ezviz/ +[faa_delays docs]: /integrations/faa_delays/ +[ffmpeg docs]: /integrations/ffmpeg/ +[fireservicerota docs]: /integrations/fireservicerota/ +[firmata docs]: /integrations/firmata/ +[flo docs]: /integrations/flo/ +[folder_watcher docs]: /integrations/folder_watcher/ +[freebox docs]: /integrations/freebox/ +[fritz docs]: /integrations/fritz/ +[fritzbox docs]: /integrations/fritzbox/ +[fritzbox_netmonitor docs]: /integrations/fritzbox_netmonitor/ +[frontend docs]: /integrations/frontend/ +[garmin_connect docs]: /integrations/garmin_connect/ +[geizhals docs]: /integrations/geizhals/ +[geniushub docs]: /integrations/geniushub/ +[gntp docs]: /integrations/gntp/ +[google docs]: /integrations/google/ +[google_assistant docs]: /integrations/google_assistant/ +[google_cloud docs]: /integrations/google_cloud/ +[google_travel_time docs]: /integrations/google_travel_time/ +[gpslogger docs]: /integrations/gpslogger/ +[gree docs]: /integrations/gree/ +[group docs]: /integrations/group/ +[growatt_server docs]: /integrations/growatt_server/ +[gtfs docs]: /integrations/gtfs/ +[guardian docs]: /integrations/guardian/ +[hangouts docs]: /integrations/hangouts/ +[harmony docs]: /integrations/harmony/ +[hassio docs]: /integrations/hassio/ +[heos docs]: /integrations/heos/ +[history_stats docs]: /integrations/history_stats/ +[hive docs]: /integrations/hive/ +[homeassistant docs]: /integrations/homeassistant/ +[homekit docs]: /integrations/homekit/ +[homekit_controller docs]: /integrations/homekit_controller/ +[homematic docs]: /integrations/homematic/ +[homematicip_cloud docs]: /integrations/homematicip_cloud/ +[http docs]: /integrations/http/ +[huawei_lte docs]: /integrations/huawei_lte/ +[hue docs]: /integrations/hue/ +[hvv_departures docs]: /integrations/hvv_departures/ +[hyperion docs]: /integrations/hyperion/ +[ialarm docs]: /integrations/ialarm/ +[iaqualink docs]: /integrations/iaqualink/ +[icloud docs]: /integrations/icloud/ +[insteon docs]: /integrations/insteon/ +[intent_script docs]: /integrations/intent_script/ +[isy994 docs]: /integrations/isy994/ +[jewish_calendar docs]: /integrations/jewish_calendar/ +[kmtronic docs]: /integrations/kmtronic/ +[knx docs]: /integrations/knx/ +[kodi docs]: /integrations/kodi/ +[kostal_plenticore docs]: /integrations/kostal_plenticore/ +[kwb docs]: /integrations/kwb/ +[light docs]: /integrations/light/ +[litterrobot docs]: /integrations/litterrobot/ +[logi_circle docs]: /integrations/logi_circle/ +[lyric docs]: /integrations/lyric/ +[maxcube docs]: /integrations/maxcube/ +[mazda docs]: /integrations/mazda/ +[media_extractor docs]: /integrations/media_extractor/ +[media_player docs]: /integrations/media_player/ +[melcloud docs]: /integrations/melcloud/ +[met docs]: /integrations/met/ +[met_eireann docs]: /integrations/met_eireann/ +[meteo_france docs]: /integrations/meteo_france/ +[metoffice docs]: /integrations/metoffice/ +[minecraft_server docs]: /integrations/minecraft_server/ +[mobile_app docs]: /integrations/mobile_app/ +[modbus docs]: /integrations/modbus/ +[moon docs]: /integrations/moon/ +[motioneye docs]: /integrations/motioneye/ +[mqtt docs]: /integrations/mqtt/ +[mutesync docs]: /integrations/mutesync/ +[myq docs]: /integrations/myq/ +[mysensors docs]: /integrations/mysensors/ +[nad docs]: /integrations/nad/ +[neato docs]: /integrations/neato/ +[nest docs]: /integrations/nest/ +[netatmo docs]: /integrations/netatmo/ +[notify docs]: /integrations/notify/ +[nuki docs]: /integrations/nuki/ +[nws docs]: /integrations/nws/ +[omnilogic docs]: /integrations/omnilogic/ +[onewire docs]: /integrations/onewire/ +[onvif docs]: /integrations/onvif/ +[openalpr_cloud docs]: /integrations/openalpr_cloud/ +[openweathermap docs]: /integrations/openweathermap/ +[pi_hole docs]: /integrations/pi_hole/ +[picnic docs]: /integrations/picnic/ +[ping docs]: /integrations/ping/ +[plex docs]: /integrations/plex/ +[plum_lightpad docs]: /integrations/plum_lightpad/ +[profiler docs]: /integrations/profiler/ +[proxmoxve docs]: /integrations/proxmoxve/ +[ps4 docs]: /integrations/ps4/ +[rachio docs]: /integrations/rachio/ +[recollect_waste docs]: /integrations/recollect_waste/ +[recorder docs]: /integrations/recorder/ +[remote docs]: /integrations/remote/ +[rest docs]: /integrations/rest/ +[rituals_perfume_genie docs]: /integrations/rituals_perfume_genie/ +[roomba docs]: /integrations/roomba/ +[roon docs]: /integrations/roon/ +[route53 docs]: /integrations/route53/ +[scrape docs]: /integrations/scrape/ +[screenlogic docs]: /integrations/screenlogic/ +[script docs]: /integrations/script/ +[sense docs]: /integrations/sense/ +[sensor docs]: /integrations/sensor/ +[shelly docs]: /integrations/shelly/ +[sma docs]: /integrations/sma/ +[smappee docs]: /integrations/smappee/ +[smarttub docs]: /integrations/smarttub/ +[snapcast docs]: /integrations/snapcast/ +[socialblade docs]: /integrations/socialblade/ +[solaredge docs]: /integrations/solaredge/ +[somfy docs]: /integrations/somfy/ +[sonos docs]: /integrations/sonos/ +[sql docs]: /integrations/sql/ +[srp_energy docs]: /integrations/srp_energy/ +[ssdp docs]: /integrations/ssdp/ +[stream docs]: /integrations/stream/ +[sun docs]: /integrations/sun/ +[surepetcare docs]: /integrations/surepetcare/ +[swiss_hydrological_data docs]: /integrations/swiss_hydrological_data/ +[synology_dsm docs]: /integrations/synology_dsm/ +[systemmonitor docs]: /integrations/systemmonitor/ +[tasmota docs]: /integrations/tasmota/ +[tellduslive docs]: /integrations/tellduslive/ +[template docs]: /integrations/template/ +[tibber docs]: /integrations/tibber/ +[tod docs]: /integrations/tod/ +[tplink docs]: /integrations/tplink/ +[trace docs]: /integrations/trace/ +[tts docs]: /integrations/tts/ +[tuya docs]: /integrations/tuya/ +[twitter docs]: /integrations/twitter/ +[unifi docs]: /integrations/unifi/ +[upcloud docs]: /integrations/upcloud/ +[upnp docs]: /integrations/upnp/ +[velux docs]: /integrations/velux/ +[vera docs]: /integrations/vera/ +[verisure docs]: /integrations/verisure/ +[vicare docs]: /integrations/vicare/ +[wake_on_lan docs]: /integrations/wake_on_lan/ +[waze_travel_time docs]: /integrations/waze_travel_time/ +[websocket_api docs]: /integrations/websocket_api/ +[wemo docs]: /integrations/wemo/ +[withings docs]: /integrations/withings/ +[workday docs]: /integrations/workday/ +[xbox docs]: /integrations/xbox/ +[xiaomi_miio docs]: /integrations/xiaomi_miio/ +[yeelight docs]: /integrations/yeelight/ +[zeroconf docs]: /integrations/zeroconf/ +[zha docs]: /integrations/zha/ +[zwave_js docs]: /integrations/zwave_js/ \ No newline at end of file