---
layout: post
title: "0.104: Sentry, Signal Messenger, IntesisHome, Sure Petcare, KEF"
description: "Starting this new year with a packed release! Improved entity loading on startup and multi-select entities in Lovelace, ability to ignore a discovered device."
date: 2020-01-15 00:00:00
date_formatted: "January 15, 2020"
author: Franck Nijhof
author_twitter: frenck
comments: true
categories: Release-Notes
og_image: /images/blog/2020-01-0.104/components.png
---

<a href='/integrations/#version/0.104'><img src='/images/blog/2020-01-0.104/components.png' style='border: 0;box-shadow: none;'></a>

The first release of the new decade! Happy New Year!

We are starting this new year with a packed release! So let us dive in!

- [Improved entity handling on startup](/blog/2020/01/15/release-104/#improved-entity-handling-on-startup)
- [Ignore discovered devices & services](/blog/2020/01/15/release-104/#ignore-discovered-devices--services)
- [Reload all the input things & bye generated groups](/blog/2020/01/15/release-104/#reload-all-the-input-things--bye-generated-groups)
- [Add a device to Lovelace](/blog/2020/01/15/release-104/#add-a-device-to-lovelace)
- [Multi-select entity management](/blog/2020/01/15/release-104/#multi-select-entity-management)
- [ZHA configuration panel improvements](/blog/2020/01/15/release-104/#zha-configuration-panel-improvements)
- [Removing your Lovelace configuration](/blog/2020/01/15/release-104/#removing-your-lovelace-configuration)
- [In other news](/blog/2020/01/15/release-104/#in-other-news)
- [New Integrations](/blog/2020/01/15/release-104/#new-integrations)
- [New Platforms](/blog/2020/01/15/release-104/#new-platforms)
- [Breaking Changes](/blog/2020/01/15/release-104/#breaking-changes)
- [Beta Fixes](/blog/2020/01/15/release-104/#beta-fixes)
- [All changes](/blog/2020/01/15/release-104/#all-changes)

## Improved entity handling on startup

We are now restoring all entities, stored in the registry,
on Home Assistant startup.

During the startup of Home Assistant, all your configured integrations are
loaded. Each of those integrations results in one or more devices
and entities. However, there was a catch!

The loading of some integrations could take a while, which caused some entities
not to be available immediately. Sometimes, this affected multiple things, like
missing devices in HomeKit/Google/Alexa or those big red boxes in our Lovelace
UI. We are sure, at some point, we've all experienced that.

As of this release, all these entities, if registered in our entity registry,
will be restored as "unavailable". That allows other parts of our system to use
them immediately, solving a lot of common issues during startup.

These restored entities can be differentiated from normal "unavailable" entities
by an additional state attribute added to those entities: "restored".

<p class='img'>
<img src='/images/blog/2020-01-0.104/remove-entity.png' alt='Screenshot of a removing an unavailable entity'></a>
Screenshot of a removing an unavailable entity.
</p>

As a result, entities will no longer "disappear", so restored and unavailable
entities are removable, as shown in the screenshot above. Please note that,
if an integration provides an unavailable entity, the providing integration
needs to be removed first, or else, those entities can not be deleted.

## Ignore discovered devices & services

Got that one device that gets discovered over and over again?

It is now possible to ignore a specific discovered device with a single click!

<p class='img'>
<img src='/images/blog/2020-01-0.104/ignore-discovery.png' alt='Screenshot of a discovered Hue bridge'></a>
Screenshot of a discovered Hue bridge.
</p>

It requires the integration to be updated to support this. For this release,
the Hue, Axis, deCONZ, WLED and HomeKit integrations are updated to support
this new feature.

## Reload all the input things & bye generated groups

All [`input_*` integrations](/integrations/#search/input) now have a `reload`
service to reload your YAML configuration for these integrations, without
the need to restart Home Assistant.

Furthermore, time to say bye-bye, to all generated entity groups
(`group.all_*`). Chances are, you have never heard of those because they were
hidden. However, if you rely on those groups for your automations, you
need to adjust those automations.
Check out the [breaking changes section](#breaking-changes) for more information.

## Add a device to Lovelace

We added a button to the device page to add all entities of a device to Lovelace
in a blip! Home Assistant suggests cards based on the type of entities the
device provides so that you can add them to a view of your choice instantly.

If you are using Lovelace in YAML mode, you still can use this new feature. The
generated YAML can be copied and pasted into your configuration file.

<p class='img'>
<img src='/images/blog/2020-01-0.104/add-device-lovelace.png' alt='Screenshot of a card suggestion for a light device'></a>
Screenshot of a card suggestion for a light device.
</p>

This same functionality is also added to the unused entities page of Lovelace.

## Multi-select entity management

Entity management has never been easier; It now allows for changing multiple
entities at once. Select multiple entities and remove, enable or disable them
with one click.

<p class='img'>
<img src='/images/blog/2020-01-0.104/entities-multi-select.png' alt='Screenshot of the entities configuration page with multi selection'></a>
Screenshot of the entities configuration page with multi selection.
</p>

## ZHA configuration panel improvements

[@dmulcahey][@dmulcahey] did a lot of work on the ZHA config panel this release.

The navigation for the ZHA configuration panel has been redesigned to provide
a better user experience on mobile and desktop.

As part of the redesign, full Zigbee group management has been added, allowing
you to create and manage Zigbee groups right from the UI.

<p class='img'>
<img src='/images/blog/2020-01-0.104/zha-config-panel.png' alt='Screenshot of the ZHA configuration panel'></a>
Screenshot of the ZHA configuration panel.
</p>

In a future releases, the ability to bind devices directly to groups,
will be added as well.

## Removing your Lovelace configuration

Want to start your Lovelace configuration from scratch? Or go back to the
automatically generated Lovelace interface?

Now you can by clearing the Lovelace configuration in the raw configuration
editor and saving it.

<p class='img'>
<img src='/images/blog/2020-01-0.104/remove-lovelace-config.png' alt='Screenshot of the remove Lovelace confirmation dialog'></a>
Screenshot of the remove Lovelace confirmation dialog.
</p>

## In other news

### Meanwhile, HassOS 3.8 got released!

<blockquote class="twitter-tweet"><p lang="en" dir="ltr">HassOS Release-3 build 8 (Stable) released today. Changelog: <a href="https://t.co/kXOXNPldJF">https://t.co/kXOXNPldJF</a> - Next we start the first 4.0 Beta builds include the N2 support and Linux LT 5.4</p>&mdash; Pascal Vizeli (@pvizeli) <a href="https://twitter.com/pvizeli/status/1216668319396368384?ref_src=twsrc%5Etfw">January 13, 2020</a>
</blockquote>

Besides the release of HassOS 3.8, the first beta version of HassOS 4.0 is
now available as well. This beta release adds support for
[Hardkernel's ODROID-N2](https://www.hardkernel.com/shop/odroid-n2-with-4gbyte-ram/)!

The [ODROID-N2](https://www.hardkernel.com/shop/odroid-n2-with-4gbyte-ram/)
is a great and powerful alternative for the Raspberry Pi.

### Custom now playing poster Lovelace card

Brad Crc made this [impressive demo](https://www.reddit.com/r/homeassistant/comments/e7wo0j/floor_plan_how_to_show_currently_playing_media/)
of setting up a custom now playing poster card in Lovelace floor plans.
This allows you to show currently playing media in your floor plan!

<div class='videoWrapper'>
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/1ZU4WMgwU6s" frameborder="0" allowfullscreen></iframe>
</div>

### Bas showing his Lovelace theme on his setup

Bas Nijholt kept seeing his own theme popping up on Reddit, so he decided it was
time for him to show off his Lovelace dashboard, featuring this lovely theme.

<blockquote class="reddit-card"><a href="https://www.reddit.com/r/homeassistant/comments/enpeik/i_keep_seeing_my_own_theme_on_reddit_so_now_its/">I keep seeing my own theme on Reddit, so now it's my turn! [OC]</a> from <a href="http://www.reddit.com/r/homeassistant">r/homeassistant</a></blockquote>
<script async src="//embed.redditmedia.com/widgets/platform.js" charset="UTF-8"></script>

His theme is [publicly available on GitHub](https://github.com/basnijholt/lovelace-ios-dark-mode-theme/) and so is [his config](https://github.com/basnijholt/home-assistant-config).

## New Integrations

- Add Elgato Key Light integration ([@frenck] - [#29592]) ([elgato docs]) (new-integration)
- Add IntesisHome Climate Platform ([@jnimmo] - [#25364]) ([intesishome docs]) (new-integration)
- Add Signal Messenger integration ([@bbernhard] - [#28537]) ([signalmessenger docs]) (new-integration)
- Revert Tahoma removal ([@balloob] - [#29840]) ([tahoma docs]) (new-integration)
- Add GIOS integration ([@bieniu] - [#28719]) ([gios docs]) (new-integration)
- Add local_ip component ([@issacg] - [#29973]) ([localip docs]) (new-integration)
- Add KEF speakers integration ([@basnijholt] - [#28959]) ([kef docs]) (new-integration)
- Add Sentry component ([@dcramer] - [#30422]) ([sentry docs]) (new-integration)
- Add surepetcare component ([@benleb] - [#24426]) ([surepetcare docs]) (new-integration)
- Add Brother Printer integration ([@bieniu] - [#30359]) ([brother docs]) (new-integration)
- Add TMB sensor ([@alemuro] - [#27964]) ([tmb docs]) (new-integration)
- Add Stookalert integration ([@fwestenberg] - [#30306]) ([stookalert docs]) (new-integration)

## New Platforms

- Add battery sensor to iCloud ([@Quentame] - [#29818]) ([icloud docs]) (new-platform)
- Add light support to Velbus integration ([@brefra] - [#30323]) ([velbus docs]) (new-platform)
- Add support for v1 and v2 HomeKit fans. ([@Jc2k] - [#30503]) ([homekit_controller docs]) (new-platform)
- Add support for homekit air quality sensors ([@Jc2k] - [#30510]) ([homekit_controller docs]) (new-platform)
- Add pilight dimmer as light component ([@Trekky12] - [#30107]) ([pilight docs]) (new-platform)

## 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/home-assistant/issues).
Make sure to fill in all fields of the issue template, that is helping us a lot!

<!--more-->

## Breaking Changes

- __Default groups__ - Entity integrations will no longer automatically maintain the hidden groups with all of their entities. The following groups are no longer automatically created and maintained:

  - `group.all_automations`
  - `group.all_covers`
  - `group.all_devices`
  - `group.all_fans`
  - `group.all_lights`
  - `group.all_locks`
  - `group.all_plants`
  - `group.all_remotes`
  - `group.all_scripts`
  - `group.all_switches`
  - `group.all_vacuum_cleaners`
  - `group.calendar`
  - `group.remember_the_milk_accounts`

  The automation and script configuration panels are updated to show and manage all automations/scripts. If you want to show cards in your Lovelace UI with all entities for a single domain, use the auto-entities card. If you want to target all entities in a service call, use `all` as value for `entity_id`.

  ([@balloob] - [#23789]) ([automation docs]) ([calendar docs]) ([cover docs]) ([device_tracker docs]) ([fan docs]) ([light docs]) ([lock docs]) ([plant  docs]) ([remember_the_milk docs]) ([remote docs]) ([script docs]) ([switch docs]) ([vacuum docs]).

- __Hue__ - Hue will no longer import existing authentication from disk. It has not written this authentication to disk since March 2018. The config option has been deprecated and will be removed in 0.106. ([@balloob] - [#30000]) ([hue docs])

- __deCONZ__ - Due to changes to configuration handling, deCONZ groups will be assigned new identifiers in Home Assistant. As a result, deCONZ groups will be duplicated. Remove any group devices from the registry prior to upgrading or alternatively delete the obsolete entries after the upgrade to eliminate the duplicates. ([#30875]) ([deconz docs])

- __UPnP__ - UPnP/IGD units of measurement have been aligned with other integrations and common uses, they're now kB and kB/s instead of kbyte and kbyte/sec respectively. - ([@scop] - [#29552]) ([upnp docs])

- __Worx Landroid__ - The `worxlandroid` sensor has been changed to not return the hardcoded state values `manual-stop`, `charging`, `charging-complete`, `going-home`, `mowing`, instead use the states given from the Landroid to Home Assistant.

  This includes the state `idle`, which means that something is broken with the mower. You can use this as a notification to check the physical state of the mower.

  You need to update any automations that depend on the state of the sensor.

  ([@geraldhansen] - [#27453]) ([worxlandroid docs])

- __Apple iCloud__ - The iCloud component is no longer part of the device tracker platform and is now an integration, which is configurable via the UI. The iCloud cookie folder moved from `[HA_dir]/icloud` to `[HA_dir]/.storage/icloud`.- ([@Quentame] - [#28968]) ([icloud docs])

- __Pi-hole__ - The default value for `host` is removed, and now must be specified manually. - ([@johnluetke] - [#27569]) ([pi_hole docs])

    Example configuration:

  ```yaml
  pi_hole:
    - host: pi.hole
      ssl: false
    - host: backup.pi.hole
  ```

- __HERE Travel Time__ - HERE has deprecated the usage of `app_code` and new users can only generate an `api_key`. If you are already using HERE Travel Time, you have to follow the [migration guide](https://developer.here.com/documentation/authentication/dev_guide/topics/api-key-credentials.html) to retrieve the, now required, `api_key`. - ([@eifinger] - [#29966]) ([here_travel_time docs])

    Example configuration:

  ```yaml
  sensor:
    - platform: here_travel_time
      api_key: "YOUR_API_KEY"
      origin_latitude: "51.222975"
      origin_longitude: "9.267577"
      destination_latitude: "51.257430"
      destination_longitude: "9.335892"
  ```

- __ZHA__ - The default divisor for `active_power` has changed. Now, multiplier and divisor both default to 1 if the device does not support these attributes or when getting those attributes from the device fails. - ([@Adminiuga] - [#30130]) ([zha docs])

- __Keba__ - The unique_ids of the entities have changed and are now more future proof. The default `name` and `entity_id` of the entities have also changed. You need to clear stale entries from the entity registry and update concerned automations and scripts. - ([@dannerph] - [#30125]) ([keba docs])

- __Tesla__ - Config flow has been added for Tesla. Device tracker entity names have changed due to this. They now follow the naming convention of the rest of the Tesla entities. The `id` device tracker entity attribute was also removed because it is a duplicate of `trackr_id`. - ([@alandtse] - [#28744]) ([tesla docs])
- __Huawei LTE__ - The Huawei LTE notify service name is now configurable. The default name for the Huawei LTE notify service has changed to `notify.huawei_lte` to avoid conflicts with other notify services. An option to provide a name for the service has also been added. - ([@scop] - [#30208]) ([huawei_lte docs])

   Example configuration:

   ```yaml
   huawei_lte:
     - url: ...
       password: ...
       notify:
         name: sms
   ```

- __Amcrest__ *(Removed)* - Amcrest sensors and switches that were deprecated in previous releases have now been removed. - ([@pnbruckner] - [#30308]) ([amcrest docs])

   Example configuration:

   ```yaml
   amcrest:
   - ...
     sensors:
       # This sensor type is no longer supported and must be removed.
       - motion_detector
     # All switch types are no longer supported and must be removed.
     switches:
       - motion_detection
       - motion_recording
   ```

- __MQTT__ - Added separate command and state topics for the MQTT lock. Two new properties are introduced with `state_locked` (default: LOCKED) and `state_unlocked` (default: UNLOCKED). If you are using the same topic as `state_topic` as for the `command_topic` you can reestablish the old behavior by setting `state_locked` to *LOCK* and `state_unlocked` to *UNLOCK*. Effectively, this change allows you to distinguish commands and states in two topics with different values. - ([@tuxbox] - [#29808]) ([mqtt docs])

   Example configuration:

   ```yaml
   lock:
     - platform: mqtt
       command_topic: "/dev/ha/lock/cmd"
       state_topic:   "/dev/ha/lock/state"
       value_template: "{{ value_json.state }}"
       state_locked: "locked"
       state_unlocked: "unlocked"
   ```

- __LG webOS Smart TV__ - The component setup now uses the `webostv` domain instead of `media_player`. The host configuration option is now required and the timeout and filename options have been removed. The state handling for webOStv has also been cleaned up. An entity will have `on` when the tv is on instead of `playing` or `paused` as was previously the case. You need to update automations that depend on the entity state. - ([@bendavid] - [#29296] [#30416]) ([webostv docs])

     Example configuration:

     ```yaml
     webostv:
         name: LG TV
         host: 192.168.1.53
         #other settings
         turn_on_action:
             service: wake_on_lan.send_magic_packet
             data:
               mac: "00:00:00:00:00:00"
         standby_connection: true
     ```

- __Axis__ - Axis integration will no longer accept manual configuration of devices, all configuration of the Axis integration will now be handled from the integrations panel. - ([@Kane610] - [#30365]) ([axis docs])

  TL;DR This will no longer work:

  ```yaml
  axis:
  ```

- __WLED__ - Improved WLED pure white support for RGBW LED strips. When using WLED with RGBW strips, setting the color in Home Assistant to white, will turn off the RGB LEDs of the strip and use the W channel only. - ([@frenck] - [#30477]) ([wled docs])

- __Timer__ - Fire restarted event on restarting an active timer. This can break automations that should trigger on every timer start event. - ([@mnigbur] - [#30475]) ([timer docs])

- __Vizio__ - Removed `suppress_warning` from configuration options for Vizio integration. The `pyvizio` package now suppresses insecure HTTPS request warnings in a way that doesn't affect global requests from other integrations or Home Assistant itself. There is no need to globally suppress insecure warnings now. - ([@raman325] - [#30536]) ([vizio docs])

  Example configuration:

  ```yaml
  media_player:
    - platform: vizio
      host: '<IP>:<PORT>'
      access_token: '<AUTH_TOKEN>'
      device_class: tv
  ```

- __RFXtrx__ - Bump pyRFXtrx to 0.25. This update switches the commands for `open` and `close` for RFXtrx covers of the "Rollertrol" type, as they were switched (clicking open resulted in closing of the cover and vice versa). Existing automations should be updated. - ([@Ernst79] - [#30566]) ([rfxtrx docs])

- __Ring__ - Ring is now configurable via a config entry. This means it will no longer store the username and password and you're able to configure accounts that use 2FA. It's no longer possible to set scan interval, monitored conditions or FFmpeg arguments. The defaults are used. - ([@balloob] - [#30564]) ([ring docs])

- __Binary Sensor (Locks)__ - Updated ON/OFF condition and triggers to match the documentation and UI. This change inverts the logic of automations relating to binary sensor with the `lock` device class, but only for automations triggering on the lock state (rather than triggering a lock/unlock action).

  If you already created automations, you will need to check those, as they probably need to be inverted. The text displayed in the trigger or condition dropdowns in Lovelace will now be correct.

  One possible scenario is if you have set an automation using the state of one lock to trigger an action on other lock(s). This change would cause the action to trigger on `locking` if it was previously triggering on `unlocking`. - ([@davet2001] - [#30663]) ([binary_sensor docs])

- __Google Assistant__ - The `api_key` for manual installs is now deprecated and will be removed in 0.105.  To correct this you will need to remove `api_key` from the `configuration.yaml` and switch to using `service_account` instead. - ([@elupus] - [#30402]) ([google_assistant docs])

## Beta Fixes

- Fix upnp raw sensor state formatting when None ([@pnbruckner] - [#30444]) ([upnp docs]) (beta fix)
- Implement capability attributes ([@balloob] - [#30545]) ([fan docs]) ([media_player docs]) ([vacuum docs]) ([water_heater docs]) (beta fix)
- Add Ring config flow ([@balloob] - [#30564]) ([ring docs]) (breaking change) (beta fix)
- Fix problem with restoring POE control ([@Kane610] - [#30597]) ([unifi docs]) (beta fix)
- Set body size for Proxy / streams to 16mb ([@pvizeli] - [#30608]) ([http docs]) (beta fix)
- Bump Adafruit_BBIO to 1.1.1 ([@springstan] - [#30630]) ([bbb_gpio docs]) (beta fix)
- Do not save last_seen if older than prev_seen ([@pnbruckner] - [#30647]) ([life360 docs]) (beta fix)
- Fix HomeKit with entity registry restoration where supported_features is a non-None falsey ([@Jc2k] - [#30657]) ([homekit docs]) (beta fix)
- Fix ZHA temperature sensor restoration ([@Adminiuga] - [#30661]) ([zha docs]) (beta fix)
- Update ON/OFF condition and triggers to match documentation and UI, issue #30462 ([@davet2001] - [#30663]) ([binary_sensor docs]) (breaking change) (beta fix)
- Upgrade Ring to new version ([@balloob] - [#30666]) ([ring docs]) (beta fix)
- Fix Error with HomematicIP Cloud Cover ([@SukramJ] - [#30667]) ([homematicip_cloud docs]) (beta fix)
- Ring OTP improvement ([@balloob] - [#30688]) ([ring docs]) (beta fix)
- Log error when integration is missing platform setup ([@balloob] - [#30690]) (beta fix)
- Fix update person validation ([@balloob] - [#30691]) ([person docs]) (beta fix)
- Fix discovery for oauth2 flow implementations ([@frenck] - [#30700]) (beta fix)
- Revert "Forget auth token when going offline so we can reconnect (#26630)" ([@pnbruckner] - [#30705]) ([amcrest docs]) (beta fix)
- Fix Ring wifi sensors ([@balloob] - [#30735]) ([ring docs]) (beta fix)
- update aiopylgtv to 0.2.5 ([@bendavid] - [#30702]) ([webostv docs]) (beta fix)
- update aiopylgtv to 0.2.6 ([@bendavid] - [#30739]) ([webostv docs]) (beta fix)
- Bump ZHA quirks to 0.0.31 ([@dmulcahey] - [#30740]) ([zha docs]) (beta fix)
- Update Ring to 0.6.0 ([@balloob] - [#30748]) ([ring docs]) (beta fix)
- Set default locale for cloud Alexa config ([@balloob] - [#30749]) ([alexa docs]) ([cloud docs]) (beta fix)
- Bump teslajsonpy to 0.2.3 ([@alandtse] - [#30750]) ([tesla docs]) (beta fix)
- Update pyhomematic to 0.1.63 ([@danielperna84] - [#30594]) ([homematic docs]) (beta fix)
- Refactor HomeMatic / Fix issue with 0.104/dev ([@pvizeli] - [#30752]) ([homematic docs]) (beta fix)
- bump aiokef to 0.2.5 which uses locks ([@basnijholt] - [#30753]) ([kef docs]) (beta fix)
- Fix HomeKit behavior with lights supporting color and temperature ([@frenck] - [#30756]) ([homekit docs]) (beta fix)
- Revert #29701 ([@pvizeli] - [#30766]) ([zwave docs]) (beta fix)
- Refactor Ring data handling ([@balloob] - [#30777]) ([ring docs]) (beta fix)
- Restore unit_of_measurement from entity registry ([@Jc2k] - [#30780]) (beta fix)

## Release 0.104.1 - January 16

- 0.104.0 ([@frenck] - [#30803])
- Update emulated_roku to 0.1.9 ([@jdeluyck] - [#30791]) ([emulated_roku docs])
- update to aiopylgtv 0.2.7 ([@bendavid] - [#30797]) ([webostv docs])
- Fix setup error of Mikrotik ([@springstan] - [#30810]) ([mikrotik docs])
- Handle no host info in ignored config entries ([@balloob] - [#30822]) ([hue docs])
- Fix mpd time issue ([@pvizeli] - [#30825]) ([mpd docs])
- Fix play_media in webostv ([@bendavid] - [#30828]) ([webostv docs])
- Fix iCloud when no family members (issue #30829) ([@Quentame] - [#30836]) ([icloud docs])
- Reinstate and deprecate filename option for hue config ([@balloob] - [#30846]) ([hue docs])
- Fixes issue about messages not being reset after sending it to microsoft teams. ([@peroyvind] - [#30849]) ([msteams docs])
- Fix sensor type creation with multiple Ambient weather stations ([@bachya] - [#30850]) ([ambient_station docs])

[#30791]: https://github.com/home-assistant/home-assistant/pull/30791
[#30797]: https://github.com/home-assistant/home-assistant/pull/30797
[#30803]: https://github.com/home-assistant/home-assistant/pull/30803
[#30810]: https://github.com/home-assistant/home-assistant/pull/30810
[#30822]: https://github.com/home-assistant/home-assistant/pull/30822
[#30825]: https://github.com/home-assistant/home-assistant/pull/30825
[#30828]: https://github.com/home-assistant/home-assistant/pull/30828
[#30836]: https://github.com/home-assistant/home-assistant/pull/30836
[#30846]: https://github.com/home-assistant/home-assistant/pull/30846
[#30849]: https://github.com/home-assistant/home-assistant/pull/30849
[#30850]: https://github.com/home-assistant/home-assistant/pull/30850
[@Quentame]: https://github.com/Quentame
[@bachya]: https://github.com/bachya
[@balloob]: https://github.com/balloob
[@bendavid]: https://github.com/bendavid
[@frenck]: https://github.com/frenck
[@jdeluyck]: https://github.com/jdeluyck
[@peroyvind]: https://github.com/peroyvind
[@pvizeli]: https://github.com/pvizeli
[@springstan]: https://github.com/springstan
[ambient_station docs]: /integrations/ambient_station/
[emulated_roku docs]: /integrations/emulated_roku/
[hue docs]: /integrations/hue/
[icloud docs]: /integrations/icloud/
[mikrotik docs]: /integrations/mikrotik/
[mpd docs]: /integrations/mpd/
[msteams docs]: /integrations/msteams/
[webostv docs]: /integrations/webostv/

## Release 0.104.2 - January 17

- 0.104.0 ([@frenck] - [#30803])
- add multistate back ([@dmulcahey] - [#30889]) ([zha docs])
- Fix missing switch groups of HomematicIP Cloud ([@SukramJ] - [#30903]) ([homematicip_cloud docs])
- Fix issue with group unique id when normalising bridge id ([@Kane610] - [#30904]) ([deconz docs])
- Fix Alexa semantics for covers with tilt support. ([@ochlocracy] - [#30911]) ([alexa docs])
- camera endpoint likes to timeout, catch it. ([@balloob] - [#30919]) ([ring docs])
- Fix service device refresh calling state update ([@Kane610] - [#30920]) ([deconz docs])
- Updated frontend to 20200108.2 ([@bramkragten] - [#30921]) ([frontend docs])
- Fix hue accepting filename ([@balloob] - [#30924]) ([hue docs])

[#30803]: https://github.com/home-assistant/home-assistant/pull/30803
[#30889]: https://github.com/home-assistant/home-assistant/pull/30889
[#30903]: https://github.com/home-assistant/home-assistant/pull/30903
[#30904]: https://github.com/home-assistant/home-assistant/pull/30904
[#30911]: https://github.com/home-assistant/home-assistant/pull/30911
[#30919]: https://github.com/home-assistant/home-assistant/pull/30919
[#30920]: https://github.com/home-assistant/home-assistant/pull/30920
[#30921]: https://github.com/home-assistant/home-assistant/pull/30921
[#30924]: https://github.com/home-assistant/home-assistant/pull/30924
[@Kane610]: https://github.com/Kane610
[@SukramJ]: https://github.com/SukramJ
[@balloob]: https://github.com/balloob
[@bramkragten]: https://github.com/bramkragten
[@dmulcahey]: https://github.com/dmulcahey
[@frenck]: https://github.com/frenck
[@ochlocracy]: https://github.com/ochlocracy
[alexa docs]: /integrations/alexa/
[deconz docs]: /integrations/deconz/
[frontend docs]: /integrations/frontend/
[homematicip_cloud docs]: /integrations/homematicip_cloud/
[hue docs]: /integrations/hue/
[ring docs]: /integrations/ring/
[zha docs]: /integrations/zha/

## Release 0.104.3 - January 21

- Catch all Ring timeout errors ([@balloob] - [#30960]) ([ring docs])
- Update emulated_roku to 0.2.0 ([@jdeluyck] - [#30974]) ([emulated_roku docs])
- Ring camera fix ([@steve-gombos] - [#30975]) ([ring docs])
- Fix capability_attributes when supported_features is None ([@JeffLIrion] - [#30993]) ([water_heater docs])
- Fix deCONZ update entry from Hassio discovery ([@frenck] - [#31015]) ([deconz docs])

[#30960]: https://github.com/home-assistant/home-assistant/pull/30960
[#30974]: https://github.com/home-assistant/home-assistant/pull/30974
[#30975]: https://github.com/home-assistant/home-assistant/pull/30975
[#30993]: https://github.com/home-assistant/home-assistant/pull/30993
[#31015]: https://github.com/home-assistant/home-assistant/pull/31015
[@JeffLIrion]: https://github.com/JeffLIrion
[@balloob]: https://github.com/balloob
[@frenck]: https://github.com/frenck
[@jdeluyck]: https://github.com/jdeluyck
[@steve-gombos]: https://github.com/steve-gombos
[deconz docs]: /integrations/deconz/
[emulated_roku docs]: /integrations/emulated_roku/
[ring docs]: /integrations/ring/
[water_heater docs]: /integrations/water_heater/

## All changes

- Move imports to top for decora_wifi ([@springstan] - [#29439]) ([decora_wifi docs])
- Make hassfest stricter ([@balloob] - [#29494])
- Move imports to top for ambient_station ([@springstan] - [#29497]) ([ambient_station docs])
- Move imports to top for google_pubsub ([@springstan] - [#29498]) ([google_pubsub docs])
- Move imports to top for hue ([@springstan] - [#29501]) ([hue docs])
- Move imports to top for google_translate ([@springstan] - [#29499]) ([google_translate docs])
- Move imports to top for http ([@springstan] - [#29500]) ([http docs])
- Move imports to top for system_log ([@springstan] - [#29465]) ([system_log docs])
- Move imports to top for group ([@springstan] - [#29485]) ([group docs])
- Move imports to top for frontend ([@springstan] - [#29487]) ([frontend docs])
- Move imports to top for ipma ([@springstan] - [#29507]) ([ipma docs])
- Move imports to top for mediaroom ([@springstan] - [#29509]) ([mediaroom docs])
- Move imports to top for islamic_prayer_times ([@springstan] - [#29506]) ([islamic_prayer_times docs])
- Move imports to top for mobile_app ([@springstan] - [#29511]) ([mobile_app docs])
- Move imports to top for meteoalarm ([@springstan] - [#29510]) ([meteoalarm docs])
- Move imports to top for statistics ([@springstan] - [#29223]) ([statistics docs])
- Move imports to top for monoprice ([@springstan] - [#29516]) ([monoprice docs])
- Move imports to top for mysensors ([@springstan] - [#29517]) ([mysensors docs])
- Move imports to top for ign_sismologia ([@springstan] - [#29523]) ([ign_sismologia docs])
- Move imports to top for nextbus ([@springstan] - [#29520]) ([nextbus docs])
- Move imports to top for switcher_kis ([@springstan] - [#29530]) ([switcher_kis docs])
- Add full state view for emulated_hue (apps using emulated_hue, 'sleep cycle' and 'sleep as android') ([@orrpan] - [#26650]) ([emulated_hue docs])
- Move imports to top for mochad ([@springstan] - [#29514]) ([mochad docs])
- Add input_boolean reload service ([@Adminiuga] - [#29379]) ([input_boolean docs])
- Move imports to top for izone ([@springstan] - [#29508]) ([izone docs])
- Move imports to top for modbus ([@springstan] - [#29515]) ([modbus docs])
- Bump pytest to 5.3.1 ([@frenck] - [#29535])
- Move imports to top for nx584 ([@springstan] - [#29537]) ([nx584 docs])
- Move imports to top for pjlink ([@springstan] - [#29540]) ([pjlink docs])
- Move imports to top for smhi ([@springstan] - [#29545]) ([smhi docs])
- Move imports to top for sleepiq ([@springstan] - [#29544]) ([sleepiq docs])
- Move imports to top for toon ([@springstan] - [#29553]) ([toon docs])
- Move imports to top for influxdb ([@springstan] - [#29513]) ([influxdb docs])
- Move imports to top for heatmiser ([@springstan] - [#29562]) ([heatmiser docs])
- Move imports to top for plant ([@springstan] - [#29543]) ([plant docs])
- Move imports to top for spc ([@springstan] - [#29547]) ([spc docs])
- Bump lightwave to 0.17 ([@shortbloke] - [#29566]) ([lightwave docs])
- Add service to set netatmo home heating schedule ([@1v0dev] - [#29244]) ([netatmo docs])
- Move imports to top for homematic ([@springstan] - [#29558]) ([homematic docs])
- Use "kB" and "s" as UPnP/IGD units ([@scop] - [#29552]) ([upnp docs]) (breaking change)
- Upgrade certifi to >=2019.11.28 ([@fabaff] - [#29571])
- Move imports to top for notion ([@springstan] - [#29539]) ([notion docs])
- Move imports to top for soundtouch ([@springstan] - [#29546]) ([soundtouch docs])
- Treat BaseException as over-general ([@scop] - [#29573]) ([whois docs])
- Move imports to top for zha ([@springstan] - [#29555]) ([zha docs])
- Move imports to top for openuv ([@springstan] - [#29541]) ([openuv docs])
- Move imports to top for onboarding ([@springstan] - [#29542]) ([onboarding docs])
- Update Travis dist to bionic ([@scop] - [#29575])
- Upgrade pyyaml to 5.2.0 ([@fabaff] - [#29586])
- Add service to reboot the Freebox ([@SNoof85] - [#29525]) ([freebox docs])
- Improve Tahoma Velux support ([@butako] - [#27920]) ([tahoma docs])
- Register automation.reload service as an admin service. ([@Adminiuga] - [#29582]) ([automation docs])
- Add input_datetime reload service. ([@Adminiuga] - [#29581]) ([input_datetime docs])
- Add input_number.reload admin service. ([@Adminiuga] - [#29584]) ([input_number docs])
- change icon for partly-cloudy-night ([@Mariusthvdb] - [#29601]) ([darksky docs])
- Add additional Magic Cube Model ([@SukramJ] - [#29598]) ([deconz docs])
- Add Elgato Key Light integration ([@frenck] - [#29592]) ([elgato docs]) (new-integration)
- Move imports to top for google_assistant ([@springstan] - [#29561]) ([google_assistant docs])
- Move imports to top for tellduslive ([@springstan] - [#29550]) ([tellduslive docs])
- Move imports to top for stream ([@springstan] - [#29548]) ([stream docs])
- Add quarterly cycle for utility_meter component ([@aamcrae] - [#29534]) ([utility_meter docs])
- bump freebox api version ([@SNoof85] - [#29527]) ([freebox docs])
- Move imports to top for websocket_api ([@springstan] - [#29556]) ([websocket_api docs])
- Move imports to top for fido ([@springstan] - [#29557]) ([fido docs])
- Add Huawei LTE reboot and clear traffic statistics services ([@scop] - [#29594]) ([huawei_lte docs])
- sort imports according to PEP8 for airly ([@basnijholt] - [#29615]) ([airly docs])
- sort imports according to PEP8 for alarm_control_panel ([@basnijholt] - [#29616]) ([alarm_control_panel docs])
- sort imports according to PEP8 for air_quality ([@basnijholt] - [#29614]) ([air_quality docs])
- sort imports according to PEP8 for ads ([@basnijholt] - [#29613]) ([ads docs])
- sort imports according to PEP8 for abode ([@basnijholt] - [#29610]) ([abode docs])
- sort imports according to PEP8 for actiontec ([@basnijholt] - [#29612]) ([actiontec docs])
- sort imports according to PEP8 for acer_projector ([@basnijholt] - [#29611]) ([acer_projector docs])
- sort imports according to PEP8 for components ([@basnijholt] - [#29609])
- sort imports according to PEP8 for yweather ([@basnijholt] - [#29608])
- Upgrade keyring to 19.3.0 and keyrings.alt to 3.2.0 ([@fabaff] - [#29607])
- sort imports according to PEP8 for auth ([@basnijholt] - [#29619]) ([auth docs])
- sort imports according to PEP8 for alexa ([@basnijholt] - [#29618]) ([alexa docs])
- sort imports according to PEP8 for buienradar ([@basnijholt] - [#29623]) ([buienradar docs])
- Add IntesisHome Climate Platform ([@jnimmo] - [#25364]) ([intesishome docs]) (new-integration)
- Don't escape command parameters ([@Hypfer] - [#29504]) ([squeezebox docs])
- Fix file permission ([@fabaff] - [#29635]) ([dsmr_reader docs]) ([here_travel_time docs]) ([tahoma docs])
- sort imports according to PEP8 for axis ([@basnijholt] - [#29621]) ([axis docs])
- sort imports according to PEP8 for hassio ([@basnijholt] - [#29634]) ([hassio docs])
- Pass in parameters explicitly to DeconzSession ([@Kane610] - [#29617]) ([deconz docs])
- use isort to sort imports according to PEP8 for fan ([@basnijholt] - [#29632]) ([fan docs])
- use isort to sort imports according to PEP8 for automation ([@basnijholt] - [#29620]) ([automation docs])
- use isort to sort imports according to PEP8 for cast ([@basnijholt] - [#29624]) ([cast docs])
- use isort to sort imports according to PEP8 for binary_sensor ([@basnijholt] - [#29622]) ([binary_sensor docs])
- Move imports to top for homekit_controller ([@springstan] - [#29564])
- use isort to sort imports according to PEP8 for climate ([@basnijholt] - [#29625]) ([climate docs])
- use isort to sort imports according to PEP8 for command_line ([@basnijholt] - [#29627]) ([command_line docs])
- use isort to sort imports according to PEP8 for config ([@basnijholt] - [#29628]) ([config docs])
- use isort to sort imports according to PEP8 for cover ([@basnijholt] - [#29629]) ([cover docs])
- use isort to sort imports according to PEP8 for demo ([@basnijholt] - [#29630]) ([demo docs])
- use isort to sort imports according to PEP8 for cloud ([@basnijholt] - [#29626]) ([cloud docs])
- use isort to sort imports according to PEP8 for ecobee ([@basnijholt] - [#29631]) ([ecobee docs])
- Sort imports according to PEP8 for homekit_controller ([@basnijholt] - [#29646]) ([homekit_controller docs])
- use isort to sort imports according to PEP8 for mqtt ([@basnijholt] - [#29649]) ([mqtt docs])
- use isort to sort imports according to PEP8 for light ([@basnijholt] - [#29648]) ([light docs]) ([mqtt docs])
- Sort imports according to PEP8 for homekit ([@basnijholt] - [#29645]) ([homekit docs])
- use isort to sort imports according to PEP8 for vacuum ([@basnijholt] - [#29650]) ([mqtt docs]) ([vacuum docs])
- Fix file permission ([@fabaff] - [#29660]) ([intesishome docs])
- Sort imports according to PEP8 for recorder ([@basnijholt] - [#29652]) ([recorder docs])
- Sort imports according to PEP8 for switch ([@basnijholt] - [#29654]) ([switch docs])
- Sort imports according to PEP8 for template ([@basnijholt] - [#29655]) ([template docs])
- Sort imports according to PEP8 for hive ([@basnijholt] - [#29669]) ([hive docs])
- Sort imports according to PEP8 for starline ([@basnijholt] - [#29653]) ([starline docs])
- Change state values for Worx Landroid sensor ([@geraldhansen] - [#27453]) ([worxlandroid docs]) (breaking change)
- Sort imports according to PEP8 for plex ([@basnijholt] - [#29708]) ([plex docs])
- Sort imports according to PEP8 for cert_expiry ([@basnijholt] - [#29705]) ([cert_expiry docs])
- Sort imports according to PEP8 for geonetnz_volcano ([@basnijholt] - [#29716]) ([geonetnz_volcano docs])
- Sort imports according to PEP8 for eufy ([@basnijholt] - [#29715]) ([eufy docs])
- Sort imports according to PEP8 for dialogflow ([@basnijholt] - [#29714]) ([dialogflow docs])
- Sort imports according to PEP8 for kodi ([@basnijholt] - [#29721]) ([kodi docs])
- Add tests for vera component ([@vangorra] - [#28340]) ([vera docs])
- Add Signal Messenger integration ([@bbernhard] - [#28537]) ([signalmessenger docs]) (new-integration)
- Protect Doorbird platform from failing when individual doorbird fails ([@gjbadros] - [#29374]) ([doorbird docs])
- Sort imports according to PEP8 for velbus ([@basnijholt] - [#29676]) ([velbus docs])
- Proactively report Alexa Endpoint Health properties ([@clapbr] - [#29736]) ([alexa docs])
- Sort imports according to PEP8 for pi_hole ([@basnijholt] - [#29726]) ([pi_hole docs])
- use isort to sort imports according to PEP8 for homeassistant ([@basnijholt] - [#29718]) ([homeassistant docs])
- use isort to sort imports according to PEP8 for zone ([@basnijholt] - [#29712]) ([zone docs])
- use isort to sort imports according to PEP8 for group ([@basnijholt] - [#29713])
- Sort imports according to PEP8 for neato ([@basnijholt] - [#29724]) ([neato docs])
- Sort imports according to PEP8 for input_text ([@basnijholt] - [#29719]) ([input_text docs])
- Sort imports according to PEP8 for linky ([@basnijholt] - [#29722])
- Sort imports according to PEP8 for minio ([@basnijholt] - [#29723]) ([minio docs])
- Sort imports according to PEP8 for netgear_lte ([@basnijholt] - [#29725]) ([netgear_lte docs])
- Sort imports according to PEP8 for iqvia ([@basnijholt] - [#29720]) ([iqvia docs])
- Sort imports according to PEP8 for gpslogger ([@basnijholt] - [#29717]) ([gpslogger docs])
- Sort imports according to PEP8 for soma ([@basnijholt] - [#29709]) ([soma docs])
- Sort imports according to PEP8 for verisure ([@basnijholt] - [#29711]) ([verisure docs])
- Sort imports according to PEP8 for darksky ([@basnijholt] - [#29706]) ([darksky docs])
- Sort imports according to PEP8 for aws ([@basnijholt] - [#29704]) ([aws docs])
- Sort imports according to PEP8 for device_automation ([@basnijholt] - [#29707]) ([device_automation docs])
- Sort imports according to PEP8 for arest ([@basnijholt] - [#29703]) ([arest docs])
- Sort imports according to PEP8 for arduino ([@basnijholt] - [#29702]) ([arduino docs])
- Sort imports according to PEP8 for almond ([@basnijholt] - [#29688]) ([almond docs])
- Sort imports according to PEP8 for geonetnz_quakes ([@basnijholt] - [#29668]) ([geonetnz_quakes docs])
- Move imports to top for nsw_fuel_station ([@springstan] - [#29538]) ([nsw_fuel_station docs])
- Sort imports according to PEP8 for jewish_calendar ([@basnijholt] - [#29697]) ([jewish_calendar docs])
- Sort imports according to PEP8 for opentherm_gw ([@basnijholt] - [#29671]) ([opentherm_gw docs])
- Sort imports according to PEP8 for xiaomi_miio ([@basnijholt] - [#29677]) ([xiaomi_miio docs])
- Sort imports according to PEP8 for met ([@basnijholt] - [#29699]) ([met docs])
- Sort imports according to PEP8 for locative ([@basnijholt] - [#29698]) ([locative docs])
- Sort imports according to PEP8 for file ([@basnijholt] - [#29694]) ([file docs])
- Sort imports according to PEP8 for ifttt ([@basnijholt] - [#29696]) ([ifttt docs])
- Sort imports according to PEP8 for geofency ([@basnijholt] - [#29695]) ([geofency docs])
- Sort imports according to PEP8 for counter ([@basnijholt] - [#29692]) ([counter docs])
- Sort imports according to PEP8 for ffmpeg ([@basnijholt] - [#29693]) ([ffmpeg docs])
- use isort to sort imports according to PEP8 for broadlink ([@basnijholt] - [#29690]) ([broadlink docs])
- Sort imports according to PEP8 for ambiclimate ([@basnijholt] - [#29689]) ([ambiclimate docs])
- Sort imports according to PEP8 for camera ([@basnijholt] - [#29691]) ([camera docs])
- use isort to sort imports according to PEP8 for netatmo ([@basnijholt] - [#29682]) ([netatmo docs])
- Sort imports according to PEP8 for specific_devices ([@basnijholt] - [#29687])
- Sort imports according to PEP8 for wemo ([@basnijholt] - [#29685]) ([wemo docs])
- Sort imports according to PEP8 for utility_meter ([@basnijholt] - [#29710]) ([utility_meter docs])
- Sort imports according to PEP8 for vesync ([@basnijholt] - [#29684]) ([vesync docs])
- Sort imports according to PEP8 for iaqualink ([@basnijholt] - [#29681]) ([iaqualink docs])
- Sort imports according to PEP8 for sensor ([@basnijholt] - [#29683]) ([sensor docs])
- Sort imports according to PEP8 for ring ([@basnijholt] - [#29680])
- Sort imports according to PEP8 for http ([@basnijholt] - [#29679])
- Sort imports according to PEP8 for dyson ([@basnijholt] - [#29678])
- Sort imports according to PEP8 for somfy ([@basnijholt] - [#29675]) ([somfy docs])
- Sort imports according to PEP8 for nest ([@basnijholt] - [#29670]) ([nest docs])
- Sort imports according to PEP8 for rest ([@basnijholt] - [#29674]) ([rest docs])
- Sort imports according to PEP8 for pilight ([@basnijholt] - [#29673]) ([pilight docs])
- Sort imports according to PEP8 for owntracks ([@basnijholt] - [#29672]) ([owntracks docs])
- Sort imports according to PEP8 for emulated_hue ([@basnijholt] - [#29667]) ([emulated_hue docs])
- Sort imports according to PEP8 for device_tracker ([@basnijholt] - [#29666]) ([device_tracker docs])
- Sort imports according to PEP8 for media_player ([@basnijholt] - [#29665]) ([media_player docs])
- sort imports according to PEP8 for lock ([@basnijholt] - [#29663]) ([lock docs])
- Sort imports according to PEP8 for unifi ([@basnijholt] - [#29656]) ([unifi docs])
- Sort imports according to PEP8 for deconz ([@basnijholt] - [#29659])
- Sort imports according to PEP8 for zwave ([@basnijholt] - [#29658]) ([zwave docs])
- Sort imports according to PEP8 for websocket_api ([@basnijholt] - [#29657]) ([websocket_api docs])
- Sort imports according to PEP8 for pushbullet ([@basnijholt] - [#29748]) ([pushbullet docs])
- Sort imports according to PEP8 for versasense ([@basnijholt] - [#29753]) ([versasense docs])
- Sort imports according to PEP8 for remote ([@basnijholt] - [#29749]) ([remote docs])
- Sort imports according to PEP8 for yeelight ([@basnijholt] - [#29755]) ([yeelight docs])
- Sort imports according to PEP8 for solarlog ([@basnijholt] - [#29752]) ([solarlog docs])
- Sort imports according to PEP8 for scene ([@basnijholt] - [#29750]) ([scene docs])
- Sort imports according to PEP8 for vicare ([@basnijholt] - [#29754]) ([vicare docs])
- Sort imports according to PEP8 for plaato ([@basnijholt] - [#29747]) ([plaato docs])
- Sort imports according to PEP8 for shopping_list ([@basnijholt] - [#29751]) ([shopping_list docs])
- Sort imports according to PEP8 for emulated_roku ([@basnijholt] - [#29756])
- Sort imports according to PEP8 for sleepiq ([@basnijholt] - [#29759])
- Sort imports according to PEP8 for mobile_app ([@basnijholt] - [#29758])
- Sort imports according to PEP8 for hue ([@basnijholt] - [#29757])
- Sort imports according to PEP8 for vultr ([@basnijholt] - [#29760])
- Remove Tahoma component #29744 ([@tetienne] - [#29745]) ([tahoma docs]) (breaking change)
- Sort imports according to PEP8 for components starting with "B" ([@basnijholt] - [#29762])
- Sort imports according to PEP8 for components starting with "A" ([@basnijholt] - [#29761])
- Sort imports according to PEP8 for components starting with "E" ([@basnijholt] - [#29765])
- Sort imports according to PEP8 for components starting with "F" ([@basnijholt] - [#29766])
- Sort imports according to PEP8 for components starting with "G" ([@basnijholt] - [#29767])
- Sort imports according to PEP8 for components starting with "H" ([@basnijholt] - [#29768])
- use isort to sort imports for components starting with 'm' ([@basnijholt] - [#29772])
- Sort imports according to PEP8 for components starting with "I" ([@basnijholt] - [#29769])
- Sort imports according to PEP8 for components starting with "L" ([@basnijholt] - [#29771])
- Sort imports according to PEP8 for components starting with "K" ([@basnijholt] - [#29770]) ([kankun docs]) ([keba docs]) ([keyboard_remote docs])
- Sort imports according to PEP8 for components starting with "O" ([@basnijholt] - [#29774])
- Sort imports according to PEP8 for components starting with "P" ([@basnijholt] - [#29775])
- Sort imports according to PEP8 for components starting with "S" ([@basnijholt] - [#29777])
- Sort imports according to PEP8 for components starting with "R" ([@basnijholt] - [#29776])
- Sort imports according to PEP8 for components starting with "T" ([@basnijholt] - [#29778])
- Sort imports according to PEP8 for components starting with "V" ([@basnijholt] - [#29780])
- Sort imports according to PEP8 for components starting with "N" ([@basnijholt] - [#29773])
- Sort imports according to PEP8 for components starting with "W" ([@basnijholt] - [#29781])
- Sort imports according to PEP8 for components starting with "Q" ([@basnijholt] - [#29785])
- Sort imports according to PEP8 for components starting with "Y" ([@basnijholt] - [#29783]) ([yale_smart_alarm docs]) ([yamaha docs]) ([yamaha_musiccast docs]) ([yandex_transport docs]) ([yeelightsunflower docs]) ([yessssms docs]) ([yr docs])
- Sort imports according to PEP8 for components starting with "X" ([@basnijholt] - [#29782]) ([x10 docs]) ([xbox_live docs]) ([xeoma docs]) ([xfinity docs]) ([xiaomi_tv docs]) ([xmpp docs]) ([xs1 docs])
- Move imports to top for homekit ([@springstan] - [#29560]) ([homekit docs])
- Cleanup removed component ([@pvizeli] - [#29788])
- Sort imports according to PEP8 for 'script' folder ([@basnijholt] - [#29790])
- use isort to sort imports for "setup.py" ([@basnijholt] - [#29792])
- Sort imports according to PEP8 for 'homeassistant' folder ([@basnijholt] - [#29789])
- Sort imports according to PEP8 for 'tests' ([@basnijholt] - [#29791])
- Add config flow to iCloud ([@Quentame] - [#28968]) ([icloud docs]) (breaking change)
- Sort imports according to PEP8 for components starting with "D" ([@basnijholt] - [#29764])
- Move imports to top for ness_alarm ([@springstan] - [#29518]) ([ness_alarm docs])
- Sort imports according to PEP8 for components starting with "Z" ([@basnijholt] - [#29784]) ([zamg docs]) ([zengge docs]) ([zeroconf docs]) ([zestimate docs]) ([zha docs]) ([zigbee docs])
- Sort imports according to PEP8 for components starting with "C" ([@basnijholt] - [#29763])
- Fix 'pytest.register_assert_rewrite("tests.common")' warning ([@basnijholt] - [#29797])
- Sort imports according to PEP8 for huawei_lte ([@basnijholt] - [#29664]) ([huawei_lte docs])
- Sort imports according to PEP8 for components starting with "U" ([@basnijholt] - [#29779]) ([ue_smart_radio docs]) ([uk_transport docs]) ([universal docs]) ([updater docs]) ([uscis docs])
- Fix build, invalid JSON file in icloud component ([@frenck] - [#29798]) ([icloud docs])
- Sort imports according to PEP8 for google_assistant ([@basnijholt] - [#29633]) ([google_assistant docs])
- Add ZHA group API ([@dmulcahey] - [#29641]) ([zha docs])
- Add input_text reload service. ([@Adminiuga] - [#29644]) ([input_text docs])
- Add input_select reload service. ([@Adminiuga] - [#29647]) ([input_select docs])
- Add JSON files validation to hassfest ([@frenck] - [#29799])
- Fix zha circular import ([@Adminiuga] - [#29802])
- Nextbus: Sort results for upcoming times ([@ViViDboarder] - [#29811]) ([nextbus docs])
- Adjusts repository README ([@frenck] - [#29805])
- Install discovery requirements if used ([@balloob] - [#29795]) ([deconz docs]) ([hue docs])
- Fix isort on a small set of misc files ([@frenck] - [#29803]) ([xiaomi_miio docs])
- Fix tank utility token ([@proferabg] - [#29801]) ([tank_utility docs])
- Re-authorize Huawei LTE on login required error ([@scop] - [#29597]) ([huawei_lte docs])
- Fix withings wrong sleep state entry ([@vangorra] - [#29651]) ([withings docs])
- Fix input_text initialization with empty config. ([@Adminiuga] - [#29829]) ([input_text docs])
- Upgrade pydocstyle to 5.0.1 ([@scop] - [#29830])
- Sort imports for requirements.py and its test using isort ([@basnijholt] - [#29836])
- Fix Soma integration connection issue ([@ratsept] - [#27692]) ([soma docs])
- Update rfxtrx component so it can be run as a custom_component ([@foxy82] - [#29638]) ([rfxtrx docs])
- Revert Tahoma removal ([@balloob] - [#29840]) ([tahoma docs]) (new-integration)
- Use Bionic's ffmpeg on Travis, jonathonf/ffmpeg-4 is N/A at the moment ([@scop] - [#29860])
- Fix package import sort on dwd_weather_warnings ([@frenck] - [#29874]) ([dwd_weather_warnings docs])
- Sort import for tests/components/feedreader/test_init.py ([@basnijholt] - [#29878])
- Add isort to CI and pre-commit ([@basnijholt] - [#29739])
- Remove no longer needed auth.util, use secrets instead ([@scop] - [#29861])
- Revert "Sort import for tests/components/feedreader/test_init.… ([@Adminiuga] - [#29882])
- Log ZHA bind/unbind operations status ([@Adminiuga] - [#29842]) ([zha docs])
- (Re)Add support for multiple Pi-Holes ([@johnluetke] - [#27569]) ([pi_hole docs]) (breaking change)
- ISY994 Node Filter Update ([@randellhodges] - [#28155]) ([isy994 docs])
- Defer log formatting. ([@Adminiuga] - [#29888]) ([zha docs])
- Bump python-miio version to 0.4.8 ([@syssi] - [#29890]) ([xiaomi_miio docs])
- `genericpath` is an internal Python module and shouldn't be imported according to core Python devs. (see [this](https://bugs.python.org/msg358136) comment) ([@basnijholt] - [#29903])
- Make Python deprecation notice easier to maintain ([@scop] - [#29900])
- Upgrade Sphinx to 2.2.2 and sphinx-autodoc-typehintsi to 1.10.3 ([@fabaff] - [#29906])
- Fix incorrect file format yr test fixure ([@frenck] - [#29910])
- Fixes invalid JSON syntax in devcontainer ([@frenck] - [#29911])
- Add integration platform helper ([@balloob] - [#29914])
- Update Tahoma component's tahoma-api requirement's version ([@DjMoren] - [#29918]) ([tahoma docs])
- Implement Alexa.EventDetectionSensor for Alexa ([@ochlocracy] - [#28276]) ([alexa docs])
- Update androidtv version to improve source selection support ([@raman325] - [#29579]) ([androidtv docs])
- Add battery sensor to iCloud ([@Quentame] - [#29818]) ([icloud docs]) (new-platform)
- bump venstar 0.12 ([@tyler-public] - [#29954])
- Bump adb-shell to 0.1.0 and androidtv to 0.0.36 ([@JeffLIrion] - [#29938]) ([androidtv docs])
- Start of using hass state for tests rather than direct object ([@elupus] - [#29377])
- isort fix on test_media_player ([@caronc] - [#29965])
- Upgrade keyring to 20.0.0 and keyrings.alt to 3.4.0 ([@fabaff] - [#29960])
- Fix example value for Todoist service ([@boralyl] - [#29953])
- Remove deprecated rflink configs ([@scop] - [#29972]) ([rflink docs])
- Drop Python 3.6 support ([@scop] - [#29978])
- Support case of unknown/unavailable temperature/humidity ([@elupus] - [#29959]) ([google_assistant docs])
- Migrate to api_key ([@eifinger] - [#29966]) ([here_travel_time docs]) (breaking change)
- Remove 'SUPPORT_PLAY_MEDIA' from Volumio ([@JeffLIrion] - [#29969]) ([volumio docs])
- Make hassfest import detection better ([@balloob] - [#29932]) ([filter docs]) ([history docs])
- Fixed "condtion_type" to "condition_type" ([@rsnodgrass] - [#29984]) ([fan docs])
- Fix condition typo ([@balloob] - [#29989]) ([climate docs]) ([device_tracker docs]) ([fan docs]) ([vacuum docs])
- Don't use the locals parameter on exec. ([@lddubeau] - [#29979]) ([python_script docs])
- Update binary_sensor.py ([@Emacee] - [#29977]) ([bmw_connected_drive docs])
- Bump shodan to 1.21.0 ([@frenck] - [#29991]) ([shodan docs])
- Bump pytest to 5.3.2 ([@frenck] - [#29990])
- Add check-json to CI and Pre-commit ([@frenck] - [#29912])
- Add unique ID to config entries ([@balloob] - [#29806])
- Show current effect in yeelight device ([@zewelor] - [#28975]) ([yeelight docs])
- Convert Hue to use unique ID ([@balloob] - [#30000]) ([hue docs])
- Fix modbus service description ([@vzahradnik] - [#30005])
- Fix persistent setup error notification content ([@frenck] - [#29995])
- Make tplink light more responsive ([@vangorra] - [#28652]) ([tplink docs])
- Z-Wave: Fibaro FGR*-222: Add venetian blind support ([@andre-richter] - [#29701]) ([zwave docs])
- Upgrade matrix-client to 0.3.2 ([@fabaff] - [#30027]) ([matrix docs])
- Upgrade zeroconf to 0.24.1 ([@fabaff] - [#30028]) ([zeroconf docs])
- Update Envoy sensor to configure credentials and grab Inverter Date from updated API ([@gtdiehl] - [#28837]) ([enphase_envoy docs])
- Add option to ignore flows ([@balloob] - [#30008]) ([config docs]) ([hue docs])
- changed Venstar component temperature to half degree accuracy ([@erikkastelec] - [#30034]) ([venstar docs])
- Add timer reload service. ([@Adminiuga] - [#30015]) ([timer docs])
- Guard against future unknown SimpliSafe entity types ([@bachya] - [#30059]) ([simplisafe docs])
- Set unique id on homekit_controller config entries ([@Jc2k] - [#30035]) ([homekit_controller docs])
- Remove stream from camera after deps ([@balloob] - [#30057]) ([camera docs])
- Add unit_of_measurement to various Transmission sensors ([@yegle] - [#30037]) ([transmission docs])
- Refactor Alexa capabilityResources object into class, Implement Alexa semantics object ([@ochlocracy] - [#29917]) ([alexa docs])
- Make Hassfest stricter pt 2 ([@balloob] - [#30068]) ([modbus docs]) ([mqtt docs]) ([tuya docs]) ([zamg docs])
- Init entities as unavailable when offline ([@bieniu] - [#29738]) ([airly docs])
- Make name of nmbs live sensor customizable via unique_id ([@springstan] - [#29662]) ([nmbs docs])
- Include all SSDP data in discovery info ([@scop] - [#28197]) ([ssdp docs])
- Rework tado component ([@michaelarnauts] - [#29246]) ([tado docs])
- Add an open window sensor for heating zones ([@gppanayotov] - [#30090]) ([tado docs])
- Explicitly include Alexa interface for image_processing entities. ([@ochlocracy] - [#30101]) ([alexa docs])
- Don't error on removal of an ignored homekit_controller config entry ([@Jc2k] - [#30083]) ([homekit_controller docs])
- add --show-diff-on-failure to pre-commit ([@basnijholt] - [#30097])
- Upgrade mypy to 0.761 ([@scop] - [#30104])
- Helpers type hint improvements ([@scop] - [#30106])
- Add device class attribute to modbus sensors ([@vzahradnik] - [#30030]) ([modbus docs])
- Upgrade python-velbus ([@Cereal2nd] - [#30110]) ([velbus docs])
- Add a config entry mechanism to rediscover a discovery that was ignored ([@Jc2k] - [#30099]) ([homekit_controller docs])
- Implement ZHA entity classes registry ([@Adminiuga] - [#30108]) ([zha docs])
- Clean up mobile app webhooks ([@balloob] - [#30123]) ([http docs]) ([mobile_app docs])
- Refactor ZHA electrical measurement sensor. ([@Adminiuga] - [#30130]) ([zha docs]) (breaking change)
- Cleanup ZHAEntity class ([@Adminiuga] - [#30131]) ([zha docs])
- Upgrade zeroconf to 0.24.2 ([@fabaff] - [#30140]) ([zeroconf docs])
- Refactor ZHA binary_sensor ([@Adminiuga] - [#30138]) ([zha docs])
- Update Integration of Keba charging station ([@dannerph] - [#30125]) ([keba docs]) (breaking change)
- More helpers type improvements ([@scop] - [#30145])
- Bump sqlalchemy to 1.3.12 ([@frenck] - [#30142]) ([recorder docs]) ([sql docs])
- Clean up scaffold ([@cgtobi] - [#30135])
- ZHA binary_sensor cleanup. ([@Adminiuga] - [#30149]) ([zha docs])
- Add support for input_number entities in Alexa integration ([@ochlocracy] - [#30139]) ([alexa docs])
- Add icon to Plex sensor ([@Quentame] - [#30172]) ([plex docs])
- Add cast to state of Dyson Air Quality Sensor ([@springstan] - [#30100]) ([dyson docs])
- Add icons to Freebox sensors ([@Quentame] - [#30132]) ([freebox docs])
- Upgrade envoy_reader to 0.11.0 ([@gtdiehl] - [#30179]) ([enphase_envoy docs])
- Updated formatting of total_blocks value ([@P-Verbrugge] - [#30170]) ([bitcoin docs])
- New date_time_utc display option added to the time_date sensor platform ([@heckler] - [#30158]) ([time_date docs])
- Enable config flow for Tesla ([@alandtse] - [#28744]) ([tesla docs]) (breaking change)
- Protect against bad data stored in ZHA ([@dmulcahey] - [#30183]) ([zha docs])
- Upgrade zeroconf to 0.24.3 ([@fabaff] - [#30187]) ([zeroconf docs])
- Fix AdGuard Home safe search sensor name ([@Quentame] - [#30171]) ([adguard docs])
- Add onewire devices and owserver remote host support ([@garbled1] - [#29948]) ([onewire docs])
- Bump importlib-metadata to 1.3.0 ([@springstan] - [#30196])
- Bump datapoint to 0.9.5 ([@springstan] - [#30185]) ([metoffice docs])
- Implement EqualizerController in Alexa for media_player. ([@ochlocracy] - [#30159]) ([alexa docs])
- Upgrade youtube_dl to 2019.12.25 ([@BKPepe] - [#30203]) ([media_extractor docs])
- Pull track position from MPD status ([@ndonegan] - [#28579]) ([mpd docs])
- Add support for enocean window handle FA 10 00 (Hoppe) ([@rhadamantys] - [#29968]) ([enocean docs])
- Update Vivotek camera component ([@HarlemSquirrel] - [#30191]) ([vivotek docs])
- Make Huawei LTE notify service name configurable ([@scop] - [#30208]) ([huawei_lte docs]) (breaking change)
- Add Huawei LTE integration suspend and resume services ([@scop] - [#30207]) ([huawei_lte docs])
- Bump teslajsonpy to 0.2.1 ([@alandtse] - [#30217]) ([tesla docs])
- bump tuyaha 0.0.5 ([@PaulAnnekov] - [#30213]) ([tuya docs])
- Fix handling of symlinked device descriptors in keyboard_remote and move remaining sync io to executor thread pool ([@bendavid] - [#30206]) ([keyboard_remote docs])
- Bump ZHA dependencies ([@dmulcahey] - [#30228]) ([zha docs])
- Bump shodan to 1.21.1 ([@frenck] - [#30234]) ([shodan docs])
- DECONZ - Added support for Aqara single switch WXKG03LM ([@Kerwood] - [#30240]) ([deconz docs])
- Bump python-qbittorrent to 0.4.1 ([@springstan] - [#30239]) ([qbittorrent docs])
- Fix Huawei LTE error message on service call without URL and routers ([@scop] - [#30250]) ([huawei_lte docs])
- Bump dependency for HomematicIp cloud ([@SukramJ] - [#30237]) ([homematicip_cloud docs])
- Bump libpurecool to 0.6.0 ([@xlfe] - [#30247])
- Huawei LTE: Fix YAML options overriding ones set from GUI ([@scop] - [#30249]) ([huawei_lte docs])
- Add HmIP-MOD_TM to HomematicIP Cloud ([@SukramJ] - [#30255]) ([homematicip_cloud docs])
- Note Huawei LTE notify service change requires restart ([@scop] - [#30223]) ([huawei_lte docs])
- Bump python-velbus library to 2.0.32 to fix problems with the glaspanels ([@Cereal2nd] - [#30257]) ([velbus docs])
- Whitelist Android/iOS auth callbacks ([@balloob] - [#30082]) ([auth docs])
- Fixing timezone issue which caused wrong selection of data to be used. ([@vangorra] - [#30011]) ([withings docs])
- Refactor ZHA channel logging ([@Adminiuga] - [#30259]) ([zha docs])
- Fix ble_tracker randomly pygatt thrown error ([@liollury] - [#28671]) ([bluetooth_le_tracker docs])
- Fix creating smappee sensors when remote is not active ([@mockersf] - [#30270]) ([smappee docs])
- Upgrade rflink to 0.0.50, ignore_devices now supports * and ? anywhere ([@scop] - [#30268]) ([rflink docs])
- Accept homekit_controller pairing codes both with and without dashes ([@Jc2k] - [#30273]) ([homekit_controller docs])
- Add homekit_controller service.sensor.smoke ([@Jc2k] - [#30269]) ([homekit_controller docs])
- Upgrade beautifulsoup4 to 4.8.2 ([@fabaff] - [#30274]) ([scrape docs])
- Add custom validator for countries ([@fabaff] - [#30280]) ([workday docs])
- Change default icons for Tesla components ([@alandtse] - [#30288]) ([tesla docs])
- Contributing: Add note about feature suggestions and bug tracking ([@andygrunwald] - [#30225])
- Bump ihcsdk to 2.4.0 ([@taisholland] - [#30279]) ([ihc docs])
- Ignore google_maps updates when last_seen goes backwards ([@pnbruckner] - [#30178]) ([google_maps docs])
- Add GIOS integration ([@bieniu] - [#28719]) ([gios docs]) (new-integration)
- Store capabilities and supported features in entity registry, restore registered entities on startup ([@balloob] - [#30094])
- Fix Withings leaking time zone change into other tests ([@frenck] - [#30320])
- Add local_ip component ([@issacg] - [#29973]) ([localip docs]) (new-integration)
- Update liveboxplay and pyteleloisirs ([@pschmitt] - [#30093])
- Add homematic host port config for HMIP-only CCUs ([@sbyx] - [#30077]) ([homematic docs])
- Bump dependency for HomematicIP Cloud ([@SukramJ] - [#30319]) ([homematicip_cloud docs])
- Add support for Somfy RTS power socket and Somfy io Temperature sensor ([@rhadamantys] - [#30053]) ([tahoma docs])
- Reduce solaredge logging severity ([@sdwilsh] - [#30305]) ([solaredge docs])
- Remove Amcrest deprecated sensors and switches ([@pnbruckner] - [#30308]) ([amcrest docs]) (breaking change)
- Add support for Velux garage doors ([@cwildt] - [#30214]) ([velux docs])
- Add separate command and state topics for mqtt lock ([@tuxbox] - [#29808]) ([mqtt docs]) (breaking change)
- Upgrade Sphinx to 2.3.1 ([@fabaff] - [#30310])
- Add light support to Velbus integration ([@brefra] - [#30323]) ([velbus docs]) (new-platform)
- Fix luftdaten integration by adding a sensor for pressure at sealevel ([@Lars-P] - [#30317]) ([luftdaten docs])
- Simplify Tesla icon get code ([@alandtse] - [#30301]) ([tesla docs])
- Make the rest of ZHA platforms to use ZHA class registry ([@Adminiuga] - [#30261]) ([zha docs])
- Improve Withings tests in different time zone ([@frenck] - [#30326])
- Migrate dsmr tests from coroutine to async/await ([@frenck] - [#30333])
- Migrate wunderground tests from coroutine to async/await ([@frenck] - [#30330])
- Bump pyps4-2ndscreen to 1.0.4 ([@frenck] - [#30327]) ([ps4 docs])
- Bump alarmdecoder to 1.13.9 ([@springstan] - [#30303]) ([alarmdecoder docs])
- Migrate python_script tests from coroutine to async/await ([@frenck] - [#30335])
- Migrate api tests from coroutine to async/await ([@frenck] - [#30338])
- Migrate alexa tests from coroutine to async/await ([@frenck] - [#30332])
- Migrate xiaomi_miio tests from coroutine to async/await ([@frenck] - [#30329])
- Migrate emulated_hue tests from coroutine to async/await ([@frenck] - [#30331])
- Migrate webostv to new library and make integration async with callback state updates ([@bendavid] - [#29296]) ([webostv docs]) (breaking change)
- Migrate input_* tests from coroutine to async/await ([@frenck] - [#30336])
- Remove use of bin_type in Tesla component ([@alandtse] - [#30315]) ([tesla docs])
- Upgrade youtube_dl to version 2020.01.01 ([@BKPepe] - [#30341]) ([media_extractor docs])
- Upgrade zeroconf to 0.24.4 ([@fabaff] - [#30347]) ([zeroconf docs])
- Migrate startca tests from coroutine to async/await ([@frenck] - [#30354])
- Migrate teksavvy tests from coroutine to async/await ([@frenck] - [#30353])
- Migrate timer tests from coroutine to async/await ([@frenck] - [#30352])
- Migrate yr tests from coroutine to async/await ([@frenck] - [#30351])
- Fix media_player example for select_source service ([@JeffLIrion] - [#30358])
- Upgrade python_opendata_transport to 0.2.1 ([@fabaff] - [#30348]) ([swiss_public_transport docs])
- Fix HVAC mode for Tesla ([@alandtse] - [#30287]) ([tesla docs])
- Add attributes to fritz device_tracker ([@AaronDavidSchneider] - [#30350]) ([fritz docs])
- Migrate mailbox tests from coroutine to async/await ([@frenck] - [#30361])
- Migrate hassio tests from coroutine to async/await ([@frenck] - [#30363])
- Migrate websocket_api tests from coroutine to async/await ([@frenck] - [#30364])
- Migrate config tests from coroutine to async/await ([@frenck] - [#30366])
- Migrate counter tests from coroutine to async/await ([@frenck] - [#30368])
- Migrate owntracks tests from coroutine to async/await ([@frenck] - [#30369])
- Migrate no_ip tests from coroutine to async/await ([@frenck] - [#30370])
- Migrate camera tests from coroutine to async/await ([@frenck] - [#30372])
- Migrate cast tests from coroutine to async/await ([@frenck] - [#30374])
- Migrate ffmpeg tests from coroutine to async/await ([@frenck] - [#30375])
- Migrate discovery tests from coroutine to async/await ([@frenck] - [#30376])
- Migrate google_* tests from coroutine to async/await ([@frenck] - [#30377])
- Add charging rate sensor to Tesla ([@alandtse] - [#30286]) ([tesla docs])
- Restore state for Rfxtrx devices ([@Ernst79] - [#30309]) ([rfxtrx docs])
- Remove unnessecary rfxtrx light property def ([@Ernst79] - [#30397]) ([rfxtrx docs])
- Remove unnecessary string literal concatenations ([@scop] - [#30360])
- Bump pre-commit to 1.21.0 ([@frenck] - [#30406])
- fix issuecomment-570284682 ([@AaronDavidSchneider] - [#30405]) ([fritz docs])
- Migrate local_file tests from coroutine to async/await ([@frenck] - [#30392])
- Migrate fido tests from coroutine to async/await ([@frenck] - [#30391])
- Migrate freedns tests from coroutine to async/await ([@frenck] - [#30390])
- Migrate group tests from coroutine to async/await ([@frenck] - [#30389])
- Migrate generic tests from coroutine to async/await ([@frenck] - [#30388])
- Migrate media_player tests from coroutine to async/await ([@frenck] - [#30387])
- Migrate frontend tests from coroutine to async/await ([@frenck] - [#30386])
- Bump miflora and bluepy ([@springstan] - [#30411]) ([decora docs]) ([miflora docs])
- Add generic command functionality to denonavr ([@bendavid] - [#29295]) ([denonavr docs])
- Add generic command/button functionality to webostv ([@bendavid] - [#30379]) ([webostv docs])
- Axis - Improve tests ([@Kane610] - [#30415])
- Cleanup of state handling in webostv ([@bendavid] - [#30416]) ([webostv docs]) (breaking change)
- Remove ZHA establish device mappings function ([@dmulcahey] - [#30423]) ([zha docs])
- Implemented media_play & media_pause / push to version 0.7.11 of denonavr ([@scarface-4711] - [#30421]) ([denonavr docs])
- Add RTSP stream support for UVC (Unifi Video Client) integration ([@ochlocracy] - [#30297]) ([uvc docs])
- Fix set tilt position ([@tetienne] - [#30428]) ([somfy docs])
- Fix number of times seen in debug message ([@scop] - [#30429]) ([bluetooth_le_tracker docs])
- Use config entry unique id for deCONZ ([@Kane610] - [#30122]) ([deconz docs])
- Rework FlowManager to use inheritance ([@Jc2k] - [#30133]) ([auth docs]) ([config docs])
- convert to integer if rounding precision is zero ([@agners] - [#30226]) ([filter docs])
- Don't allow badly formed upnp devices to kill auto discovery ([@imduffy15] - [#30342]) ([deconz docs]) ([hue docs])
- Mark API key as deprecated ([@elupus] - [#30402]) ([google_assistant docs])
- Axis - Improve tests based on feedback ([@Kane610] - [#30430])
- Update HomeKit position state characteristic for covers ([@neffs] - [#27867]) ([homekit docs])
- Handle telegram event commands with args ([@sergioisidoro] - [#30254]) ([telegram_bot docs])
- Various string cleanups ([@scop] - [#30435])
- Add KEF speakers integration ([@basnijholt] - [#28959]) ([kef docs]) (new-integration)
- WIP deCONZ - Support Fyrtur/Kadrilj battery sensors ([@Kane610] - [#30403]) ([deconz docs])
- isort homekit ([@Jc2k] - [#30437]) ([homekit docs])
- Don't expose flows that aren't initialised. ([@Jc2k] - [#30432])
- Check status field for UPS online binary sensor ([@andersonshatch] - [#30144]) ([apcupsd docs])
- deCONZ - Improve tests based on Martins feedback in Axis integration ([@Kane610] - [#30438])
- Bump ring to 0.2.9 ([@tchellomello] - [#30439]) ([ring docs])
- Improve tests based on Martins feedback from Axis improve tests ([@Kane610] - [#30442])
- Defer homekit_controller initial poll after all entities are created ([@Jc2k] - [#30355]) ([homekit_controller docs])
- Implement supported locales for Alexa capabilities ([@ochlocracy] - [#30285]) ([alexa docs])
- Axis - Remove manual configuration and legacy config file import ([@Kane610] - [#30365]) ([axis docs]) (breaking change)
- Add Sentry component ([@dcramer] - [#30422]) ([sentry docs]) (new-integration)
- Extract Collection helper from Person integration ([@balloob] - [#30313]) ([person docs]) ([websocket_api docs])
- Fix async call inside sync context ([@brefra] - [#30458]) ([velbus docs])
- Fix counter with empty config ([@pnbruckner] - [#30454]) ([counter docs])
- Allow all sources and sound modes to be selected in google assistant ([@elupus] - [#30418]) ([google_assistant docs])
- Make Axis integration use config entry unique id ([@Kane610] - [#30461]) ([axis docs])
- Only return remote UI url if remote UI enabled ([@balloob] - [#30453]) ([cloud docs])
- Allow adding unique device ID to mobile app registration ([@balloob] - [#30457]) ([mobile_app docs])
- Bump elgato to 0.2.0 ([@frenck] - [#30485]) ([elgato docs])
- Fix WLED light transition ([@frenck] - [#30490]) ([wled docs])
- Add unique ID to elgato config entries ([@frenck] - [#30486]) ([elgato docs])
- Bump adguardhome to 0.4.0 ([@frenck] - [#30483]) ([adguard docs])
- Add unique ID to WLED config entries ([@frenck] - [#30480]) ([wled docs])
- Improve WLED pure white support for RGBW ([@frenck] - [#30477]) ([wled docs]) (breaking change)
- Bump wled to 0.2.1 ([@frenck] - [#30474]) ([wled docs])
- Bump twentemilieu to 0.2.0 ([@frenck] - [#30471]) ([twentemilieu docs])
- deCONZ - Allow manual configuration to update existing configuration ([@Kane610] - [#30469]) ([deconz docs])
- Add Zigbee group binding to ZHA ([@dmulcahey] - [#30433]) ([zha docs])
- Fix timer with empty config ([@pnbruckner] - [#30463]) ([timer docs])
- Mobile App add device tracker to person registering app ([@balloob] - [#30460]) ([mobile_app docs]) ([person docs])
- Axis - Allow manual configuration to update existing configuration ([@Kane610] - [#30467]) ([axis docs])
- Add person reload service ([@balloob] - [#30493]) ([person docs])
- Add unique id property for Vizio devices so they get added to entity registry ([@raman325] - [#30497]) ([vizio docs])
- Restore state helper to work with entity registry restoration ([@balloob] - [#30451])
- Be consistent with Home Assistant and Hass.io spelling ([@scop] - [#30500])
- Migrate automatic tests from coroutine to async/await ([@frenck] - [#30371])
- Remove double person data validation ([@balloob] - [#30501]) ([person docs])
- Add support for v1 and v2 HomeKit fans. ([@Jc2k] - [#30503]) ([homekit_controller docs]) (new-platform)
- Preserve new BLE tracker item name if seen before adding discovery ([@scop] - [#30318]) ([bluetooth_le_tracker docs])
- Migrate collection of component tests from coroutine to async/await ([@frenck] - [#30504])
- Add LED control of push buttons and bump velbus-library ([@brefra] - [#30445]) ([velbus docs])
- Bump teslajsonpy to 0.2.2 ([@alandtse] - [#30512]) ([tesla docs])
- deCONZ - Rotation support for Xiaomi magic cube ([@FrengerH] - [#30472]) ([deconz docs])
- Spell Zigbee consistently, with lowercase "b" ([@scop] - [#30440]) ([emulated_hue docs]) ([zigbee docs])
- Add HmIP-PMFS and HmIP-WHS2 to HomematicIP Cloud ([@SukramJ] - [#30325]) ([homematicip_cloud docs])
- Add surepetcare component ([@benleb] - [#24426]) ([surepetcare docs]) (new-integration)
- Add support for homekit air quality sensors ([@Jc2k] - [#30510]) ([homekit_controller docs]) (new-platform)
- Set required_features field when registering fan services ([@Jc2k] - [#30516]) ([fan docs]) ([homekit_controller docs])
- Add Brother Printer integration ([@bieniu] - [#30359]) ([brother docs]) (new-integration)
- Format all manifests with prettier ([@frenck] - [#30521])
- Fix AVM FRITZ!DECT switch total consumption ([@Alexxander0] - [#30478])
- Register 'androidtv.download' and 'androidtv.upload' services ([@JeffLIrion] - [#30086]) ([androidtv docs])
- Allow specific status codes while notifying mobile_app devices ([@rccoleman] - [#30496]) ([mobile_app docs])
- Correct integration names in manifests (A-B) ([@frenck] - [#30527])
- Fire restarted event on restarting active timer ([@mnigbur] - [#30475]) ([timer docs]) (breaking change)
- Bump synologydsm to 0.3.0 ([@Quentame] - [#30529]) ([synologydsm docs])
- Add pilight dimmer as light component ([@Trekky12] - [#30107]) ([pilight docs]) (new-platform)
- Add "autobypass" option when arming AlarmDecoder integration ([@lexam79] - [#30002]) ([alarmdecoder docs])
- Update vizio component to prepare for config flow and zeroconf support ([@raman325] - [#30522]) ([vizio docs])
- Correct names in manifests (C-L) ([@frenck] - [#30532])
- Use collection helpers for input_boolean ([@Adminiuga] - [#30514]) ([input_boolean docs])
- Add venstar PIN to config and client initialization ([@csfreak] - [#30300]) ([venstar docs])
- Swiss Transport Data: Save delay on sensor ([@colinfrei] - [#30526]) ([swiss_public_transport docs])
- Update manifest.json: Typo fixed ([@casperklein] - [#30542]) ([default_config docs])
- Upgrade to use new version of HASS-nabucasa ([@balloob] - [#30506]) ([cloud docs])
- Correct names in manifests (M-P) ([@frenck] - [#30541])
- Bump adb-shell to 0.1.1 and androidtv to 0.0.38 ([@JeffLIrion] - [#30539]) ([androidtv docs])
- Catch UnicodeDecodeError exceptions in 'androidtv.adb_command' service ([@JeffLIrion] - [#30538]) ([androidtv docs])
- Remove `suppress_warning` from config options for vizio component ([@raman325] - [#30536]) ([vizio docs]) (breaking change)
- Use capability attributes in climate ([@balloob] - [#30544]) ([climate docs])
- Correct names in manifests (Q-S) ([@frenck] - [#30543])
- Update featured integrations screenshot in README ([@springstan] - [#30134])
- Correct names in manifests (T-Z) ([@frenck] - [#30546])
- Add TMB sensor ([@alemuro] - [#27964]) ([tmb docs]) (new-integration)
- Add reset_energy_counter service to Homematic IP Cloud ([@SukramJ] - [#30256]) ([homematicip_cloud docs])
- Add Integration Quality Scale to manifest ([@frenck] - [#30547])
- Ease code before adding color and temperature to light template ([@tetienne] - [#30455]) ([template docs])
- Entity Component to no longer generate automatic groups ([@balloob] - [#23789]) ([automation docs]) ([calendar docs]) ([cover docs]) ([device_tracker docs]) ([fan docs]) ([light docs]) ([lock docs]) ([plant docs]) ([remember_the_milk docs]) ([remote docs]) ([script docs]) ([switch docs]) ([vacuum docs]) (breaking change)
- Fix incorrect Rainmachine dict lookups ([@bachya] - [#30550]) ([rainmachine docs])
- Fix missing strings for deconz magic cube rotation support ([@FrengerH] - [#30552]) ([deconz docs])
- Fix hue flashing innr lights ([@InuSasha] - [#29828]) ([hue docs])
- Migrate Integration Quality Scale from docs to manifest: internal ([@frenck] - [#30551])
- Updated frontend to 20200107.0 ([@bramkragten] - [#30561]) ([frontend docs])
- Add command to delete lovelace config ([@bramkragten] - [#30558]) ([lovelace docs])
- Add android repo to issue template ([@dshokouhi] - [#30571])
- Bump pyRFXtrx to 0.25 ([@Ernst79] - [#30566]) ([rfxtrx docs]) (breaking change)
- deCONZ - Make sensors sorted on creation for deterministic order ([@Kane610] - [#30569]) ([deconz docs])
- deCONZ - Fix device automations ([@Kane610] - [#30577]) ([deconz docs])
- Trigger automation without skipping condition ([@Santobert] - [#28484]) ([automation docs])
- Use more consts for person implementation ([@Adminiuga] - [#30553]) ([person docs])
- Migrate Integration Quality Scale from docs to manifest ([@frenck] - [#30579])
- Add missing string for already_configured in Brother integration ([@bieniu] - [#30584]) ([brother docs])
- Bump adguardhome to 0.4.1 ([@frenck] - [#30586]) ([adguard docs])
- Add missing string for already_configured in GIOS integration ([@bieniu] - [#30590]) ([gios docs])
- evohome: allow two round thermostats per gateway ([@zxdavb] - [#30589]) ([evohome docs])
- Updated frontend to 20200108.0 ([@bramkragten] - [#30591]) ([frontend docs])
- Fix WLED transition time unit ([@frenck] - [#30583]) ([wled docs])
- Add Stookalert integration ([@fwestenberg] - [#30306]) ([stookalert docs]) (new-integration)
- The MFI Dimmer Switch model is missing from the list, causing the mfi Wall switches not to be recognized. ([@mohmacht] - [#30572]) ([mfi docs])
- Add last_online and level attribute to steam online ([@mfaraco] - [#30321]) ([steam_online docs])
- Fix upnp raw sensor state formatting when None ([@pnbruckner] - [#30444]) ([upnp docs]) (beta fix)
- Implement capability attributes ([@balloob] - [#30545]) ([fan docs]) ([media_player docs]) ([vacuum docs]) ([water_heater docs]) (beta fix)
- Add Ring config flow ([@balloob] - [#30564]) ([ring docs]) (breaking change) (beta fix)
- Fix problem with restoring POE control ([@Kane610] - [#30597]) ([unifi docs]) (beta fix)
- Set body size for Proxy / streams to 16mb ([@pvizeli] - [#30608]) ([http docs]) (beta fix)
- Bump Adafruit_BBIO to 1.1.1 ([@springstan] - [#30630]) ([bbb_gpio docs]) (beta fix)
- Do not save last_seen if older than prev_seen ([@pnbruckner] - [#30647]) ([life360 docs]) (beta fix)
- Fix HomeKit with entity registry restoration where supported_features is a non-None falsey ([@Jc2k] - [#30657]) ([homekit docs]) (beta fix)
- Fix ZHA temperature sensor restoration ([@Adminiuga] - [#30661]) ([zha docs]) (beta fix)
- Update ON/OFF condition and triggers to match documentation and UI, issue #30462 ([@davet2001] - [#30663]) ([binary_sensor docs]) (breaking change) (beta fix)
- Upgrade Ring to new version ([@balloob] - [#30666]) ([ring docs]) (beta fix)
- Fix Error with HomematicIP Cloud Cover ([@SukramJ] - [#30667]) ([homematicip_cloud docs]) (beta fix)
- Ring OTP improvement ([@balloob] - [#30688]) ([ring docs]) (beta fix)
- Log error when integration is missing platform setup ([@balloob] - [#30690]) (beta fix)
- Fix update person validation ([@balloob] - [#30691]) ([person docs]) (beta fix)
- Fix discovery for oauth2 flow implementations ([@frenck] - [#30700]) (beta fix)
- Revert "Forget auth token when going offline so we can reconnect (#26630)" ([@pnbruckner] - [#30705]) ([amcrest docs]) (beta fix)
- Fix Ring wifi sensors ([@balloob] - [#30735]) ([ring docs]) (beta fix)
- update aiopylgtv to 0.2.5 ([@bendavid] - [#30702]) ([webostv docs]) (beta fix)
- update aiopylgtv to 0.2.6 ([@bendavid] - [#30739]) ([webostv docs]) (beta fix)
- Bump ZHA quirks to 0.0.31 ([@dmulcahey] - [#30740]) ([zha docs]) (beta fix)
- Update Ring to 0.6.0 ([@balloob] - [#30748]) ([ring docs]) (beta fix)
- Set default locale for cloud Alexa config ([@balloob] - [#30749]) ([alexa docs]) ([cloud docs]) (beta fix)
- Bump teslajsonpy to 0.2.3 ([@alandtse] - [#30750]) ([tesla docs]) (beta fix)
- Update pyhomematic to 0.1.63 ([@danielperna84] - [#30594]) ([homematic docs]) (beta fix)
- Refactor HomeMatic / Fix issue with 0.104/dev ([@pvizeli] - [#30752]) ([homematic docs]) (beta fix)
- bump aiokef to 0.2.5 which uses locks ([@basnijholt] - [#30753]) ([kef docs]) (beta fix)
- Fix HomeKit behavior with lights supporting color and temperature ([@frenck] - [#30756]) ([homekit docs]) (beta fix)
- Revert #29701 ([@pvizeli] - [#30766]) ([zwave docs]) (beta fix)
- Refactor Ring data handling ([@balloob] - [#30777]) ([ring docs]) (beta fix)
- Restore unit_of_measurement from entity registry ([@Jc2k] - [#30780]) (beta fix)

[#23789]: https://github.com/home-assistant/home-assistant/pull/23789
[#24426]: https://github.com/home-assistant/home-assistant/pull/24426
[#25364]: https://github.com/home-assistant/home-assistant/pull/25364
[#26650]: https://github.com/home-assistant/home-assistant/pull/26650
[#27453]: https://github.com/home-assistant/home-assistant/pull/27453
[#27569]: https://github.com/home-assistant/home-assistant/pull/27569
[#27692]: https://github.com/home-assistant/home-assistant/pull/27692
[#27867]: https://github.com/home-assistant/home-assistant/pull/27867
[#27920]: https://github.com/home-assistant/home-assistant/pull/27920
[#27964]: https://github.com/home-assistant/home-assistant/pull/27964
[#28155]: https://github.com/home-assistant/home-assistant/pull/28155
[#28197]: https://github.com/home-assistant/home-assistant/pull/28197
[#28276]: https://github.com/home-assistant/home-assistant/pull/28276
[#28340]: https://github.com/home-assistant/home-assistant/pull/28340
[#28484]: https://github.com/home-assistant/home-assistant/pull/28484
[#28537]: https://github.com/home-assistant/home-assistant/pull/28537
[#28579]: https://github.com/home-assistant/home-assistant/pull/28579
[#28652]: https://github.com/home-assistant/home-assistant/pull/28652
[#28671]: https://github.com/home-assistant/home-assistant/pull/28671
[#28719]: https://github.com/home-assistant/home-assistant/pull/28719
[#28744]: https://github.com/home-assistant/home-assistant/pull/28744
[#28837]: https://github.com/home-assistant/home-assistant/pull/28837
[#28959]: https://github.com/home-assistant/home-assistant/pull/28959
[#28968]: https://github.com/home-assistant/home-assistant/pull/28968
[#28975]: https://github.com/home-assistant/home-assistant/pull/28975
[#29223]: https://github.com/home-assistant/home-assistant/pull/29223
[#29244]: https://github.com/home-assistant/home-assistant/pull/29244
[#29246]: https://github.com/home-assistant/home-assistant/pull/29246
[#29295]: https://github.com/home-assistant/home-assistant/pull/29295
[#29296]: https://github.com/home-assistant/home-assistant/pull/29296
[#29374]: https://github.com/home-assistant/home-assistant/pull/29374
[#29377]: https://github.com/home-assistant/home-assistant/pull/29377
[#29379]: https://github.com/home-assistant/home-assistant/pull/29379
[#29439]: https://github.com/home-assistant/home-assistant/pull/29439
[#29465]: https://github.com/home-assistant/home-assistant/pull/29465
[#29485]: https://github.com/home-assistant/home-assistant/pull/29485
[#29487]: https://github.com/home-assistant/home-assistant/pull/29487
[#29494]: https://github.com/home-assistant/home-assistant/pull/29494
[#29497]: https://github.com/home-assistant/home-assistant/pull/29497
[#29498]: https://github.com/home-assistant/home-assistant/pull/29498
[#29499]: https://github.com/home-assistant/home-assistant/pull/29499
[#29500]: https://github.com/home-assistant/home-assistant/pull/29500
[#29501]: https://github.com/home-assistant/home-assistant/pull/29501
[#29504]: https://github.com/home-assistant/home-assistant/pull/29504
[#29506]: https://github.com/home-assistant/home-assistant/pull/29506
[#29507]: https://github.com/home-assistant/home-assistant/pull/29507
[#29508]: https://github.com/home-assistant/home-assistant/pull/29508
[#29509]: https://github.com/home-assistant/home-assistant/pull/29509
[#29510]: https://github.com/home-assistant/home-assistant/pull/29510
[#29511]: https://github.com/home-assistant/home-assistant/pull/29511
[#29513]: https://github.com/home-assistant/home-assistant/pull/29513
[#29514]: https://github.com/home-assistant/home-assistant/pull/29514
[#29515]: https://github.com/home-assistant/home-assistant/pull/29515
[#29516]: https://github.com/home-assistant/home-assistant/pull/29516
[#29517]: https://github.com/home-assistant/home-assistant/pull/29517
[#29518]: https://github.com/home-assistant/home-assistant/pull/29518
[#29520]: https://github.com/home-assistant/home-assistant/pull/29520
[#29523]: https://github.com/home-assistant/home-assistant/pull/29523
[#29525]: https://github.com/home-assistant/home-assistant/pull/29525
[#29527]: https://github.com/home-assistant/home-assistant/pull/29527
[#29530]: https://github.com/home-assistant/home-assistant/pull/29530
[#29534]: https://github.com/home-assistant/home-assistant/pull/29534
[#29535]: https://github.com/home-assistant/home-assistant/pull/29535
[#29537]: https://github.com/home-assistant/home-assistant/pull/29537
[#29538]: https://github.com/home-assistant/home-assistant/pull/29538
[#29539]: https://github.com/home-assistant/home-assistant/pull/29539
[#29540]: https://github.com/home-assistant/home-assistant/pull/29540
[#29541]: https://github.com/home-assistant/home-assistant/pull/29541
[#29542]: https://github.com/home-assistant/home-assistant/pull/29542
[#29543]: https://github.com/home-assistant/home-assistant/pull/29543
[#29544]: https://github.com/home-assistant/home-assistant/pull/29544
[#29545]: https://github.com/home-assistant/home-assistant/pull/29545
[#29546]: https://github.com/home-assistant/home-assistant/pull/29546
[#29547]: https://github.com/home-assistant/home-assistant/pull/29547
[#29548]: https://github.com/home-assistant/home-assistant/pull/29548
[#29550]: https://github.com/home-assistant/home-assistant/pull/29550
[#29552]: https://github.com/home-assistant/home-assistant/pull/29552
[#29553]: https://github.com/home-assistant/home-assistant/pull/29553
[#29555]: https://github.com/home-assistant/home-assistant/pull/29555
[#29556]: https://github.com/home-assistant/home-assistant/pull/29556
[#29557]: https://github.com/home-assistant/home-assistant/pull/29557
[#29558]: https://github.com/home-assistant/home-assistant/pull/29558
[#29560]: https://github.com/home-assistant/home-assistant/pull/29560
[#29561]: https://github.com/home-assistant/home-assistant/pull/29561
[#29562]: https://github.com/home-assistant/home-assistant/pull/29562
[#29564]: https://github.com/home-assistant/home-assistant/pull/29564
[#29566]: https://github.com/home-assistant/home-assistant/pull/29566
[#29571]: https://github.com/home-assistant/home-assistant/pull/29571
[#29573]: https://github.com/home-assistant/home-assistant/pull/29573
[#29575]: https://github.com/home-assistant/home-assistant/pull/29575
[#29579]: https://github.com/home-assistant/home-assistant/pull/29579
[#29581]: https://github.com/home-assistant/home-assistant/pull/29581
[#29582]: https://github.com/home-assistant/home-assistant/pull/29582
[#29584]: https://github.com/home-assistant/home-assistant/pull/29584
[#29586]: https://github.com/home-assistant/home-assistant/pull/29586
[#29592]: https://github.com/home-assistant/home-assistant/pull/29592
[#29594]: https://github.com/home-assistant/home-assistant/pull/29594
[#29597]: https://github.com/home-assistant/home-assistant/pull/29597
[#29598]: https://github.com/home-assistant/home-assistant/pull/29598
[#29601]: https://github.com/home-assistant/home-assistant/pull/29601
[#29607]: https://github.com/home-assistant/home-assistant/pull/29607
[#29608]: https://github.com/home-assistant/home-assistant/pull/29608
[#29609]: https://github.com/home-assistant/home-assistant/pull/29609
[#29610]: https://github.com/home-assistant/home-assistant/pull/29610
[#29611]: https://github.com/home-assistant/home-assistant/pull/29611
[#29612]: https://github.com/home-assistant/home-assistant/pull/29612
[#29613]: https://github.com/home-assistant/home-assistant/pull/29613
[#29614]: https://github.com/home-assistant/home-assistant/pull/29614
[#29615]: https://github.com/home-assistant/home-assistant/pull/29615
[#29616]: https://github.com/home-assistant/home-assistant/pull/29616
[#29617]: https://github.com/home-assistant/home-assistant/pull/29617
[#29618]: https://github.com/home-assistant/home-assistant/pull/29618
[#29619]: https://github.com/home-assistant/home-assistant/pull/29619
[#29620]: https://github.com/home-assistant/home-assistant/pull/29620
[#29621]: https://github.com/home-assistant/home-assistant/pull/29621
[#29622]: https://github.com/home-assistant/home-assistant/pull/29622
[#29623]: https://github.com/home-assistant/home-assistant/pull/29623
[#29624]: https://github.com/home-assistant/home-assistant/pull/29624
[#29625]: https://github.com/home-assistant/home-assistant/pull/29625
[#29626]: https://github.com/home-assistant/home-assistant/pull/29626
[#29627]: https://github.com/home-assistant/home-assistant/pull/29627
[#29628]: https://github.com/home-assistant/home-assistant/pull/29628
[#29629]: https://github.com/home-assistant/home-assistant/pull/29629
[#29630]: https://github.com/home-assistant/home-assistant/pull/29630
[#29631]: https://github.com/home-assistant/home-assistant/pull/29631
[#29632]: https://github.com/home-assistant/home-assistant/pull/29632
[#29633]: https://github.com/home-assistant/home-assistant/pull/29633
[#29634]: https://github.com/home-assistant/home-assistant/pull/29634
[#29635]: https://github.com/home-assistant/home-assistant/pull/29635
[#29638]: https://github.com/home-assistant/home-assistant/pull/29638
[#29641]: https://github.com/home-assistant/home-assistant/pull/29641
[#29644]: https://github.com/home-assistant/home-assistant/pull/29644
[#29645]: https://github.com/home-assistant/home-assistant/pull/29645
[#29646]: https://github.com/home-assistant/home-assistant/pull/29646
[#29647]: https://github.com/home-assistant/home-assistant/pull/29647
[#29648]: https://github.com/home-assistant/home-assistant/pull/29648
[#29649]: https://github.com/home-assistant/home-assistant/pull/29649
[#29650]: https://github.com/home-assistant/home-assistant/pull/29650
[#29651]: https://github.com/home-assistant/home-assistant/pull/29651
[#29652]: https://github.com/home-assistant/home-assistant/pull/29652
[#29653]: https://github.com/home-assistant/home-assistant/pull/29653
[#29654]: https://github.com/home-assistant/home-assistant/pull/29654
[#29655]: https://github.com/home-assistant/home-assistant/pull/29655
[#29656]: https://github.com/home-assistant/home-assistant/pull/29656
[#29657]: https://github.com/home-assistant/home-assistant/pull/29657
[#29658]: https://github.com/home-assistant/home-assistant/pull/29658
[#29659]: https://github.com/home-assistant/home-assistant/pull/29659
[#29660]: https://github.com/home-assistant/home-assistant/pull/29660
[#29662]: https://github.com/home-assistant/home-assistant/pull/29662
[#29663]: https://github.com/home-assistant/home-assistant/pull/29663
[#29664]: https://github.com/home-assistant/home-assistant/pull/29664
[#29665]: https://github.com/home-assistant/home-assistant/pull/29665
[#29666]: https://github.com/home-assistant/home-assistant/pull/29666
[#29667]: https://github.com/home-assistant/home-assistant/pull/29667
[#29668]: https://github.com/home-assistant/home-assistant/pull/29668
[#29669]: https://github.com/home-assistant/home-assistant/pull/29669
[#29670]: https://github.com/home-assistant/home-assistant/pull/29670
[#29671]: https://github.com/home-assistant/home-assistant/pull/29671
[#29672]: https://github.com/home-assistant/home-assistant/pull/29672
[#29673]: https://github.com/home-assistant/home-assistant/pull/29673
[#29674]: https://github.com/home-assistant/home-assistant/pull/29674
[#29675]: https://github.com/home-assistant/home-assistant/pull/29675
[#29676]: https://github.com/home-assistant/home-assistant/pull/29676
[#29677]: https://github.com/home-assistant/home-assistant/pull/29677
[#29678]: https://github.com/home-assistant/home-assistant/pull/29678
[#29679]: https://github.com/home-assistant/home-assistant/pull/29679
[#29680]: https://github.com/home-assistant/home-assistant/pull/29680
[#29681]: https://github.com/home-assistant/home-assistant/pull/29681
[#29682]: https://github.com/home-assistant/home-assistant/pull/29682
[#29683]: https://github.com/home-assistant/home-assistant/pull/29683
[#29684]: https://github.com/home-assistant/home-assistant/pull/29684
[#29685]: https://github.com/home-assistant/home-assistant/pull/29685
[#29687]: https://github.com/home-assistant/home-assistant/pull/29687
[#29688]: https://github.com/home-assistant/home-assistant/pull/29688
[#29689]: https://github.com/home-assistant/home-assistant/pull/29689
[#29690]: https://github.com/home-assistant/home-assistant/pull/29690
[#29691]: https://github.com/home-assistant/home-assistant/pull/29691
[#29692]: https://github.com/home-assistant/home-assistant/pull/29692
[#29693]: https://github.com/home-assistant/home-assistant/pull/29693
[#29694]: https://github.com/home-assistant/home-assistant/pull/29694
[#29695]: https://github.com/home-assistant/home-assistant/pull/29695
[#29696]: https://github.com/home-assistant/home-assistant/pull/29696
[#29697]: https://github.com/home-assistant/home-assistant/pull/29697
[#29698]: https://github.com/home-assistant/home-assistant/pull/29698
[#29699]: https://github.com/home-assistant/home-assistant/pull/29699
[#29701]: https://github.com/home-assistant/home-assistant/pull/29701
[#29702]: https://github.com/home-assistant/home-assistant/pull/29702
[#29703]: https://github.com/home-assistant/home-assistant/pull/29703
[#29704]: https://github.com/home-assistant/home-assistant/pull/29704
[#29705]: https://github.com/home-assistant/home-assistant/pull/29705
[#29706]: https://github.com/home-assistant/home-assistant/pull/29706
[#29707]: https://github.com/home-assistant/home-assistant/pull/29707
[#29708]: https://github.com/home-assistant/home-assistant/pull/29708
[#29709]: https://github.com/home-assistant/home-assistant/pull/29709
[#29710]: https://github.com/home-assistant/home-assistant/pull/29710
[#29711]: https://github.com/home-assistant/home-assistant/pull/29711
[#29712]: https://github.com/home-assistant/home-assistant/pull/29712
[#29713]: https://github.com/home-assistant/home-assistant/pull/29713
[#29714]: https://github.com/home-assistant/home-assistant/pull/29714
[#29715]: https://github.com/home-assistant/home-assistant/pull/29715
[#29716]: https://github.com/home-assistant/home-assistant/pull/29716
[#29717]: https://github.com/home-assistant/home-assistant/pull/29717
[#29718]: https://github.com/home-assistant/home-assistant/pull/29718
[#29719]: https://github.com/home-assistant/home-assistant/pull/29719
[#29720]: https://github.com/home-assistant/home-assistant/pull/29720
[#29721]: https://github.com/home-assistant/home-assistant/pull/29721
[#29722]: https://github.com/home-assistant/home-assistant/pull/29722
[#29723]: https://github.com/home-assistant/home-assistant/pull/29723
[#29724]: https://github.com/home-assistant/home-assistant/pull/29724
[#29725]: https://github.com/home-assistant/home-assistant/pull/29725
[#29726]: https://github.com/home-assistant/home-assistant/pull/29726
[#29736]: https://github.com/home-assistant/home-assistant/pull/29736
[#29738]: https://github.com/home-assistant/home-assistant/pull/29738
[#29739]: https://github.com/home-assistant/home-assistant/pull/29739
[#29745]: https://github.com/home-assistant/home-assistant/pull/29745
[#29747]: https://github.com/home-assistant/home-assistant/pull/29747
[#29748]: https://github.com/home-assistant/home-assistant/pull/29748
[#29749]: https://github.com/home-assistant/home-assistant/pull/29749
[#29750]: https://github.com/home-assistant/home-assistant/pull/29750
[#29751]: https://github.com/home-assistant/home-assistant/pull/29751
[#29752]: https://github.com/home-assistant/home-assistant/pull/29752
[#29753]: https://github.com/home-assistant/home-assistant/pull/29753
[#29754]: https://github.com/home-assistant/home-assistant/pull/29754
[#29755]: https://github.com/home-assistant/home-assistant/pull/29755
[#29756]: https://github.com/home-assistant/home-assistant/pull/29756
[#29757]: https://github.com/home-assistant/home-assistant/pull/29757
[#29758]: https://github.com/home-assistant/home-assistant/pull/29758
[#29759]: https://github.com/home-assistant/home-assistant/pull/29759
[#29760]: https://github.com/home-assistant/home-assistant/pull/29760
[#29761]: https://github.com/home-assistant/home-assistant/pull/29761
[#29762]: https://github.com/home-assistant/home-assistant/pull/29762
[#29763]: https://github.com/home-assistant/home-assistant/pull/29763
[#29764]: https://github.com/home-assistant/home-assistant/pull/29764
[#29765]: https://github.com/home-assistant/home-assistant/pull/29765
[#29766]: https://github.com/home-assistant/home-assistant/pull/29766
[#29767]: https://github.com/home-assistant/home-assistant/pull/29767
[#29768]: https://github.com/home-assistant/home-assistant/pull/29768
[#29769]: https://github.com/home-assistant/home-assistant/pull/29769
[#29770]: https://github.com/home-assistant/home-assistant/pull/29770
[#29771]: https://github.com/home-assistant/home-assistant/pull/29771
[#29772]: https://github.com/home-assistant/home-assistant/pull/29772
[#29773]: https://github.com/home-assistant/home-assistant/pull/29773
[#29774]: https://github.com/home-assistant/home-assistant/pull/29774
[#29775]: https://github.com/home-assistant/home-assistant/pull/29775
[#29776]: https://github.com/home-assistant/home-assistant/pull/29776
[#29777]: https://github.com/home-assistant/home-assistant/pull/29777
[#29778]: https://github.com/home-assistant/home-assistant/pull/29778
[#29779]: https://github.com/home-assistant/home-assistant/pull/29779
[#29780]: https://github.com/home-assistant/home-assistant/pull/29780
[#29781]: https://github.com/home-assistant/home-assistant/pull/29781
[#29782]: https://github.com/home-assistant/home-assistant/pull/29782
[#29783]: https://github.com/home-assistant/home-assistant/pull/29783
[#29784]: https://github.com/home-assistant/home-assistant/pull/29784
[#29785]: https://github.com/home-assistant/home-assistant/pull/29785
[#29788]: https://github.com/home-assistant/home-assistant/pull/29788
[#29789]: https://github.com/home-assistant/home-assistant/pull/29789
[#29790]: https://github.com/home-assistant/home-assistant/pull/29790
[#29791]: https://github.com/home-assistant/home-assistant/pull/29791
[#29792]: https://github.com/home-assistant/home-assistant/pull/29792
[#29795]: https://github.com/home-assistant/home-assistant/pull/29795
[#29797]: https://github.com/home-assistant/home-assistant/pull/29797
[#29798]: https://github.com/home-assistant/home-assistant/pull/29798
[#29799]: https://github.com/home-assistant/home-assistant/pull/29799
[#29801]: https://github.com/home-assistant/home-assistant/pull/29801
[#29802]: https://github.com/home-assistant/home-assistant/pull/29802
[#29803]: https://github.com/home-assistant/home-assistant/pull/29803
[#29805]: https://github.com/home-assistant/home-assistant/pull/29805
[#29806]: https://github.com/home-assistant/home-assistant/pull/29806
[#29808]: https://github.com/home-assistant/home-assistant/pull/29808
[#29811]: https://github.com/home-assistant/home-assistant/pull/29811
[#29818]: https://github.com/home-assistant/home-assistant/pull/29818
[#29828]: https://github.com/home-assistant/home-assistant/pull/29828
[#29829]: https://github.com/home-assistant/home-assistant/pull/29829
[#29830]: https://github.com/home-assistant/home-assistant/pull/29830
[#29836]: https://github.com/home-assistant/home-assistant/pull/29836
[#29840]: https://github.com/home-assistant/home-assistant/pull/29840
[#29842]: https://github.com/home-assistant/home-assistant/pull/29842
[#29860]: https://github.com/home-assistant/home-assistant/pull/29860
[#29861]: https://github.com/home-assistant/home-assistant/pull/29861
[#29874]: https://github.com/home-assistant/home-assistant/pull/29874
[#29878]: https://github.com/home-assistant/home-assistant/pull/29878
[#29882]: https://github.com/home-assistant/home-assistant/pull/29882
[#29888]: https://github.com/home-assistant/home-assistant/pull/29888
[#29890]: https://github.com/home-assistant/home-assistant/pull/29890
[#29900]: https://github.com/home-assistant/home-assistant/pull/29900
[#29903]: https://github.com/home-assistant/home-assistant/pull/29903
[#29906]: https://github.com/home-assistant/home-assistant/pull/29906
[#29910]: https://github.com/home-assistant/home-assistant/pull/29910
[#29911]: https://github.com/home-assistant/home-assistant/pull/29911
[#29912]: https://github.com/home-assistant/home-assistant/pull/29912
[#29914]: https://github.com/home-assistant/home-assistant/pull/29914
[#29917]: https://github.com/home-assistant/home-assistant/pull/29917
[#29918]: https://github.com/home-assistant/home-assistant/pull/29918
[#29932]: https://github.com/home-assistant/home-assistant/pull/29932
[#29938]: https://github.com/home-assistant/home-assistant/pull/29938
[#29948]: https://github.com/home-assistant/home-assistant/pull/29948
[#29953]: https://github.com/home-assistant/home-assistant/pull/29953
[#29954]: https://github.com/home-assistant/home-assistant/pull/29954
[#29959]: https://github.com/home-assistant/home-assistant/pull/29959
[#29960]: https://github.com/home-assistant/home-assistant/pull/29960
[#29965]: https://github.com/home-assistant/home-assistant/pull/29965
[#29966]: https://github.com/home-assistant/home-assistant/pull/29966
[#29968]: https://github.com/home-assistant/home-assistant/pull/29968
[#29969]: https://github.com/home-assistant/home-assistant/pull/29969
[#29972]: https://github.com/home-assistant/home-assistant/pull/29972
[#29973]: https://github.com/home-assistant/home-assistant/pull/29973
[#29977]: https://github.com/home-assistant/home-assistant/pull/29977
[#29978]: https://github.com/home-assistant/home-assistant/pull/29978
[#29979]: https://github.com/home-assistant/home-assistant/pull/29979
[#29984]: https://github.com/home-assistant/home-assistant/pull/29984
[#29989]: https://github.com/home-assistant/home-assistant/pull/29989
[#29990]: https://github.com/home-assistant/home-assistant/pull/29990
[#29991]: https://github.com/home-assistant/home-assistant/pull/29991
[#29995]: https://github.com/home-assistant/home-assistant/pull/29995
[#30000]: https://github.com/home-assistant/home-assistant/pull/30000
[#30002]: https://github.com/home-assistant/home-assistant/pull/30002
[#30005]: https://github.com/home-assistant/home-assistant/pull/30005
[#30008]: https://github.com/home-assistant/home-assistant/pull/30008
[#30011]: https://github.com/home-assistant/home-assistant/pull/30011
[#30015]: https://github.com/home-assistant/home-assistant/pull/30015
[#30027]: https://github.com/home-assistant/home-assistant/pull/30027
[#30028]: https://github.com/home-assistant/home-assistant/pull/30028
[#30030]: https://github.com/home-assistant/home-assistant/pull/30030
[#30034]: https://github.com/home-assistant/home-assistant/pull/30034
[#30035]: https://github.com/home-assistant/home-assistant/pull/30035
[#30037]: https://github.com/home-assistant/home-assistant/pull/30037
[#30053]: https://github.com/home-assistant/home-assistant/pull/30053
[#30057]: https://github.com/home-assistant/home-assistant/pull/30057
[#30059]: https://github.com/home-assistant/home-assistant/pull/30059
[#30068]: https://github.com/home-assistant/home-assistant/pull/30068
[#30077]: https://github.com/home-assistant/home-assistant/pull/30077
[#30082]: https://github.com/home-assistant/home-assistant/pull/30082
[#30083]: https://github.com/home-assistant/home-assistant/pull/30083
[#30086]: https://github.com/home-assistant/home-assistant/pull/30086
[#30090]: https://github.com/home-assistant/home-assistant/pull/30090
[#30093]: https://github.com/home-assistant/home-assistant/pull/30093
[#30094]: https://github.com/home-assistant/home-assistant/pull/30094
[#30097]: https://github.com/home-assistant/home-assistant/pull/30097
[#30099]: https://github.com/home-assistant/home-assistant/pull/30099
[#30100]: https://github.com/home-assistant/home-assistant/pull/30100
[#30101]: https://github.com/home-assistant/home-assistant/pull/30101
[#30104]: https://github.com/home-assistant/home-assistant/pull/30104
[#30106]: https://github.com/home-assistant/home-assistant/pull/30106
[#30107]: https://github.com/home-assistant/home-assistant/pull/30107
[#30108]: https://github.com/home-assistant/home-assistant/pull/30108
[#30110]: https://github.com/home-assistant/home-assistant/pull/30110
[#30122]: https://github.com/home-assistant/home-assistant/pull/30122
[#30123]: https://github.com/home-assistant/home-assistant/pull/30123
[#30125]: https://github.com/home-assistant/home-assistant/pull/30125
[#30130]: https://github.com/home-assistant/home-assistant/pull/30130
[#30131]: https://github.com/home-assistant/home-assistant/pull/30131
[#30132]: https://github.com/home-assistant/home-assistant/pull/30132
[#30133]: https://github.com/home-assistant/home-assistant/pull/30133
[#30134]: https://github.com/home-assistant/home-assistant/pull/30134
[#30135]: https://github.com/home-assistant/home-assistant/pull/30135
[#30138]: https://github.com/home-assistant/home-assistant/pull/30138
[#30139]: https://github.com/home-assistant/home-assistant/pull/30139
[#30140]: https://github.com/home-assistant/home-assistant/pull/30140
[#30142]: https://github.com/home-assistant/home-assistant/pull/30142
[#30144]: https://github.com/home-assistant/home-assistant/pull/30144
[#30145]: https://github.com/home-assistant/home-assistant/pull/30145
[#30149]: https://github.com/home-assistant/home-assistant/pull/30149
[#30158]: https://github.com/home-assistant/home-assistant/pull/30158
[#30159]: https://github.com/home-assistant/home-assistant/pull/30159
[#30170]: https://github.com/home-assistant/home-assistant/pull/30170
[#30171]: https://github.com/home-assistant/home-assistant/pull/30171
[#30172]: https://github.com/home-assistant/home-assistant/pull/30172
[#30178]: https://github.com/home-assistant/home-assistant/pull/30178
[#30179]: https://github.com/home-assistant/home-assistant/pull/30179
[#30183]: https://github.com/home-assistant/home-assistant/pull/30183
[#30185]: https://github.com/home-assistant/home-assistant/pull/30185
[#30187]: https://github.com/home-assistant/home-assistant/pull/30187
[#30191]: https://github.com/home-assistant/home-assistant/pull/30191
[#30196]: https://github.com/home-assistant/home-assistant/pull/30196
[#30203]: https://github.com/home-assistant/home-assistant/pull/30203
[#30206]: https://github.com/home-assistant/home-assistant/pull/30206
[#30207]: https://github.com/home-assistant/home-assistant/pull/30207
[#30208]: https://github.com/home-assistant/home-assistant/pull/30208
[#30213]: https://github.com/home-assistant/home-assistant/pull/30213
[#30214]: https://github.com/home-assistant/home-assistant/pull/30214
[#30217]: https://github.com/home-assistant/home-assistant/pull/30217
[#30223]: https://github.com/home-assistant/home-assistant/pull/30223
[#30225]: https://github.com/home-assistant/home-assistant/pull/30225
[#30226]: https://github.com/home-assistant/home-assistant/pull/30226
[#30228]: https://github.com/home-assistant/home-assistant/pull/30228
[#30234]: https://github.com/home-assistant/home-assistant/pull/30234
[#30237]: https://github.com/home-assistant/home-assistant/pull/30237
[#30239]: https://github.com/home-assistant/home-assistant/pull/30239
[#30240]: https://github.com/home-assistant/home-assistant/pull/30240
[#30247]: https://github.com/home-assistant/home-assistant/pull/30247
[#30249]: https://github.com/home-assistant/home-assistant/pull/30249
[#30250]: https://github.com/home-assistant/home-assistant/pull/30250
[#30254]: https://github.com/home-assistant/home-assistant/pull/30254
[#30255]: https://github.com/home-assistant/home-assistant/pull/30255
[#30256]: https://github.com/home-assistant/home-assistant/pull/30256
[#30257]: https://github.com/home-assistant/home-assistant/pull/30257
[#30259]: https://github.com/home-assistant/home-assistant/pull/30259
[#30261]: https://github.com/home-assistant/home-assistant/pull/30261
[#30268]: https://github.com/home-assistant/home-assistant/pull/30268
[#30269]: https://github.com/home-assistant/home-assistant/pull/30269
[#30270]: https://github.com/home-assistant/home-assistant/pull/30270
[#30273]: https://github.com/home-assistant/home-assistant/pull/30273
[#30274]: https://github.com/home-assistant/home-assistant/pull/30274
[#30279]: https://github.com/home-assistant/home-assistant/pull/30279
[#30280]: https://github.com/home-assistant/home-assistant/pull/30280
[#30285]: https://github.com/home-assistant/home-assistant/pull/30285
[#30286]: https://github.com/home-assistant/home-assistant/pull/30286
[#30287]: https://github.com/home-assistant/home-assistant/pull/30287
[#30288]: https://github.com/home-assistant/home-assistant/pull/30288
[#30297]: https://github.com/home-assistant/home-assistant/pull/30297
[#30300]: https://github.com/home-assistant/home-assistant/pull/30300
[#30301]: https://github.com/home-assistant/home-assistant/pull/30301
[#30303]: https://github.com/home-assistant/home-assistant/pull/30303
[#30305]: https://github.com/home-assistant/home-assistant/pull/30305
[#30306]: https://github.com/home-assistant/home-assistant/pull/30306
[#30308]: https://github.com/home-assistant/home-assistant/pull/30308
[#30309]: https://github.com/home-assistant/home-assistant/pull/30309
[#30310]: https://github.com/home-assistant/home-assistant/pull/30310
[#30313]: https://github.com/home-assistant/home-assistant/pull/30313
[#30315]: https://github.com/home-assistant/home-assistant/pull/30315
[#30317]: https://github.com/home-assistant/home-assistant/pull/30317
[#30318]: https://github.com/home-assistant/home-assistant/pull/30318
[#30319]: https://github.com/home-assistant/home-assistant/pull/30319
[#30320]: https://github.com/home-assistant/home-assistant/pull/30320
[#30321]: https://github.com/home-assistant/home-assistant/pull/30321
[#30323]: https://github.com/home-assistant/home-assistant/pull/30323
[#30325]: https://github.com/home-assistant/home-assistant/pull/30325
[#30326]: https://github.com/home-assistant/home-assistant/pull/30326
[#30327]: https://github.com/home-assistant/home-assistant/pull/30327
[#30329]: https://github.com/home-assistant/home-assistant/pull/30329
[#30330]: https://github.com/home-assistant/home-assistant/pull/30330
[#30331]: https://github.com/home-assistant/home-assistant/pull/30331
[#30332]: https://github.com/home-assistant/home-assistant/pull/30332
[#30333]: https://github.com/home-assistant/home-assistant/pull/30333
[#30335]: https://github.com/home-assistant/home-assistant/pull/30335
[#30336]: https://github.com/home-assistant/home-assistant/pull/30336
[#30338]: https://github.com/home-assistant/home-assistant/pull/30338
[#30341]: https://github.com/home-assistant/home-assistant/pull/30341
[#30342]: https://github.com/home-assistant/home-assistant/pull/30342
[#30347]: https://github.com/home-assistant/home-assistant/pull/30347
[#30348]: https://github.com/home-assistant/home-assistant/pull/30348
[#30350]: https://github.com/home-assistant/home-assistant/pull/30350
[#30351]: https://github.com/home-assistant/home-assistant/pull/30351
[#30352]: https://github.com/home-assistant/home-assistant/pull/30352
[#30353]: https://github.com/home-assistant/home-assistant/pull/30353
[#30354]: https://github.com/home-assistant/home-assistant/pull/30354
[#30355]: https://github.com/home-assistant/home-assistant/pull/30355
[#30358]: https://github.com/home-assistant/home-assistant/pull/30358
[#30359]: https://github.com/home-assistant/home-assistant/pull/30359
[#30360]: https://github.com/home-assistant/home-assistant/pull/30360
[#30361]: https://github.com/home-assistant/home-assistant/pull/30361
[#30363]: https://github.com/home-assistant/home-assistant/pull/30363
[#30364]: https://github.com/home-assistant/home-assistant/pull/30364
[#30365]: https://github.com/home-assistant/home-assistant/pull/30365
[#30366]: https://github.com/home-assistant/home-assistant/pull/30366
[#30368]: https://github.com/home-assistant/home-assistant/pull/30368
[#30369]: https://github.com/home-assistant/home-assistant/pull/30369
[#30370]: https://github.com/home-assistant/home-assistant/pull/30370
[#30371]: https://github.com/home-assistant/home-assistant/pull/30371
[#30372]: https://github.com/home-assistant/home-assistant/pull/30372
[#30374]: https://github.com/home-assistant/home-assistant/pull/30374
[#30375]: https://github.com/home-assistant/home-assistant/pull/30375
[#30376]: https://github.com/home-assistant/home-assistant/pull/30376
[#30377]: https://github.com/home-assistant/home-assistant/pull/30377
[#30379]: https://github.com/home-assistant/home-assistant/pull/30379
[#30386]: https://github.com/home-assistant/home-assistant/pull/30386
[#30387]: https://github.com/home-assistant/home-assistant/pull/30387
[#30388]: https://github.com/home-assistant/home-assistant/pull/30388
[#30389]: https://github.com/home-assistant/home-assistant/pull/30389
[#30390]: https://github.com/home-assistant/home-assistant/pull/30390
[#30391]: https://github.com/home-assistant/home-assistant/pull/30391
[#30392]: https://github.com/home-assistant/home-assistant/pull/30392
[#30397]: https://github.com/home-assistant/home-assistant/pull/30397
[#30402]: https://github.com/home-assistant/home-assistant/pull/30402
[#30403]: https://github.com/home-assistant/home-assistant/pull/30403
[#30405]: https://github.com/home-assistant/home-assistant/pull/30405
[#30406]: https://github.com/home-assistant/home-assistant/pull/30406
[#30411]: https://github.com/home-assistant/home-assistant/pull/30411
[#30415]: https://github.com/home-assistant/home-assistant/pull/30415
[#30416]: https://github.com/home-assistant/home-assistant/pull/30416
[#30418]: https://github.com/home-assistant/home-assistant/pull/30418
[#30421]: https://github.com/home-assistant/home-assistant/pull/30421
[#30422]: https://github.com/home-assistant/home-assistant/pull/30422
[#30423]: https://github.com/home-assistant/home-assistant/pull/30423
[#30428]: https://github.com/home-assistant/home-assistant/pull/30428
[#30429]: https://github.com/home-assistant/home-assistant/pull/30429
[#30430]: https://github.com/home-assistant/home-assistant/pull/30430
[#30432]: https://github.com/home-assistant/home-assistant/pull/30432
[#30433]: https://github.com/home-assistant/home-assistant/pull/30433
[#30435]: https://github.com/home-assistant/home-assistant/pull/30435
[#30437]: https://github.com/home-assistant/home-assistant/pull/30437
[#30438]: https://github.com/home-assistant/home-assistant/pull/30438
[#30439]: https://github.com/home-assistant/home-assistant/pull/30439
[#30440]: https://github.com/home-assistant/home-assistant/pull/30440
[#30442]: https://github.com/home-assistant/home-assistant/pull/30442
[#30444]: https://github.com/home-assistant/home-assistant/pull/30444
[#30445]: https://github.com/home-assistant/home-assistant/pull/30445
[#30451]: https://github.com/home-assistant/home-assistant/pull/30451
[#30453]: https://github.com/home-assistant/home-assistant/pull/30453
[#30454]: https://github.com/home-assistant/home-assistant/pull/30454
[#30455]: https://github.com/home-assistant/home-assistant/pull/30455
[#30457]: https://github.com/home-assistant/home-assistant/pull/30457
[#30458]: https://github.com/home-assistant/home-assistant/pull/30458
[#30460]: https://github.com/home-assistant/home-assistant/pull/30460
[#30461]: https://github.com/home-assistant/home-assistant/pull/30461
[#30463]: https://github.com/home-assistant/home-assistant/pull/30463
[#30467]: https://github.com/home-assistant/home-assistant/pull/30467
[#30469]: https://github.com/home-assistant/home-assistant/pull/30469
[#30471]: https://github.com/home-assistant/home-assistant/pull/30471
[#30472]: https://github.com/home-assistant/home-assistant/pull/30472
[#30474]: https://github.com/home-assistant/home-assistant/pull/30474
[#30475]: https://github.com/home-assistant/home-assistant/pull/30475
[#30477]: https://github.com/home-assistant/home-assistant/pull/30477
[#30478]: https://github.com/home-assistant/home-assistant/pull/30478
[#30480]: https://github.com/home-assistant/home-assistant/pull/30480
[#30483]: https://github.com/home-assistant/home-assistant/pull/30483
[#30485]: https://github.com/home-assistant/home-assistant/pull/30485
[#30486]: https://github.com/home-assistant/home-assistant/pull/30486
[#30490]: https://github.com/home-assistant/home-assistant/pull/30490
[#30493]: https://github.com/home-assistant/home-assistant/pull/30493
[#30496]: https://github.com/home-assistant/home-assistant/pull/30496
[#30497]: https://github.com/home-assistant/home-assistant/pull/30497
[#30500]: https://github.com/home-assistant/home-assistant/pull/30500
[#30501]: https://github.com/home-assistant/home-assistant/pull/30501
[#30503]: https://github.com/home-assistant/home-assistant/pull/30503
[#30504]: https://github.com/home-assistant/home-assistant/pull/30504
[#30506]: https://github.com/home-assistant/home-assistant/pull/30506
[#30510]: https://github.com/home-assistant/home-assistant/pull/30510
[#30512]: https://github.com/home-assistant/home-assistant/pull/30512
[#30514]: https://github.com/home-assistant/home-assistant/pull/30514
[#30516]: https://github.com/home-assistant/home-assistant/pull/30516
[#30521]: https://github.com/home-assistant/home-assistant/pull/30521
[#30522]: https://github.com/home-assistant/home-assistant/pull/30522
[#30526]: https://github.com/home-assistant/home-assistant/pull/30526
[#30527]: https://github.com/home-assistant/home-assistant/pull/30527
[#30529]: https://github.com/home-assistant/home-assistant/pull/30529
[#30532]: https://github.com/home-assistant/home-assistant/pull/30532
[#30536]: https://github.com/home-assistant/home-assistant/pull/30536
[#30538]: https://github.com/home-assistant/home-assistant/pull/30538
[#30539]: https://github.com/home-assistant/home-assistant/pull/30539
[#30541]: https://github.com/home-assistant/home-assistant/pull/30541
[#30542]: https://github.com/home-assistant/home-assistant/pull/30542
[#30543]: https://github.com/home-assistant/home-assistant/pull/30543
[#30544]: https://github.com/home-assistant/home-assistant/pull/30544
[#30545]: https://github.com/home-assistant/home-assistant/pull/30545
[#30546]: https://github.com/home-assistant/home-assistant/pull/30546
[#30547]: https://github.com/home-assistant/home-assistant/pull/30547
[#30550]: https://github.com/home-assistant/home-assistant/pull/30550
[#30551]: https://github.com/home-assistant/home-assistant/pull/30551
[#30552]: https://github.com/home-assistant/home-assistant/pull/30552
[#30553]: https://github.com/home-assistant/home-assistant/pull/30553
[#30558]: https://github.com/home-assistant/home-assistant/pull/30558
[#30561]: https://github.com/home-assistant/home-assistant/pull/30561
[#30564]: https://github.com/home-assistant/home-assistant/pull/30564
[#30566]: https://github.com/home-assistant/home-assistant/pull/30566
[#30569]: https://github.com/home-assistant/home-assistant/pull/30569
[#30571]: https://github.com/home-assistant/home-assistant/pull/30571
[#30572]: https://github.com/home-assistant/home-assistant/pull/30572
[#30577]: https://github.com/home-assistant/home-assistant/pull/30577
[#30579]: https://github.com/home-assistant/home-assistant/pull/30579
[#30583]: https://github.com/home-assistant/home-assistant/pull/30583
[#30584]: https://github.com/home-assistant/home-assistant/pull/30584
[#30586]: https://github.com/home-assistant/home-assistant/pull/30586
[#30589]: https://github.com/home-assistant/home-assistant/pull/30589
[#30590]: https://github.com/home-assistant/home-assistant/pull/30590
[#30591]: https://github.com/home-assistant/home-assistant/pull/30591
[#30594]: https://github.com/home-assistant/home-assistant/pull/30594
[#30597]: https://github.com/home-assistant/home-assistant/pull/30597
[#30608]: https://github.com/home-assistant/home-assistant/pull/30608
[#30630]: https://github.com/home-assistant/home-assistant/pull/30630
[#30647]: https://github.com/home-assistant/home-assistant/pull/30647
[#30657]: https://github.com/home-assistant/home-assistant/pull/30657
[#30661]: https://github.com/home-assistant/home-assistant/pull/30661
[#30663]: https://github.com/home-assistant/home-assistant/pull/30663
[#30666]: https://github.com/home-assistant/home-assistant/pull/30666
[#30667]: https://github.com/home-assistant/home-assistant/pull/30667
[#30688]: https://github.com/home-assistant/home-assistant/pull/30688
[#30690]: https://github.com/home-assistant/home-assistant/pull/30690
[#30691]: https://github.com/home-assistant/home-assistant/pull/30691
[#30700]: https://github.com/home-assistant/home-assistant/pull/30700
[#30702]: https://github.com/home-assistant/home-assistant/pull/30702
[#30705]: https://github.com/home-assistant/home-assistant/pull/30705
[#30735]: https://github.com/home-assistant/home-assistant/pull/30735
[#30739]: https://github.com/home-assistant/home-assistant/pull/30739
[#30740]: https://github.com/home-assistant/home-assistant/pull/30740
[#30748]: https://github.com/home-assistant/home-assistant/pull/30748
[#30749]: https://github.com/home-assistant/home-assistant/pull/30749
[#30750]: https://github.com/home-assistant/home-assistant/pull/30750
[#30752]: https://github.com/home-assistant/home-assistant/pull/30752
[#30753]: https://github.com/home-assistant/home-assistant/pull/30753
[#30756]: https://github.com/home-assistant/home-assistant/pull/30756
[#30766]: https://github.com/home-assistant/home-assistant/pull/30766
[#30777]: https://github.com/home-assistant/home-assistant/pull/30777
[#30780]: https://github.com/home-assistant/home-assistant/pull/30780
[@1v0dev]: https://github.com/1v0dev
[@AaronDavidSchneider]: https://github.com/AaronDavidSchneider
[@Adminiuga]: https://github.com/Adminiuga
[@Alexxander0]: https://github.com/Alexxander0
[@BKPepe]: https://github.com/BKPepe
[@Cereal2nd]: https://github.com/Cereal2nd
[@DjMoren]: https://github.com/DjMoren
[@Emacee]: https://github.com/Emacee
[@Ernst79]: https://github.com/Ernst79
[@FrengerH]: https://github.com/FrengerH
[@HarlemSquirrel]: https://github.com/HarlemSquirrel
[@Hypfer]: https://github.com/Hypfer
[@InuSasha]: https://github.com/InuSasha
[@Jc2k]: https://github.com/Jc2k
[@JeffLIrion]: https://github.com/JeffLIrion
[@Kane610]: https://github.com/Kane610
[@Kerwood]: https://github.com/Kerwood
[@Lars-P]: https://github.com/Lars-P
[@Mariusthvdb]: https://github.com/Mariusthvdb
[@P-Verbrugge]: https://github.com/P-Verbrugge
[@PaulAnnekov]: https://github.com/PaulAnnekov
[@Quentame]: https://github.com/Quentame
[@SNoof85]: https://github.com/SNoof85
[@Santobert]: https://github.com/Santobert
[@SukramJ]: https://github.com/SukramJ
[@Trekky12]: https://github.com/Trekky12
[@ViViDboarder]: https://github.com/ViViDboarder
[@aamcrae]: https://github.com/aamcrae
[@agners]: https://github.com/agners
[@alandtse]: https://github.com/alandtse
[@alemuro]: https://github.com/alemuro
[@andersonshatch]: https://github.com/andersonshatch
[@andre-richter]: https://github.com/andre-richter
[@andygrunwald]: https://github.com/andygrunwald
[@bachya]: https://github.com/bachya
[@balloob]: https://github.com/balloob
[@basnijholt]: https://github.com/basnijholt
[@bbernhard]: https://github.com/bbernhard
[@bendavid]: https://github.com/bendavid
[@benleb]: https://github.com/benleb
[@bieniu]: https://github.com/bieniu
[@boralyl]: https://github.com/boralyl
[@bramkragten]: https://github.com/bramkragten
[@brefra]: https://github.com/brefra
[@butako]: https://github.com/butako
[@caronc]: https://github.com/caronc
[@casperklein]: https://github.com/casperklein
[@cgtobi]: https://github.com/cgtobi
[@clapbr]: https://github.com/clapbr
[@colinfrei]: https://github.com/colinfrei
[@csfreak]: https://github.com/csfreak
[@cwildt]: https://github.com/cwildt
[@danielperna84]: https://github.com/danielperna84
[@dannerph]: https://github.com/dannerph
[@davet2001]: https://github.com/davet2001
[@dcramer]: https://github.com/dcramer
[@dmulcahey]: https://github.com/dmulcahey
[@dshokouhi]: https://github.com/dshokouhi
[@eifinger]: https://github.com/eifinger
[@elupus]: https://github.com/elupus
[@erikkastelec]: https://github.com/erikkastelec
[@fabaff]: https://github.com/fabaff
[@foxy82]: https://github.com/foxy82
[@frenck]: https://github.com/frenck
[@fwestenberg]: https://github.com/fwestenberg
[@garbled1]: https://github.com/garbled1
[@geraldhansen]: https://github.com/geraldhansen
[@gjbadros]: https://github.com/gjbadros
[@gppanayotov]: https://github.com/gppanayotov
[@gtdiehl]: https://github.com/gtdiehl
[@heckler]: https://github.com/heckler
[@imduffy15]: https://github.com/imduffy15
[@issacg]: https://github.com/issacg
[@jnimmo]: https://github.com/jnimmo
[@johnluetke]: https://github.com/johnluetke
[@lddubeau]: https://github.com/lddubeau
[@lexam79]: https://github.com/lexam79
[@liollury]: https://github.com/liollury
[@mfaraco]: https://github.com/mfaraco
[@michaelarnauts]: https://github.com/michaelarnauts
[@mnigbur]: https://github.com/mnigbur
[@mockersf]: https://github.com/mockersf
[@mohmacht]: https://github.com/mohmacht
[@ndonegan]: https://github.com/ndonegan
[@neffs]: https://github.com/neffs
[@ochlocracy]: https://github.com/ochlocracy
[@orrpan]: https://github.com/orrpan
[@pnbruckner]: https://github.com/pnbruckner
[@proferabg]: https://github.com/proferabg
[@pschmitt]: https://github.com/pschmitt
[@pvizeli]: https://github.com/pvizeli
[@raman325]: https://github.com/raman325
[@randellhodges]: https://github.com/randellhodges
[@ratsept]: https://github.com/ratsept
[@rccoleman]: https://github.com/rccoleman
[@rhadamantys]: https://github.com/rhadamantys
[@rsnodgrass]: https://github.com/rsnodgrass
[@sbyx]: https://github.com/sbyx
[@scarface-4711]: https://github.com/scarface-4711
[@scop]: https://github.com/scop
[@sdwilsh]: https://github.com/sdwilsh
[@sergioisidoro]: https://github.com/sergioisidoro
[@shortbloke]: https://github.com/shortbloke
[@springstan]: https://github.com/springstan
[@syssi]: https://github.com/syssi
[@taisholland]: https://github.com/taisholland
[@tchellomello]: https://github.com/tchellomello
[@tetienne]: https://github.com/tetienne
[@tuxbox]: https://github.com/tuxbox
[@tyler-public]: https://github.com/tyler-public
[@vangorra]: https://github.com/vangorra
[@vzahradnik]: https://github.com/vzahradnik
[@xlfe]: https://github.com/xlfe
[@yegle]: https://github.com/yegle
[@zewelor]: https://github.com/zewelor
[@zxdavb]: https://github.com/zxdavb
[abode docs]: /integrations/abode/
[acer_projector docs]: /integrations/acer_projector/
[actiontec docs]: /integrations/actiontec/
[adguard docs]: /integrations/adguard/
[ads docs]: /integrations/ads/
[air_quality docs]: /integrations/air_quality/
[airly docs]: /integrations/airly/
[alarm_control_panel docs]: /integrations/alarm_control_panel/
[alarmdecoder docs]: /integrations/alarmdecoder/
[alexa docs]: /integrations/alexa/
[almond docs]: /integrations/almond/
[ambiclimate docs]: /integrations/ambiclimate/
[ambient_station docs]: /integrations/ambient_station/
[amcrest docs]: /integrations/amcrest/
[androidtv docs]: /integrations/androidtv/
[apcupsd docs]: /integrations/apcupsd/
[arduino docs]: /integrations/arduino/
[arest docs]: /integrations/arest/
[auth docs]: /integrations/auth/
[automation docs]: /integrations/automation/
[aws docs]: /integrations/aws/
[axis docs]: /integrations/axis/
[bbb_gpio docs]: /integrations/bbb_gpio/
[binary_sensor docs]: /integrations/binary_sensor/
[bitcoin docs]: /integrations/bitcoin/
[bluetooth_le_tracker docs]: /integrations/bluetooth_le_tracker/
[bmw_connected_drive docs]: /integrations/bmw_connected_drive/
[broadlink docs]: /integrations/broadlink/
[brother docs]: /integrations/brother/
[buienradar docs]: /integrations/buienradar/
[calendar docs]: /integrations/calendar/
[camera docs]: /integrations/camera/
[cast docs]: /integrations/cast/
[cert_expiry docs]: /integrations/cert_expiry/
[climate docs]: /integrations/climate/
[cloud docs]: /integrations/cloud/
[command_line docs]: /integrations/command_line/
[config docs]: /integrations/config/
[counter docs]: /integrations/counter/
[cover docs]: /integrations/cover/
[darksky docs]: /integrations/darksky/
[deconz docs]: /integrations/deconz/
[decora docs]: /integrations/decora/
[decora_wifi docs]: /integrations/decora_wifi/
[default_config docs]: /integrations/default_config/
[demo docs]: /integrations/demo/
[denonavr docs]: /integrations/denonavr/
[device_automation docs]: /integrations/device_automation/
[device_tracker docs]: /integrations/device_tracker/
[dialogflow docs]: /integrations/dialogflow/
[doorbird docs]: /integrations/doorbird/
[dsmr_reader docs]: /integrations/dsmr_reader/
[dwd_weather_warnings docs]: /integrations/dwd_weather_warnings/
[dyson docs]: /integrations/dyson/
[ecobee docs]: /integrations/ecobee/
[elgato docs]: /integrations/elgato/
[emulated_hue docs]: /integrations/emulated_hue/
[enocean docs]: /integrations/enocean/
[enphase_envoy docs]: /integrations/enphase_envoy/
[eufy docs]: /integrations/eufy/
[evohome docs]: /integrations/evohome/
[fan docs]: /integrations/fan/
[ffmpeg docs]: /integrations/ffmpeg/
[fido docs]: /integrations/fido/
[file docs]: /integrations/file/
[filter docs]: /integrations/filter/
[freebox docs]: /integrations/freebox/
[fritz docs]: /integrations/fritz/
[frontend docs]: /integrations/frontend/
[geofency docs]: /integrations/geofency/
[geonetnz_quakes docs]: /integrations/geonetnz_quakes/
[geonetnz_volcano docs]: /integrations/geonetnz_volcano/
[gios docs]: /integrations/gios/
[google_assistant docs]: /integrations/google_assistant/
[google_maps docs]: /integrations/google_maps/
[google_pubsub docs]: /integrations/google_pubsub/
[google_translate docs]: /integrations/google_translate/
[gpslogger docs]: /integrations/gpslogger/
[group docs]: /integrations/group/
[hassio docs]: /integrations/hassio/
[heatmiser docs]: /integrations/heatmiser/
[here_travel_time docs]: /integrations/here_travel_time/
[history docs]: /integrations/history/
[hive docs]: /integrations/hive/
[homeassistant docs]: /integrations/homeassistant/
[homekit docs]: /integrations/homekit/
[homekit_controller docs]: /integrations/homekit_controller/
[homematic docs]: /integrations/homematic/
[homematicip_cloud docs]: /integrations/homematicip_cloud/
[http docs]: /integrations/http/
[huawei_lte docs]: /integrations/huawei_lte/
[hue docs]: /integrations/hue/
[iaqualink docs]: /integrations/iaqualink/
[icloud docs]: /integrations/icloud/
[ifttt docs]: /integrations/ifttt/
[ign_sismologia docs]: /integrations/ign_sismologia/
[ihc docs]: /integrations/ihc/
[influxdb docs]: /integrations/influxdb/
[input_boolean docs]: /integrations/input_boolean/
[input_datetime docs]: /integrations/input_datetime/
[input_number docs]: /integrations/input_number/
[input_select docs]: /integrations/input_select/
[input_text docs]: /integrations/input_text/
[intesishome docs]: /integrations/intesishome/
[ipma docs]: /integrations/ipma/
[iqvia docs]: /integrations/iqvia/
[islamic_prayer_times docs]: /integrations/islamic_prayer_times/
[isy994 docs]: /integrations/isy994/
[izone docs]: /integrations/izone/
[jewish_calendar docs]: /integrations/jewish_calendar/
[kankun docs]: /integrations/kankun/
[keba docs]: /integrations/keba/
[kef docs]: /integrations/kef/
[keyboard_remote docs]: /integrations/keyboard_remote/
[kodi docs]: /integrations/kodi/
[life360 docs]: /integrations/life360/
[light docs]: /integrations/light/
[lightwave docs]: /integrations/lightwave/
[linky docs]: /integrations/linky/
[localip docs]: /integrations/local_ip/
[locative docs]: /integrations/locative/
[lock docs]: /integrations/lock/
[lovelace docs]: /integrations/lovelace/
[luftdaten docs]: /integrations/luftdaten/
[matrix docs]: /integrations/matrix/
[media_extractor docs]: /integrations/media_extractor/
[media_player docs]: /integrations/media_player/
[mediaroom docs]: /integrations/mediaroom/
[met docs]: /integrations/met/
[meteoalarm docs]: /integrations/meteoalarm/
[metoffice docs]: /integrations/metoffice/
[mfi docs]: /integrations/mfi/
[miflora docs]: /integrations/miflora/
[minio docs]: /integrations/minio/
[mobile_app docs]: /integrations/mobile_app/
[mochad docs]: /integrations/mochad/
[modbus docs]: /integrations/modbus/
[monoprice docs]: /integrations/monoprice/
[mpd docs]: /integrations/mpd/
[mqtt docs]: /integrations/mqtt/
[mysensors docs]: /integrations/mysensors/
[neato docs]: /integrations/neato/
[ness_alarm docs]: /integrations/ness_alarm/
[nest docs]: /integrations/nest/
[netatmo docs]: /integrations/netatmo/
[netgear_lte docs]: /integrations/netgear_lte/
[nextbus docs]: /integrations/nextbus/
[nmbs docs]: /integrations/nmbs/
[notion docs]: /integrations/notion/
[nsw_fuel_station docs]: /integrations/nsw_fuel_station/
[nx584 docs]: /integrations/nx584/
[onboarding docs]: /integrations/onboarding/
[onewire docs]: /integrations/onewire/
[opentherm_gw docs]: /integrations/opentherm_gw/
[openuv docs]: /integrations/openuv/
[owntracks docs]: /integrations/owntracks/
[person docs]: /integrations/person/
[pi_hole docs]: /integrations/pi_hole/
[pilight docs]: /integrations/pilight/
[pjlink docs]: /integrations/pjlink/
[plaato docs]: /integrations/plaato/
[plant docs]: /integrations/plant/
[plex docs]: /integrations/plex/
[ps4 docs]: /integrations/ps4/
[pushbullet docs]: /integrations/pushbullet/
[python_script docs]: /integrations/python_script/
[qbittorrent docs]: /integrations/qbittorrent/
[rainmachine docs]: /integrations/rainmachine/
[recorder docs]: /integrations/recorder/
[remember_the_milk docs]: /integrations/remember_the_milk/
[remote docs]: /integrations/remote/
[rest docs]: /integrations/rest/
[rflink docs]: /integrations/rflink/
[rfxtrx docs]: /integrations/rfxtrx/
[ring docs]: /integrations/ring/
[scene docs]: /integrations/scene/
[scrape docs]: /integrations/scrape/
[script docs]: /integrations/script/
[sensor docs]: /integrations/sensor/
[sentry docs]: /integrations/sentry/
[shodan docs]: /integrations/shodan/
[shopping_list docs]: /integrations/shopping_list/
[signalmessenger docs]: /integrations/signal_messenger/
[simplisafe docs]: /integrations/simplisafe/
[sleepiq docs]: /integrations/sleepiq/
[smappee docs]: /integrations/smappee/
[smhi docs]: /integrations/smhi/
[solaredge docs]: /integrations/solaredge/
[solarlog docs]: /integrations/solarlog/
[soma docs]: /integrations/soma/
[somfy docs]: /integrations/somfy/
[soundtouch docs]: /integrations/soundtouch/
[spc docs]: /integrations/spc/
[sql docs]: /integrations/sql/
[squeezebox docs]: /integrations/squeezebox/
[ssdp docs]: /integrations/ssdp/
[starline docs]: /integrations/starline/
[statistics docs]: /integrations/statistics/
[steam_online docs]: /integrations/steam_online/
[stookalert docs]: /integrations/stookalert/
[stream docs]: /integrations/stream/
[surepetcare docs]: /integrations/surepetcare/
[swiss_public_transport docs]: /integrations/swiss_public_transport/
[switch docs]: /integrations/switch/
[switcher_kis docs]: /integrations/switcher_kis/
[synologydsm docs]: /integrations/synologydsm/
[system_log docs]: /integrations/system_log/
[tado docs]: /integrations/tado/
[tahoma docs]: /integrations/tahoma/
[tank_utility docs]: /integrations/tank_utility/
[telegram_bot docs]: /integrations/telegram_bot/
[tellduslive docs]: /integrations/tellduslive/
[template docs]: /integrations/template/
[tesla docs]: /integrations/tesla/
[time_date docs]: /integrations/time_date/
[timer docs]: /integrations/timer/
[tmb docs]: /integrations/tmb/
[toon docs]: /integrations/toon/
[tplink docs]: /integrations/tplink/
[transmission docs]: /integrations/transmission/
[tuya docs]: /integrations/tuya/
[twentemilieu docs]: /integrations/twentemilieu/
[ue_smart_radio docs]: /integrations/ue_smart_radio/
[uk_transport docs]: /integrations/uk_transport/
[unifi docs]: /integrations/unifi/
[universal docs]: /integrations/universal/
[updater docs]: /integrations/updater/
[upnp docs]: /integrations/upnp/
[uscis docs]: /integrations/uscis/
[utility_meter docs]: /integrations/utility_meter/
[uvc docs]: /integrations/uvc/
[vacuum docs]: /integrations/vacuum/
[velbus docs]: /integrations/velbus/
[velux docs]: /integrations/velux/
[venstar docs]: /integrations/venstar/
[vera docs]: /integrations/vera/
[verisure docs]: /integrations/verisure/
[versasense docs]: /integrations/versasense/
[vesync docs]: /integrations/vesync/
[vicare docs]: /integrations/vicare/
[vivotek docs]: /integrations/vivotek/
[vizio docs]: /integrations/vizio/
[volumio docs]: /integrations/volumio/
[water_heater docs]: /integrations/water_heater/
[webostv docs]: /integrations/webostv/
[websocket_api docs]: /integrations/websocket_api/
[wemo docs]: /integrations/wemo/
[whois docs]: /integrations/whois/
[withings docs]: /integrations/withings/
[wled docs]: /integrations/wled/
[workday docs]: /integrations/workday/
[worxlandroid docs]: /integrations/worxlandroid/
[x10 docs]: /integrations/x10/
[xbox_live docs]: /integrations/xbox_live/
[xeoma docs]: /integrations/xeoma/
[xfinity docs]: /integrations/xfinity/
[xiaomi_miio docs]: /integrations/xiaomi_miio/
[xiaomi_tv docs]: /integrations/xiaomi_tv/
[xmpp docs]: /integrations/xmpp/
[xs1 docs]: /integrations/xs1/
[yale_smart_alarm docs]: /integrations/yale_smart_alarm/
[yamaha docs]: /integrations/yamaha/
[yamaha_musiccast docs]: /integrations/yamaha_musiccast/
[yandex_transport docs]: /integrations/yandex_transport/
[yeelight docs]: /integrations/yeelight/
[yeelightsunflower docs]: /integrations/yeelightsunflower/
[yessssms docs]: /integrations/yessssms/
[yr docs]: /integrations/yr/
[zamg docs]: /integrations/zamg/
[zengge docs]: /integrations/zengge/
[zeroconf docs]: /integrations/zeroconf/
[zestimate docs]: /integrations/zestimate/
[zha docs]: /integrations/zha/
[zigbee docs]: /integrations/zigbee/
[zone docs]: /integrations/zone/
[zwave docs]: /integrations/zwave/
