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. + +[![Open your Home Assistant instance and show your configuration panel.](https://my.home-assistant.io/badges/config.svg)](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! + +[![Open your Home Assistant instance and show your areas.](https://my.home-assistant.io/badges/areas.svg)](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