diff --git a/source/_posts/2021-12-11-release-202112.markdown b/source/_posts/2021-12-11-release-202112.markdown
new file mode 100644
index 00000000000..eea55bf5f75
--- /dev/null
+++ b/source/_posts/2021-12-11-release-202112.markdown
@@ -0,0 +1,3690 @@
+---
+layout: post
+title: "2021.12: Beta release notes"
+description: "Beta release notes for 2021.12"
+date: 2021-12-03 00:00:00
+date_formatted: "December 11, 2021"
+author: Franck Nijhof
+author_twitter: frenck
+comments: true
+categories:
+- Release-Notes
+- Core
+og_image: /images/blog/2021-12/social.png
+---
+
+
+
+These are the beta release notes for Home Assistant Core 2021.12 (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
+version field (not title), so we can classify your issue correctly.
+
+Issues introduced in the beta are processed with priority.
+
+- [Brand new configuration menu](#brand-new-configuration-menu)
+- [The button entity](#the-button-entity)
+- [Local only users](#local-only-users)
+- [Revamped area panel and the area card](#revamped-area-panel-and-the-area-card)
+- [Z-Wave JS SmartStart and entity categories](#z-wave-js-smartstart-and-entity-categories)
+- [Blueprint scripts](#blueprint-scripts)
+- [Triggering automations on any, but only state changes](#triggering-automations-on-any-but-only-state-changes)
+- [Cast issues](#cast-issues)
+- [Other noteworthy changes](#other-noteworthy-changes)
+- [New Integrations](#new-integrations)
+- [Integrations now available to set up from the UI](#integrations-now-available-to-set-up-from-the-ui)
+- [If you need help...](#if-you-need-help)
+- [Breaking Changes](#breaking-changes)
+- [Updates for custom integration developers](#updates-for-custom-integration-developers)
+- [Farewell to the following](#farewell-to-the-following)
+- [All changes](#all-changes)
+
+## Brand new configuration menu
+
+The configuration panel has been revamped. Things are more compact,
+categorized and a bit of added color.
+
+The Supervisor panel and menubar item have been removed and merged into
+the configuration panel. All OS, Core & Add-on updates are now shown in the
+configuration panel as well.
+
+[](https://my.home-assistant.io/redirect/config/)
+
+## The button entity
+
+Introducing a new revolutionary entity: the button entity.
+Yes, it's a button. What can you do with it? Click it!
+
+Support has been added to Google Assistant, Alexa, HomeKit & MQTT as well.
+
+Implementations in this release:
+
+- Add Button platform to KNX integration ([@farmio] - [#59082]) ([knx docs])
+- Add button entity platform (restart button) to WLED ([@frenck] - [#59086]) ([wled docs])
+- Add button support to Google Assistant ([@frenck] - [#60158]) ([google_assistant docs])
+- Add button platform to Elgato ([@frenck] - [#59628]) ([elgato docs])
+- Add WLED firmware upgrade button ([@frenck] - [#59793]) ([wled docs])
+- Add button entities to Renault ([@epenet] - [#59383]) ([renault docs]) (breaking-change)
+- Add button to litterrobot ([@natekspencer] - [#59734]) ([litterrobot docs]) (breaking-change)
+- Add button support to HomeKit ([@frenck] - [#60165]) ([homekit docs])
+- Add Button platform to Nanoleaf ([@milanmeu] - [#60169]) ([nanoleaf docs])
+- Add tolo button platform ([@MatthiasLohr] - [#60345]) ([tolo docs])
+- Esphome/button ([@jesserockz] - [#60522]) ([esphome docs])
+- Add button platform to Tuya ([@frenck] - [#60304]) ([tuya docs])
+- Add button to trigger ota firmware update for Shelly devices ([@mib1185] - [#58757]) ([shelly docs])
+- Add `button` platform to NAM integration ([@bieniu] - [#60410]) ([nam docs])
+- Add reboot button to Shelly devices ([@mib1185] - [#60417]) ([shelly docs])
+- Add button support to Alexa ([@frenck] - [#60163]) ([alexa docs])
+
+
+
+## Local only users
+
+This features allows you to mark users in your home as "local only".
+
+- Add local only users ([@balloob] - [#57598]) ([config docs]) ([auth docs])
+
+## Revamped area panel and the area card
+
+The area panel now looks different... nice cards instead of a table/listing.
+But there is more! Those area cards, are actually available in Lovelace as well.
+
+Oh! You can now add pictures to your areas too!
+
+[](https://my.home-assistant.io/redirect/areas/)
+
+## Z-Wave JS SmartStart and entity categories
+
+Z-Wave JS now support SmartStart! You can add devices supporting that,
+by scanning their code using your camera.
+
+Additionally, Z-Wave JS had added support for Entity Categories
+
+## Blueprint scripts
+
+This was actually in Home Assistant Core 2021.11 release, but we forgot to
+mention it completely! :( Retry!
+
+You can now create, provide, share Blueprints for scripts! This works
+the same as with automations, except... well, it provides a script instead.
+
+This can be helpful to provide blueprints for configurable bits, that can
+be re-used in other automations.
+
+## Triggering automations on any, but only state changes
+
+Allow automations to trigger on all state changes, ignoring attributes by setting the `from` or `to` filter to `None`:
+
+```yaml
+automation:
+ trigger:
+ - platform: state
+ entity_id: media_player.living_room
+ to: ~
+```
+
+The same syntax is also supported for attributes.
+
+- Allow triggering on all state changes, ignoring attributes ([@emontnemery] - [#59713]) ([homeassistant docs])
+
+
+## Cast issues
+
+You might be aware of issues with using the Google Cast features in Home Assistant.
+These have been resolved!
+
+- Cast fixes (#10598) @bramkragten
+- Update Lovelace Cast app ID (#10592) @bramkragten
+
+## Other noteworthy changes
+
+There is much more juice in this release; here are some of the other
+noteworthy changes this release:
+
+- The Hue integration got a overhaul and now fully supports the V2 protocol.
+ Amazing job, thanks [@marcelveldt]!
+
+- Update MDI to v6.5.95 (#10618) @goyney
+- change switch icon to mdiToggleSwitch (#10475) @Mariusthvdb
+- Add UNIX timestamp detection to `as_datetime` template filter ([@jbouwh] - [#60126])
+- Add template filters pack and unpack ([@jbouwh] - [#60836])
+
+- Support reverse proxying of motionEye streams ([@dermotduffy] - [#53440]) ([motioneye docs])
+- Add motionEye sensor platform ([@dermotduffy] - [#53415]) ([motioneye docs]) (new-platform)
+- Add motionEye services ([@dermotduffy] - [#53411]) ([motioneye docs])
+- Add WLED reverse effect switch ([@frenck] - [#59778]) ([wled docs])
+- Add binary sensor platform to WLED ([@frenck] - [#59798]) ([wled docs]) (new-platform)
+- Add WLED Live Override controls ([@frenck] - [#59783]) ([wled docs])
+- Adding newly supported language codes to Google TTS ([@hmmbob] - [#58607]) ([google_cloud docs])
+- Add a Preset mode for Honeywell permanent hold ([@schreyack] - [#58060]) ([honeywell docs])
+- Add 'delta_values' option to utility_meter ([@eddyg] - [#54964]) ([utility_meter docs])
+- Add support for Levoit Core 400S air purifier to VeSync integration ([@jparchem] - [#57126]) ([vesync docs])
+- Add select platform to Litter-Robot integration ([@natekspencer] - [#58323]) ([litterrobot docs])
+- Add REST sensor/binary_sensor/switch templated headers & params ([@koying] - [#54426]) ([rest docs])
+- Update Mill library, add support for generation 3 heaters. #58536 ([@Danielhiversen] - [#58738]) ([mill docs])
+- Change zone HVAC mode in Advantage Air ([@Bre77] - [#52816]) ([advantage_air docs]) (breaking-change)
+- Add Nut device explicitly to the device registry ([@ollo69] - [#59525]) ([nut docs])
+- Add System Bridge keyboard services ([@timmo001] - [#53893]) ([system_bridge docs])
+- Add TP-Link LED control for Kasa plugs and strips ([@XaF] - [#59621]) ([tplink docs])
+- Add unique id's to Vallox entities ([@viiru-] - [#58459]) ([vallox docs])
+- Add Hive Alarm Support ([@KJonline] - [#59670]) ([hive docs]) (new-platform)
+- Add sensors to venstar integration ([@garbled1] - [#58851]) ([venstar docs]) (new-platform)
+- Add input_number state to prometheus metrics ([@alim4r] - [#56507]) ([prometheus docs])
+- Add cover platform to bosch_shc integration ([@tschamm] - [#51443]) ([bosch_shc docs]) (new-platform)
+- Add config and options flow to KNX integration ([@marvin-w] - [#59377]) ([knx docs]) (breaking-change)
+- Add support for HEOS groups ([@klada] - [#32568]) ([heos docs])
+- Add climate platform to Shelly ([@chemelli74] - [#59712]) ([shelly docs]) (new-platform)
+- Add pi_hole entity "available_updates" ([@andreasbrett] - [#56181]) ([pi_hole docs])
+- Rewrite Fronius integration ([@farmio] - [#59686]) ([fronius docs]) (breaking-change)
+- Support numeric sensors with no unit_of_measurement in prometheus ([@alim4r] - [#60157]) ([prometheus docs])
+- Add Notifications for Android TV icon support ([@redahb] - [#60159]) ([nfandroidtv docs]) (breaking-change)
+- Add support for flux_led 0xA2 devices ([@bdraco] - [#60361]) ([flux_led docs])
+- Use mysensors child description as entity name ([@bcelary] - [#60420]) ([mysensors docs])
+- Add Yamaha MusicCast number entities ([@micha91] - [#60093]) ([yamaha_musiccast docs])
+- Add sensors to Tesla Wall Connector Integration ([@einarhauks] - [#60507]) ([tesla_wall_connector docs]) (new-platform)
+- Support unit of measurement in ESPHome numbers ([@jesserockz] - [#60591]) ([esphome docs])
+- Binary sensor platform for the Balboa Spa ([@garbled1] - [#60409]) ([balboa docs]) (new-platform)
+- Add mode to ESPHome numbers ([@jesserockz] - [#60653]) ([esphome docs])
+- Add more Tractive sensors ([@Danielhiversen] - [#55170]) ([tractive docs])
+- Add support for Nanoleaf push updates ([@milanmeu] - [#60708]) ([nanoleaf docs])
+- Add binary characteristics, add deprecation warning for optional state_characteristic parameter ([@ThomDietrich] - [#60402]) ([statistics docs]) (breaking-change)
+
+MQTT:
+
+- Add command_template to mqtt select platform ([@jbouwh] - [#58934]) ([mqtt docs])
+- Add device_class to MQTT switch ([@koying] - [#58931]) ([mqtt docs])
+- Add MQTT object_id option ([@Smeagolworms4] - [#58728]) ([mqtt docs]) ([humidifier docs])
+- Add command_template to MQTT number platform ([@jbouwh] - [#58949]) ([mqtt docs])
+- Allow MQTT selects to have a single or no options ([@emontnemery] - [#60281]) ([mqtt docs])
+- Add 'trigger' support for MQTT Alarm Control Panel ([@XaF] - [#60525]) ([mqtt docs])
+- Add missing MQTT lock.open ([@Hypnos3] - [#60022]) ([mqtt docs])
+- Add mqtt sensor configurable state encoding for sensor and binary_sensor platform ([@jbouwh] - [#60447]) ([mqtt docs])
+
+This release adds support for long-term statistics to the following integrations:
+
+- Coinbase (thanks [@TomBrien])
+- Daikin (thanks [@werkstrom])
+- Darksky (thanks [@jjlawren])
+- devolo Home Control (thanks [@Shutgun])
+- HomeMatic (thanks [@chriss158])
+- Wallbox (thanks [@hesselonline])
+
+Integrations adding visit device/service URLs:
+
+- Add configuration URL to Spider ([@peternijssen] - [#59171]) ([spider docs])
+- System Bridge - Add configuration URL ([@timmo001] - [#59320]) ([system_bridge docs])
+- Add configuration URL for Ambient PWS ([@bachya] - [#59616]) ([ambient_station docs])
+- Add configuration_url to deCONZ device when entry source is addon ([@Kane610] - [#59598]) ([deconz docs])
+- Add smartthings configuration_url ([@tkdrob] - [#58676]) ([smartthings docs])
+- Add configuration url to august ([@bdraco] - [#60013]) ([august docs])
+- Add `configuration_url` to SMA integration ([@rklomp] - [#59638]) ([sma docs])
+- Add harmony configuration url ([@bdraco] - [#60014]) ([harmony docs])
+- Add configuration_url to AdGuard Home integration ([@mdawsonuk] - [#60356]) ([adguard docs])
+- Add configuration_url to Waze Travel Time ([@mdawsonuk] - [#60376]) ([waze_travel_time docs])
+- Added configuration_url for Met Eireann integration ([@mdawsonuk] - [#60380]) ([met_eireann docs])
+- Added configuration_url to Met.no integration ([@mdawsonuk] - [#60378]) ([met docs])
+- Add configuration_url to Nanoleaf integration ([@mdawsonuk] - [#60372]) ([nanoleaf docs])
+- Add configuration_url to AccuWeather integration ([@mdawsonuk] - [#60381]) ([accuweather docs])
+- Add configuration_url to lutron_caseta ([@bdraco] - [#60015]) ([lutron_caseta docs])
+- Add configuration_url to bond ([@bdraco] - [#60523]) ([bond docs])
+- Add wiffi device configuration url support ([@mampfes] - [#60367]) ([wiffi docs])
+- Add configuration URL for SimpliSafe ([@bachya] - [#60860]) ([simplisafe docs])
+- Add configuration_url to Forecast.Solar integration ([@mdawsonuk] - [#60384]) ([forecast_solar docs])
+- Add configuration_url to integration ([@klaasnicolaas] - [#60565]) ([p1_monitor docs])
+
+Integrations adding entity categories:
+
+- Add zwave_js select entity category ([@MartinHjelmare] - [#59157]) ([zwave_js docs]) (breaking-change)
+- Add zwave_js binary sensor entity category ([@MartinHjelmare] - [#58703]) ([zwave_js docs]) (breaking-change)
+- Use entity_category in litterrobot ([@natekspencer] - [#59074]) ([litterrobot docs])
+- Use entity category and state class in devolo Home Network ([@Shutgun] - [#59071]) ([devolo_home_network docs])
+- Add category diagnostic to Switchbot 'calibrated' binary sensor ([@DCSBL] - [#59409]) ([switchbot docs])
+- Add entity categories to most NUT entities ([@drthanwho] - [#58798]) ([nut docs])
+- Add entity categorisation to AVM Fritz!Smarthome devices ([@mib1185] - [#59287]) ([fritzbox docs])
+- Add entity_category to Rituals Entities ([@milanmeu] - [#59756]) ([rituals_perfume_genie docs])
+
+
+## New Integrations
+
+We welcome the following new integration this release:
+
+- [Balboa Spa][balboa docs], added by [@garbled1]
+- [Button][button docs], added by [@frenck]
+- [devolo Home Network][devolo_home_network docs], added by [@Shutgun]
+- [Evil Genius Labs][evil_genius_labs docs], added by [@balloob]
+- [Jellyfin][jellyfin docs], added by [@j-stienstra]
+- [RDW][rdw docs], added by [@frenck]
+- [Ridwell][ridwell docs], added by [@bachya]
+- [Tailscale][tailscale docs], added by [@frenck]
+- [Tesla Wall Connector][tesla_wall_connector docs], added by [@einarhauks]
+- [TOLO Sauna][tolo docs], added by [@MatthiasLohr]
+
+## Integrations now available to set up from the UI
+
+The following integrations are now available via the Home Assistant UI:
+
+- [KNX][knx docs], done by [@marvin-w]
+- [Trafikverket Weather Station][trafikverket_weatherstation docs], done by [@gjohansson-ST]
+- [Viessmann ViCare][vicare docs], done by [@oischinger]
+
+
+## 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 "Customization UI" %}
+
+The customization UI/frontend has been removed. The YAML configuration
+for this is recommended and remains available.
+
+In case you used this to change how, for example, a cover or door contact
+entity is shown, you can now change that by editing the entity in the UI.
+
+{% enddetails %}
+
+{% details "Supervisor Menu" %}
+
+The Supervisor panel has been merged into the configuration panel; therefore
+the separate menu item has been removed from the sidebar.
+
+{% enddetails %}
+
+{% details "KNX" %}
+
+The KNX integration migrated the connection settings to configuration via the
+UI. Configuring the connection to the KNX bus via YAML configuration has been
+deprecated and will be removed in a future Home Assistant release.
+
+Your existing connection YAML configuration is automatically imported on upgrade
+to this release; and thus can be safely removed from your YAML configuration
+after upgrading.
+
+Additionally, the KNX integration can now be reloaded via the Integrations
+screen in the frontend and thus the knx.reload service has been removed.
+
+([@marvin-w] - [#59377]) ([knx docs])
+
+----
+
+The `last_knx_update` attribute has been removed from the KNX sensors and
+binary sensors. The `last_update` attribute can be used alternatively.
+
+If you are relying on this attribute in your automations or script, you
+will need to adjust them to this change.
+
+([@farmio] - [#58786]) ([knx docs])
+
+----
+
+The configuration key `event_filter` is now deprecated and will be removed in a
+future version of Home Assistant. Please use the new `event` config key instead.
+
+([@farmio] - [#57621]) ([knx docs])
+
+{% enddetails %}
+
+{% details "WLED" %}
+
+The `led_count` and `max_power` attributes have been removed from the sensor
+entity that provides the estimated current of the WLED device. These have been
+replaced by their own sensor entities.
+
+If you have been using the attributes in your automation or scripts, you'll
+need to adjust those to reflect these changes.
+
+([@frenck] - [#58839]) ([wled docs])
+
+----
+
+The `speed`, `palette` name, `intensity`, and `reverse` effect indicator
+attributes have been removed from the WLED light entities.
+They all have been replaced by their own, dedicated, number and switch entities.
+
+If you rely on these attributes in your automations or scripts, you'll
+need to adjust those to this change.
+
+([@frenck] - [#60535]) ([wled docs])
+
+----
+
+The `wled.effect` and `wled.preset` services have been removed.
+For both services, full replacements are available as normal entities in
+Home Assistant.
+
+If you are still using these services in your automation or script, please
+replace them with service calls to their native entities instead.
+
+([@frenck] - [#60537]) ([wled docs])
+
+{% enddetails %}
+
+{% details "MQTT" %}
+
+The following previously deprecated MQTT fan options are no longer supported
+and have been removed:
+
+- `payload_high_speed`
+- `payload_low_speed`
+- `payload_medium_speed`
+- `speed_command_topic`
+- `speed_list`
+- `speed_state_topic`
+- `speed_value_template`
+
+([@jbouwh] - [#58992]) ([mqtt docs])
+
+{% enddetails %}
+
+{% details "Z-Wave JS" %}
+
+Some entities have been marked as configuration entities, e.g., default
+tone of siren devices and protection mode of smart plugs.
+
+Configuration entities:
+
+- Are not included in a service call targeting a whole device or area.
+- Are, by default, not exposed to Google Assistant or Alexa.
+- Are shown on a separate card on the device configuration page.
+- Do not show up on the automatically generated Lovelace Dashboards.
+
+([@MartinHjelmare] - [#59157] [#58703] [#59474]) ([zwave_js docs])
+
+----
+
+- Add zwave_js speed configurations for GE/Jasco 12730 and 14287 fans ([@mkowalchuk] - [#60517]) ([zwave_js docs]) (breaking-change)
+
+
+{% enddetails %}
+
+{% details "Advantage Air" %}
+
+The HVAC mode for zone climate entities was set to `FAN` or `OFF`, because the
+actual HVAC mode is set for the entire ducted AC system. However, using FAN
+means the Google Home app wont let you set a target temperature,
+so it has been changed `AUTO` instead.
+
+([@Bre77] - [#52816]) ([advantage_air docs])
+
+{% enddetails %}
+
+{% details "Phone Modem" %}
+
+The previously deprecated YAML configuration of the Phone Modem integration
+has been removed. Phone Modem is now configured via the UI, any existing YAML
+configuration has been imported in previous releases and can now be safely
+removed from your YAML configuration files.
+
+([@tkdrob] - [#59526]) ([modem_callerid docs])
+
+{% enddetails %}
+
+{% details "Twente Milieu" %}
+
+Due to the modernization of the Twente Milieu integration; the
+`twentemilieu.update` service has been removed.
+
+You can now use the `homeassistant.update_entity` service with the
+Twente Milieu integration as a replacement for the removed service.
+
+([@frenck] - [#59632]) ([twentemilieu docs])
+
+{% enddetails %}
+
+{% details "Renault" %}
+
+The `renault.charge_start` service is deprecated and replaced by a dedicated
+start charge `button` entity; please use that entity to start
+the charge instead.
+
+([@epenet] - [#59383]) ([renault docs])
+
+{% enddetails %}
+
+{% details "Litter-Robot" %}
+
+The `litterrobot.reset_waste_drawer` and `litterrobot.set_wait_time` services
+are deprecated and replaced by a dedicated `button` entities; please use
+please use those instead.
+
+([@natekspencer] - [#59734]) ([litterrobot docs])
+
+{% enddetails %}
+
+{% details "SMA Solar" %}
+
+Previously when the inverter was not supplying any power the sensors showed as
+`Unknown`. These sensors will now show the value of `0`. Making it more useful
+for graphs or calculations.
+
+([@rklomp] - [#59848]) ([sma docs])
+
+{% enddetails %}
+
+{% details "Kostal Plenticore" %}
+
+The "Battery Strategy" sensor has been removed from the Kostal Plenticore
+integration, it's replaced by a `switch` and a `select` entity to allow setting
+the battery charging settings from Home Assistant.
+
+([@slowflyer] - [#56529]) ([kostal_plenticore docs])
+
+{% enddetails %}
+
+{% details "Brunt Blind Engine" %}
+
+The Brunt integration migrated the connection settings to configuration via
+the UI. Configuring the connection to the Brunt API via YAML configuration
+has been deprecated and will be removed in a future Home Assistant release.
+
+Your existing connection YAML configuration is automatically imported on upgrade
+to this release; and thus can be safely removed from your YAML configuration
+after upgrading.
+
+Additionally, the Brunt integration can now be reloaded via the Integrations
+screen in the frontend and will also reload if a Brunt device is removed
+from your account.
+
+([@eavanvalkenburg] - [#49714]) ([brunt docs])
+
+{% enddetails %}
+
+{% details "RainMachine" %}
+
+The `rainmachine.disable_program`, `rainmachine.enable_program`,
+`rainmachine.disable_zone`, and `rainmachine.enable_zone` services have been
+removed.
+
+Instead, new configuration switches related to each entity can be used to
+enable/disable the program/zone.
+
+([@bachya] - [#59617]) ([rainmachine docs])
+
+{% enddetails %}
+
+{% details "Yamaha MusicCast" %}
+
+Until now, there was only one Home Assistant device created for a Yamaha
+MusicCast device and the media player entities of all zones were part of
+this device.
+
+As of this release every zones media player will be located in its own
+Home Assistant device. For single zone devices, nothing will change and
+all your automations, scripts, scenes etc. should work in the same way as
+before.
+
+For multi zone devices for every non main zone (e.g., zone2 or zone3)
+a new device will be created. The media_player of the main zone will remain
+in the original device with all its properties, scripts, automations and scenes,
+which were configured for it.
+
+For other zones you will have to set the area of the newly generated devicesfor
+the various zones manually. If you created scripts, automations or scenes with
+the device as a target and want them to work for non main zones, you will have
+to add the newly added devices as a target to your script/automation/scene.
+
+If you used the media player entity as target, everything should still work
+like before.
+
+([@micha91] - [#58285]) ([yamaha_musiccast docs])
+
+{% enddetails %}
+
+{% details "Fronius" %}
+
+The Fronius integration migrated to configuration via the UI. Configuring
+Fronius via YAML configuration has been deprecated and will be removed in a
+future Home Assistant release.
+
+Your existing YAML configuration is automatically imported on upgrade to this
+release; and thus can be safely removed from your YAML configuration after
+upgrading.
+
+This change will remove manual configuration of Fronius device IDs.
+Connected SolarNet devices will be detected automatically on startup.
+
+([@farmio] - [#59686]) ([fronius docs])
+
+{% enddetails %}
+
+{% details "Templates: `timestamp_local` and `timestamp_utc`" %}
+
+The `timestamp_local` and `timestamp_utc` template functions/filters have
+changed their output format. The timestamp is now formatted to iso standards
+and contains timezone information.
+
+Previously a timestamp from these would look like: `2016-07-21 16:39:04`.
+Now it is formatted as: `2016-07-21T16:39:04+01:00`.
+
+This change may break templates that need a specific format, in those cases,
+you can use the `timestamp_custom` template filter instead.
+
+([@jbouwh] - [#60269])
+
+{% enddetails %}
+
+{% details "BMW ConnectedDrive" %}
+
+The following services/sensors have been removed due to not being available
+using the My BMW API:
+
+- `alltrips_*`
+- `lasttrips_*`
+- `chargingconnectiontype`
+- `charginginductivepositioning`
+- `lastchargingendreason`
+- `lastchargingendresult`
+- `maxelectricrange`
+
+`notify` requires a location attribute at `data.location`, as the MyBMW API
+only supports sending POI and not messages.
+
+([@rikroe] - [#59881]) ([bmw_connected_drive docs])
+
+{% enddetails %}
+
+{% details "Notifications for Android TV" %}
+
+The Notifications for Android TV integration allows you to send custom
+notifications to Android TV devices. By sending a `file` along with the
+notification, this allows you to send image files that will show up above
+the notification.
+
+Now that support for icons has been added in the same way as images, the `file`
+option has been renamed to `image` as to properly identify what you're sending
+with the notification.
+
+As such, code and automations that use the `file` option for an image have to
+refer to `image` from now on.
+
+([@redahb] - [#60159]) ([nfandroidtv docs])
+
+{% enddetails %}
+
+{% details "Sonos" %}
+
+The `sonos.set_option` service has been removed along with the `bass_level`
+and `treble_level` attributes on `media_player` entities.
+
+Controls for bass and treble adjustments have been moved to
+dedicated `number` entities
+
+([@jjlawren] - [#60498]) ([sonos docs])
+
+{% enddetails %}
+
+{% details "Velbus" %}
+
+The previously deprecated YAML configuration of the RVelbus integration has been removed.
+
+Velbus is now configured via the UI, any existing YAML configuration has been imported
+in previous releases and can now be safely removed from your YAML configuration files.
+
+([@Cereal2nd] - [#60411]) ([velbus docs])
+
+{% enddetails %}
+
+{% details "HomeKit Controller" %}
+
+This release removes the air quality from HomeKit Controller as the platform
+as a whole is now deprecated.
+
+Starting from September, the air quality values have been broken out as their
+own sensors, making them easier to incorporate in your dashboard widgets,
+graphs and automations. These should be used instead.
+
+([@Jc2k] - [#60480]) ([homekit_controller docs])
+
+{% enddetails %}
+
+{% details "Supervisor" %}
+
+The binary_sensor with "running" `device_class` that was provided for the
+Home Assistant Operating System device did not work and has now been removed,
+if you have added this to templates and/or automation remove it from
+your configuration.
+
+([@ludeeus] - [#60597]) ([hassio docs])
+
+{% enddetails %}
+
+{% details "Trafikverket Weather Station" %}
+
+The Trafikverket Weather Station integration migrated to configuration via the
+UI. Configuring Trafikverket Weather Station via YAML configuration has been
+deprecated and will be removed in a future Home Assistant release.
+
+Your existing YAML configuration is automatically imported on upgrade to this
+release; and thus can be safely removed from your YAML configuration after upgrading.
+
+([@gjohansson-ST] - [#60078]) ([trafikverket_weatherstation docs])
+
+{% enddetails %}
+
+{% details "SimpliSafe" %}
+
+SimpliSafe services have been reorganized and now utilize a Home Assistant
+selector (device ID) instead of using a SimpliSafe system ID.
+
+([@bachya] - [#58722]) ([simplisafe docs])
+
+{% enddetails %}
+
+{% details "Guardian" %}
+
+Guardian services have been reorganized and now utilize a Home Assistant
+selector (device ID) instead of using a Guardian entity.
+
+([@bachya] - [#58632]) ([guardian docs])
+
+{% enddetails %}
+
+{% details "Pentair ScreenLogic" %}
+
+Screenlogic SCG levels have moved to the number platform to support setting of
+the values. The sensor entities that previously represented these values will
+need to be manually deleted in `Configuration -> Entities`.
+
+([@dieselrabbit] - [#60872]) ([screenlogic docs])
+
+{% enddetails %}
+
+{% details "Viessmann ViCare" %}
+
+The Viessmann ViCare integration migrated to configuration via the
+UI. Configuring Viessmann ViCare via YAML configuration has been
+deprecated and will be removed in a future Home Assistant release.
+
+Your existing YAML configuration is automatically imported on upgrade to this
+release; and thus can be safely removed from your YAML configuration after upgrading.
+
+([@oischinger] - [#56691]) ([vicare docs])
+
+{% enddetails %}
+
+{% details "Material Design Icons (MDI)" %}
+
+The previously deprecated MDI icons, now have been removed.
+
+The following icons have been removed:
+
+- `adobe-acrobat`
+- `adobe`
+- `amazon-alexa`
+- `amazon`
+- `android-auto`
+- `android-debug-bridge`
+- `bandcamp`
+- `battlenet`
+- `blogger`
+- `buffer`
+- `cash-usd-outline`
+- `cash-usd`
+- `cellphone-android` (alternative: `cellphone`)
+- `cellphone-iphone` (alternative: `cellphone`)
+- `concourse-ci`
+- `currency-usd-circle`
+- `currency-usd-circle-outline`
+- `do-not-disturb-off` (alternative: `minus-circle-off`)
+- `do-not-disturb` (alternative: `minus-circle`)
+- `douban`
+- `file-pdf` (alternative: `file-pdf-box`)
+- `file-pdf-outline` (alternative: `file-pdf-box`)
+- `file-pdf-box-outline` (alternative: `file-pdf-box`)
+- `google-photos`
+- `home-currency-usd`
+- `laptop-chromebook` (alternative: `laptop`)
+- `laptop-mac` (alternative: `laptop`)
+- `laptop-windows` (alternative: `laptop`)
+- `microsoft-edge-legacy`
+- `microsoft-yammer`
+- `pdf-box` (alternative: `file-pdf-box`)
+- `plus-one` (alternative: `numeric-positive-1`)
+- `poll-box` (alternative: `chart-box`)
+- `poll-box-outline` (alternative: `chart-box-outline`)
+- `tablet-ipad` (alternative: `tablet`)
+- `telegram`
+- `untappd`
+- `vk`
+- `xamarian-outline`
+- `xing`
+- `y-combinator`
+
+The following icons have been renamed:
+
+- `apple-airplay` to `cast-variant`
+- `application` to `application-outline`
+- `application-cog` to `application-cog-outline`
+- `application-settings` to `application-settings-outline`
+- `bolnisi-cross` to `cross-bolnisi`
+- `boom-gate-up` to `boom-gate-arrow-up`
+- `boom-gate-up-outline` to `boom-gate-arrow-up-outline`
+- `boom-gate-down` to `boom-gate-arrow-down`
+- `boom-gate-down-outline` to `boom-gate-arrow-down-outline`
+- `buddhism` to `dharmachakra`
+- `cellphone-erase` to `cellphone-remove`
+- `celtic-cross` to `cross-celtic`
+- `christianity` to `cross`
+- `christianity-outline` to `cross-outline`
+- `face` to `face-man`
+- `face-outline` to `face-man-outline`
+- `face-profile-woman` to `face-woman-profile`
+- `face-shimmer` to `face-man-shimmer`
+- `face-shimmer-outline` to `face-man-shimmer-outline`
+- `flash-circle` to `lightning-bolt-circle`
+- `floor-lamp-variant` to `floor-lamp-torchiere-variant`
+- `gif` to `file-gif-box`
+- `gradient` to `gradient-vertical`
+- `hand` to `hand-front-right`
+- `hand-left` to `hand-back-left`
+- `hand-right` to `hand-back-right`
+- `hinduism` to `om`
+- `human-greeting` to `human-greeting-variant`
+- `iframe` to `application-brackets`
+- `iframe-outline` to `application-brackets-outline`
+- `iframe-array` to `application-array`
+- `iframe-array-outline` to `application-array-outline`
+- `iframe-braces` to `application-braces`
+- `iframe-braces-outline` to `application-braces-outline`
+- `iframe-parentheses` to `application-parentheses`
+- `iframe-parentheses-outline` to `application-parentheses-outline`
+- `iframe-variable` to `application-variable`
+- `iframe-variable-outline` to `application-variable-outline`
+- `islam` to `star-crescent`
+- `judaism` to `star-david`
+- `monitor-clean` to `monitor-shimmer`
+- `pharmacy` to `mortar-pestle-plus`
+- `sparkles` to `shimmer`
+- `teach` to `human-male-board`
+- `television-clean` to `television-shimmer`
+- `text-subject` to `text-long`
+- `twitter-retweet` to `repeat-variant`
+- `voice-off` to `account-voice-off`
+
+{% enddetails %}
+
+## Updates for custom integration developers
+
+If you are a custom integration developer, we have some updates in this
+release that you may want to take into account for your integration.
+
+Below is a listing of the breaking change for this release, per subject.
+Click on one of those to read more about the breaking change
+for that specific item.
+
+{% details "mqtt.async_publish is now a coroutine" %}
+
+`mqtt.async_publish` is now a coroutine and custom integrations calling this
+function needs to be adjusted accordingly.
+
+([@emontnemery] - [#58441])
+
+{% enddetails %}
+
+{% details "homeassistant.const.HTTP_* removed" %}
+
+The `homeassistant.const.HTTP_*` HTTP status constants have been removed,
+use stdlib `http.HTTPStatus` instead.
+
+([@scop] - [#58380])
+
+{% enddetails %}
+
+{% details "homeassistant.util.get_local_ip() removed" %}
+
+Removed `util.get_local_ip()` in favor of `components.network.async_get_source_ip()`.
+
+Previous implementation was determining local IP based on the routing versus a
+fixed public ip "8.8.8.8". New function instead allows to choice the destination
+and determine local_ip based on the source interface needed to get there.
+
+([@chemelli74] - [#58669])
+
+{% enddetails %}
+
+{% details "Timestamp/Date device class value changes" %}
+
+When using `datetime` and `date` device classes in sensors, the returned native
+value must (respectively) be a `datetime` or `date` Python object.
+
+Returning an iso formatted date(time) string in these cases is now deprecated
+and will write a deprecation warning in the logs. This fallback/backward
+compatibility will be removed in Home Assistant 2022.2.
+
+([@frenck] - [#52671])
+
+{% enddetails %}
+
+{% details "Customization API removed" %}
+
+The (outdated) customize frontend has been removed, and thus the (now unused)
+API endpoints for customizing have been removed from the Home Assistant API
+as well.
+
+([@frenck] - [#59824])
+
+{% enddetails %}
+
+{% details "NumberEntity MODE_* constants deprecated" %}
+
+The use of the `MODE_*` constants in the `number` entity platform is deprecated.
+Please use the `NumberMode` enum instead.
+
+([@frenck] - [#60614])
+
+{% enddetails %}
+
+{% details "DEVICE_CLASS_* constants deprecated" %}
+
+The use of the `DEVICE_CLASS_*` constants and `DEVICE_CLASSES` constants in
+**all** entity platforms, has now been depreacted. Instead, use the equavalent
+`DeviceClas` `StrEnum` provided by each platform.
+
+Example:
+
+```py
+from homeassistant.components.sensor import SensorDeviceClass
+
+@property
+def device_class(self) -> SensorDeviceClass:
+ return SensorDeviceClass.TEMPERATURE
+```
+
+([@frenck] - [#60655] [#60658] [#60656] [#60654] [#60651] [#60706] [#60709] [#60720])
+
+{% enddetails %}
+
+{% details "sanitize_filename and sanitize_path util removed" %}
+
+Removed two (long time) deprecated helpers:
+
+- `homeassistant.util.sanitize_filename`
+- `homeassistant.util.sanitize_path`
+
+([@frenck] - [#60859])
+
+{% enddetails %}
+
+{% details "SSDP ATTR_HA_MATCHING_DOMAINS value changed" %}
+
+The value of `ATTR_HA_MATCHING_DOMAINS` constant has been updated to replace the hash (`-`) with underscore (`_`):
+
+- Old value: `x-homeassistant-matching-domains`
+- New value: `x_homeassistant_matching_domains`
+
+([@epenet] - [#60283])
+
+{% enddetails %}
+
+{% details "MQTT/DHCP/ZeroConf/USB/SSDP Discovery" %}
+
+MQTT, DHCP, ZerConf, USB and SSDP discovery now provides an dataclass
+object, instead of using a dictionary.
+
+The dataclass objects have implemented dictionary access for temporary
+backwards compatibility during this deprecation period.
+
+Dataclasses provided by discovery type:
+
+- MQTT: `MqttServiceInfo` ([#60191])
+- DHCP: `DhcpServiceInfo` ([#60136])
+- USB: `UsbServiceInfo` ([#60140])
+- ZeroConf: `ZeroconfServiceInfo` ([#60206])
+- SSDP: `SsdpServiceInfo` ([#59931])
+
+([@epenet])
+
+{% enddetails %}
+
+## Farewell to the following
+
+The following integrations are no longer available as of this release:
+
+- **Dyson** has been removed. The integration has been broken for a long time
+ now, so its time for it to go, ([@epenet] - [#59401])
+- **IOTA** has been removed. The protocol is no longer compatible/usable
+ with this integration. ([@lambtho12] - [#59380]
+- **myChevrolet** has been removed. It has been broken for 6 months and
+ GM keeps actively hardening their authentication; preventing the integration
+ to work. ([@sdague] - [#59629])
+
+## All changes
+
+{% details "Click to see all changes!" %}
+
+- Bump version to 2021.12.0dev0 ([@frenck] - [#58546])
+- Register LCN devices in device registry ([@alengwenus] - [#53143]) ([lcn docs])
+- Get the registry using the callback method ([@balloob] - [#58542])
+- Avoid service call in MQTT async_publish function ([@emontnemery] - [#58441]) (breaking-change)
+- Add additional MAC address pattern for Guardian DHCP discovery ([@bachya] - [#58562]) ([guardian docs])
+- Use DeviceInfo in soma ([@epenet] - [#58572]) ([soma docs])
+- Use DeviceInfo in somfy-mylink ([@epenet] - [#58573]) ([somfy_mylink docs])
+- Use DeviceInfo in spider ([@epenet] - [#58575]) ([spider docs])
+- Use DeviceInfo in starline ([@epenet] - [#58576]) ([starline docs])
+- Use DeviceInfo in switchbot ([@epenet] - [#58578]) ([switchbot docs])
+- Use DeviceInfo in songpal ([@epenet] - [#58574]) ([songpal docs])
+- Remove incorrect use of iscoroutinefunction from duckdns ([@emontnemery] - [#58585]) ([duckdns docs])
+- Bump hatasmota to 0.3.0 ([@emontnemery] - [#58592]) ([tasmota docs])
+- Use DeviceInfo in switcher-kis ([@epenet] - [#58579]) ([switcher_kis docs])
+- Use DeviceInfo in syncthing ([@epenet] - [#58580]) ([syncthing docs])
+- Use DeviceInfo in syncthru ([@epenet] - [#58581]) ([syncthru docs])
+- Use DeviceInfo in system-bridge ([@epenet] - [#58582]) ([system_bridge docs])
+- Add entity category 'system' ([@emontnemery] - [#58595]) ([energy docs])
+- Use DeviceInfo in tasmota ([@epenet] - [#58604]) ([tasmota docs])
+- Use constants in acmeda config flow ([@epenet] - [#58590]) ([acmeda docs])
+- Use DeviceInfo in subaru ([@epenet] - [#58577]) ([subaru docs])
+- Use DeviceInfo in tado ([@epenet] - [#58603]) ([tado docs])
+- Use DeviceInfo in toon ([@epenet] - [#58605]) ([toon docs])
+- Use DeviceInfo in tplink ([@epenet] - [#58606]) ([tplink docs])
+- Use DeviceInfo in twentemilieu ([@epenet] - [#58608]) ([twentemilieu docs])
+- Use DeviceInfo in twinkly ([@epenet] - [#58609]) ([twinkly docs])
+- Use DeviceInfo in vizio ([@epenet] - [#58617]) ([vizio docs])
+- Use DeviceInfo in vlc-telnet ([@epenet] - [#58618]) ([vlc_telnet docs])
+- Use DeviceInfo in volumio ([@epenet] - [#58619]) ([volumio docs])
+- Use DeviceInfo in unifi ([@epenet] - [#58620]) ([unifi docs])
+- Use DeviceInfo in upb ([@epenet] - [#58621]) ([upb docs])
+- Add DHCP Discovery for SimpliSafe ([@bachya] - [#58560]) ([simplisafe docs])
+- Use constants in control4 config flow ([@epenet] - [#58602]) ([control4 docs])
+- Adding newly supported language codes to Google TTS ([@hmmbob] - [#58607]) ([google_cloud docs])
+- Open and close tilt for Fibaro devices in zwave_js ([@pail23] - [#58435]) ([zwave_js docs])
+- Add devolo home network integration ([@Shutgun] - [#45866]) ([devolo_home_network docs]) (new-integration)
+- Add missing SimpliSafe config flow test ([@bachya] - [#58563]) ([simplisafe docs])
+- Add more dlna_dmr media_player services and attributes ([@chishm] - [#57827]) ([dlna_dmr docs])
+- Use DeviceInfo in wemo ([@epenet] - [#58638]) ([wemo docs])
+- Use DeviceInfo in waze-travel-time ([@epenet] - [#58637]) ([waze_travel_time docs])
+- Use DeviceInfo in wiffi ([@epenet] - [#58639]) ([wiffi docs])
+- Use DeviceInfo in xbox ([@epenet] - [#58640]) ([xbox docs])
+- Use DeviceInfo in xiaomi-miio ([@epenet] - [#58642]) ([xiaomi_miio docs])
+- Use DeviceInfo in yale-smart-alarm ([@epenet] - [#58644]) ([yale_smart_alarm docs])
+- Use DeviceInfo in youless ([@epenet] - [#58645]) ([youless docs])
+- Use DeviceInfo in zerproc ([@epenet] - [#58647]) ([zerproc docs])
+- Add a Preset mode for Honeywell permanent hold ([@schreyack] - [#58060]) ([honeywell docs])
+- Use DeviceInfo in zwave-js ([@epenet] - [#58649]) ([zwave_js docs])
+- Add 'delta_values' option to utility_meter ([@eddyg] - [#54964]) ([utility_meter docs])
+- Add support for Levoit Core 400S air purifier to VeSync integration ([@jparchem] - [#57126]) ([vesync docs])
+- Avoid circular import in network integration ([@bdraco] - [#58655]) ([network docs])
+- Add zwave_js binary sensor descriptions ([@MartinHjelmare] - [#58641]) ([zwave_js docs])
+- Update greeneye_monitor sensor state when first connected to a monitor ([@jkeljo] - [#58587]) ([greeneye_monitor docs])
+- Add select platform to Litter-Robot integration ([@natekspencer] - [#58323]) ([litterrobot docs])
+- Support reverse proxying of motionEye streams ([@dermotduffy] - [#53440]) ([motioneye docs])
+- Add motionEye sensor platform ([@dermotduffy] - [#53415]) ([motioneye docs]) (new-platform)
+- Add REST sensor/binary_sensor/switch templated headers & params ([@koying] - [#54426]) ([rest docs])
+- Enable strict typing for greeneye_monitor ([@jkeljo] - [#58571]) ([greeneye_monitor docs])
+- Fix lcn in place update of config entry data ([@alengwenus] - [#58729]) ([lcn docs])
+- Add myself as codeowner of bluesound ([@thrawnarn] - [#58733]) ([bluesound docs])
+- Update Mill library, add support for generation 3 heaters. #58536 ([@Danielhiversen] - [#58738]) ([mill docs])
+- Add motionEye services ([@dermotduffy] - [#53411]) ([motioneye docs])
+- Get Litter-Robot to 100% code coverage and minor code cleanup ([@natekspencer] - [#58704]) ([litterrobot docs])
+- Add Ridwell integration ([@bachya] - [#57590]) ([ridwell docs]) (new-integration)
+- Use assignment expressions 31 ([@cdce8p] - [#58715])
+- Use assignment expressions 32 ([@cdce8p] - [#58716])
+- Use assignment expressions 29 ([@cdce8p] - [#58713])
+- Use assignment expressions 33 ([@cdce8p] - [#58717])
+- Use assignment expressions 30 ([@cdce8p] - [#58714])
+- Add AUCTION coin ([@bastgau] - [#58709]) ([coinbase docs])
+- Add __init__ for growatt sensor types ([@muppet3000] - [#58749]) ([growatt_server docs]) (new-integration)
+- Serve nest placeholder image from disk rather than generate on the fly ([@allenporter] - [#58663]) ([nest docs])
+- Switch to update coordinator, and bump venstarcolortouch to 0.15 ([@garbled1] - [#58601]) ([venstar docs])
+- Fix litterrobot vacuum base class ([@cdce8p] - [#58765]) ([litterrobot docs])
+- Use EntityDescription - wallbox ([@cdce8p] - [#58690]) ([wallbox docs])
+- Fix some typing issues in greeneye_monitor ([@jkeljo] - [#58788]) ([greeneye_monitor docs])
+- Correct fjaraskupan post merge review comments ([@elupus] - [#58796]) ([fjaraskupan docs])
+- Improve code quality of the Broadlink light platform ([@felipediel] - [#58790]) ([broadlink docs])
+- Improve code quality of the Broadlink switch platform ([@felipediel] - [#58794]) ([broadlink docs])
+- Remove `last_knx_update` extra_state_attribute from KNX BinarySensor and Sensor ([@farmio] - [#58786]) ([knx docs]) (breaking-change)
+- Add zeroconf ATTR constants ([@epenet] - [#58671]) ([zeroconf docs]) ([hue docs])
+- Bump async-upnp-client to 0.22.11 ([@chishm] - [#58803]) ([upnp docs]) ([yeelight docs]) ([dlna_dmr docs]) ([ssdp docs])
+- Cleanup old config entry migration from Météo-France ([@Quentame] - [#58809]) ([meteo_france docs])
+- Add motionEye media browser ([@dermotduffy] - [#53436]) ([motioneye docs])
+- Use assignment expressions 35 ([@cdce8p] - [#58824])
+- Use assignment expressions 36 ([@cdce8p] - [#58825])
+- Use assignment expressions 37 ([@cdce8p] - [#58827])
+- Use assignment expressions 38 ([@cdce8p] - [#58828])
+- Use assignment expressions 39 ([@cdce8p] - [#58829])
+- Use assignment expressions 34 ([@cdce8p] - [#58823])
+- Cleanup old entity.unique_id migration from Synology DSM ([@Quentame] - [#58811]) ([synology_dsm docs])
+- Address late review of venstar ([@garbled1] - [#58813]) ([venstar docs])
+- Make general code quality improvements in the Broadlink integration ([@felipediel] - [#58848]) ([broadlink docs])
+- Migrate attribution attribute for Zestimate ([@frenck] - [#58854]) ([zestimate docs])
+- Upgrade coverage to 6.1.1 ([@frenck] - [#58855])
+- Add device_class for GEM power and voltage sensors ([@garbled1] - [#58764]) ([greeneye_monitor docs])
+- Upgrade black to 21.10b0 ([@frenck] - [#58870])
+- Use attr and entity descriptions for Twente Milieu sensors ([@frenck] - [#58871]) ([twentemilieu docs])
+- Move WLED sensors to entity descriptions ([@frenck] - [#58839]) ([wled docs]) (breaking-change)
+- Perform some AirVisual code cleanup ([@bachya] - [#58858]) ([airvisual docs])
+- Perform some WattTime code cleanup ([@bachya] - [#58869]) ([watttime docs])
+- Perform some Tile code cleanup ([@bachya] - [#58868]) ([tile docs])
+- Perform some SimpliSafe code cleanup ([@bachya] - [#58867]) ([simplisafe docs])
+- Set internal quality_scale for the hassio integration ([@ludeeus] - [#58881]) ([hassio docs])
+- Simplify requests in the Broadlink integration ([@felipediel] - [#58850]) ([broadlink docs])
+- Use _attr_ shorthand in greeneye_monitor sensors ([@jkeljo] - [#58784]) ([greeneye_monitor docs])
+- Add type annotations to OpenWeatherMap ([@carstenschroeder] - [#58802]) ([openweathermap docs])
+- Check for uncaught service not found exceptions ([@balloob] - [#58010])
+- Use entity_registry async_get for AsusWrt ([@ollo69] - [#58885]) ([asuswrt docs])
+- Update xknx to 0.18.12 ([@marvin-w] - [#58891]) ([knx docs])
+- Use async_track_utc_time_change to schedule short term statistics ([@emontnemery] - [#58903]) ([recorder docs])
+- Add classes for new Homematic devicetypes/devices (HmIP-SMI, HmIP-DRSI1) ([@emufan] - [#57521]) ([homematic docs])
+- Add type annotations for MET ([@carstenschroeder] - [#58804]) ([met docs])
+- Move fixtures part 1 ([@balloob] - [#58902])
+- Split wallbox sensor type and number type ([@hesselonline] - [#58807]) ([wallbox docs])
+- Address late review of motionEye services ([@dermotduffy] - [#58924]) ([motioneye docs])
+- Add home/not_home icons to Asuswrt trackers ([@Mariusthvdb] - [#58883]) ([asuswrt docs])
+- Add command_template to mqtt select platform ([@jbouwh] - [#58934]) ([mqtt docs])
+- Add device_class to MQTT switch ([@koying] - [#58931]) ([mqtt docs])
+- Use freezegun in DST tests ([@emontnemery] - [#58939])
+- Add command_template to MQTT number platform ([@jbouwh] - [#58949]) ([mqtt docs])
+- Add support for TP-Link KL400L5 ([@dlangerm] - [#58944]) ([tplink docs])
+- Use zeroconf attributes (A-D) ([@epenet] - [#58835])
+- Use zeroconf HaServiceInfo in tests (A-D) ([@epenet] - [#58836]) ([apple_tv docs])
+- Address late review of motionEye media browser ([@dermotduffy] - [#58925]) ([motioneye docs])
+- Bump actions/checkout from 2.3.5 to 2.4.0 (@dependabot - [#58978])
+- Aurora abb improvements ([@davet2001] - [#58504]) ([aurora_abb_powerone docs])
+- Add state class to wallbox component ([@hesselonline] - [#58801]) ([wallbox docs])
+- Upgrade yamllint to 1.26.3 ([@frenck] - [#59047])
+- Upgrade isort to 5.10.0 ([@frenck] - [#59046])
+- Refactor velbus light code to make it more clear and readable ([@Cereal2nd] - [#58483]) ([velbus docs])
+- Add typing info to velbus (part 1) ([@Cereal2nd] - [#59041]) ([velbus docs])
+- Upgrade restrictedpython to 5.2a1.dev0 ([@frenck] - [#59049]) ([python_script docs])
+- Bump to aiohttp 3.8.0 ([@bdraco] - [#58974]) (breaking-change)
+- Use entity category and state class in devolo Home Network ([@Shutgun] - [#59071]) ([devolo_home_network docs])
+- Add recorder status WS API ([@emontnemery] - [#58989]) ([recorder docs])
+- Add Button entity component platform ([@frenck] - [#57642]) ([demo docs]) ([button docs]) (new-integration)
+- Mqtt fan fail deprecated options for classic speeds ([@jbouwh] - [#58992]) ([mqtt docs]) (breaking-change)
+- Minor tweak of cv.deprecated + cv.removed ([@emontnemery] - [#59095])
+- Upgrade mitemp_bt to 0.0.5 ([@frenck] - [#59054]) ([mitemp_bt docs])
+- Use entity_category in litterrobot ([@natekspencer] - [#59074]) ([litterrobot docs])
+- Add tests for KNX light ([@farmio] - [#58912]) ([knx docs])
+- Add tests for KNX scene ([@marvin-w] - [#58900]) ([knx docs])
+- Add test for KNX weather entity ([@marvin-w] - [#58898]) ([knx docs])
+- Revamp nest authentication config flows and remove need for redirect urls ([@allenporter] - [#59033]) ([nest docs])
+- Remove unused KeywordStyleAdapter ([@emontnemery] - [#59091])
+- Improve recorder migration tests ([@emontnemery] - [#59075]) ([recorder docs])
+- Use zeroconf attributes in enphase-envoy ([@epenet] - [#58961]) ([enphase_envoy docs])
+- Move async_migration_in_progress ([@emontnemery] - [#59087]) ([recorder docs]) ([hassio docs]) ([homeassistant docs])
+- Adjust recorder tests according to #59087 ([@emontnemery] - [#59143]) ([recorder docs])
+- Add binary_sensor to venstar to track alerts ([@garbled1] - [#58831]) ([venstar docs]) (new-platform)
+- Bump pyhaversion from 21.10.0 to 21.11.1 ([@ludeeus] - [#59147]) ([version docs])
+- Use entity category in devolo Home Control ([@Shutgun] - [#59104]) ([devolo_home_control docs])
+- Type vlc_telnet strictly ([@MartinHjelmare] - [#59154]) ([vlc_telnet docs])
+- Address venstar review comments ([@marvin-w] - [#59151]) ([venstar docs])
+- Add zwave_js select entity category ([@MartinHjelmare] - [#59157]) ([zwave_js docs]) (breaking-change)
+- Add configuration URL to Spider ([@peternijssen] - [#59171]) ([spider docs])
+- Tests for the Fronius integration ([@farmio] - [#57269]) ([fronius docs])
+- Fix regression after merging fixtures with old path ([@marvin-w] - [#59187]) ([fronius docs])
+- Bump pyefergy to 0.1.4 ([@tkdrob] - [#59219]) ([efergy docs])
+- Bump aiolyric to v1.0.8 ([@timmo001] - [#59228]) ([lyric docs])
+- Bump systembridge to v2.2.1 ([@timmo001] - [#59229]) ([system_bridge docs])
+- Bump RMVtransport to v0.3.3 ([@cgtobi] - [#59210]) ([rmvtransport docs])
+- Reduce code duplication in gogogate2 ([@bdraco] - [#59165]) ([gogogate2 docs])
+- add constant CONF_SLEEP_PERIOD ([@mib1185] - [#59195]) ([shelly docs])
+- Upgrade numpy to 1.21.4 ([@frenck] - [#59188]) ([opencv docs]) ([tensorflow docs]) ([trend docs]) ([iqvia docs]) ([compensation docs])
+- Fix typing in devolo Home Network ([@Shutgun] - [#59238]) ([devolo_home_network docs])
+- Address post-merge Ridwell code review ([@bachya] - [#58857]) ([ridwell docs])
+- Add decoded telegram payload to knx_event service ([@farmio] - [#57621]) ([knx docs]) (breaking-change)
+- Add RDW Vehicle information integration ([@frenck] - [#59240]) ([rdw docs]) (new-integration)
+- Remove deprecated usages of HomeAssistantType ([@marvin-w] - [#59241]) ([rfxtrx docs]) ([netgear docs])
+- Rewrite signal_messenger unittest to pytest ([@arozans] - [#57777]) ([signal_messenger docs])
+- Bump pyEmby to 1.8 ([@mezz64] - [#59267]) ([emby docs])
+- Fix typing issues - wallbox.number ([@cdce8p] - [#59286]) ([wallbox docs])
+- Fix udp ports ([@micha91] - [#59293]) ([yamaha_musiccast docs])
+- Upgrade async-upnp-client to 0.22.12 ([@frenck] - [#59284]) ([upnp docs]) ([yeelight docs]) ([dlna_dmr docs]) ([ssdp docs])
+- Add support for matching the zeroconf model property ([@bdraco] - [#58922]) ([zeroconf docs])
+- Clean up transmission empty containers evaluation ([@jshank] - [#59304]) ([transmission docs])
+- Bump up ZHA dependencies ([@Adminiuga] - [#59314]) ([zha docs])
+- Improve support for flux_led pixel/RBM controllers ([@bdraco] - [#59325]) ([flux_led docs])
+- Change zone HVAC mode in Advantage Air ([@Bre77] - [#52816]) ([advantage_air docs]) (breaking-change)
+- Add long-term statistics support for homematic sensors ([@chriss158] - [#57396]) ([homematic docs])
+- Add MQTT object_id option ([@Smeagolworms4] - [#58728]) ([mqtt docs]) ([humidifier docs])
+- Allow overriding ensure_ascii in the "to_json" template filter ([@koying] - [#54527])
+- Correct name of end apc sensor ([@mib1185] - [#59200]) ([apcupsd docs])
+- Use DeviceInfo in velbus ([@epenet] - [#58622]) ([velbus docs])
+- Add Evil Genius Labs integration ([@balloob] - [#58720]) ([evil_genius_labs docs]) (new-integration)
+- System Bridge - Add configuration URL ([@timmo001] - [#59320]) ([system_bridge docs])
+- Set tradfri entities to non-available when hub is not available ([@janiversen] - [#59278]) ([tradfri docs])
+- Add Water Content Measurement clusters ([@majkrzak] - [#59300]) ([zha docs])
+- Bump pytradfri to v7.2.0. ([@janiversen] - [#59342]) ([tradfri docs])
+- Cleanup Shelly light - use separate sets for dual mode and effects ([@thecode] - [#59363]) ([shelly docs])
+- Add Shelly Gen1 beta_version attribute to firmware update sensor ([@thecode] - [#59359]) ([shelly docs])
+- Fix statistics startup error for None value states ([@ThomDietrich] - [#59199]) ([statistics docs])
+- Fix statistics precision handling ([@ThomDietrich] - [#59202]) ([statistics docs])
+- Use zeroconf attributes in freebox ([@epenet] - [#58967]) ([freebox docs])
+- Add tests for goalzero ([@tkdrob] - [#57008]) ([goalzero docs])
+- System Bridge - Handle OSError for switched off devices ([@timmo001] - [#59312]) ([system_bridge docs])
+- Store SB data Class. ([@RenierM26] - [#59266]) ([switchbot docs])
+- Switchbot bump api version ([@RenierM26] - [#59398]) ([switchbot docs])
+- Add state class to Coinbase sensors ([@TomBrien] - [#59109]) ([coinbase docs])
+- Add speed conversion function & add speed to units system ([@rianadon] - [#53846]) ([met docs]) ([nws docs]) ([climacell docs]) ([met_eireann docs])
+- Dyson removal ([@epenet] - [#59401]) ([dyson docs]) (breaking-change)
+- IOTA removal ([@lambtho12] - [#59380]) ([iota docs]) (breaking-change)
+- Removing trailing `\` in tts entity description ([@howardjohn] - [#59313]) ([tts docs])
+- Bump aioasuswrt to 1.4.0 ([@Chen-IL] - [#59357]) ([asuswrt docs])
+- Return False from state conditions on missing attributes ([@emontnemery] - [#59405])
+- Revert "Add tests for goalzero" ([@tkdrob] - [#59407]) ([goalzero docs])
+- Add MQTT button ([@emontnemery] - [#59348]) ([mqtt docs])
+- Don't use template in cover device condition ([@emontnemery] - [#59408]) ([cover docs])
+- Add category diagnostic to Switchbot 'calibrated' binary sensor ([@DCSBL] - [#59409]) ([switchbot docs])
+- Change Coinbase account state class to total ([@TomBrien] - [#59404]) ([coinbase docs])
+- Catch connection errors that makes tradfri hang in startup ([@janiversen] - [#59368]) ([tradfri docs])
+- Remove const.HTTP_* status constants ([@scop] - [#58380]) (breaking-change)
+- Bump pycfdns from 1.2.1 to 1.2.2 ([@ludeeus] - [#59416]) ([cloudflare docs])
+- Bump pyuptimerobot from 21.9.0 to 21.11.0 ([@ludeeus] - [#59418]) ([uptimerobot docs])
+- Simplify setup of tradfri entities ([@janiversen] - [#59343]) ([tradfri docs])
+- Bump pylaunches from 1.0.0 to 1.2.0 ([@ludeeus] - [#59420]) ([launch_library docs])
+- Remove unneeded dynamic lookup of domain ([@emontnemery] - [#59423]) ([wake_on_lan docs]) ([template docs]) ([lg_netcast docs])
+- Add periods to statistics_during_period ws ([@bramkragten] - [#59425]) ([history docs])
+- Bump pytautulli from 21.10.0 to 21.11.0 ([@ludeeus] - [#59426]) ([tautulli docs])
+- Bump pytraccar from 0.9.0 to 0.10.0 ([@ludeeus] - [#59429]) ([traccar docs])
+- Update python-ecobee-api to 0.2.14 ([@bjpetit] - [#59381]) ([ecobee docs])
+- Improve Shelly color mode switch for dual mode bulbs ([@g-kiss] - [#58971]) ([shelly docs])
+- Add entity categories to most NUT entities ([@drthanwho] - [#58798]) ([nut docs])
+- Add zwave_js binary sensor entity category ([@MartinHjelmare] - [#58703]) ([zwave_js docs]) (breaking-change)
+- Move onewire device compatibility checks ([@epenet] - [#59338]) ([onewire docs])
+- Fix CORS ([@bramkragten] - [#59360]) ([http docs])
+- Upgrade colorlog to 6.6.0 ([@frenck] - [#59440])
+- Upgrade debugpy to 1.5.1 ([@frenck] - [#59436]) ([debugpy docs])
+- Bump zigpy-znp from 0.5.4 to 0.6.1 ([@puddly] - [#59442]) ([zha docs])
+- Bump pyefergy to 0.1.5 ([@tkdrob] - [#59439]) ([efergy docs])
+- Bump goalzero to 0.2.1 ([@tkdrob] - [#59437]) ([goalzero docs])
+- Upgrade pipdeptree to 2.2.0 ([@frenck] - [#59438])
+- Use unknown state for octoprint temperature sensors with None value ([@rfleming71] - [#59130]) ([octoprint docs])
+- Allow dict as input to zwave_js.set_value service ([@kreene1987] - [#59370]) ([zwave_js docs])
+- Huawei LTE sensor updates ([@scop] - [#59374]) ([huawei_lte docs])
+- Remove 'UnicodeDecodeError' exception in AsusWrt ([@ollo69] - [#59447]) ([asuswrt docs])
+- Minor refactor of template binary sensor ([@emontnemery] - [#59432]) ([template docs])
+- Bump google-nest-sdm to 0.3.9 ([@allenporter] - [#59458]) ([nest docs])
+- Mqtt cover toggle add stop function ([@CubieMedia] - [#59233]) ([cover docs])
+- Add support for PRESSURE_CBAR (centibars) ([@garbled1] - [#58762]) ([onewire docs])
+- Upgrade jinja2 to 3.0.3 ([@frenck] - [#59468])
+- Add Azure DevOps coordinator and entity description ([@timmo001] - [#54978]) ([azure_devops docs])
+- Remove resources selection from Nut config flow ([@ollo69] - [#59450]) ([nut docs])
+- Rename zeroconf service info ([@epenet] - [#59467])
+- Gogogate2 Battery Sensor Should Use % Unit For Compatibility ([@NickM-27] - [#59434]) ([gogogate2 docs])
+- Google Cast: Use own media player app ([@bramkragten] - [#55524]) ([google_assistant docs]) ([cast docs])
+- Add Button platform to KNX integration ([@farmio] - [#59082]) ([knx docs])
+- Bump sqlalchemy to 1.4.26 ([@bdraco] - [#59527]) ([recorder docs]) ([sql docs])
+- Make yaml file writes safer ([@bdraco] - [#59384]) ([config docs])
+- Upgrade pyupgrade to v2.29.0 ([@frenck] - [#59499])
+- Add binary sensor platform to RDW Vehicle information ([@frenck] - [#59253]) ([rdw docs]) (new-platform)
+- Add button entity platform (restart button) to WLED ([@frenck] - [#59086]) ([wled docs])
+- Make util.color._match_max_scale public ([@farmio] - [#59207])
+- Suppress media status when the lovelace cast app is active ([@emontnemery] - [#59481]) ([cast docs])
+- Minor refactor of template sensor ([@emontnemery] - [#59466]) ([template docs])
+- Minor refactor of energy validator ([@emontnemery] - [#58209]) ([recorder docs]) ([energy docs])
+- Set PARALLEL_UPDATES for ping binary sensor ([@mynameisdaniel32] - [#59524]) ([ping docs])
+- Improve test coverage ([@emontnemery] - [#59531]) ([cast docs])
+- Make some device action tests more explicit ([@emontnemery] - [#59469]) ([cover docs]) ([light docs]) ([alarm_control_panel docs])
+- Don't allow turning on audio only chromecasts ([@emontnemery] - [#59495]) ([cast docs])
+- Add tests to bring greeneye_monitor to 99% coverage ([@jkeljo] - [#58661]) ([greeneye_monitor docs])
+- Velbus typing part 2 ([@Cereal2nd] - [#59148]) ([velbus docs])
+- Drop STEP_ID constants from data_entry_flow ([@epenet] - [#59497]) ([acmeda docs]) ([control4 docs])
+- Add available property to statistics component ([@ThomDietrich] - [#59203]) ([statistics docs])
+- Bump cryptography 35.0.0 ([@pvizeli] - [#59541])
+- Test sensor unit conversion ([@emontnemery] - [#59546]) ([sensor docs])
+- Fix KNX climate entities hvac action without controller_mode ([@farmio] - [#59522]) ([knx docs])
+- Bump crownstone-cloud to v1.4.9 ([@RicArch97] - [#59500]) ([crownstone docs])
+- Upgrade coverage to 6.1.2 ([@frenck] - [#59530])
+- Add tilt support to bond covers ([@bdraco] - [#59505]) ([bond docs])
+- Bump async_timeout to 4.0.1 ([@bdraco] - [#59565])
+- Fix CORS error in emulated_hue ([@balloob] - [#59570]) ([emulated_hue docs]) ([http docs])
+- Fix issue with ranges in requirements with hassfest ([@ludeeus] - [#59470])
+- Block cloud explicitely from trusted networks ([@balloob] - [#59333])
+- Add Nut device explicitly to the device registry ([@ollo69] - [#59525]) ([nut docs])
+- Add ZigStar Zigbee Coordinator audodiscovery ([@mercenaruss] - [#59559]) ([zha docs])
+- Bump aiogithubapi from 21.8.0 to 21.11.0 ([@ludeeus] - [#59582]) ([github docs])
+- Add Jellyfin integration ([@j-stienstra] - [#44401]) ([jellyfin docs]) (new-integration)
+- Correct end time for monthly statistics summary ([@emontnemery] - [#59551]) ([recorder docs])
+- Update vehicle to 0.2.0 ([@frenck] - [#59583]) ([rdw docs])
+- Update elgato to 2.2.0 ([@frenck] - [#59585]) ([elgato docs])
+- Cleanup extra dict from hass data in Elgato ([@frenck] - [#59587]) ([elgato docs])
+- Bump Airthings library ([@Danielhiversen] - [#59595]) ([airthings docs])
+- Bump Adax library ([@Danielhiversen] - [#59592]) ([adax docs])
+- Bump pyMetno to 0.9.0 ([@Danielhiversen] - [#59609]) ([met docs])
+- Revert "Bump async_timeout to 4.0.1" ([@bdraco] - [#59601])
+- Bump open-garage to 0.2.0 ([@Danielhiversen] - [#59608]) ([opengarage docs])
+- Upgrade twentemilieu to 0.4.2 ([@frenck] - [#59599]) ([twentemilieu docs])
+- Remove unused stream_type attribute ([@allenporter] - [#59625]) ([camera docs])
+- Add System Bridge keyboard services ([@timmo001] - [#53893]) ([system_bridge docs])
+- Remove yaml config from modem_callerid ([@tkdrob] - [#59526]) ([modem_callerid docs]) (breaking-change)
+- Add button platform to Elgato ([@frenck] - [#59628]) ([elgato docs])
+- Add configuration URL for Ambient PWS ([@bachya] - [#59616]) ([ambient_station docs])
+- Fix broken Ambient PWS config entry migration ([@bachya] - [#59618]) ([ambient_station docs])
+- Fix inverted tuya doorcontact_state ([@hudcap] - [#59427]) ([tuya docs])
+- Upgrade wled to 0.9.0 ([@frenck] - [#59635]) ([wled docs])
+- Modernize/Simplify Twente Milieu ([@frenck] - [#59632]) ([twentemilieu docs]) (breaking-change)
+- Upgrade pytest-timeout to 2.0.1 ([@frenck] - [#59646])
+- Switchbot "in memory" state for push mode switch ([@RenierM26] - [#58750]) ([switchbot docs])
+- Update sense library version number ([@kbickar] - [#59454]) ([sense docs]) ([emulated_kasa docs])
+- Update xknx to 0.18.13 ([@farmio] - [#59658]) ([knx docs])
+- Add TP-Link LED control for Kasa plugs and strips ([@XaF] - [#59621]) ([tplink docs])
+- Bump pymysensors to 0.22.1 ([@gorbunovav] - [#59521]) ([mysensors docs])
+- Check early for empty passages in delijn ([@ericvb] - [#59612]) ([delijn docs])
+- Handle KeyError in getuser ([@ludeeus] - [#59667])
+- Remove mychevy component ([@sdague] - [#59629]) ([mychevy docs]) (breaking-change)
+- Add test coverage to Twente Milieu ([@frenck] - [#59640]) ([twentemilieu docs])
+- Bump pyezviz to 0.1.9.8 ([@regevbr] - [#58873]) ([ezviz docs])
+- Add configuration_url to deCONZ device when entry source is addon ([@Kane610] - [#59598]) ([deconz docs])
+- Fix ESPHome state watching when new state is None ([@jesserockz] - [#59528]) ([esphome docs])
+- Pass exit code to s6-init ([@agners] - [#59545])
+- Fix unpatched timeout in gree config flow tests ([@tkdrob] - [#59449]) ([gree docs])
+- Add Toon Humidity Sensor ([@tizzen33] - [#59488]) ([toon docs])
+- Add Camila, a missing Amazon Polly voice for Brazilian Portuguese ([@arthurgeek] - [#59346]) ([amazon_polly docs])
+- Check Honeywell Lyric token is valid before updating data ([@timmo001] - [#59310]) ([lyric docs])
+- Add entity categorisation to AVM Fritz!Smarthome devices ([@mib1185] - [#59287]) ([fritzbox docs])
+- Bump pykodi to 0.2.7 ([@csgitmeup] - [#59251]) ([kodi docs])
+- Drop block on local proxies from HA Cloud ([@balloob] - [#59334]) ([cloud docs])
+- Fix IAD and vis for DS2438 1wire sensor ([@JumpmanJunior] - [#59126]) ([onewire docs])
+- Update surepetcare services.yaml ([@flyize] - [#58892]) ([surepetcare docs])
+- Set MaxCube Climate properties using class _attr_ properties ([@petslane] - [#58910]) ([maxcube docs])
+- Perform some RainMachine code cleanup ([@bachya] - [#58865]) ([rainmachine docs])
+- Perform some OpenUV code cleanup ([@bachya] - [#58864]) ([openuv docs])
+- Perform some Guardian code cleanup ([@bachya] - [#58861]) ([guardian docs])
+- Perform some Notion code cleanup ([@bachya] - [#58863]) ([notion docs])
+- Perform some Flu Near You code cleanup ([@bachya] - [#58860]) ([flunearyou docs])
+- Perform some IQVIA code cleanup ([@bachya] - [#58862]) ([iqvia docs])
+- Refactor nest test ConfigEntry setup in config flow tests ([@allenporter] - [#59459]) ([nest docs])
+- Perform some ReCollect Waste code cleanup ([@bachya] - [#58866]) ([recollect_waste docs])
+- Add typing to deCONZ Scene platform and deCONZ Services ([@Kane610] - [#59603]) ([deconz docs])
+- Add smartthings configuration_url ([@tkdrob] - [#58676]) ([smartthings docs])
+- Set measurement entity_class for darksky temp & humidity ([@jjlawren] - [#59512]) ([darksky docs])
+- Upgrade wled to 0.10.0 ([@frenck] - [#59669]) ([wled docs])
+- Use octoprint printer flag status to check if printer is printing ([@rfleming71] - [#59663]) ([octoprint docs])
+- Pre-factor nest subscriber to library ([@allenporter] - [#59462]) ([nest docs])
+- bump total_connect_client to 2021.11.4 ([@austinmroczek] - [#59695]) ([totalconnect docs])
+- Bump philips js to 2.7.6 ([@elupus] - [#59690]) ([philips_js docs])
+- fix(luftdaten): air pressure is reported in pascal instead of hecto pascal ([@muggenhor] - [#59687]) ([luftdaten docs])
+- Use atomicwrites for mission critical core files ([@bdraco] - [#59606]) ([config docs]) ([network docs])
+- Bump simplisafe-python to 2021.11.0 ([@bachya] - [#59692]) ([simplisafe docs])
+- Correct initial update of async_track_template_result ([@emontnemery] - [#59705]) ([template docs])
+- Fix telnet fast state update ([@zentale] - [#59681]) ([telnet docs])
+- Add frequency device class for sensor ([@epenet] - [#59700]) ([sensor docs])
+- Bump pychromecast to 9.4.0 ([@emontnemery] - [#59716]) ([cast docs])
+- Add button entities to Renault ([@epenet] - [#59383]) ([renault docs]) (breaking-change)
+- Fix relative import in MySensors ([@hypnosiss] - [#59710]) ([mysensors docs])
+- Add Reauth flow to Wallbox integration ([@hesselonline] - [#58743]) ([wallbox docs])
+- Add unique id's to Vallox entities ([@viiru-] - [#58459]) ([vallox docs])
+- Adjust async_step_zeroconf signature for strict typing ([@epenet] - [#59503])
+- Replace util.get_local_ip in favor of components.network.async_get_source_ip() - part 4 ([@chemelli74] - [#58669]) ([http docs]) (breaking-change)
+- Fix totalconnect config flow ([@austinmroczek] - [#59461]) ([totalconnect docs])
+- Bump Tibber library to 0.21.0 ([@Danielhiversen] - [#59732]) ([tibber docs])
+- Use zeroconf attributes in elgato ([@epenet] - [#58958]) ([elgato docs])
+- Add button to litterrobot ([@natekspencer] - [#59734]) ([litterrobot docs]) (breaking-change)
+- Show cast as playing when an app without media support is active ([@emontnemery] - [#59714]) ([cast docs])
+- Use zeroconf attributes in forked-daapd ([@epenet] - [#58966]) ([forked_daapd docs])
+- Use zeroconf attributes in esphome ([@epenet] - [#58963]) ([esphome docs])
+- Fix KNX rgb(w) color ([@farmio] - [#51060]) ([knx docs])
+- Use ZeroconfServiceInfo in doorbird ([@epenet] - [#59737]) ([doorbird docs])
+- Use ZeroconfServiceInfo in guardian ([@epenet] - [#59741]) ([guardian docs])
+- Use ZeroconfServiceInfo in freebox ([@epenet] - [#59739]) ([freebox docs])
+- Fix KNX individual light tests ([@farmio] - [#59749]) ([knx docs])
+- Adjust async_step_homekit signature for strict typing ([@epenet] - [#59745]) ([tradfri docs]) ([rainmachine docs]) ([nanoleaf docs])
+- Add support for property attribute shorthand in Fan entity ([@mib1185] - [#59649]) ([fan docs])
+- Upgrade spotipy to 2.19.0 ([@frenck] - [#59728]) ([spotify docs])
+- Allow triggering on all state changes, ignoring attributes ([@emontnemery] - [#59713]) ([homeassistant docs])
+- Use ZeroconfServiceInfo in bosch_shc ([@epenet] - [#58957]) ([bosch_shc docs])
+- Perform some Ambient PWS code cleanup ([@bachya] - [#58859]) ([ambient_station docs])
+- Adjust async_step_dhcp signature for strict typing ([@epenet] - [#59751]) ([dhcp docs])
+- Add typing to deCONZ Fan and Light platforms ([@Kane610] - [#59607]) ([deconz docs])
+- Adjust async_step_mqtt signature for strict typing ([@epenet] - [#59761]) ([mqtt docs]) ([gogogate2 docs])
+- Removed deprecated "device_state_attributes" for Amberelectric ([@chemelli74] - [#59672]) ([amberelectric docs])
+- Add topic_template for mqtt.publish ([@davidjb] - [#53743]) ([mqtt docs])
+- Add Hive Alarm Support ([@KJonline] - [#59670]) ([hive docs]) (new-platform)
+- Add tests for goalzero ([@tkdrob] - [#59446]) ([goalzero docs])
+- Fix mqtt undefined error ([@tkdrob] - [#59787]) ([mqtt docs])
+- Add type hints to Siren and Switch deCONZ platforms ([@Kane610] - [#59602]) ([deconz docs])
+- Always fire event for known devices in rfxtrx ([@elupus] - [#58845]) ([rfxtrx docs])
+- Adjust async_step_usb signature for strict typing ([@epenet] - [#59773]) ([modem_callerid docs]) ([zwave_js docs]) ([usb docs])
+- Add WLED firmware upgrade button ([@frenck] - [#59793]) ([wled docs])
+- Add typing to deCONZ Alarm Control Panel and Binary Sensor platforms ([@Kane610] - [#59611]) ([deconz docs])
+- Refactor of Hue integration with full V2 support ([@marcelveldt] - [#58996]) ([hue docs]) (new-integration)
+- Add entity_category to Rituals Entities ([@milanmeu] - [#59756]) ([rituals_perfume_genie docs])
+- Use ZeroconfServiceInfo in enphase-envoy ([@epenet] - [#59738]) ([enphase_envoy docs])
+- Add `configuration_url` to SMA integration ([@rklomp] - [#59638]) ([sma docs])
+- Fix deCONZ climate offset display if offset is zero ([@crabmanX] - [#59803]) ([deconz docs])
+- Bump motioneye-client to v0.3.12 ([@dermotduffy] - [#59811]) ([motioneye docs])
+- Bump pychromecast to 10.1.0 ([@emontnemery] - [#59719]) ([cast docs])
+- Enable basic type checking for cloud ([@emontnemery] - [#55337]) ([cloud docs])
+- Upgrade black to 21.11b0 ([@frenck] - [#59823])
+- Move creation of DeviceInfo outside try statement in SMA ([@rklomp] - [#59821]) ([sma docs])
+- Bump zwave-js-server-python to 0.32.0 ([@raman325] - [#59727]) ([zwave_js docs])
+- Allow selection of statistics state characteristic ([@ThomDietrich] - [#49960]) ([statistics docs])
+- Add more zwave_js binary sensor descriptions ([@MartinHjelmare] - [#59474]) ([zwave_js docs]) (breaking-change)
+- Prefer YAML config mode in Lovelace system_health ([@ludeeus] - [#59835]) ([lovelace docs])
+- Add typing to deCONZ Climate and Cover platforms ([@Kane610] - [#59610]) ([deconz docs])
+- Add typing to deCONZ Number and Sensor platforms ([@Kane610] - [#59604]) ([deconz docs])
+- Add typing to deCONZ Lock and Logbook platforms ([@Kane610] - [#59605]) ([deconz docs])
+- bump motionblinds to 0.5.8 ([@starkillerOG] - [#59834]) ([motion_blinds docs])
+- Add explicit unit mapping for zwave_js meters and sensors ([@raman325] - [#59659]) ([zwave_js docs])
+- Bump frontend to 20211117.0 ([@balloob] - [#59851]) ([frontend docs])
+- Ensure `last_event_sensor_type` in SimpliSafe entities is lowercased ([@bachya] - [#59864]) ([simplisafe docs])
+- Bump Nettigo Air Monitor backend library ([@bieniu] - [#59675]) ([nam docs])
+- Bump pysma to 0.6.9 ([@rklomp] - [#59848]) ([sma docs]) (breaking-change)
+- Add input_number state to prometheus metrics ([@alim4r] - [#56507]) ([prometheus docs])
+- Remove the need for generics in greeneye_monitor.sensor ([@jkeljo] - [#58782]) ([greeneye_monitor docs])
+- Remove -bb option from tox and ci ([@uvjustin] - [#59846])
+- Bump actions/setup-python from 2.2.2 to 2.3.0 (@dependabot - [#59873])
+- Update minio dependency to 5.0.10 ([@tkislan] - [#59878])
+- Bump httpx from 0.19.0 to 0.21.0 ([@uvjustin] - [#59723])
+- Don't mock all of pychromecast in tests ([@emontnemery] - [#59839]) ([cast docs])
+- Upgrade sentry-sdk to 1.5.0 ([@frenck] - [#59842]) ([sentry docs])
+- Sort some entity_registry code ([@emontnemery] - [#59876]) ([config docs])
+- Scsgate logging from warn(deprecated) to warning ([@chemelli74] - [#59862]) ([scsgate docs])
+- Add cover platform to bosch_shc integration ([@tschamm] - [#51443]) ([bosch_shc docs]) (new-platform)
+- Add datetime object as valid StateType ([@frenck] - [#52671]) (breaking-change)
+- Small tweak of TriggerEntity typing ([@emontnemery] - [#59875]) ([template docs])
+- Fix Nissan Leaf default states ([@bwduncan] - [#59866]) ([nissan_leaf docs])
+- Use correct Nissan leaf device_class ([@bwduncan] - [#59889]) ([nissan_leaf docs])
+- Use native datetime value in ESPHome sensors ([@frenck] - [#59896]) ([esphome docs])
+- Use native date value in Twente Milieu sensors ([@frenck] - [#59897]) ([twentemilieu docs])
+- Move Kostal Plenticore writable settings from sensor to select widget or switch ([@slowflyer] - [#56529]) ([kostal_plenticore docs]) (breaking-change) (new-platform)
+- Add speed to units system ([@rianadon] - [#58437]) ([met docs]) ([nws docs]) ([climacell docs]) ([met_eireann docs])
+- Use native date value in Renault sensors ([@epenet] - [#59900]) ([renault docs])
+- Add type hints to SSDP ([@epenet] - [#59840]) ([ssdp docs]) (breaking-change)
+- Ensure powerview setup is retried on 502 error ([@bdraco] - [#59847]) ([hunterdouglas_powerview docs])
+- Add minor version support to storage.Store ([@emontnemery] - [#59882])
+- Fix shorthand native value type in sensor entity component ([@frenck] - [#59908]) ([sensor docs])
+- Add additional bulb ouis to flux_led ([@bdraco] - [#59868]) ([flux_led docs])
+- Use ZeroconfServiceInfo in gogogate2 ([@epenet] - [#59746]) ([gogogate2 docs])
+- Use native datetime value in Forecast Solar sensors ([@frenck] - [#59913]) ([forecast_solar docs])
+- Use native datetime value in Tasmota sensors ([@frenck] - [#59915]) ([tasmota docs])
+- Use native datetime value in Jewish Calendar sensors ([@frenck] - [#59917]) ([jewish_calendar docs])
+- Use native datetime value in Uptime sensors ([@frenck] - [#59916]) ([uptime docs])
+- Use native datetime value in WLED sensors ([@frenck] - [#59907]) ([wled docs])
+- Use native datetime value in RDW sensors ([@frenck] - [#59914])
+- Use native datetime value in OctoPrint sensors ([@frenck] - [#59927]) ([octoprint docs])
+- Yeelight add state check to set_mode service ([@starkillerOG] - [#59884]) ([yeelight docs])
+- Brunt package update with async, data update coordinator and config flow ([@eavanvalkenburg] - [#49714]) ([brunt docs]) (breaking-change)
+- Remove zwave_js cover workaround ([@pail23] - [#59939]) ([zwave_js docs])
+- Add apparent_power for ZHA ElectricalMeasurement ([@N0ciple] - [#59857]) ([zha docs])
+- Bump zeroconf to 0.37.0 ([@bdraco] - [#59932]) ([zeroconf docs])
+- Migrate appropriate Ridwell sensors to use datetime state objects ([@bachya] - [#59944]) ([ridwell docs])
+- Use an assumed switch state until refresh callback is complete ([@natekspencer] - [#59805]) ([litterrobot docs])
+- Mill local access ([@Danielhiversen] - [#59549]) ([mill docs])
+- Use native datetime value in UniFi sensors ([@frenck] - [#59926]) ([unifi docs])
+- Use native datetime value inMobile App sensors ([@frenck] - [#59945]) ([mobile_app docs])
+- Prevent executor overload when starting many homekit instances ([@bdraco] - [#59950]) ([homekit docs])
+- Add energy support to Neurio_Energy ([@deftdawg] - [#54445]) ([neurio_energy docs])
+- Add accumulated precipitation to unit system ([@rianadon] - [#59657])
+- Optimise use of ZeroconfServiceInfo ([@epenet] - [#59966]) ([freebox docs]) ([forked_daapd docs])
+- Use DhcpServiceInfo in guardian tests ([@epenet] - [#59970]) ([guardian docs])
+- Use DhcpServiceInfo in goalzero tests ([@epenet] - [#59969]) ([goalzero docs])
+- Use DhcpServiceInfo in gogogate2 ([@epenet] - [#59968]) ([gogogate2 docs])
+- Use DhcpServiceInfo in broadlink ([@epenet] - [#59961]) ([broadlink docs])
+- Upgrade pyatmo to 6.2.0 ([@frenck] - [#59975]) ([netatmo docs])
+- Use DhcpServiceInfo in flux_led ([@epenet] - [#59967]) ([flux_led docs])
+- Use DhcpServiceInfo in emonitor ([@epenet] - [#59965]) ([emonitor docs])
+- Use DhcpServiceInfo in dhcp tests ([@epenet] - [#59962]) ([dhcp docs])
+- Bump entity_registry store version to 1.2 ([@emontnemery] - [#59912])
+- Use ServiceInfo in hunterdouglas_powerview ([@epenet] - [#59981]) ([hunterdouglas_powerview docs])
+- Use ZeroconfServiceInfo in homekit_controller ([@epenet] - [#59979]) ([homekit_controller docs])
+- Use DhcpServiceInfo in isy994 ([@epenet] - [#59982]) ([isy994 docs])
+- Yeelight disable polling ([@starkillerOG] - [#59885]) ([yeelight docs])
+- Use ZeroconfServiceInfo in lutron_caseta ([@epenet] - [#59988]) ([lutron_caseta docs])
+- Use ZeroconfServiceInfo in lookin ([@epenet] - [#59987]) ([lookin docs])
+- Use ZeroconfServiceInfo in kodi ([@epenet] - [#59984]) ([kodi docs])
+- Use ZeroconfServiceInfo in ipp ([@epenet] - [#59983]) ([ipp docs])
+- Bump devolo_plc_api to 0.6.3 ([@Shutgun] - [#59991]) ([devolo_home_network docs])
+- Fix late comment correcting kwargs should always be Any in deCONZ covers ([@Kane610] - [#59997]) ([deconz docs])
+- Bump Mill library ([@Danielhiversen] - [#59995]) ([mill docs])
+- Correct supported_features and model for Mill ([@Danielhiversen] - [#59996])
+- Migrate appropriate ReCollect Waste sensors to use datetime state objects ([@bachya] - [#59943]) ([recollect_waste docs])
+- Migrate appropriate Ambient PWS sensors to use datetime state objects ([@bachya] - [#59942]) ([ambient_station docs])
+- Add long-term statistics support for devolo Home Control ([@Shutgun] - [#57612]) ([devolo_home_control docs])
+- Add configuration url to august ([@bdraco] - [#60013]) ([august docs])
+- Add id constant for homekit discovery ([@epenet] - [#59986]) ([zeroconf docs]) ([homekit_controller docs]) ([gogogate2 docs])
+- Address late review of kostal plenticore ([@slowflyer] - [#59998]) ([kostal_plenticore docs])
+- Add config and options flow to KNX integration ([@marvin-w] - [#59377]) ([knx docs]) (breaking-change)
+- Add integration filtering and error if core options to helpers.frame.report ([@scop] - [#60009]) ([zeroconf docs])
+- Add harmony configuration url ([@bdraco] - [#60014]) ([harmony docs])
+- Add WLED reverse effect switch ([@frenck] - [#59778]) ([wled docs])
+- Code quality improvements for KNX integration ([@marvin-w] - [#60024]) ([knx docs])
+- Add WLED Live Override controls ([@frenck] - [#59783]) ([wled docs])
+- Add haa vendor extensions ([@jaredhobbs] - [#59750]) ([homekit_controller docs])
+- KNX christmas cleaning #2 - remove old migrations ([@marvin-w] - [#60026]) ([knx docs])
+- Add configuration_url to lutron_caseta ([@bdraco] - [#60015]) ([lutron_caseta docs])
+- Use ZeroconfServiceInfo in hue ([@epenet] - [#59980]) ([hue docs])
+- Add integration_entities template helper ([@marcelveldt] - [#59841])
+- Fix for deviceless entities in Hue integration ([@marcelveldt] - [#59820]) ([hue docs])
+- Add guard for already migrated Hue entity ([@marcelveldt] - [#59930]) ([hue docs])
+- Bump aioshelly to 1.0.5 ([@chemelli74] - [#60058]) ([shelly docs])
+- Explicitly cast the SOMA API response to an integer ([@Djelibeybi] - [#60071]) ([soma docs])
+- Use ZeroconfServiceInfo in rainmachine ([@epenet] - [#60055]) ([rainmachine docs])
+- Bump google-nest-sdm to 0.4.0 ([@allenporter] - [#60068]) ([nest docs])
+- Use ZeroconfServiceInfo in netatmo tests ([@epenet] - [#60048]) ([netatmo docs])
+- Detail reason for ConfigEntryNotReady ([@chemelli74] - [#60062]) ([shelly docs])
+- Use ZeroconfServiceInfo in nam ([@epenet] - [#60044]) ([nam docs])
+- Fix Sensors for HmIP-DLD ([@danielperna84] - [#59804]) ([homematic docs])
+- Improve coordinator for yale_smart_alarm ([@gjohansson-ST] - [#54091]) ([yale_smart_alarm docs])
+- Add support for HEOS groups ([@klada] - [#32568]) ([heos docs])
+- Use ZeroconfServiceInfo in nanoleaf ([@epenet] - [#60045]) ([nanoleaf docs])
+- Use DhcpServiceInfo in roomba ([@epenet] - [#60056]) ([roomba docs])
+- Use ZeroconfServiceInfo in rachio ([@epenet] - [#60054]) ([rachio docs])
+- Use DhcpServiceInfo in powerwall ([@epenet] - [#60051]) ([powerwall docs])
+- Use ZeroconfServiceInfo in octoprint ([@epenet] - [#60049]) ([octoprint docs])
+- Use DhcpServiceInfo in nuki ([@epenet] - [#60046]) ([nuki docs])
+- Use ZeroconfServiceInfo in modern_forms ([@epenet] - [#60043]) ([modern_forms docs])
+- Use ZeroconfServiceInfo in roku ([@epenet] - [#60053]) ([roku docs])
+- Use DhcpServiceInfo in axis ([@epenet] - [#60092]) ([axis docs])
+- Use ZeroconfServiceInfo in nut ([@epenet] - [#60047]) ([nut docs])
+- Use ZeroconfServiceInfo in sonos ([@epenet] - [#60095]) ([sonos docs])
+- Use ZeroconfServiceInfo in smappee ([@epenet] - [#60096]) ([smappee docs])
+- Use ServiceInfo in samsungtv tests ([@epenet] - [#60097]) ([samsungtv docs])
+- Use ZeroconfServiceInfo in system_bridge ([@epenet] - [#60102])
+- Use ZeroconfServiceInfo in shelly ([@epenet] - [#60098]) ([shelly docs])
+- Use DhcpServiceInfo in screenlogic ([@epenet] - [#60103]) ([screenlogic docs])
+- Use DhcpServiceInfo in somfy_mylink ([@epenet] - [#60099]) ([somfy_mylink docs])
+- Use DhcpServiceInfo in squeezebox ([@epenet] - [#60100])
+- Add climate platform to Shelly ([@chemelli74] - [#59712]) ([shelly docs]) (new-platform)
+- Allow atome reauthentication on error ([@jugla] - [#59452]) ([atome docs])
+- Use format_mac for AsusWRT ScannerEntity Mac Address ([@ollo69] - [#54959]) ([asuswrt docs])
+- Create new usb constants ([@epenet] - [#60086]) ([usb docs])
+- Set Sonos availability based on activity and discovery ([@jjlawren] - [#59994]) ([sonos docs])
+- Bump ezviz api 0.2.0.5 ([@RenierM26] - [#60090])
+- Fix bugs causing SimpliSafe entities to incorrectly show `unavailable` ([@bachya] - [#59955]) ([simplisafe docs])
+- Improve some entity registry tests ([@emontnemery] - [#59902]) ([config docs])
+- Use DhcpServiceInfo in verisure tests ([@epenet] - [#60117]) ([verisure docs])
+- Use ZeroconfServiceInfo in volumio ([@epenet] - [#60116]) ([volumio docs])
+- Use ZeroconfServiceInfo in tradfri ([@epenet] - [#60112]) ([tradfri docs])
+- Use DhcpServiceInfo in tplink ([@epenet] - [#60114]) ([tplink docs])
+- Use ZeroconfServiceInfo in tado ([@epenet] - [#60111]) ([tado docs])
+- Cleanup customize API endpoint ([@frenck] - [#59824]) ([config docs]) (breaking-change)
+- Fix logger setting Yale Smart Living ([@gjohansson-ST] - [#60033]) ([yale_smart_alarm docs])
+- Use ZeroconfServiceInfo in plugwise ([@epenet] - [#60050]) ([plugwise docs])
+- Add binary sensor platform to WLED ([@frenck] - [#59798]) ([wled docs]) (new-platform)
+- Update CODEOWNERS for tradfri ([@janiversen] - [#60023]) ([tradfri docs])
+- Add vicare config flow ([@oischinger] - [#56691]) ([vicare docs]) (breaking-change)
+- Use ServiceInfo in yeelight ([@epenet] - [#60127])
+- Use ZeroconfServiceInfo in xiaomi_miio ([@epenet] - [#60132]) ([xiaomi_miio docs])
+- Use ZeroconfServiceInfo in xiaomi_aqara ([@epenet] - [#60131]) ([xiaomi_aqara docs])
+- Use ZeroconfServiceInfo in wled ([@epenet] - [#60130]) ([wled docs])
+- Sensor: Handle local->UTC conversion and reject timezoneless timestamps ([@frenck] - [#59971]) ([sensor docs])
+- Revert "Create new usb constants (#60086)" ([@epenet] - [#60137]) ([usb docs])
+- Add support to entity registry for overriding device_class ([@emontnemery] - [#59985]) ([config docs])
+- Add support for calculating daily and monthly fossil energy consumption ([@emontnemery] - [#59588]) ([recorder docs]) ([energy docs])
+- Change device entry type to an StrEnum ([@scop] - [#59940])
+- Improve startup of unavailable template entities ([@emontnemery] - [#59827])
+- Upgrade aionanoleaf to 0.0.4 ([@milanmeu] - [#60160])
+- Fix missing pending state for SimpliSafe ([@bachya] - [#60151])
+- Fix bug with how SimpliSafe lock's respond to websocket events ([@bachya] - [#60152]) ([simplisafe docs])
+- Bump entity registry version to 1.3 ([@emontnemery] - [#60164])
+- Add button support to HomeKit ([@frenck] - [#60165]) ([homekit docs])
+- Add sensors to venstar integration ([@garbled1] - [#58851]) ([venstar docs]) (new-platform)
+- Add Button platform to Nanoleaf ([@milanmeu] - [#60169]) ([nanoleaf docs])
+- Add support for adjusting flux_led effects speed ([@bdraco] - [#59679]) ([flux_led docs])
+- Include model name in flux_led discovery when available ([@bdraco] - [#60105]) ([flux_led docs])
+- Bump frontend to 20211123.0 ([@balloob] - [#60184]) ([frontend docs])
+- Alter RainMachine to enable/disable program/zones via separate switches ([@bachya] - [#59617]) ([rainmachine docs]) (breaking-change)
+- Remove legacy executor usage from HomeKit tests ([@bdraco] - [#60180]) ([homekit docs])
+- Add button support to Google Assistant ([@frenck] - [#60158]) ([google_assistant docs])
+- Use dataclass for MqttServiceInfo ([@epenet] - [#60191]) ([mqtt docs]) (breaking-change)
+- Bump actions/cache from 2.1.6 to 2.1.7 (@dependabot - [#60189])
+- Remove via_device links when a device is removed ([@emontnemery] - [#60153])
+- Use DeviceEntryType in non-typechecked code too ([@scop] - [#58646])
+- Add GitHub Actions concurrency limits ([@frenck] - [#60194])
+- GitHub Actions: Don't run test suite if basic linters fails ([@frenck] - [#60197])
+- Fix missing mocking ([@chemelli74] - [#60181]) ([samsungtv docs])
+- Use dataclass for DhcpServiceInfo ([@epenet] - [#60136]) ([dhcp docs]) (breaking-change)
+- Add Yamaha MusicCast zone specific devices ([@micha91] - [#58285]) ([yamaha_musiccast docs]) (breaking-change)
+- Update ZeroconfServiceInfo in tests (a-f) ([@epenet] - [#60212])
+- Adjust CI to split tests into 6 groups ([@frenck] - [#60198])
+- Bump pychromecast to 10.1.1 ([@emontnemery] - [#60214]) ([cast docs])
+- Update ZeroconfServiceInfo in tests (g-m) ([@epenet] - [#60217]) ([lutron_caseta docs]) ([hue docs]) ([homekit_controller docs]) ([gogogate2 docs]) ([hunterdouglas_powerview docs]) ([modern_forms docs])
+- Use BaseServiceInfo inheritance in MqttServiceInfo ([@epenet] - [#60207]) ([mqtt docs])
+- Bump zwave-js-server-python to 0.33.0 ([@raman325] - [#60213]) ([zwave_js docs])
+- Use native datetime value in Shelly sensors ([@mib1185] - [#60179]) ([shelly docs])
+- Add button support to Alexa ([@frenck] - [#60163]) ([alexa docs])
+- Update ZeroconfServiceInfo in tests (n-t) ([@epenet] - [#60219])
+- Use dataclass for UsbServiceInfo ([@epenet] - [#60140]) ([usb docs]) (breaking-change)
+- Update ZeroconfServiceInfo in tests (t-z) ([@epenet] - [#60221]) ([tradfri docs]) ([xiaomi_aqara docs]) ([yeelight docs]) ([xiaomi_miio docs]) ([volumio docs]) ([wled docs])
+- Ensure homekit setup messages run in event loop ([@bdraco] - [#60226]) ([homekit docs])
+- Split up yeelight code into multiple files ([@bdraco] - [#59990]) ([yeelight docs])
+- Fully migrate to attribute shorthand in velbus ([@Cereal2nd] - [#59797]) ([velbus docs])
+- Use native datetime value in Synology DSM sensors ([@mib1185] - [#60176]) ([synology_dsm docs])
+- Use native datetime value in AVM Fritz!Tools sensors ([@mib1185] - [#60233]) ([fritz docs])
+- Remove unneeded pylint disables ([@scop] - [#60235]) ([knx docs]) ([environment_canada docs])
+- Add daikin sensor state class ([@werkstrom] - [#60145]) ([daikin docs])
+- Use native datetime value in Systemmonitor sensors ([@mib1185] - [#60236]) ([systemmonitor docs])
+- Avoid errors when AirNow API does not return all expected pollutants ([@asymworks] - [#60232]) ([airnow docs])
+- Consistent capitalization for Synology DSM entity names ([@spacegaier] - [#60237]) ([synology_dsm docs])
+- Use MqttServiceInfo in tasmota ([@epenet] - [#60113]) ([tasmota docs])
+- Use native datetime value in MQTT sensors ([@frenck] - [#59923]) ([mqtt docs])
+- Limit homekit sources to prevent exceeding 100 limit ([@bdraco] - [#59743]) ([homekit docs])
+- Bump librouteros version to 3.2.0 ([@slackr31337] - [#60066]) ([mikrotik docs])
+- Bumped version of wirelesstagpy to 0.8.0 ([@sergeymaysak] - [#60125]) ([wirelesstag docs])
+- Bump device registry version to 1.2 ([@emontnemery] - [#60199])
+- Reduce flux_led light turn on complexity ([@bdraco] - [#60139]) ([flux_led docs])
+- Enable strict typing - wallbox ([@cdce8p] - [#59301]) ([wallbox docs])
+- Add device registry entry for MetOffice ([@avee87] - [#58683]) ([metoffice docs])
+- Enable basic type checking for awair ([@emontnemery] - [#55046]) ([awair docs])
+- Use native datetime value in IPP sensors ([@mib1185] - [#60234]) ([ipp docs])
+- Use dataclass for ZeroconfServiceInfo ([@epenet] - [#60206]) (breaking-change)
+- Add pi_hole entity "available_updates" ([@andreasbrett] - [#56181]) ([pi_hole docs])
+- Use attribute shortcuts in Samsung TV integration ([@mib1185] - [#60171]) ([samsungtv docs])
+- Use pychromecast CastInfo type in cast integration ([@emontnemery] - [#60205]) ([cast docs])
+- Add LED brightness for Xiaomi Miio ZA5 fan ([@bieniu] - [#60134]) ([xiaomi_miio docs])
+- Use native datetime value in NAM uptime sensor ([@bieniu] - [#60241]) ([nam docs])
+- Add hjjcy device category to Tuya integration ([@skynetua] - [#60224]) ([tuya docs])
+- Run partial test suite in CI if core untouched ([@frenck] - [#60230])
+- Make partial test suite not waiting for linters ([@frenck] - [#60254])
+- Add slow tests list to VScode task code coverage ([@chemelli74] - [#60183])
+- Add partial codecov flag to CI to trigger carryforward coverage ([@frenck] - [#60256])
+- Rewrite Fronius integration ([@farmio] - [#59686]) ([fronius docs]) (breaking-change)
+- Temporary disable partial runs in CI ([@frenck] - [#60258])
+- Add configuration entities to Tuya Vacuum (sd) ([@cvroque] - [#59936]) ([tuya docs])
+- Fix socket usage in Aprs test ([@chemelli74] - [#60253]) ([aprs docs])
+- Decouple BroadlinkDevice.available property ([@felipediel] - [#58853]) ([broadlink docs])
+- Add stable ID to entity registry entries ([@emontnemery] - [#60218])
+- Use UsbServiceInfo in modem_callerid ([@epenet] - [#60268]) ([modem_callerid docs])
+- Update base image 2021.11.0 ([@pvizeli] - [#60227])
+- Change output template filters `timestamp_local` and `timestamp_utc` to isoformat ([@jbouwh] - [#60269]) (breaking-change)
+- Add UNIX timestamp detection to `as_datetime` template filter ([@jbouwh] - [#60126])
+- Revert "Add type hints to SSDP (#59840)" ([@epenet] - [#60270]) ([ssdp docs])
+- Correct entity category on UPS type in NUT ([@frenck] - [#60277])
+- Add comments to entity category constants ([@emontnemery] - [#60276])
+- Disable less popular Fronius entities by default ([@farmio] - [#60264]) ([fronius docs])
+- Fix init slow tests for SamsungTV ([@chemelli74] - [#60245]) ([samsungtv docs])
+- Use configured speed ranges for HomeSeer FC200+ fan controllers in zwave_js ([@mkowalchuk] - [#59697]) ([zwave_js docs]) (breaking-change)
+- Fix Konnected multiple discovery of panels ([@h2zero] - [#59953]) ([konnected docs])
+- CI: Combine smaller linters into a single job ([@frenck] - [#60279])
+- Add additional statistics characteristics, remove attributes ([@ThomDietrich] - [#59867]) ([statistics docs])
+- Update ssdp matching_domain constant ([@epenet] - [#60283]) ([ssdp docs]) (breaking-change)
+- Use UsbServiceInfo and ZeroconfServiceInfo in zha ([@epenet] - [#60266]) ([zha docs])
+- Use UsbServiceInfo in zwave-js ([@epenet] - [#60267]) ([zwave_js docs])
+- Use UTC timestamp in uptime sensor ([@frenck] - [#60240]) ([uptime docs])
+- Add bytes support for bitwise template operations ([@jbouwh] - [#60211])
+- Partial CI workflows: take 2 ([@frenck] - [#60294])
+- CI: Fix full suite on core file changes ([@frenck] - [#60299])
+- CI: Fix test groups when running full CI suite ([@frenck] - [#60300])
+- Use native datetime value in OpenWeatherMap sensors ([@frenck] - [#60303])
+- Add support for adjusting effect brightness in flux_led ([@bdraco] - [#60247]) ([flux_led docs])
+- Refactor zeroconf matching to be more DRY ([@bdraco] - [#60293]) ([zeroconf docs])
+- Allow MQTT selects to have a single or no options ([@emontnemery] - [#60281]) ([mqtt docs])
+- Bump openwrt-luci-rpc from 1.1.8 to 1.1.11 ([@FaserF] - [#60124]) ([luci docs])
+- Add TOLO Sauna (tolo) integration ([@MatthiasLohr] - [#55619]) ([tolosauna docs]) (new-integration)
+- Add button platform to Tuya ([@frenck] - [#60304]) ([tuya docs])
+- Add tolo light platform ([@MatthiasLohr] - [#60305]) ([tolo docs]) (new-platform)
+- Support numeric sensors with no unit_of_measurement in prometheus ([@alim4r] - [#60157]) ([prometheus docs])
+- Make device entry disabled by an enum ([@scop] - [#60239]) ([config docs])
+- Move sensor stuff to the sensor platform in Brother integration ([@bieniu] - [#60306]) ([brother docs])
+- More tests optimizations for SamsungTV ([@chemelli74] - [#60297]) ([samsungtv docs])
+- Add wirelesstag ambient temperature sensor for Outdoor Probe ([@sergeymaysak] - [#60243]) ([wirelesstag docs])
+- Fix BMW ConnectedDrive, update to My BMW API ([@rikroe] - [#59881]) ([bmw_connected_drive docs]) (breaking-change)
+- fix configuration url ([@farmio] - [#60311]) ([fronius docs])
+- Use async_validate_actions_config helper in scripts ([@emontnemery] - [#60287]) ([script docs])
+- Use DeviceEntryType in Metoffice ([@avee87] - [#60252]) ([metoffice docs])
+- Adjust async_step_discovery methods for BaseServiceInfo ([@epenet] - [#60285])
+- Use random effect from flux_led library ([@bdraco] - [#60312]) ([flux_led docs])
+- Introduce SsdpServiceInfo for ssdp discovery ([@epenet] - [#60284]) ([ssdp docs]) ([arcam_fmj docs])
+- Replace returned STATE_UNKNOWN by None ([@ThomDietrich] - [#60324]) ([statistics docs])
+- Fix image build issues ([@pvizeli] - [#60319])
+- Add tolo sensor platform ([@MatthiasLohr] - [#60308]) ([tolo docs]) (new-platform)
+- Fix exception in august if bridge is missing ([@bdraco] - [#60316]) ([august docs])
+- Add "nextchange" sensors to AVM FRITZ!Smarthome devices ([@refinedcranberry] - [#58274]) ([fritzbox docs])
+- Update flux_led to use async_set_brightness in the lib ([@bdraco] - [#60315]) ([flux_led docs])
+- CI: fix linters on partial runs with multiple components ([@epenet] - [#60331])
+- Use SsdpServiceInfo for ssdp tests (part 1) ([@epenet] - [#60320])
+- Add tolo select platform ([@MatthiasLohr] - [#60326]) ([tolo docs])
+- Adjust/Fix CI coverage reporting ([@frenck] - [#60329])
+- Remove unknown attribute instead of marking STATE_UNKNOWN ([@ThomDietrich] - [#60325]) ([statistics docs])
+- Only accept valid hvac actions sent via mqtt ([@Grennith] - [#59919]) ([mqtt docs])
+- Add missing MQTT lock.open ([@Hypnos3] - [#60022]) ([mqtt docs])
+- Add shorthand attribute support to Camera platform ([@frenck] - [#59837]) ([camera docs]) ([demo docs])
+- Add Notifications for Android TV icon support ([@redahb] - [#60159]) ([nfandroidtv docs]) (breaking-change)
+- Use SsdpServiceInfo for ssdp tests (part 2) ([@epenet] - [#60322]) ([axis docs]) ([octoprint docs]) ([yeelight docs]) ([nanoleaf docs]) ([ssdp docs])
+- CI: Only carry forward full-suite test coverage ([@frenck] - [#60344])
+- Fix slow yeelight discovery test ([@bdraco] - [#60346]) ([yeelight docs])
+- SSDP attributes can be present but empty ([@epenet] - [#60340]) ([upnp docs]) ([hue docs]) ([wilight docs])
+- Use SsdpServiceInfo for ssdp tests (part 3) ([@epenet] - [#60334])
+- Fix overridden state methods - camera ([@cdce8p] - [#60352]) ([homekit_controller docs]) ([push docs])
+- Fix slow config_flow test in AVM Fritz!SmartHome ([@mib1185] - [#60348]) ([fritzbox docs])
+- Add Balboa Spa integration ([@garbled1] - [#59234]) ([balboa docs]) (new-integration)
+- Fix slow config_flow test in bond ([@mib1185] - [#60355]) ([bond docs])
+- CI: Move bandit into the other linters job ([@frenck] - [#60357])
+- Add support for flux_led 0xA2 devices ([@bdraco] - [#60361]) ([flux_led docs])
+- Add commands to Tuya Vacuum (sd) ([@cvroque] - [#60351]) ([tuya docs])
+- CI: GitHub Annotate slow tests in partial test runs ([@frenck] - [#60359])
+- CI: Add partial run support to pyupgrade ([@frenck] - [#60362])
+- Add tolo button platform ([@MatthiasLohr] - [#60345]) ([tolo docs])
+- Import Callable from collections.abc ([@cdce8p] - [#60354])
+- Fix slow config_flow test in Dune HD ([@mib1185] - [#60366]) ([dunehd docs])
+- Add tolo binary_sensor platform ([@MatthiasLohr] - [#60365]) ([tolo docs]) (new-platform)
+- Add configuration_url to AdGuard Home integration ([@mdawsonuk] - [#60356]) ([adguard docs])
+- Fix slow config_flow test in squeezebox ([@mib1185] - [#60373]) ([squeezebox docs])
+- Fix slow config_flow test in Twinkly ([@mib1185] - [#60374]) ([twinkly docs])
+- Add configuration_url to Waze Travel Time ([@mdawsonuk] - [#60376]) ([waze_travel_time docs])
+- Fix slow config_flow test in upnp ([@mib1185] - [#60377]) ([upnp docs])
+- Added configuration_url for Met Eireann integration ([@mdawsonuk] - [#60380]) ([met_eireann docs])
+- Upgrade pylint to 2.12.1 ([@cdce8p] - [#60375])
+- Use SsdpServiceInfo for SOURCE_SSDP tests (part 4) ([@epenet] - [#60339]) ([upnp docs]) ([hue docs]) ([konnected docs]) ([denonavr docs]) ([ssdp docs]) ([wilight docs])
+- Fix slow config_flow test in devolo Home Network ([@mib1185] - [#60364]) ([devolo_home_network docs])
+- Added configuration_url to Met.no integration ([@mdawsonuk] - [#60378]) ([met docs])
+- Update rokuecp to 0.8.4 ([@ctalkington] - [#57259]) ([roku docs])
+- Add configuration_url to Nanoleaf integration ([@mdawsonuk] - [#60372]) ([nanoleaf docs])
+- Bump sqlalchemy to 1.4.27 ([@bdraco] - [#60383]) ([recorder docs]) ([sql docs])
+- Fix flux_led effect brightness in A2,A3 models ([@bdraco] - [#60386]) ([flux_led docs])
+- Bump python-smarttub dependency to 0.0.28 ([@mdz] - [#60391]) ([smarttub docs])
+- Remove myself as codeowner from Hue ([@frenck] - [#60395]) ([hue docs])
+- Remove unused OrderedEnum ([@emontnemery] - [#60392])
+- Add configuration_url to AccuWeather integration ([@mdawsonuk] - [#60381]) ([accuweather docs])
+- Bump awesomeversion from 21.10.1 to 21.11.0 ([@ludeeus] - [#60401])
+- Correct validation of conditions in scripts and automations ([@emontnemery] - [#60403])
+- Correct validation of repeats in scripts and automations ([@emontnemery] - [#60318])
+- Add button to trigger ota firmware update for Shelly devices ([@mib1185] - [#58757]) ([shelly docs])
+- Rename various usages of UniFi to better identify only UniFi Network ([@AngellusMortis] - [#59568]) ([unifi docs])
+- Use mysensors child description as entity name ([@bcelary] - [#60420]) ([mysensors docs])
+- Bump acmeda integration aiopulse dependency version to 0.4.3 ([@atmurray] - [#60434]) ([acmeda docs])
+- Bump crownstone-sse to 2.0.3 ([@RicArch97] - [#60428]) ([crownstone docs])
+- Remove unused constant in Tibber ([@Danielhiversen] - [#60439]) ([tibber docs])
+- Logging issue workaround for fritzconnection library ([@chemelli74] - [#60448]) ([fritz docs]) ([fritzbox_callmonitor docs])
+- Bump flux_led to 0.25.0 ([@bdraco] - [#60460]) ([flux_led docs])
+- Bump flux_led to 0.25.1 ([@bdraco] - [#60463]) ([flux_led docs])
+- Update PyTurboJPEG to v1.6.3 ([@skandalfo] - [#60400]) ([camera docs])
+- don't issue requests for non-existing devices ([@farmio] - [#60416]) ([fronius docs])
+- Bump up ZHA dependencies ([@Adminiuga] - [#60474]) ([zha docs])
+- Fix flux_led discovery missing responses ([@bdraco] - [#60464]) ([flux_led docs])
+- Update buienradar library to 1.0.5 ([@mjj4791] - [#60473]) ([buienradar docs])
+- Fix Shelly dual mode bulb mode switch ([@g-kiss] - [#60471]) ([shelly docs])
+- Remove store user as auth result ([@balloob] - [#60468])
+- Update pymelcloud to 2.5.5 ([@vilppuvuorinen] - [#60484]) ([melcloud docs])
+- Remove optional validation when creating conditions ([@emontnemery] - [#60481])
+- Upgrade restrictedpython to 5.2 ([@frenck] - [#60493]) ([python_script docs])
+- Fix climacell hourly and nowcast forecasts ([@raman325] - [#60454]) ([climacell docs])
+- Address late review of tolo integration ([@MatthiasLohr] - [#60453]) ([tolo docs])
+- Bump wirelesstagpy to 0.8.1 ([@sergeymaysak] - [#60472]) ([wirelesstag docs])
+- Add Tesla Wall Connector integration ([@einarhauks] - [#60000]) ([tesla_wall_connector docs]) (new-integration)
+- Add Yamaha MusicCast number entities ([@micha91] - [#60093]) ([yamaha_musiccast docs])
+- Fix docker prefix for meta image ([@pvizeli] - [#60495])
+- Fix DeprecationWarning for asyncio.wait() in mysensors ([@mib1185] - [#60512]) ([mysensors docs])
+- Fix & update for latest Shelly Valve firmware ([@chemelli74] - [#60458])
+- Set internal quality_scale for the safe_mode integration ([@ludeeus] - [#60526]) ([safe_mode docs])
+- Bump flux_led to 0.25.2 ([@bdraco] - [#60519]) ([flux_led docs])
+- Replace Tibber STATE_CLASS_TOTAL_INCREASING with STATE_CLASS_TOTAL for not strictly increasing sensors ([@Danielhiversen] - [#60501]) ([tibber docs])
+- Add zwave_js speed configurations for GE/Jasco 12730 and 14287 fans ([@mkowalchuk] - [#60517]) ([zwave_js docs]) (breaking-change)
+- Add configuration_url to bond ([@bdraco] - [#60523]) ([bond docs])
+- 100% test coverage for Fronius integration ([@farmio] - [#60515]) ([fronius docs])
+- Add removal versions and backcompat constants for device registry enum changes ([@scop] - [#60421])
+- Esphome/button ([@jesserockz] - [#60522]) ([esphome docs])
+- Redact ?auth= url parameters in stream sources when logged ([@allenporter] - [#60438]) ([stream docs])
+- Fix missing name for ESPHome reauth dialog ([@jesserockz] - [#60508]) ([esphome docs])
+- Remove obsolete light attributes from WLED ([@frenck] - [#60535]) ([wled docs]) (breaking-change)
+- Upgrade black to 21.11b1 ([@frenck] - [#60532])
+- Upgrade coverage to 6.2.0 ([@frenck] - [#60530])
+- Add 'trigger' support for MQTT Alarm Control Panel ([@XaF] - [#60525]) ([mqtt docs])
+- Upgrade wled to 0.10.1 ([@frenck] - [#60542]) ([wled docs])
+- Add native unit types for weather entities ([@rianadon] - [#59533]) ([weather docs])
+- Remove custom WLED services ([@frenck] - [#60537]) ([wled docs]) (breaking-change)
+- Move Sonos bass & treble controls to number entities ([@jjlawren] - [#60498]) ([sonos docs]) (breaking-change)
+- Add get method to DhcpServiceInfo ([@epenet] - [#60527]) ([dhcp docs])
+- Add new name handling for Shelly RPC devices ([@chemelli74] - [#60539]) ([shelly docs])
+- Add wiffi device configuration url support ([@mampfes] - [#60367]) ([wiffi docs])
+- Remove configuration.yaml support for the velbus component ([@Cereal2nd] - [#60411]) ([velbus docs]) (breaking-change)
+- Fix brightness support for Tuya dimmers that use the Light ("dj") category ([@alexanv1] - [#60385]) ([tuya docs])
+- Add Tuya Fingerbot device support ([@PlusPlus-ua] - [#59880]) ([tuya docs])
+- Use find_coordinates in here_travel_time ([@eifinger] - [#59938]) ([here_travel_time docs])
+- Bump aiopvpc to 2.2.4 to fix price sensor attributes for pvpc_hourly_pricing ([@azogue] - [#60012]) ([pvpc_hourly_pricing docs])
+- Add sensors to Tesla Wall Connector Integration ([@einarhauks] - [#60507]) ([tesla_wall_connector docs]) (new-platform)
+- Use dataclass for SsdpServiceInfo ([@epenet] - [#59931]) ([ssdp docs]) (breaking-change)
+- Add tolo fan platform ([@MatthiasLohr] - [#60502]) ([tolo docs]) (new-platform)
+- Add get method to ZeroconfServiceInfo ([@epenet] - [#60528]) ([zeroconf docs])
+- Use ZeroconfServiceInfo in vizio ([@epenet] - [#60115]) ([vizio docs])
+- Correct recorder migration._add_columns for PostgreSQL ([@emontnemery] - [#60547]) ([recorder docs])
+- Don't wait for Google Assistant service calls when reporting state ([@emontnemery] - [#59832]) ([google_assistant docs])
+- Add reboot button to Shelly devices ([@mib1185] - [#60417]) ([shelly docs])
+- Use correct value for current temperature for AVM Fritz!Smarthome thermostat devices ([@mib1185] - [#60510]) ([fritzbox docs])
+- Add `button` platform to NAM integration ([@bieniu] - [#60410]) ([nam docs])
+- Add local only users ([@balloob] - [#57598]) ([config docs]) ([auth docs])
+- Fix ingress for non admin ([@ludeeus] - [#60120]) ([hassio docs])
+- Add device class support for button entity ([@frenck] - [#60560]) ([button docs])
+- Fix Flo returning stale data ([@dmulcahey] - [#60491]) ([flo docs])
+- Bump frontend to 20211129.0 ([@balloob] - [#60564]) ([frontend docs])
+- Avoid probing configured ipp devices at discovery ([@bdraco] - [#60551]) ([ipp docs])
+- Add an available property on Stream ([@allenporter] - [#60429]) ([stream docs])
+- Use dataclass properties in arcam_fmj discovery ([@epenet] - [#60562]) ([arcam_fmj docs])
+- Split StreamState class out of SegmentBuffer ([@allenporter] - [#60423]) ([stream docs])
+- Update `nest` config flow to dramatically simplify end user setup with automated pub/sub subscription creation ([@allenporter] - [#59260]) ([nest docs])
+- Add an entity service for saving nest event related snapshots ([@allenporter] - [#58369]) ([camera docs]) ([nest docs])
+- Use dataclass properties in rainmachine discovery ([@epenet] - [#60578]) ([rainmachine docs])
+- Use dataclass properties in system_bridge discovery ([@epenet] - [#60576]) ([system_bridge docs])
+- Use dataclass properties in volumio discovery ([@epenet] - [#60575]) ([volumio docs])
+- Use dataclass properties in apple_tv discovery ([@epenet] - [#60557]) ([apple_tv docs])
+- Add configuration_url to integration ([@klaasnicolaas] - [#60565]) ([p1_monitor docs])
+- Esphome button device class ([@jesserockz] - [#60569]) ([esphome docs])
+- Bump actions/setup-python from 2.3.0 to 2.3.1 (@dependabot - [#60572])
+- Use dataclass properties in octoprint discovery ([@epenet] - [#60579]) ([octoprint docs])
+- Use dataclass properties in wled discovery ([@epenet] - [#60573]) ([wled docs])
+- Use dataclass properties in roku discovery ([@epenet] - [#60577]) ([roku docs])
+- Use dataclass properties in elgato discovery ([@epenet] - [#60588]) ([elgato docs])
+- Use dataclass properties in nam discovery ([@epenet] - [#60596]) ([nam docs])
+- Ensure ESPHome device classes are valid ([@frenck] - [#60594])
+- Use dataclass properties in brother discovery ([@epenet] - [#60601]) ([brother docs])
+- Use dataclass properties in devolo_home_control discovery ([@epenet] - [#60600]) ([devolo_home_control docs])
+- Use dataclass properties in guardian discovery ([@epenet] - [#60586]) ([guardian docs])
+- Use dataclass properties in lookin discovery ([@epenet] - [#60585]) ([lookin docs])
+- Use dataclass properties in nut discovery ([@epenet] - [#60603]) ([nut docs])
+- Use dataclass properties in modern_forms discovery ([@epenet] - [#60584]) ([modern_forms docs])
+- Use dataclass properties in forked_daapd discovery ([@epenet] - [#60587]) ([forked_daapd docs])
+- Use dataclass properties in daikin discovery ([@epenet] - [#60589]) ([daikin docs])
+- Use dataclass properties in bosch_shc discovery ([@epenet] - [#60559]) ([bosch_shc docs])
+- Use dataclass properties in bond discovery ([@epenet] - [#60590]) ([bond docs])
+- Use dataclass properties in shelly discovery ([@epenet] - [#60593]) ([shelly docs])
+- Use dataclass properties in smappee discovery ([@epenet] - [#60602]) ([smappee docs])
+- Use dataclass properties in esphome discovery ([@epenet] - [#60606]) ([esphome docs])
+- Use dataclass properties in devolo_home_network discovery ([@epenet] - [#60608]) ([devolo_home_network docs])
+- Use dataclass properties in tradfri discovery ([@epenet] - [#60592]) ([tradfri docs])
+- Add support for Kogan smart blinds to Tuya ([@Chybby] - [#60552]) ([tuya docs])
+- Fix StrEnum backport return type issue ([@frenck] - [#60610])
+- Migrate button device classes to StrEnum ([@frenck] - [#60611]) ([esphome docs]) ([button docs])
+- Add button device classes to WLED ([@frenck] - [#60613]) ([wled docs])
+- Migrate number mode to StrEnum ([@frenck] - [#60614]) ([knx docs]) ([demo docs]) ([flux_led docs]) ([number docs]) (breaking-change)
+- Add mqtt sensor configurable state encoding for sensor and binary_sensor platform ([@jbouwh] - [#60447]) ([mqtt docs])
+- Allow template int filter to render from a bytes based integer ([@jbouwh] - [#60452])
+- Fix device class shorthand attr in ButtonEntity ([@frenck] - [#60622]) ([button docs])
+- Support unit of measurement in ESPHome numbers ([@jesserockz] - [#60591]) ([esphome docs])
+- Add button device classes to HomeKit Controller ([@frenck] - [#60620]) ([homekit_controller docs])
+- Add button device classes to Shelly ([@frenck] - [#60625]) ([shelly docs])
+- Fix test naming switch ([@jbouwh] - [#60630]) ([mqtt docs])
+- Use dataclass properties in enphase_envoy discovery ([@epenet] - [#60627]) ([enphase_envoy docs])
+- Use dataclass properties in plugwise discovery ([@epenet] - [#60631]) ([plugwise docs])
+- Use dataclass properties in homekit_controller discovery ([@epenet] - [#60626]) ([homekit_controller docs])
+- Add button device classes to MQTT ([@frenck] - [#60628]) ([mqtt docs])
+- Remove homekit_controller's air quality entity in favor of separate sensor entities ([@Jc2k] - [#60480]) ([homekit_controller docs]) (breaking-change)
+- Revert "Add an entity service for saving nest event related snapshots" ([@allenporter] - [#60632]) ([nest docs])
+- Use dataclass properties in hunterdouglas discovery ([@epenet] - [#60605]) ([hunterdouglas_powerview docs])
+- Use dataclass properties in kodi discovery ([@epenet] - [#60634]) ([kodi docs])
+- Add return type annotation to StrEnum ([@cdce8p] - [#60624])
+- Use dataclass properties in freebox discovery ([@epenet] - [#60635]) ([freebox docs])
+- Use dataclass properties in xiaomi_aqara discovery ([@epenet] - [#60636]) ([xiaomi_aqara docs])
+- Use dataclass properties in hue discovery ([@epenet] - [#60598]) ([hue docs])
+- Correct Temper USB sensor IoT class ([@davet2001] - [#60619]) ([temper docs])
+- Use dataclass properties in tado discovery ([@epenet] - [#60641]) ([tado docs])
+- Use dataclass properties in rachio discovery ([@epenet] - [#60637]) ([rachio docs])
+- Use dataclass properties in doorbird discovery ([@epenet] - [#60639]) ([doorbird docs])
+- Binary sensor platform for the Balboa Spa ([@garbled1] - [#60409]) ([balboa docs]) (new-platform)
+- Use dataclass properties in nanoleaf discovery ([@epenet] - [#60580]) ([nanoleaf docs])
+- Use dataclass properties in sonos discovery ([@epenet] - [#60633]) ([sonos docs])
+- Use dataclass properties in gogogate2 discovery ([@epenet] - [#60607]) ([gogogate2 docs])
+- Change unnecessary Sonos coroutine to callback ([@jjlawren] - [#60643]) ([sonos docs])
+- Hue handle device update ([@marcelveldt] - [#60612]) ([hue docs])
+- Remove running binary_sensor for HAOS ([@ludeeus] - [#60597]) ([hassio docs]) (breaking-change)
+- Config flow for trafikverket_weatherstation ([@gjohansson-ST] - [#60078]) ([trafikverket_weatherstation docs]) (breaking-change)
+- Add mode to ESPHome numbers ([@jesserockz] - [#60653]) ([esphome docs])
+- Fix fields being None for discord notify service ([@jesserockz] - [#59736]) ([discord docs])
+- Use dataclass properties in axis discovery ([@epenet] - [#60558]) ([axis docs])
+- Mark calendar as a base platform ([@ludeeus] - [#60660])
+- Fix ADR 0003 issues in trafikverket_weatherstation ([@gjohansson-ST] - [#60664]) ([trafikverket_weatherstation docs])
+- Migrate cover device classes to StrEnum ([@frenck] - [#60655]) ([cover docs]) ([demo docs]) (breaking-change)
+- Migrate switch device classes to StrEnum ([@frenck] - [#60658]) ([switch docs]) ([demo docs]) (breaking-change)
+- Upgrade aionanoleaf to 0.1.1 ([@milanmeu] - [#60670]) ([nanoleaf docs])
+- Fix yale_smart_alarm strings ([@gjohansson-ST] - [#60657]) ([yale_smart_alarm docs])
+- Add button device classes to NAM ([@frenck] - [#60621]) ([nam docs])
+- Migrate media player device classes to StrEnum ([@frenck] - [#60656]) ([media_player docs]) (breaking-change)
+- Update IZone to new version of library ([@Swamp-Ig] - [#60676]) ([izone docs])
+- Bump xiaomi_miio dependency ([@rytilahti] - [#60650]) ([xiaomi_miio docs])
+- Migrate sensor device classes to StrEnum ([@frenck] - [#60654]) ([demo docs]) ([sensor docs]) (breaking-change)
+- Migrate binary sensor device classes to StrEnum ([@frenck] - [#60651]) ([demo docs]) ([binary_sensor docs]) ([upcloud docs]) ([sia docs]) (breaking-change)
+- Fix key reference placeholder ([@LEJOUI] - [#60681]) ([nest docs])
+- Upgrade pre-commit to 2.16.0 ([@frenck] - [#60680])
+- Update screenlogic use asyncio API ([@dieselrabbit] - [#60466]) ([screenlogic docs])
+- Use dataclass properties in yeelight discovery ([@epenet] - [#60640]) ([yeelight docs])
+- Use device class enums in WLED ([@frenck] - [#60684]) ([wled docs])
+- Use device class enums in Verisure ([@frenck] - [#60685]) ([verisure docs])
+- Use device class enums in TwenteMilieu ([@frenck] - [#60686]) ([twentemilieu docs])
+- Use device class enum in UptimeRobot ([@ludeeus] - [#60688]) ([uptimerobot docs])
+- Use dataclass properties in emonitor discovery ([@epenet] - [#60695]) ([emonitor docs])
+- Use device class enum in Supervisor ([@ludeeus] - [#60687]) ([hassio docs])
+- Use device class enum in Mill ([@Danielhiversen] - [#60699]) ([mill docs])
+- Use device class enum in Tractive ([@Danielhiversen] - [#60700]) ([tractive docs])
+- Use device class enum in Surepetcare ([@Danielhiversen] - [#60701]) ([surepetcare docs])
+- Use device class enum in Open Garage ([@Danielhiversen] - [#60702]) ([opengarage docs])
+- Use device class enum in Airthings ([@Danielhiversen] - [#60704]) ([airthings docs])
+- Use device class enum in Tibber ([@Danielhiversen] - [#60705]) ([tibber docs])
+- Use dataclass properties in goalzero discovery ([@epenet] - [#60703]) ([goalzero docs])
+- Use dataclass properties in fritzbox discovery ([@epenet] - [#60698]) ([fritzbox docs])
+- Use dataclass properties in directv discovery ([@epenet] - [#60692]) ([directv docs])
+- Use dataclass properties in guardian discovery ([@epenet] - [#60710]) ([guardian docs])
+- Use dataclass properties in heos discovery ([@epenet] - [#60712]) ([heos docs])
+- Add SmartStart provisioning support to zwave_js WS API ([@raman325] - [#59037]) ([zwave_js docs])
+- Migrate humidifier device classes to StrEnum ([@frenck] - [#60706]) ([demo docs]) ([humidifier docs]) (breaking-change)
+- Migrate sensor state classes to StrEnum ([@frenck] - [#60709]) ([demo docs]) ([sensor docs]) (breaking-change)
+- Drop base ATTR constants in zeroconf ([@epenet] - [#60561]) ([zeroconf docs])
+- Use dataclass properties in konnected discovery ([@epenet] - [#60717]) ([konnected docs])
+- Fix point device identifiers ([@fredrike] - [#60719]) ([point docs])
+- Guard config flow coverage in Codecov ([@frenck] - [#60718])
+- Add tuya zndb device category ([@skynetua] - [#59477]) ([tuya docs])
+- Extend Docker build caching opportunities ([@agners] - [#60661])
+- Update pyfronius to 0.7.1 ([@farmio] - [#60722]) ([fronius docs])
+- Handle errors response to be None ([@balloob] - [#60679]) ([auth docs])
+- Migrate entity categories to StrEnum ([@frenck] - [#60720]) (breaking-change)
+- Use state class enum in Opengarage ([@Danielhiversen] - [#60727]) ([opengarage docs])
+- Use state class enum in Airthings ([@Danielhiversen] - [#60728]) ([airthings docs])
+- Use dataclass properties in broadlink discovery ([@epenet] - [#60689]) ([broadlink docs])
+- Use dataclass properties in keenetic_ndms2 discovery ([@epenet] - [#60716]) ([keenetic_ndms2 docs])
+- Use dataclass properties in hyperion discovery ([@epenet] - [#60714]) ([hyperion docs])
+- Use dataclass properties in huawei_lte discovery ([@epenet] - [#60713]) ([huawei_lte docs])
+- Use dataclass properties in harmony discovery ([@epenet] - [#60711]) ([harmony docs])
+- Use dataclass properties in fritz discovery ([@epenet] - [#60697]) ([fritz docs])
+- Use dataclass properties in denonavr discovery ([@epenet] - [#60691]) ([denonavr docs])
+- Use dataclass properties in netgear discovery ([@epenet] - [#60730]) ([netgear docs])
+- Add Tailscale integration ([@frenck] - [#59764]) ([tailscale docs]) (new-integration)
+- Fix tests for Hue integration ([@marcelveldt] - [#60683]) ([hue docs])
+- Use state class enum in Tibber ([@Danielhiversen] - [#60729]) ([tibber docs])
+- Use dataclass properties in screenlogic discovery ([@epenet] - [#60735]) ([screenlogic docs])
+- Use dataclass properties in roomba discovery ([@epenet] - [#60734]) ([roomba docs])
+- Refactor Tesla wall connector config flow ([@einarhauks] - [#60755]) ([tesla_wall_connector docs])
+- Use dataclass properties in samsungtv discovery ([@epenet] - [#60595]) ([samsungtv docs])
+- Add compatibility tests for DhcpServiceInfo ([@epenet] - [#60752]) ([dhcp docs])
+- Add compatibility tests for UsbServiceInfo ([@epenet] - [#60753]) ([usb docs])
+- Enable warnings for UsbServiceInfo ([@epenet] - [#60757]) ([usb docs])
+- Enable warnings for ZeroconfServiceInfo ([@epenet] - [#60759]) ([zeroconf docs])
+- Enable warnings for DhcpServiceInfo ([@epenet] - [#60750]) ([dhcp docs])
+- Add compatibility tests for MqttServiceInfo ([@epenet] - [#60754]) ([mqtt docs])
+- Add sensor platform to Tailscale ([@frenck] - [#60751]) ([tailscale docs]) (new-platform)
+- Use state class enum for Coinbase ([@TomBrien] - [#60764]) ([coinbase docs])
+- Use device class enum in Onewire ([@epenet] - [#60766]) ([onewire docs])
+- Use device class enum in Rituals ([@milanmeu] - [#60767]) ([rituals_perfume_genie docs])
+- Use device and state class enum for Renault ([@epenet] - [#60768]) ([renault docs])
+- Use state class enum for Onewire ([@epenet] - [#60770]) ([onewire docs])
+- Use dataclass properties in isy994 discovery ([@epenet] - [#60715]) ([isy994 docs])
+- Use dataclass properties in flux_led discovery ([@epenet] - [#60696]) ([flux_led docs])
+- Use dataclass properties in songpal discovery ([@epenet] - [#60737]) ([songpal docs])
+- Use dataclass properties in squeezebox discovery ([@epenet] - [#60738]) ([squeezebox docs])
+- Use state class enum in Mill ([@Danielhiversen] - [#60726]) ([mill docs])
+- Use dataclass properties in unifi discovery ([@epenet] - [#60743]) ([unifi docs])
+- Use dataclass properties in tplink discovery ([@epenet] - [#60742]) ([tplink docs])
+- Use dataclass properties in synology_dsm discovery ([@epenet] - [#60740]) ([synology_dsm docs])
+- Use state and device class enum in Rfxtrx ([@Danielhiversen] - [#60773]) ([rfxtrx docs])
+- Use dataclass properties in wilight discovery ([@epenet] - [#60748]) ([wilight docs])
+- Tesla wall connector config flow refactor continued ([@einarhauks] - [#60774]) ([tesla_wall_connector docs])
+- Better warning if unit of sensor is unsupported for its device class ([@xpac1985] - [#60665]) ([sensor docs])
+- Use device class enums in Netatmo ([@cgtobi] - [#60723]) ([netatmo docs])
+- Use dataclass properties in nuki discovery ([@epenet] - [#60731]) ([nuki docs])
+- Use dataclass properties in powerwall discovery ([@epenet] - [#60732]) ([powerwall docs])
+- Use ssdp namespace in roku ([@epenet] - [#60733]) ([roku docs])
+- Use dataclass properties in somfy_mylink discovery ([@epenet] - [#60736]) ([somfy_mylink docs])
+- Clean up Netatmo climate platform ([@cgtobi] - [#60694]) ([netatmo docs])
+- Use dataclass properties in yamaha_musiccast discovery ([@epenet] - [#60749]) ([yamaha_musiccast docs])
+- Remove cleanup_registry from onewire ([@epenet] - [#60546]) ([onewire docs])
+- Use dataclass properties in syncthru discovery ([@epenet] - [#60739]) ([syncthru docs])
+- Bump py17track to 2021.12.1 ([@bachya] - [#60762]) ([seventeentrack docs])
+- Add typing to deCONZ init and config flow ([@Kane610] - [#59999])
+- Upgrade vehicle to 0.2.2 ([@frenck] - [#60763]) ([rdw docs])
+- Remove power sensor from Tesla Wall Connector ([@einarhauks] - [#60775]) ([tesla_wall_connector docs])
+- Enable warnings for SsdpServiceInfo ([@epenet] - [#60756]) ([ssdp docs])
+- Use dataclass properties in deconz discovery ([@epenet] - [#60690]) ([deconz docs])
+- Use dataclass properties in vicare discovery ([@epenet] - [#60746]) ([vicare docs])
+- Use dataclass properties in tesla_wall_connector discovery ([@epenet] - [#60741]) ([tesla_wall_connector docs])
+- Use state class enums in Netatmo ([@cgtobi] - [#60725]) ([netatmo docs])
+- Upgrade hole to 0.7.0 ([@frenck] - [#60779]) ([pi_hole docs])
+- Upgrade aiohttp to 3.8.1 ([@frenck] - [#60778])
+- Use dataclass properties in dlna_dmr discovery ([@epenet] - [#60693]) ([dlna_dmr docs])
+- Map OpenWeatherMap weather condition `721` to `Fog` instead of `Exceptional` ([@ericmai624] - [#60518]) ([openweathermap docs])
+- Upgrade tailscale to 0.1.3 ([@frenck] - [#60780]) ([tailscale docs])
+- Use dataclass properties in upnp discovery ([@epenet] - [#60744]) ([upnp docs])
+- Use dataclass properties in tolo discovery ([@epenet] - [#60784]) ([tolo docs])
+- Add more Tractive sensors ([@Danielhiversen] - [#55170]) ([tractive docs])
+- Use dataclass properties in songpal discovery ([@epenet] - [#60786]) ([songpal docs])
+- Fix yeelight discovery ([@bdraco] - [#60783]) ([yeelight docs])
+- Add tests to hassio binary_sensor platform ([@ludeeus] - [#60609]) ([hassio docs])
+- Use dataclass properties in hyperion ([@epenet] - [#60792]) ([hyperion docs])
+- Improve Sonos activity tracking ([@jjlawren] - [#60642]) ([sonos docs])
+- Cleanup here_travel_time tests ([@eifinger] - [#60529]) ([here_travel_time docs])
+- Make sure entity inherit disabled device ([@elupus] - [#60469])
+- Fix trafikverket_weatherstation ([@gjohansson-ST] - [#60772]) ([trafikverket_weatherstation docs])
+- Bump frontend to 20211201.0 ([@balloob] - [#60801]) ([frontend docs])
+- Only unload RainMachine services if the last config entry is loaded ([@bachya] - [#60805]) ([rainmachine docs])
+- Use state class enums in AsusWrt ([@ollo69] - [#60808]) ([asuswrt docs])
+- Use entity category enum in Rituals ([@milanmeu] - [#60809]) ([rituals_perfume_genie docs])
+- Use state and device class enums in Nut ([@ollo69] - [#60810]) ([nut docs])
+- Use state/device/entity category enums in Tuya ([@frenck] - [#60788]) ([tuya docs])
+- Update tesla_wall_connector lib to version 1.0.0 ([@einarhauks] - [#60776]) ([tesla_wall_connector docs])
+- Use precipitation probability in MetOffice forecasts ([@avee87] - [#58677]) ([metoffice docs])
+- Add day/night markers to MetOffice daily forecast ([@avee87] - [#58679]) ([metoffice docs])
+- Extend entities provided by Tailscale ([@frenck] - [#60785]) ([tailscale docs])
+- Bump pydexcom version to 0.2.1 ([@gagebenne] - [#60812]) ([dexcom docs])
+- Use device/state class enums in DSMR ([@frenck] - [#60791]) ([dsmr docs])
+- Use device class enum in Stookalert ([@frenck] - [#60789]) ([stookalert docs])
+- Add support for Nanoleaf push updates ([@milanmeu] - [#60708]) ([nanoleaf docs])
+- Use state class enums in AccuWeather ([@cgtobi] - [#60813]) ([accuweather docs])
+- Use state class enums in Advantage Air ([@cgtobi] - [#60815]) ([advantage_air docs])
+- Upgrade apprise to 0.9.6 ([@frenck] - [#60816]) ([apprise docs])
+- Add binary characteristics, add deprecation warning for optional state_characteristic parameter ([@ThomDietrich] - [#60402]) ([statistics docs])
+- Use state class enums in aemet ([@cgtobi] - [#60817]) ([aemet docs])
+- Use callback instead of coroutine function ([@milanmeu] - [#60821]) ([nanoleaf docs])
+- Use state class enums in airvisual ([@cgtobi] - [#60819]) ([airvisual docs])
+- Fix old model network suffix for Fritz ([@chemelli74] - [#60802]) ([fritz docs])
+- Upgrade twentemilieu to 0.5.0 ([@frenck] - [#60820]) ([twentemilieu docs])
+- Add support for Christmas Tree pickup to TwenteMilieu ([@frenck] - [#60822]) ([twentemilieu docs])
+- Add MQTT availability template and encoding ([@jbouwh] - [#60470])
+- Update Netatmo climate platform ([@cgtobi] - [#59974]) ([netatmo docs])
+- Update flux_led for upstream strict typing ([@bdraco] - [#60800]) ([flux_led docs])
+- Add support for Ohmpilots to Fronius integration ([@farmio] - [#60765]) ([fronius docs])
+- Use Enums in EntityDescriptions in Fronius ([@farmio] - [#60832]) ([fronius docs])
+- Teach state trigger about entity registry ids ([@emontnemery] - [#60271]) ([homeassistant docs])
+- Run partial tests without coverage for Python 3.8 ([@frenck] - [#60827])
+- Bump xiaomi_miio dependency ([@rytilahti] - [#60807]) ([xiaomi_miio docs])
+- Upgrade guppy3 to 3.1.2 ([@frenck] - [#60842]) ([profiler docs])
+- Simplify zwave_js USB discovery add-on form ([@MartinHjelmare] - [#60845]) ([zwave_js docs])
+- Add configuration_url to Forecast.Solar integration ([@mdawsonuk] - [#60384]) ([forecast_solar docs])
+- Set _attr_is_on to True for avion on init ([@kylehild] - [#60433]) ([avion docs])
+- Make entity registry disabled_by an enum ([@scop] - [#60424])
+- Add Platform StrEnum to entity_platform ([@frenck] - [#60818]) ([wled docs])
+- Import helpers in Sonos instead of accessing `hass` ([@jjlawren] - [#60848]) ([sonos docs])
+- Fix Shelly device name for older firmware ([@thecode] - [#60826]) ([shelly docs])
+- Teach numeric state trigger about entity registry ids ([@emontnemery] - [#60835]) ([homeassistant docs])
+- Tidy up ssdp_location parsing ([@epenet] - [#60846]) ([huawei_lte docs]) ([heos docs])
+- Use dataclass properties in dlna_dmr ([@epenet] - [#60794]) ([dlna_dmr docs])
+- Use dataclass properties in yamaha_musiccast ([@epenet] - [#60787]) ([yamaha_musiccast docs])
+- Ensure sonos ssdp callbacks use dataclass methods ([@bdraco] - [#60782]) ([sonos docs])
+- Generate external statistics in demo component ([@emontnemery] - [#58470]) ([demo docs])
+- CI: Upload coverage results in a single step ([@frenck] - [#60834])
+- Do not print full traceback during Sonos resubscription failure ([@jjlawren] - [#60644]) ([sonos docs])
+- Tuya Vacuum: Adjusted comand PAUSE ([@dougiteixeira] - [#60849]) ([tuya docs])
+- Minor refactor of template cover ([@emontnemery] - [#59537]) ([template docs])
+- Teach zone trigger about entity registry ids ([@emontnemery] - [#60838]) ([device_tracker docs]) ([zone docs])
+- Adding presets for new tuya TRV ([@MattWestb] - [#60408]) ([zha docs])
+- Bump ZHA dependencies ([@dmulcahey] - [#60852]) ([zha docs])
+- Fix Ring sensors with timestamp class returning a string ([@balloob] - [#60850]) ([ring docs])
+- Reorganize SimpliSafe services ([@bachya] - [#58722]) ([simplisafe docs]) (breaking-change)
+- Introduce HassioServiceInfo ([@epenet] - [#60844]) ([hassio docs])
+- Add configuration URL for SimpliSafe ([@bachya] - [#60860]) ([simplisafe docs])
+- Reorganize Guardian services ([@bachya] - [#58632]) ([guardian docs]) (breaking-change)
+- Use HassioServiceInfo in ozw tests ([@epenet] - [#60864]) ([ozw docs])
+- Use HassioServiceInfo in zwave_js tests ([@epenet] - [#60863]) ([zwave_js docs])
+- Use HassioServiceInfo in motioneye tests ([@epenet] - [#60861]) ([motioneye docs])
+- Use HassioServiceInfo in adguard tests ([@epenet] - [#60866]) ([adguard docs])
+- Use HassioServiceInfo in mqtt tests ([@epenet] - [#60865]) ([mqtt docs])
+- Revert "Use HassioServiceInfo in mqtt tests" ([@bdraco] - [#60867]) ([mqtt docs])
+- Use HassioServiceInfo in deconz tests ([@epenet] - [#60868]) ([deconz docs])
+- Clean up deprecated sanitize_filename and sanitize_path ([@frenck] - [#60859]) (breaking-change)
+- Add PPB VOC sensor to ZHA ([@dmulcahey] - [#60853]) ([zha docs])
+- Move Platform StrEnum to const ([@frenck] - [#60857]) ([wled docs])
+- Revert "Move Platform StrEnum to const" ([@frenck] - [#60875]) ([wled docs])
+- Revert "Allow template int filter to render from a bytes based integer" ([@emontnemery] - [#60855])
+- Teach state and numeric_state conditions about entity registry ids ([@emontnemery] - [#60841])
+- Bump frontend to 20211202.0 ([@balloob] - [#60877]) ([frontend docs])
+- Bump ZHA dependency zigpy-znp from 0.6.1 to 0.6.3 ([@puddly] - [#60871]) ([zha docs])
+- Move screenlogic SCG levels to number platform ([@dieselrabbit] - [#60872]) ([screenlogic docs]) (breaking-change)
+- Limit parallel updates for screenlogic number ents ([@dieselrabbit] - [#60886]) ([screenlogic docs])
+- Use dataclass properties in upnp ([@epenet] - [#60893]) ([upnp docs])
+- Use entity category enums in Nut ([@ollo69] - [#60883]) ([nut docs])
+- Use entity category enums in AsusWrt ([@ollo69] - [#60882]) ([asuswrt docs])
+- Use dataclass properties in system_bridge tests ([@epenet] - [#60888]) ([system_bridge docs])
+- Revert "Add bytes support for bitwise template operations" ([@emontnemery] - [#60854])
+- Use dataclass properties in keenetic_ndms2 tests ([@epenet] - [#60892]) ([keenetic_ndms2 docs])
+- Use dataclass properties in homekit_controller tests ([@epenet] - [#60891]) ([homekit_controller docs])
+- Use dataclass properties in devolo_home_network tests ([@epenet] - [#60889]) ([devolo_home_network docs])
+- Add template filters pack and unpack ([@jbouwh] - [#60836])
+- Move StrEnum to homeassistant.backports and move Platform to homeassistant.const ([@marvin-w] - [#60880])
+- Use native datetime value in Brother uptime sensor ([@bieniu] - [#60363]) ([brother docs])
+- Update tuya cover, fix Up/down position ([@leeyuentuen] - [#59858]) ([tuya docs])
+- Remove Supervisor panel title and icon ([@ludeeus] - [#60894]) ([hassio docs])
+- Mark config schema as removed in Verisure ([@frenck] - [#60896]) ([verisure docs])
+- Use dataclass for HassioServiceInfo ([@epenet] - [#60824]) ([hassio docs])
+- Use dataclass properties in zwave_js ([@epenet] - [#60913]) ([zwave_js docs])
+- Bump pytradfri to 7.2.1 ([@MartinHjelmare] - [#60910]) ([tradfri docs])
+- Bump soco to 0.25.0 ([@jjlawren] - [#60915]) ([sonos docs])
+- Add Sonos subwoofer and surround on/off controls ([@jjlawren] - [#60918]) ([sonos docs])
+- Return if user is local only ([@bramkragten] - [#60917]) ([config docs])
+- Use platform enum (1) [A-D] ([@cdce8p] - [#60908])
+- Correct validation of conditions in scripts and automations ([@emontnemery] - [#60890])
+- Temporarily disable CI concurrency ([@frenck] - [#60926])
+- Use EntityCategory enum in Onewire ([@epenet] - [#60907]) ([onewire docs])
+- Use dataclass properties in yeelight ([@epenet] - [#60912]) ([yeelight docs])
+- Use new Platform enum in Onewire ([@epenet] - [#60904]) ([onewire docs])
+- Use new Platform enum in Renault ([@epenet] - [#60903]) ([renault docs])
+- DHCP discovery for Fronius integration ([@farmio] - [#60806]) ([fronius docs])
+- Use new Platform enum in KNX ([@marvin-w] - [#60902]) ([knx docs])
+- Use state class enum for DHT ([@yanuino] - [#60916]) ([dht docs])
+- Add battery sensor for Netatmo climate devices ([@cgtobi] - [#60911]) ([netatmo docs])
+- Revert "Temporarily disable CI concurrency" ([@frenck] - [#60928])
+- Implement privacy_mode for amcrest integration ([@pjrt] - [#57210]) ([amcrest docs])
+- Add command_line icon_template ([@Mariusthvdb] - [#58877]) ([command_line docs])
+- Add audio input format sensor to Sonos HT devices ([@jjlawren] - [#60884]) ([sonos docs])
+- Enable basic type checking for climacell ([@emontnemery] - [#55334]) ([climacell docs])
+- Update frontend to 20211203.0 ([@bramkragten] - [#60925]) ([frontend docs])
+- Add support for siren entities in ZHA ([@dmulcahey] - [#60920]) ([zha docs])
+- Allow use of relative_time as a filter ([@frenck] - [#60923])
+- Move MqttServiceInfo to init.py ([@epenet] - [#60905]) ([mqtt docs]) ([tasmota docs])
+- Add more Tuya Vacuum sensors and select entities ([@dougiteixeira] - [#60927]) ([tuya docs])
+- Add quality scale for Fronius ([@farmio] - [#60531]) ([fronius docs])
+- Add Nest Battery Cam event clip support with a Nest MediaSource ([@allenporter] - [#60073]) ([nest docs])
+- Use _attrs where possible in Sonos ([@jjlawren] - [#60931]) ([sonos docs])
+- Re-add-tests with new filters removed with #60854 ([@jbouwh] - [#60895]) ([mqtt docs])
+- Update volvooncall, add hybrid plug status ([@decompil3d] - [#58919]) ([volvooncall docs])
+- Fix amcrest pylint issue ([@cdce8p] - [#60932]) ([amcrest docs])
+- Clean up eight_sleep code ([@raman325] - [#58508]) ([eight_sleep docs])
+- Gree update device ips when changed ([@cmroche] - [#57876]) ([gree docs])
+- Reduce flux_led dhcp matching complexity ([@bdraco] - [#60934]) ([flux_led docs])
+- Add temperature sensors for Asuswrt ([@Chen-IL] - [#58303]) ([asuswrt docs])
+
+{% enddetails %}
+
+[#32568]: https://github.com/home-assistant/core/pull/32568
+[#44401]: https://github.com/home-assistant/core/pull/44401
+[#45866]: https://github.com/home-assistant/core/pull/45866
+[#49714]: https://github.com/home-assistant/core/pull/49714
+[#49960]: https://github.com/home-assistant/core/pull/49960
+[#51060]: https://github.com/home-assistant/core/pull/51060
+[#51443]: https://github.com/home-assistant/core/pull/51443
+[#52671]: https://github.com/home-assistant/core/pull/52671
+[#52816]: https://github.com/home-assistant/core/pull/52816
+[#53143]: https://github.com/home-assistant/core/pull/53143
+[#53411]: https://github.com/home-assistant/core/pull/53411
+[#53415]: https://github.com/home-assistant/core/pull/53415
+[#53436]: https://github.com/home-assistant/core/pull/53436
+[#53440]: https://github.com/home-assistant/core/pull/53440
+[#53743]: https://github.com/home-assistant/core/pull/53743
+[#53846]: https://github.com/home-assistant/core/pull/53846
+[#53893]: https://github.com/home-assistant/core/pull/53893
+[#54091]: https://github.com/home-assistant/core/pull/54091
+[#54426]: https://github.com/home-assistant/core/pull/54426
+[#54445]: https://github.com/home-assistant/core/pull/54445
+[#54527]: https://github.com/home-assistant/core/pull/54527
+[#54959]: https://github.com/home-assistant/core/pull/54959
+[#54964]: https://github.com/home-assistant/core/pull/54964
+[#54978]: https://github.com/home-assistant/core/pull/54978
+[#55046]: https://github.com/home-assistant/core/pull/55046
+[#55170]: https://github.com/home-assistant/core/pull/55170
+[#55334]: https://github.com/home-assistant/core/pull/55334
+[#55337]: https://github.com/home-assistant/core/pull/55337
+[#55524]: https://github.com/home-assistant/core/pull/55524
+[#55619]: https://github.com/home-assistant/core/pull/55619
+[#56181]: https://github.com/home-assistant/core/pull/56181
+[#56507]: https://github.com/home-assistant/core/pull/56507
+[#56529]: https://github.com/home-assistant/core/pull/56529
+[#56691]: https://github.com/home-assistant/core/pull/56691
+[#57008]: https://github.com/home-assistant/core/pull/57008
+[#57126]: https://github.com/home-assistant/core/pull/57126
+[#57210]: https://github.com/home-assistant/core/pull/57210
+[#57259]: https://github.com/home-assistant/core/pull/57259
+[#57269]: https://github.com/home-assistant/core/pull/57269
+[#57396]: https://github.com/home-assistant/core/pull/57396
+[#57521]: https://github.com/home-assistant/core/pull/57521
+[#57590]: https://github.com/home-assistant/core/pull/57590
+[#57598]: https://github.com/home-assistant/core/pull/57598
+[#57612]: https://github.com/home-assistant/core/pull/57612
+[#57621]: https://github.com/home-assistant/core/pull/57621
+[#57642]: https://github.com/home-assistant/core/pull/57642
+[#57777]: https://github.com/home-assistant/core/pull/57777
+[#57827]: https://github.com/home-assistant/core/pull/57827
+[#57876]: https://github.com/home-assistant/core/pull/57876
+[#58010]: https://github.com/home-assistant/core/pull/58010
+[#58060]: https://github.com/home-assistant/core/pull/58060
+[#58209]: https://github.com/home-assistant/core/pull/58209
+[#58274]: https://github.com/home-assistant/core/pull/58274
+[#58285]: https://github.com/home-assistant/core/pull/58285
+[#58303]: https://github.com/home-assistant/core/pull/58303
+[#58323]: https://github.com/home-assistant/core/pull/58323
+[#58369]: https://github.com/home-assistant/core/pull/58369
+[#58380]: https://github.com/home-assistant/core/pull/58380
+[#58435]: https://github.com/home-assistant/core/pull/58435
+[#58437]: https://github.com/home-assistant/core/pull/58437
+[#58441]: https://github.com/home-assistant/core/pull/58441
+[#58459]: https://github.com/home-assistant/core/pull/58459
+[#58470]: https://github.com/home-assistant/core/pull/58470
+[#58483]: https://github.com/home-assistant/core/pull/58483
+[#58504]: https://github.com/home-assistant/core/pull/58504
+[#58508]: https://github.com/home-assistant/core/pull/58508
+[#58542]: https://github.com/home-assistant/core/pull/58542
+[#58546]: https://github.com/home-assistant/core/pull/58546
+[#58560]: https://github.com/home-assistant/core/pull/58560
+[#58562]: https://github.com/home-assistant/core/pull/58562
+[#58563]: https://github.com/home-assistant/core/pull/58563
+[#58571]: https://github.com/home-assistant/core/pull/58571
+[#58572]: https://github.com/home-assistant/core/pull/58572
+[#58573]: https://github.com/home-assistant/core/pull/58573
+[#58574]: https://github.com/home-assistant/core/pull/58574
+[#58575]: https://github.com/home-assistant/core/pull/58575
+[#58576]: https://github.com/home-assistant/core/pull/58576
+[#58577]: https://github.com/home-assistant/core/pull/58577
+[#58578]: https://github.com/home-assistant/core/pull/58578
+[#58579]: https://github.com/home-assistant/core/pull/58579
+[#58580]: https://github.com/home-assistant/core/pull/58580
+[#58581]: https://github.com/home-assistant/core/pull/58581
+[#58582]: https://github.com/home-assistant/core/pull/58582
+[#58585]: https://github.com/home-assistant/core/pull/58585
+[#58587]: https://github.com/home-assistant/core/pull/58587
+[#58590]: https://github.com/home-assistant/core/pull/58590
+[#58592]: https://github.com/home-assistant/core/pull/58592
+[#58595]: https://github.com/home-assistant/core/pull/58595
+[#58601]: https://github.com/home-assistant/core/pull/58601
+[#58602]: https://github.com/home-assistant/core/pull/58602
+[#58603]: https://github.com/home-assistant/core/pull/58603
+[#58604]: https://github.com/home-assistant/core/pull/58604
+[#58605]: https://github.com/home-assistant/core/pull/58605
+[#58606]: https://github.com/home-assistant/core/pull/58606
+[#58607]: https://github.com/home-assistant/core/pull/58607
+[#58608]: https://github.com/home-assistant/core/pull/58608
+[#58609]: https://github.com/home-assistant/core/pull/58609
+[#58617]: https://github.com/home-assistant/core/pull/58617
+[#58618]: https://github.com/home-assistant/core/pull/58618
+[#58619]: https://github.com/home-assistant/core/pull/58619
+[#58620]: https://github.com/home-assistant/core/pull/58620
+[#58621]: https://github.com/home-assistant/core/pull/58621
+[#58622]: https://github.com/home-assistant/core/pull/58622
+[#58632]: https://github.com/home-assistant/core/pull/58632
+[#58637]: https://github.com/home-assistant/core/pull/58637
+[#58638]: https://github.com/home-assistant/core/pull/58638
+[#58639]: https://github.com/home-assistant/core/pull/58639
+[#58640]: https://github.com/home-assistant/core/pull/58640
+[#58641]: https://github.com/home-assistant/core/pull/58641
+[#58642]: https://github.com/home-assistant/core/pull/58642
+[#58644]: https://github.com/home-assistant/core/pull/58644
+[#58645]: https://github.com/home-assistant/core/pull/58645
+[#58646]: https://github.com/home-assistant/core/pull/58646
+[#58647]: https://github.com/home-assistant/core/pull/58647
+[#58649]: https://github.com/home-assistant/core/pull/58649
+[#58655]: https://github.com/home-assistant/core/pull/58655
+[#58661]: https://github.com/home-assistant/core/pull/58661
+[#58663]: https://github.com/home-assistant/core/pull/58663
+[#58669]: https://github.com/home-assistant/core/pull/58669
+[#58671]: https://github.com/home-assistant/core/pull/58671
+[#58676]: https://github.com/home-assistant/core/pull/58676
+[#58677]: https://github.com/home-assistant/core/pull/58677
+[#58679]: https://github.com/home-assistant/core/pull/58679
+[#58683]: https://github.com/home-assistant/core/pull/58683
+[#58690]: https://github.com/home-assistant/core/pull/58690
+[#58703]: https://github.com/home-assistant/core/pull/58703
+[#58704]: https://github.com/home-assistant/core/pull/58704
+[#58709]: https://github.com/home-assistant/core/pull/58709
+[#58713]: https://github.com/home-assistant/core/pull/58713
+[#58714]: https://github.com/home-assistant/core/pull/58714
+[#58715]: https://github.com/home-assistant/core/pull/58715
+[#58716]: https://github.com/home-assistant/core/pull/58716
+[#58717]: https://github.com/home-assistant/core/pull/58717
+[#58720]: https://github.com/home-assistant/core/pull/58720
+[#58722]: https://github.com/home-assistant/core/pull/58722
+[#58728]: https://github.com/home-assistant/core/pull/58728
+[#58729]: https://github.com/home-assistant/core/pull/58729
+[#58733]: https://github.com/home-assistant/core/pull/58733
+[#58738]: https://github.com/home-assistant/core/pull/58738
+[#58743]: https://github.com/home-assistant/core/pull/58743
+[#58749]: https://github.com/home-assistant/core/pull/58749
+[#58750]: https://github.com/home-assistant/core/pull/58750
+[#58757]: https://github.com/home-assistant/core/pull/58757
+[#58762]: https://github.com/home-assistant/core/pull/58762
+[#58764]: https://github.com/home-assistant/core/pull/58764
+[#58765]: https://github.com/home-assistant/core/pull/58765
+[#58782]: https://github.com/home-assistant/core/pull/58782
+[#58784]: https://github.com/home-assistant/core/pull/58784
+[#58786]: https://github.com/home-assistant/core/pull/58786
+[#58788]: https://github.com/home-assistant/core/pull/58788
+[#58790]: https://github.com/home-assistant/core/pull/58790
+[#58794]: https://github.com/home-assistant/core/pull/58794
+[#58796]: https://github.com/home-assistant/core/pull/58796
+[#58798]: https://github.com/home-assistant/core/pull/58798
+[#58801]: https://github.com/home-assistant/core/pull/58801
+[#58802]: https://github.com/home-assistant/core/pull/58802
+[#58803]: https://github.com/home-assistant/core/pull/58803
+[#58804]: https://github.com/home-assistant/core/pull/58804
+[#58807]: https://github.com/home-assistant/core/pull/58807
+[#58809]: https://github.com/home-assistant/core/pull/58809
+[#58811]: https://github.com/home-assistant/core/pull/58811
+[#58813]: https://github.com/home-assistant/core/pull/58813
+[#58823]: https://github.com/home-assistant/core/pull/58823
+[#58824]: https://github.com/home-assistant/core/pull/58824
+[#58825]: https://github.com/home-assistant/core/pull/58825
+[#58827]: https://github.com/home-assistant/core/pull/58827
+[#58828]: https://github.com/home-assistant/core/pull/58828
+[#58829]: https://github.com/home-assistant/core/pull/58829
+[#58831]: https://github.com/home-assistant/core/pull/58831
+[#58835]: https://github.com/home-assistant/core/pull/58835
+[#58836]: https://github.com/home-assistant/core/pull/58836
+[#58839]: https://github.com/home-assistant/core/pull/58839
+[#58845]: https://github.com/home-assistant/core/pull/58845
+[#58848]: https://github.com/home-assistant/core/pull/58848
+[#58850]: https://github.com/home-assistant/core/pull/58850
+[#58851]: https://github.com/home-assistant/core/pull/58851
+[#58853]: https://github.com/home-assistant/core/pull/58853
+[#58854]: https://github.com/home-assistant/core/pull/58854
+[#58855]: https://github.com/home-assistant/core/pull/58855
+[#58857]: https://github.com/home-assistant/core/pull/58857
+[#58858]: https://github.com/home-assistant/core/pull/58858
+[#58859]: https://github.com/home-assistant/core/pull/58859
+[#58860]: https://github.com/home-assistant/core/pull/58860
+[#58861]: https://github.com/home-assistant/core/pull/58861
+[#58862]: https://github.com/home-assistant/core/pull/58862
+[#58863]: https://github.com/home-assistant/core/pull/58863
+[#58864]: https://github.com/home-assistant/core/pull/58864
+[#58865]: https://github.com/home-assistant/core/pull/58865
+[#58866]: https://github.com/home-assistant/core/pull/58866
+[#58867]: https://github.com/home-assistant/core/pull/58867
+[#58868]: https://github.com/home-assistant/core/pull/58868
+[#58869]: https://github.com/home-assistant/core/pull/58869
+[#58870]: https://github.com/home-assistant/core/pull/58870
+[#58871]: https://github.com/home-assistant/core/pull/58871
+[#58873]: https://github.com/home-assistant/core/pull/58873
+[#58877]: https://github.com/home-assistant/core/pull/58877
+[#58881]: https://github.com/home-assistant/core/pull/58881
+[#58883]: https://github.com/home-assistant/core/pull/58883
+[#58885]: https://github.com/home-assistant/core/pull/58885
+[#58891]: https://github.com/home-assistant/core/pull/58891
+[#58892]: https://github.com/home-assistant/core/pull/58892
+[#58898]: https://github.com/home-assistant/core/pull/58898
+[#58900]: https://github.com/home-assistant/core/pull/58900
+[#58902]: https://github.com/home-assistant/core/pull/58902
+[#58903]: https://github.com/home-assistant/core/pull/58903
+[#58910]: https://github.com/home-assistant/core/pull/58910
+[#58912]: https://github.com/home-assistant/core/pull/58912
+[#58919]: https://github.com/home-assistant/core/pull/58919
+[#58922]: https://github.com/home-assistant/core/pull/58922
+[#58924]: https://github.com/home-assistant/core/pull/58924
+[#58925]: https://github.com/home-assistant/core/pull/58925
+[#58931]: https://github.com/home-assistant/core/pull/58931
+[#58934]: https://github.com/home-assistant/core/pull/58934
+[#58939]: https://github.com/home-assistant/core/pull/58939
+[#58944]: https://github.com/home-assistant/core/pull/58944
+[#58949]: https://github.com/home-assistant/core/pull/58949
+[#58957]: https://github.com/home-assistant/core/pull/58957
+[#58958]: https://github.com/home-assistant/core/pull/58958
+[#58961]: https://github.com/home-assistant/core/pull/58961
+[#58963]: https://github.com/home-assistant/core/pull/58963
+[#58966]: https://github.com/home-assistant/core/pull/58966
+[#58967]: https://github.com/home-assistant/core/pull/58967
+[#58971]: https://github.com/home-assistant/core/pull/58971
+[#58974]: https://github.com/home-assistant/core/pull/58974
+[#58978]: https://github.com/home-assistant/core/pull/58978
+[#58989]: https://github.com/home-assistant/core/pull/58989
+[#58992]: https://github.com/home-assistant/core/pull/58992
+[#58996]: https://github.com/home-assistant/core/pull/58996
+[#59033]: https://github.com/home-assistant/core/pull/59033
+[#59037]: https://github.com/home-assistant/core/pull/59037
+[#59041]: https://github.com/home-assistant/core/pull/59041
+[#59046]: https://github.com/home-assistant/core/pull/59046
+[#59047]: https://github.com/home-assistant/core/pull/59047
+[#59049]: https://github.com/home-assistant/core/pull/59049
+[#59054]: https://github.com/home-assistant/core/pull/59054
+[#59071]: https://github.com/home-assistant/core/pull/59071
+[#59074]: https://github.com/home-assistant/core/pull/59074
+[#59075]: https://github.com/home-assistant/core/pull/59075
+[#59082]: https://github.com/home-assistant/core/pull/59082
+[#59086]: https://github.com/home-assistant/core/pull/59086
+[#59087]: https://github.com/home-assistant/core/pull/59087
+[#59091]: https://github.com/home-assistant/core/pull/59091
+[#59095]: https://github.com/home-assistant/core/pull/59095
+[#59104]: https://github.com/home-assistant/core/pull/59104
+[#59109]: https://github.com/home-assistant/core/pull/59109
+[#59126]: https://github.com/home-assistant/core/pull/59126
+[#59130]: https://github.com/home-assistant/core/pull/59130
+[#59143]: https://github.com/home-assistant/core/pull/59143
+[#59147]: https://github.com/home-assistant/core/pull/59147
+[#59148]: https://github.com/home-assistant/core/pull/59148
+[#59151]: https://github.com/home-assistant/core/pull/59151
+[#59154]: https://github.com/home-assistant/core/pull/59154
+[#59157]: https://github.com/home-assistant/core/pull/59157
+[#59165]: https://github.com/home-assistant/core/pull/59165
+[#59171]: https://github.com/home-assistant/core/pull/59171
+[#59187]: https://github.com/home-assistant/core/pull/59187
+[#59188]: https://github.com/home-assistant/core/pull/59188
+[#59195]: https://github.com/home-assistant/core/pull/59195
+[#59199]: https://github.com/home-assistant/core/pull/59199
+[#59200]: https://github.com/home-assistant/core/pull/59200
+[#59202]: https://github.com/home-assistant/core/pull/59202
+[#59203]: https://github.com/home-assistant/core/pull/59203
+[#59207]: https://github.com/home-assistant/core/pull/59207
+[#59210]: https://github.com/home-assistant/core/pull/59210
+[#59219]: https://github.com/home-assistant/core/pull/59219
+[#59228]: https://github.com/home-assistant/core/pull/59228
+[#59229]: https://github.com/home-assistant/core/pull/59229
+[#59233]: https://github.com/home-assistant/core/pull/59233
+[#59234]: https://github.com/home-assistant/core/pull/59234
+[#59238]: https://github.com/home-assistant/core/pull/59238
+[#59240]: https://github.com/home-assistant/core/pull/59240
+[#59241]: https://github.com/home-assistant/core/pull/59241
+[#59251]: https://github.com/home-assistant/core/pull/59251
+[#59253]: https://github.com/home-assistant/core/pull/59253
+[#59260]: https://github.com/home-assistant/core/pull/59260
+[#59266]: https://github.com/home-assistant/core/pull/59266
+[#59267]: https://github.com/home-assistant/core/pull/59267
+[#59278]: https://github.com/home-assistant/core/pull/59278
+[#59284]: https://github.com/home-assistant/core/pull/59284
+[#59286]: https://github.com/home-assistant/core/pull/59286
+[#59287]: https://github.com/home-assistant/core/pull/59287
+[#59293]: https://github.com/home-assistant/core/pull/59293
+[#59300]: https://github.com/home-assistant/core/pull/59300
+[#59301]: https://github.com/home-assistant/core/pull/59301
+[#59304]: https://github.com/home-assistant/core/pull/59304
+[#59310]: https://github.com/home-assistant/core/pull/59310
+[#59312]: https://github.com/home-assistant/core/pull/59312
+[#59313]: https://github.com/home-assistant/core/pull/59313
+[#59314]: https://github.com/home-assistant/core/pull/59314
+[#59320]: https://github.com/home-assistant/core/pull/59320
+[#59325]: https://github.com/home-assistant/core/pull/59325
+[#59333]: https://github.com/home-assistant/core/pull/59333
+[#59334]: https://github.com/home-assistant/core/pull/59334
+[#59338]: https://github.com/home-assistant/core/pull/59338
+[#59342]: https://github.com/home-assistant/core/pull/59342
+[#59343]: https://github.com/home-assistant/core/pull/59343
+[#59346]: https://github.com/home-assistant/core/pull/59346
+[#59348]: https://github.com/home-assistant/core/pull/59348
+[#59357]: https://github.com/home-assistant/core/pull/59357
+[#59359]: https://github.com/home-assistant/core/pull/59359
+[#59360]: https://github.com/home-assistant/core/pull/59360
+[#59363]: https://github.com/home-assistant/core/pull/59363
+[#59368]: https://github.com/home-assistant/core/pull/59368
+[#59370]: https://github.com/home-assistant/core/pull/59370
+[#59374]: https://github.com/home-assistant/core/pull/59374
+[#59377]: https://github.com/home-assistant/core/pull/59377
+[#59380]: https://github.com/home-assistant/core/pull/59380
+[#59381]: https://github.com/home-assistant/core/pull/59381
+[#59383]: https://github.com/home-assistant/core/pull/59383
+[#59384]: https://github.com/home-assistant/core/pull/59384
+[#59398]: https://github.com/home-assistant/core/pull/59398
+[#59401]: https://github.com/home-assistant/core/pull/59401
+[#59404]: https://github.com/home-assistant/core/pull/59404
+[#59405]: https://github.com/home-assistant/core/pull/59405
+[#59407]: https://github.com/home-assistant/core/pull/59407
+[#59408]: https://github.com/home-assistant/core/pull/59408
+[#59409]: https://github.com/home-assistant/core/pull/59409
+[#59416]: https://github.com/home-assistant/core/pull/59416
+[#59418]: https://github.com/home-assistant/core/pull/59418
+[#59420]: https://github.com/home-assistant/core/pull/59420
+[#59423]: https://github.com/home-assistant/core/pull/59423
+[#59425]: https://github.com/home-assistant/core/pull/59425
+[#59426]: https://github.com/home-assistant/core/pull/59426
+[#59427]: https://github.com/home-assistant/core/pull/59427
+[#59429]: https://github.com/home-assistant/core/pull/59429
+[#59432]: https://github.com/home-assistant/core/pull/59432
+[#59434]: https://github.com/home-assistant/core/pull/59434
+[#59436]: https://github.com/home-assistant/core/pull/59436
+[#59437]: https://github.com/home-assistant/core/pull/59437
+[#59438]: https://github.com/home-assistant/core/pull/59438
+[#59439]: https://github.com/home-assistant/core/pull/59439
+[#59440]: https://github.com/home-assistant/core/pull/59440
+[#59442]: https://github.com/home-assistant/core/pull/59442
+[#59446]: https://github.com/home-assistant/core/pull/59446
+[#59447]: https://github.com/home-assistant/core/pull/59447
+[#59449]: https://github.com/home-assistant/core/pull/59449
+[#59450]: https://github.com/home-assistant/core/pull/59450
+[#59452]: https://github.com/home-assistant/core/pull/59452
+[#59454]: https://github.com/home-assistant/core/pull/59454
+[#59458]: https://github.com/home-assistant/core/pull/59458
+[#59459]: https://github.com/home-assistant/core/pull/59459
+[#59461]: https://github.com/home-assistant/core/pull/59461
+[#59462]: https://github.com/home-assistant/core/pull/59462
+[#59466]: https://github.com/home-assistant/core/pull/59466
+[#59467]: https://github.com/home-assistant/core/pull/59467
+[#59468]: https://github.com/home-assistant/core/pull/59468
+[#59469]: https://github.com/home-assistant/core/pull/59469
+[#59470]: https://github.com/home-assistant/core/pull/59470
+[#59474]: https://github.com/home-assistant/core/pull/59474
+[#59477]: https://github.com/home-assistant/core/pull/59477
+[#59481]: https://github.com/home-assistant/core/pull/59481
+[#59488]: https://github.com/home-assistant/core/pull/59488
+[#59495]: https://github.com/home-assistant/core/pull/59495
+[#59497]: https://github.com/home-assistant/core/pull/59497
+[#59499]: https://github.com/home-assistant/core/pull/59499
+[#59500]: https://github.com/home-assistant/core/pull/59500
+[#59503]: https://github.com/home-assistant/core/pull/59503
+[#59505]: https://github.com/home-assistant/core/pull/59505
+[#59512]: https://github.com/home-assistant/core/pull/59512
+[#59521]: https://github.com/home-assistant/core/pull/59521
+[#59522]: https://github.com/home-assistant/core/pull/59522
+[#59524]: https://github.com/home-assistant/core/pull/59524
+[#59525]: https://github.com/home-assistant/core/pull/59525
+[#59526]: https://github.com/home-assistant/core/pull/59526
+[#59527]: https://github.com/home-assistant/core/pull/59527
+[#59528]: https://github.com/home-assistant/core/pull/59528
+[#59530]: https://github.com/home-assistant/core/pull/59530
+[#59531]: https://github.com/home-assistant/core/pull/59531
+[#59533]: https://github.com/home-assistant/core/pull/59533
+[#59537]: https://github.com/home-assistant/core/pull/59537
+[#59541]: https://github.com/home-assistant/core/pull/59541
+[#59545]: https://github.com/home-assistant/core/pull/59545
+[#59546]: https://github.com/home-assistant/core/pull/59546
+[#59549]: https://github.com/home-assistant/core/pull/59549
+[#59551]: https://github.com/home-assistant/core/pull/59551
+[#59559]: https://github.com/home-assistant/core/pull/59559
+[#59565]: https://github.com/home-assistant/core/pull/59565
+[#59568]: https://github.com/home-assistant/core/pull/59568
+[#59570]: https://github.com/home-assistant/core/pull/59570
+[#59582]: https://github.com/home-assistant/core/pull/59582
+[#59583]: https://github.com/home-assistant/core/pull/59583
+[#59585]: https://github.com/home-assistant/core/pull/59585
+[#59587]: https://github.com/home-assistant/core/pull/59587
+[#59588]: https://github.com/home-assistant/core/pull/59588
+[#59592]: https://github.com/home-assistant/core/pull/59592
+[#59595]: https://github.com/home-assistant/core/pull/59595
+[#59598]: https://github.com/home-assistant/core/pull/59598
+[#59599]: https://github.com/home-assistant/core/pull/59599
+[#59601]: https://github.com/home-assistant/core/pull/59601
+[#59602]: https://github.com/home-assistant/core/pull/59602
+[#59603]: https://github.com/home-assistant/core/pull/59603
+[#59604]: https://github.com/home-assistant/core/pull/59604
+[#59605]: https://github.com/home-assistant/core/pull/59605
+[#59606]: https://github.com/home-assistant/core/pull/59606
+[#59607]: https://github.com/home-assistant/core/pull/59607
+[#59608]: https://github.com/home-assistant/core/pull/59608
+[#59609]: https://github.com/home-assistant/core/pull/59609
+[#59610]: https://github.com/home-assistant/core/pull/59610
+[#59611]: https://github.com/home-assistant/core/pull/59611
+[#59612]: https://github.com/home-assistant/core/pull/59612
+[#59616]: https://github.com/home-assistant/core/pull/59616
+[#59617]: https://github.com/home-assistant/core/pull/59617
+[#59618]: https://github.com/home-assistant/core/pull/59618
+[#59621]: https://github.com/home-assistant/core/pull/59621
+[#59625]: https://github.com/home-assistant/core/pull/59625
+[#59628]: https://github.com/home-assistant/core/pull/59628
+[#59629]: https://github.com/home-assistant/core/pull/59629
+[#59632]: https://github.com/home-assistant/core/pull/59632
+[#59635]: https://github.com/home-assistant/core/pull/59635
+[#59638]: https://github.com/home-assistant/core/pull/59638
+[#59640]: https://github.com/home-assistant/core/pull/59640
+[#59646]: https://github.com/home-assistant/core/pull/59646
+[#59649]: https://github.com/home-assistant/core/pull/59649
+[#59657]: https://github.com/home-assistant/core/pull/59657
+[#59658]: https://github.com/home-assistant/core/pull/59658
+[#59659]: https://github.com/home-assistant/core/pull/59659
+[#59663]: https://github.com/home-assistant/core/pull/59663
+[#59667]: https://github.com/home-assistant/core/pull/59667
+[#59669]: https://github.com/home-assistant/core/pull/59669
+[#59670]: https://github.com/home-assistant/core/pull/59670
+[#59672]: https://github.com/home-assistant/core/pull/59672
+[#59675]: https://github.com/home-assistant/core/pull/59675
+[#59679]: https://github.com/home-assistant/core/pull/59679
+[#59681]: https://github.com/home-assistant/core/pull/59681
+[#59686]: https://github.com/home-assistant/core/pull/59686
+[#59687]: https://github.com/home-assistant/core/pull/59687
+[#59690]: https://github.com/home-assistant/core/pull/59690
+[#59692]: https://github.com/home-assistant/core/pull/59692
+[#59695]: https://github.com/home-assistant/core/pull/59695
+[#59697]: https://github.com/home-assistant/core/pull/59697
+[#59700]: https://github.com/home-assistant/core/pull/59700
+[#59705]: https://github.com/home-assistant/core/pull/59705
+[#59710]: https://github.com/home-assistant/core/pull/59710
+[#59712]: https://github.com/home-assistant/core/pull/59712
+[#59713]: https://github.com/home-assistant/core/pull/59713
+[#59714]: https://github.com/home-assistant/core/pull/59714
+[#59716]: https://github.com/home-assistant/core/pull/59716
+[#59719]: https://github.com/home-assistant/core/pull/59719
+[#59723]: https://github.com/home-assistant/core/pull/59723
+[#59727]: https://github.com/home-assistant/core/pull/59727
+[#59728]: https://github.com/home-assistant/core/pull/59728
+[#59732]: https://github.com/home-assistant/core/pull/59732
+[#59734]: https://github.com/home-assistant/core/pull/59734
+[#59736]: https://github.com/home-assistant/core/pull/59736
+[#59737]: https://github.com/home-assistant/core/pull/59737
+[#59738]: https://github.com/home-assistant/core/pull/59738
+[#59739]: https://github.com/home-assistant/core/pull/59739
+[#59741]: https://github.com/home-assistant/core/pull/59741
+[#59743]: https://github.com/home-assistant/core/pull/59743
+[#59745]: https://github.com/home-assistant/core/pull/59745
+[#59746]: https://github.com/home-assistant/core/pull/59746
+[#59749]: https://github.com/home-assistant/core/pull/59749
+[#59750]: https://github.com/home-assistant/core/pull/59750
+[#59751]: https://github.com/home-assistant/core/pull/59751
+[#59756]: https://github.com/home-assistant/core/pull/59756
+[#59761]: https://github.com/home-assistant/core/pull/59761
+[#59764]: https://github.com/home-assistant/core/pull/59764
+[#59773]: https://github.com/home-assistant/core/pull/59773
+[#59778]: https://github.com/home-assistant/core/pull/59778
+[#59783]: https://github.com/home-assistant/core/pull/59783
+[#59787]: https://github.com/home-assistant/core/pull/59787
+[#59793]: https://github.com/home-assistant/core/pull/59793
+[#59797]: https://github.com/home-assistant/core/pull/59797
+[#59798]: https://github.com/home-assistant/core/pull/59798
+[#59803]: https://github.com/home-assistant/core/pull/59803
+[#59804]: https://github.com/home-assistant/core/pull/59804
+[#59805]: https://github.com/home-assistant/core/pull/59805
+[#59811]: https://github.com/home-assistant/core/pull/59811
+[#59820]: https://github.com/home-assistant/core/pull/59820
+[#59821]: https://github.com/home-assistant/core/pull/59821
+[#59823]: https://github.com/home-assistant/core/pull/59823
+[#59824]: https://github.com/home-assistant/core/pull/59824
+[#59827]: https://github.com/home-assistant/core/pull/59827
+[#59832]: https://github.com/home-assistant/core/pull/59832
+[#59834]: https://github.com/home-assistant/core/pull/59834
+[#59835]: https://github.com/home-assistant/core/pull/59835
+[#59837]: https://github.com/home-assistant/core/pull/59837
+[#59839]: https://github.com/home-assistant/core/pull/59839
+[#59840]: https://github.com/home-assistant/core/pull/59840
+[#59841]: https://github.com/home-assistant/core/pull/59841
+[#59842]: https://github.com/home-assistant/core/pull/59842
+[#59846]: https://github.com/home-assistant/core/pull/59846
+[#59847]: https://github.com/home-assistant/core/pull/59847
+[#59848]: https://github.com/home-assistant/core/pull/59848
+[#59851]: https://github.com/home-assistant/core/pull/59851
+[#59857]: https://github.com/home-assistant/core/pull/59857
+[#59858]: https://github.com/home-assistant/core/pull/59858
+[#59862]: https://github.com/home-assistant/core/pull/59862
+[#59864]: https://github.com/home-assistant/core/pull/59864
+[#59866]: https://github.com/home-assistant/core/pull/59866
+[#59867]: https://github.com/home-assistant/core/pull/59867
+[#59868]: https://github.com/home-assistant/core/pull/59868
+[#59873]: https://github.com/home-assistant/core/pull/59873
+[#59875]: https://github.com/home-assistant/core/pull/59875
+[#59876]: https://github.com/home-assistant/core/pull/59876
+[#59878]: https://github.com/home-assistant/core/pull/59878
+[#59880]: https://github.com/home-assistant/core/pull/59880
+[#59881]: https://github.com/home-assistant/core/pull/59881
+[#59882]: https://github.com/home-assistant/core/pull/59882
+[#59884]: https://github.com/home-assistant/core/pull/59884
+[#59885]: https://github.com/home-assistant/core/pull/59885
+[#59889]: https://github.com/home-assistant/core/pull/59889
+[#59896]: https://github.com/home-assistant/core/pull/59896
+[#59897]: https://github.com/home-assistant/core/pull/59897
+[#59900]: https://github.com/home-assistant/core/pull/59900
+[#59902]: https://github.com/home-assistant/core/pull/59902
+[#59907]: https://github.com/home-assistant/core/pull/59907
+[#59908]: https://github.com/home-assistant/core/pull/59908
+[#59912]: https://github.com/home-assistant/core/pull/59912
+[#59913]: https://github.com/home-assistant/core/pull/59913
+[#59914]: https://github.com/home-assistant/core/pull/59914
+[#59915]: https://github.com/home-assistant/core/pull/59915
+[#59916]: https://github.com/home-assistant/core/pull/59916
+[#59917]: https://github.com/home-assistant/core/pull/59917
+[#59919]: https://github.com/home-assistant/core/pull/59919
+[#59923]: https://github.com/home-assistant/core/pull/59923
+[#59926]: https://github.com/home-assistant/core/pull/59926
+[#59927]: https://github.com/home-assistant/core/pull/59927
+[#59930]: https://github.com/home-assistant/core/pull/59930
+[#59931]: https://github.com/home-assistant/core/pull/59931
+[#59932]: https://github.com/home-assistant/core/pull/59932
+[#59936]: https://github.com/home-assistant/core/pull/59936
+[#59938]: https://github.com/home-assistant/core/pull/59938
+[#59939]: https://github.com/home-assistant/core/pull/59939
+[#59940]: https://github.com/home-assistant/core/pull/59940
+[#59942]: https://github.com/home-assistant/core/pull/59942
+[#59943]: https://github.com/home-assistant/core/pull/59943
+[#59944]: https://github.com/home-assistant/core/pull/59944
+[#59945]: https://github.com/home-assistant/core/pull/59945
+[#59950]: https://github.com/home-assistant/core/pull/59950
+[#59953]: https://github.com/home-assistant/core/pull/59953
+[#59955]: https://github.com/home-assistant/core/pull/59955
+[#59961]: https://github.com/home-assistant/core/pull/59961
+[#59962]: https://github.com/home-assistant/core/pull/59962
+[#59965]: https://github.com/home-assistant/core/pull/59965
+[#59966]: https://github.com/home-assistant/core/pull/59966
+[#59967]: https://github.com/home-assistant/core/pull/59967
+[#59968]: https://github.com/home-assistant/core/pull/59968
+[#59969]: https://github.com/home-assistant/core/pull/59969
+[#59970]: https://github.com/home-assistant/core/pull/59970
+[#59971]: https://github.com/home-assistant/core/pull/59971
+[#59974]: https://github.com/home-assistant/core/pull/59974
+[#59975]: https://github.com/home-assistant/core/pull/59975
+[#59979]: https://github.com/home-assistant/core/pull/59979
+[#59980]: https://github.com/home-assistant/core/pull/59980
+[#59981]: https://github.com/home-assistant/core/pull/59981
+[#59982]: https://github.com/home-assistant/core/pull/59982
+[#59983]: https://github.com/home-assistant/core/pull/59983
+[#59984]: https://github.com/home-assistant/core/pull/59984
+[#59985]: https://github.com/home-assistant/core/pull/59985
+[#59986]: https://github.com/home-assistant/core/pull/59986
+[#59987]: https://github.com/home-assistant/core/pull/59987
+[#59988]: https://github.com/home-assistant/core/pull/59988
+[#59990]: https://github.com/home-assistant/core/pull/59990
+[#59991]: https://github.com/home-assistant/core/pull/59991
+[#59994]: https://github.com/home-assistant/core/pull/59994
+[#59995]: https://github.com/home-assistant/core/pull/59995
+[#59996]: https://github.com/home-assistant/core/pull/59996
+[#59997]: https://github.com/home-assistant/core/pull/59997
+[#59998]: https://github.com/home-assistant/core/pull/59998
+[#59999]: https://github.com/home-assistant/core/pull/59999
+[#60000]: https://github.com/home-assistant/core/pull/60000
+[#60009]: https://github.com/home-assistant/core/pull/60009
+[#60012]: https://github.com/home-assistant/core/pull/60012
+[#60013]: https://github.com/home-assistant/core/pull/60013
+[#60014]: https://github.com/home-assistant/core/pull/60014
+[#60015]: https://github.com/home-assistant/core/pull/60015
+[#60022]: https://github.com/home-assistant/core/pull/60022
+[#60023]: https://github.com/home-assistant/core/pull/60023
+[#60024]: https://github.com/home-assistant/core/pull/60024
+[#60026]: https://github.com/home-assistant/core/pull/60026
+[#60033]: https://github.com/home-assistant/core/pull/60033
+[#60043]: https://github.com/home-assistant/core/pull/60043
+[#60044]: https://github.com/home-assistant/core/pull/60044
+[#60045]: https://github.com/home-assistant/core/pull/60045
+[#60046]: https://github.com/home-assistant/core/pull/60046
+[#60047]: https://github.com/home-assistant/core/pull/60047
+[#60048]: https://github.com/home-assistant/core/pull/60048
+[#60049]: https://github.com/home-assistant/core/pull/60049
+[#60050]: https://github.com/home-assistant/core/pull/60050
+[#60051]: https://github.com/home-assistant/core/pull/60051
+[#60053]: https://github.com/home-assistant/core/pull/60053
+[#60054]: https://github.com/home-assistant/core/pull/60054
+[#60055]: https://github.com/home-assistant/core/pull/60055
+[#60056]: https://github.com/home-assistant/core/pull/60056
+[#60058]: https://github.com/home-assistant/core/pull/60058
+[#60062]: https://github.com/home-assistant/core/pull/60062
+[#60066]: https://github.com/home-assistant/core/pull/60066
+[#60068]: https://github.com/home-assistant/core/pull/60068
+[#60071]: https://github.com/home-assistant/core/pull/60071
+[#60073]: https://github.com/home-assistant/core/pull/60073
+[#60078]: https://github.com/home-assistant/core/pull/60078
+[#60086]: https://github.com/home-assistant/core/pull/60086
+[#60090]: https://github.com/home-assistant/core/pull/60090
+[#60092]: https://github.com/home-assistant/core/pull/60092
+[#60093]: https://github.com/home-assistant/core/pull/60093
+[#60095]: https://github.com/home-assistant/core/pull/60095
+[#60096]: https://github.com/home-assistant/core/pull/60096
+[#60097]: https://github.com/home-assistant/core/pull/60097
+[#60098]: https://github.com/home-assistant/core/pull/60098
+[#60099]: https://github.com/home-assistant/core/pull/60099
+[#60100]: https://github.com/home-assistant/core/pull/60100
+[#60102]: https://github.com/home-assistant/core/pull/60102
+[#60103]: https://github.com/home-assistant/core/pull/60103
+[#60105]: https://github.com/home-assistant/core/pull/60105
+[#60111]: https://github.com/home-assistant/core/pull/60111
+[#60112]: https://github.com/home-assistant/core/pull/60112
+[#60113]: https://github.com/home-assistant/core/pull/60113
+[#60114]: https://github.com/home-assistant/core/pull/60114
+[#60115]: https://github.com/home-assistant/core/pull/60115
+[#60116]: https://github.com/home-assistant/core/pull/60116
+[#60117]: https://github.com/home-assistant/core/pull/60117
+[#60120]: https://github.com/home-assistant/core/pull/60120
+[#60124]: https://github.com/home-assistant/core/pull/60124
+[#60125]: https://github.com/home-assistant/core/pull/60125
+[#60126]: https://github.com/home-assistant/core/pull/60126
+[#60127]: https://github.com/home-assistant/core/pull/60127
+[#60130]: https://github.com/home-assistant/core/pull/60130
+[#60131]: https://github.com/home-assistant/core/pull/60131
+[#60132]: https://github.com/home-assistant/core/pull/60132
+[#60134]: https://github.com/home-assistant/core/pull/60134
+[#60136]: https://github.com/home-assistant/core/pull/60136
+[#60137]: https://github.com/home-assistant/core/pull/60137
+[#60139]: https://github.com/home-assistant/core/pull/60139
+[#60140]: https://github.com/home-assistant/core/pull/60140
+[#60145]: https://github.com/home-assistant/core/pull/60145
+[#60151]: https://github.com/home-assistant/core/pull/60151
+[#60152]: https://github.com/home-assistant/core/pull/60152
+[#60153]: https://github.com/home-assistant/core/pull/60153
+[#60157]: https://github.com/home-assistant/core/pull/60157
+[#60158]: https://github.com/home-assistant/core/pull/60158
+[#60159]: https://github.com/home-assistant/core/pull/60159
+[#60160]: https://github.com/home-assistant/core/pull/60160
+[#60163]: https://github.com/home-assistant/core/pull/60163
+[#60164]: https://github.com/home-assistant/core/pull/60164
+[#60165]: https://github.com/home-assistant/core/pull/60165
+[#60169]: https://github.com/home-assistant/core/pull/60169
+[#60171]: https://github.com/home-assistant/core/pull/60171
+[#60176]: https://github.com/home-assistant/core/pull/60176
+[#60179]: https://github.com/home-assistant/core/pull/60179
+[#60180]: https://github.com/home-assistant/core/pull/60180
+[#60181]: https://github.com/home-assistant/core/pull/60181
+[#60183]: https://github.com/home-assistant/core/pull/60183
+[#60184]: https://github.com/home-assistant/core/pull/60184
+[#60189]: https://github.com/home-assistant/core/pull/60189
+[#60191]: https://github.com/home-assistant/core/pull/60191
+[#60194]: https://github.com/home-assistant/core/pull/60194
+[#60197]: https://github.com/home-assistant/core/pull/60197
+[#60198]: https://github.com/home-assistant/core/pull/60198
+[#60199]: https://github.com/home-assistant/core/pull/60199
+[#60205]: https://github.com/home-assistant/core/pull/60205
+[#60206]: https://github.com/home-assistant/core/pull/60206
+[#60207]: https://github.com/home-assistant/core/pull/60207
+[#60211]: https://github.com/home-assistant/core/pull/60211
+[#60212]: https://github.com/home-assistant/core/pull/60212
+[#60213]: https://github.com/home-assistant/core/pull/60213
+[#60214]: https://github.com/home-assistant/core/pull/60214
+[#60217]: https://github.com/home-assistant/core/pull/60217
+[#60218]: https://github.com/home-assistant/core/pull/60218
+[#60219]: https://github.com/home-assistant/core/pull/60219
+[#60221]: https://github.com/home-assistant/core/pull/60221
+[#60224]: https://github.com/home-assistant/core/pull/60224
+[#60226]: https://github.com/home-assistant/core/pull/60226
+[#60227]: https://github.com/home-assistant/core/pull/60227
+[#60230]: https://github.com/home-assistant/core/pull/60230
+[#60232]: https://github.com/home-assistant/core/pull/60232
+[#60233]: https://github.com/home-assistant/core/pull/60233
+[#60234]: https://github.com/home-assistant/core/pull/60234
+[#60235]: https://github.com/home-assistant/core/pull/60235
+[#60236]: https://github.com/home-assistant/core/pull/60236
+[#60237]: https://github.com/home-assistant/core/pull/60237
+[#60239]: https://github.com/home-assistant/core/pull/60239
+[#60240]: https://github.com/home-assistant/core/pull/60240
+[#60241]: https://github.com/home-assistant/core/pull/60241
+[#60243]: https://github.com/home-assistant/core/pull/60243
+[#60245]: https://github.com/home-assistant/core/pull/60245
+[#60247]: https://github.com/home-assistant/core/pull/60247
+[#60252]: https://github.com/home-assistant/core/pull/60252
+[#60253]: https://github.com/home-assistant/core/pull/60253
+[#60254]: https://github.com/home-assistant/core/pull/60254
+[#60256]: https://github.com/home-assistant/core/pull/60256
+[#60258]: https://github.com/home-assistant/core/pull/60258
+[#60264]: https://github.com/home-assistant/core/pull/60264
+[#60266]: https://github.com/home-assistant/core/pull/60266
+[#60267]: https://github.com/home-assistant/core/pull/60267
+[#60268]: https://github.com/home-assistant/core/pull/60268
+[#60269]: https://github.com/home-assistant/core/pull/60269
+[#60270]: https://github.com/home-assistant/core/pull/60270
+[#60271]: https://github.com/home-assistant/core/pull/60271
+[#60276]: https://github.com/home-assistant/core/pull/60276
+[#60277]: https://github.com/home-assistant/core/pull/60277
+[#60279]: https://github.com/home-assistant/core/pull/60279
+[#60281]: https://github.com/home-assistant/core/pull/60281
+[#60283]: https://github.com/home-assistant/core/pull/60283
+[#60284]: https://github.com/home-assistant/core/pull/60284
+[#60285]: https://github.com/home-assistant/core/pull/60285
+[#60287]: https://github.com/home-assistant/core/pull/60287
+[#60293]: https://github.com/home-assistant/core/pull/60293
+[#60294]: https://github.com/home-assistant/core/pull/60294
+[#60297]: https://github.com/home-assistant/core/pull/60297
+[#60299]: https://github.com/home-assistant/core/pull/60299
+[#60300]: https://github.com/home-assistant/core/pull/60300
+[#60303]: https://github.com/home-assistant/core/pull/60303
+[#60304]: https://github.com/home-assistant/core/pull/60304
+[#60305]: https://github.com/home-assistant/core/pull/60305
+[#60306]: https://github.com/home-assistant/core/pull/60306
+[#60308]: https://github.com/home-assistant/core/pull/60308
+[#60311]: https://github.com/home-assistant/core/pull/60311
+[#60312]: https://github.com/home-assistant/core/pull/60312
+[#60315]: https://github.com/home-assistant/core/pull/60315
+[#60316]: https://github.com/home-assistant/core/pull/60316
+[#60318]: https://github.com/home-assistant/core/pull/60318
+[#60319]: https://github.com/home-assistant/core/pull/60319
+[#60320]: https://github.com/home-assistant/core/pull/60320
+[#60322]: https://github.com/home-assistant/core/pull/60322
+[#60324]: https://github.com/home-assistant/core/pull/60324
+[#60325]: https://github.com/home-assistant/core/pull/60325
+[#60326]: https://github.com/home-assistant/core/pull/60326
+[#60329]: https://github.com/home-assistant/core/pull/60329
+[#60331]: https://github.com/home-assistant/core/pull/60331
+[#60334]: https://github.com/home-assistant/core/pull/60334
+[#60339]: https://github.com/home-assistant/core/pull/60339
+[#60340]: https://github.com/home-assistant/core/pull/60340
+[#60344]: https://github.com/home-assistant/core/pull/60344
+[#60345]: https://github.com/home-assistant/core/pull/60345
+[#60346]: https://github.com/home-assistant/core/pull/60346
+[#60348]: https://github.com/home-assistant/core/pull/60348
+[#60351]: https://github.com/home-assistant/core/pull/60351
+[#60352]: https://github.com/home-assistant/core/pull/60352
+[#60354]: https://github.com/home-assistant/core/pull/60354
+[#60355]: https://github.com/home-assistant/core/pull/60355
+[#60356]: https://github.com/home-assistant/core/pull/60356
+[#60357]: https://github.com/home-assistant/core/pull/60357
+[#60359]: https://github.com/home-assistant/core/pull/60359
+[#60361]: https://github.com/home-assistant/core/pull/60361
+[#60362]: https://github.com/home-assistant/core/pull/60362
+[#60363]: https://github.com/home-assistant/core/pull/60363
+[#60364]: https://github.com/home-assistant/core/pull/60364
+[#60365]: https://github.com/home-assistant/core/pull/60365
+[#60366]: https://github.com/home-assistant/core/pull/60366
+[#60367]: https://github.com/home-assistant/core/pull/60367
+[#60372]: https://github.com/home-assistant/core/pull/60372
+[#60373]: https://github.com/home-assistant/core/pull/60373
+[#60374]: https://github.com/home-assistant/core/pull/60374
+[#60375]: https://github.com/home-assistant/core/pull/60375
+[#60376]: https://github.com/home-assistant/core/pull/60376
+[#60377]: https://github.com/home-assistant/core/pull/60377
+[#60378]: https://github.com/home-assistant/core/pull/60378
+[#60380]: https://github.com/home-assistant/core/pull/60380
+[#60381]: https://github.com/home-assistant/core/pull/60381
+[#60383]: https://github.com/home-assistant/core/pull/60383
+[#60384]: https://github.com/home-assistant/core/pull/60384
+[#60385]: https://github.com/home-assistant/core/pull/60385
+[#60386]: https://github.com/home-assistant/core/pull/60386
+[#60391]: https://github.com/home-assistant/core/pull/60391
+[#60392]: https://github.com/home-assistant/core/pull/60392
+[#60395]: https://github.com/home-assistant/core/pull/60395
+[#60400]: https://github.com/home-assistant/core/pull/60400
+[#60401]: https://github.com/home-assistant/core/pull/60401
+[#60402]: https://github.com/home-assistant/core/pull/60402
+[#60403]: https://github.com/home-assistant/core/pull/60403
+[#60408]: https://github.com/home-assistant/core/pull/60408
+[#60409]: https://github.com/home-assistant/core/pull/60409
+[#60410]: https://github.com/home-assistant/core/pull/60410
+[#60411]: https://github.com/home-assistant/core/pull/60411
+[#60416]: https://github.com/home-assistant/core/pull/60416
+[#60417]: https://github.com/home-assistant/core/pull/60417
+[#60420]: https://github.com/home-assistant/core/pull/60420
+[#60421]: https://github.com/home-assistant/core/pull/60421
+[#60423]: https://github.com/home-assistant/core/pull/60423
+[#60424]: https://github.com/home-assistant/core/pull/60424
+[#60428]: https://github.com/home-assistant/core/pull/60428
+[#60429]: https://github.com/home-assistant/core/pull/60429
+[#60433]: https://github.com/home-assistant/core/pull/60433
+[#60434]: https://github.com/home-assistant/core/pull/60434
+[#60438]: https://github.com/home-assistant/core/pull/60438
+[#60439]: https://github.com/home-assistant/core/pull/60439
+[#60447]: https://github.com/home-assistant/core/pull/60447
+[#60448]: https://github.com/home-assistant/core/pull/60448
+[#60452]: https://github.com/home-assistant/core/pull/60452
+[#60453]: https://github.com/home-assistant/core/pull/60453
+[#60454]: https://github.com/home-assistant/core/pull/60454
+[#60458]: https://github.com/home-assistant/core/pull/60458
+[#60460]: https://github.com/home-assistant/core/pull/60460
+[#60463]: https://github.com/home-assistant/core/pull/60463
+[#60464]: https://github.com/home-assistant/core/pull/60464
+[#60466]: https://github.com/home-assistant/core/pull/60466
+[#60468]: https://github.com/home-assistant/core/pull/60468
+[#60469]: https://github.com/home-assistant/core/pull/60469
+[#60470]: https://github.com/home-assistant/core/pull/60470
+[#60471]: https://github.com/home-assistant/core/pull/60471
+[#60472]: https://github.com/home-assistant/core/pull/60472
+[#60473]: https://github.com/home-assistant/core/pull/60473
+[#60474]: https://github.com/home-assistant/core/pull/60474
+[#60480]: https://github.com/home-assistant/core/pull/60480
+[#60481]: https://github.com/home-assistant/core/pull/60481
+[#60484]: https://github.com/home-assistant/core/pull/60484
+[#60491]: https://github.com/home-assistant/core/pull/60491
+[#60493]: https://github.com/home-assistant/core/pull/60493
+[#60495]: https://github.com/home-assistant/core/pull/60495
+[#60498]: https://github.com/home-assistant/core/pull/60498
+[#60501]: https://github.com/home-assistant/core/pull/60501
+[#60502]: https://github.com/home-assistant/core/pull/60502
+[#60507]: https://github.com/home-assistant/core/pull/60507
+[#60508]: https://github.com/home-assistant/core/pull/60508
+[#60510]: https://github.com/home-assistant/core/pull/60510
+[#60512]: https://github.com/home-assistant/core/pull/60512
+[#60515]: https://github.com/home-assistant/core/pull/60515
+[#60517]: https://github.com/home-assistant/core/pull/60517
+[#60518]: https://github.com/home-assistant/core/pull/60518
+[#60519]: https://github.com/home-assistant/core/pull/60519
+[#60522]: https://github.com/home-assistant/core/pull/60522
+[#60523]: https://github.com/home-assistant/core/pull/60523
+[#60525]: https://github.com/home-assistant/core/pull/60525
+[#60526]: https://github.com/home-assistant/core/pull/60526
+[#60527]: https://github.com/home-assistant/core/pull/60527
+[#60528]: https://github.com/home-assistant/core/pull/60528
+[#60529]: https://github.com/home-assistant/core/pull/60529
+[#60530]: https://github.com/home-assistant/core/pull/60530
+[#60531]: https://github.com/home-assistant/core/pull/60531
+[#60532]: https://github.com/home-assistant/core/pull/60532
+[#60535]: https://github.com/home-assistant/core/pull/60535
+[#60537]: https://github.com/home-assistant/core/pull/60537
+[#60539]: https://github.com/home-assistant/core/pull/60539
+[#60542]: https://github.com/home-assistant/core/pull/60542
+[#60546]: https://github.com/home-assistant/core/pull/60546
+[#60547]: https://github.com/home-assistant/core/pull/60547
+[#60551]: https://github.com/home-assistant/core/pull/60551
+[#60552]: https://github.com/home-assistant/core/pull/60552
+[#60557]: https://github.com/home-assistant/core/pull/60557
+[#60558]: https://github.com/home-assistant/core/pull/60558
+[#60559]: https://github.com/home-assistant/core/pull/60559
+[#60560]: https://github.com/home-assistant/core/pull/60560
+[#60561]: https://github.com/home-assistant/core/pull/60561
+[#60562]: https://github.com/home-assistant/core/pull/60562
+[#60564]: https://github.com/home-assistant/core/pull/60564
+[#60565]: https://github.com/home-assistant/core/pull/60565
+[#60569]: https://github.com/home-assistant/core/pull/60569
+[#60572]: https://github.com/home-assistant/core/pull/60572
+[#60573]: https://github.com/home-assistant/core/pull/60573
+[#60575]: https://github.com/home-assistant/core/pull/60575
+[#60576]: https://github.com/home-assistant/core/pull/60576
+[#60577]: https://github.com/home-assistant/core/pull/60577
+[#60578]: https://github.com/home-assistant/core/pull/60578
+[#60579]: https://github.com/home-assistant/core/pull/60579
+[#60580]: https://github.com/home-assistant/core/pull/60580
+[#60584]: https://github.com/home-assistant/core/pull/60584
+[#60585]: https://github.com/home-assistant/core/pull/60585
+[#60586]: https://github.com/home-assistant/core/pull/60586
+[#60587]: https://github.com/home-assistant/core/pull/60587
+[#60588]: https://github.com/home-assistant/core/pull/60588
+[#60589]: https://github.com/home-assistant/core/pull/60589
+[#60590]: https://github.com/home-assistant/core/pull/60590
+[#60591]: https://github.com/home-assistant/core/pull/60591
+[#60592]: https://github.com/home-assistant/core/pull/60592
+[#60593]: https://github.com/home-assistant/core/pull/60593
+[#60594]: https://github.com/home-assistant/core/pull/60594
+[#60595]: https://github.com/home-assistant/core/pull/60595
+[#60596]: https://github.com/home-assistant/core/pull/60596
+[#60597]: https://github.com/home-assistant/core/pull/60597
+[#60598]: https://github.com/home-assistant/core/pull/60598
+[#60600]: https://github.com/home-assistant/core/pull/60600
+[#60601]: https://github.com/home-assistant/core/pull/60601
+[#60602]: https://github.com/home-assistant/core/pull/60602
+[#60603]: https://github.com/home-assistant/core/pull/60603
+[#60605]: https://github.com/home-assistant/core/pull/60605
+[#60606]: https://github.com/home-assistant/core/pull/60606
+[#60607]: https://github.com/home-assistant/core/pull/60607
+[#60608]: https://github.com/home-assistant/core/pull/60608
+[#60609]: https://github.com/home-assistant/core/pull/60609
+[#60610]: https://github.com/home-assistant/core/pull/60610
+[#60611]: https://github.com/home-assistant/core/pull/60611
+[#60612]: https://github.com/home-assistant/core/pull/60612
+[#60613]: https://github.com/home-assistant/core/pull/60613
+[#60614]: https://github.com/home-assistant/core/pull/60614
+[#60619]: https://github.com/home-assistant/core/pull/60619
+[#60620]: https://github.com/home-assistant/core/pull/60620
+[#60621]: https://github.com/home-assistant/core/pull/60621
+[#60622]: https://github.com/home-assistant/core/pull/60622
+[#60624]: https://github.com/home-assistant/core/pull/60624
+[#60625]: https://github.com/home-assistant/core/pull/60625
+[#60626]: https://github.com/home-assistant/core/pull/60626
+[#60627]: https://github.com/home-assistant/core/pull/60627
+[#60628]: https://github.com/home-assistant/core/pull/60628
+[#60630]: https://github.com/home-assistant/core/pull/60630
+[#60631]: https://github.com/home-assistant/core/pull/60631
+[#60632]: https://github.com/home-assistant/core/pull/60632
+[#60633]: https://github.com/home-assistant/core/pull/60633
+[#60634]: https://github.com/home-assistant/core/pull/60634
+[#60635]: https://github.com/home-assistant/core/pull/60635
+[#60636]: https://github.com/home-assistant/core/pull/60636
+[#60637]: https://github.com/home-assistant/core/pull/60637
+[#60639]: https://github.com/home-assistant/core/pull/60639
+[#60640]: https://github.com/home-assistant/core/pull/60640
+[#60641]: https://github.com/home-assistant/core/pull/60641
+[#60642]: https://github.com/home-assistant/core/pull/60642
+[#60643]: https://github.com/home-assistant/core/pull/60643
+[#60644]: https://github.com/home-assistant/core/pull/60644
+[#60650]: https://github.com/home-assistant/core/pull/60650
+[#60651]: https://github.com/home-assistant/core/pull/60651
+[#60653]: https://github.com/home-assistant/core/pull/60653
+[#60654]: https://github.com/home-assistant/core/pull/60654
+[#60655]: https://github.com/home-assistant/core/pull/60655
+[#60656]: https://github.com/home-assistant/core/pull/60656
+[#60657]: https://github.com/home-assistant/core/pull/60657
+[#60658]: https://github.com/home-assistant/core/pull/60658
+[#60660]: https://github.com/home-assistant/core/pull/60660
+[#60661]: https://github.com/home-assistant/core/pull/60661
+[#60664]: https://github.com/home-assistant/core/pull/60664
+[#60665]: https://github.com/home-assistant/core/pull/60665
+[#60670]: https://github.com/home-assistant/core/pull/60670
+[#60676]: https://github.com/home-assistant/core/pull/60676
+[#60679]: https://github.com/home-assistant/core/pull/60679
+[#60680]: https://github.com/home-assistant/core/pull/60680
+[#60681]: https://github.com/home-assistant/core/pull/60681
+[#60683]: https://github.com/home-assistant/core/pull/60683
+[#60684]: https://github.com/home-assistant/core/pull/60684
+[#60685]: https://github.com/home-assistant/core/pull/60685
+[#60686]: https://github.com/home-assistant/core/pull/60686
+[#60687]: https://github.com/home-assistant/core/pull/60687
+[#60688]: https://github.com/home-assistant/core/pull/60688
+[#60689]: https://github.com/home-assistant/core/pull/60689
+[#60690]: https://github.com/home-assistant/core/pull/60690
+[#60691]: https://github.com/home-assistant/core/pull/60691
+[#60692]: https://github.com/home-assistant/core/pull/60692
+[#60693]: https://github.com/home-assistant/core/pull/60693
+[#60694]: https://github.com/home-assistant/core/pull/60694
+[#60695]: https://github.com/home-assistant/core/pull/60695
+[#60696]: https://github.com/home-assistant/core/pull/60696
+[#60697]: https://github.com/home-assistant/core/pull/60697
+[#60698]: https://github.com/home-assistant/core/pull/60698
+[#60699]: https://github.com/home-assistant/core/pull/60699
+[#60700]: https://github.com/home-assistant/core/pull/60700
+[#60701]: https://github.com/home-assistant/core/pull/60701
+[#60702]: https://github.com/home-assistant/core/pull/60702
+[#60703]: https://github.com/home-assistant/core/pull/60703
+[#60704]: https://github.com/home-assistant/core/pull/60704
+[#60705]: https://github.com/home-assistant/core/pull/60705
+[#60706]: https://github.com/home-assistant/core/pull/60706
+[#60708]: https://github.com/home-assistant/core/pull/60708
+[#60709]: https://github.com/home-assistant/core/pull/60709
+[#60710]: https://github.com/home-assistant/core/pull/60710
+[#60711]: https://github.com/home-assistant/core/pull/60711
+[#60712]: https://github.com/home-assistant/core/pull/60712
+[#60713]: https://github.com/home-assistant/core/pull/60713
+[#60714]: https://github.com/home-assistant/core/pull/60714
+[#60715]: https://github.com/home-assistant/core/pull/60715
+[#60716]: https://github.com/home-assistant/core/pull/60716
+[#60717]: https://github.com/home-assistant/core/pull/60717
+[#60718]: https://github.com/home-assistant/core/pull/60718
+[#60719]: https://github.com/home-assistant/core/pull/60719
+[#60720]: https://github.com/home-assistant/core/pull/60720
+[#60722]: https://github.com/home-assistant/core/pull/60722
+[#60723]: https://github.com/home-assistant/core/pull/60723
+[#60725]: https://github.com/home-assistant/core/pull/60725
+[#60726]: https://github.com/home-assistant/core/pull/60726
+[#60727]: https://github.com/home-assistant/core/pull/60727
+[#60728]: https://github.com/home-assistant/core/pull/60728
+[#60729]: https://github.com/home-assistant/core/pull/60729
+[#60730]: https://github.com/home-assistant/core/pull/60730
+[#60731]: https://github.com/home-assistant/core/pull/60731
+[#60732]: https://github.com/home-assistant/core/pull/60732
+[#60733]: https://github.com/home-assistant/core/pull/60733
+[#60734]: https://github.com/home-assistant/core/pull/60734
+[#60735]: https://github.com/home-assistant/core/pull/60735
+[#60736]: https://github.com/home-assistant/core/pull/60736
+[#60737]: https://github.com/home-assistant/core/pull/60737
+[#60738]: https://github.com/home-assistant/core/pull/60738
+[#60739]: https://github.com/home-assistant/core/pull/60739
+[#60740]: https://github.com/home-assistant/core/pull/60740
+[#60741]: https://github.com/home-assistant/core/pull/60741
+[#60742]: https://github.com/home-assistant/core/pull/60742
+[#60743]: https://github.com/home-assistant/core/pull/60743
+[#60744]: https://github.com/home-assistant/core/pull/60744
+[#60746]: https://github.com/home-assistant/core/pull/60746
+[#60748]: https://github.com/home-assistant/core/pull/60748
+[#60749]: https://github.com/home-assistant/core/pull/60749
+[#60750]: https://github.com/home-assistant/core/pull/60750
+[#60751]: https://github.com/home-assistant/core/pull/60751
+[#60752]: https://github.com/home-assistant/core/pull/60752
+[#60753]: https://github.com/home-assistant/core/pull/60753
+[#60754]: https://github.com/home-assistant/core/pull/60754
+[#60755]: https://github.com/home-assistant/core/pull/60755
+[#60756]: https://github.com/home-assistant/core/pull/60756
+[#60757]: https://github.com/home-assistant/core/pull/60757
+[#60759]: https://github.com/home-assistant/core/pull/60759
+[#60762]: https://github.com/home-assistant/core/pull/60762
+[#60763]: https://github.com/home-assistant/core/pull/60763
+[#60764]: https://github.com/home-assistant/core/pull/60764
+[#60765]: https://github.com/home-assistant/core/pull/60765
+[#60766]: https://github.com/home-assistant/core/pull/60766
+[#60767]: https://github.com/home-assistant/core/pull/60767
+[#60768]: https://github.com/home-assistant/core/pull/60768
+[#60770]: https://github.com/home-assistant/core/pull/60770
+[#60772]: https://github.com/home-assistant/core/pull/60772
+[#60773]: https://github.com/home-assistant/core/pull/60773
+[#60774]: https://github.com/home-assistant/core/pull/60774
+[#60775]: https://github.com/home-assistant/core/pull/60775
+[#60776]: https://github.com/home-assistant/core/pull/60776
+[#60778]: https://github.com/home-assistant/core/pull/60778
+[#60779]: https://github.com/home-assistant/core/pull/60779
+[#60780]: https://github.com/home-assistant/core/pull/60780
+[#60782]: https://github.com/home-assistant/core/pull/60782
+[#60783]: https://github.com/home-assistant/core/pull/60783
+[#60784]: https://github.com/home-assistant/core/pull/60784
+[#60785]: https://github.com/home-assistant/core/pull/60785
+[#60786]: https://github.com/home-assistant/core/pull/60786
+[#60787]: https://github.com/home-assistant/core/pull/60787
+[#60788]: https://github.com/home-assistant/core/pull/60788
+[#60789]: https://github.com/home-assistant/core/pull/60789
+[#60791]: https://github.com/home-assistant/core/pull/60791
+[#60792]: https://github.com/home-assistant/core/pull/60792
+[#60794]: https://github.com/home-assistant/core/pull/60794
+[#60800]: https://github.com/home-assistant/core/pull/60800
+[#60801]: https://github.com/home-assistant/core/pull/60801
+[#60802]: https://github.com/home-assistant/core/pull/60802
+[#60805]: https://github.com/home-assistant/core/pull/60805
+[#60806]: https://github.com/home-assistant/core/pull/60806
+[#60807]: https://github.com/home-assistant/core/pull/60807
+[#60808]: https://github.com/home-assistant/core/pull/60808
+[#60809]: https://github.com/home-assistant/core/pull/60809
+[#60810]: https://github.com/home-assistant/core/pull/60810
+[#60812]: https://github.com/home-assistant/core/pull/60812
+[#60813]: https://github.com/home-assistant/core/pull/60813
+[#60815]: https://github.com/home-assistant/core/pull/60815
+[#60816]: https://github.com/home-assistant/core/pull/60816
+[#60817]: https://github.com/home-assistant/core/pull/60817
+[#60818]: https://github.com/home-assistant/core/pull/60818
+[#60819]: https://github.com/home-assistant/core/pull/60819
+[#60820]: https://github.com/home-assistant/core/pull/60820
+[#60821]: https://github.com/home-assistant/core/pull/60821
+[#60822]: https://github.com/home-assistant/core/pull/60822
+[#60824]: https://github.com/home-assistant/core/pull/60824
+[#60826]: https://github.com/home-assistant/core/pull/60826
+[#60827]: https://github.com/home-assistant/core/pull/60827
+[#60832]: https://github.com/home-assistant/core/pull/60832
+[#60834]: https://github.com/home-assistant/core/pull/60834
+[#60835]: https://github.com/home-assistant/core/pull/60835
+[#60836]: https://github.com/home-assistant/core/pull/60836
+[#60838]: https://github.com/home-assistant/core/pull/60838
+[#60841]: https://github.com/home-assistant/core/pull/60841
+[#60842]: https://github.com/home-assistant/core/pull/60842
+[#60844]: https://github.com/home-assistant/core/pull/60844
+[#60845]: https://github.com/home-assistant/core/pull/60845
+[#60846]: https://github.com/home-assistant/core/pull/60846
+[#60848]: https://github.com/home-assistant/core/pull/60848
+[#60849]: https://github.com/home-assistant/core/pull/60849
+[#60850]: https://github.com/home-assistant/core/pull/60850
+[#60852]: https://github.com/home-assistant/core/pull/60852
+[#60853]: https://github.com/home-assistant/core/pull/60853
+[#60854]: https://github.com/home-assistant/core/pull/60854
+[#60855]: https://github.com/home-assistant/core/pull/60855
+[#60857]: https://github.com/home-assistant/core/pull/60857
+[#60859]: https://github.com/home-assistant/core/pull/60859
+[#60860]: https://github.com/home-assistant/core/pull/60860
+[#60861]: https://github.com/home-assistant/core/pull/60861
+[#60863]: https://github.com/home-assistant/core/pull/60863
+[#60864]: https://github.com/home-assistant/core/pull/60864
+[#60865]: https://github.com/home-assistant/core/pull/60865
+[#60866]: https://github.com/home-assistant/core/pull/60866
+[#60867]: https://github.com/home-assistant/core/pull/60867
+[#60868]: https://github.com/home-assistant/core/pull/60868
+[#60871]: https://github.com/home-assistant/core/pull/60871
+[#60872]: https://github.com/home-assistant/core/pull/60872
+[#60875]: https://github.com/home-assistant/core/pull/60875
+[#60877]: https://github.com/home-assistant/core/pull/60877
+[#60880]: https://github.com/home-assistant/core/pull/60880
+[#60882]: https://github.com/home-assistant/core/pull/60882
+[#60883]: https://github.com/home-assistant/core/pull/60883
+[#60884]: https://github.com/home-assistant/core/pull/60884
+[#60886]: https://github.com/home-assistant/core/pull/60886
+[#60888]: https://github.com/home-assistant/core/pull/60888
+[#60889]: https://github.com/home-assistant/core/pull/60889
+[#60890]: https://github.com/home-assistant/core/pull/60890
+[#60891]: https://github.com/home-assistant/core/pull/60891
+[#60892]: https://github.com/home-assistant/core/pull/60892
+[#60893]: https://github.com/home-assistant/core/pull/60893
+[#60894]: https://github.com/home-assistant/core/pull/60894
+[#60895]: https://github.com/home-assistant/core/pull/60895
+[#60896]: https://github.com/home-assistant/core/pull/60896
+[#60902]: https://github.com/home-assistant/core/pull/60902
+[#60903]: https://github.com/home-assistant/core/pull/60903
+[#60904]: https://github.com/home-assistant/core/pull/60904
+[#60905]: https://github.com/home-assistant/core/pull/60905
+[#60907]: https://github.com/home-assistant/core/pull/60907
+[#60908]: https://github.com/home-assistant/core/pull/60908
+[#60910]: https://github.com/home-assistant/core/pull/60910
+[#60911]: https://github.com/home-assistant/core/pull/60911
+[#60912]: https://github.com/home-assistant/core/pull/60912
+[#60913]: https://github.com/home-assistant/core/pull/60913
+[#60915]: https://github.com/home-assistant/core/pull/60915
+[#60916]: https://github.com/home-assistant/core/pull/60916
+[#60917]: https://github.com/home-assistant/core/pull/60917
+[#60918]: https://github.com/home-assistant/core/pull/60918
+[#60920]: https://github.com/home-assistant/core/pull/60920
+[#60923]: https://github.com/home-assistant/core/pull/60923
+[#60925]: https://github.com/home-assistant/core/pull/60925
+[#60926]: https://github.com/home-assistant/core/pull/60926
+[#60927]: https://github.com/home-assistant/core/pull/60927
+[#60928]: https://github.com/home-assistant/core/pull/60928
+[#60931]: https://github.com/home-assistant/core/pull/60931
+[#60932]: https://github.com/home-assistant/core/pull/60932
+[#60934]: https://github.com/home-assistant/core/pull/60934
+[@Adminiuga]: https://github.com/Adminiuga
+[@AngellusMortis]: https://github.com/AngellusMortis
+[@Bre77]: https://github.com/Bre77
+[@Cereal2nd]: https://github.com/Cereal2nd
+[@Chen-IL]: https://github.com/Chen-IL
+[@Chybby]: https://github.com/Chybby
+[@CubieMedia]: https://github.com/CubieMedia
+[@DCSBL]: https://github.com/DCSBL
+[@Danielhiversen]: https://github.com/Danielhiversen
+[@Djelibeybi]: https://github.com/Djelibeybi
+[@FaserF]: https://github.com/FaserF
+[@Grennith]: https://github.com/Grennith
+[@Hypnos3]: https://github.com/Hypnos3
+[@Jc2k]: https://github.com/Jc2k
+[@JumpmanJunior]: https://github.com/JumpmanJunior
+[@KJonline]: https://github.com/KJonline
+[@Kane610]: https://github.com/Kane610
+[@LEJOUI]: https://github.com/LEJOUI
+[@Mariusthvdb]: https://github.com/Mariusthvdb
+[@MartinHjelmare]: https://github.com/MartinHjelmare
+[@MattWestb]: https://github.com/MattWestb
+[@MatthiasLohr]: https://github.com/MatthiasLohr
+[@N0ciple]: https://github.com/N0ciple
+[@NickM-27]: https://github.com/NickM-27
+[@PlusPlus-ua]: https://github.com/PlusPlus-ua
+[@Quentame]: https://github.com/Quentame
+[@RenierM26]: https://github.com/RenierM26
+[@RicArch97]: https://github.com/RicArch97
+[@Shutgun]: https://github.com/Shutgun
+[@Smeagolworms4]: https://github.com/Smeagolworms4
+[@Swamp-Ig]: https://github.com/Swamp-Ig
+[@ThomDietrich]: https://github.com/ThomDietrich
+[@TomBrien]: https://github.com/TomBrien
+[@XaF]: https://github.com/XaF
+[@agners]: https://github.com/agners
+[@alengwenus]: https://github.com/alengwenus
+[@alexanv1]: https://github.com/alexanv1
+[@alim4r]: https://github.com/alim4r
+[@allenporter]: https://github.com/allenporter
+[@andreasbrett]: https://github.com/andreasbrett
+[@arozans]: https://github.com/arozans
+[@arthurgeek]: https://github.com/arthurgeek
+[@asymworks]: https://github.com/asymworks
+[@atmurray]: https://github.com/atmurray
+[@austinmroczek]: https://github.com/austinmroczek
+[@avee87]: https://github.com/avee87
+[@azogue]: https://github.com/azogue
+[@bachya]: https://github.com/bachya
+[@balloob]: https://github.com/balloob
+[@bastgau]: https://github.com/bastgau
+[@bcelary]: https://github.com/bcelary
+[@bdraco]: https://github.com/bdraco
+[@bieniu]: https://github.com/bieniu
+[@bjpetit]: https://github.com/bjpetit
+[@bramkragten]: https://github.com/bramkragten
+[@bwduncan]: https://github.com/bwduncan
+[@carstenschroeder]: https://github.com/carstenschroeder
+[@cdce8p]: https://github.com/cdce8p
+[@cgtobi]: https://github.com/cgtobi
+[@chemelli74]: https://github.com/chemelli74
+[@chishm]: https://github.com/chishm
+[@chriss158]: https://github.com/chriss158
+[@cmroche]: https://github.com/cmroche
+[@crabmanX]: https://github.com/crabmanX
+[@csgitmeup]: https://github.com/csgitmeup
+[@ctalkington]: https://github.com/ctalkington
+[@cvroque]: https://github.com/cvroque
+[@danielperna84]: https://github.com/danielperna84
+[@davet2001]: https://github.com/davet2001
+[@davidjb]: https://github.com/davidjb
+[@decompil3d]: https://github.com/decompil3d
+[@deftdawg]: https://github.com/deftdawg
+[@dermotduffy]: https://github.com/dermotduffy
+[@dieselrabbit]: https://github.com/dieselrabbit
+[@dlangerm]: https://github.com/dlangerm
+[@dmulcahey]: https://github.com/dmulcahey
+[@dougiteixeira]: https://github.com/dougiteixeira
+[@drthanwho]: https://github.com/drthanwho
+[@eavanvalkenburg]: https://github.com/eavanvalkenburg
+[@eddyg]: https://github.com/eddyg
+[@eifinger]: https://github.com/eifinger
+[@einarhauks]: https://github.com/einarhauks
+[@elupus]: https://github.com/elupus
+[@emontnemery]: https://github.com/emontnemery
+[@emufan]: https://github.com/emufan
+[@epenet]: https://github.com/epenet
+[@ericmai624]: https://github.com/ericmai624
+[@ericvb]: https://github.com/ericvb
+[@farmio]: https://github.com/farmio
+[@felipediel]: https://github.com/felipediel
+[@flyize]: https://github.com/flyize
+[@fredrike]: https://github.com/fredrike
+[@frenck]: https://github.com/frenck
+[@g-kiss]: https://github.com/g-kiss
+[@gagebenne]: https://github.com/gagebenne
+[@garbled1]: https://github.com/garbled1
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[@gorbunovav]: https://github.com/gorbunovav
+[@h2zero]: https://github.com/h2zero
+[@hesselonline]: https://github.com/hesselonline
+[@hmmbob]: https://github.com/hmmbob
+[@howardjohn]: https://github.com/howardjohn
+[@hudcap]: https://github.com/hudcap
+[@hypnosiss]: https://github.com/hypnosiss
+[@j-stienstra]: https://github.com/j-stienstra
+[@janiversen]: https://github.com/janiversen
+[@jaredhobbs]: https://github.com/jaredhobbs
+[@jbouwh]: https://github.com/jbouwh
+[@jesserockz]: https://github.com/jesserockz
+[@jjlawren]: https://github.com/jjlawren
+[@jkeljo]: https://github.com/jkeljo
+[@jparchem]: https://github.com/jparchem
+[@jshank]: https://github.com/jshank
+[@jugla]: https://github.com/jugla
+[@kbickar]: https://github.com/kbickar
+[@klaasnicolaas]: https://github.com/klaasnicolaas
+[@klada]: https://github.com/klada
+[@koying]: https://github.com/koying
+[@kreene1987]: https://github.com/kreene1987
+[@kylehild]: https://github.com/kylehild
+[@lambtho12]: https://github.com/lambtho12
+[@leeyuentuen]: https://github.com/leeyuentuen
+[@ludeeus]: https://github.com/ludeeus
+[@majkrzak]: https://github.com/majkrzak
+[@mampfes]: https://github.com/mampfes
+[@marcelveldt]: https://github.com/marcelveldt
+[@marvin-w]: https://github.com/marvin-w
+[@mdawsonuk]: https://github.com/mdawsonuk
+[@mdz]: https://github.com/mdz
+[@mercenaruss]: https://github.com/mercenaruss
+[@mezz64]: https://github.com/mezz64
+[@mib1185]: https://github.com/mib1185
+[@micha91]: https://github.com/micha91
+[@milanmeu]: https://github.com/milanmeu
+[@mjj4791]: https://github.com/mjj4791
+[@mkowalchuk]: https://github.com/mkowalchuk
+[@muggenhor]: https://github.com/muggenhor
+[@muppet3000]: https://github.com/muppet3000
+[@mynameisdaniel32]: https://github.com/mynameisdaniel32
+[@natekspencer]: https://github.com/natekspencer
+[@oischinger]: https://github.com/oischinger
+[@ollo69]: https://github.com/ollo69
+[@pail23]: https://github.com/pail23
+[@peternijssen]: https://github.com/peternijssen
+[@petslane]: https://github.com/petslane
+[@pjrt]: https://github.com/pjrt
+[@puddly]: https://github.com/puddly
+[@pvizeli]: https://github.com/pvizeli
+[@raman325]: https://github.com/raman325
+[@redahb]: https://github.com/redahb
+[@refinedcranberry]: https://github.com/refinedcranberry
+[@regevbr]: https://github.com/regevbr
+[@rfleming71]: https://github.com/rfleming71
+[@rianadon]: https://github.com/rianadon
+[@rikroe]: https://github.com/rikroe
+[@rklomp]: https://github.com/rklomp
+[@rytilahti]: https://github.com/rytilahti
+[@schreyack]: https://github.com/schreyack
+[@scop]: https://github.com/scop
+[@sdague]: https://github.com/sdague
+[@sergeymaysak]: https://github.com/sergeymaysak
+[@skandalfo]: https://github.com/skandalfo
+[@skynetua]: https://github.com/skynetua
+[@slackr31337]: https://github.com/slackr31337
+[@slowflyer]: https://github.com/slowflyer
+[@spacegaier]: https://github.com/spacegaier
+[@starkillerOG]: https://github.com/starkillerOG
+[@thecode]: https://github.com/thecode
+[@thrawnarn]: https://github.com/thrawnarn
+[@timmo001]: https://github.com/timmo001
+[@tizzen33]: https://github.com/tizzen33
+[@tkdrob]: https://github.com/tkdrob
+[@tkislan]: https://github.com/tkislan
+[@tschamm]: https://github.com/tschamm
+[@uvjustin]: https://github.com/uvjustin
+[@viiru-]: https://github.com/viiru-
+[@vilppuvuorinen]: https://github.com/vilppuvuorinen
+[@werkstrom]: https://github.com/werkstrom
+[@xpac1985]: https://github.com/xpac1985
+[@yanuino]: https://github.com/yanuino
+[@zentale]: https://github.com/zentale
+[accuweather docs]: /integrations/accuweather/
+[acmeda docs]: /integrations/acmeda/
+[adax docs]: /integrations/adax/
+[adguard docs]: /integrations/adguard/
+[advantage_air docs]: /integrations/advantage_air/
+[aemet docs]: /integrations/aemet/
+[airnow docs]: /integrations/airnow/
+[airthings docs]: /integrations/airthings/
+[airvisual docs]: /integrations/airvisual/
+[alarm_control_panel docs]: /integrations/alarm_control_panel/
+[alexa docs]: /integrations/alexa/
+[amazon_polly docs]: /integrations/amazon_polly/
+[amberelectric docs]: /integrations/amberelectric/
+[ambient_station docs]: /integrations/ambient_station/
+[amcrest docs]: /integrations/amcrest/
+[apcupsd docs]: /integrations/apcupsd/
+[apple_tv docs]: /integrations/apple_tv/
+[apprise docs]: /integrations/apprise/
+[aprs docs]: /integrations/aprs/
+[arcam_fmj docs]: /integrations/arcam_fmj/
+[asuswrt docs]: /integrations/asuswrt/
+[atome docs]: /integrations/atome/
+[august docs]: /integrations/august/
+[aurora_abb_powerone docs]: /integrations/aurora_abb_powerone/
+[auth docs]: /integrations/auth/
+[avion docs]: /integrations/avion/
+[awair docs]: /integrations/awair/
+[axis docs]: /integrations/axis/
+[azure_devops docs]: /integrations/azure_devops/
+[balboa docs]: /integrations/balboa/
+[binary_sensor docs]: /integrations/binary_sensor/
+[bluesound docs]: /integrations/bluesound/
+[bmw_connected_drive docs]: /integrations/bmw_connected_drive/
+[bond docs]: /integrations/bond/
+[bosch_shc docs]: /integrations/bosch_shc/
+[broadlink docs]: /integrations/broadlink/
+[brother docs]: /integrations/brother/
+[brunt docs]: /integrations/brunt/
+[buienradar docs]: /integrations/buienradar/
+[button docs]: /integrations/button/
+[camera docs]: /integrations/camera/
+[cast docs]: /integrations/cast/
+[climacell docs]: /integrations/climacell/
+[cloud docs]: /integrations/cloud/
+[cloudflare docs]: /integrations/cloudflare/
+[coinbase docs]: /integrations/coinbase/
+[command_line docs]: /integrations/command_line/
+[compensation docs]: /integrations/compensation/
+[config docs]: /integrations/config/
+[control4 docs]: /integrations/control4/
+[cover docs]: /integrations/cover/
+[crownstone docs]: /integrations/crownstone/
+[daikin docs]: /integrations/daikin/
+[darksky docs]: /integrations/darksky/
+[debugpy docs]: /integrations/debugpy/
+[deconz docs]: /integrations/deconz/
+[delijn docs]: /integrations/delijn/
+[demo docs]: /integrations/demo/
+[denonavr docs]: /integrations/denonavr/
+[device_tracker docs]: /integrations/device_tracker/
+[devolo_home_control docs]: /integrations/devolo_home_control/
+[devolo_home_network docs]: /integrations/devolo_home_network/
+[dexcom docs]: /integrations/dexcom/
+[dhcp docs]: /integrations/dhcp/
+[dht docs]: /integrations/dht/
+[directv docs]: /integrations/directv/
+[discord docs]: /integrations/discord/
+[dlna_dmr docs]: /integrations/dlna_dmr/
+[doorbird docs]: /integrations/doorbird/
+[dsmr docs]: /integrations/dsmr/
+[duckdns docs]: /integrations/duckdns/
+[dunehd docs]: /integrations/dunehd/
+[dyson docs]: /integrations/dyson/
+[ecobee docs]: /integrations/ecobee/
+[efergy docs]: /integrations/efergy/
+[eight_sleep docs]: /integrations/eight_sleep/
+[elgato docs]: /integrations/elgato/
+[emby docs]: /integrations/emby/
+[emonitor docs]: /integrations/emonitor/
+[emulated_hue docs]: /integrations/emulated_hue/
+[emulated_kasa docs]: /integrations/emulated_kasa/
+[energy docs]: /integrations/energy/
+[enphase_envoy docs]: /integrations/enphase_envoy/
+[environment_canada docs]: /integrations/environment_canada/
+[esphome docs]: /integrations/esphome/
+[evil_genius_labs docs]: /integrations/evil_genius_labs/
+[ezviz docs]: /integrations/ezviz/
+[fan docs]: /integrations/fan/
+[fjaraskupan docs]: /integrations/fjaraskupan/
+[flo docs]: /integrations/flo/
+[flunearyou docs]: /integrations/flunearyou/
+[flux_led docs]: /integrations/flux_led/
+[forecast_solar docs]: /integrations/forecast_solar/
+[forked_daapd docs]: /integrations/forked_daapd/
+[freebox docs]: /integrations/freebox/
+[fritz docs]: /integrations/fritz/
+[fritzbox docs]: /integrations/fritzbox/
+[fritzbox_callmonitor docs]: /integrations/fritzbox_callmonitor/
+[fronius docs]: /integrations/fronius/
+[frontend docs]: /integrations/frontend/
+[github docs]: /integrations/github/
+[goalzero docs]: /integrations/goalzero/
+[gogogate2 docs]: /integrations/gogogate2/
+[google_assistant docs]: /integrations/google_assistant/
+[google_cloud docs]: /integrations/google_cloud/
+[gree docs]: /integrations/gree/
+[greeneye_monitor docs]: /integrations/greeneye_monitor/
+[growatt_server docs]: /integrations/growatt_server/
+[guardian docs]: /integrations/guardian/
+[harmony docs]: /integrations/harmony/
+[hassio docs]: /integrations/hassio/
+[heos docs]: /integrations/heos/
+[here_travel_time docs]: /integrations/here_travel_time/
+[history docs]: /integrations/history/
+[hive docs]: /integrations/hive/
+[homeassistant docs]: /integrations/homeassistant/
+[homekit docs]: /integrations/homekit/
+[homekit_controller docs]: /integrations/homekit_controller/
+[homematic docs]: /integrations/homematic/
+[honeywell docs]: /integrations/honeywell/
+[http docs]: /integrations/http/
+[huawei_lte docs]: /integrations/huawei_lte/
+[hue docs]: /integrations/hue/
+[humidifier docs]: /integrations/humidifier/
+[hunterdouglas_powerview docs]: /integrations/hunterdouglas_powerview/
+[hyperion docs]: /integrations/hyperion/
+[iota docs]: /integrations/iota/
+[ipp docs]: /integrations/ipp/
+[iqvia docs]: /integrations/iqvia/
+[isy994 docs]: /integrations/isy994/
+[izone docs]: /integrations/izone/
+[jellyfin docs]: /integrations/jellyfin/
+[jewish_calendar docs]: /integrations/jewish_calendar/
+[keenetic_ndms2 docs]: /integrations/keenetic_ndms2/
+[knx docs]: /integrations/knx/
+[kodi docs]: /integrations/kodi/
+[konnected docs]: /integrations/konnected/
+[kostal_plenticore docs]: /integrations/kostal_plenticore/
+[launch_library docs]: /integrations/launch_library/
+[lcn docs]: /integrations/lcn/
+[lg_netcast docs]: /integrations/lg_netcast/
+[light docs]: /integrations/light/
+[litterrobot docs]: /integrations/litterrobot/
+[lookin docs]: /integrations/lookin/
+[lovelace docs]: /integrations/lovelace/
+[luci docs]: /integrations/luci/
+[luftdaten docs]: /integrations/luftdaten/
+[lutron_caseta docs]: /integrations/lutron_caseta/
+[lyric docs]: /integrations/lyric/
+[maxcube docs]: /integrations/maxcube/
+[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/
+[mikrotik docs]: /integrations/mikrotik/
+[mill docs]: /integrations/mill/
+[mitemp_bt docs]: /integrations/mitemp_bt/
+[mobile_app docs]: /integrations/mobile_app/
+[modem_callerid docs]: /integrations/modem_callerid/
+[modern_forms docs]: /integrations/modern_forms/
+[motion_blinds docs]: /integrations/motion_blinds/
+[motioneye docs]: /integrations/motioneye/
+[mqtt docs]: /integrations/mqtt/
+[mychevy docs]: /integrations/mychevy/
+[mysensors docs]: /integrations/mysensors/
+[nam docs]: /integrations/nam/
+[nanoleaf docs]: /integrations/nanoleaf/
+[nest docs]: /integrations/nest/
+[netatmo docs]: /integrations/netatmo/
+[netgear docs]: /integrations/netgear/
+[network docs]: /integrations/network/
+[neurio_energy docs]: /integrations/neurio_energy/
+[nfandroidtv docs]: /integrations/nfandroidtv/
+[nissan_leaf docs]: /integrations/nissan_leaf/
+[notion docs]: /integrations/notion/
+[nuki docs]: /integrations/nuki/
+[number docs]: /integrations/number/
+[nut docs]: /integrations/nut/
+[nws docs]: /integrations/nws/
+[octoprint docs]: /integrations/octoprint/
+[onewire docs]: /integrations/onewire/
+[opencv docs]: /integrations/opencv/
+[opengarage docs]: /integrations/opengarage/
+[openuv docs]: /integrations/openuv/
+[openweathermap docs]: /integrations/openweathermap/
+[ozw docs]: /integrations/ozw/
+[p1_monitor docs]: /integrations/p1_monitor/
+[philips_js docs]: /integrations/philips_js/
+[pi_hole docs]: /integrations/pi_hole/
+[ping docs]: /integrations/ping/
+[plugwise docs]: /integrations/plugwise/
+[point docs]: /integrations/point/
+[powerwall docs]: /integrations/powerwall/
+[profiler docs]: /integrations/profiler/
+[prometheus docs]: /integrations/prometheus/
+[push docs]: /integrations/push/
+[pvpc_hourly_pricing docs]: /integrations/pvpc_hourly_pricing/
+[python_script docs]: /integrations/python_script/
+[rachio docs]: /integrations/rachio/
+[rainmachine docs]: /integrations/rainmachine/
+[rdw docs]: /integrations/rdw/
+[recollect_waste docs]: /integrations/recollect_waste/
+[recorder docs]: /integrations/recorder/
+[renault docs]: /integrations/renault/
+[rest docs]: /integrations/rest/
+[rfxtrx docs]: /integrations/rfxtrx/
+[ridwell docs]: /integrations/ridwell/
+[ring docs]: /integrations/ring/
+[rituals_perfume_genie docs]: /integrations/rituals_perfume_genie/
+[rmvtransport docs]: /integrations/rmvtransport/
+[roku docs]: /integrations/roku/
+[roomba docs]: /integrations/roomba/
+[safe_mode docs]: /integrations/safe_mode/
+[samsungtv docs]: /integrations/samsungtv/
+[screenlogic docs]: /integrations/screenlogic/
+[script docs]: /integrations/script/
+[scsgate docs]: /integrations/scsgate/
+[sense docs]: /integrations/sense/
+[sensor docs]: /integrations/sensor/
+[sentry docs]: /integrations/sentry/
+[seventeentrack docs]: /integrations/seventeentrack/
+[shelly docs]: /integrations/shelly/
+[sia docs]: /integrations/sia/
+[signal_messenger docs]: /integrations/signal_messenger/
+[simplisafe docs]: /integrations/simplisafe/
+[sma docs]: /integrations/sma/
+[smappee docs]: /integrations/smappee/
+[smartthings docs]: /integrations/smartthings/
+[smarttub docs]: /integrations/smarttub/
+[soma docs]: /integrations/soma/
+[somfy_mylink docs]: /integrations/somfy_mylink/
+[songpal docs]: /integrations/songpal/
+[sonos docs]: /integrations/sonos/
+[spider docs]: /integrations/spider/
+[spotify docs]: /integrations/spotify/
+[sql docs]: /integrations/sql/
+[squeezebox docs]: /integrations/squeezebox/
+[ssdp docs]: /integrations/ssdp/
+[starline docs]: /integrations/starline/
+[statistics docs]: /integrations/statistics/
+[stookalert docs]: /integrations/stookalert/
+[stream docs]: /integrations/stream/
+[subaru docs]: /integrations/subaru/
+[surepetcare docs]: /integrations/surepetcare/
+[switch docs]: /integrations/switch/
+[switchbot docs]: /integrations/switchbot/
+[switcher_kis docs]: /integrations/switcher_kis/
+[syncthing docs]: /integrations/syncthing/
+[syncthru docs]: /integrations/syncthru/
+[synology_dsm docs]: /integrations/synology_dsm/
+[system_bridge docs]: /integrations/system_bridge/
+[systemmonitor docs]: /integrations/systemmonitor/
+[tado docs]: /integrations/tado/
+[tailscale docs]: /integrations/tailscale/
+[tasmota docs]: /integrations/tasmota/
+[tautulli docs]: /integrations/tautulli/
+[telnet docs]: /integrations/telnet/
+[temper docs]: /integrations/temper/
+[template docs]: /integrations/template/
+[tensorflow docs]: /integrations/tensorflow/
+[tesla_wall_connector docs]: /integrations/tesla_wall_connector/
+[tibber docs]: /integrations/tibber/
+[tile docs]: /integrations/tile/
+[tolo docs]: /integrations/tolo/
+[tolosauna docs]: /integrations/tolosauna/
+[toon docs]: /integrations/toon/
+[totalconnect docs]: /integrations/totalconnect/
+[tplink docs]: /integrations/tplink/
+[traccar docs]: /integrations/traccar/
+[tractive docs]: /integrations/tractive/
+[tradfri docs]: /integrations/tradfri/
+[trafikverket_weatherstation docs]: /integrations/trafikverket_weatherstation/
+[transmission docs]: /integrations/transmission/
+[trend docs]: /integrations/trend/
+[tts docs]: /integrations/tts/
+[tuya docs]: /integrations/tuya/
+[twentemilieu docs]: /integrations/twentemilieu/
+[twinkly docs]: /integrations/twinkly/
+[unifi docs]: /integrations/unifi/
+[upb docs]: /integrations/upb/
+[upcloud docs]: /integrations/upcloud/
+[upnp docs]: /integrations/upnp/
+[uptime docs]: /integrations/uptime/
+[uptimerobot docs]: /integrations/uptimerobot/
+[usb docs]: /integrations/usb/
+[utility_meter docs]: /integrations/utility_meter/
+[vallox docs]: /integrations/vallox/
+[velbus docs]: /integrations/velbus/
+[venstar docs]: /integrations/venstar/
+[verisure docs]: /integrations/verisure/
+[version docs]: /integrations/version/
+[vesync docs]: /integrations/vesync/
+[vicare docs]: /integrations/vicare/
+[vizio docs]: /integrations/vizio/
+[vlc_telnet docs]: /integrations/vlc_telnet/
+[volumio docs]: /integrations/volumio/
+[volvooncall docs]: /integrations/volvooncall/
+[wake_on_lan docs]: /integrations/wake_on_lan/
+[wallbox docs]: /integrations/wallbox/
+[watttime docs]: /integrations/watttime/
+[waze_travel_time docs]: /integrations/waze_travel_time/
+[weather docs]: /integrations/weather/
+[wemo docs]: /integrations/wemo/
+[wiffi docs]: /integrations/wiffi/
+[wilight docs]: /integrations/wilight/
+[wirelesstag docs]: /integrations/wirelesstag/
+[wled docs]: /integrations/wled/
+[xbox docs]: /integrations/xbox/
+[xiaomi_aqara docs]: /integrations/xiaomi_aqara/
+[xiaomi_miio docs]: /integrations/xiaomi_miio/
+[yale_smart_alarm docs]: /integrations/yale_smart_alarm/
+[yamaha_musiccast docs]: /integrations/yamaha_musiccast/
+[yeelight docs]: /integrations/yeelight/
+[youless docs]: /integrations/youless/
+[zeroconf docs]: /integrations/zeroconf/
+[zerproc docs]: /integrations/zerproc/
+[zestimate docs]: /integrations/zestimate/
+[zha docs]: /integrations/zha/
+[zone docs]: /integrations/zone/
+[zwave_js docs]: /integrations/zwave_js/
diff --git a/source/images/blog/2021-12/social.png b/source/images/blog/2021-12/social.png
new file mode 100644
index 00000000000..7533fc31806
Binary files /dev/null and b/source/images/blog/2021-12/social.png differ