---
layout: post
title: "0.102: Official Android App, Almond, Scene editor"
description: "Download the Android app, install a private voice assistant and easy OAuth2 account linking."
date: 2019-11-20 0:41:02
date_formatted: "November 20, 2019"
author: Paulus Schoutsen
author_twitter: balloob
comments: true
categories: Release-Notes
og_image: /images/blog/2019-11-0.102/components.png
---

Home Assistant 0.102 is here ! It's been quite the trip as we hosted our annual State of the Union last week, which took a lot of energy away from our release. This doesn't mean that we don't have anything to share, just that the notes might be a little less polished.

First, we had our State of the Union at the ING office in Amsterdam! It was great. You can watch it back [on YouTube](https://youtu.be/tc17q1Zn0Xs?t=434) or keep an eye out for the blog post coming soon that will summarize all the announcements.

Alright, so what's new? A lot.

## Android App released!

At the State of the Union we announced that we have released the initial version of the official [Home Assistant Android app](https://play.google.com/store/apps/details?id=io.homeassistant.companion.android). It's still a work in progress, but the basic version already works.

It's been developed by [@CedrickFlocon](https://github.com/CedrickFlocon) and the source is [available on GitHub](https://github.com/home-assistant/home-assistant-android/). We've already seen some other developers step in, so that's great! Keep it coming.

<!--more-->

## Private Voice Assistant

We teamed up with Stanford to tightly integrate their open, privacy-preserving virtual assistant Almond into Home Assistant. For more information, see the [separate blog post](/blog/2019/11/20/privacy-focused-voice-assistant/).

## Account Linking

Some companies only allow us to integrate with their products via cloud APIs. These cloud APIs often use [the OAuth2 specification](https://tools.ietf.org/html/rfc6749) to link accounts. The problem with this specification is that it cannot properly handle non-public or decentralized installations.

So if you were to link an integration via OAuth2 before today, you would have to sign up for a developer account, configure Home Assistant and expose your instance publicly before you got to the part where you can link your account. That's not good!

Home Assistant Cloud is introducing a new account linking service that will be freely available for everyone – no cloud account required. With this service, Home Assistant controls the developer account, and users will just need to link their accounts.

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

The first integration to use this new service is [Somfy][somfy docs]. Manual installation is also still possible. This integration is built on top of our [new OAuth2 framework](https://developers.home-assistant.io/docs/en/config_entries_config_flow_handler.html#configuration-via-oauth2). We expect more integration developers to migrate OAuth2 integrations in the future.

## Create automations with natural language

As an experimental feature, we have added a new way to create automations. With the help of Almond, we can transform natural language into Home Assistant automations.

<p class='img'>
<img src='/images/blog/2019-11-0.102/thingtalk-automation.png' alt='Screenshot of the create automation dialog.'></a>
Screenshot of the create automation dialog.
</p>

When you click the **+** in the automation editor to add a new automation, you will see a new dialog where you can enter what you want your automation to do in natural language. Like: `Turn on the lights when I come home`. We will try to convert this into an automation. We will check if you need to specify devices or persons for this automation and ask you for them. You can then check the generated automation in the editor and save it.

Be advised that not all devices are supported yet, and that Almond needs more training for better responses. Check the Almond part for how you can help make Almond better.

## Scene editor

<p class='img'>
<img src='/images/docs/scenes/editor.png' alt='Screenshot of the scene editor.'></a>
Screenshot of the scene editor.
</p>

We're also introducing a [scene editor](/docs/scene/editor/). With the scene editor you can easily store the states of devices in a scene. You simply select the devices (and/or entities if you are in advanced mode) you want to include in your scene and set the states to how you would like them when the scene activates.

To use the scene editor your scene config should be in the file `scenes.yaml` in your config directory and included in `configuration.yaml`. Every scene should have a unique id for the editor to work.

```yaml
# scenes.yaml
- id: my_unique_id # <-- Required for editor to work.
  name: Romantic
  entities:
    light.tv_back_light: on
    light.ceiling:
      state: on
      xy_color: [0.33, 0.66]
      brightness: 200
```

Then update your `configuration.yaml` to look like this:

```yaml
# Configuration.yaml example
scene: !include scenes.yaml
```

## In other news

Andrew learned Swift and created a new mini-app for Mac:

<blockquote class="twitter-tweet"><p lang="en" dir="ltr">Using my new found Swift skills I created a tiny Mac menu bar app to control switches on <a href="https://twitter.com/home_assistant?ref_src=twsrc%5Etfw">@home_assistant</a> <a href="https://t.co/N7wl2gXd2O">https://t.co/N7wl2gXd2O</a><br>Saves me reaching behind the printer for the awkward power button.<br>Consider it alpha, I&#39;ve got a lot to learn on both swift and HA! <a href="https://t.co/o6Wm7Le5nm">pic.twitter.com/o6Wm7Le5nm</a></p>&mdash; Andrew Jackson (@AndrewCodeChimp) <a href="https://twitter.com/AndrewCodeChimp/status/1196377630070755328?ref_src=twsrc%5Etfw">November 18, 2019</a>
</blockquote>

Our Android app is not the only new app on the block. [@tuanha2000vn](https://github.com/tuanha2000vn) has released [Hasskit](https://github.com/tuanha2000vn/hasskit/), a new app built with Flutter that can be used on both Android and iOS.

And finally, Brad posted a video on [Reddit](https://www.reddit.com/r/homeassistant/comments/dz1qsi/picture_elements_are_so_fun_i_made_a_bad_video/) showing his amazing usage of picture elements in Lovelace. Check it out:

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

Users of Xiaomi Vacuum cleaners can now use this great custom Lovelace card:

<blockquote class="twitter-tweet"><p lang="en" dir="ltr">Wow 😲<br><br>This custom card for Xiaomi vacuum cleaners allows you to exactly tell what part of the house your vacuum cleaner has to clean 👏<a href="https://t.co/NJtrRLKvDZ">https://t.co/NJtrRLKvDZ</a> <a href="https://t.co/iNOOwt5Wxd">pic.twitter.com/iNOOwt5Wxd</a></p>&mdash; Home Assistant (@home_assistant) <a href="https://twitter.com/home_assistant/status/1192889842440507392?ref_src=twsrc%5Etfw">November 8, 2019</a>
</blockquote>

## New Integrations

- Add Unifi Led ([@florisvdk] - [#27475]) ([unifiled docs]) (new-integration)
- Almond integration ([@balloob] - [#28282]) ([almond docs]) (new-integration)
- Speech to Text component ([@pvizeli] - [#28434]) ([demo docs]) ([stt docs]) (new-integration)
- Add WLED integration ([@frenck] - [#28542]) ([wled docs]) (new-integration)
- Add azure servicebus notify service ([@hfurubotten] - [#27566]) ([azure_service_bus docs]) (new-integration)
- Add pcal9535a integration ([@Shulyaka] - [#26563]) ([pcal9535a docs]) (new-integration)

## New Platforms

- Add Huawei LTE mobile data switch support ([@scop] - [#28188]) ([huawei_lte docs]) (new-platform)
- Add support for Xiaomi Air Quality Monitor (cgllc.airmonitor.b1) ([@fwestenberg] - [#27735]) ([xiaomi_miio docs]) (new-platform)
- Add switches (on/off zones) to geniushub ([@castaway] - [#28182]) ([geniushub docs]) (new-platform)
- Add config endpoint for scene ([@bramkragten] - [#28429]) ([config docs]) ([homeassistant docs]) (new-platform)
- Add override switch for juicenet ([@jesserockz] - [#28049]) ([juicenet docs]) (new-platform)
- Add SST/TTS support over NC ([@pvizeli] - [#28527]) ([cloud docs]) ([stt 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).

## Reporting Issues

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.

## Breaking Changes

- **Huawei LTE** - Configuration has been consolidated below `huawei_lte`. Device tracker no longer uses known_devices.yaml but entity registry. - ([@scop] - [#26675]) ([huawei_lte docs])

  Example configuration yaml:

  ```yaml
  huawei_lte:
    - url: http://192.168.100.1/
      username: admin
      password: something
  ```

- **Ikea Tradfri** - This removes the battery sensor that was created for the signal repeater. The sensor would never have a state, and after some inspection, it does not look like that device present any valuable metrics. - ([@ludeeus] - [#28181]) ([tradfri docs])

- **UPNP/IGD** - All UPNP/IGD sensors are now in one device. You have to remove and re-add the integration to get rid of the previous devices. ([@escoand] - [#27517]) ([upnp docs])

- **PS4** - State `off` is now State `standby`. Affects user defined scripts, automations, etc. ([@ktnrg45] - [#28261]) ([ps4 docs])

- **SSDP** - `ssdp` in manifest.json has changed; it is now a list of dicts, and as we now match using the UPnP device description fields directly, `device_type` has to be renamed to `deviceType`. No included integrations use it at the moment, nor are they broken by this change. If any custom integrations are using it, they need to adjust accordingly. ([@scop] - [#28285]) ([ssdp docs])

- **HomematicIP Cloud** - The attribute naming between Homematic IP `HmIP-BSM` (light) and `HmIP-FSM/HmIP-PSM` (switch) was different and in case of light not correct. The attributes for `HmIP-BSM` have been renamed:

  - energy_counter_kwh --> today_energy_kwh
  - power_consumption --> current_power_w

  Please check your automations, scripts, scenes, etc., if you are using the old attributes in templates, and replace them with the new ones. - ([@SukramJ] - [#28271]) ([homematicip_cloud docs])

- **Plugwise** - Detection of a legacy Anna (firmware 1.8.x) is no longer automatic: owners of a legacy Anna have to provide info in configuration.yaml, the last line. This change was needed to be able to fix issue #26520. - ([@bouwew] - [#28237]) ([plugwise docs])

  Example configuration yaml:

  ```yaml
  climate:
    - platform: plugwise
      name: your_device_name
      password: your_password
      host: your_anna_ip
      legacy_anna: true
  ```

- **Android TV** - The `source` and `sources_list` attributes for Fire TV devices will use friendly app names instead of app IDs (e.g., "Netflix" instead of "com.netflix.ninja"). If you are using these attributes in automations, sensors, etc., you will need to update them.

  - If you are currently checking that the `source` attribute of a Fire TV device is a particular app ID, you have two options:
    - Check the `app_id` attribute instead
    - Replace that app ID with the friendly name for the app.
  - If you are currently checking the `sources_list` attribute, then you will need to check for friendly app names instead of app IDs.

  You can still use app IDs for the media_player.select_source service. - ([@JeffLIrion] - [#28417]) ([androidtv docs])

- **Homekit** - Thermostats supported by the Homekit Controller component were reporting "off" for the running status when the HVAC was powered on but not actively heating or cooling. This `hvac_action` attribute will now properly return "idle" instead of off. Any logic that tests for the `hvac_action` condition of `off` will need to change to `idle`. There is no change to any other states. - ([@GaryOkie] - [#28625]) ([homekit_controller docs])

- **OpenALPR local** - The "alp_bin" option has been corrected to "alpr_bin" as is outlined in the documentation. Users should check their config and update if necessary. ([@HexF] - [#28746]) ([openalpr_local docs])

## Beta Fixes

- Bump ZHA quirks to 0.0.28 ([@dmulcahey] - [#28750]) ([zha docs]) (beta fix)
- Updated frontend to 20191114.0 ([@bramkragten] - [#28768]) ([frontend docs]) (beta fix)
- Fix account link version check ([@balloob] - [#28770]) ([cloud docs]) (beta fix)
- Fix amazon dependency conflicts ([@bbrendon] - [#28217]) ([amazon_polly docs]) ([aws docs]) (beta fix)
- Change unique id for SAJ sensor based on device SN ([@fredericvl] - [#28663]) ([saj docs]) (breaking change) (beta fix)
- Fix changing venstar operation_mode ([@iamtpage] - [#28754]) ([venstar docs]) (beta fix)
- Fix Repetier integration entity indexing ([@MTrab] - [#28766]) ([repetier docs]) (beta fix)
- Fix HomematicIP Cloud Alarm Control Panel support for basic mode ([@SukramJ] - [#28778]) ([homematicip_cloud docs]) (beta fix)
- Fix Swisscom empty response received ([@LeoCal] - [#28782]) ([swisscom docs]) (beta fix)
- Fix broken postnl sensor ([@peternijssen] - [#28794]) (beta fix)
- Updated frontend to 20191115.0 ([@bramkragten] - [#28797]) ([frontend docs]) (beta fix)
- Fix Comfoconnect errors during startup ([@michaelarnauts] - [#28802]) ([comfoconnect docs]) (beta fix)
- Fix miio air quality sensor ([@valkjsaaa] - [#28828]) ([xiaomi_miio docs]) (beta fix)
- Update pyatmo to 3.0.1 ([@cgtobi] - [#28829]) ([netatmo docs]) (beta fix)
- Updated frontend to 20191118.0 ([@bramkragten] - [#28852]) ([frontend docs]) (beta fix)
- Fix documentation URL in failed platform config check ([@frenck] - [#28814]) (beta fix)
- Fix Synology camera whitelist ([@h4de5] - [#28822]) ([synology docs]) (beta fix)
- Fix setting colors while reproducing a lights state ([@Santobert] - [#28871]) ([light docs]) (beta fix)
- Updated frontend to 20191119.0 ([@bramkragten] - [#28875]) ([frontend docs]) (beta fix)
- Updated frontend to 20191119.1 ([@bramkragten] - [#28881]) ([frontend docs]) (beta fix)
- Updated frontend to 20191119.2 ([@bramkragten] - [#28896]) ([frontend docs]) (beta fix)
- Fix Almond onboarding url when using cloud ([@bramkragten] - [#28908]) ([almond docs]) (beta fix)

## Release 0.102.1 - November 21

- Fix missing Netatmo sensors ([@cgtobi] - [#28899]) ([netatmo docs])
- Updated frontend to 20191119.5 ([@bramkragten] - [#28925]) ([frontend docs])
- Fix Plex startup race condition #28934 [@jjlawren]

[#28899]: https://github.com/home-assistant/home-assistant/pull/28899
[#28925]: https://github.com/home-assistant/home-assistant/pull/28925
[@bramkragten]: https://github.com/bramkragten
[@cgtobi]: https://github.com/cgtobi
[frontend docs]: /integrations/frontend/
[netatmo docs]: /integrations/netatmo/

## Release 0.102.2 - November 24

- Fix Plex setup race condition v2 ([@jjlawren] - [#28943]) ([plex docs])
- Fix ikea lights on deconz ([@pvizeli] - [#28949]) ([deconz docs])
- Fix manual config ([@cgtobi] - [#28956]) ([netatmo docs])
- Fix temp not being reported properly ([@shred86] - [#28973]) ([abode docs])
- Updated frontend to 20191119.6 ([@bramkragten] - [#28996]) ([frontend docs])
- Alexa gracefully handle climate devices without presets ([@frenck] - [#29010]) ([alexa docs])

## Release 0.102.3 - November 29

- Fix smartthings cloud webhook ([@bramkragten] - [#29219]) ([smartthings docs])

[#29219]: https://github.com/home-assistant/home-assistant/pull/29219
[@bramkragten]: https://github.com/bramkragten
[smartthings docs]: /components/smartthings/

[#28943]: https://github.com/home-assistant/home-assistant/pull/28943
[#28949]: https://github.com/home-assistant/home-assistant/pull/28949
[#28956]: https://github.com/home-assistant/home-assistant/pull/28956
[#28973]: https://github.com/home-assistant/home-assistant/pull/28973
[#28996]: https://github.com/home-assistant/home-assistant/pull/28996
[#29010]: https://github.com/home-assistant/home-assistant/pull/29010
[@bramkragten]: https://github.com/bramkragten
[@cgtobi]: https://github.com/cgtobi
[@frenck]: https://github.com/frenck
[@jjlawren]: https://github.com/jjlawren
[@pvizeli]: https://github.com/pvizeli
[@shred86]: https://github.com/shred86
[abode docs]: /integrations/abode/
[alexa docs]: /integrations/alexa/
[deconz docs]: /integrations/deconz/
[frontend docs]: /integrations/frontend/
[netatmo docs]: /integrations/netatmo/
[plex docs]: /integrations/plex/

## All changes

- Cover all possible values for venstar operation_mode ([@iamtpage] - [#27949]) ([venstar docs])
- Add onvif local datetime support ([@djpremier] - [#26656]) ([onvif docs])
- Fix Venstar formatting to restore clean CI ([@kennedyshead] - [#28171]) ([venstar docs])
- Add Unifi Led ([@florisvdk] - [#27475]) ([unifiled docs]) (new-integration)
- Modernize Huawei LTE ([@scop] - [#26675]) ([huawei_lte docs]) (breaking change)
- Use latest withings_api module ([@vangorra] - [#27817]) ([withings docs])
- Tradfri config flow enhancements ([@ludeeus] - [#28179]) ([tradfri docs])
- Add stop feature to tradfri covers ([@ludeeus] - [#28180]) ([tradfri docs])
- Fix tzinfo type for onvif component ([@djpremier] - [#28178]) ([onvif docs])
- Adding device_class to samsungtv ([@kennedyshead] - [#28168]) ([samsungtv docs])
- Bump python-slugify to 4.0.0 ([@BKPepe] - [#28186])
- Removes unwanted tradfri battery sensor ([@ludeeus] - [#28181]) ([tradfri docs]) (breaking change)
- Huawei LTE sensor metadata update ([@scop] - [#28187]) ([huawei_lte docs])
- Add Samsung TV automatic protocol detection ([@escoand] - [#27492]) ([samsungtv docs])
- [homematic]Pass channel to light color functions ([@guillempages] - [#27306]) ([homematic docs])
- [homematic]Add support for HmIP-BSL LEDs ([@guillempages] - [#27307]) ([homematic docs])
- move hass-frontend import back down ([@gngj] - [#28203]) ([frontend docs])
- Address post-merge coolmaster config flow code review ([@OnFreund] - [#28163]) ([coolmaster docs])
- Add presentation URL to SSDP discovery info ([@scop] - [#28196]) ([ssdp docs])
- Change Alexa default display category based on media_player device_class ([@ochlocracy] - [#28191]) ([alexa docs])
- Add device condition support for media_player ([@shmooey] - [#28161]) ([media_player docs])
- Add device condition support for device_tracker ([@shmooey] - [#28190]) ([device_tracker docs])
- Increased python-eq3bt version to latest (0.1.11) ([@Poeschl] - [#28175]) ([eq3btsmart docs])
- Add support for supportedOperations to Alexa.PlaybackController ([@ochlocracy] - [#28212]) ([alexa docs])
- Improved Alexa ThermostatController thermostatMode handling ([@ochlocracy] - [#28176]) ([alexa docs])
- Add additional device conditions to cover ([@emontnemery] - [#27830]) ([cover docs])
- Implement Alexa.PlaybackStateReporter Interface for alexa ([@ochlocracy] - [#28215]) ([alexa docs])
- Add cloud account linking support ([@balloob] - [#28210]) ([cloud docs]) ([somfy docs])
- Add Huawei LTE mobile data switch support ([@scop] - [#28188]) ([huawei_lte docs]) (new-platform)
- Upgrade speedtest-cli to 2.1.2 ([@fabaff] - [#28216])
- Add available state to unifiled integration ([@florisvdk] - [#28189]) ([unifiled docs]) (new-integration)
- Update praw to 6.4.0 ([@fabaff] - [#27324]) ([reddit docs])
- Suppress traceback (fixes #28243) ([@fabaff] - [#28262]) ([iss docs])
- Add charset to imap component. ([@ZiroNL] - [#28258]) ([imap docs])
- Reorg and test attributes for HomematicIP Cloud ([@SukramJ] - [#28234]) ([homematicip_cloud docs])
- Add support for Xiaomi Air Quality Monitor (cgllc.airmonitor.b1) ([@fwestenberg] - [#27735]) ([xiaomi_miio docs]) (new-platform)
- Add transmission info about torrents that is accessible with templating ([@JPHutchins] - [#27111]) ([transmission docs])
- More header cleanup for websocket proxy ([@pvizeli] - [#28288]) ([hassio docs])
- Bump avea to 1.4 ([@pattyland] - [#28287]) ([avea docs])
- Remove GTT component ([@eliseomartelli] - [#28286])
- Hue: Create new config flow when auth is lost ([@bramkragten] - [#28204]) ([hue docs])
- Revert "More header cleanup for websocket proxy (#28288)" ([@pvizeli] - [#28293]) ([hassio docs])
- Add support for Somfy Garage door Rollixo IO DiscreteGarageOpenerIOComponent in Tahoma component ([@yjajkiew] - [#28291]) ([tahoma docs])
- Type hint improvements ([@scop] - [#28260])
- Add more iaqualink entity properties, fix timeout issues ([@flz] - [#28236]) ([iaqualink docs])
- Add keyboard_remote trigger on multiple event types and emulate key hold events ([@bendavid] - [#27761]) ([keyboard_remote docs])
- Remove blocking I/O from the event loop ([@syssi] - [#28305]) ([xiaomi_miio docs])
- Use dict[key] for required config keys ([@syssi] - [#28304]) ([xiaomi_miio docs])
- Bump black to 19.10b0 ([@frenck] - [#28310]) ([androidtv docs]) ([envirophat docs]) ([hangouts docs]) ([here_travel_time docs])
- Add source constants for all config entry discovery sources ([@frenck] - [#28311])
- Almond integration ([@balloob] - [#28282]) ([almond docs]) (new-integration)
- Bump pre-commit to 1.20.0 ([@frenck] - [#28313])
- Bump youtube_dl to 2019.10.29 ([@frenck] - [#28312]) ([media_extractor docs])
- Add description for arlo.update service ([@PixelJonas] - [#28270])
- Bump pytest to 5.2.2 ([@cgtobi] - [#28230])
- Add services description for sabnzbd component ([@karouf] - [#28252])
- Clean up Xiaomi Air Quality Monitor support (cgllc.airmonitor.b1) ([@syssi] - [#28301]) ([xiaomi_miio docs])
- allow multiple heaters per incomfort gateway ([@zxdavb] - [#28324]) ([incomfort docs])
- Add OAuth2 config flow scaffold ([@balloob] - [#28220])
- Add services.yaml to local_file component. ([@ZiroNL] - [#28330])
- Add device triggers to cover ([@emontnemery] - [#28063]) ([automation docs]) ([cover docs])
- Flux log with debug instead of info ([@Santobert] - [#28352]) ([flux docs])
- Add modelnumber for ecobee4 ([@marthoc] - [#28278]) ([ecobee docs])
- Fill services.yaml for duckdns ([@gngj] - [#28248])
- Implement Alexa.SeekController Interface for media_player in Alexa ([@ochlocracy] - [#28299]) ([alexa docs])
- Don't set entity_id in ZHA entities ([@Adminiuga] - [#28362]) ([zha docs])
- Update withings-api to avoid data parsing bugs. ([@vangorra] - [#28382]) ([withings docs])
- Add services.yaml to onvif component ([@ZiroNL] - [#28349])
- Fix Telegram Bot ([@Anonym-tsk] - [#28369])
- Fill services.yaml for squeezebox ([@gngj] - [#28247])
- Add file list to attributes of folder sensor ([@thoscut] - [#28338]) ([folder docs])
- Show all UPNP/IGD sensors in one device ([@escoand] - [#27517]) ([upnp docs]) (breaking change)
- fix feedreader handling unrecognized published date ([@exxamalte] - [#28225]) ([feedreader docs])
- Introduce SUPPORT_COLOR_TEMP for flux_led component ([@yeralin] - [#26692]) ([flux_led docs])
- Upgrade thingspeak to 1.0.0 ([@fabaff] - [#28424]) ([thingspeak docs])
- Upgrade attrs to 19.3.0 ([@fabaff] - [#28421])
- Add a Services YAML for the Dominos integration (#27289) ([@Schoonology] - [#28339])
- Upgrade pysnmp to 4.4.12 ([@fabaff] - [#28428]) ([snmp docs])
- Bump pyEight library to 0.1.2 to update API URL ([@mezz64] - [#28413]) ([eight_sleep docs])
- Use defined device class constants for Homematic ([@SukramJ] - [#28438]) ([homematic docs])
- Add improved scene support to the alarm_control_panel integration ([@Santobert] - [#28269]) ([alarm_control_panel docs])
- Add improved scene support to the water_heater integration ([@Santobert] - [#28277]) ([demo docs]) ([water_heater docs])
- deCONZ - Add Xiaomi Aqara Cube device trigger support ([@Kane610] - [#27548]) ([deconz docs])
- deCONZ - Support creating battery sensor when reported ([@Kane610] - [#27538]) ([deconz docs])
- deCONZ - Improve discovery logging ([@Kane610] - [#28452]) ([deconz docs])
- Add scene.create service ([@Santobert] - [#28300]) ([homeassistant docs])
- Update MQTT sensor test ([@fabaff] - [#28449])
- Change ps4 state off to state standby ([@ktnrg45] - [#28261]) ([ps4 docs]) (breaking change)
- Fix inability to transition between specific presets in Venstar component ([@nkaminski] - [#28238]) ([venstar docs])
- pre-commit: ship default and full configs ([@scop] - [#28463])
- SSDP matching improvements ([@scop] - [#28285]) ([ssdp docs]) (breaking change)
- Bump env_canada to 0.0.30 ([@michaeldavie] - [#28487]) ([environment_canada docs])
- Fixing #27722 Watson TTS platform (sdk upgrade) ([@rutkai] - [#28468]) ([watson_tts docs])
- Use integration name in docstring ([@fabaff] - [#28445])
- Handle Huawei LTE timeouts ([@scop] - [#28465]) ([huawei_lte docs])
- Fix flaky Samsung TV tests ([@escoand] - [#28503])
- Always provide brightness value ([@elupus] - [#28228]) ([google_assistant docs])
- Fix flaky YesssSMS tests on debug messages ([@escoand] - [#28506])
- Import CancelledError from asyncio, not .futures ([@scop] - [#28511]) ([bluesound docs])
- Don't use deprecated encoding to json.loads ([@scop] - [#28509])
- Update Vivotek component stream source ([@HarlemSquirrel] - [#27941]) ([vivotek docs])
- Don't fail tox pylint if PYLINT_ARGS is not set ([@scop] - [#28403])
- Upgrade pillow to 6.2.1 ([@fabaff] - [#28442]) ([image_processing docs]) ([proxy docs]) ([qrcode docs])
- Add dump config service to HomematicIP Cloud ([@SukramJ] - [#28231]) ([homematicip_cloud docs])
- Upgrade TwitterAPI to 2.5.10 ([@fabaff] - [#28401]) ([twitter docs])
- Replace Netatmo CO2 sensor icon ([@tlrobinson] - [#28520]) ([netatmo docs])
- Imports twitch ([@fabaff] - [#28517]) ([twitch docs])
- Upgrade paho-mqtt to 1.5.0 ([@fabaff] - [#28423]) ([mqtt docs]) ([shiftr docs])
- Upgrade jinja2 to >=2.10.3 ([@fabaff] - [#28422])
- iaqualink: better handling of failures ([@flz] - [#28514]) ([iaqualink docs])
- Add services description for ness alarm ([@tefinger] - [#28250])
- Add information to IFTTT services.yaml ([@PixelJonas] - [#28385])
- Expose set auto mode for all Dyson fans ([@soraxas] - [#28488]) ([dyson docs])
- Add compatibility for other STBY Codes ([@soundstorm] - [#28478]) ([pioneer docs])
- Remove legacy reproduce state ([@balloob] - [#28458])
- Align attribute naming between light and switch for HomematicIP Cloud ([@SukramJ] - [#28271]) ([homematicip_cloud docs]) (breaking change)
- Enable transition time for HmIP-BSL - HomematicIP Cloud ([@SukramJ] - [#28201]) ([homematicip_cloud docs])
- Speech to Text component ([@pvizeli] - [#28434]) ([demo docs]) ([stt docs]) (new-integration)
- Add switches (on/off zones) to geniushub ([@castaway] - [#28182]) ([geniushub docs]) (new-platform)
- Cleanup Device Registry on Z-Wave Node Removal ([@cgarwood] - [#28240]) ([zwave docs])
- Support Huawei LTE SSDP discovery ([@scop] - [#28214]) ([huawei_lte docs])
- Fire an event when nzbget download completes ([@chriscla] - [#27763]) ([nzbget docs])
- Add heating_type for ViCare integration ([@crazyfx1] - [#27296]) ([vicare docs])
- Bump version for asuswrt to 1.1.22 ([@kennedyshead] - [#28322]) ([asuswrt docs])
- Add config endpoint for scene ([@bramkragten] - [#28429]) ([config docs]) ([homeassistant docs]) (new-platform)
- Update ephember library version ([@ttroy50] - [#28507]) ([ephember docs])
- Checking state before actually sending a new state change. Some projectors return ERR if you try to turn off a projector that's already off. ([@mflage] - [#28529]) ([pjlink docs])
- rate is a separate word ([@balloob] - [#28535]) ([demo docs]) ([stt docs])
- Update Plugwise ([@bouwew] - [#28237]) ([plugwise docs]) (breaking change)
- Improve scene.create service ([@Santobert] - [#28533]) ([homeassistant docs])
- Reduce test requirements duplication, sync flake8 and related ([@scop] - [#28538])
- Avoid drawing image_processing font text inside the bow line ([@snowzach] - [#27796]) ([image_processing docs])
- Add override switch for juicenet ([@jesserockz] - [#28049]) ([juicenet docs]) (new-platform)
- Move imports in samsungtv component ([@Quentame] - [#27775]) ([samsungtv docs])
- Try fix tests ([@pvizeli] - [#28470])
- Add additional support over NC ([@pvizeli] - [#28527]) ([cloud docs]) ([stt docs]) (new-platform)
- Bump pytile and re-order imports ([@bachya] - [#28570]) ([tile docs])
- Update nextbus stop tag to accept strings ([@Grodesh] - [#27765]) ([nextbus docs])
- Bump adb-shell to 0.0.8 ([@JeffLIrion] - [#28582])
- Fix Doods error when detection labels are specified in list form ([@snowzach] - [#28574]) ([doods docs])
- Upgrade youtube_dl to 2019.11.05 ([@BKPepe] - [#28578]) ([media_extractor docs])
- Reset states when connection to MPC-HC is lost ([@temeteke] - [#27541]) ([mpchc docs])
- Add mqtt temp_low/high_template in SCHEMA_BASE ([@kevinkk525] - [#28257]) ([mqtt docs])
- Add Netatmo camera services ([@ssenart] - [#27970]) ([netatmo docs])
- Fix token sent to Almond Web ([@balloob] - [#28584]) ([almond docs])
- Update to latest Somfy changes ([@balloob] - [#28207]) ([somfy docs])
- Always run flake8 through pre-commit, and with doctests ([@scop] - [#28490])
- Handle exceptions from PyViCare library ([@oischinger] - [#28536]) ([vicare docs])
- Add WLED integration ([@frenck] - [#28542]) ([wled docs]) (new-integration)
- update to latest integration library version ([@exxamalte] - [#28597]) ([geonetnz_quakes docs])
- Upgrade greeneye_monitor to 1.0.1 ([@jkeljo] - [#28600]) ([greeneye_monitor docs])
- Add device actions to vacuum ([@balloob] - [#28554]) ([device_automation docs]) ([vacuum docs])
- Add device action to fan ([@balloob] - [#28550]) ([device_automation docs]) ([fan docs])
- Add lock device triggers ([@balloob] - [#28547]) ([device_automation docs]) ([lock docs])
- Add fan device trigger ([@balloob] - [#28545]) ([device_automation docs]) ([fan docs])
- Fix simple typo: unhasable -> unhashable ([@timgates42] - [#28605])
- Add device triggers to vacuum ([@balloob] - [#28548]) ([automation docs]) ([device_automation docs]) ([vacuum docs])
- Fix demo TTS ([@bramkragten] - [#28608]) ([demo docs])
- Add climate device actions ([@balloob] - [#28552]) ([climate docs]) ([device_automation docs])
- Add azure servicebus notify service ([@hfurubotten] - [#27566]) ([azure_service_bus docs]) (new-integration)
- Add climate device triggers ([@balloob] - [#28544]) ([automation docs]) ([climate docs]) ([device_automation docs]) ([homekit docs])
- Add fan device condition ([@balloob] - [#28549]) ([device_automation docs]) ([fan docs])
- Add vacuum device conditions ([@balloob] - [#28551]) ([device_automation docs]) ([vacuum docs])
- Add cool mode to HomematicIP climate ([@SukramJ] - [#28525]) ([homematicip_cloud docs])
- Add device conditions to climate ([@balloob] - [#28553]) ([device_automation docs])
- Add support for conversation ID ([@balloob] - [#28620]) ([almond docs]) ([conversation docs])
- Match ALARM in NUT UPS status message ([@bwarden] - [#28591]) ([nut docs])
- Use friendly app names for Fire TV sources ([@JeffLIrion] - [#28417]) ([androidtv docs]) (breaking change)
- Add Huawei LTE device registry support ([@scop] - [#28594]) ([huawei_lte docs])
- Fix generic_thermostat too_hot/too_cold ([@akasma74] - [#27860]) ([generic_thermostat docs])
- Add switch platform to WLED integration ([@frenck] - [#28606]) ([wled docs]) (new-platform)
- Add TT WS API ([@balloob] - [#28599]) ([cloud docs]) ([websocket_api docs])
- Add turn_on/off to tfiac ([@fredrike] - [#27712]) ([tfiac docs])
- Fix issue with multiple Netatmo home coach devices ([@cgtobi] - [#28407]) ([netatmo docs])
- Add attribution and onboarding commands to conversation and Almond ([@bramkragten] - [#28621]) ([almond docs]) ([conversation docs])
- Updated frontend to 20191108.0 ([@bramkragten] - [#28638]) ([frontend docs])
- Bump ZHA quirks version ([@dmulcahey] - [#28636]) ([zha docs])
- Move imports in xiaomi_miio ([@Misiu] - [#27773]) ([xiaomi_miio docs])
- Added support for multiple SAJ solar inverters ([@fredericvl] - [#28612]) ([saj docs])
- Add support for Heat Mode detection for ecobee Heat Pumps ([@arigit] - [#28273]) ([ecobee docs])
- Fix unhandled exception when Swisscom Internet Box is not responsive ([@LeoCal] - [#28618]) ([swisscom docs])
- Add pcal9535a integration ([@Shulyaka] - [#26563]) ([pcal9535a docs]) (new-integration)
- Add bluesound speaker group attribute ([@bluestripe] - [#28142]) ([bluesound docs])
- Fix xiaomi vacuum tests ([@MartinHjelmare] - [#28658])
- Add sensor platform to WLED integration ([@frenck] - [#28632]) ([wled docs]) (new-platform)
- Upgrade bimmer_connected to 0.6.2 ([@gerard33] - [#28651]) ([bmw_connected_drive docs])
- verisure autolock service ([@persandstrom] - [#27366]) ([verisure docs])
- Skip updating idle Plex clients ([@jjlawren] - [#28664]) ([plex docs])
- Hue: store current sensor entities by bridge ([@bramkragten] - [#28679]) ([hue docs])
- #28645: Bump up zm-py to 0.4.0 ([@rohankapoorcom] - [#28681]) ([zoneminder docs])
- Add codeowner for lutron integration ([@JonGilmore] - [#28682]) ([lutron docs])
- Add xiaomi_miio chuangmi.plug.hmi206 ([@rytilahti] - [#28688]) ([xiaomi_miio docs])
- Add Lutron hybrid keypad raise/lower buttons ([@kevineriklee] - [#28674]) ([lutron docs])
- Allow icons to be masked ([@bramkragten] - [#28692]) ([frontend docs])
- fix typo in comments ([@basnijholt] - [#28694])
- Add config flow tests for OwnTracks ([@Quentame] - [#28644]) ([owntracks docs])
- Update Homekit climate.py to remap current mode ([@GaryOkie] - [#28625]) ([homekit_controller docs]) (breaking change)
- Bump up ZHA dependencies. ([@Adminiuga] - [#28711]) ([zha docs])
- Ensure SimpliSafe alarm control panels can return from being offline ([@bachya] - [#28710]) ([simplisafe docs])
- Bump plexapi to 3.3.0 ([@jjlawren] - [#28709]) ([plex docs])
- Update binary_sensor.py ([@effelle] - [#28707]) ([mqtt docs])
- Allow preset boost for Homematic IP Cloud power switches ([@SukramJ] - [#28713]) ([homematicip_cloud docs])
- Upgrade discogs_client to 2.2.2 ([@fabaff] - [#28723]) ([discogs docs])
- Fix Here Travel Time unable to find entity on startup ([@eifinger] - [#27237]) ([here_travel_time docs])
- Use library method for season number ([@jjlawren] - [#28708]) ([plex docs])
- Remove choice word when Almond has choices ([@balloob] - [#28725]) ([almond docs])
- ESPHome fix missing state in certain circumstances ([@OttoWinter] - [#28729]) ([esphome docs])
- Set up Almond Web to connect to HA ([@balloob] - [#28603]) ([almond docs])
- version bump pypoint ([@fredrike] - [#28737]) ([point docs])
- Upgrade async_upnp_client==0.14.12 ([@StevenLooman] - [#28733]) ([dlna_dmr docs]) ([upnp docs])
- Add device classes to weather sensors. ([@davet2001] - [#28512]) ([yr docs])
- Upgrade psutil to 5.6.5 ([@fabaff] - [#28717]) ([systemmonitor docs])
- Travis and tox config improvements ([@scop] - [#28667])
- Correct openalpr_local config option name ([@HexF] - [#28746]) ([openalpr_local docs]) (breaking change)
- Bump ZHA quirks to 0.0.28 ([@dmulcahey] - [#28750]) ([zha docs]) (beta fix)
- Updated frontend to 20191114.0 ([@bramkragten] - [#28768]) ([frontend docs]) (beta fix)
- Fix account link version check ([@balloob] - [#28770]) ([cloud docs]) (beta fix)
- Fix amazon dependency conflicts ([@bbrendon] - [#28217]) ([amazon_polly docs]) ([aws docs]) (beta fix)
- Change unique id for SAJ sensor based on device SN ([@fredericvl] - [#28663]) ([saj docs]) (breaking change) (beta fix)
- Fix changing venstar operation_mode ([@iamtpage] - [#28754]) ([venstar docs]) (beta fix)
- Fix Repetier integration entity indexing ([@MTrab] - [#28766]) ([repetier docs]) (beta fix)
- Fix HomematicIP Cloud Alarm Control Panel support for basic mode ([@SukramJ] - [#28778]) ([homematicip_cloud docs]) (beta fix)
- Fix Swisscom empty response received ([@LeoCal] - [#28782]) ([swisscom docs]) (beta fix)
- Fix broken postnl sensor ([@peternijssen] - [#28794]) (beta fix)
- Updated frontend to 20191115.0 ([@bramkragten] - [#28797]) ([frontend docs]) (beta fix)
- Fix Comfoconnect errors during startup ([@michaelarnauts] - [#28802]) ([comfoconnect docs]) (beta fix)
- Fix miio air quality sensor ([@valkjsaaa] - [#28828]) ([xiaomi_miio docs]) (beta fix)
- Update pyatmo to 3.0.1 ([@cgtobi] - [#28829]) ([netatmo docs]) (beta fix)
- Updated frontend to 20191118.0 ([@bramkragten] - [#28852]) ([frontend docs]) (beta fix)
- Fix documentation URL in failed platform config check ([@frenck] - [#28814]) (beta fix)
- Fix Synology camera whitelist ([@h4de5] - [#28822]) ([synology docs]) (beta fix)
- Fix setting colors while reproducing a lights state ([@Santobert] - [#28871]) ([light docs]) (beta fix)
- Updated frontend to 20191119.0 ([@bramkragten] - [#28875]) ([frontend docs]) (beta fix)
- Updated frontend to 20191119.1 ([@bramkragten] - [#28881]) ([frontend docs]) (beta fix)
- Updated frontend to 20191119.2 ([@bramkragten] - [#28896]) ([frontend docs]) (beta fix)
- Fix Almond onboarding url when using cloud ([@bramkragten] - [#28908]) ([almond docs]) (beta fix)

[#26563]: https://github.com/home-assistant/home-assistant/pull/26563
[#26656]: https://github.com/home-assistant/home-assistant/pull/26656
[#26675]: https://github.com/home-assistant/home-assistant/pull/26675
[#26692]: https://github.com/home-assistant/home-assistant/pull/26692
[#27111]: https://github.com/home-assistant/home-assistant/pull/27111
[#27237]: https://github.com/home-assistant/home-assistant/pull/27237
[#27296]: https://github.com/home-assistant/home-assistant/pull/27296
[#27306]: https://github.com/home-assistant/home-assistant/pull/27306
[#27307]: https://github.com/home-assistant/home-assistant/pull/27307
[#27324]: https://github.com/home-assistant/home-assistant/pull/27324
[#27366]: https://github.com/home-assistant/home-assistant/pull/27366
[#27475]: https://github.com/home-assistant/home-assistant/pull/27475
[#27492]: https://github.com/home-assistant/home-assistant/pull/27492
[#27517]: https://github.com/home-assistant/home-assistant/pull/27517
[#27538]: https://github.com/home-assistant/home-assistant/pull/27538
[#27541]: https://github.com/home-assistant/home-assistant/pull/27541
[#27548]: https://github.com/home-assistant/home-assistant/pull/27548
[#27566]: https://github.com/home-assistant/home-assistant/pull/27566
[#27712]: https://github.com/home-assistant/home-assistant/pull/27712
[#27735]: https://github.com/home-assistant/home-assistant/pull/27735
[#27761]: https://github.com/home-assistant/home-assistant/pull/27761
[#27763]: https://github.com/home-assistant/home-assistant/pull/27763
[#27765]: https://github.com/home-assistant/home-assistant/pull/27765
[#27773]: https://github.com/home-assistant/home-assistant/pull/27773
[#27775]: https://github.com/home-assistant/home-assistant/pull/27775
[#27796]: https://github.com/home-assistant/home-assistant/pull/27796
[#27817]: https://github.com/home-assistant/home-assistant/pull/27817
[#27830]: https://github.com/home-assistant/home-assistant/pull/27830
[#27860]: https://github.com/home-assistant/home-assistant/pull/27860
[#27941]: https://github.com/home-assistant/home-assistant/pull/27941
[#27949]: https://github.com/home-assistant/home-assistant/pull/27949
[#27970]: https://github.com/home-assistant/home-assistant/pull/27970
[#28049]: https://github.com/home-assistant/home-assistant/pull/28049
[#28063]: https://github.com/home-assistant/home-assistant/pull/28063
[#28142]: https://github.com/home-assistant/home-assistant/pull/28142
[#28161]: https://github.com/home-assistant/home-assistant/pull/28161
[#28163]: https://github.com/home-assistant/home-assistant/pull/28163
[#28168]: https://github.com/home-assistant/home-assistant/pull/28168
[#28171]: https://github.com/home-assistant/home-assistant/pull/28171
[#28175]: https://github.com/home-assistant/home-assistant/pull/28175
[#28176]: https://github.com/home-assistant/home-assistant/pull/28176
[#28178]: https://github.com/home-assistant/home-assistant/pull/28178
[#28179]: https://github.com/home-assistant/home-assistant/pull/28179
[#28180]: https://github.com/home-assistant/home-assistant/pull/28180
[#28181]: https://github.com/home-assistant/home-assistant/pull/28181
[#28182]: https://github.com/home-assistant/home-assistant/pull/28182
[#28186]: https://github.com/home-assistant/home-assistant/pull/28186
[#28187]: https://github.com/home-assistant/home-assistant/pull/28187
[#28188]: https://github.com/home-assistant/home-assistant/pull/28188
[#28189]: https://github.com/home-assistant/home-assistant/pull/28189
[#28190]: https://github.com/home-assistant/home-assistant/pull/28190
[#28191]: https://github.com/home-assistant/home-assistant/pull/28191
[#28196]: https://github.com/home-assistant/home-assistant/pull/28196
[#28201]: https://github.com/home-assistant/home-assistant/pull/28201
[#28203]: https://github.com/home-assistant/home-assistant/pull/28203
[#28204]: https://github.com/home-assistant/home-assistant/pull/28204
[#28207]: https://github.com/home-assistant/home-assistant/pull/28207
[#28210]: https://github.com/home-assistant/home-assistant/pull/28210
[#28212]: https://github.com/home-assistant/home-assistant/pull/28212
[#28214]: https://github.com/home-assistant/home-assistant/pull/28214
[#28215]: https://github.com/home-assistant/home-assistant/pull/28215
[#28216]: https://github.com/home-assistant/home-assistant/pull/28216
[#28217]: https://github.com/home-assistant/home-assistant/pull/28217
[#28220]: https://github.com/home-assistant/home-assistant/pull/28220
[#28225]: https://github.com/home-assistant/home-assistant/pull/28225
[#28228]: https://github.com/home-assistant/home-assistant/pull/28228
[#28230]: https://github.com/home-assistant/home-assistant/pull/28230
[#28231]: https://github.com/home-assistant/home-assistant/pull/28231
[#28234]: https://github.com/home-assistant/home-assistant/pull/28234
[#28236]: https://github.com/home-assistant/home-assistant/pull/28236
[#28237]: https://github.com/home-assistant/home-assistant/pull/28237
[#28238]: https://github.com/home-assistant/home-assistant/pull/28238
[#28240]: https://github.com/home-assistant/home-assistant/pull/28240
[#28247]: https://github.com/home-assistant/home-assistant/pull/28247
[#28248]: https://github.com/home-assistant/home-assistant/pull/28248
[#28250]: https://github.com/home-assistant/home-assistant/pull/28250
[#28252]: https://github.com/home-assistant/home-assistant/pull/28252
[#28257]: https://github.com/home-assistant/home-assistant/pull/28257
[#28258]: https://github.com/home-assistant/home-assistant/pull/28258
[#28260]: https://github.com/home-assistant/home-assistant/pull/28260
[#28261]: https://github.com/home-assistant/home-assistant/pull/28261
[#28262]: https://github.com/home-assistant/home-assistant/pull/28262
[#28269]: https://github.com/home-assistant/home-assistant/pull/28269
[#28270]: https://github.com/home-assistant/home-assistant/pull/28270
[#28271]: https://github.com/home-assistant/home-assistant/pull/28271
[#28273]: https://github.com/home-assistant/home-assistant/pull/28273
[#28277]: https://github.com/home-assistant/home-assistant/pull/28277
[#28278]: https://github.com/home-assistant/home-assistant/pull/28278
[#28282]: https://github.com/home-assistant/home-assistant/pull/28282
[#28285]: https://github.com/home-assistant/home-assistant/pull/28285
[#28286]: https://github.com/home-assistant/home-assistant/pull/28286
[#28287]: https://github.com/home-assistant/home-assistant/pull/28287
[#28288]: https://github.com/home-assistant/home-assistant/pull/28288
[#28291]: https://github.com/home-assistant/home-assistant/pull/28291
[#28293]: https://github.com/home-assistant/home-assistant/pull/28293
[#28299]: https://github.com/home-assistant/home-assistant/pull/28299
[#28300]: https://github.com/home-assistant/home-assistant/pull/28300
[#28301]: https://github.com/home-assistant/home-assistant/pull/28301
[#28304]: https://github.com/home-assistant/home-assistant/pull/28304
[#28305]: https://github.com/home-assistant/home-assistant/pull/28305
[#28310]: https://github.com/home-assistant/home-assistant/pull/28310
[#28311]: https://github.com/home-assistant/home-assistant/pull/28311
[#28312]: https://github.com/home-assistant/home-assistant/pull/28312
[#28313]: https://github.com/home-assistant/home-assistant/pull/28313
[#28322]: https://github.com/home-assistant/home-assistant/pull/28322
[#28324]: https://github.com/home-assistant/home-assistant/pull/28324
[#28330]: https://github.com/home-assistant/home-assistant/pull/28330
[#28338]: https://github.com/home-assistant/home-assistant/pull/28338
[#28339]: https://github.com/home-assistant/home-assistant/pull/28339
[#28349]: https://github.com/home-assistant/home-assistant/pull/28349
[#28352]: https://github.com/home-assistant/home-assistant/pull/28352
[#28362]: https://github.com/home-assistant/home-assistant/pull/28362
[#28369]: https://github.com/home-assistant/home-assistant/pull/28369
[#28382]: https://github.com/home-assistant/home-assistant/pull/28382
[#28385]: https://github.com/home-assistant/home-assistant/pull/28385
[#28401]: https://github.com/home-assistant/home-assistant/pull/28401
[#28403]: https://github.com/home-assistant/home-assistant/pull/28403
[#28407]: https://github.com/home-assistant/home-assistant/pull/28407
[#28413]: https://github.com/home-assistant/home-assistant/pull/28413
[#28417]: https://github.com/home-assistant/home-assistant/pull/28417
[#28421]: https://github.com/home-assistant/home-assistant/pull/28421
[#28422]: https://github.com/home-assistant/home-assistant/pull/28422
[#28423]: https://github.com/home-assistant/home-assistant/pull/28423
[#28424]: https://github.com/home-assistant/home-assistant/pull/28424
[#28428]: https://github.com/home-assistant/home-assistant/pull/28428
[#28429]: https://github.com/home-assistant/home-assistant/pull/28429
[#28434]: https://github.com/home-assistant/home-assistant/pull/28434
[#28438]: https://github.com/home-assistant/home-assistant/pull/28438
[#28442]: https://github.com/home-assistant/home-assistant/pull/28442
[#28445]: https://github.com/home-assistant/home-assistant/pull/28445
[#28449]: https://github.com/home-assistant/home-assistant/pull/28449
[#28452]: https://github.com/home-assistant/home-assistant/pull/28452
[#28458]: https://github.com/home-assistant/home-assistant/pull/28458
[#28463]: https://github.com/home-assistant/home-assistant/pull/28463
[#28465]: https://github.com/home-assistant/home-assistant/pull/28465
[#28468]: https://github.com/home-assistant/home-assistant/pull/28468
[#28470]: https://github.com/home-assistant/home-assistant/pull/28470
[#28478]: https://github.com/home-assistant/home-assistant/pull/28478
[#28487]: https://github.com/home-assistant/home-assistant/pull/28487
[#28488]: https://github.com/home-assistant/home-assistant/pull/28488
[#28490]: https://github.com/home-assistant/home-assistant/pull/28490
[#28503]: https://github.com/home-assistant/home-assistant/pull/28503
[#28506]: https://github.com/home-assistant/home-assistant/pull/28506
[#28507]: https://github.com/home-assistant/home-assistant/pull/28507
[#28509]: https://github.com/home-assistant/home-assistant/pull/28509
[#28511]: https://github.com/home-assistant/home-assistant/pull/28511
[#28512]: https://github.com/home-assistant/home-assistant/pull/28512
[#28514]: https://github.com/home-assistant/home-assistant/pull/28514
[#28517]: https://github.com/home-assistant/home-assistant/pull/28517
[#28520]: https://github.com/home-assistant/home-assistant/pull/28520
[#28525]: https://github.com/home-assistant/home-assistant/pull/28525
[#28527]: https://github.com/home-assistant/home-assistant/pull/28527
[#28529]: https://github.com/home-assistant/home-assistant/pull/28529
[#28533]: https://github.com/home-assistant/home-assistant/pull/28533
[#28535]: https://github.com/home-assistant/home-assistant/pull/28535
[#28536]: https://github.com/home-assistant/home-assistant/pull/28536
[#28538]: https://github.com/home-assistant/home-assistant/pull/28538
[#28542]: https://github.com/home-assistant/home-assistant/pull/28542
[#28544]: https://github.com/home-assistant/home-assistant/pull/28544
[#28545]: https://github.com/home-assistant/home-assistant/pull/28545
[#28547]: https://github.com/home-assistant/home-assistant/pull/28547
[#28548]: https://github.com/home-assistant/home-assistant/pull/28548
[#28549]: https://github.com/home-assistant/home-assistant/pull/28549
[#28550]: https://github.com/home-assistant/home-assistant/pull/28550
[#28551]: https://github.com/home-assistant/home-assistant/pull/28551
[#28552]: https://github.com/home-assistant/home-assistant/pull/28552
[#28553]: https://github.com/home-assistant/home-assistant/pull/28553
[#28554]: https://github.com/home-assistant/home-assistant/pull/28554
[#28570]: https://github.com/home-assistant/home-assistant/pull/28570
[#28574]: https://github.com/home-assistant/home-assistant/pull/28574
[#28578]: https://github.com/home-assistant/home-assistant/pull/28578
[#28582]: https://github.com/home-assistant/home-assistant/pull/28582
[#28584]: https://github.com/home-assistant/home-assistant/pull/28584
[#28591]: https://github.com/home-assistant/home-assistant/pull/28591
[#28594]: https://github.com/home-assistant/home-assistant/pull/28594
[#28597]: https://github.com/home-assistant/home-assistant/pull/28597
[#28599]: https://github.com/home-assistant/home-assistant/pull/28599
[#28600]: https://github.com/home-assistant/home-assistant/pull/28600
[#28603]: https://github.com/home-assistant/home-assistant/pull/28603
[#28605]: https://github.com/home-assistant/home-assistant/pull/28605
[#28606]: https://github.com/home-assistant/home-assistant/pull/28606
[#28608]: https://github.com/home-assistant/home-assistant/pull/28608
[#28612]: https://github.com/home-assistant/home-assistant/pull/28612
[#28618]: https://github.com/home-assistant/home-assistant/pull/28618
[#28620]: https://github.com/home-assistant/home-assistant/pull/28620
[#28621]: https://github.com/home-assistant/home-assistant/pull/28621
[#28625]: https://github.com/home-assistant/home-assistant/pull/28625
[#28632]: https://github.com/home-assistant/home-assistant/pull/28632
[#28636]: https://github.com/home-assistant/home-assistant/pull/28636
[#28638]: https://github.com/home-assistant/home-assistant/pull/28638
[#28644]: https://github.com/home-assistant/home-assistant/pull/28644
[#28651]: https://github.com/home-assistant/home-assistant/pull/28651
[#28658]: https://github.com/home-assistant/home-assistant/pull/28658
[#28663]: https://github.com/home-assistant/home-assistant/pull/28663
[#28664]: https://github.com/home-assistant/home-assistant/pull/28664
[#28667]: https://github.com/home-assistant/home-assistant/pull/28667
[#28674]: https://github.com/home-assistant/home-assistant/pull/28674
[#28679]: https://github.com/home-assistant/home-assistant/pull/28679
[#28681]: https://github.com/home-assistant/home-assistant/pull/28681
[#28682]: https://github.com/home-assistant/home-assistant/pull/28682
[#28688]: https://github.com/home-assistant/home-assistant/pull/28688
[#28692]: https://github.com/home-assistant/home-assistant/pull/28692
[#28694]: https://github.com/home-assistant/home-assistant/pull/28694
[#28707]: https://github.com/home-assistant/home-assistant/pull/28707
[#28708]: https://github.com/home-assistant/home-assistant/pull/28708
[#28709]: https://github.com/home-assistant/home-assistant/pull/28709
[#28710]: https://github.com/home-assistant/home-assistant/pull/28710
[#28711]: https://github.com/home-assistant/home-assistant/pull/28711
[#28713]: https://github.com/home-assistant/home-assistant/pull/28713
[#28717]: https://github.com/home-assistant/home-assistant/pull/28717
[#28723]: https://github.com/home-assistant/home-assistant/pull/28723
[#28725]: https://github.com/home-assistant/home-assistant/pull/28725
[#28729]: https://github.com/home-assistant/home-assistant/pull/28729
[#28733]: https://github.com/home-assistant/home-assistant/pull/28733
[#28737]: https://github.com/home-assistant/home-assistant/pull/28737
[#28746]: https://github.com/home-assistant/home-assistant/pull/28746
[#28750]: https://github.com/home-assistant/home-assistant/pull/28750
[#28754]: https://github.com/home-assistant/home-assistant/pull/28754
[#28766]: https://github.com/home-assistant/home-assistant/pull/28766
[#28768]: https://github.com/home-assistant/home-assistant/pull/28768
[#28770]: https://github.com/home-assistant/home-assistant/pull/28770
[#28778]: https://github.com/home-assistant/home-assistant/pull/28778
[#28782]: https://github.com/home-assistant/home-assistant/pull/28782
[#28794]: https://github.com/home-assistant/home-assistant/pull/28794
[#28797]: https://github.com/home-assistant/home-assistant/pull/28797
[#28802]: https://github.com/home-assistant/home-assistant/pull/28802
[#28814]: https://github.com/home-assistant/home-assistant/pull/28814
[#28822]: https://github.com/home-assistant/home-assistant/pull/28822
[#28828]: https://github.com/home-assistant/home-assistant/pull/28828
[#28829]: https://github.com/home-assistant/home-assistant/pull/28829
[#28852]: https://github.com/home-assistant/home-assistant/pull/28852
[#28871]: https://github.com/home-assistant/home-assistant/pull/28871
[#28875]: https://github.com/home-assistant/home-assistant/pull/28875
[#28881]: https://github.com/home-assistant/home-assistant/pull/28881
[#28896]: https://github.com/home-assistant/home-assistant/pull/28896
[#28908]: https://github.com/home-assistant/home-assistant/pull/28908
[@adminiuga]: https://github.com/Adminiuga
[@anonym-tsk]: https://github.com/Anonym-tsk
[@bkpepe]: https://github.com/BKPepe
[@garyokie]: https://github.com/GaryOkie
[@grodesh]: https://github.com/Grodesh
[@harlemsquirrel]: https://github.com/HarlemSquirrel
[@hexf]: https://github.com/HexF
[@jphutchins]: https://github.com/JPHutchins
[@jefflirion]: https://github.com/JeffLIrion
[@jongilmore]: https://github.com/JonGilmore
[@kane610]: https://github.com/Kane610
[@leocal]: https://github.com/LeoCal
[@mtrab]: https://github.com/MTrab
[@martinhjelmare]: https://github.com/MartinHjelmare
[@misiu]: https://github.com/Misiu
[@onfreund]: https://github.com/OnFreund
[@ottowinter]: https://github.com/OttoWinter
[@pixeljonas]: https://github.com/PixelJonas
[@poeschl]: https://github.com/Poeschl
[@quentame]: https://github.com/Quentame
[@santobert]: https://github.com/Santobert
[@schoonology]: https://github.com/Schoonology
[@shulyaka]: https://github.com/Shulyaka
[@stevenlooman]: https://github.com/StevenLooman
[@sukramj]: https://github.com/SukramJ
[@zironl]: https://github.com/ZiroNL
[@akasma74]: https://github.com/akasma74
[@arigit]: https://github.com/arigit
[@bachya]: https://github.com/bachya
[@balloob]: https://github.com/balloob
[@basnijholt]: https://github.com/basnijholt
[@bbrendon]: https://github.com/bbrendon
[@bendavid]: https://github.com/bendavid
[@bluestripe]: https://github.com/bluestripe
[@bouwew]: https://github.com/bouwew
[@bramkragten]: https://github.com/bramkragten
[@bwarden]: https://github.com/bwarden
[@castaway]: https://github.com/castaway
[@cgarwood]: https://github.com/cgarwood
[@cgtobi]: https://github.com/cgtobi
[@chriscla]: https://github.com/chriscla
[@crazyfx1]: https://github.com/crazyfx1
[@davet2001]: https://github.com/davet2001
[@djpremier]: https://github.com/djpremier
[@dmulcahey]: https://github.com/dmulcahey
[@effelle]: https://github.com/effelle
[@eifinger]: https://github.com/eifinger
[@eliseomartelli]: https://github.com/eliseomartelli
[@elupus]: https://github.com/elupus
[@emontnemery]: https://github.com/emontnemery
[@escoand]: https://github.com/escoand
[@exxamalte]: https://github.com/exxamalte
[@fabaff]: https://github.com/fabaff
[@florisvdk]: https://github.com/florisvdk
[@flz]: https://github.com/flz
[@fredericvl]: https://github.com/fredericvl
[@fredrike]: https://github.com/fredrike
[@frenck]: https://github.com/frenck
[@fwestenberg]: https://github.com/fwestenberg
[@gerard33]: https://github.com/gerard33
[@gngj]: https://github.com/gngj
[@guillempages]: https://github.com/guillempages
[@h4de5]: https://github.com/h4de5
[@hfurubotten]: https://github.com/hfurubotten
[@iamtpage]: https://github.com/iamtpage
[@jesserockz]: https://github.com/jesserockz
[@jjlawren]: https://github.com/jjlawren
[@jkeljo]: https://github.com/jkeljo
[@karouf]: https://github.com/karouf
[@kennedyshead]: https://github.com/kennedyshead
[@kevineriklee]: https://github.com/kevineriklee
[@kevinkk525]: https://github.com/kevinkk525
[@ktnrg45]: https://github.com/ktnrg45
[@ludeeus]: https://github.com/ludeeus
[@marthoc]: https://github.com/marthoc
[@mezz64]: https://github.com/mezz64
[@mflage]: https://github.com/mflage
[@michaelarnauts]: https://github.com/michaelarnauts
[@michaeldavie]: https://github.com/michaeldavie
[@nkaminski]: https://github.com/nkaminski
[@ochlocracy]: https://github.com/ochlocracy
[@oischinger]: https://github.com/oischinger
[@pattyland]: https://github.com/pattyland
[@persandstrom]: https://github.com/persandstrom
[@peternijssen]: https://github.com/peternijssen
[@pvizeli]: https://github.com/pvizeli
[@rohankapoorcom]: https://github.com/rohankapoorcom
[@rutkai]: https://github.com/rutkai
[@rytilahti]: https://github.com/rytilahti
[@scop]: https://github.com/scop
[@shmooey]: https://github.com/shmooey
[@snowzach]: https://github.com/snowzach
[@soraxas]: https://github.com/soraxas
[@soundstorm]: https://github.com/soundstorm
[@ssenart]: https://github.com/ssenart
[@syssi]: https://github.com/syssi
[@tefinger]: https://github.com/tefinger
[@temeteke]: https://github.com/temeteke
[@thoscut]: https://github.com/thoscut
[@timgates42]: https://github.com/timgates42
[@tlrobinson]: https://github.com/tlrobinson
[@ttroy50]: https://github.com/ttroy50
[@valkjsaaa]: https://github.com/valkjsaaa
[@vangorra]: https://github.com/vangorra
[@yeralin]: https://github.com/yeralin
[@yjajkiew]: https://github.com/yjajkiew
[@zxdavb]: https://github.com/zxdavb
[alarm_control_panel docs]: /integrations/alarm_control_panel/
[alexa docs]: /integrations/alexa/
[almond docs]: /integrations/almond/
[amazon_polly docs]: /integrations/amazon_polly/
[androidtv docs]: /integrations/androidtv/
[asuswrt docs]: /integrations/asuswrt/
[automation docs]: /integrations/automation/
[avea docs]: /integrations/avea/
[aws docs]: /integrations/aws/
[azure_service_bus docs]: /integrations/azure_service_bus/
[bluesound docs]: /integrations/bluesound/
[bmw_connected_drive docs]: /integrations/bmw_connected_drive/
[climate docs]: /integrations/climate/
[cloud docs]: /integrations/cloud/
[comfoconnect docs]: /integrations/comfoconnect/
[config docs]: /integrations/config/
[conversation docs]: /integrations/conversation/
[coolmaster docs]: /integrations/coolmaster/
[cover docs]: /integrations/cover/
[deconz docs]: /integrations/deconz/
[demo docs]: /integrations/demo/
[device_automation docs]: /integrations/device_automation/
[device_tracker docs]: /integrations/device_tracker/
[discogs docs]: /integrations/discogs/
[dlna_dmr docs]: /integrations/dlna_dmr/
[doods docs]: /integrations/doods/
[dyson docs]: /integrations/dyson/
[ecobee docs]: /integrations/ecobee/
[eight_sleep docs]: /integrations/eight_sleep/
[environment_canada docs]: /integrations/environment_canada/
[envirophat docs]: /integrations/envirophat/
[ephember docs]: /integrations/ephember/
[eq3btsmart docs]: /integrations/eq3btsmart/
[esphome docs]: /integrations/esphome/
[fan docs]: /integrations/fan/
[feedreader docs]: /integrations/feedreader/
[flux docs]: /integrations/flux/
[flux_led docs]: /integrations/flux_led/
[folder docs]: /integrations/folder/
[frontend docs]: /integrations/frontend/
[generic_thermostat docs]: /integrations/generic_thermostat/
[geniushub docs]: /integrations/geniushub/
[geonetnz_quakes docs]: /integrations/geonetnz_quakes/
[google_assistant docs]: /integrations/google_assistant/
[greeneye_monitor docs]: /integrations/greeneye_monitor/
[gtt docs]: /integrations/gtt/
[hangouts docs]: /integrations/hangouts/
[hassio docs]: /integrations/hassio/
[here_travel_time docs]: /integrations/here_travel_time/
[homeassistant docs]: /integrations/homeassistant/
[homekit docs]: /integrations/homekit/
[homekit_controller docs]: /integrations/homekit_controller/
[homematic docs]: /integrations/homematic/
[homematicip_cloud docs]: /integrations/homematicip_cloud/
[huawei_lte docs]: /integrations/huawei_lte/
[hue docs]: /integrations/hue/
[iaqualink docs]: /integrations/iaqualink/
[image_processing docs]: /integrations/image_processing/
[imap docs]: /integrations/imap/
[incomfort docs]: /integrations/incomfort/
[iss docs]: /integrations/iss/
[juicenet docs]: /integrations/juicenet/
[keyboard_remote docs]: /integrations/keyboard_remote/
[light docs]: /integrations/light/
[lock docs]: /integrations/lock/
[lutron docs]: /integrations/lutron/
[media_extractor docs]: /integrations/media_extractor/
[media_player docs]: /integrations/media_player/
[mpchc docs]: /integrations/mpchc/
[mqtt docs]: /integrations/mqtt/
[netatmo docs]: /integrations/netatmo/
[nextbus docs]: /integrations/nextbus/
[nut docs]: /integrations/nut/
[nzbget docs]: /integrations/nzbget/
[onvif docs]: /integrations/onvif/
[openalpr_local docs]: /integrations/openalpr_local/
[owntracks docs]: /integrations/owntracks/
[pcal9535a docs]: /integrations/pcal9535a/
[pioneer docs]: /integrations/pioneer/
[pjlink docs]: /integrations/pjlink/
[plex docs]: /integrations/plex/
[plugwise docs]: /integrations/plugwise/
[point docs]: /integrations/point/
[proxy docs]: /integrations/proxy/
[ps4 docs]: /integrations/ps4/
[qrcode docs]: /integrations/qrcode/
[reddit docs]: /integrations/reddit/
[repetier docs]: /integrations/repetier/
[saj docs]: /integrations/saj/
[samsungtv docs]: /integrations/samsungtv/
[shiftr docs]: /integrations/shiftr/
[simplisafe docs]: /integrations/simplisafe/
[snmp docs]: /integrations/snmp/
[somfy docs]: /integrations/somfy/
[ssdp docs]: /integrations/ssdp/
[stt docs]: /integrations/stt/
[swisscom docs]: /integrations/swisscom/
[synology docs]: /integrations/synology/
[systemmonitor docs]: /integrations/systemmonitor/
[tahoma docs]: /integrations/tahoma/
[telegram_bot docs]: /integrations/telegram_bot/
[tfiac docs]: /integrations/tfiac/
[thingspeak docs]: /integrations/thingspeak/
[tile docs]: /integrations/tile/
[tradfri docs]: /integrations/tradfri/
[transmission docs]: /integrations/transmission/
[twitch docs]: /integrations/twitch/
[twitter docs]: /integrations/twitter/
[unifiled docs]: /integrations/unifiled/
[upnp docs]: /integrations/upnp/
[vacuum docs]: /integrations/vacuum/
[venstar docs]: /integrations/venstar/
[verisure docs]: /integrations/verisure/
[vicare docs]: /integrations/vicare/
[vivotek docs]: /integrations/vivotek/
[water_heater docs]: /integrations/water_heater/
[watson_tts docs]: /integrations/watson_tts/
[websocket_api docs]: /integrations/websocket_api/
[withings docs]: /integrations/withings/
[wled docs]: /integrations/wled/
[xiaomi_miio docs]: /integrations/xiaomi_miio/
[yr docs]: /integrations/yr/
[zha docs]: /integrations/zha/
[zoneminder docs]: /integrations/zoneminder/
[zwave docs]: /integrations/zwave/
