From 2e635fbe3b181ba0a4fea1c139b27b4c3cda52ec Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Wed, 25 Aug 2021 22:35:20 +0200 Subject: [PATCH] 2021.9: Initial beta release notes --- _config.yml | 6 +- .../_posts/2021-09-01-release-20219.markdown | 2341 +++++++++++++++++ 2 files changed, 2344 insertions(+), 3 deletions(-) create mode 100644 source/_posts/2021-09-01-release-20219.markdown diff --git a/_config.yml b/_config.yml index 2ed288f5ae7..3365ff3ecea 100644 --- a/_config.yml +++ b/_config.yml @@ -107,9 +107,9 @@ social: # Home Assistant release details current_major_version: 2021 -current_minor_version: 8 -current_patch_version: 8 -date_released: 2021-08-18 +current_minor_version: 9 +current_patch_version: 0 +date_released: 2021-09-01 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. diff --git a/source/_posts/2021-09-01-release-20219.markdown b/source/_posts/2021-09-01-release-20219.markdown new file mode 100644 index 00000000000..6fd6cafe475 --- /dev/null +++ b/source/_posts/2021-09-01-release-20219.markdown @@ -0,0 +1,2341 @@ +--- +layout: post +title: "2021.9.0: Beta release notes" +description: "2021.9.0: Beta release notes" +date: 2021-08-25 00:00:00 +date_formatted: "September 1, 2021" +author: Franck Nijhof +author_twitter: frenck +comments: true +categories: +- Release-Notes +- Core +og_image: /images/blog/2021-09/social.png +feedback: true +--- + + + + + +These are the beta release notes for Home Assistant Core 2021.9 (and is thus a +work in progress). + +If you encounter any issues with the beta release, please report them on GitHub: + +- Issues with integrations, automations and such (Core related):
+ +- Issues with the frontend/Lovelace:
+ +- Issues with the Supervisor:
+ +- Issues with the documentation:
+ + +Please be sure to include the beta version you are running in the issue +description (not title), so we can classify your issue correctly. + +Issues introduced in the beta are processed with priority. + +- [Energy now supports batteries and gas!](#energy-now-supports-batteries-and-gas) +- [Long term statistics unlocked for all sensors](#long-term-statistics-unlocked-for-all-sensors) +- [USB Discovery](#usb-discovery) +- [New template entities: Select and Number](#new-template-entities-select-and-number) +- [New template functions for area's](#new-template-functions-for-areas) +- [Other noteworthy changes](#other-noteworthy-changes) +- [New Integrations](#new-integrations) +- [New Platforms](#new-platforms) +- [Integrations now available to set up from the UI](#integrations-now-available-to-set-up-from-the-ui) +- [If you need help...](#if-you-need-help) +- [Breaking Changes](#breaking-changes) +- [All changes](#all-changes) + +## Energy now supports batteries and gas! + + + +We have now added support for using your Home batteries with the energy +dashboard. If you are heating your home with Gas, than you are in luck too! +The Home Assistant energy management can now also monitor your gas usage. + + + + +Additionally, a LOT of energy related integrations have been been updated +this release to support all this new energy greatness! So, if you where +unlucky your integration didn't show up on the dashboard yet, as of this +release changes are they will. + +## Long term statistics unlocked for all sensors + +In the previous release, we introduced long term statistics for sensors and +introduce a nice Lovelace card that goes with it. However, in the previous +release we only unlocked this feature for temperature, humidity, power and +energy related sensors. + + + + +As of this release, we unleashed the long term statistics for all sensors! +An integration still do need to provide Home Assistant with information +about the type of value it provides, and a lot of integrations have done that +at this point. + + +For example, SpeedTest.net sensors can now be used with these. + +## USB Discovery + +Thanks to [@bdraco], Home Assistant now can discover USB device and provide +integrations for those devices with configuration automatically. + +For example, if you plug in your new Aeotec Z-Wave USB stick into your +machine running Home Assistant, it will discover it and Home Assistant will +notify you about it. With a single click you can than configure the Z-Wave JS +integration. + + + + +This works similar as with other integration that discover devices on, for +example, your network but now based on physical hardware plugged into the +USB port of your Home Assistant device. + +Super cool! Thanks [@bdraco]! + +Added to ZHA, Z-Wave JS + +## New template entities: Select and Number + +This is cool, this release we weclome two new platforms to the template +integrations: `select` and `number`. +Thanks to [@raman325] you can create your own! + + + +## New template functions for area's + +Two new template function have been added, that make working with area's +in YAML when using template a little bit easier. + +- `area_id("value")` returns the area ID for a given value. The `value` van be +a device ID, entity ID, or area name. This function can also be used as a filter. + + + +- `area_name("value")` returns the area name for a given value. The `value` can + be a device ID, entity ID, or area ID. This function can also be used as a filter. + + + +## Other noteworthy changes + +There is much more juice in this release; here are some of the other +noteworthy changes this release: + + + + +- Camera image scaling by [@bdraco]? +- System Bridge v2.3.0+ - Data from WebSocket ([@timmo001] - [#53443]) ([system_bridge docs]) +- Add light transition for Shelly integration ([@bieniu] - [#54327]) ([shelly docs]) +- Yeelight local push updates ([@starkillerOG] - [#51160]) ([yeelight docs]) +- Add support for Swedish smart electricity meters to DSMR ([@emontnemery] - [#54630]) ([dsmr docs]) +- Yamaha Musiccast Media Browser feature ([@micha91] - [#54864]) ([yamaha_musiccast docs]) +- Add Rainforest Eagle tests and price ([@balloob] - [#54887]) ([rainforest_eagle docs]) +- Compile missing statistics ([@emontnemery] - [#54690]) ([recorder docs]) +- Add support for area ID in zwave_js service calls ([@raman325] - [#54940]) ([zwave_js docs]) +- Add support for Google Assistant's LocatorTrait for vacuum cleaners ([@giannello] - [#55015]) ([google_assistant docs]) +- Add service to clear completed shoppinglist items ([@GrumpyMeow] - [#55032]) ([shopping_list docs]) +- Support device triggers in HomeKit ([@bdraco] - [#53869]) ([homekit docs]) +- Sonos add bass & treble EQ option ([@Tigger2014] - [#53978]) ([sonos docs]) +- Add "cron patterns" to define utility_meter cycles ([@dgomes] - [#46795]) ([utility_meter docs]) +- Add services to bond to start and stop increase/decrease brightness ([@bdraco] - [#55006]) ([bond docs]) + +A bunch of integration that now support long term / energy. Some of these need +to be mentioned in the first paragraph about the energy changes or in the +paragraph about the unlocked long term statistics for sensors. + +- Add state class measurement to all suitable sensors on Speedtest.net ([@mib1185] - [#53693]) ([speedtestdotnet docs]) +- Add support for jammed status to SimpliSafe locks ([@bachya] - [#54006]) ([simplisafe docs]) (breaking-change) +- Add statistics support for the PVOutput sensor ([@zoeisnowooze] - [#54149]) ([pvoutput docs]) +- Add state class and last reset in kostal_plenticore ([@gianklug] - [#54084]) ([kostal_plenticore docs]) +- OVO Energy Long-term Statistics ([@timmo001] - [#54157]) ([ovo_energy docs]) +- Refactor Fronius sensor device class and long term statistics ([@nielstron] - [#54185]) ([fronius docs]) +- Add state_class attribute to keba integration ([@carstenschroeder] - [#54271]) ([keba docs]) +- Use state class total increasing for TPLink smart plugs ([@mib1185] - [#54723]) ([tplink docs]) +- Update deCONZ to use new state classes ([@frenck] - [#54729]) ([deconz docs]) +- Add state classes to Vallox sensors ([@andre-richter] - [#54297]) ([vallox docs]) +- Energy support for Solax inverters ([@ppetru] - [#54654]) ([solax docs]) +- Rfxtrx,STATE_CLASS_TOTAL_INCREASING ([@Danielhiversen] - [#54776]) ([rfxtrx docs]) +- Add Gas device class to DSMR Reader ([@frenck] - [#54748]) ([dsmr_reader docs]) +- Add energy management support to Growatt server integration ([@maschel] - [#54174]) ([growatt_server docs]) +- Add growatt total state_class for storage ([@JasperPlant] - [#54913]) ([growatt_server docs]) +- Extract smappee switch energy attributes into sensors ([@bsmappee] - [#54329]) ([smappee docs]) (breaking-change) +- Add state_class to relevant sensors in Danfoss Air ([@JonasPed] - [#54847]) ([danfoss_air docs]) +- Add state_class and device_class to Solarlog platform ([@Ernst79] - [#53946]) ([solarlog docs]) +- Update YouLess integration for long time measurements ([@gjong] - [#54767]) ([youless docs]) +- SMA: Add statistics support for power sensors ([@andre-richter] - [#54422]) ([sma docs]) +- Add statistics for emoncms power and energy feeds ([@lukewaite] - [#55109]) ([emoncms docs]) +- Add configurable `state_class` to Modbus sensors ([@farmio] - [#54103]) ([modbus docs]) + +## New Integrations + +We welcome the following new integrations this release: + +- [AirTouch 4][airtouch4 docs], added by [@LonePurpleWolf] +- [Fjäråskupan][fjaraskupan docs], added by [@elupus] +- [P1 Monitor][p1_monitor docs], added by [@klaasnicolaas] +- [Tractive][tractive docs], added by [@zhulik] +- [USB Discovery][usb docs], added by [@bdraco] + +## New Platforms + +The following integration got support for a new platform: + + + +- Add `binary_sensor` platform for Xiaomi Miio integration ([@bieniu] - [#54096]) ([xiaomi_miio docs]) (new-platform) +- Add light platform to MyQ ([@ehendrix23] - [#54611]) ([myq docs]) (new-platform) +- Add binary sensor platform to Renault integration ([@epenet] - [#54750]) ([renault docs]) (new-platform) +- Add select platform to template integration ([@raman325] - [#54835]) ([template docs]) (new-platform) +- Add number platform to template integration ([@raman325] - [#54789]) ([template docs]) (new-platform) + +## Integrations now available to set up from the UI + +The following integrations are now available via the Home Assistant UI: + +- [Nanoleaf][nanoleaf docs], done by [@milanmeu] +- [Nmap Tracker][nmap_tracker docs], done by [@bdraco] +- [Rainforest EAGLE-200][rainforest_eagle docs], done by [@balloob] +- [Uptime Robot][uptimerobot docs], done by [@ludeeus] + +## 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 "Lutron" %} + +If (and only if) you currently attempt to make use of the (previously ambiguous) +Lutron button events in an automation, then you will need to switch to +the new, unambiguous name. That said, since the current events are ambiguous +they are not very useful. + +([@nickovs] - [#53666]) ([lutron docs]) + +{% enddetails %} + +{% details "1-Wire" %} + +The previously deprecated YAML configuration of the 1-Wire integration has been removed. + +1-Wire 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. + +([@epenet] - [#53728]) ([onewire docs]) + +{% enddetails %} + +{% details "Supervisor" %} + +The usage of "snapshot" is deprecated, from now "backup" is used instead. + +- The service `snapshot_full` is now named `backup_full`, the service `snapshot_full` will be removed in Home Assistant 2021.11. +- The service `snapshot_partial` is now named `backup_partial`, the service `snapshot_partial` will be removed in Home Assistant 2021.11. +- Using `snapshot` in the data for the `restore_full` and `restore_partial` services is deprecated and will be removed in Home Assistant 2021.11, use `slug` instead. + +Old examples: + +```yaml +service: hassio.snapshot_full +data: + name: "Awesome full snapshot" +... +service: hassio.snapshot_partial +data: + name: "Awesome partial snapshot" + addons: + - awesome_addon +... +service: hassio.restore_full +data: + snapshot: sn2321 +... +service: hassio.restore_partial +data: + snapshot: sn2321 + addons: + - awesome_addon +``` + +New examples: + +```yaml +service: hassio.backup_full +data: + name: "Awesome full snapshot" +... +service: hassio.backup_partial +data: + name: "Awesome partial snapshot" + addons: + - awesome_addon +... +service: hassio.restore_full +data: + slug: sn2321 +... +service: hassio.restore_partial +data: + slug: sn2321 + addons: + - awesome_addon +``` + +([@ludeeus] - [#53851]) ([hassio docs]) ([zwave_js docs]) + +{% enddetails %} + +{% details "HomeKit" %} + +The underlying HomeKit protocol version has changed from version 1.0 to version 1.1. + +Cameras with motion sensors and some other accessories may need to be reset using +the `homekit.reset_accessory` service or unpaired and paired again. + +If after unpairing with your iOS the QR code does not show, the pairings can +manually be removed with the `homekit.unpair` service using the Developer Tools. + +([@bdraco] - [#53780]) ([homekit docs]) + +{% enddetails %} + +{% details "Uptime Robot" %} + +The Uptime Robot integration migrated to configuration via the UI. Configuring +Uptime Robot 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. + +([@ludeeus] - [#53938]) ([uptimerobot docs]) + +{% enddetails %} + +{% details "SimpliSafe" %} + +SimpliSafe locks no longer have a `jammed` attribute; instead, when jammed, +they will show a `jammed` state. + +If you are currently using the `jammed` attribute in your automation or scripts, +you'll need to adopt to this change. + +([@bachya] - [#54006]) ([simplisafe docs]) + +{% enddetails %} + +{% details "Growatt" %} + +The previously deprecated YAML configuration of the Growatt integration has been removed. + +Growatt 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. + +([@frenck] - [#54325]) ([growatt_server docs]) + +{% enddetails %} + +{% details "Tesla Powerwall" %} + +The Tesla Powerwall attributes for `energy_exported_(in_kW)` and +`energy_imported_(in_kW)` have been converted to their own energy sensors. + +If you relied on those attributes in your automation or scripts, you'll need +to adopt to this change. + +([@bdraco] - [#54018]) ([powerwall docs]) + +{% enddetails %} + +{% details "Custom integrations: Cameras" %} + +This breaking change is only relevant to custom integration authors! + +The function signature for `async_camera_image` and `camera_image` has changed +to include a width and height. + +```py + async def async_camera_image( + self, width: int | None = None, height: int | None = None + ) -> bytes | None: +``` + +The goal of the change is to reduce the overhead of sending large images that +will only be displayed as small images as this can quickly consume hundred of +megabytes of bandwidth / mobile data allocation. + +Scaling should be done on a best effort basis and is not a strict requirement +as the existing behavior of falling back to scaling at the display layer is +preserved. + +- Integrations should pass on the width and height if the underlying + camera is capable of scaling the image. + +- Integrations may choose to ignore the height parameter in order to + preserve aspect ratio + +- If the integration cannot scale the image and returns a jpeg image, it will + automatically be scaled by the camera integration when requested. + +([@bdraco] - [#53835]) + +{% enddetails %} + +{% details "Custom integrations: Sensors" %} + +This breaking change is only relevant to custom integration authors! + +Although not a breaking change from a user's perspective, this is a significant +change from a developer's perspective. + +Temperature conversions are moving from the `Entity` base class to the +`SensorEntity` base class. + +Additionally, we have two new properties, `native_value` (which replaces `state`) +and `native_unit_of_measurement` which replaces `unit_of_measurement`. + +Read all about it in the developer blog: + + + +([@emontnemery] - [#48261]) ([abode docs]) ([sensor docs]) + +---- + +Additionally, a new sensor state class has been introduced: `total_increasing`. + +This releases the `measurement` that was used in conjunction with the +`last_reset` attribute. For more information about his can be found in the +developer blog about it: + + + +{% enddetails %} + +{% details "IKEA TRÅDFRI" %} + +The legacy code, which imported hosts from a JSON file have been removed. +If you relied on that, please follow the instructions to setup the hosts +(can be detected automatically). + +To avoid this first upgrade to 2021.8.x first which will (which will +automatically import) and then upgrade to latest release. + +([@janiversen] - [#54452]) ([tradfri docs]) + +{% enddetails %} + +{% details "Toon" %} + +The unit of measurement of gas and water sensors for Toon has changed from `m3` to `m³`. + +([@bramkragten] - [#54110]) ([toon docs]) + +{% enddetails %} + +{% details "DSMR" %} + +The unit of measurement of gas sensors for DSMR has changed from `m3` to `m³`. + +([@bramkragten] - [#54110]) ([dsmr docs]) + +{% enddetails %} + +{% details "Wink" %} + +The Wink integration has been deprecated and is pending removal in +Home Assistant 2021.11. + +Their developer portal, needed for obtaining an API token, has been taken +offline and their customer support has confirmed no new token or client/secret +can be obtained. This makes it impossible to use this integration. + +([@frenck] - [#54496]) ([wink docs]) + +{% enddetails %} + +{% details "UpCloud" %} + +The previously deprecated YAML configuration of the UpCloud integration has been removed. + +UpCloud 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. + +([@scop] - [#54516]) ([upcloud docs]) + +{% enddetails %} + +{% details "Xiaomi Miio" %} + +The following fan entity attributes `temperature`, `humidity`, `aqi`, +`purify volume`, `filter life remaining`, `filter hours used`, `co2`, +`illuminance`, `motor speed` and ` motor2 speed` has been migrated to their own +sensor entities. + +If you relied on those attributes in your automation or scripts, you'll need +to adopt to this change. + +The `filter_rfid_product_id` and `filter_rfid_tag` fan entity attributes +have been removed as they are of little use to keep around. + +([@bieniu] - [#54564]) ([xiaomi_miio docs]) + +---- + +The service `fan_set_led_brightness` will is removed and the **Led Brightness** +`select` entity has been created instead. + +If you relied on this service in your automation or scripts, you'll need +to adopt to this change. + +([@bieniu] - [#54702]) ([xiaomi_miio docs]) + +---- + +The previously (deprecated and old style) speeds, speed list and speed services +have been removed. + +([@SmaginPV] - [#54182]) ([xiaomi_miio docs]) + +---- + +The services `fan_set_buzzer_on`, `fan_set_buzzer_off`, `fan_set_led_on`, +`fan_set_led_off`, `fan_set_child_lock_on`, `fan_set_child_lock_off`, +`fan_set_auto_detect_on`, `fan_set_auto_detect_off`, `fan_set_learn_mode_on` +and `fan_set_learn_mode_off` are be removed. + +Switch entities have been created to replace those. + +If you relied on one of these services in your automation or scripts, you'll +need to adopt to this change. + +([@bieniu] - [#54834]) ([xiaomi_miio docs]) + +---- + +The previously deprecated YAML configuration of the Xiaomi Miio integration has +been removed (with the exception of the `remote` platform). + +Xiaomi Miio 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. + +([@rytilahti] - [#54930]) ([xiaomi_miio docs]) + +---- + +The services `fan_set_favorite_level`, `fan_set_fan_level`, and `fan_set_volume` +have be removed and `number` entities have been created instead. + +If you relied on one of these services in your automation or scripts, you'll +need to adopt to this change. + +([@bieniu] - [#54977]) ([xiaomi_miio docs]) + +{% enddetails %} + +{% details "Z-Wave JS" %} + +The Basic CC always comes with two values, `currentValue` and `targetValue`. + +We currently only have a discovery schema for `currentValue` which creates a +sensor, making these Basic CC values noninteractive. As of this release we will +create a `number` platform entity for Basic CC values instead of sensors. + +([@raman325] - [#54512]) ([zwave_js docs]) + +---- + +If you have created an automation with the `zwave_js` device condition +`Current value of a Z-Wave Value` for the `CONFIGURATION` Command Class, +your automation will no longer work. + +Instead, you should use the `Config parameter` device condition for the value +you were trying to use for your condition. + +([@raman325] - [#54962]) ([zwave_js docs]) + +{% enddetails %} + +{% details "Nmap Tracker" %} + +The Nmap Tracker integration migrated to configuration via the UI. Configuring +Nmap Tracker 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. + +To disable creation of new entities, use the the system option to disable new +entities for the config entry, and manually enable entities as needed. + +([@bdraco] - [#54715]) ([nmap_tracker docs]) + +{% enddetails %} + +{% details "HomeKit Controller" %} + +A future release (currently scheduled for 2021.12.0) will remove the (deprecated) +air quality platfrom from the HomeKit Controller integration. + +Starting from this release the air quality values have been broken out as their +own sensors, making them easier to incorporate in your dashboard widgets, +graphs and automations. + +If you relied on an air quality entity (provided by the HomeKit Controller +integration) in your automation or scripts, you'll need to adopt to this change. + +([@Jc2k] - [#54673]) ([homekit_controller docs]) + +{% enddetails %} + +{% details "Smappee" %} + +The power and energy attributes from switch entities have been removed and +replaced by sensors. + +If you relied on these attributes in your automations, scripts or Lovelace +dashboards, you'll need to update your configuration to match this change. + +([@bsmappee] - [#54329]) ([smappee docs]) + +{% enddetails %} + +{% details "Epson" %} + +The previously deprecated YAML configuration of the Epson integration has been removed. + +Epson 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. + +([@pszafer] - [#55045]) ([epson docs]) +{% enddetails %} + +{% details "Solar-Log" %} + +The `Watt-peak` unit of measurement has changed to `Watt`. + +([@Ernst79] - [#55110]) ([solarlog docs]) + +{% enddetails %} + +{% details "MQTT" %} + +MQTT fan no longer supports Support for legacy speeds (OFF, LOW, MEDIUM, HIGH). +With release 2021.3 the support for legacy speeds was announced to be removed +after a quater (2021.7). + +With removing the legacy speeds support, integrations that rely on MQTT fan +platform that still use legacy speeds would break because they can not be +setup if deprecated attributes are used. This includes the MQTT auto discovery. + +To prevent that these integration will fail to setup, the deprecated attributes +listed here are still allowed in the config: + +- `payload_high_speed` +- `payload_low_speed` +- `payload_medium_speed` +- `speed_command_topic` +- `speeds` +- `speed_state_topic` +- `speed_value_template` + +([@jbouwh] - [#54768]) ([mqtt docs]) + +{% enddetails %} + +{% details "OVO Energy" %} + +These attributes have been removed and replaced with full sensors for both +gas and electricity: + +- `start_time` +- `end_time` + +If you relied on one of these attributes in your automation or scripts, you'll +need to adopt to this change. + +([@timmo001] - [#54952]) ([ovo_energy docs]) + +{% enddetails %} + +{% details "AVM FRITZ!Box Tools" %} + +The attributes of the switches provided by AVM FRITZ!Box Tools have been adjusted +to match the naming rules and schema of Home Assistant. + +If you relied on one of these attributes in your automation or scripts, you'll +need to adopt to this change. + +([@AaronDavidSchneider] - [#54842]) ([fritz docs]) + +{% enddetails %} + +{% details "Lorem" %} + +The Nanoleaf integration migrated to configuration via the UI. Configuring +Nanoleaf 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. + +If you have configured Nanoleaf with the discovery integration: You can remove +`discovery:` from your YAML configuration if you only used it for Nanoleaf. +The `.nanoleaf.conf` file in your configuration folder is no longer used, +you can delete it after upgrading. + +([@milanmeu] - [#52199]) ([nanoleaf docs]) + +{% enddetails %} + +{% details "MySensors" %} + +MySensors lights no longer supports deprecated `white_value`, use `rgbw_color` +instead. + +([@emontnemery] - [#52068]) ([mysensors docs]) + +{% enddetails %} + +## All changes + +{% details "Click to see all changes!" %} + +- Add renault integration ([@epenet] - [#39605]) ([renault docs]) (new-integration) +- Bump version to 2021.9.0dev0 ([@frenck] - [#53638]) +- Correct typing in Zerproc and activate mypy ([@milanmeu] - [#53642]) ([zerproc docs]) +- Fix Lutron button events to have unambiguous names ([@nickovs] - [#53666]) ([lutron docs]) (breaking-change) +- Clean up Surpetcare ([@Danielhiversen] - [#53699]) ([surepetcare docs]) +- Replace lists with tuples (2) ([@cdce8p] - [#53685]) +- wemo light brightness fixes ([@esev] - [#53740]) ([wemo docs]) +- Remove YAML configuration from onewire ([@epenet] - [#53728]) ([onewire docs]) (breaking-change) +- Use constants for device_info in Onewire integration ([@epenet] - [#53724]) ([onewire docs]) +- Use constants for device_info in Renault integration ([@epenet] - [#53714]) ([renault docs]) +- fix flakky test ([@dgomes] - [#53750]) ([prosegur docs]) +- Update integration Fints with activate mypy, use attr_variables ([@janiversen] - [#53706]) ([fints docs]) +- Fix flaky netatmo tests ([@cgtobi] - [#53644]) ([netatmo docs]) +- Improve light scene support for white mode ([@emontnemery] - [#53768]) ([light docs]) +- Bump vallox-websocket-api to 2.8.1 ([@timmo001] - [#53463]) ([vallox docs]) +- Revert "Improve light scene support for white mode (#53768)" ([@balloob] - [#53782]) ([light docs]) +- Simplify DATA_TYPE -> struct conversion. ([@janiversen] - [#53805]) ([modbus docs]) +- Activate mypy for hdmi_cec ([@janiversen] - [#53763]) ([hdmi_cec docs]) +- Bump Amcrest version to 1.8.0 ([@flacjacket] - [#53784]) ([amcrest docs]) +- Please mypy. ([@janiversen] - [#53786]) ([marytts docs]) +- Rename snapshot -> backup ([@ludeeus] - [#53851]) ([hassio docs]) ([zwave_js docs]) (breaking-change) +- Activate mypy for Sony Songpal ([@milanmeu] - [#53655]) +- Convert @property to _attr_variable for hdmi_sec ([@janiversen] - [#53816]) ([hdmi_cec docs]) +- Activate mypy for Norway_air ([@janiversen] - [#53787]) ([norway_air docs]) +- Bump HAP-python to 4.0.0 ([@bdraco] - [#53780]) ([homekit docs]) (breaking-change) +- Improve Universal media player toggle default behavior ([@TastyPi] - [#49395]) ([universal docs]) +- Use homeassistant.const instead of integration const for device_info ATTR_ ([@milanmeu] - [#53703]) +- Late review on hdmi_cec (#53763) ([@janiversen] - [#53863]) ([hdmi_cec docs]) +- Add edl21 OBIS IDs for DZG DWS76 ([@pdcemulator] - [#53029]) ([edl21 docs]) +- Add state class measurement to all suitable sensors on Speedtest.net ([@mib1185] - [#53693]) ([speedtestdotnet docs]) +- Add support for MJJSQ humidifiers for Xiaomi MIIO integration ([@bieniu] - [#53807]) ([xiaomi_miio docs]) +- System Bridge v2.3.0+ - Data from WebSocket ([@timmo001] - [#53443]) ([system_bridge docs]) +- Add meta container data to rootfs ([@pvizeli] - [#53903]) +- Use SensorEntityDescription class for Xiaomi Miio ([@bieniu] - [#53890]) ([xiaomi_miio docs]) +- Add support for Eve Degree's air pressure sensor ([@Jc2k] - [#53891]) ([homekit_controller docs]) +- Allow esphome entities to be disabled by default ([@jesserockz] - [#53898]) ([esphome docs]) +- Stream API requests to the supervisor ([@ludeeus] - [#53909]) ([hassio docs]) +- Check for torrents in queue before calling the api stop_torrent() ([@jshank] - [#53895]) ([transmission docs]) +- Add "stop watering" service to rachio ([@adamjernst] - [#53764]) ([rachio docs]) +- Add target high/low temperatures to prometheus integration ([@mdz] - [#50071]) ([prometheus docs]) +- Enable mypy for Yamaha ([@janiversen] - [#53920]) ([yamaha docs]) +- Use the github context when writing metafile ([@ludeeus] - [#53928]) +- Validate Select option before calling entity method ([@jbouwh] - [#52352]) ([demo docs]) ([select docs]) +- Add xiaomi miio lumi.gateway.aqhm01 support ([@starkillerOG] - [#53929]) ([xiaomi_miio docs]) +- Validate Number value before calling entity method ([@jbouwh] - [#52343]) ([number docs]) +- Use `NumberEntityDescription` for Xiaomi Miio ([@bieniu] - [#53911]) ([xiaomi_miio docs]) +- Late review. ([@janiversen] - [#53933]) ([yamaha docs]) +- Upgrade anthemav dependency to 1.2.0 ([@Hyralex] - [#53931]) ([anthemav docs]) +- Remove Xiaomi_miio number value validation ([@jbouwh] - [#53934]) ([xiaomi_miio docs]) +- Remove Xiaomi_miio select option validation ([@jbouwh] - [#53936]) ([xiaomi_miio docs]) +- Activate mypy for LG webOS Smart TV ([@milanmeu] - [#53958]) ([webostv docs]) +- Add config flow to uptimerobot ([@ludeeus] - [#53938]) ([uptimerobot docs]) (breaking-change) +- Add support for jammed status to SimpliSafe locks ([@bachya] - [#54006]) ([simplisafe docs]) (breaking-change) +- Don't double-validate KNX select options ([@farmio] - [#54020]) ([knx docs]) +- Use SwitchEntityDescription instead of EntityDescription in the motionEye integration ([@dermotduffy] - [#54019]) ([motioneye docs]) +- Activate mypy for Reddit ([@milanmeu] - [#53949]) ([reddit docs]) +- Activate mypy for Updater ([@milanmeu] - [#53950]) ([updater docs]) +- Add vscode task code coverage ([@mib1185] - [#53783]) +- Bump pyuptimerobot to 21.8.1 ([@ludeeus] - [#53995]) ([uptimerobot docs]) +- Add state class support to Netatmo ([@frenck] - [#54051]) ([netatmo docs]) +- Add tractive integration ([@zhulik] - [#51002]) ([tractive docs]) (new-integration) +- Activate mypy for Cloudflare ([@milanmeu] - [#54041]) ([cloudflare docs]) +- Add unique_id to Uptime Robot config_flow ([@ludeeus] - [#54055]) ([uptimerobot docs]) +- Bump py-nextbusnext to 0.1.5 ([@ViViDboarder] - [#53924]) ([nextbus docs]) +- Add some metadata to pvoutput energy sensor ([@balloob] - [#54074]) ([pvoutput docs]) +- Add `state_class` for KNX sensors ([@farmio] - [#53996]) ([knx docs]) +- We shouldn't add measurement without last_reset to metered entities ([@balloob] - [#54087]) ([pvoutput docs]) +- Run coordinator config_entry_first_refresh in rituals_perfume_genie setup ([@milanmeu] - [#54080]) ([rituals_perfume_genie docs]) +- Test knx sensor ([@farmio] - [#54090]) ([knx docs]) +- Test KNX binary sensor ([@farmio] - [#53820]) ([knx docs]) +- Fix jinja warning ([@balloob] - [#54109]) +- Fix Squeezebox dhcp discovery ([@rajlaud] - [#54137]) ([squeezebox docs]) +- Ignore Coinbase vault wallets ([@TomBrien] - [#54133]) ([coinbase docs]) +- Add statistics support for the PVOutput sensor ([@zoeisnowooze] - [#54149]) ([pvoutput docs]) +- Convert to using sensor descriptors ([@elupus] - [#54115]) ([rfxtrx docs]) +- Use SensorEntityDescription for AsusWRT sensors ([@ollo69] - [#54111]) ([asuswrt docs]) +- Add state class and last reset in kostal_plenticore ([@gianklug] - [#54084]) ([kostal_plenticore docs]) +- Flexit component fix for updated modbus ([@jorgror] - [#53583]) ([flexit docs]) +- Correct device class typo in rfxtrx ([@elupus] - [#54200]) ([rfxtrx docs]) +- Bump ha-philipsjs to 2.7.5 ([@elupus] - [#54176]) ([philips_js docs]) +- Fix Neato reauth flow when token expired ([@chemelli74] - [#52843]) ([neato docs]) +- Raise ConfigEntryNotReady for Neato API error ([@chemelli74] - [#54227]) ([neato docs]) +- Change update interval from 60s to 10s for Uptime Robot ([@ludeeus] - [#54230]) ([uptimerobot docs]) +- Set entities as unavailable if last update was not successful ([@ludeeus] - [#54229]) ([uptimerobot docs]) +- Handle added and removed monitors ([@ludeeus] - [#54228]) ([uptimerobot docs]) +- OVO Energy Long-term Statistics ([@timmo001] - [#54157]) ([ovo_energy docs]) +- Add enumerate to builtins in python_script component ([@rjulius23] - [#54244]) ([python_script docs]) +- Add more Fritz sensors for DSL connections ([@Schmidsfeld] - [#53198]) ([fritz docs]) +- Fix device registry lookup in uptimerobot ([@ludeeus] - [#54256]) ([uptimerobot docs]) +- Remove monitor checks in Uptime Robot entities ([@ludeeus] - [#54259]) ([uptimerobot docs]) +- Strict typing for Neato ([@chemelli74] - [#53633]) ([neato docs]) +- Add missing `motor_speed` sensor for Xiaomi Miio humidifier CA1 and CB1 ([@bieniu] - [#54264]) ([xiaomi_miio docs]) +- Add re-authentication to Uptime Robot ([@ludeeus] - [#54226]) ([uptimerobot docs]) +- Add modbus get_hub ([@janiversen] - [#54277]) ([modbus docs]) ([flexit docs]) +- Convert last properties in modbus to _attr_variable ([@janiversen] - [#53919]) ([modbus docs]) +- Bump google-nest-sdm to 0.3.6 ([@allenporter] - [#54287]) ([nest docs]) +- Update DeviceInfo static types ([@allenporter] - [#54276]) ([nest docs]) +- Fix inconsistent supported_features return in demo lock ([@bdraco] - [#54300]) ([demo docs]) +- Fix SQLAlchemy test warnings ([@balloob] - [#54116]) ([recorder docs]) +- Add siren support for available tones provided as a dict ([@raman325] - [#54198]) ([siren docs]) +- Add `unique_id` and `device_info` for SMS sensor ([@bieniu] - [#54257]) ([sms docs]) +- Ensure internal/external URL have no path ([@balloob] - [#54304]) ([config docs]) +- Fix external internal url core check ([@MartinHjelmare] - [#54310]) +- Convert base_config_test in modbus to existing Pytest.fixture ([@janiversen] - [#53836]) ([modbus docs]) +- Use SensorEntityDescription for arlo ([@janiversen] - [#54223]) ([arlo docs]) +- Update services.yaml for matrix service to fix Data field being replaced by [object Object] in UI ([@cpw] - [#54296]) ([matrix docs]) +- Remove icon where device_class is defined. ([@janiversen] - [#54323]) ([arlo docs]) +- Use dict for zwave_js siren.available_tones ([@raman325] - [#54305]) ([zwave_js docs]) +- Remove deprecated YAML configuration from Growatt ([@frenck] - [#54325]) ([growatt_server docs]) (breaking-change) +- Clean up zwave_js RGB code ([@firstof9] - [#54336]) ([zwave_js docs]) +- Add light transition for Shelly integration ([@bieniu] - [#54327]) ([shelly docs]) +- Yeelight local push updates ([@starkillerOG] - [#51160]) ([yeelight docs]) +- Use EntityDescription - pi_hole ([@cdce8p] - [#54319]) ([pi_hole docs]) +- Use EntityDescription - abode ([@cdce8p] - [#54321]) ([abode docs]) +- Remove useless attribute in devolo Home Control ([@Shutgun] - [#54284]) ([devolo_home_control docs]) +- Remove HomeKit event guards ([@bdraco] - [#54343]) ([homekit docs]) +- Use EntityDescription - growatt_server ([@cdce8p] - [#54316]) ([growatt_server docs]) +- Use EntityDescription - bitcoin ([@cdce8p] - [#54320]) ([bitcoin docs]) +- Add `binary_sensor` platform for Xiaomi Miio integration ([@bieniu] - [#54096]) ([xiaomi_miio docs]) (new-platform) +- Minor motionEye readability improvement ([@dermotduffy] - [#54251]) ([motioneye docs]) +- Update pyupgrade to 2.23.3 ([@mplemay] - [#54179]) +- Add Save Persistent States service ([@r-t-s] - [#53881]) ([homeassistant docs]) +- Add powerwall import and export sensors ([@bdraco] - [#54018]) ([powerwall docs]) (breaking-change) +- Version sensor entity cleanup ([@ludeeus] - [#53915]) ([version docs]) +- AsusWRT remove default EntityDescription property ([@ollo69] - [#54367]) ([asuswrt docs]) +- Use EntityDescription - juicenet ([@cdce8p] - [#54362]) ([juicenet docs]) +- Upgrade codecov to 2.1.12 ([@frenck] - [#54370]) +- Upgrade debugpy to 1.4.1 ([@frenck] - [#54369]) ([debugpy docs]) +- Bump pymodbus version to 2.5.3rc1 ([@janiversen] - [#54318]) ([modbus docs]) +- Activate mypy for Filter ([@milanmeu] - [#54044]) ([filter docs]) +- Activate mypy for Alexa ([@milanmeu] - [#54042]) ([alexa docs]) +- Activate mypy for Pilight ([@milanmeu] - [#53956]) ([pilight docs]) +- Activate mypy for SiteSage Emonitor ([@milanmeu] - [#54040]) ([emonitor docs]) +- Activate mypy for Smart Meter Texas ([@milanmeu] - [#53954]) ([smart_meter_texas docs]) +- Activate mypy for Solar-Log ([@milanmeu] - [#53952]) ([solarlog docs]) +- Using VCN install as action ([@pvizeli] - [#54383]) +- Activate mypy for google_maps ([@janiversen] - [#53725]) ([google_maps docs]) +- Activate mypy for Proxmox VE ([@milanmeu] - [#53955]) ([proxmoxve docs]) +- Use `_attr_*` for Launch Library ([@ludeeus] - [#54388]) ([launch_library docs]) +- Apply suggested changes to tidy juicenet sensor code ([@jesserockz] - [#54390]) ([juicenet docs]) +- Xiaomi miio add coordinator to fan platform ([@jbouwh] - [#54366]) ([xiaomi_miio docs]) +- Activate mypy from amcrest and make the needed changes ([@janiversen] - [#54392]) ([amcrest docs]) +- Remove useless check in launch_library ([@ludeeus] - [#54393]) ([launch_library docs]) +- Adjust version tests ([@ludeeus] - [#54391]) ([version docs]) +- Mill cleanup ([@Danielhiversen] - [#54396]) ([mill docs]) +- Add 100% test coverage for Uptime Robot ([@ludeeus] - [#54314]) ([uptimerobot docs]) +- Update the Qubino Flush Shutter fixture ([@deiger] - [#54387]) ([zwave_js docs]) +- Use EntityDescription - ios ([@cdce8p] - [#54359]) ([ios docs]) +- Fix pi_hole sensor icon ([@cdce8p] - [#54403]) ([pi_hole docs]) +- Support unloading/reloading Sonos ([@jjlawren] - [#54418]) ([sonos docs]) +- Mark Uptime Robot as a platinum quality integration ([@ludeeus] - [#54408]) ([uptimerobot docs]) +- Add myself as codeowner to tradfri (IKEA stuff) ([@janiversen] - [#54415]) ([tradfri docs]) +- Refactor pi_hole icon usage ([@cdce8p] - [#54420]) ([pi_hole docs]) +- Add api to device_automation to return all matching devices ([@bdraco] - [#53361]) ([device_automation docs]) +- Improve HomeKit Color with Color Temp implementation ([@bdraco] - [#54371]) ([homekit docs]) +- Avoid increasing yeelight rate limit when the state is already set ([@bdraco] - [#54410]) ([yeelight docs]) +- Pass width and height when requesting camera snapshot ([@bdraco] - [#53835]) (breaking-change) +- Add support for width and height to ffmpeg based camera snapshots ([@bdraco] - [#53837]) +- Activate mypy for Trådfri ([@janiversen] - [#54416]) ([tradfri docs]) +- Advantage Air code cleanup ([@Bre77] - [#54449]) ([advantage_air docs]) +- Bump aioambient to 1.2.6 ([@bachya] - [#54442]) ([ambient_station docs]) +- Move temperature conversions to sensor base class (1/8) ([@emontnemery] - [#48261]) ([abode docs]) ([sensor docs]) (breaking-change) +- Remove legacy code. ([@janiversen] - [#54452]) ([tradfri docs]) (breaking-change) +- Use monitor name for uptimerobot device registry ([@ludeeus] - [#54456]) ([uptimerobot docs]) +- Replace prepare_service_call with a simpler fixture in modbus ([@janiversen] - [#53975]) ([modbus docs]) +- Use SensorEntityDescription and set state class measurement for NUT sensors ([@mib1185] - [#54269]) ([nut docs]) +- Remove empty currency from discovery info ([@frenck] - [#54478]) ([api docs]) +- Ensure camera handles non-jpeg image sources correctly ([@bdraco] - [#54474]) ([camera docs]) ([demo docs]) +- Complete mysensors sensor coverage ([@MartinHjelmare] - [#54471]) ([mysensors docs]) +- Fix arlo platform schema ([@cdce8p] - [#54470]) ([arlo docs]) +- Upgrade isort to 5.9.3 ([@frenck] - [#54481]) +- Fix possible unhandled IQVIA exception with allergy outlook data ([@bachya] - [#54477]) ([iqvia docs]) +- Add battery support to energy ([@bramkragten] - [#54432]) ([energy docs]) +- Move temperature conversions to entity base class (2/8) ([@emontnemery] - [#54468]) +- Move temperature conversions to entity base class (7/8) ([@emontnemery] - [#54482]) +- Add device class `gas` and enable statistics for it ([@bramkragten] - [#54110]) ([recorder docs]) ([toon docs]) ([sensor docs]) ([dsmr docs]) (breaking-change) +- Move temperature conversions to sensor base class (8/8) ([@emontnemery] - [#54483]) +- Move temperature conversions to sensor base class (4/8) ([@emontnemery] - [#54472]) +- Refactor Fronius sensor device class and long term statistics ([@nielstron] - [#54185]) ([fronius docs]) +- Use EntityDescription - blink ([@cdce8p] - [#54360]) ([blink docs]) +- Deprecate Wink integration ([@frenck] - [#54496]) ([wink docs]) (breaking-change) +- Use entity class attributes for Adax ([@Danielhiversen] - [#54501]) ([adax docs]) +- Move temperature conversions to sensor base class (5/8) ([@emontnemery] - [#54475]) +- Move temperature conversions to sensor base class (3/8) ([@emontnemery] - [#54469]) +- Move temperature conversions to sensor base class (6/8) ([@emontnemery] - [#54476]) +- Log gathered exceptions during Sonos unsubscriptions ([@jjlawren] - [#54190]) ([sonos docs]) +- Remove unused import step in OpenUV config flow ([@bachya] - [#54554]) ([openuv docs]) +- Cleanup Sonos grouping event callback method ([@jjlawren] - [#54542]) ([sonos docs]) +- Remove obsolete upcloud YAML config support ([@scop] - [#54516]) ([upcloud docs]) (breaking-change) +- Add state_class attribute to keba integration ([@carstenschroeder] - [#54271]) ([keba docs]) +- Updated ZHA to also poll Philips Hue lights with new firmware ([@TheJulianJES] - [#54513]) ([zha docs]) +- Add support for total and total_increasing sensor state classes ([@emontnemery] - [#54523]) ([sensor docs]) +- Fix for 'list index out of range' ([@DCSBL] - [#54588]) ([solaredge_local docs]) +- Use ssdp callbacks in upnp ([@StevenLooman] - [#53840]) ([upnp docs]) +- Add gas support to energy ([@bramkragten] - [#54560]) ([energy docs]) +- Update frontend to 20210813.0 ([@bramkragten] - [#54603]) ([frontend docs]) +- Skip Sonos zeroconf availability check in non-timeout scenarios ([@jjlawren] - [#54425]) ([sonos docs]) +- Bump python-miio to 0.5.7 ([@rytilahti] - [#54601]) ([xiaomi_miio docs]) +- Add MySensors S_MOISTURE type as sensor ([@janjurca] - [#54583]) ([mysensors docs]) +- Move temperature conversions to sensor base class - new integrations ([@emontnemery] - [#54623]) ([sensor docs]) +- Update pyhomematic to 0.1.74 ([@danielperna84] - [#54613]) ([homematic docs]) +- Add sensor platform for Xiaomi Miio fans ([@bieniu] - [#54564]) ([xiaomi_miio docs]) (breaking-change) +- Add new OUIs to august for yale branded connect bridges ([@bdraco] - [#54637]) ([august docs]) +- Add siren, number, and weather to base platform list ([@raman325] - [#54665]) +- Fix typo in xiaomi_miio cloud_login_error string ([@nickstamat] - [#54661]) ([xiaomi_miio docs]) +- Bump zeroconf to 0.35.1 ([@bdraco] - [#54666]) ([zeroconf docs]) +- Address late review of nut integration ([@mib1185] - [#54606]) ([nut docs]) +- Use buffer at stream start with unsupported audio ([@allenporter] - [#54672]) ([stream docs]) +- Address late review of Flipr ([@cnico] - [#54668]) ([flipr docs]) +- Add `water level` and `water tank detached` sensors for Xiaomi Miio humidifiers ([@bieniu] - [#54625]) ([xiaomi_miio docs]) +- Add code owner to GitHub integration ([@timmo001] - [#54689]) ([github docs]) +- Activate mypy in lifx ([@janiversen] - [#54540]) +- Renault test optimisation ([@epenet] - [#53705]) ([renault docs]) +- Improve Tractive ([@Danielhiversen] - [#54532]) ([tractive docs]) +- Bump adb-shell to 0.4.0 ([@JeffLIrion] - [#54575]) +- Renault code quality improvements ([@epenet] - [#53680]) ([renault docs]) +- Fix typo in Todoist service description ([@serenewaffles] - [#54662]) ([todoist docs]) +- Fix event type names for non-specified Traccar events ([@bogdal] - [#54561]) ([traccar docs]) +- Update mill to use state class total ([@Danielhiversen] - [#54581]) ([mill docs]) +- Allow non-admin users to call history/list_statistic_ids ([@ludeeus] - [#54698]) ([history docs]) +- Update melcloud to use state class total increasing ([@Danielhiversen] - [#54607]) ([melcloud docs]) +- Bump pytautulli ([@ludeeus] - [#54594]) ([tautulli docs]) +- Set correct ESPHome color mode when setting color temperature ([@oxan] - [#54596]) ([esphome docs]) +- Remove last_reset attribute from dsmr_reader sensors ([@emontnemery] - [#54700]) ([dsmr_reader docs]) +- Allow specifying discovery without a config flow ([@balloob] - [#54677]) ([rainforest_eagle docs]) +- Refactor mysensors sensor description ([@MartinHjelmare] - [#54522]) ([mysensors docs]) +- Bump simplisafe-python to 11.0.4 ([@bachya] - [#54701]) ([simplisafe docs]) +- Update Toon to use new state classes ([@frenck] - [#54705]) ([toon docs]) +- Use zwave_js.number platform for Basic CC values ([@raman325] - [#54512]) ([zwave_js docs]) (breaking-change) +- Remove last_reset attribute from dsmr sensors ([@emontnemery] - [#54699]) ([dsmr docs]) +- Fix TypeError when climate component sets fan modes to None ([@brianegge] - [#54709]) ([google_assistant docs]) +- Create zwave-js select platform and discover additional siren values ([@raman325] - [#53018]) ([zwave_js docs]) (new-platform) +- Fix AsusWRT scanner entity DeviceInfo ([@ollo69] - [#54648]) ([asuswrt docs]) +- Add light platform to MyQ ([@ehendrix23] - [#54611]) ([myq docs]) (new-platform) +- Upgrade pre-commit to 2.14.0 ([@frenck] - [#54719]) +- Convert nmap_tracker to be a config flow ([@bdraco] - [#54715]) ([nmap_tracker docs]) (breaking-change) +- Upgrade mypy to 0.910 and types-* ([@scop] - [#54574]) +- Use EntityDescription - qbittorrent ([@cdce8p] - [#54428]) ([qbittorrent docs]) +- Use EntityDescription - point ([@cdce8p] - [#54363]) ([point docs]) +- Activate mypy in sabnzbd ([@janiversen] - [#54539]) ([sabnzbd docs]) +- Avoid some implicit generic Anys ([@scop] - [#54577]) +- Active mypy for netio ([@janiversen] - [#54543]) ([netio docs]) +- Add device classes that were part of deprecated air quality entity ([@Jc2k] - [#54075]) ([sensor docs]) +- Use state class total increasing for TPLink smart plugs ([@mib1185] - [#54723]) ([tplink docs]) +- Bump zeroconf to 0.36.0 ([@bdraco] - [#54720]) ([zeroconf docs]) +- Remove last_reset attribute from FritzBoxEnergySensor ([@emontnemery] - [#54644]) ([fritzbox docs]) +- Use EntityDescription - logi_circle ([@cdce8p] - [#54429]) ([logi_circle docs]) +- Activate mypy for sesame ([@janiversen] - [#54546]) ([sesame docs]) +- Use EntityDescription - mitemp_bt ([@cdce8p] - [#54503]) ([mitemp_bt docs]) +- Add DEVICE_CLASS_UPDATE to Binary Sensor ([@mib1185] - [#53945]) ([binary_sensor docs]) +- Fix Google Calendar event loading ([@Bert-R] - [#54231]) ([google docs]) +- Add device class update to the updater binary_sensor ([@ludeeus] - [#54732]) ([updater docs]) +- Add device class update to hassio update entities ([@ludeeus] - [#54733]) ([hassio docs]) +- Update deCONZ to use new state classes ([@frenck] - [#54729]) ([deconz docs]) +- Add state classes to Vallox sensors ([@andre-richter] - [#54297]) ([vallox docs]) +- Activate mypy for google_pubsub ([@janiversen] - [#54649]) ([google_pubsub docs]) +- Energy support for Solax inverters ([@ppetru] - [#54654]) ([solax docs]) +- Use PM1, PM25 and PM10 device classes in Nettigo Air Monitor integration ([@bieniu] - [#54741]) ([nam docs]) +- Use DEVICE_CLASS_UPDATE in Shelly integration ([@bieniu] - [#54746]) ([shelly docs]) +- Use entity descriptions for hassio entities ([@ludeeus] - [#54749]) ([hassio docs]) +- Relax zwave_js lock discovery rules to cover more use cases ([@raman325] - [#54710]) ([zwave_js docs]) +- DSMR: Remove icon from sensors with gas device class ([@frenck] - [#54752]) ([dsmr docs]) +- Bump pyfronius version to 0.5.5 ([@nielstron] - [#54758]) ([fronius docs]) +- Solax 0.2.8 ([@squishykid] - [#54759]) ([solax docs]) +- Toon: Remove icon from sensors with gas device class ([@frenck] - [#54753]) ([toon docs]) +- Deprecate homekit_controller's air quality entity in favor of separate sensor entities ([@Jc2k] - [#54673]) ([homekit_controller docs]) (breaking-change) +- Airtouch4 integration ([@LonePurpleWolf] - [#43513]) ([airtouch4 docs]) (new-integration) +- Add zwave_js Protection CC select entities ([@raman325] - [#54717]) ([zwave_js docs]) +- Use DEVICE_CLASS_UPDATE in Synology DSM ([@mib1185] - [#54769]) ([synology_dsm docs]) +- Use path helper method for principal file in google_pubsub ([@frenck] - [#54744]) ([google_pubsub docs]) +- Add upnp binary sensor for connectivity status ([@ehendrix23] - [#54489]) ([upnp docs]) +- set common test entity name. ([@janiversen] - [#54697]) ([modbus docs]) +- Tractive, update library ([@Danielhiversen] - [#54775]) ([tractive docs]) +- Fix goalzero sensor not using SensorEntity class ([@tkdrob] - [#54773]) ([goalzero docs]) +- Fix connectivity issue in the Youless integration ([@gjong] - [#54764]) ([youless docs]) +- Force STATE_CLASS_TOTAL_INCREASING to reset to 0 ([@emontnemery] - [#54751]) ([sensor docs]) +- Rfxtrx,STATE_CLASS_TOTAL_INCREASING ([@Danielhiversen] - [#54776]) ([rfxtrx docs]) +- Improve myq error handling for opening/closing cover ([@ehendrix23] - [#54724]) ([myq docs]) +- Update SolarEdge to use new state classes ([@frenck] - [#54731]) ([solaredge docs]) +- Use AQI, PM1, PM25, PM10 device classes in Airly ([@bieniu] - [#54742]) ([airly docs]) +- Use new device classes in GIOS integration ([@bieniu] - [#54743]) ([gios docs]) +- Adjust yeelight homekit model ([@bdraco] - [#54783]) ([yeelight docs]) +- Update sense_energy to version 0.9.2 ([@crkochan] - [#54787]) ([sense docs]) ([emulated_kasa docs]) +- Bump dessant/lock-threads from 2.1.1 to 2.1.2 (@dependabot - [#54791]) +- Remove STATE_CLASS_TOTAL and last_reset from sensor ([@emontnemery] - [#54755]) ([sensor docs]) +- Add Gas device class to DSMR Reader ([@frenck] - [#54748]) ([dsmr_reader docs]) +- Tibber data coordinator ([@Danielhiversen] - [#53619]) ([tibber docs]) +- Add select platform for Xiaomi Miio fans ([@bieniu] - [#54702]) ([xiaomi_miio docs]) (breaking-change) +- Bump async-upnp-client to 0.20.0, adapt to breaking changes ([@bdraco] - [#54782]) ([upnp docs]) ([dlna_dmr docs]) ([ssdp docs]) +- Remove unused last_reset from Toon ([@emontnemery] - [#54798]) ([toon docs]) +- Remove last_reset and update state class for Atome energy ([@emontnemery] - [#54801]) ([atome docs]) +- Remove distro from updater requirements ([@ludeeus] - [#54804]) ([updater docs]) +- Ensure device entry in Renault integration ([@epenet] - [#54797]) ([renault docs]) +- Adjust modbus constants names ([@janiversen] - [#54792]) ([modbus docs]) +- Remove last_reset attribute from fritz sensors ([@emontnemery] - [#54806]) ([fritz docs]) +- Remove last_reset attribute and set state class to total_increasing for Shelly energy sensors ([@emontnemery] - [#54800]) ([shelly docs]) +- ConfigType and async_setup/setup type hint improvements ([@scop] - [#54739]) +- Remove `last_reset` attribute and set state class to `total_increasing` for Ovo cost and energy sensors ([@emontnemery] - [#54807]) ([ovo_energy docs]) +- Remove `last_reset` attribute and set state class to `total_increasing` for powerwall energy sensors ([@emontnemery] - [#54808]) ([powerwall docs]) +- Remove `last_reset` attribute and set state class to `total_increasing` for PVOutput energy sensors ([@emontnemery] - [#54809]) ([pvoutput docs]) +- Remove `last_reset` attribute and set state class to `total_increasing` for rainforest energy sensors ([@emontnemery] - [#54810]) ([rainforest_eagle docs]) +- Remove last_reset attribute from devolo energy sensors ([@emontnemery] - [#54803]) ([devolo_home_control docs]) +- Remove last_reset attribute from sma energy sensors ([@emontnemery] - [#54814]) ([sma docs]) +- Remove last_reset attribute and set state class to total_increasing for tibber energy sensors ([@emontnemery] - [#54799]) ([tibber docs]) +- Remove last_reset attribute from kostal_plenticore energy sensors ([@emontnemery] - [#54817]) ([kostal_plenticore docs]) +- Remove `last_reset` attribute and set state class to `total_increasing` for zwave_js energy sensors ([@emontnemery] - [#54818]) ([zwave_js docs]) +- Activate mypy for Panasonic_viera ([@janiversen] - [#54547]) ([panasonic_viera docs]) +- Remove deprecated Xiaomi Miio fan speeds ([@SmaginPV] - [#54182]) ([xiaomi_miio docs]) (breaking-change) +- Remove last_reset attribute and set state class to total_increasing for Integration sensors ([@Danielhiversen] - [#54815]) ([integration docs]) +- Remove `last_reset` attribute and set state class to `total_increasing` for spider energy sensors ([@emontnemery] - [#54822]) ([spider docs]) +- Treat Huawei LTE error code 100006 as unsupported functionality ([@scop] - [#54253]) ([huawei_lte docs]) +- Remove `last_reset` attribute and set state class to `total_increasing` for sense energy sensors ([@emontnemery] - [#54825]) ([sense docs]) +- Remove last_reset attribute from wemo energy sensors ([@emontnemery] - [#54821]) ([wemo docs]) +- Remove last_reset attribute from keba energy sensors ([@emontnemery] - [#54828]) ([keba docs]) +- Remove `last_reset` attribute and set state class to `total_increasing` for fronius energy sensors ([@emontnemery] - [#54830]) ([fronius docs]) +- Remove `last_reset` attribute and set state class to `total_increasing` for saj energy sensors ([@emontnemery] - [#54813]) ([saj docs]) +- Remove `last_reset` attribute and set state class to `total_increasing` for mysensors energy sensors ([@emontnemery] - [#54827]) ([mysensors docs]) +- Remove `last_reset` attribute and set state class to `total_increasing` for smartthings energy sensors ([@emontnemery] - [#54824]) ([smartthings docs]) +- Only show zwave_js command classes that are on the node ([@raman325] - [#54794]) ([zwave_js docs]) +- Remove `last_reset` attribute from and set state class to `total_increasing` for enphase_envoy energy sensors ([@emontnemery] - [#54831]) ([enphase_envoy docs]) +- Fix integration sensors sometimes not getting device_class or unit_of_measurement ([@thomasloven] - [#54802]) ([integration docs]) +- Exclude global scope IPv6 when setting up zeroconf interfaces ([@bdraco] - [#54632]) ([zeroconf docs]) +- Remove last_reset attribute from tasmota energy sensors ([@emontnemery] - [#54836]) ([tasmota docs]) +- Make yeelight discovery async ([@bdraco] - [#54711]) ([yeelight docs]) +- Remove unnecessary signal during zwave_js.reset_meter service call ([@raman325] - [#54837]) ([zwave_js docs]) +- Bump yeelight quality scale to platinum with switch to async local push ([@bdraco] - [#54589]) ([yeelight docs]) +- Add new network apis to reduce code duplication ([@bdraco] - [#54832]) ([zeroconf docs]) ([ssdp docs]) ([network docs]) +- Add energy validation ([@balloob] - [#54567]) ([recorder docs]) ([energy docs]) +- Deprecate last_reset options in MQTT sensor ([@emontnemery] - [#54840]) ([mqtt docs]) +- Mill data coordinator ([@Danielhiversen] - [#53603]) ([mill docs]) +- Remove stale references to last_reset ([@emontnemery] - [#54838]) ([mysensors docs]) ([dsmr docs]) ([kostal_plenticore docs]) +- Bump frontend to 20210818.0 ([@balloob] - [#54851]) ([frontend docs]) +- Drop tado codeowner ([@bdraco] - [#54849]) ([tado docs]) +- Update PULL_REQUEST_TEMPLATE.md ([@squishykid] - [#54762]) +- Improve MyQ code quality through creation of MyQ entity ([@ehendrix23] - [#54728]) ([myq docs]) +- Rework goalzero for EntityDescription ([@tkdrob] - [#54786]) ([goalzero docs]) +- Always mock SubscriptionRegistry & DiscoveryResponder for wemo tests ([@esev] - [#53967]) ([wemo docs]) +- Bump pywemo to 0.6.7 ([@esev] - [#54862]) ([wemo docs]) +- Add binary sensor platform to Renault integration ([@epenet] - [#54750]) ([renault docs]) (new-platform) +- Check for duplicate entity name/address in modbus entities ([@janiversen] - [#54669]) ([modbus docs]) +- Add support for Swedish smart electricity meters to DSMR ([@emontnemery] - [#54630]) ([dsmr docs]) +- Minor cleanup of SensorEntity ([@emontnemery] - [#54624]) ([sensor docs]) +- Add missing id to yeelights that were setup manually ([@bdraco] - [#54855]) ([yeelight docs]) +- Add config flow to Rainforest EAGLE-200 ([@balloob] - [#54846]) ([rainforest_eagle docs]) +- Yamaha Musiccast Media Browser feature ([@micha91] - [#54864]) ([yamaha_musiccast docs]) +- Add Rainforest Eagle tests and price ([@balloob] - [#54887]) ([rainforest_eagle docs]) +- Improve device action type hinting ([@scop] - [#54850]) +- Allow integrations to define trigger platforms with a subtype ([@raman325] - [#54861]) +- Compile missing statistics ([@emontnemery] - [#54690]) ([recorder docs]) +- Add P1 Monitor integration ([@klaasnicolaas] - [#54738]) ([p1_monitor docs]) (new-integration) +- Add energy management support to Growatt server integration ([@maschel] - [#54174]) ([growatt_server docs]) +- Support group entities in zwave_js service calls ([@raman325] - [#54903]) ([zwave_js docs]) +- Clean up AsusWRT if check ([@ollo69] - [#54896]) ([asuswrt docs]) +- Fix Lyric cool mode ([@muchtall] - [#54856]) ([lyric docs]) +- Update nmap_tracker to use the network integration ([@bdraco] - [#54877]) ([nmap_tracker docs]) +- Fjäråskupan kitchen fan ([@elupus] - [#53140]) ([fjaraskupan docs]) (new-integration) +- Add growatt total state_class for storage ([@JasperPlant] - [#54913]) ([growatt_server docs]) +- Fix image_processing selectors ([@tkdrob] - [#54915]) ([image_processing docs]) +- Add `switch` platform for Xiaomi Miio fans ([@bieniu] - [#54834]) ([xiaomi_miio docs]) (breaking-change) +- Improve DSMR shutdown ([@emontnemery] - [#54922]) ([dsmr docs]) +- Warn if unit_of_measurement is set on instances of SensorEntityDescription ([@emontnemery] - [#54867]) ([sensor docs]) +- Ask for host because EAGLE mdns doesn't work in HA OS ([@balloob] - [#54905]) ([rainforest_eagle docs]) +- Add HomeKit and DHCP to DISCOVERY_SOURCES in config_entries ([@bdraco] - [#54923]) +- Make log rollover at startup ([@janiversen] - [#54865]) +- Set quality level of modbus to gold ([@janiversen] - [#54926]) ([modbus docs]) +- Add support for area ID in zwave_js service calls ([@raman325] - [#54940]) ([zwave_js docs]) +- Enable basic type checking for asuswrt ([@emontnemery] - [#54929]) ([asuswrt docs]) +- Enable basic type checking for aemet ([@emontnemery] - [#54925]) ([aemet docs]) +- Remove deprecated async_setup_platforms() for xiaomi_miio ([@rytilahti] - [#54930]) ([xiaomi_miio docs]) (breaking-change) +- Add fjäråskupan binary_sensor ([@elupus] - [#54920]) ([fjaraskupan docs]) (new-platform) +- Bump zwave-js-server-python to 0.29.0 ([@raman325] - [#54931]) ([zwave_js docs]) +- Add support for USB discovery ([@bdraco] - [#54904]) ([default_config docs]) ([usb docs]) (new-integration) +- Add zwave_js.value_updated automation trigger ([@raman325] - [#54897]) ([zwave_js docs]) +- Fix Google Calendar auth user code expire time comparison ([@slovdahl] - [#54893]) ([google docs]) +- Improve device condition type hinting ([@scop] - [#54906]) +- Use entity descriptions for zwave_js sensors ([@raman325] - [#53744]) ([zwave_js docs]) +- Fix Watson TTS to use correct API ([@GuyKh] - [#54916]) ([watson_tts docs]) +- Extract smappee switch energy attributes into sensors ([@bsmappee] - [#54329]) ([smappee docs]) (breaking-change) +- Use a static collection of forwarded attributes ([@samueltardieu] - [#54870]) ([group docs]) +- Normalize the display name of yeelight devices ([@bdraco] - [#54883]) ([yeelight docs]) +- Handle case where location_name is set to "" for zeroconf ([@bdraco] - [#54880]) ([zeroconf docs]) +- Make yeelight aware of the network integration ([@bdraco] - [#54854]) ([yeelight docs]) +- Add support for USB discovery to ZHA ([@bdraco] - [#54935]) ([zha docs]) +- Remove Configuration CC as choice in zwave_js value device condition ([@raman325] - [#54962]) ([zwave_js docs]) (breaking-change) +- Add zwave_js device triggers for any zwave value ([@raman325] - [#54958]) ([zwave_js docs]) +- Improve Command Class choices for zwave_js device triggers and conditions ([@raman325] - [#54970]) ([zwave_js docs]) +- Replace *args and **kwargs type hint collections with value types ([@scop] - [#54955]) ([netatmo docs]) ([rainmachine docs]) ([simplisafe docs]) ([switcher_kis docs]) ([guardian docs]) ([zwave_js docs]) +- Add fjäråskupan light entity ([@elupus] - [#54918]) ([fjaraskupan docs]) (new-platform) +- Update pylint to 2.10.1 ([@cdce8p] - [#54963]) +- Add fjäråskupan sensor ([@elupus] - [#54921]) ([fjaraskupan docs]) (new-platform) +- Enable basic type checking for adguard ([@emontnemery] - [#54924]) ([adguard docs]) +- Enable basic type checking for analytics ([@emontnemery] - [#54928]) ([analytics docs]) +- Enable basic type checking for atag ([@emontnemery] - [#54933]) ([atag docs]) +- Remove unused string in P1 Monitor ([@klaasnicolaas] - [#54911]) ([p1_monitor docs]) +- Various type hint related improvements ([@scop] - [#54971]) ([http docs]) ([hassio docs]) ([actiontec docs]) +- Minor refactoring of keba integration ([@carstenschroeder] - [#54976]) ([keba docs]) +- Move get_serial_by_id and human_readable_device_name to usb ([@bdraco] - [#54968]) ([zha docs]) ([usb docs]) +- Gracefully handle udev not available via OSError when setting up usb ([@bdraco] - [#54967]) ([usb docs]) +- Add lazy_error_count to modbus ([@janiversen] - [#54412]) ([modbus docs]) +- Add support for USB discovery to zwave_js ([@bdraco] - [#54938]) ([zwave_js docs]) +- Bump sqlalchemy to 1.4.23 ([@bdraco] - [#54980]) ([recorder docs]) ([sql docs]) +- Add `number` platform for Xiaomi Miio fan ([@bieniu] - [#54977]) ([xiaomi_miio docs]) (breaking-change) +- Set unique id to amcrest serial number ([@brianegge] - [#54675]) ([amcrest docs]) +- Use DataUpdateCoordinator for wemo ([@esev] - [#54866]) ([wemo docs]) +- Activate mypy for homematicip_cloud ([@janiversen] - [#54950]) ([homematicip_cloud docs]) +- Use EntityDescription - buienradar ([@cdce8p] - [#54317]) ([buienradar docs]) +- Use EntityDescription - nzbget ([@cdce8p] - [#54427]) ([nzbget docs]) +- Use EntityDescription - trafikverket_weatherstation ([@cdce8p] - [#54430]) ([trafikverket_weatherstation docs]) +- Use EntityDescription - starline ([@cdce8p] - [#54431]) ([starline docs]) +- Use EntityDescription - envirophat ([@cdce8p] - [#54944]) ([envirophat docs]) +- Fix nmap_tracker typing ([@bdraco] - [#54858]) ([nmap_tracker docs]) +- Fix recorder shutdown race and i/o in event loop ([@bdraco] - [#54979]) ([recorder docs]) +- Synology sensor name clarification ([@chemelli74] - [#54262]) ([synology_dsm docs]) +- VSCode switch to terminal.integrated.profiles ([@mib1185] - [#54301]) +- Remove ctalkington from directv codeowner ([@ctalkington] - [#54988]) ([directv docs]) +- Add known devices to USB Vendor / Product IDs ([@bdraco] - [#54986]) ([zha docs]) ([zwave_js docs]) +- Use EntityDescription - google_wifi ([@cdce8p] - [#54941]) ([google_wifi docs]) +- Switch periodic USB scanning to on-demand websocket when observer is not available ([@bdraco] - [#54953]) ([usb docs]) +- Upgrade PyTurboJPEG to 1.5.2 ([@frenck] - [#54992]) ([camera docs]) +- Bump python-yeelight to 0.7.3 ([@bdraco] - [#54982]) ([yeelight docs]) +- Fix manual setup when roomba is on different subnet ([@jorgror] - [#54639]) ([roomba docs]) +- Add missing BYN currency ([@frenck] - [#55001]) +- Fix incorrect power device class on energy sensors in Smappee ([@frenck] - [#54994]) ([smappee docs]) +- Upgrade apprise to 0.9.4 ([@frenck] - [#55002]) ([apprise docs]) +- Upgrade watchdog to 2.1.4 ([@frenck] - [#54993]) ([folder_watcher docs]) +- Skip trying the pyudev observer when using standalone docker for usb ([@bdraco] - [#54987]) ([usb docs]) +- Add support for logger info in fronius integration ([@nielstron] - [#54795]) ([fronius docs]) +- Remove base_test from modbus test harness ([@janiversen] - [#55018]) ([modbus docs]) +- Add state_class to relevant sensors in Danfoss Air ([@JonasPed] - [#54847]) ([danfoss_air docs]) +- Add Binary Sensor for WeMo Insight & Maker ([@esev] - [#55000]) ([wemo docs]) +- Add silver quality scale to goalzero ([@tkdrob] - [#53299]) ([goalzero docs]) +- Use EntityDescription - openuv ([@cdce8p] - [#55022]) ([openuv docs]) +- Improve device trigger type hinting ([@scop] - [#54907]) +- Fix P1 Monitor requirement in manifest ([@frenck] - [#55027]) ([p1_monitor docs]) +- Add support for bridge accessory unavailability ([@bdraco] - [#52207]) ([homekit_controller docs]) +- Use EntityDescription - ring ([@cdce8p] - [#55023]) ([ring docs]) +- Add zigbee connection for wemo bridge lights ([@esev] - [#53813]) ([wemo docs]) +- Fix validation for zwave_js device trigger and condition ([@raman325] - [#54974]) ([zwave_js docs]) +- Clean up unused ipp logger ([@tkdrob] - [#55039]) ([ipp docs]) +- Complete config flow tests for sense ([@tkdrob] - [#55040]) ([sense docs]) +- Enable basic type checking for almond ([@emontnemery] - [#54927]) ([almond docs]) +- Remove deprecated YAML configuration from Epson ([@pszafer] - [#55045]) ([epson docs]) (breaking-change) +- Alpine 3.14 ([@pvizeli] - [#55049]) +- Growatt server integration add TLX support ([@JasperPlant] - [#54844]) ([growatt_server docs]) +- Add device class for volatile organic compounds ([@Jc2k] - [#55050]) ([sensor docs]) +- Fix DSMR startup logic ([@emontnemery] - [#55051]) +- Prefer discovered usb device over add-on config in zwave_js ([@MartinHjelmare] - [#55056]) ([zwave_js docs]) +- Please mypy. ([@janiversen] - [#55069]) ([smarty docs]) +- Enable basic type checking for azure_event_hub ([@emontnemery] - [#55047]) ([azure_event_hub docs]) +- Pass session to forecast constructor ([@klaasnicolaas] - [#55075]) ([forecast_solar docs]) +- Add support for white to light groups ([@emontnemery] - [#55082]) ([group docs]) +- Use EntityDescription - rainmachine ([@cdce8p] - [#55021]) ([rainmachine docs]) +- Update pylint to 2.10.2 ([@cdce8p] - [#55089]) +- Restore last_triggered state in scripts ([@frenck] - [#55071]) ([script docs]) +- Use EntityDescription - ecobee ([@cdce8p] - [#55088]) ([ecobee docs]) +- Use EntityDescription - wirelesstag ([@cdce8p] - [#55065]) ([wirelesstag docs]) +- Activate mypy for timer ([@janiversen] - [#55058]) ([timer docs]) +- Activate mypy for volumio ([@janiversen] - [#55054]) ([volumio docs]) +- Add volatile organic compounds to homekit_controller ([@Jc2k] - [#55093]) ([homekit_controller docs]) +- Use EntityDescription - travisci ([@cdce8p] - [#55038]) ([travisci docs]) +- Use EntityDescription - fido ([@cdce8p] - [#55037]) ([fido docs]) +- Update alarm control panel and deconz alarm event to reflect the finalized implementation in deCONZ ([@Kane610] - [#54936]) ([deconz docs]) +- Activate mypy for velbus ([@janiversen] - [#55055]) ([velbus docs]) +- Bump HAP-python to 4.1.0 ([@bdraco] - [#55005]) ([homekit docs]) +- Use EntityDescription - pushbullet ([@cdce8p] - [#54999]) ([pushbullet docs]) +- Use EntityDescription - deluge ([@cdce8p] - [#55085]) ([deluge docs]) +- Use EntityDescription - openevse ([@cdce8p] - [#55084]) ([openevse docs]) +- Activate mypy for tuya ([@janiversen] - [#55057]) ([tuya docs]) +- Use EntityDescription - foobot ([@cdce8p] - [#54996]) ([foobot docs]) +- Add state_class and device_class to Solarlog platform ([@Ernst79] - [#53946]) ([solarlog docs]) +- Update YouLess integration for long time measurements ([@gjong] - [#54767]) ([youless docs]) +- Use EntityDescription - bbox ([@cdce8p] - [#55064]) ([bbox docs]) +- Use EntityDescription - radarr ([@cdce8p] - [#54997]) ([radarr docs]) +- Use EntityDescription - miflora ([@cdce8p] - [#55020]) ([miflora docs]) +- Use EntityDescription - amcrest ([@cdce8p] - [#54998]) ([amcrest docs]) +- Use EntityDescription - startca ([@cdce8p] - [#55036]) ([startca docs]) +- Use EntityDescription - sensehat ([@cdce8p] - [#54995]) ([envirophat docs]) ([sensehat docs]) +- Use EntityDescription - magicseaweed ([@cdce8p] - [#54943]) ([magicseaweed docs]) +- Use EntityDescription - dovado ([@cdce8p] - [#54945]) ([dovado docs]) +- Use EntityDescription - zamg ([@cdce8p] - [#54942]) ([zamg docs]) +- Use EntityDescription - enocean ([@cdce8p] - [#55087]) ([enocean docs]) +- Bump pymyq to 3.1.3 ([@bdraco] - [#55099]) ([myq docs]) +- Fix TypeError in Xiaomi Miio fan platform ([@bieniu] - [#55091]) ([xiaomi_miio docs]) +- Activate mypy for smarttub ([@janiversen] - [#55070]) +- Activate mypy for wink ([@janiversen] - [#55077]) ([wink docs]) +- Use EntityDescription - volkszaehler ([@cdce8p] - [#55034]) ([volkszaehler docs]) +- Activate mypy for synology_srm ([@janiversen] - [#55059]) ([synology_srm docs]) +- Use EntityDescription - ombi ([@cdce8p] - [#55086]) ([ombi docs]) +- Use EntityDescription - thinkingcleaner ([@cdce8p] - [#55068]) ([thinkingcleaner docs]) +- Break out mock of pymodbus return from mock_modbus to new fixture ([@janiversen] - [#55063]) ([modbus docs]) +- Add `sensor` platform for Tractive integration ([@bieniu] - [#54143]) ([tractive docs]) (new-platform) +- Add multi device support back to honeywell ([@rdfurman] - [#54003]) ([honeywell docs]) +- Add support for Google Assistant's LocatorTrait for vacuum cleaners ([@giannello] - [#55015]) ([google_assistant docs]) +- Bump httpx to 0.19.0 ([@bdraco] - [#55106]) +- Fix updating device path from discovery in zha ([@bdraco] - [#55124]) ([zha docs]) +- Bump aioesphomeapi to 7.0.0 ([@jesserockz] - [#55129]) ([esphome docs]) +- Fix race that allowed multiple config flows with the same unique id ([@bdraco] - [#55131]) +- Mark eagle entities as unavailable if connection with meter losts ([@balloob] - [#55102]) ([rainforest_eagle docs]) +- Validate requirements format in hassfest ([@balloob] - [#55094]) ([gc100 docs]) +- Guard for unparsable date time ([@balloob] - [#55108]) ([hue docs]) +- Bump Forecast Solar to v2.1.0 ([@klaasnicolaas] - [#55121]) ([forecast_solar docs]) +- Pin google-api-core to avoid new version of grpcio ([@allenporter] - [#55115]) +- Use EntityDescription - Vallox ([@andre-richter] - [#54891]) ([vallox docs]) +- Use switch instead of toggle entity ([@cdce8p] - [#55111]) ([thinkingcleaner docs]) +- Use EntityDescription - rtorrent ([@cdce8p] - [#55067]) ([rtorrent docs]) +- Use EntityDescription - comed_hourly_pricing ([@cdce8p] - [#55066]) ([comed_hourly_pricing docs]) +- Use EntityDescription - broadlink ([@cdce8p] - [#55019]) ([broadlink docs]) +- Use EntityDescription - onewire ([@epenet] - [#55003]) ([onewire docs]) +- Ensure camera scaling always produces an image of at least the requested width and height ([@bdraco] - [#55033]) ([camera docs]) +- Change Solarlog Watt-peak to Watt ([@Ernst79] - [#55110]) ([solarlog docs]) (breaking-change) +- Fix bug removing API key on Forecast Solar ([@klaasnicolaas] - [#55119]) ([forecast_solar docs]) +- Set statistics columns to double precision ([@emontnemery] - [#55053]) ([recorder docs]) +- Update base image for Alpine 3.14 ([@pvizeli] - [#55137]) +- Remove MQTT Fan legacy speeds ([@jbouwh] - [#54768]) ([mqtt docs]) (breaking-change) +- Activate mypy for surepetcare ([@janiversen] - [#55079]) ([surepetcare docs]) +- Activate mypy for todoist ([@janiversen] - [#55096]) ([todoist docs]) +- Please mypy in gtfs and implement needed changes ([@janiversen] - [#54328]) ([gtfs docs]) +- Add deCONZ support for Sonoff SNZB-01 switches ([@JasperS2307] - [#54919]) ([deconz docs]) +- Provide unique IDs for Lutron Entities ([@cdheiser] - [#51395]) ([lutron docs]) +- Test KNX fan ([@farmio] - [#53621]) ([knx docs]) +- Fallback to try all known Plex servers if none marked present ([@jjlawren] - [#53643]) ([plex docs]) +- SMA: Add statistics support for power sensors ([@andre-richter] - [#54422]) ([sma docs]) +- Configurable default `hvac_mode` for KNX climate ([@farmio] - [#54289]) ([knx docs]) +- OVO Energy - Sensor Entity Descriptions ([@timmo001] - [#54952]) ([ovo_energy docs]) (breaking-change) +- Implementation of new Vacation mode for MQTT-based alarm panels ([@posixx] - [#53561]) ([mqtt docs]) ([alarm_control_panel docs]) ([manual_mqtt docs]) +- Fix Tasmota MQTT discovery flow ([@emontnemery] - [#55140]) ([tasmota docs]) +- Update amcrest to use binary sensor entity description ([@flacjacket] - [#55092]) ([amcrest docs]) +- Convert template/vacuum to pytest with fixtures ([@janiversen] - [#54841]) ([template docs]) +- Revert "Please mypy in gtfs and implement needed changes (#54328)" ([@janiversen] - [#55148]) ([gtfs docs]) +- Fix min value for Xiaomi Miio volume entity ([@bieniu] - [#55139]) ([xiaomi_miio docs]) +- Convert number value to int in Xiaomi Miio ([@bieniu] - [#55145]) ([xiaomi_miio docs]) +- Fix statistics for sensors setting last_reset ([@emontnemery] - [#55136]) ([recorder docs]) ([history docs]) ([sensor docs]) ([energy docs]) +- Allow small dip in total_increasing sensor without detecting a reset ([@emontnemery] - [#55153]) ([sensor docs]) ([energy docs]) +- Adjust yeelight homekit model match ([@bdraco] - [#55159]) ([yeelight docs]) +- Handle missing mac address in syncthru ([@nielstron] - [#55154]) ([syncthru docs]) +- Deduplicate code in MQTT alarm_control_panel tests ([@emontnemery] - [#55149]) ([mqtt docs]) +- Improve Tasmota MQTT discovery flow ([@emontnemery] - [#55147]) ([tasmota docs]) +- Address late review of Fritz switch ([@AaronDavidSchneider] - [#54842]) ([fritz docs]) +- Move to aiogithubapi any async for the GitHub integration ([@ludeeus] - [#55143]) ([github docs]) +- Use a debouncer when updating ZHA group state ([@Adminiuga] - [#53263]) ([zha docs]) +- Remove temperature conversion - dht ([@cdce8p] - [#55161]) ([dht docs]) +- Remove temperature conversion - bme280 ([@cdce8p] - [#55162]) ([bme280 docs]) +- Remove temperature conversion - bme680 ([@cdce8p] - [#55163]) ([bme680 docs]) +- Remove temperature conversion - htu21d ([@cdce8p] - [#55165]) ([htu21d docs]) +- Add missing baseclass for rituals perfume genie entities ([@milanmeu] - [#55166]) ([rituals_perfume_genie docs]) +- Convert Nanoleaf yaml and discovery to config flow ([@milanmeu] - [#52199]) ([nanoleaf docs]) (breaking-change) +- Update version for smart-meter-texas to 0.4.7 ([@meyerrj] - [#54493]) ([smart_meter_texas docs]) +- Fix Sonos missing group member race condition on startup ([@jjlawren] - [#55158]) ([sonos docs]) +- Update ZHA config entry radio detection ([@Adminiuga] - [#55128]) ([zha docs]) +- Add ability to configure OpenUV "protection window" UV indices ([@bachya] - [#54562]) ([openuv docs]) +- Remove unreachable code in OpenUV ([@bachya] - [#55181]) ([openuv docs]) +- Fix recorder test ([@balloob] - [#55169]) ([sensor docs]) +- Bump codecov/codecov-action from 2.0.2 to 2.0.3 (@dependabot - [#55194]) +- Add statistics for emoncms power and energy feeds ([@lukewaite] - [#55109]) ([emoncms docs]) +- Use EntityDescription - dht ([@cdce8p] - [#55183]) ([dht docs]) +- Remove temperature conversion - mhz19 ([@cdce8p] - [#55164]) ([mhz19 docs]) +- Activate mypy in gtfs (followup on reverted #54328) ([@janiversen] - [#55195]) ([gtfs docs]) +- Use EntityDescription - guardian ([@bachya] - [#55118]) ([guardian docs]) +- Use EntityDescription - htu21d ([@cdce8p] - [#55186]) ([htu21d docs]) +- Use EntityDescription - bme680 ([@cdce8p] - [#55185]) ([bme680 docs]) +- Use EntityDescription - bme280 ([@cdce8p] - [#55184]) ([bme280 docs]) +- Use EntityDescription - notion ([@bachya] - [#55120]) ([notion docs]) +- Use EntityDescription - airvisual ([@bachya] - [#55125]) ([airvisual docs]) +- Use EntityDescription - flunearyou ([@bachya] - [#55126]) ([flunearyou docs]) +- Updating IBM Watson SDK ([@rutkai] - [#54914]) ([watson_tts docs]) +- Add account type to Forecast.Solar integration ([@klaasnicolaas] - [#55175]) ([forecast_solar docs]) +- Remove temperature conversion - temper ([@cdce8p] - [#55188]) ([temper docs]) +- Fix rainforest eagle incorrectly fetch conncted first try ([@balloob] - [#55193]) ([rainforest_eagle docs]) +- Add configurable `state_class` to Modbus sensors ([@farmio] - [#54103]) ([modbus docs]) +- Refactor Jewish Calendar to use EntityDescription ([@yuvalabou] - [#54852]) ([jewish_calendar docs]) +- Remember state of MQTT availability topics when reconfiguring ([@emontnemery] - [#55199]) ([mqtt docs]) +- Add service to clear completed shoppinglist items ([@GrumpyMeow] - [#55032]) ([shopping_list docs]) +- Check for duplicate host/port and integration name in modbus ([@janiversen] - [#54664]) ([modbus docs]) +- Fix name - temper ([@cdce8p] - [#55189]) ([temper docs]) +- Extract attribute names out of vol.Optional when validating entity service schema ([@bnordli] - [#55157]) +- Generate statistics for all sensors with a supported state_class ([@emontnemery] - [#54882]) ([recorder docs]) ([sensor docs]) +- Warn if a sensor with state_class_total has a decreasing value ([@emontnemery] - [#55197]) ([sensor docs]) ([energy docs]) +- Add type annotations to amcrest integration ([@flacjacket] - [#54761]) ([amcrest docs]) +- Activate mypy for switchbot ([@janiversen] - [#55196]) ([switchbot docs]) +- Use EntityDescription - mhz19 ([@cdce8p] - [#55187]) ([mhz19 docs]) +- Tasmota - Cleanup tests involving legacy fan speed ([@jbouwh] - [#55202]) ([tasmota docs]) +- Utility meter, add STATE_CLASS_TOTAL_INCREASING ([@Danielhiversen] - [#54871]) ([utility_meter docs]) +- Clean up usage of EntityDescription in OpenUV ([@bachya] - [#55127]) ([openuv docs]) +- Cancel entity timers. ([@janiversen] - [#55141]) ([modbus docs]) +- Remove redundant str cast - sensor value conversion ([@cdce8p] - [#55204]) ([sensor docs]) +- Fix last_reset in utility_meter ([@emontnemery] - [#55209]) ([utility_meter docs]) +- Remove should poll property from Xiaomi Miio fan platform ([@bieniu] - [#55201]) ([xiaomi_miio docs]) +- ESPHome sensor use total_increasing state class ([@OttoWinter] - [#55208]) ([esphome docs]) +- Fix Fjäråskupan RSSI sensor unit ([@emontnemery] - [#55210]) ([fjaraskupan docs]) +- Prevent setting _attr_unit_of_measurement in subclasses of SensorEntity ([@emontnemery] - [#55211]) ([sensor docs]) +- Ignore unsupported MeasureType-s from Withings ([@denismilanovic] - [#55205]) ([withings docs]) +- Report average of position and tilt_position for cover groups ([@emontnemery] - [#52713]) ([group docs]) +- Remove temperature conversion - synology_dsm ([@cdce8p] - [#55214]) ([synology_dsm docs]) +- Finish EntityDescription implementation for RainMachine ([@bachya] - [#55180]) ([rainmachine docs]) +- Remove temperature conversion - sht31 ([@cdce8p] - [#55213]) ([sht31 docs]) +- Support device triggers in HomeKit ([@bdraco] - [#53869]) ([homekit docs]) +- Change logging to do rollover() instead of rotate() ([@janiversen] - [#55177]) +- Implement color_mode support for mysensors ([@emontnemery] - [#52068]) ([mysensors docs]) (breaking-change) +- Address review of Nanoleaf Config Flow ([@milanmeu] - [#55215]) ([nanoleaf docs]) +- Sonos add bass & treble EQ option ([@Tigger2014] - [#53978]) ([sonos docs]) +- Add support for Xiaomi Miio pedestal fans ([@bieniu] - [#55114]) ([xiaomi_miio docs]) +- Support for EnergyStorageTrait for vacuum cleaners ([@giannello] - [#55134]) ([google_assistant docs]) +- Add tests for Rituals init, sensor and switch ([@milanmeu] - [#52406]) ([rituals_perfume_genie docs]) +- Honeywell Lyric - Entity Descriptions ([@timmo001] - [#54956]) ([lyric docs]) +- Add select platform to template integration ([@raman325] - [#54835]) ([template docs]) (new-platform) +- Add number platform to template integration ([@raman325] - [#54789]) ([template docs]) (new-platform) +- Bump frontend to 20210825.0 ([@balloob] - [#55221]) ([frontend docs]) +- Add an energy solar platform for solar forecasts ([@balloob] - [#54576]) ([energy docs]) ([forecast_solar docs]) +- Add missing convert to fan/light/switch modbus platform ([@janiversen] - [#55203]) ([modbus docs]) +- Add template functions to get area_id and area_name ([@raman325] - [#54248]) +- Add "cron patterns" to define utility_meter cycles ([@dgomes] - [#46795]) ([utility_meter docs]) +- Add Nanoleaf reauth flow ([@milanmeu] - [#55217]) ([nanoleaf docs]) +- Convert color temperature to visible color in lights ([@bdraco] - [#55219]) ([light docs]) +- Add services to bond to start and stop increase/decrease brightness ([@bdraco] - [#55006]) ([bond docs]) + +{% enddetails %} + +[#39605]: https://github.com/home-assistant/core/pull/39605 +[#43513]: https://github.com/home-assistant/core/pull/43513 +[#46795]: https://github.com/home-assistant/core/pull/46795 +[#48261]: https://github.com/home-assistant/core/pull/48261 +[#49395]: https://github.com/home-assistant/core/pull/49395 +[#50071]: https://github.com/home-assistant/core/pull/50071 +[#51002]: https://github.com/home-assistant/core/pull/51002 +[#51160]: https://github.com/home-assistant/core/pull/51160 +[#51395]: https://github.com/home-assistant/core/pull/51395 +[#52068]: https://github.com/home-assistant/core/pull/52068 +[#52199]: https://github.com/home-assistant/core/pull/52199 +[#52207]: https://github.com/home-assistant/core/pull/52207 +[#52343]: https://github.com/home-assistant/core/pull/52343 +[#52352]: https://github.com/home-assistant/core/pull/52352 +[#52406]: https://github.com/home-assistant/core/pull/52406 +[#52713]: https://github.com/home-assistant/core/pull/52713 +[#52843]: https://github.com/home-assistant/core/pull/52843 +[#53018]: https://github.com/home-assistant/core/pull/53018 +[#53029]: https://github.com/home-assistant/core/pull/53029 +[#53140]: https://github.com/home-assistant/core/pull/53140 +[#53198]: https://github.com/home-assistant/core/pull/53198 +[#53263]: https://github.com/home-assistant/core/pull/53263 +[#53299]: https://github.com/home-assistant/core/pull/53299 +[#53361]: https://github.com/home-assistant/core/pull/53361 +[#53443]: https://github.com/home-assistant/core/pull/53443 +[#53463]: https://github.com/home-assistant/core/pull/53463 +[#53561]: https://github.com/home-assistant/core/pull/53561 +[#53583]: https://github.com/home-assistant/core/pull/53583 +[#53603]: https://github.com/home-assistant/core/pull/53603 +[#53619]: https://github.com/home-assistant/core/pull/53619 +[#53621]: https://github.com/home-assistant/core/pull/53621 +[#53633]: https://github.com/home-assistant/core/pull/53633 +[#53638]: https://github.com/home-assistant/core/pull/53638 +[#53642]: https://github.com/home-assistant/core/pull/53642 +[#53643]: https://github.com/home-assistant/core/pull/53643 +[#53644]: https://github.com/home-assistant/core/pull/53644 +[#53655]: https://github.com/home-assistant/core/pull/53655 +[#53666]: https://github.com/home-assistant/core/pull/53666 +[#53680]: https://github.com/home-assistant/core/pull/53680 +[#53685]: https://github.com/home-assistant/core/pull/53685 +[#53693]: https://github.com/home-assistant/core/pull/53693 +[#53699]: https://github.com/home-assistant/core/pull/53699 +[#53703]: https://github.com/home-assistant/core/pull/53703 +[#53705]: https://github.com/home-assistant/core/pull/53705 +[#53706]: https://github.com/home-assistant/core/pull/53706 +[#53714]: https://github.com/home-assistant/core/pull/53714 +[#53724]: https://github.com/home-assistant/core/pull/53724 +[#53725]: https://github.com/home-assistant/core/pull/53725 +[#53728]: https://github.com/home-assistant/core/pull/53728 +[#53740]: https://github.com/home-assistant/core/pull/53740 +[#53744]: https://github.com/home-assistant/core/pull/53744 +[#53750]: https://github.com/home-assistant/core/pull/53750 +[#53763]: https://github.com/home-assistant/core/pull/53763 +[#53764]: https://github.com/home-assistant/core/pull/53764 +[#53768]: https://github.com/home-assistant/core/pull/53768 +[#53780]: https://github.com/home-assistant/core/pull/53780 +[#53782]: https://github.com/home-assistant/core/pull/53782 +[#53783]: https://github.com/home-assistant/core/pull/53783 +[#53784]: https://github.com/home-assistant/core/pull/53784 +[#53786]: https://github.com/home-assistant/core/pull/53786 +[#53787]: https://github.com/home-assistant/core/pull/53787 +[#53805]: https://github.com/home-assistant/core/pull/53805 +[#53807]: https://github.com/home-assistant/core/pull/53807 +[#53813]: https://github.com/home-assistant/core/pull/53813 +[#53816]: https://github.com/home-assistant/core/pull/53816 +[#53820]: https://github.com/home-assistant/core/pull/53820 +[#53835]: https://github.com/home-assistant/core/pull/53835 +[#53836]: https://github.com/home-assistant/core/pull/53836 +[#53837]: https://github.com/home-assistant/core/pull/53837 +[#53840]: https://github.com/home-assistant/core/pull/53840 +[#53851]: https://github.com/home-assistant/core/pull/53851 +[#53863]: https://github.com/home-assistant/core/pull/53863 +[#53869]: https://github.com/home-assistant/core/pull/53869 +[#53881]: https://github.com/home-assistant/core/pull/53881 +[#53890]: https://github.com/home-assistant/core/pull/53890 +[#53891]: https://github.com/home-assistant/core/pull/53891 +[#53895]: https://github.com/home-assistant/core/pull/53895 +[#53898]: https://github.com/home-assistant/core/pull/53898 +[#53903]: https://github.com/home-assistant/core/pull/53903 +[#53909]: https://github.com/home-assistant/core/pull/53909 +[#53911]: https://github.com/home-assistant/core/pull/53911 +[#53915]: https://github.com/home-assistant/core/pull/53915 +[#53919]: https://github.com/home-assistant/core/pull/53919 +[#53920]: https://github.com/home-assistant/core/pull/53920 +[#53924]: https://github.com/home-assistant/core/pull/53924 +[#53928]: https://github.com/home-assistant/core/pull/53928 +[#53929]: https://github.com/home-assistant/core/pull/53929 +[#53931]: https://github.com/home-assistant/core/pull/53931 +[#53933]: https://github.com/home-assistant/core/pull/53933 +[#53934]: https://github.com/home-assistant/core/pull/53934 +[#53936]: https://github.com/home-assistant/core/pull/53936 +[#53938]: https://github.com/home-assistant/core/pull/53938 +[#53945]: https://github.com/home-assistant/core/pull/53945 +[#53946]: https://github.com/home-assistant/core/pull/53946 +[#53949]: https://github.com/home-assistant/core/pull/53949 +[#53950]: https://github.com/home-assistant/core/pull/53950 +[#53952]: https://github.com/home-assistant/core/pull/53952 +[#53954]: https://github.com/home-assistant/core/pull/53954 +[#53955]: https://github.com/home-assistant/core/pull/53955 +[#53956]: https://github.com/home-assistant/core/pull/53956 +[#53958]: https://github.com/home-assistant/core/pull/53958 +[#53967]: https://github.com/home-assistant/core/pull/53967 +[#53975]: https://github.com/home-assistant/core/pull/53975 +[#53978]: https://github.com/home-assistant/core/pull/53978 +[#53995]: https://github.com/home-assistant/core/pull/53995 +[#53996]: https://github.com/home-assistant/core/pull/53996 +[#54003]: https://github.com/home-assistant/core/pull/54003 +[#54006]: https://github.com/home-assistant/core/pull/54006 +[#54018]: https://github.com/home-assistant/core/pull/54018 +[#54019]: https://github.com/home-assistant/core/pull/54019 +[#54020]: https://github.com/home-assistant/core/pull/54020 +[#54040]: https://github.com/home-assistant/core/pull/54040 +[#54041]: https://github.com/home-assistant/core/pull/54041 +[#54042]: https://github.com/home-assistant/core/pull/54042 +[#54044]: https://github.com/home-assistant/core/pull/54044 +[#54051]: https://github.com/home-assistant/core/pull/54051 +[#54055]: https://github.com/home-assistant/core/pull/54055 +[#54074]: https://github.com/home-assistant/core/pull/54074 +[#54075]: https://github.com/home-assistant/core/pull/54075 +[#54080]: https://github.com/home-assistant/core/pull/54080 +[#54084]: https://github.com/home-assistant/core/pull/54084 +[#54087]: https://github.com/home-assistant/core/pull/54087 +[#54090]: https://github.com/home-assistant/core/pull/54090 +[#54096]: https://github.com/home-assistant/core/pull/54096 +[#54103]: https://github.com/home-assistant/core/pull/54103 +[#54109]: https://github.com/home-assistant/core/pull/54109 +[#54110]: https://github.com/home-assistant/core/pull/54110 +[#54111]: https://github.com/home-assistant/core/pull/54111 +[#54115]: https://github.com/home-assistant/core/pull/54115 +[#54116]: https://github.com/home-assistant/core/pull/54116 +[#54133]: https://github.com/home-assistant/core/pull/54133 +[#54137]: https://github.com/home-assistant/core/pull/54137 +[#54143]: https://github.com/home-assistant/core/pull/54143 +[#54149]: https://github.com/home-assistant/core/pull/54149 +[#54157]: https://github.com/home-assistant/core/pull/54157 +[#54174]: https://github.com/home-assistant/core/pull/54174 +[#54176]: https://github.com/home-assistant/core/pull/54176 +[#54179]: https://github.com/home-assistant/core/pull/54179 +[#54182]: https://github.com/home-assistant/core/pull/54182 +[#54185]: https://github.com/home-assistant/core/pull/54185 +[#54190]: https://github.com/home-assistant/core/pull/54190 +[#54198]: https://github.com/home-assistant/core/pull/54198 +[#54200]: https://github.com/home-assistant/core/pull/54200 +[#54223]: https://github.com/home-assistant/core/pull/54223 +[#54226]: https://github.com/home-assistant/core/pull/54226 +[#54227]: https://github.com/home-assistant/core/pull/54227 +[#54228]: https://github.com/home-assistant/core/pull/54228 +[#54229]: https://github.com/home-assistant/core/pull/54229 +[#54230]: https://github.com/home-assistant/core/pull/54230 +[#54231]: https://github.com/home-assistant/core/pull/54231 +[#54244]: https://github.com/home-assistant/core/pull/54244 +[#54248]: https://github.com/home-assistant/core/pull/54248 +[#54251]: https://github.com/home-assistant/core/pull/54251 +[#54253]: https://github.com/home-assistant/core/pull/54253 +[#54256]: https://github.com/home-assistant/core/pull/54256 +[#54257]: https://github.com/home-assistant/core/pull/54257 +[#54259]: https://github.com/home-assistant/core/pull/54259 +[#54262]: https://github.com/home-assistant/core/pull/54262 +[#54264]: https://github.com/home-assistant/core/pull/54264 +[#54269]: https://github.com/home-assistant/core/pull/54269 +[#54271]: https://github.com/home-assistant/core/pull/54271 +[#54276]: https://github.com/home-assistant/core/pull/54276 +[#54277]: https://github.com/home-assistant/core/pull/54277 +[#54284]: https://github.com/home-assistant/core/pull/54284 +[#54287]: https://github.com/home-assistant/core/pull/54287 +[#54289]: https://github.com/home-assistant/core/pull/54289 +[#54296]: https://github.com/home-assistant/core/pull/54296 +[#54297]: https://github.com/home-assistant/core/pull/54297 +[#54300]: https://github.com/home-assistant/core/pull/54300 +[#54301]: https://github.com/home-assistant/core/pull/54301 +[#54304]: https://github.com/home-assistant/core/pull/54304 +[#54305]: https://github.com/home-assistant/core/pull/54305 +[#54310]: https://github.com/home-assistant/core/pull/54310 +[#54314]: https://github.com/home-assistant/core/pull/54314 +[#54316]: https://github.com/home-assistant/core/pull/54316 +[#54317]: https://github.com/home-assistant/core/pull/54317 +[#54318]: https://github.com/home-assistant/core/pull/54318 +[#54319]: https://github.com/home-assistant/core/pull/54319 +[#54320]: https://github.com/home-assistant/core/pull/54320 +[#54321]: https://github.com/home-assistant/core/pull/54321 +[#54323]: https://github.com/home-assistant/core/pull/54323 +[#54325]: https://github.com/home-assistant/core/pull/54325 +[#54327]: https://github.com/home-assistant/core/pull/54327 +[#54328]: https://github.com/home-assistant/core/pull/54328 +[#54329]: https://github.com/home-assistant/core/pull/54329 +[#54336]: https://github.com/home-assistant/core/pull/54336 +[#54343]: https://github.com/home-assistant/core/pull/54343 +[#54359]: https://github.com/home-assistant/core/pull/54359 +[#54360]: https://github.com/home-assistant/core/pull/54360 +[#54362]: https://github.com/home-assistant/core/pull/54362 +[#54363]: https://github.com/home-assistant/core/pull/54363 +[#54366]: https://github.com/home-assistant/core/pull/54366 +[#54367]: https://github.com/home-assistant/core/pull/54367 +[#54369]: https://github.com/home-assistant/core/pull/54369 +[#54370]: https://github.com/home-assistant/core/pull/54370 +[#54371]: https://github.com/home-assistant/core/pull/54371 +[#54383]: https://github.com/home-assistant/core/pull/54383 +[#54387]: https://github.com/home-assistant/core/pull/54387 +[#54388]: https://github.com/home-assistant/core/pull/54388 +[#54390]: https://github.com/home-assistant/core/pull/54390 +[#54391]: https://github.com/home-assistant/core/pull/54391 +[#54392]: https://github.com/home-assistant/core/pull/54392 +[#54393]: https://github.com/home-assistant/core/pull/54393 +[#54396]: https://github.com/home-assistant/core/pull/54396 +[#54403]: https://github.com/home-assistant/core/pull/54403 +[#54408]: https://github.com/home-assistant/core/pull/54408 +[#54410]: https://github.com/home-assistant/core/pull/54410 +[#54412]: https://github.com/home-assistant/core/pull/54412 +[#54415]: https://github.com/home-assistant/core/pull/54415 +[#54416]: https://github.com/home-assistant/core/pull/54416 +[#54418]: https://github.com/home-assistant/core/pull/54418 +[#54420]: https://github.com/home-assistant/core/pull/54420 +[#54422]: https://github.com/home-assistant/core/pull/54422 +[#54425]: https://github.com/home-assistant/core/pull/54425 +[#54427]: https://github.com/home-assistant/core/pull/54427 +[#54428]: https://github.com/home-assistant/core/pull/54428 +[#54429]: https://github.com/home-assistant/core/pull/54429 +[#54430]: https://github.com/home-assistant/core/pull/54430 +[#54431]: https://github.com/home-assistant/core/pull/54431 +[#54432]: https://github.com/home-assistant/core/pull/54432 +[#54442]: https://github.com/home-assistant/core/pull/54442 +[#54449]: https://github.com/home-assistant/core/pull/54449 +[#54452]: https://github.com/home-assistant/core/pull/54452 +[#54456]: https://github.com/home-assistant/core/pull/54456 +[#54468]: https://github.com/home-assistant/core/pull/54468 +[#54469]: https://github.com/home-assistant/core/pull/54469 +[#54470]: https://github.com/home-assistant/core/pull/54470 +[#54471]: https://github.com/home-assistant/core/pull/54471 +[#54472]: https://github.com/home-assistant/core/pull/54472 +[#54474]: https://github.com/home-assistant/core/pull/54474 +[#54475]: https://github.com/home-assistant/core/pull/54475 +[#54476]: https://github.com/home-assistant/core/pull/54476 +[#54477]: https://github.com/home-assistant/core/pull/54477 +[#54478]: https://github.com/home-assistant/core/pull/54478 +[#54481]: https://github.com/home-assistant/core/pull/54481 +[#54482]: https://github.com/home-assistant/core/pull/54482 +[#54483]: https://github.com/home-assistant/core/pull/54483 +[#54489]: https://github.com/home-assistant/core/pull/54489 +[#54493]: https://github.com/home-assistant/core/pull/54493 +[#54496]: https://github.com/home-assistant/core/pull/54496 +[#54501]: https://github.com/home-assistant/core/pull/54501 +[#54503]: https://github.com/home-assistant/core/pull/54503 +[#54512]: https://github.com/home-assistant/core/pull/54512 +[#54513]: https://github.com/home-assistant/core/pull/54513 +[#54516]: https://github.com/home-assistant/core/pull/54516 +[#54522]: https://github.com/home-assistant/core/pull/54522 +[#54523]: https://github.com/home-assistant/core/pull/54523 +[#54532]: https://github.com/home-assistant/core/pull/54532 +[#54539]: https://github.com/home-assistant/core/pull/54539 +[#54540]: https://github.com/home-assistant/core/pull/54540 +[#54542]: https://github.com/home-assistant/core/pull/54542 +[#54543]: https://github.com/home-assistant/core/pull/54543 +[#54546]: https://github.com/home-assistant/core/pull/54546 +[#54547]: https://github.com/home-assistant/core/pull/54547 +[#54554]: https://github.com/home-assistant/core/pull/54554 +[#54560]: https://github.com/home-assistant/core/pull/54560 +[#54561]: https://github.com/home-assistant/core/pull/54561 +[#54562]: https://github.com/home-assistant/core/pull/54562 +[#54564]: https://github.com/home-assistant/core/pull/54564 +[#54567]: https://github.com/home-assistant/core/pull/54567 +[#54574]: https://github.com/home-assistant/core/pull/54574 +[#54575]: https://github.com/home-assistant/core/pull/54575 +[#54576]: https://github.com/home-assistant/core/pull/54576 +[#54577]: https://github.com/home-assistant/core/pull/54577 +[#54581]: https://github.com/home-assistant/core/pull/54581 +[#54583]: https://github.com/home-assistant/core/pull/54583 +[#54588]: https://github.com/home-assistant/core/pull/54588 +[#54589]: https://github.com/home-assistant/core/pull/54589 +[#54594]: https://github.com/home-assistant/core/pull/54594 +[#54596]: https://github.com/home-assistant/core/pull/54596 +[#54601]: https://github.com/home-assistant/core/pull/54601 +[#54603]: https://github.com/home-assistant/core/pull/54603 +[#54606]: https://github.com/home-assistant/core/pull/54606 +[#54607]: https://github.com/home-assistant/core/pull/54607 +[#54611]: https://github.com/home-assistant/core/pull/54611 +[#54613]: https://github.com/home-assistant/core/pull/54613 +[#54623]: https://github.com/home-assistant/core/pull/54623 +[#54624]: https://github.com/home-assistant/core/pull/54624 +[#54625]: https://github.com/home-assistant/core/pull/54625 +[#54630]: https://github.com/home-assistant/core/pull/54630 +[#54632]: https://github.com/home-assistant/core/pull/54632 +[#54637]: https://github.com/home-assistant/core/pull/54637 +[#54639]: https://github.com/home-assistant/core/pull/54639 +[#54644]: https://github.com/home-assistant/core/pull/54644 +[#54648]: https://github.com/home-assistant/core/pull/54648 +[#54649]: https://github.com/home-assistant/core/pull/54649 +[#54654]: https://github.com/home-assistant/core/pull/54654 +[#54661]: https://github.com/home-assistant/core/pull/54661 +[#54662]: https://github.com/home-assistant/core/pull/54662 +[#54664]: https://github.com/home-assistant/core/pull/54664 +[#54665]: https://github.com/home-assistant/core/pull/54665 +[#54666]: https://github.com/home-assistant/core/pull/54666 +[#54668]: https://github.com/home-assistant/core/pull/54668 +[#54669]: https://github.com/home-assistant/core/pull/54669 +[#54672]: https://github.com/home-assistant/core/pull/54672 +[#54673]: https://github.com/home-assistant/core/pull/54673 +[#54675]: https://github.com/home-assistant/core/pull/54675 +[#54677]: https://github.com/home-assistant/core/pull/54677 +[#54689]: https://github.com/home-assistant/core/pull/54689 +[#54690]: https://github.com/home-assistant/core/pull/54690 +[#54697]: https://github.com/home-assistant/core/pull/54697 +[#54698]: https://github.com/home-assistant/core/pull/54698 +[#54699]: https://github.com/home-assistant/core/pull/54699 +[#54700]: https://github.com/home-assistant/core/pull/54700 +[#54701]: https://github.com/home-assistant/core/pull/54701 +[#54702]: https://github.com/home-assistant/core/pull/54702 +[#54705]: https://github.com/home-assistant/core/pull/54705 +[#54709]: https://github.com/home-assistant/core/pull/54709 +[#54710]: https://github.com/home-assistant/core/pull/54710 +[#54711]: https://github.com/home-assistant/core/pull/54711 +[#54715]: https://github.com/home-assistant/core/pull/54715 +[#54717]: https://github.com/home-assistant/core/pull/54717 +[#54719]: https://github.com/home-assistant/core/pull/54719 +[#54720]: https://github.com/home-assistant/core/pull/54720 +[#54723]: https://github.com/home-assistant/core/pull/54723 +[#54724]: https://github.com/home-assistant/core/pull/54724 +[#54728]: https://github.com/home-assistant/core/pull/54728 +[#54729]: https://github.com/home-assistant/core/pull/54729 +[#54731]: https://github.com/home-assistant/core/pull/54731 +[#54732]: https://github.com/home-assistant/core/pull/54732 +[#54733]: https://github.com/home-assistant/core/pull/54733 +[#54738]: https://github.com/home-assistant/core/pull/54738 +[#54739]: https://github.com/home-assistant/core/pull/54739 +[#54741]: https://github.com/home-assistant/core/pull/54741 +[#54742]: https://github.com/home-assistant/core/pull/54742 +[#54743]: https://github.com/home-assistant/core/pull/54743 +[#54744]: https://github.com/home-assistant/core/pull/54744 +[#54746]: https://github.com/home-assistant/core/pull/54746 +[#54748]: https://github.com/home-assistant/core/pull/54748 +[#54749]: https://github.com/home-assistant/core/pull/54749 +[#54750]: https://github.com/home-assistant/core/pull/54750 +[#54751]: https://github.com/home-assistant/core/pull/54751 +[#54752]: https://github.com/home-assistant/core/pull/54752 +[#54753]: https://github.com/home-assistant/core/pull/54753 +[#54755]: https://github.com/home-assistant/core/pull/54755 +[#54758]: https://github.com/home-assistant/core/pull/54758 +[#54759]: https://github.com/home-assistant/core/pull/54759 +[#54761]: https://github.com/home-assistant/core/pull/54761 +[#54762]: https://github.com/home-assistant/core/pull/54762 +[#54764]: https://github.com/home-assistant/core/pull/54764 +[#54767]: https://github.com/home-assistant/core/pull/54767 +[#54768]: https://github.com/home-assistant/core/pull/54768 +[#54769]: https://github.com/home-assistant/core/pull/54769 +[#54773]: https://github.com/home-assistant/core/pull/54773 +[#54775]: https://github.com/home-assistant/core/pull/54775 +[#54776]: https://github.com/home-assistant/core/pull/54776 +[#54782]: https://github.com/home-assistant/core/pull/54782 +[#54783]: https://github.com/home-assistant/core/pull/54783 +[#54786]: https://github.com/home-assistant/core/pull/54786 +[#54787]: https://github.com/home-assistant/core/pull/54787 +[#54789]: https://github.com/home-assistant/core/pull/54789 +[#54791]: https://github.com/home-assistant/core/pull/54791 +[#54792]: https://github.com/home-assistant/core/pull/54792 +[#54794]: https://github.com/home-assistant/core/pull/54794 +[#54795]: https://github.com/home-assistant/core/pull/54795 +[#54797]: https://github.com/home-assistant/core/pull/54797 +[#54798]: https://github.com/home-assistant/core/pull/54798 +[#54799]: https://github.com/home-assistant/core/pull/54799 +[#54800]: https://github.com/home-assistant/core/pull/54800 +[#54801]: https://github.com/home-assistant/core/pull/54801 +[#54802]: https://github.com/home-assistant/core/pull/54802 +[#54803]: https://github.com/home-assistant/core/pull/54803 +[#54804]: https://github.com/home-assistant/core/pull/54804 +[#54806]: https://github.com/home-assistant/core/pull/54806 +[#54807]: https://github.com/home-assistant/core/pull/54807 +[#54808]: https://github.com/home-assistant/core/pull/54808 +[#54809]: https://github.com/home-assistant/core/pull/54809 +[#54810]: https://github.com/home-assistant/core/pull/54810 +[#54813]: https://github.com/home-assistant/core/pull/54813 +[#54814]: https://github.com/home-assistant/core/pull/54814 +[#54815]: https://github.com/home-assistant/core/pull/54815 +[#54817]: https://github.com/home-assistant/core/pull/54817 +[#54818]: https://github.com/home-assistant/core/pull/54818 +[#54821]: https://github.com/home-assistant/core/pull/54821 +[#54822]: https://github.com/home-assistant/core/pull/54822 +[#54824]: https://github.com/home-assistant/core/pull/54824 +[#54825]: https://github.com/home-assistant/core/pull/54825 +[#54827]: https://github.com/home-assistant/core/pull/54827 +[#54828]: https://github.com/home-assistant/core/pull/54828 +[#54830]: https://github.com/home-assistant/core/pull/54830 +[#54831]: https://github.com/home-assistant/core/pull/54831 +[#54832]: https://github.com/home-assistant/core/pull/54832 +[#54834]: https://github.com/home-assistant/core/pull/54834 +[#54835]: https://github.com/home-assistant/core/pull/54835 +[#54836]: https://github.com/home-assistant/core/pull/54836 +[#54837]: https://github.com/home-assistant/core/pull/54837 +[#54838]: https://github.com/home-assistant/core/pull/54838 +[#54840]: https://github.com/home-assistant/core/pull/54840 +[#54841]: https://github.com/home-assistant/core/pull/54841 +[#54842]: https://github.com/home-assistant/core/pull/54842 +[#54844]: https://github.com/home-assistant/core/pull/54844 +[#54846]: https://github.com/home-assistant/core/pull/54846 +[#54847]: https://github.com/home-assistant/core/pull/54847 +[#54849]: https://github.com/home-assistant/core/pull/54849 +[#54850]: https://github.com/home-assistant/core/pull/54850 +[#54851]: https://github.com/home-assistant/core/pull/54851 +[#54852]: https://github.com/home-assistant/core/pull/54852 +[#54854]: https://github.com/home-assistant/core/pull/54854 +[#54855]: https://github.com/home-assistant/core/pull/54855 +[#54856]: https://github.com/home-assistant/core/pull/54856 +[#54858]: https://github.com/home-assistant/core/pull/54858 +[#54861]: https://github.com/home-assistant/core/pull/54861 +[#54862]: https://github.com/home-assistant/core/pull/54862 +[#54864]: https://github.com/home-assistant/core/pull/54864 +[#54865]: https://github.com/home-assistant/core/pull/54865 +[#54866]: https://github.com/home-assistant/core/pull/54866 +[#54867]: https://github.com/home-assistant/core/pull/54867 +[#54870]: https://github.com/home-assistant/core/pull/54870 +[#54871]: https://github.com/home-assistant/core/pull/54871 +[#54877]: https://github.com/home-assistant/core/pull/54877 +[#54880]: https://github.com/home-assistant/core/pull/54880 +[#54882]: https://github.com/home-assistant/core/pull/54882 +[#54883]: https://github.com/home-assistant/core/pull/54883 +[#54887]: https://github.com/home-assistant/core/pull/54887 +[#54891]: https://github.com/home-assistant/core/pull/54891 +[#54893]: https://github.com/home-assistant/core/pull/54893 +[#54896]: https://github.com/home-assistant/core/pull/54896 +[#54897]: https://github.com/home-assistant/core/pull/54897 +[#54903]: https://github.com/home-assistant/core/pull/54903 +[#54904]: https://github.com/home-assistant/core/pull/54904 +[#54905]: https://github.com/home-assistant/core/pull/54905 +[#54906]: https://github.com/home-assistant/core/pull/54906 +[#54907]: https://github.com/home-assistant/core/pull/54907 +[#54911]: https://github.com/home-assistant/core/pull/54911 +[#54913]: https://github.com/home-assistant/core/pull/54913 +[#54914]: https://github.com/home-assistant/core/pull/54914 +[#54915]: https://github.com/home-assistant/core/pull/54915 +[#54916]: https://github.com/home-assistant/core/pull/54916 +[#54918]: https://github.com/home-assistant/core/pull/54918 +[#54919]: https://github.com/home-assistant/core/pull/54919 +[#54920]: https://github.com/home-assistant/core/pull/54920 +[#54921]: https://github.com/home-assistant/core/pull/54921 +[#54922]: https://github.com/home-assistant/core/pull/54922 +[#54923]: https://github.com/home-assistant/core/pull/54923 +[#54924]: https://github.com/home-assistant/core/pull/54924 +[#54925]: https://github.com/home-assistant/core/pull/54925 +[#54926]: https://github.com/home-assistant/core/pull/54926 +[#54927]: https://github.com/home-assistant/core/pull/54927 +[#54928]: https://github.com/home-assistant/core/pull/54928 +[#54929]: https://github.com/home-assistant/core/pull/54929 +[#54930]: https://github.com/home-assistant/core/pull/54930 +[#54931]: https://github.com/home-assistant/core/pull/54931 +[#54933]: https://github.com/home-assistant/core/pull/54933 +[#54935]: https://github.com/home-assistant/core/pull/54935 +[#54936]: https://github.com/home-assistant/core/pull/54936 +[#54938]: https://github.com/home-assistant/core/pull/54938 +[#54940]: https://github.com/home-assistant/core/pull/54940 +[#54941]: https://github.com/home-assistant/core/pull/54941 +[#54942]: https://github.com/home-assistant/core/pull/54942 +[#54943]: https://github.com/home-assistant/core/pull/54943 +[#54944]: https://github.com/home-assistant/core/pull/54944 +[#54945]: https://github.com/home-assistant/core/pull/54945 +[#54950]: https://github.com/home-assistant/core/pull/54950 +[#54952]: https://github.com/home-assistant/core/pull/54952 +[#54953]: https://github.com/home-assistant/core/pull/54953 +[#54955]: https://github.com/home-assistant/core/pull/54955 +[#54956]: https://github.com/home-assistant/core/pull/54956 +[#54958]: https://github.com/home-assistant/core/pull/54958 +[#54962]: https://github.com/home-assistant/core/pull/54962 +[#54963]: https://github.com/home-assistant/core/pull/54963 +[#54967]: https://github.com/home-assistant/core/pull/54967 +[#54968]: https://github.com/home-assistant/core/pull/54968 +[#54970]: https://github.com/home-assistant/core/pull/54970 +[#54971]: https://github.com/home-assistant/core/pull/54971 +[#54974]: https://github.com/home-assistant/core/pull/54974 +[#54976]: https://github.com/home-assistant/core/pull/54976 +[#54977]: https://github.com/home-assistant/core/pull/54977 +[#54979]: https://github.com/home-assistant/core/pull/54979 +[#54980]: https://github.com/home-assistant/core/pull/54980 +[#54982]: https://github.com/home-assistant/core/pull/54982 +[#54986]: https://github.com/home-assistant/core/pull/54986 +[#54987]: https://github.com/home-assistant/core/pull/54987 +[#54988]: https://github.com/home-assistant/core/pull/54988 +[#54992]: https://github.com/home-assistant/core/pull/54992 +[#54993]: https://github.com/home-assistant/core/pull/54993 +[#54994]: https://github.com/home-assistant/core/pull/54994 +[#54995]: https://github.com/home-assistant/core/pull/54995 +[#54996]: https://github.com/home-assistant/core/pull/54996 +[#54997]: https://github.com/home-assistant/core/pull/54997 +[#54998]: https://github.com/home-assistant/core/pull/54998 +[#54999]: https://github.com/home-assistant/core/pull/54999 +[#55000]: https://github.com/home-assistant/core/pull/55000 +[#55001]: https://github.com/home-assistant/core/pull/55001 +[#55002]: https://github.com/home-assistant/core/pull/55002 +[#55003]: https://github.com/home-assistant/core/pull/55003 +[#55005]: https://github.com/home-assistant/core/pull/55005 +[#55006]: https://github.com/home-assistant/core/pull/55006 +[#55015]: https://github.com/home-assistant/core/pull/55015 +[#55018]: https://github.com/home-assistant/core/pull/55018 +[#55019]: https://github.com/home-assistant/core/pull/55019 +[#55020]: https://github.com/home-assistant/core/pull/55020 +[#55021]: https://github.com/home-assistant/core/pull/55021 +[#55022]: https://github.com/home-assistant/core/pull/55022 +[#55023]: https://github.com/home-assistant/core/pull/55023 +[#55027]: https://github.com/home-assistant/core/pull/55027 +[#55032]: https://github.com/home-assistant/core/pull/55032 +[#55033]: https://github.com/home-assistant/core/pull/55033 +[#55034]: https://github.com/home-assistant/core/pull/55034 +[#55036]: https://github.com/home-assistant/core/pull/55036 +[#55037]: https://github.com/home-assistant/core/pull/55037 +[#55038]: https://github.com/home-assistant/core/pull/55038 +[#55039]: https://github.com/home-assistant/core/pull/55039 +[#55040]: https://github.com/home-assistant/core/pull/55040 +[#55045]: https://github.com/home-assistant/core/pull/55045 +[#55047]: https://github.com/home-assistant/core/pull/55047 +[#55049]: https://github.com/home-assistant/core/pull/55049 +[#55050]: https://github.com/home-assistant/core/pull/55050 +[#55051]: https://github.com/home-assistant/core/pull/55051 +[#55053]: https://github.com/home-assistant/core/pull/55053 +[#55054]: https://github.com/home-assistant/core/pull/55054 +[#55055]: https://github.com/home-assistant/core/pull/55055 +[#55056]: https://github.com/home-assistant/core/pull/55056 +[#55057]: https://github.com/home-assistant/core/pull/55057 +[#55058]: https://github.com/home-assistant/core/pull/55058 +[#55059]: https://github.com/home-assistant/core/pull/55059 +[#55063]: https://github.com/home-assistant/core/pull/55063 +[#55064]: https://github.com/home-assistant/core/pull/55064 +[#55065]: https://github.com/home-assistant/core/pull/55065 +[#55066]: https://github.com/home-assistant/core/pull/55066 +[#55067]: https://github.com/home-assistant/core/pull/55067 +[#55068]: https://github.com/home-assistant/core/pull/55068 +[#55069]: https://github.com/home-assistant/core/pull/55069 +[#55070]: https://github.com/home-assistant/core/pull/55070 +[#55071]: https://github.com/home-assistant/core/pull/55071 +[#55075]: https://github.com/home-assistant/core/pull/55075 +[#55077]: https://github.com/home-assistant/core/pull/55077 +[#55079]: https://github.com/home-assistant/core/pull/55079 +[#55082]: https://github.com/home-assistant/core/pull/55082 +[#55084]: https://github.com/home-assistant/core/pull/55084 +[#55085]: https://github.com/home-assistant/core/pull/55085 +[#55086]: https://github.com/home-assistant/core/pull/55086 +[#55087]: https://github.com/home-assistant/core/pull/55087 +[#55088]: https://github.com/home-assistant/core/pull/55088 +[#55089]: https://github.com/home-assistant/core/pull/55089 +[#55091]: https://github.com/home-assistant/core/pull/55091 +[#55092]: https://github.com/home-assistant/core/pull/55092 +[#55093]: https://github.com/home-assistant/core/pull/55093 +[#55094]: https://github.com/home-assistant/core/pull/55094 +[#55096]: https://github.com/home-assistant/core/pull/55096 +[#55099]: https://github.com/home-assistant/core/pull/55099 +[#55102]: https://github.com/home-assistant/core/pull/55102 +[#55106]: https://github.com/home-assistant/core/pull/55106 +[#55108]: https://github.com/home-assistant/core/pull/55108 +[#55109]: https://github.com/home-assistant/core/pull/55109 +[#55110]: https://github.com/home-assistant/core/pull/55110 +[#55111]: https://github.com/home-assistant/core/pull/55111 +[#55114]: https://github.com/home-assistant/core/pull/55114 +[#55115]: https://github.com/home-assistant/core/pull/55115 +[#55118]: https://github.com/home-assistant/core/pull/55118 +[#55119]: https://github.com/home-assistant/core/pull/55119 +[#55120]: https://github.com/home-assistant/core/pull/55120 +[#55121]: https://github.com/home-assistant/core/pull/55121 +[#55124]: https://github.com/home-assistant/core/pull/55124 +[#55125]: https://github.com/home-assistant/core/pull/55125 +[#55126]: https://github.com/home-assistant/core/pull/55126 +[#55127]: https://github.com/home-assistant/core/pull/55127 +[#55128]: https://github.com/home-assistant/core/pull/55128 +[#55129]: https://github.com/home-assistant/core/pull/55129 +[#55131]: https://github.com/home-assistant/core/pull/55131 +[#55134]: https://github.com/home-assistant/core/pull/55134 +[#55136]: https://github.com/home-assistant/core/pull/55136 +[#55137]: https://github.com/home-assistant/core/pull/55137 +[#55139]: https://github.com/home-assistant/core/pull/55139 +[#55140]: https://github.com/home-assistant/core/pull/55140 +[#55141]: https://github.com/home-assistant/core/pull/55141 +[#55143]: https://github.com/home-assistant/core/pull/55143 +[#55145]: https://github.com/home-assistant/core/pull/55145 +[#55147]: https://github.com/home-assistant/core/pull/55147 +[#55148]: https://github.com/home-assistant/core/pull/55148 +[#55149]: https://github.com/home-assistant/core/pull/55149 +[#55153]: https://github.com/home-assistant/core/pull/55153 +[#55154]: https://github.com/home-assistant/core/pull/55154 +[#55157]: https://github.com/home-assistant/core/pull/55157 +[#55158]: https://github.com/home-assistant/core/pull/55158 +[#55159]: https://github.com/home-assistant/core/pull/55159 +[#55161]: https://github.com/home-assistant/core/pull/55161 +[#55162]: https://github.com/home-assistant/core/pull/55162 +[#55163]: https://github.com/home-assistant/core/pull/55163 +[#55164]: https://github.com/home-assistant/core/pull/55164 +[#55165]: https://github.com/home-assistant/core/pull/55165 +[#55166]: https://github.com/home-assistant/core/pull/55166 +[#55169]: https://github.com/home-assistant/core/pull/55169 +[#55175]: https://github.com/home-assistant/core/pull/55175 +[#55177]: https://github.com/home-assistant/core/pull/55177 +[#55180]: https://github.com/home-assistant/core/pull/55180 +[#55181]: https://github.com/home-assistant/core/pull/55181 +[#55183]: https://github.com/home-assistant/core/pull/55183 +[#55184]: https://github.com/home-assistant/core/pull/55184 +[#55185]: https://github.com/home-assistant/core/pull/55185 +[#55186]: https://github.com/home-assistant/core/pull/55186 +[#55187]: https://github.com/home-assistant/core/pull/55187 +[#55188]: https://github.com/home-assistant/core/pull/55188 +[#55189]: https://github.com/home-assistant/core/pull/55189 +[#55193]: https://github.com/home-assistant/core/pull/55193 +[#55194]: https://github.com/home-assistant/core/pull/55194 +[#55195]: https://github.com/home-assistant/core/pull/55195 +[#55196]: https://github.com/home-assistant/core/pull/55196 +[#55197]: https://github.com/home-assistant/core/pull/55197 +[#55199]: https://github.com/home-assistant/core/pull/55199 +[#55201]: https://github.com/home-assistant/core/pull/55201 +[#55202]: https://github.com/home-assistant/core/pull/55202 +[#55203]: https://github.com/home-assistant/core/pull/55203 +[#55204]: https://github.com/home-assistant/core/pull/55204 +[#55205]: https://github.com/home-assistant/core/pull/55205 +[#55208]: https://github.com/home-assistant/core/pull/55208 +[#55209]: https://github.com/home-assistant/core/pull/55209 +[#55210]: https://github.com/home-assistant/core/pull/55210 +[#55211]: https://github.com/home-assistant/core/pull/55211 +[#55213]: https://github.com/home-assistant/core/pull/55213 +[#55214]: https://github.com/home-assistant/core/pull/55214 +[#55215]: https://github.com/home-assistant/core/pull/55215 +[#55217]: https://github.com/home-assistant/core/pull/55217 +[#55219]: https://github.com/home-assistant/core/pull/55219 +[#55221]: https://github.com/home-assistant/core/pull/55221 +[@AaronDavidSchneider]: https://github.com/AaronDavidSchneider +[@Adminiuga]: https://github.com/Adminiuga +[@Bert-R]: https://github.com/Bert-R +[@Bre77]: https://github.com/Bre77 +[@DCSBL]: https://github.com/DCSBL +[@Danielhiversen]: https://github.com/Danielhiversen +[@Ernst79]: https://github.com/Ernst79 +[@GrumpyMeow]: https://github.com/GrumpyMeow +[@GuyKh]: https://github.com/GuyKh +[@Hyralex]: https://github.com/Hyralex +[@JasperPlant]: https://github.com/JasperPlant +[@JasperS2307]: https://github.com/JasperS2307 +[@Jc2k]: https://github.com/Jc2k +[@JeffLIrion]: https://github.com/JeffLIrion +[@JonasPed]: https://github.com/JonasPed +[@Kane610]: https://github.com/Kane610 +[@LonePurpleWolf]: https://github.com/LonePurpleWolf +[@MartinHjelmare]: https://github.com/MartinHjelmare +[@OttoWinter]: https://github.com/OttoWinter +[@Schmidsfeld]: https://github.com/Schmidsfeld +[@Shutgun]: https://github.com/Shutgun +[@SmaginPV]: https://github.com/SmaginPV +[@StevenLooman]: https://github.com/StevenLooman +[@TastyPi]: https://github.com/TastyPi +[@TheJulianJES]: https://github.com/TheJulianJES +[@Tigger2014]: https://github.com/Tigger2014 +[@TomBrien]: https://github.com/TomBrien +[@ViViDboarder]: https://github.com/ViViDboarder +[@adamjernst]: https://github.com/adamjernst +[@allenporter]: https://github.com/allenporter +[@andre-richter]: https://github.com/andre-richter +[@bachya]: https://github.com/bachya +[@balloob]: https://github.com/balloob +[@bdraco]: https://github.com/bdraco +[@bieniu]: https://github.com/bieniu +[@bnordli]: https://github.com/bnordli +[@bogdal]: https://github.com/bogdal +[@bramkragten]: https://github.com/bramkragten +[@brianegge]: https://github.com/brianegge +[@bsmappee]: https://github.com/bsmappee +[@carstenschroeder]: https://github.com/carstenschroeder +[@cdce8p]: https://github.com/cdce8p +[@cdheiser]: https://github.com/cdheiser +[@cgtobi]: https://github.com/cgtobi +[@chemelli74]: https://github.com/chemelli74 +[@cnico]: https://github.com/cnico +[@cpw]: https://github.com/cpw +[@crkochan]: https://github.com/crkochan +[@ctalkington]: https://github.com/ctalkington +[@danielperna84]: https://github.com/danielperna84 +[@deiger]: https://github.com/deiger +[@denismilanovic]: https://github.com/denismilanovic +[@dermotduffy]: https://github.com/dermotduffy +[@dgomes]: https://github.com/dgomes +[@ehendrix23]: https://github.com/ehendrix23 +[@elupus]: https://github.com/elupus +[@emontnemery]: https://github.com/emontnemery +[@epenet]: https://github.com/epenet +[@esev]: https://github.com/esev +[@farmio]: https://github.com/farmio +[@firstof9]: https://github.com/firstof9 +[@flacjacket]: https://github.com/flacjacket +[@frenck]: https://github.com/frenck +[@gianklug]: https://github.com/gianklug +[@giannello]: https://github.com/giannello +[@gjong]: https://github.com/gjong +[@janiversen]: https://github.com/janiversen +[@janjurca]: https://github.com/janjurca +[@jbouwh]: https://github.com/jbouwh +[@jesserockz]: https://github.com/jesserockz +[@jjlawren]: https://github.com/jjlawren +[@jorgror]: https://github.com/jorgror +[@jshank]: https://github.com/jshank +[@klaasnicolaas]: https://github.com/klaasnicolaas +[@ludeeus]: https://github.com/ludeeus +[@lukewaite]: https://github.com/lukewaite +[@maschel]: https://github.com/maschel +[@mdz]: https://github.com/mdz +[@meyerrj]: https://github.com/meyerrj +[@mib1185]: https://github.com/mib1185 +[@micha91]: https://github.com/micha91 +[@milanmeu]: https://github.com/milanmeu +[@mplemay]: https://github.com/mplemay +[@muchtall]: https://github.com/muchtall +[@nickovs]: https://github.com/nickovs +[@nickstamat]: https://github.com/nickstamat +[@nielstron]: https://github.com/nielstron +[@ollo69]: https://github.com/ollo69 +[@oxan]: https://github.com/oxan +[@pdcemulator]: https://github.com/pdcemulator +[@posixx]: https://github.com/posixx +[@ppetru]: https://github.com/ppetru +[@pszafer]: https://github.com/pszafer +[@pvizeli]: https://github.com/pvizeli +[@r-t-s]: https://github.com/r-t-s +[@rajlaud]: https://github.com/rajlaud +[@raman325]: https://github.com/raman325 +[@rdfurman]: https://github.com/rdfurman +[@rjulius23]: https://github.com/rjulius23 +[@rutkai]: https://github.com/rutkai +[@rytilahti]: https://github.com/rytilahti +[@samueltardieu]: https://github.com/samueltardieu +[@scop]: https://github.com/scop +[@serenewaffles]: https://github.com/serenewaffles +[@slovdahl]: https://github.com/slovdahl +[@squishykid]: https://github.com/squishykid +[@starkillerOG]: https://github.com/starkillerOG +[@thomasloven]: https://github.com/thomasloven +[@timmo001]: https://github.com/timmo001 +[@tkdrob]: https://github.com/tkdrob +[@yuvalabou]: https://github.com/yuvalabou +[@zhulik]: https://github.com/zhulik +[@zoeisnowooze]: https://github.com/zoeisnowooze +[abode docs]: /integrations/abode/ +[actiontec docs]: /integrations/actiontec/ +[adax docs]: /integrations/adax/ +[adguard docs]: /integrations/adguard/ +[advantage_air docs]: /integrations/advantage_air/ +[aemet docs]: /integrations/aemet/ +[airly docs]: /integrations/airly/ +[airtouch4 docs]: /integrations/airtouch4/ +[airvisual docs]: /integrations/airvisual/ +[alarm_control_panel docs]: /integrations/alarm_control_panel/ +[alexa docs]: /integrations/alexa/ +[almond docs]: /integrations/almond/ +[ambient_station docs]: /integrations/ambient_station/ +[amcrest docs]: /integrations/amcrest/ +[analytics docs]: /integrations/analytics/ +[anthemav docs]: /integrations/anthemav/ +[api docs]: /integrations/api/ +[apprise docs]: /integrations/apprise/ +[arlo docs]: /integrations/arlo/ +[asuswrt docs]: /integrations/asuswrt/ +[atag docs]: /integrations/atag/ +[atome docs]: /integrations/atome/ +[august docs]: /integrations/august/ +[azure_event_hub docs]: /integrations/azure_event_hub/ +[bbox docs]: /integrations/bbox/ +[binary_sensor docs]: /integrations/binary_sensor/ +[bitcoin docs]: /integrations/bitcoin/ +[blink docs]: /integrations/blink/ +[bme280 docs]: /integrations/bme280/ +[bme680 docs]: /integrations/bme680/ +[bond docs]: /integrations/bond/ +[broadlink docs]: /integrations/broadlink/ +[buienradar docs]: /integrations/buienradar/ +[camera docs]: /integrations/camera/ +[cloudflare docs]: /integrations/cloudflare/ +[coinbase docs]: /integrations/coinbase/ +[comed_hourly_pricing docs]: /integrations/comed_hourly_pricing/ +[config docs]: /integrations/config/ +[danfoss_air docs]: /integrations/danfoss_air/ +[debugpy docs]: /integrations/debugpy/ +[deconz docs]: /integrations/deconz/ +[default_config docs]: /integrations/default_config/ +[deluge docs]: /integrations/deluge/ +[demo docs]: /integrations/demo/ +[device_automation docs]: /integrations/device_automation/ +[devolo_home_control docs]: /integrations/devolo_home_control/ +[dht docs]: /integrations/dht/ +[directv docs]: /integrations/directv/ +[dlna_dmr docs]: /integrations/dlna_dmr/ +[dovado docs]: /integrations/dovado/ +[dsmr docs]: /integrations/dsmr/ +[dsmr_reader docs]: /integrations/dsmr_reader/ +[ecobee docs]: /integrations/ecobee/ +[edl21 docs]: /integrations/edl21/ +[emoncms docs]: /integrations/emoncms/ +[emonitor docs]: /integrations/emonitor/ +[emulated_kasa docs]: /integrations/emulated_kasa/ +[energy docs]: /integrations/energy/ +[enocean docs]: /integrations/enocean/ +[enphase_envoy docs]: /integrations/enphase_envoy/ +[envirophat docs]: /integrations/envirophat/ +[epson docs]: /integrations/epson/ +[esphome docs]: /integrations/esphome/ +[fido docs]: /integrations/fido/ +[filter docs]: /integrations/filter/ +[fints docs]: /integrations/fints/ +[fjaraskupan docs]: /integrations/fjaraskupan/ +[flexit docs]: /integrations/flexit/ +[flipr docs]: /integrations/flipr/ +[flunearyou docs]: /integrations/flunearyou/ +[folder_watcher docs]: /integrations/folder_watcher/ +[foobot docs]: /integrations/foobot/ +[forecast_solar docs]: /integrations/forecast_solar/ +[fritz docs]: /integrations/fritz/ +[fritzbox docs]: /integrations/fritzbox/ +[fronius docs]: /integrations/fronius/ +[frontend docs]: /integrations/frontend/ +[gc100 docs]: /integrations/gc100/ +[gios docs]: /integrations/gios/ +[github docs]: /integrations/github/ +[goalzero docs]: /integrations/goalzero/ +[google docs]: /integrations/google/ +[google_assistant docs]: /integrations/google_assistant/ +[google_maps docs]: /integrations/google_maps/ +[google_pubsub docs]: /integrations/google_pubsub/ +[google_wifi docs]: /integrations/google_wifi/ +[group docs]: /integrations/group/ +[growatt_server docs]: /integrations/growatt_server/ +[gtfs docs]: /integrations/gtfs/ +[guardian docs]: /integrations/guardian/ +[hassio docs]: /integrations/hassio/ +[hdmi_cec docs]: /integrations/hdmi_cec/ +[history docs]: /integrations/history/ +[homeassistant docs]: /integrations/homeassistant/ +[homekit docs]: /integrations/homekit/ +[homekit_controller docs]: /integrations/homekit_controller/ +[homematic docs]: /integrations/homematic/ +[homematicip_cloud docs]: /integrations/homematicip_cloud/ +[honeywell docs]: /integrations/honeywell/ +[http docs]: /integrations/http/ +[htu21d docs]: /integrations/htu21d/ +[huawei_lte docs]: /integrations/huawei_lte/ +[hue docs]: /integrations/hue/ +[image_processing docs]: /integrations/image_processing/ +[integration docs]: /integrations/integration/ +[ios docs]: /integrations/ios/ +[ipp docs]: /integrations/ipp/ +[iqvia docs]: /integrations/iqvia/ +[jewish_calendar docs]: /integrations/jewish_calendar/ +[juicenet docs]: /integrations/juicenet/ +[keba docs]: /integrations/keba/ +[knx docs]: /integrations/knx/ +[kostal_plenticore docs]: /integrations/kostal_plenticore/ +[launch_library docs]: /integrations/launch_library/ +[light docs]: /integrations/light/ +[logi_circle docs]: /integrations/logi_circle/ +[lutron docs]: /integrations/lutron/ +[lyric docs]: /integrations/lyric/ +[magicseaweed docs]: /integrations/magicseaweed/ +[manual_mqtt docs]: /integrations/manual_mqtt/ +[marytts docs]: /integrations/marytts/ +[matrix docs]: /integrations/matrix/ +[melcloud docs]: /integrations/melcloud/ +[mhz19 docs]: /integrations/mhz19/ +[miflora docs]: /integrations/miflora/ +[mill docs]: /integrations/mill/ +[mitemp_bt docs]: /integrations/mitemp_bt/ +[modbus docs]: /integrations/modbus/ +[motioneye docs]: /integrations/motioneye/ +[mqtt docs]: /integrations/mqtt/ +[myq docs]: /integrations/myq/ +[mysensors docs]: /integrations/mysensors/ +[nam docs]: /integrations/nam/ +[nanoleaf docs]: /integrations/nanoleaf/ +[neato docs]: /integrations/neato/ +[nest docs]: /integrations/nest/ +[netatmo docs]: /integrations/netatmo/ +[netio docs]: /integrations/netio/ +[network docs]: /integrations/network/ +[nextbus docs]: /integrations/nextbus/ +[nmap_tracker docs]: /integrations/nmap_tracker/ +[norway_air docs]: /integrations/norway_air/ +[notion docs]: /integrations/notion/ +[number docs]: /integrations/number/ +[nut docs]: /integrations/nut/ +[nzbget docs]: /integrations/nzbget/ +[ombi docs]: /integrations/ombi/ +[onewire docs]: /integrations/onewire/ +[openevse docs]: /integrations/openevse/ +[openuv docs]: /integrations/openuv/ +[ovo_energy docs]: /integrations/ovo_energy/ +[p1_monitor docs]: /integrations/p1_monitor/ +[panasonic_viera docs]: /integrations/panasonic_viera/ +[philips_js docs]: /integrations/philips_js/ +[pi_hole docs]: /integrations/pi_hole/ +[pilight docs]: /integrations/pilight/ +[plex docs]: /integrations/plex/ +[point docs]: /integrations/point/ +[powerwall docs]: /integrations/powerwall/ +[prometheus docs]: /integrations/prometheus/ +[prosegur docs]: /integrations/prosegur/ +[proxmoxve docs]: /integrations/proxmoxve/ +[pushbullet docs]: /integrations/pushbullet/ +[pvoutput docs]: /integrations/pvoutput/ +[python_script docs]: /integrations/python_script/ +[qbittorrent docs]: /integrations/qbittorrent/ +[rachio docs]: /integrations/rachio/ +[radarr docs]: /integrations/radarr/ +[rainforest_eagle docs]: /integrations/rainforest_eagle/ +[rainmachine docs]: /integrations/rainmachine/ +[recorder docs]: /integrations/recorder/ +[reddit docs]: /integrations/reddit/ +[renault docs]: /integrations/renault/ +[rfxtrx docs]: /integrations/rfxtrx/ +[ring docs]: /integrations/ring/ +[rituals_perfume_genie docs]: /integrations/rituals_perfume_genie/ +[roomba docs]: /integrations/roomba/ +[rtorrent docs]: /integrations/rtorrent/ +[sabnzbd docs]: /integrations/sabnzbd/ +[saj docs]: /integrations/saj/ +[script docs]: /integrations/script/ +[select docs]: /integrations/select/ +[sense docs]: /integrations/sense/ +[sensehat docs]: /integrations/sensehat/ +[sensor docs]: /integrations/sensor/ +[sesame docs]: /integrations/sesame/ +[shelly docs]: /integrations/shelly/ +[shopping_list docs]: /integrations/shopping_list/ +[sht31 docs]: /integrations/sht31/ +[simplisafe docs]: /integrations/simplisafe/ +[siren docs]: /integrations/siren/ +[sma docs]: /integrations/sma/ +[smappee docs]: /integrations/smappee/ +[smart_meter_texas docs]: /integrations/smart_meter_texas/ +[smartthings docs]: /integrations/smartthings/ +[smarty docs]: /integrations/smarty/ +[sms docs]: /integrations/sms/ +[solaredge docs]: /integrations/solaredge/ +[solaredge_local docs]: /integrations/solaredge_local/ +[solarlog docs]: /integrations/solarlog/ +[solax docs]: /integrations/solax/ +[sonos docs]: /integrations/sonos/ +[speedtestdotnet docs]: /integrations/speedtestdotnet/ +[spider docs]: /integrations/spider/ +[sql docs]: /integrations/sql/ +[squeezebox docs]: /integrations/squeezebox/ +[ssdp docs]: /integrations/ssdp/ +[starline docs]: /integrations/starline/ +[startca docs]: /integrations/startca/ +[stream docs]: /integrations/stream/ +[surepetcare docs]: /integrations/surepetcare/ +[switchbot docs]: /integrations/switchbot/ +[switcher_kis docs]: /integrations/switcher_kis/ +[syncthru docs]: /integrations/syncthru/ +[synology_dsm docs]: /integrations/synology_dsm/ +[synology_srm docs]: /integrations/synology_srm/ +[system_bridge docs]: /integrations/system_bridge/ +[tado docs]: /integrations/tado/ +[tasmota docs]: /integrations/tasmota/ +[tautulli docs]: /integrations/tautulli/ +[temper docs]: /integrations/temper/ +[template docs]: /integrations/template/ +[thinkingcleaner docs]: /integrations/thinkingcleaner/ +[tibber docs]: /integrations/tibber/ +[timer docs]: /integrations/timer/ +[todoist docs]: /integrations/todoist/ +[toon docs]: /integrations/toon/ +[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/ +[travisci docs]: /integrations/travisci/ +[tuya docs]: /integrations/tuya/ +[universal docs]: /integrations/universal/ +[upcloud docs]: /integrations/upcloud/ +[updater docs]: /integrations/updater/ +[upnp docs]: /integrations/upnp/ +[uptimerobot docs]: /integrations/uptimerobot/ +[usb docs]: /integrations/usb/ +[utility_meter docs]: /integrations/utility_meter/ +[vallox docs]: /integrations/vallox/ +[velbus docs]: /integrations/velbus/ +[version docs]: /integrations/version/ +[volkszaehler docs]: /integrations/volkszaehler/ +[volumio docs]: /integrations/volumio/ +[watson_tts docs]: /integrations/watson_tts/ +[webostv docs]: /integrations/webostv/ +[wemo docs]: /integrations/wemo/ +[wink docs]: /integrations/wink/ +[wirelesstag docs]: /integrations/wirelesstag/ +[withings docs]: /integrations/withings/ +[xiaomi_miio docs]: /integrations/xiaomi_miio/ +[yamaha docs]: /integrations/yamaha/ +[yamaha_musiccast docs]: /integrations/yamaha_musiccast/ +[yeelight docs]: /integrations/yeelight/ +[youless docs]: /integrations/youless/ +[zamg docs]: /integrations/zamg/ +[zeroconf docs]: /integrations/zeroconf/ +[zerproc docs]: /integrations/zerproc/ +[zha docs]: /integrations/zha/ +[zwave_js docs]: /integrations/zwave_js/