---
layout: post
title: "0.113: Automations & Scripts, and even more performance!"
description: "Automate with sub-second precision in different running modes, use loops, repeats, choose and cool down. New MDI icons and a generally faster performance with lower CPU usage"
date: 2020-07-22 00:00:00
date_formatted: "July 22, 2020"
author: Franck Nijhof
author_twitter: frenck
comments: true
categories: Release-Notes
og_image: /images/blog/2020-07-0.113/social.png
---

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

Another special, themed, release inbound!

It seems like [@bdraco] is unstoppable; he just keeps going on improving
the performance of the Core. I truly admire him for the work he has been
delivering the past months, however, that is not the point of this release.
Sorry, [@bdraco]!

This release is about: Automations & Scripts! Yes!!!

A long, long time bug with automation triggering has been resolved, but not
only that, [@pnbruckner] went all-in by extending the automation/script engine
even more.

Adding repeat, a chooser and running modes (with cool down possibilities as a side-effect).

I've been playing with these features on my home already and I've
changed/improved quite a few things. For real, [@pnbruckner], thank you!

Enjoy the release!

../Frenck

## Ludeeus joins Nabu Casa

Today we're happy to announce that [@ludeeus] is joining Nabu Casa to work
full-time on Home Assistant!

Ludeeus has been a core contributor for a long time working on the Supervisor
panel and different bits of the frontend. He is, however, mainly known as the
creator of the [Home Assistant Community Store (HACS)][hacs].

We're looking forward to seeing what he can do now that he is able to focus
full-time on Home Assistant.

Welcome [@ludeeus]!

[hacs]: https://hacs.xyz/

## Automations & Scripts

This release brings changes to our automations and scripts. Before we start with
this all, please note, that the `action` part of an automation is a script
`sequence`.

**So, all discussed below, apply to both scripts and automations.**

Before diving in: All automation and script changes, have been driven by
[@pnbruckner]! It is awesome! Thanks!

### Automations & Scripts: Bug fix

There has been an issue with our automations for a long time already, which
you actually might have never noticed. It is kinda hard to explain, so this
needs an example.

Consider the following automation:

```yaml
automation:
  - alias: "Example"
    description: "On button press, turn on the light bulb for 10 seconds."
    trigger:
      - platform: state
        entity_id: binary_sensor.button
        to: "on"
    action:
      - service: light.turn_on
        entity_id: light.bulb
      - delay:
          seconds: 10
      - service: light.turn_off
        entity_id: light.bulb
```

This automation turns on a light bulb when the button is pressed, and after
10 seconds, it turns off the light bulb again. A fairly basic automation, which
does exactly what one would expect, except when a button is pressed twice.

So it takes 10 seconds for the bulb to turn off, what if you press the button
again after 5 seconds?

_Please, think about this for a moment..._

What actually happened before 0.113, is that the light bulb would turn off
immediately! Chances are, you didn't expect that.

Let's explain this: So the first button push, turns on the light, and the delay
is active for 10 seconds. The second button push, done after 5 seconds, is
actually not handled, however, it does cause the delay of the first run to
cancel itself and continues to run the rest of the actions/sequence,
causing the light to turn off immediately!

That bug, has been fixed. As of this release, the second button press wouldn't
do anything and the light will now turn off after 10 seconds, which the first
button push has triggered.

### Automations & Scripts: Running modes

With the above-mentioned bug fix, it now becomes possible to introduce new
running modes for both scripts and automations. It allows you to control
what happens if actions of a previous trigger are still running.

Considering the light bulb example in the bug fix paraph above, it shows
the default mode: `single`, which means: Do not run and ignore the trigger
if a previous action of the same automation is still running.

Besides the default `single` mode, the following modes are now available:

| Mode       | Description                                                   |
| ---------- | ------------------------------------------------------------- |
| `single`   | Do not start a new run, if running already.                   |
| `restart`  | Start a new run, after stopping the previous run.             |
| `queued`   | Start a new run after all previous runs complete.             |
| `parallel` | Start a new, independent, run in parallel with previous runs. |

<p class='img'>
<img src='/images/integrations/script/script_modes.jpg' alt='Automation/script running modes visual explained.'></a>
Automation/script running modes visual explained.
</p>

For the queued and parallel modes, an additional parameter `max` is available
to control the maximum number of runs that are awaiting each other. When
omitting this setting, it would default to 10.

To clarify a little more, remember the first example in the bug fix paragraph
where the light bulb would turn on for 10 seconds after a button press?

This would make every button press within the 10 seconds, restart the countdown
again:

```yaml
automation:
  - trigger:
      - ...
    mode: restart
    action:
      - ...
```

And this example, would turn on/off the light, for 10 seconds twice, if the
button was pressed after 5 seconds.

```yaml
automation:
  - trigger:
      - ...
    mode: queued
    action:
      - ...
```

The modes are also available for automations and scripts in the frontend UI:

<p class='img'>
<img src='/images/blog/2020-07-0.113/automation-modes.png' alt='Screenshot of running modes in the frontend'></a>
Screenshot of running modes in the frontend.
</p>

This is a powerful feature, which allows you to control how automations
and scripts are run in ways you could not do before.

More information about the running mode can be found in the [automations][automation-mode]
and [scripts][scripts-mode] documentation.

[automation-mode]: /docs/automation/#automation-modes
[scripts-mode]: /integrations/script#script-modes

### Automations & Scripts: Repeats

A brand new action is made to allow for repeating (also called loops)
part of your automations or scripts.

The new repeat feature can be used in three different ways:

- **Counted repeat**: Control how many times to repeat a sequence.
- **While loop**: Keep repeating as long the condition(s) is/are met.
- **Repeat until**: Runs at least once, and decides after that to repeat until the condition(s) is/are met.

For example, this would spam your phone with the same message 10 times:

```yaml
# Send notification spam to phone
script:
  phone_spam:
    sequence:
      repeat:
        count: 10
        sequence:
          - service: notify.frenck
            data:
              message: Ding dong! Someone is at the door!
```

More information about repeats can be found in the [documentation][repeats].

[repeats]: /docs/scripts/#repeat-a-group-of-actions

### Automations & Scripts: Chooser

Got multiple automations for that single light to turn it on/off? Or multiple
automations/scripts to handle the different buttons on some remote?

You can now combine them using a chooser. The chooser is able to pick the
first sequence that matches a condition, or if none match, run a default
sequence.

This means each individual sequence in the chooser is paired with its own set
of conditions.

```yaml
automation:
  - alias: "Example"
    description: "On button press, choose the right thing to run."
    trigger:
      - platform: state
        entity_id:
          - binary_sensor.button1
          - binary_sensor.button2
          - binary_sensor.button3
    action:
      - choose:
          - conditions:
              - condition: state
                entity_id: binary_sensor.button1
                state: "on"
            sequence:
              - service: light.turn_on
                entity_id: light.bulb
          - conditions:
              - condition: state
                entity_id: binary_sensor.button2
                state: "on"
            sequence:
              - service: light.turn_off
                entity_id: light.bulb
        default:
          - service: notify.frenck
            data:
              message: Some other unknown button was pressed!
```

In the above example, pushing button1, turns on the bulb; while button2 turns
it off again. The third button isn't handled by any of the conditions in
the chooser and the (optional) default is run instead.

The chooser can be used as an `if`/`else` statement, where the `default` acts as
the else. Or even as `if`/`else if`/`else` statement as shown in the YAML
example above.

More information about the chooser can be found in the [documentation][chooser].

[chooser]: /docs/scripts/#choose-a-group-of-actions

### Automations & Scripts: Sub-second precision

Thanks to a bunch of optimizations done this release, which is discussed later
in this blog post, we now have sub-second precision available to our delays.

This precision is helpful in case you want a delay that is less than a second,
for example, 500 milliseconds.

An example script that toggles the light every 500 milliseconds 10 times.

```yaml
script:
  blink_light:
    sequence:
      repeat:
        count: 10
        sequence:
          - service: light.toggle
            entity_id: light.bulb
          - delay:
              milliseconds: 500
```

### Automations & Scripts: Bonus! Cool down

An often requested feature is to allow for a cool down time on an automation.
What that entails is setting a limit on the run of an automation or script
to a certain time frame.

While this is not a feature specifically added or build, it can be achieved
now using the new run modes.

```yaml
automation:
  - alias: "Doorbell cool down"
    description: "Prevent multiple message being send when spamming the doorbell."
    mode: single # Which is the default
    trigger:
      - platform: state
        state: binary_sensor.doorbell
        to: "on"
    action:
      - service: notify.frenck
        data:
          message: Ding dong! Someone is at the door!
      - delay:
          seconds: 10
```

The `single` run mode of this automation, combined with the last `delay` of 10
seconds, prevents this automation from being ran more often than only once
every 10 seconds. This is ideal for things like a doorbell.

## MDI icons updated

It has taken some time for us to upgrade to the newest version of
[Material Design Icons][mdi], 5.3.45, there was a reason for that,
version [5.0.45][mdi-upgrade] contains a lot of breaking changes.

We wanted to handle these well, so it took some time.

A lot of icons are renamed, and some are removed. In this release, we included
all new, and all removed icons and we made sure the new and the old name work.

If you use an icon that is renamed or removed we will show a warning in the log,
in version 0.115, this conversion path will be removed and removed icons and
old names will no longer work.

So make sure to check your logs if you need to adjust any of your used MDI
icons.

Most of the removed MDI icons can be found in [Simple icons][simple-icons],
which is available as a [custom integration][hass-simpleicons].

Please note: It is possible that custom integrations (also known as
custom components) use deprecated icons. These can throw warnings that need
to be addressed in the custom integration.

[mdi]: https://www.materialdesignicons.com
[mdi-upgrade]: https://dev.materialdesignicons.com/upgrade#4.9.95-to-5.0.45
[simple-icons]: https://simpleicons.org/
[hass-simpleicons]: https://github.com/vigonotion/hass-simpleicons

## Script and Scene editor updates

The UI to edit or create a script has been updated, besides support for the
new running mode, you can now give your scripts a custom icon and ID from the UI.

Especially the ID is helpful, you no longer have to search your states for
a long numeric entity id that matches your script.

<p class='img'>
<img src='/images/blog/2020-07-0.113/script-name.png' alt='Screenshot of a script name, icon and run mode.'></a>
Screenshot of a script ID, icon and run mode.
</p>

The support for setting a custom icon, is also added to the scenes editor.

## More speed optimizations

After, the well-received, speed optimization done in the 0.111 & 0.112 releases,
the saga towards improving resource usage and responsiveness of the platform
continues.

This time we have both [@bdraco] and [@pvizeli] to thank for some great
optimizations that will reduce the CPU usage of Home Assistant.

First of all, if you are running a Home Assistant OS, Container or
Supervised installation, then your Home Assistant instance will run on
Python 3.8. No action from your end is needed for this.

It is not just a normal Python version, but [@pvizeli] has worked on a highly
optimized Python version for Home Assistant, hitting performance improvements
that can reach up to 40%! He wrote a more [technical article about this on
our developers blog][python-speed].

Then [@bdraco] did his part on adding some improvements to the Core. He
changed a lot of handling around event & state listeners, in such a way
less things trigger unneeded, which reduces processing when states change.

This lowers CPU usage and improves response speed when you have many state
changes happening in a short time span, or when having a lot of automations.

Also, all time listeners now have microsecond precision as they are scheduled
on the internal event loop, instead of the previous situation when it relied on
the internal clock that triggered every second.

This release should drastically lower the CPU usage of Home Assistant for
most installations.

[python-speed]: https://developers.home-assistant.io/blog/2020/07/13/alpine-python

## Other noteworthy changes

- Philips Hue groups can now be turned on/off in the integration options via the UI.
- The [OpenZWave][ozw docs] (beta) got 3 new services. Two of those are for
  setting user codes on locks. The other allows for setting device-specific
  configuration parameters.
- After a moment of absence, [@yosilevy](https://github.com/yosilevy) is back!
  He has been the one fixing all kinds of RTL issues we had in Home Assistant,
  with his return, this release is full of RTL tweaks again!

## New Integrations

Three new integration added this release:

- [PoolSense][poolsense docs], added by [@haemishkyd]
- [Dexcom][dexcom docs], added by [@gagebenne]
- [Bond hub][bond docs], added by [@prystupa]

## New Platforms

The following integration got support for a new platform:

- [OpenZWave][ozw docs] has now support for window covers, added by [@Michsior14]

## Integrations now available to set up from the UI

The following integrations are now available via the Home Assistant UI:

- [Syncthru][syncthru docs], done by [@scop]
- [SmartHab][smarthab docs], done by [@outadoc]

## If you need help...

...don't hesitate to use our very active [forums](https://community.home-assistant.io/) or join us for a little [chat](https://discord.gg/c5DvZ4e).

Experiencing issues introduced by this release? Please report them in our [issue tracker](https://github.com/home-assistant/core/issues). Make sure to fill in all fields of the issue template.

<!--more-->

## Breaking Changes

Below is a listing of the breaking change for this release, per subject or
integration. Click on one of those to read more about the breaking change
for that specific item.

<details>
  <summary><b>Minimum Python version 3.7.1</b></summary>
  <p>

The minimum required Python version has been bumped from Python 3.7.0 to 3.7.1.

([@bdraco] - [#37184])

  </p>
</details>

<details>
  <summary><b>TensorFlow</b></summary>
  <p>

The TensorFlow integration will fail to upgrade due to missing wheels for Python 3.8.
This affects all installations that rely on our default docker images running Python 3.8.

To work around this, remove the `tensorflow` platform under the `image_processing` domain from your
configuration.yaml, before upgrading to 0.113.

Work is under way to resolve the problem. For more information follow this issue: [#38073]

  </p>
</details>

<details>
  <summary><b>Automations/Scripts</b></summary>
  <p>

The way automations behaved when they were triggered while "suspended" in a
delay or wait_template step from a previous trigger event was unexpected. If
this happened the suspended step would be aborted and the automation would
continue the action sequence with the following step.

This change removes support for that "legacy" behavior, in both automations
and scripts (although scripts were less affected by this.)

It also provides new "modes" of operation for these action sequences, namely
`single`, `restart`, `queued` & `parallel`. To minimize the impact on existing
automations and scripts, the default mode is `single`.

In addition, for `queued` & `parallel` modes there is now a new configuration
option -- `max` -- that controls the maximum number of "runs" that can be
running and/or queued up at a time.

And lastly, the delay step is now much more precise, and supports delays of
less than one second.

([@pnbruckner] - [#37729]) ([automation docs]) ([script docs])

  </p>
</details>

<details>
  <summary><b>Templates</b></summary>
  <p>

Most of the template platforms would check for extract_entities failing to
extract entities and avoid setting up a state change listener for "all" after
extract_entities had warned that it could not extract the entities and updates
would need to be done manually.

This protection has been extended to all template platforms.

Alter the behavior of extract_entities to return the successfully extracted
entities if one or more templates fail extraction instead of returning "all"
and getting rejected by the platform itself.

([@bdraco] - [#37831]) ([template docs])

  </p>
</details>

<details>
  <summary><b>Relative time</b></summary>
  <p>

Previously, the value used for displaying a relative time was floored before
being interpolated into the localized string, leading to situations like these:

- 47 hours ago is displayed as "1 day ago" instead of "2 days ago"
- 13 days in the future is displayed as "in 1 week"

This change modifies the `relativeTime` function to use `Math.round` instead of
`Math.floor` so the output more closely matches the actual relative time of the
input.

([@GMTA] - [#37125])

  </p>
</details>

<details>
  <summary><b>MQTT</b></summary>
  <p>

Birth and will messages are now published by default.

MQTT birth message defaults to:`{"topic": "homeassistant/status", "payload": "online"}`
MQTT will message defaults to: `{"topic": "homeassistant/status", "payload": "offline"}`

MQTT will published also on clean connect from broker.

([@emontnemery] - [#37371]) ([mqtt docs])

  </p>
</details>

<details>
  <summary><b>ZHA with Hue remotes</b></summary>
  <p>

This update does contains a breaking change if you are using Device Triggers
for the Hue Dimmer models RWL020 and RWL021.

We decided to configure these to use the extended manufacturer support so that
we can support 4 triggers per button.

If you were previously using Device Triggers in automations for these devices
you will have reconfigure the device leveraging the button on the device page
or remove and re-pair the device after updating Home Assistant.

Then you will have to update the automations to use the new triggers.

Sorry for the inconvenience.

([@dmulcahey] - [#37859]) ([zha docs])

  </p>
</details>

<details>
  <summary><b>ZHA power unit of measurement</b></summary>
  <p>

Previously ZHA was displaying power as kilowatt (kW) for some devices
(the ones with the SmartEnergy cluster), but since watts are more common as
household power unit, ZHA will start using W for those instead.

If you have any calculations or accumulation based on power sensors,
they may need to be updated.

([@abmantis] - [#37896]) ([zha docs])

  </p>
</details>

<details>
  <summary><b>Philips Hue</b></summary>
  <p>

Configuring a Hue bridge via YAML configuration is now deprecated. Your current
YAML configuration is imported and can be safely removed after upgrading.

Adding Hue bridges manually by IP can now be done via the UI. Changing allowing
Hue groups or unreachable Hue bulb is now managed by clicking the options button
on the Hue integration in the UI.

([@frenck] - [#37268]) ([hue docs])

  </p>
</details>

<details>
  <summary><b>InfluxDB</b></summary>
  <p>

Support for glob matching is added with InfluxDB filters.

InfluxDB was not using the common filtering logic shared by `recorder`,
`logbook`, `homekit`, etc. and as a result had filtering logic that is
inconsistent with the filtering logic of every other recorder-like component.
This has been corrected causing the following changes in filtering logic.

Same domain specified in both include and exclude:

- Previous behavior: All entities in that domain excluded
- New behavior: All entities of that domain included unless entity is excluded
  by ID or by glob

Same entity ID specified in both include and exclude:

- Previous behavior: Entity excluded
- New behavior: Entity included

Filtering has 1+ exclude domains, 0 include domains, and 1+ include entity ID's specified:

- Previous behavior: All entities not specifically listed by ID were excluded
- New behavior: All entities not specifically excluded by either domain or ID
  are included.

([@mdegat01] - [#37069]) ([influxdb docs])

  </p>
</details>

<details>
  <summary><b>Transmission</b></summary>
  <p>

For all torrents sensors (e.g., `active_torrents` or `started_torrents`) order
of the content of the `torrent_info` attribute has changed to `oldest first`
which means older torrents will appear first in the list.

Also a default limit of 10 items is also applied to the list to avoid very long
strings stored in the recorder database. Both configuration options, `order` and
`limit`, can be adjusted in the integrations UI.

([@zhulik] - [#35411]) ([transmission docs])

  </p>
</details>

<details>
  <summary><b>Logitech Harmony Hub</b></summary>
  <p>

New devices and activities are visible as harmony attributes. The current
activity is now updated as soon as the remote starts the activity change
instead of being delayed until the activity is finished setting up.

([@bdraco] - [#37559]) ([harmony docs])

  </p>
</details>

<details>
  <summary><b>Xiaomi Miio</b></summary>
  <p>

Fan and remote components now have unique LED strings.
If you had previously set your automation calls from
"**fan**\_set_led_on/off" to "**remote**\_set_led_on/off",
you will now need to set those back to "fan".

([@alexhardwicke] - [#37605]) ([xiaomi_miio docs])

  </p>
</details>

<details>
  <summary><b>Samsung SyncThru Printer</b></summary>
  <p>

Syncthru configuration is now done through the integrations UI page.

([@scop] - [#36690]) ([discovery docs]) ([syncthru docs])

  </p>
</details>

<details>
  <summary><b>Slack</b></summary>
  <p>

Re-added the ability to use remote files (by URL) in Slack messages.

The data schema for sending files in Slack messages has changed, so be sure to
update any Slack-related service calls with the new schema as listed in
the Slack integration documentation.

([@bachya] - [#37161]) ([slack docs])

  </p>
</details>

<details>
  <summary><b>RFXCOM RFXtrx</b></summary>
  <p>

- Configuration of entity name must now be done inside home assistant
- Multiple entities may be generated for a single device
- The events signalled from entity id's are removed in favor of events from an integration level.
- The events format has changed.

([@elupus] - [#37742][#37565]) ([rfxtrx docs])

  </p>
</details>

<details>
  <summary><b>Fibaro</b></summary>
  <p>

Fibaro Home Center switches that control light sources will now correctly be configured as Light entities (instead of Switch entities). This causes those entities IDs to change from `switch`. to `light`. If this is not desirable, change the device role in Home Center to something that isn't a light source (e.g., Other device).

([@danielpervan] - [#37690]) ([fibaro docs])

  </p>
</details>

<details>
  <summary><b>Frontend: Deprecated HTML imports</b></summary>
  <p>

`extra_html_url` is now deprecated and support will be removed in 0.115.
You can switch to the new `extra_module_url` or `extra_js_url_es5` by changing
your imported file to JavaScript.

With the start of custom components, you would import a HTML file for your
component instead of JavaScript. That's why we have always supported importing
extra HTML in the frontend and custom panels.

This has been deprecated and superseded by ES modules since some time and has
no support anymore in browsers. We have a polyfill in place to still support
this, but we are going to remove this.

In version 0.115 we will remove the ability to import HTML, you can use ES
modules as a replacement.

([@bramkragten] - [#37843]) ([frontend docs])

  </p>
</details>

<details>
  <summary><b>Frontend: Themes</b></summary>
  <p>

The theme variable `paper-card-background-color` is removed. You can use `ha-card-background` or `card-background-color` as a replacement.

In general, all variables that start with `paper` will be removed at some point.

([@bramkragten] - [frontend#6377](https://github.com/home-assistant/frontend/pull/6377)) ([frontend docs])

  </p>
</details>

## Release 0.113.1 - July 24

- Update discord.py to v1.3.4 for API change ([@DubhAd] - [#38060]) ([discord docs])
- Fix issue with creation of PT2262 devices in rfxtrx integration ([@RobBie1221] - [#38074]) ([rfxtrx docs])
- Fix route53 depending on broken package ([@balloob] - [#38079]) ([route53 docs])
- Bump pysmartthings to v0.7.2 ([@andrewsayre] - [#38086]) ([smartthings docs])
- Bump androidtv to 0.0.46 ([@JeffLIrion] - [#38090]) ([androidtv docs])
- Prevent the zeroconf service browser from terminating when a device without any addresses is discovered. ([@bdraco] - [#38094])
- Fix SimpliSafe to work with new MFA ([@bachya] - [#38097]) ([simplisafe docs])
- Fix text error when getting getting external IP in route53 ([@ludeeus] - [#38100]) ([route53 docs])
- Fix script repeat variable lifetime ([@pnbruckner] - [#38124])
- Log which task is blocking startup when debug logging is on ([@bdraco] - [#38134])
- Fix Xbox Live integration ([@mKeRix] - [#38146]) ([xbox_live docs])
- Fix incorrect mesurement in Toon for meter low ([@frenck] - [#38149]) ([toon docs])
- Fix Nuki Locks and Openers not being available after some time ([@pschmitt] - [#38159]) ([nuki docs])
- Remove leftover print statement ([@bachya] - [#38163]) ([simplisafe docs])

[#38060]: https://github.com/home-assistant/core/pull/38060
[#38074]: https://github.com/home-assistant/core/pull/38074
[#38079]: https://github.com/home-assistant/core/pull/38079
[#38086]: https://github.com/home-assistant/core/pull/38086
[#38090]: https://github.com/home-assistant/core/pull/38090
[#38094]: https://github.com/home-assistant/core/pull/38094
[#38097]: https://github.com/home-assistant/core/pull/38097
[#38100]: https://github.com/home-assistant/core/pull/38100
[#38124]: https://github.com/home-assistant/core/pull/38124
[#38134]: https://github.com/home-assistant/core/pull/38134
[#38146]: https://github.com/home-assistant/core/pull/38146
[#38149]: https://github.com/home-assistant/core/pull/38149
[#38159]: https://github.com/home-assistant/core/pull/38159
[#38163]: https://github.com/home-assistant/core/pull/38163
[@dubhad]: https://github.com/DubhAd
[@jefflirion]: https://github.com/JeffLIrion
[@robbie1221]: https://github.com/RobBie1221
[@andrewsayre]: https://github.com/andrewsayre
[@bachya]: https://github.com/bachya
[@balloob]: https://github.com/balloob
[@bdraco]: https://github.com/bdraco
[@frenck]: https://github.com/frenck
[@ludeeus]: https://github.com/ludeeus
[@mkerix]: https://github.com/mKeRix
[@pnbruckner]: https://github.com/pnbruckner
[@pschmitt]: https://github.com/pschmitt
[androidtv docs]: /integrations/androidtv/
[discord docs]: /integrations/discord/
[nuki docs]: /integrations/nuki/
[rfxtrx docs]: /integrations/rfxtrx/
[route53 docs]: /integrations/route53/
[simplisafe docs]: /integrations/simplisafe/
[smartthings docs]: /integrations/smartthings/
[toon docs]: /integrations/toon/
[xbox_live docs]: /integrations/xbox_live/

## Release 0.113.2 - July 28

- Bump netdisco to 2.8.1 ([@bdraco] - [#38173]) ([discovery docs])
- Stop automation runs when turned off or reloaded ([@pnbruckner] - [#38174]) ([automation docs])
- Bump tesla-powerwall to 0.2.12 to handle powerwall firmware 1.48+ ([@bdraco] - [#38180]) ([powerwall docs])
- Ignore harmony hubs ips that are already configured during ssdp discovery ([@bdraco] - [#38181]) ([harmony docs])
- Fix detection of zones 2 and 3 in Onkyo/Pioneer amplifiers ([@vdkeybus] - [#38234]) ([onkyo docs])
- Fix repeat action when variables present ([@pnbruckner] - [#38237]) ([script docs])
- Fix parallel script containing repeat or choose action with max_runs > 10 ([@pnbruckner] - [#38243]) ([automation docs]) ([script docs])
- Fix Skybell useragent ([@MisterWil] - [#38245]) ([skybell docs])
- Improve setup retry logic to handle inconsistent powerview hub availability ([@bdraco] - [#38249]) ([hunterdouglas_powerview docs])
- Don't set up callbacks until entity is created. ([@pavoni] - [#38251]) ([vera docs])
- Prevent onvif from blocking startup ([@bdraco] - [#38256]) ([onvif docs])
- Fix #38289 issue with xboxapi lib ([@marciogranzotto] - [#38293]) ([xbox_live docs])
- Bump python-miio to 0.5.3 ([@rytilahti] - [#38300]) ([xiaomi_miio docs])
- Prevent speedtest from blocking startup or causing other intergations to fail setup ([@bdraco] - [#38305]) ([speedtestdotnet docs])
- Fix issue with certain Samsung TVs repeatedly showing auth dialog ([@kylehendricks] - [#38308]) ([samsungtv docs])
- Add debug logging for when a chain of tasks blocks startup ([@bdraco] - [#38311])
- Remove AdGuard version check ([@frenck] - [#38326]) ([adguard docs])

[#38173]: https://github.com/home-assistant/core/pull/38173
[#38174]: https://github.com/home-assistant/core/pull/38174
[#38180]: https://github.com/home-assistant/core/pull/38180
[#38181]: https://github.com/home-assistant/core/pull/38181
[#38234]: https://github.com/home-assistant/core/pull/38234
[#38237]: https://github.com/home-assistant/core/pull/38237
[#38243]: https://github.com/home-assistant/core/pull/38243
[#38245]: https://github.com/home-assistant/core/pull/38245
[#38249]: https://github.com/home-assistant/core/pull/38249
[#38251]: https://github.com/home-assistant/core/pull/38251
[#38256]: https://github.com/home-assistant/core/pull/38256
[#38293]: https://github.com/home-assistant/core/pull/38293
[#38300]: https://github.com/home-assistant/core/pull/38300
[#38305]: https://github.com/home-assistant/core/pull/38305
[#38308]: https://github.com/home-assistant/core/pull/38308
[#38311]: https://github.com/home-assistant/core/pull/38311
[#38326]: https://github.com/home-assistant/core/pull/38326
[@misterwil]: https://github.com/MisterWil
[@bdraco]: https://github.com/bdraco
[@frenck]: https://github.com/frenck
[@kylehendricks]: https://github.com/kylehendricks
[@marciogranzotto]: https://github.com/marciogranzotto
[@pavoni]: https://github.com/pavoni
[@pnbruckner]: https://github.com/pnbruckner
[@rytilahti]: https://github.com/rytilahti
[@vdkeybus]: https://github.com/vdkeybus
[adguard docs]: /integrations/adguard/
[automation docs]: /integrations/automation/
[discovery docs]: /integrations/discovery/
[harmony docs]: /integrations/harmony/
[hunterdouglas_powerview docs]: /integrations/hunterdouglas_powerview/
[onkyo docs]: /integrations/onkyo/
[onvif docs]: /integrations/onvif/
[powerwall docs]: /integrations/powerwall/
[rfxtrx docs]: /integrations/rfxtrx/
[samsungtv docs]: /integrations/samsungtv/
[script docs]: /integrations/script/
[skybell docs]: /integrations/skybell/
[speedtestdotnet docs]: /integrations/speedtestdotnet/
[vera docs]: /integrations/vera/
[xbox_live docs]: /integrations/xbox_live/
[xiaomi_miio docs]: /integrations/xiaomi_miio/

## Release 0.113.3 - August 1

- Add Abode camera on and off support ([@shred86] - [#35164]) ([abode docs])
- Fix songpal already configured check in config flow ([@shenxn] - [#37813]) ([songpal docs])
- Prevent kodi from blocking startup ([@bdraco] - [#38257]) ([kodi docs])
- Ignore remote Plex clients during plex.tv lookup ([@jjlawren] - [#38327]) ([plex docs])
- Bump androidtv to 0.0.47 and adb-shell to 0.2.1 ([@JeffLIrion] - [#38344]) ([androidtv docs])
- Bump pychromecast to 7.2.0 ([@emontnemery] - [#38351]) ([cast docs])
- Update aioharmony to 0.2.6 ([@ehendrix23] - [#38360]) ([harmony docs])
- Avoid error with ignored harmony config entries ([@bdraco] - [#38367]) ([harmony docs])
- Prevent nut config flow error when checking ignored entries ([@bdraco] - [#38372]) ([nut docs])
- Ensure Toon webhook ID isn't registered on re-registration ([@frenck] - [#38376]) ([toon docs])
- Fix rmvtransport breaking when destinations don't match ([@cgtobi] - [#38401]) ([rmvtransport docs])
- Fix ads integration after 0.113 ([@stlehmann] - [#38402]) ([ads docs])
- Pin yarl dependency to 1.4.2 as core dependency ([@frenck] - [#38428])
- Fix double encoding issue in google_translate TTS ([@frenck] - [#38429]) ([google_translate docs])

[#35164]: https://github.com/home-assistant/core/pull/35164
[#37813]: https://github.com/home-assistant/core/pull/37813
[#38257]: https://github.com/home-assistant/core/pull/38257
[#38327]: https://github.com/home-assistant/core/pull/38327
[#38344]: https://github.com/home-assistant/core/pull/38344
[#38351]: https://github.com/home-assistant/core/pull/38351
[#38360]: https://github.com/home-assistant/core/pull/38360
[#38367]: https://github.com/home-assistant/core/pull/38367
[#38372]: https://github.com/home-assistant/core/pull/38372
[#38376]: https://github.com/home-assistant/core/pull/38376
[#38401]: https://github.com/home-assistant/core/pull/38401
[#38402]: https://github.com/home-assistant/core/pull/38402
[#38428]: https://github.com/home-assistant/core/pull/38428
[#38429]: https://github.com/home-assistant/core/pull/38429
[@jefflirion]: https://github.com/JeffLIrion
[@bdraco]: https://github.com/bdraco
[@cgtobi]: https://github.com/cgtobi
[@ehendrix23]: https://github.com/ehendrix23
[@emontnemery]: https://github.com/emontnemery
[@frenck]: https://github.com/frenck
[@jjlawren]: https://github.com/jjlawren
[@shenxn]: https://github.com/shenxn
[@shred86]: https://github.com/shred86
[@stlehmann]: https://github.com/stlehmann
[abode docs]: /integrations/abode/
[ads docs]: /integrations/ads/
[androidtv docs]: /integrations/androidtv/
[cast docs]: /integrations/cast/
[google_translate docs]: /integrations/google_translate/
[harmony docs]: /integrations/harmony/
[kodi docs]: /integrations/kodi/
[nut docs]: /integrations/nut/
[plex docs]: /integrations/plex/
[rmvtransport docs]: /integrations/rmvtransport/
[songpal docs]: /integrations/songpal/
[toon docs]: /integrations/toon/

## All changes

<details>
  <summary>Click to see all changes!</summary>

- Zerproc cleanup ([@emlove] - [#37072]) ([zerproc docs])
- Add concept of allowed external URLs to config ([@bachya] - [#36988])
- Add legacy polling option for Amcrest motion detection ([@pnbruckner] - [#36955]) ([amcrest docs])
- Improve setup ([@balloob] - [#37075])
- Add worldclock custom format ([@InduPrakash] - [#36157]) ([worldclock docs])
- Bump version to 0.113.0dev0 ([@frenck] - [#37071])
- Migrate doorbird to use new logbook platform ([@bdraco] - [#37097]) ([doorbird docs])
- Improve isoformat timestamp performance for full states ([@bdraco] - [#37105]) ([history docs])
- Plex tests cleanup and additions ([@jjlawren] - [#37117]) ([plex docs])
- Ensure doorbird events can be filtered by entity_id ([@bdraco] - [#37116]) ([doorbird docs])
- Upgrade sqlalchemy to 1.3.18 ([@frenck] - [#37123]) ([recorder docs]) ([sql docs])
- Add optimistic Guardian switch updating ([@bachya] - [#37141]) ([guardian docs])
- Update remote_rpi_gpio switch parent ([@Kdemontf] - [#37136]) ([remote_rpi_gpio docs])
- Improve Smappee integration ([@bsmappee] - [#37087]) ([smappee docs])
- Add support for glob matching in InfluxDB filters ([@mdegat01] - [#37069]) ([influxdb docs]) (breaking-change)
- Update Plex tests to mock websockets ([@jjlawren] - [#37147]) ([plex docs])
- add phillips remote cluster ([@dmulcahey] - [#37172]) ([zha docs])
- Improve scalability of state change event routing ([@bdraco] - [#37174]) ([automation docs])
- Ensure all async_track_state_change_event callbacks run if one throws ([@bdraco] - [#37179])
- Fixup rfxtrx tests to at least run ([@elupus] - [#37186]) ([rfxtrx docs])
- Attempt to set unique id of rfxtrx device ([@elupus] - [#37159]) ([rfxtrx docs])
- Bump aioguardian ([@bachya] - [#37188]) ([guardian docs])
- Add debug output for invalid service call data ([@pnbruckner] - [#37171])
- Limit and sort transmission torrents_info attribute ([@zhulik] - [#35411]) ([transmission docs]) (breaking-change)
- Move transmission limit and order config options to the options flow ([@zhulik] - [#37198]) ([transmission docs])
- Sensors sometimes are created without event ([@elupus] - [#37205]) ([rfxtrx docs])
- Correct typo in input_number UI text ([@davet2001] - [#37208]) ([input_number docs])
- Silence spurious warning when HomeKit is already running ([@bdraco] - [#37199]) ([homekit docs])
- Additional testing for InfluxDB and some quality improvements ([@mdegat01] - [#37181]) ([influxdb docs])
- Add first unit test to config flow for Plum Lightpad ([@prystupa] - [#37183]) ([plum_lightpad docs])
- Ensure homekit state changed listeners are unsubscribed on reload ([@bdraco] - [#37200]) ([homekit docs])
- Use eventloop for scheduling ([@bdraco] - [#37184]) ([asuswrt docs]) ([generic_thermostat docs]) (breaking-change)
- Add mdegat01 as code owner for InfluxDB ([@mdegat01] - [#37227]) ([influxdb docs])
- Move Guardian services to entity platform services ([@bachya] - [#37189]) ([guardian docs])
- Use shared zeroconf for discovery netdisco ([@bdraco] - [#37237]) ([discovery docs])
- Register 'androidtv.learn_sendevent' service ([@JeffLIrion] - [#35707]) ([androidtv docs])
- Add support for window covers to ozw integration ([@Michsior14] - [#37217]) ([ozw docs]) (new-platform)
- Remove Hue configurator demo from demo integration ([@frenck] - [#37250]) ([demo docs])
- Bump pychromecast to 7.0.1 ([@emontnemery] - [#37225]) ([cast docs])
- Changed FilterTest namedtuples to dataclasses ([@mdegat01] - [#37252]) ([apache_kafka docs]) ([azure_event_hub docs]) ([google_pubsub docs]) ([prometheus docs])
- Enhance script integration to use new features in script helper ([@pnbruckner] - [#37201]) ([script docs])
- Refactor Influx logic to reduce V1 vs V2 code paths ([@mdegat01] - [#37232]) ([influxdb docs])
- Cache checking for entity exposure in emulated_hue ([@bdraco] - [#37260]) ([emulated_hue docs])
- Add missed call sensor to Freebox ([@Quentame] - [#36895]) ([freebox docs])
- Add humidifier support to google_assistant ([@Shulyaka] - [#37157]) ([google_assistant docs])
- Improve support for homematic garage covers ([@guillempages] - [#35350]) ([homematic docs])
- Create PoolSense integration ([@haemishkyd] - [#35561]) ([poolsense docs]) (new-integration)
- Add media_stop for volumio integration ([@divanikus] - [#37211]) ([volumio docs])
- Clean up 'androidtv.learn_sendevent' service ([@JeffLIrion] - [#37276]) ([androidtv docs])
- Add a service for setting the timer to tado water heaters ([@jfearon] - [#36533]) ([tado docs])
- Add constant for PlatformNotReady wait time to use in tests ([@mdegat01] - [#37266]) ([influxdb docs])
- Add Dexcom Integration ([@gagebenne] - [#33852]) ([dexcom docs]) (new-integration)
- Bump pynws-1.2.1 for NWS ([@MatthewFlamm] - [#37304]) ([nws docs])
- Limit entity platform entity service to same integration ([@balloob] - [#37313])
- Add Hue manual bridge config flow + options flow ([@frenck] - [#37268]) ([hue docs]) (breaking-change)
- Fix Influx V1 test query ([@mdegat01] - [#37309]) ([influxdb docs])
- Fix flapping flux tests ([@bdraco] - [#37346]) ([flux docs])
- Add humidifier support to homekit ([@Shulyaka] - [#37207]) ([homekit docs])
- Fix flapping gdacs tests ([@bdraco] - [#37363]) ([gdacs docs])
- Upgrade pre-commit to 2.6.0 ([@frenck] - [#37339])
- Add ozw garage door barrier support ([@firstof9] - [#37316]) ([ozw docs])
- Improve unifi device tracker performance ([@bdraco] - [#37308]) ([unifi docs])
- Fix ozw garage door methods ([@MartinHjelmare] - [#37374]) ([ozw docs])
- Modified Influx tests to mock test queries with accurate output ([@mdegat01] - [#37315]) ([influxdb docs])
- Remove my codeownership over things I dont use anymore ([@robbiet480] - [#37401])
- Convert rfxtrx tests to pytest async tests and re-enable ([@elupus] - [#37206]) ([rfxtrx docs])
- Add GitHub Actions for CI ([@frenck] - [#37419])
- Reduce time to run zha discover tests ([@bdraco] - [#37424]) ([zha docs])
- Ensure async_setup is mocked in geonetnz intergration tests ([@bdraco] - [#37426]) ([geonetnz_quakes docs]) ([geonetnz_volcano docs])
- Add helpers.location.coordinates ([@eifinger] - [#37234])
- Replace asynctest with tests.async_mock ([@balloob] - [#37428])
- Prevent verisure lock from looping forever and sleeping in test ([@bdraco] - [#37425]) ([verisure docs])
- Fix undesired power toggling ([@ktnrg45] - [#37427]) ([ps4 docs])
- Fix unmocked setup in garmin_connect test ([@bdraco] - [#37429]) ([garmin_connect docs])
- Fix unmocked setup in ipp tests ([@bdraco] - [#37430]) ([ipp docs])
- Stub out ecobee aux heat services ([@balloob] - [#37423]) ([ecobee docs])
- Fix building of Python Wheels ([@frenck] - [#37433])
- Mock setup in sonarr config flow tests ([@bdraco] - [#37432]) ([sonarr docs])
- Add more unit tests for plum_lightpad ([@prystupa] - [#37275]) ([plum_lightpad docs])
- Add Plugwise zeroconf discovery ([@bouwew] - [#37289]) ([plugwise docs])
- Mock setup in directv config flow tests ([@ctalkington] - [#37439]) ([directv docs]) ([directv docs])
- Apply some suggestions from poolsense code review ([@ctalkington] - [#37440]) ([poolsense docs])
- Fix extremely minor typo: Cosumption -> Consumption ([@smugleafdev] - [#37322]) ([solaredge docs])
- Fix DarkSky spamming the log ([@RogerSelwyn] - [#37421]) ([darksky docs])
- Upgrade python-join-api to allow user to specify actions ([@nkgilley] - [#37394]) ([joaoapps_join docs])
- Use a more detailed battery icon for Tesla cars ([@jberstler] - [#37154]) ([tesla docs])
- Avoid selecting the states created column for history ([@bdraco] - [#37450]) ([history docs])
- Use device class to isolate tesla battery icon ([@ctalkington] - [#37446]) ([tesla docs])
- Remove pytest-xdist from tox now that it's in requirements_test.txt ([@scop] - [#37455])
- Fix Plugwise zeroconf discovery formatting ([@CoMPaTech] - [#37457]) ([plugwise docs])
- Xiaomi Gateway subdevice support & AqaraHT + SensorHT devices ([@starkillerOG] - [#36539]) ([xiaomi_miio docs])
- Fix entity_component test flapping ([@bdraco] - [#37445])
- Fix flapping geo_json_events tests ([@frenck] - [#37471]) ([geo_json_events docs])
- Fix geonetnz_quakes test flapping ([@emontnemery] - [#37473]) ([geonetnz_quakes docs])
- Call sync function from async context ([@timvancann] - [#37324]) ([avri docs])
- Support empty output of MQTT binary_sensor value_template ([@emontnemery] - [#37420]) ([mqtt docs])
- Publish birth and will messages by default ([@emontnemery] - [#37371]) ([mqtt docs]) (breaking-change)
- Fix flapping google_assistant tests ([@frenck] - [#37480]) ([google_assistant docs])
- Add humidifier support to emulated_hue ([@Shulyaka] - [#37110]) ([emulated_hue docs])
- GitHub Actions: Add hadolint problem matcher ([@frenck] - [#37494])
- GitHub Actions: Add codespell problem matcher ([@frenck] - [#37487])
- GitHub Actions: Add json problem matcher ([@frenck] - [#37490]) ([hue docs])
- GitHub Actions: Add pylint problem matcher ([@frenck] - [#37463])
- GitHub Actions: Add check executables problem matcher ([@frenck] - [#37488])
- GitHub Actions: Add mypy problem matcher ([@frenck] - [#37485])
- GitHub Actions: Add yamllint problem matcher ([@frenck] - [#37468]) ([ads docs])
- GitHub Actions: Add flake8 problem matcher ([@frenck] - [#37465])
- GitHub Actions: Show diff on failure ([@frenck] - [#37461])
- Fix flapping geonetnz_volcano test ([@bdraco] - [#37497]) ([geonetnz_volcano docs])
- Upgrade flake8 to 3.8.3 ([@scop] - [#37501])
- Use package constraints in tox lint ([@scop] - [#37500])
- GitHub Actions: Add pytest problem matcher ([@frenck] - [#37508]) ([toon docs])
- Enhance automation integration to use new features in script helper ([@pnbruckner] - [#37479]) ([automation docs]) ([script docs])
- Do not count netdata cleared and undefined alarms as warnings ([@jurgenhaas] - [#37505]) ([netdata docs])
- Bump env_canada to 0.1.0 ([@michaeldavie] - [#37483]) ([environment_canada docs])
- Prebake common history queries ([@bdraco] - [#37496]) ([history docs])
- Add prometheus metric naming guidelines ([@knyar] - [#37149]) ([prometheus docs])
- Use the main event loop for homekit ([@bdraco] - [#37441]) ([homekit docs])
- Add denonavr solution tip for connection_error ([@starkillerOG] - [#37405]) ([denonavr docs])
- Fix Datadog boolean metrics ([@shermdog] - [#37273]) ([datadog docs])
- Fix flapping demo geo_location test ([@bdraco] - [#37516]) ([demo docs])
- Standardise geniusheub error levels ([@RogerSelwyn] - [#37512]) ([geniushub docs])
- Standardis asuswrt error message level ([@RogerSelwyn] - [#37515]) ([asuswrt docs])
- Convert Android TV integration to async ([@JeffLIrion] - [#37510]) ([androidtv docs])
- Add config flow + async support for SmartHab integration ([@outadoc] - [#34387]) ([smarthab docs])
- Tado climate entity timer service ([@jfearon] - [#37472]) ([tado docs])
- Use async_track_state_change_event for automation numeric_state ([@bdraco] - [#37255]) ([automation docs])
- Fix xiaomi_miio error when no sensors present ([@starkillerOG] - [#37531]) ([xiaomi_miio docs])
- Switch tests to use hass objects instead of direct ([@elupus] - [#37530]) ([rfxtrx docs])
- Log lines do not end with a full stop ([@frenck] - [#37527])
- Fix flake8 problem matcher to handle fatals as errors ([@frenck] - [#37536])
- Transition Guardian to use a DataUpdateCoordinator ([@bachya] - [#37380]) ([guardian docs])
- Switch rfxtrx to dispatcher ([@elupus] - [#37271]) ([rfxtrx docs])
- Cleanup async_track_state_change and augment docstring ([@bdraco] - [#37251])
- Add Amcrest audio_detected binary sensor ([@pnbruckner] - [#37486]) ([amcrest docs])
- Add new integration for Bond hub ([@prystupa] - [#37477]) ([bond docs]) (new-integration)
- Switch homekit to use async_track_state_change_event ([@bdraco] - [#37253]) ([homekit docs])
- Add missing manifest object to the check ([@ludeeus] - [#37535])
- Add dependabot for automatic updates to GitHub Actions ([@frenck] - [#37550])
- Bump actions/upload-artifact from v1 to v2.0.1 (dependabot - [#37555])
- Bump codecov/codecov-action from v1 to v1.0.10 (dependabot - [#37556])
- Strings capitalization consistency fixes ([@scop] - [#37454])
- Protect loop set default executor ([@balloob] - [#37438])
- Add optimistic mode to template switch ([@akloeckner] - [#31637]) ([template docs])
- Mock setup in plex test to prevent CI failure ([@bdraco] - [#37590]) ([plex docs])
- Ensure homekit accessory reset only affect the bridges with the accessory ([@bdraco] - [#37588]) ([homekit docs])
- apply small feedback suggestions from a previous PR that is already merged ([@prystupa] - [#37551]) ([bond docs])
- Bump voluptuous-serialize 2.4.0 ([@balloob] - [#37241])
- Fix missing Plex account mocks in tests ([@jjlawren] - [#37591]) ([plex docs])
- Update Rejseplanen rjpl to 0.3.6 ([@DarkFox] - [#37215]) ([rejseplanen docs])
- Make devices and activities visible as harmony attributes ([@bdraco] - [#37559]) ([harmony docs]) (breaking-change)
- Upgrade debugpy to 1.0.0b12 ([@frenck] - [#37599]) ([debugpy docs])
- Upgrade coverage to 5.2 ([@frenck] - [#37598])
- Fix typos in Hue integration ([@frenck] - [#37597]) ([hue docs])
- Add current temperature as separate sensor in Toon ([@frenck] - [#37336]) ([toon docs])
- Add host names in esphome logs ([@TheLastGimbus] - [#37587]) ([esphome docs])
- Fix sync/async and small improvements to forked_daapd ([@frenck] - [#37619]) ([forked_daapd docs])
- Remove dead code from cast ([@frenck] - [#37620]) ([cast docs])
- Fix acmeda syn/async cover methods ([@frenck] - [#37618]) ([acmeda docs])
- Fix sync/async override in sms ([@frenck] - [#37621]) ([sms docs])
- Switch what is used for unique identifier ([@elupus] - [#37581]) ([rfxtrx docs])
- Change MediaPlayerDevice into MediaPlayerEntity ([@brefra] - [#37629]) ([pioneer docs])
- Ozw climate fixes ([@marcelveldt] - [#37560]) ([ozw docs])
- Bump aiohomekit to 0.2.41 ([@Jc2k] - [#37602]) ([homekit_controller docs])
- Fix homekit test mocking missed in loop changeover ([@bdraco] - [#37628]) ([homekit docs])
- Reduce log level of unknown discovered services ([@balloob] - [#37617]) ([discovery docs])
- fix erroneous dependency used by Bond integration (simplejson to json) ([@prystupa] - [#37642]) ([bond docs])
- Mark the example values as strings because that's what we expect ([@balloob] - [#37640]) ([alarm_control_panel docs])
- Fix ozw entities cleanup on node removal ([@marcelveldt] - [#37630]) ([ozw docs])
- bump pyvizio version ([@raman325] - [#37644]) ([vizio docs])
- Add OZW support for set_config_parameter service ([@firstof9] - [#37523]) ([ozw docs])
- Modify cast tests to setup via cast integration ([@emontnemery] - [#37256]) ([cast docs])
- Give fan and remote components unique LED strings ([@alexhardwicke] - [#37605]) ([xiaomi_miio docs]) (breaking-change)
- Vizio: when checking new host against existing config entry hosts, make check hostname aware ([@raman325] - [#37397]) ([vizio docs])
- Add preset modes to Touchline ([@pilehave] - [#36054]) ([touchline docs])
- Updated influxdb-client dependency to 1.8.0 ([@mdegat01] - [#37396]) ([influxdb docs])
- Check buckets/dbs for validity during Influx sensor startup ([@mdegat01] - [#37391]) ([influxdb docs])
- Fix missing Guardian service strings ([@bachya] - [#37659]) ([guardian docs])
- Apply more suggestions from bond code review ([@ctalkington] - [#37592]) ([bond docs])
- Set MQTT sensor to state unavailable when value expires ([@emontnemery] - [#36609]) ([mqtt docs]) (breaking-change)
- Convert syncthru to config flow and native SSDP discovery ([@scop] - [#36690]) ([discovery docs]) ([syncthru docs]) (breaking-change)
- Use "next_state" attr instead of "post_pending" for ArmDisarm trait ([@engrbm87] - [#37325]) ([google_assistant docs])
- Add ozw usercode support ([@firstof9] - [#37390]) ([ozw docs])
- OZW Usercodes update services.yaml with examples ([@firstof9] - [#37667]) ([ozw docs])
- Add humidifier support to prometheus ([@Shulyaka] - [#37112]) ([prometheus docs])
- Refactor Enocean part 1 ([@jduquennoy] - [#35927]) ([enocean docs])
- Add back Netatmo public weather sensors ([@cgtobi] - [#34401]) ([netatmo docs])
- Split handling and application of event ([@elupus] - [#37665]) ([rfxtrx docs])
- Python 3.8 on core Container ([@pvizeli] - [#37677])
- Detect lingering threads after tests ([@elupus] - [#37270])
- Change audio sample rate for apple watch homekit camera ([@Harryjholmes] - [#37637]) ([homekit docs])
- Round time values in get_age() to better approximate the actual age ([@GMTA] - [#37125]) (breaking-change)
- Add bond cover assumed state and local polling ([@prystupa] - [#37666]) ([bond docs])
- Actually fix Guardian entity services ([@bachya] - [#37700]) ([guardian docs])
- Revert "Updated influxdb-client dependency to 1.8.0" (#37396)" ([@mdegat01] - [#37697]) ([influxdb docs])
- Upgrade foobot-async ([@balloob] - [#37706]) ([foobot docs])
- Rewrite rfxtrx init logic to do away with global object ([@elupus] - [#37699]) ([rfxtrx docs])
- bump tuyaha 0.0.7 ([@PaulAnnekov] - [#37709]) ([tuya docs])
- Fix get profiles checking if has ptz capabilities ([@djpremier] - [#37176]) ([onvif docs])
- Update influxdb-client dependency to 1.8.0, fix test write for InfluxDB v2 ([@bednar] - [#37710]) ([influxdb docs])
- Fix loopenergy callback updating HA before the object is initialised ([@pavoni] - [#37650]) ([loopenergy docs])
- Fix Hue homekit discovery ([@balloob] - [#37694]) ([hue docs])
- Add new repeat loop for scripts and automations ([@pnbruckner] - [#37589]) ([automation docs]) ([script docs])
- Add rfxtrx device classes to known types ([@elupus] - [#37698]) ([rfxtrx docs])
- Re-add ability to use remote files (by URL) in Slack messages ([@bachya] - [#37161]) ([slack docs]) (breaking-change)
- Use the shared zeroconf instance for homekit_controller ([@bdraco] - [#37691]) ([homekit_controller docs])
- Uninstall typing ([@balloob] - [#37735])
- Remove legacy script mode and simplify remaining modes ([@pnbruckner] - [#37729]) ([automation docs]) ([script docs]) (breaking-change)
- Support Fan domain in Bond integration ([@prystupa] - [#37703]) ([bond docs]) (new-platform)
- Fix incorrect comparison of speed "off" by identity instead of by value ([@prystupa] - [#37738]) ([fan docs])
- Refactor Bond integration to remove duplication ([@prystupa] - [#37740]) ([bond docs])
- Updates to poolsense integration ([@haemishkyd] - [#37613]) ([poolsense docs]) (new-platform)
- Bump ADS to 3.1.3 ([@balloob] - [#37748]) ([ads docs])
- Reference constraint files from requirement files ([@balloob] - [#37751])
- Bump pyHS100 to 3.5.1 ([@balloob] - [#37749]) ([tplink docs])
- Fix script queued mode typo ([@pnbruckner] - [#37759])
- Upgrade bond-home to 0.0.9 ([@prystupa] - [#37764]) ([bond docs])
- Bump teslajsonpy to 0.9.3. ([@alandtse] - [#37771]) ([tesla docs])
- Significantly improve logging performance when no integrations are requesting debug level ([@bdraco] - [#37776]) ([logger docs])
- Add Bond hub as a device for bond entities ([@prystupa] - [#37772]) ([bond docs])
- Add generic unavailable and last_updated metrics for prometheus ([@esev] - [#37456]) ([prometheus docs])
- Switch rfxtrx to integration level config ([@elupus] - [#37742]) ([rfxtrx docs]) (breaking-change)
- Add support for fan direction in bond integration ([@prystupa] - [#37789]) ([bond docs])
- Apply code quality updates to poolsense ([@haemishkyd] - [#37781]) ([poolsense docs]) (new-platform)
- Wrap possible I/O in executor ([@jjlawren] - [#37688]) ([plex docs])
- Fix Dockerfile.dev for VS Code devcontainer ([@ajschmidt8] - [#37801])
- Add basic support for lights in bond integration ([@prystupa] - [#37802]) ([bond docs]) (new-platform)
- Replace rfxtrx entity events with integration events ([@elupus] - [#37565]) ([rfxtrx docs]) (breaking-change)
- Bump aiokafka to 0.6.0 ([@balloob] - [#37778]) ([apache_kafka docs])
- Drop dummy connection ([@elupus] - [#37805]) ([rfxtrx docs])
- pydaikin version bump to 2.3.1: ([@pnguyen-tyro] - [#37682]) ([daikin docs])
- Allow an extra packet without dts (for Arlo camera streaming) ([@dermotduffy] - [#37792]) ([stream docs])
- Constraints pt3 ([@balloob] - [#37803])
- Add urlencode template filter ([@jschlyter] - [#37753])
- Add rfxtrx ability to send a raw command to device ([@elupus] - [#37793]) ([rfxtrx docs])
- Drop white blacklist pt1 ([@balloob] - [#37816])
- Simplify logger integration ([@balloob] - [#37780]) ([logger docs])
- Add devolo binary sensor device class mapping ([@2Fake] - [#37350]) ([devolo_home_control docs])
- Convert Toon expires_in value to float ([@tizzen33] - [#37716]) ([toon docs])
- Apply bond python related feedback from a prior PR ([@prystupa] - [#37821]) ([bond docs])
- Switch rfxtrx to config entries ([@elupus] - [#37794]) ([rfxtrx docs])
- Update Travis-CI to use Python 3.7.1 ([@scop] - [#37830])
- Map bond fan speeds to standard HA speeds ([@prystupa] - [#37808]) ([bond docs])
- Apply code review changes for poolsense ([@haemishkyd] - [#37817]) ([poolsense docs])
- Version bump for asuswrt ([@kennedyshead] - [#37827]) ([asuswrt docs])
- Travis CI improvements ([@scop] - [#37840])
- Bump actions/upload-artifact from v2.0.1 to 2.1.0 (dependabot - [#37841])
- Add support for generic device (switch) to bond integration ([@prystupa] - [#37837]) ([bond docs]) (new-platform)
- Add choose script action ([@pnbruckner] - [#37818])
- Attrs cleanups ([@scop] - [#37849]) ([camera docs]) ([cast docs]) ([device_tracker docs]) ([esphome docs]) ([mqtt docs]) ([stream docs]) ([zha docs])
- Add mode info attributes to script and automation ([@bramkragten] - [#37815]) ([automation docs]) ([script docs])
- Fix media_content_id attribute in Spotify integration ([@aaliddell] - [#37853]) ([spotify docs])
- Frontend: deprecate `extra_html_url` ([@bramkragten] - [#37843]) ([frontend docs]) (breaking-change)
- Switch async_track_state_change to the faster async_track_state_change_event part 3 ([@bdraco] - [#37852]) ([bayesian docs]) ([esphome docs]) ([filter docs])
- Adjust icons for MDI bump ([@bramkragten] - [#37730])
- Avoid homekit crash when temperature is clamped above max value ([@bdraco] - [#37746]) ([homekit docs])
- Always expose Toon gas sensors ([@frenck] - [#37829]) ([toon docs])
- Use size of camera in Agent DVR ([@timmo001] - [#36375]) ([agent_dvr docs])
- Adjust history as all scripts can now be canceled ([@bdraco] - [#37820]) ([history docs])
- Ensure HomeKit does not throw when a linked motion sensor is removed ([@bdraco] - [#37773]) ([homekit docs])
- Add HmIP-FSI16 to HomematicIP Cloud ([@SukramJ] - [#37715]) ([homematicip_cloud docs])
- Fix Fibaro HC light switches not being configured as Light entities ([@danielpervan] - [#37690]) ([fibaro docs]) (breaking-change)
- Do no crash Luftdaten on additional data returned by the API ([@jbeyerstedt] - [#37763]) ([luftdaten docs])
- Fix zone cleaning and raise config entry not ready when needed ([@dshokouhi] - [#37741]) ([neato docs])
- bump zigpy and zha quirks ([@dmulcahey] - [#37859]) ([zha docs]) (breaking-change)
- Updated frontend to 20200714.0 ([@bramkragten] - [#37862]) ([frontend docs])
- Have async_track_point_in_utc_time call async_run_job directly from call_at ([@bdraco] - [#37790])
- Add support for fireplaces to bond integration ([@prystupa] - [#37850]) ([bond docs])
- Update august manufacturer name ([@bdraco] - [#37867]) ([august docs])
- Switch async_track_state_change to the faster async_track_state_change_event part 6 ([@bdraco] - [#37869]) ([manual_mqtt docs]) ([min_max docs]) ([mold_indicator docs]) ([plant docs])
- Switch async_track_state_change to the faster async_track_state_change_event part 5 ([@bdraco] - [#37866])
- Switch async_track_state_change to the faster async_track_state_change_event part 4 ([@bdraco] - [#37863]) ([derivative docs]) ([generic_thermostat docs]) ([integration docs]) ([statistics docs])
- Switch async_track_state_change to the faster async_track_state_change_event ([@bdraco] - [#37834]) ([group docs])
- Switch a few more async_track_state_change to the faster async_track_state_change_event ([@bdraco] - [#37833])
- Switch universal media_player to use async_track_state_change_event ([@bdraco] - [#37832]) ([universal docs])
- Improve handling of template platforms when entity extraction fails ([@bdraco] - [#37831]) ([template docs]) (breaking-change)
- Switch async_track_state_change to the faster async_track_state_change_event part 7 ([@bdraco] - [#37870]) ([alert docs]) ([knx docs]) ([zha docs])
- Prefer external URLs because internal can't have valid SSL ([@balloob] - [#37872]) ([cast docs])
- Use supervisord "group:name" when get process info ([@serhtt] - [#37678]) ([supervisord docs])
- Don't reuse venv cache when Python version changes ([@frenck] - [#37881])
- Fix yeelight flash ([@shenxn] - [#37743]) ([yeelight docs])
- Improve Neato error logging by including device name ([@dshokouhi] - [#37865]) ([neato docs])
- Stop running scripts at shutdown ([@pnbruckner] - [#37858])
- Updated frontend to 20200715.0 ([@bramkragten] - [#37884]) ([frontend docs])
- Adapt MQTT config flow to default birth and will ([@emontnemery] - [#37875]) ([mqtt docs])
- Provide workaround for missing/disabled/broken IPv6 ([@bdraco] - [#37887]) ([zeroconf docs])
- Revert breaking change for Automation ([@pvizeli] - [#37885]) ([automation docs])
- Update frontend to 20200715.1 ([@bramkragten] - [#37888]) ([frontend docs]) (beta fix)
- Fix swapped variables deprecation in log message ([@frenck] - [#37901]) (beta fix)
- Fix automation & script restart mode bug ([@pnbruckner] - [#37909]) (beta fix)
- Updated frontend to 20200716.0 ([@bramkragten] - [#37910]) ([frontend docs]) (beta fix)
- Fix ZHA electrical measurement sensor initialization ([@Adminiuga] - [#37915]) ([zha docs]) (beta fix)
- Fix unavailable when value is zero ([@cgtobi] - [#37918]) ([netatmo docs]) (beta fix)
- Upgrade pysonos to 0.0.32 ([@amelchio] - [#37923]) ([sonos docs]) (beta fix)
- Ensure a state change tracker setup from inside a state change listener does not fire immediately ([@bdraco] - [#37924]) (beta fix)
- Rfxtrx fixes for beta ([@elupus] - [#37957]) ([rfxtrx docs]) (beta fix)
- Add ozw support for single setpoint thermostat devices ([@marcelveldt] - [#37713]) ([ozw docs]) (beta fix)
- Fix bugs updating state of `hdmi_cec` switch ([@rajlaud] - [#37786]) ([hdmi_cec docs]) (beta fix)
- fix ([@bdraco] - [#37889]) ([homekit docs]) (beta fix)
- Change ZHA power unit from kW to W ([@abmantis] - [#37896]) ([zha docs]) (breaking-change) (beta fix)
- Fix: Passes secure parameter when setting up Nuki (#36844) ([@SeraphimSerapis] - [#37932]) ([nuki docs]) (beta fix)
- Fix Sonos speaker lookup for Plex ([@jjlawren] - [#37942]) ([plex docs]) ([sonos docs]) (beta fix)
- Force updates for ZHA light group entity members ([@dmulcahey] - [#37961]) ([zha docs]) (beta fix)
- Bump pychromecast to 7.1.2 ([@emontnemery] - [#37976]) ([cast docs]) (beta fix)
- Force updates for ZHA light group entity members (Part 2) ([@dmulcahey] - [#37995]) ([zha docs]) (beta fix)
- Rfxtrx fixup restore ([@elupus] - [#38039]) ([rfxtrx docs]) (beta fix)
- Make nested get() statements safe ([@michaeldavie] - [#37965]) ([environment_canada docs]) (beta fix)
- Fix issue with Insteon events not firing correctly ([@teharris1] - [#37974]) ([insteon docs]) (beta fix)
- Fix notify.slack service calls using data_template ([@jnewland] - [#37980]) ([slack docs]) (beta fix)
- Check if robot has boundaries to update ([@dshokouhi] - [#38030]) ([neato docs]) (beta fix)
- Correct arguments to MQTT will_set ([@emontnemery] - [#38036]) ([mqtt docs]) (beta fix)
- Use keywords for MQTT birth and will ([@emontnemery] - [#38040]) ([mqtt docs]) (beta fix)
- ZHA dependencies bump bellows to 0.18.0 ([@Adminiuga] - [#38043]) ([zha docs]) (beta fix)
- Add MQTT to constraints file ([@balloob] - [#38049]) (beta fix)
- Fix rfxtrx stop after first non light ([@elupus] - [#38057]) ([rfxtrx docs]) (beta fix)

</details>

[#38073]: https://github.com/home-assistant/core/issues/38073
[#31637]: https://github.com/home-assistant/core/pull/31637
[#33852]: https://github.com/home-assistant/core/pull/33852
[#34387]: https://github.com/home-assistant/core/pull/34387
[#34401]: https://github.com/home-assistant/core/pull/34401
[#35350]: https://github.com/home-assistant/core/pull/35350
[#35411]: https://github.com/home-assistant/core/pull/35411
[#35561]: https://github.com/home-assistant/core/pull/35561
[#35707]: https://github.com/home-assistant/core/pull/35707
[#35927]: https://github.com/home-assistant/core/pull/35927
[#36054]: https://github.com/home-assistant/core/pull/36054
[#36157]: https://github.com/home-assistant/core/pull/36157
[#36375]: https://github.com/home-assistant/core/pull/36375
[#36533]: https://github.com/home-assistant/core/pull/36533
[#36539]: https://github.com/home-assistant/core/pull/36539
[#36609]: https://github.com/home-assistant/core/pull/36609
[#36690]: https://github.com/home-assistant/core/pull/36690
[#36895]: https://github.com/home-assistant/core/pull/36895
[#36955]: https://github.com/home-assistant/core/pull/36955
[#36988]: https://github.com/home-assistant/core/pull/36988
[#37069]: https://github.com/home-assistant/core/pull/37069
[#37071]: https://github.com/home-assistant/core/pull/37071
[#37072]: https://github.com/home-assistant/core/pull/37072
[#37075]: https://github.com/home-assistant/core/pull/37075
[#37087]: https://github.com/home-assistant/core/pull/37087
[#37097]: https://github.com/home-assistant/core/pull/37097
[#37105]: https://github.com/home-assistant/core/pull/37105
[#37110]: https://github.com/home-assistant/core/pull/37110
[#37112]: https://github.com/home-assistant/core/pull/37112
[#37116]: https://github.com/home-assistant/core/pull/37116
[#37117]: https://github.com/home-assistant/core/pull/37117
[#37123]: https://github.com/home-assistant/core/pull/37123
[#37125]: https://github.com/home-assistant/core/pull/37125
[#37136]: https://github.com/home-assistant/core/pull/37136
[#37141]: https://github.com/home-assistant/core/pull/37141
[#37147]: https://github.com/home-assistant/core/pull/37147
[#37149]: https://github.com/home-assistant/core/pull/37149
[#37154]: https://github.com/home-assistant/core/pull/37154
[#37157]: https://github.com/home-assistant/core/pull/37157
[#37159]: https://github.com/home-assistant/core/pull/37159
[#37161]: https://github.com/home-assistant/core/pull/37161
[#37171]: https://github.com/home-assistant/core/pull/37171
[#37172]: https://github.com/home-assistant/core/pull/37172
[#37174]: https://github.com/home-assistant/core/pull/37174
[#37176]: https://github.com/home-assistant/core/pull/37176
[#37179]: https://github.com/home-assistant/core/pull/37179
[#37181]: https://github.com/home-assistant/core/pull/37181
[#37183]: https://github.com/home-assistant/core/pull/37183
[#37184]: https://github.com/home-assistant/core/pull/37184
[#37186]: https://github.com/home-assistant/core/pull/37186
[#37188]: https://github.com/home-assistant/core/pull/37188
[#37189]: https://github.com/home-assistant/core/pull/37189
[#37198]: https://github.com/home-assistant/core/pull/37198
[#37199]: https://github.com/home-assistant/core/pull/37199
[#37200]: https://github.com/home-assistant/core/pull/37200
[#37201]: https://github.com/home-assistant/core/pull/37201
[#37205]: https://github.com/home-assistant/core/pull/37205
[#37206]: https://github.com/home-assistant/core/pull/37206
[#37207]: https://github.com/home-assistant/core/pull/37207
[#37208]: https://github.com/home-assistant/core/pull/37208
[#37211]: https://github.com/home-assistant/core/pull/37211
[#37215]: https://github.com/home-assistant/core/pull/37215
[#37217]: https://github.com/home-assistant/core/pull/37217
[#37225]: https://github.com/home-assistant/core/pull/37225
[#37227]: https://github.com/home-assistant/core/pull/37227
[#37232]: https://github.com/home-assistant/core/pull/37232
[#37234]: https://github.com/home-assistant/core/pull/37234
[#37237]: https://github.com/home-assistant/core/pull/37237
[#37241]: https://github.com/home-assistant/core/pull/37241
[#37250]: https://github.com/home-assistant/core/pull/37250
[#37251]: https://github.com/home-assistant/core/pull/37251
[#37252]: https://github.com/home-assistant/core/pull/37252
[#37253]: https://github.com/home-assistant/core/pull/37253
[#37255]: https://github.com/home-assistant/core/pull/37255
[#37256]: https://github.com/home-assistant/core/pull/37256
[#37260]: https://github.com/home-assistant/core/pull/37260
[#37266]: https://github.com/home-assistant/core/pull/37266
[#37268]: https://github.com/home-assistant/core/pull/37268
[#37270]: https://github.com/home-assistant/core/pull/37270
[#37271]: https://github.com/home-assistant/core/pull/37271
[#37273]: https://github.com/home-assistant/core/pull/37273
[#37275]: https://github.com/home-assistant/core/pull/37275
[#37276]: https://github.com/home-assistant/core/pull/37276
[#37289]: https://github.com/home-assistant/core/pull/37289
[#37304]: https://github.com/home-assistant/core/pull/37304
[#37308]: https://github.com/home-assistant/core/pull/37308
[#37309]: https://github.com/home-assistant/core/pull/37309
[#37313]: https://github.com/home-assistant/core/pull/37313
[#37315]: https://github.com/home-assistant/core/pull/37315
[#37316]: https://github.com/home-assistant/core/pull/37316
[#37322]: https://github.com/home-assistant/core/pull/37322
[#37324]: https://github.com/home-assistant/core/pull/37324
[#37325]: https://github.com/home-assistant/core/pull/37325
[#37336]: https://github.com/home-assistant/core/pull/37336
[#37339]: https://github.com/home-assistant/core/pull/37339
[#37346]: https://github.com/home-assistant/core/pull/37346
[#37350]: https://github.com/home-assistant/core/pull/37350
[#37363]: https://github.com/home-assistant/core/pull/37363
[#37371]: https://github.com/home-assistant/core/pull/37371
[#37374]: https://github.com/home-assistant/core/pull/37374
[#37380]: https://github.com/home-assistant/core/pull/37380
[#37390]: https://github.com/home-assistant/core/pull/37390
[#37391]: https://github.com/home-assistant/core/pull/37391
[#37394]: https://github.com/home-assistant/core/pull/37394
[#37396]: https://github.com/home-assistant/core/pull/37396
[#37397]: https://github.com/home-assistant/core/pull/37397
[#37401]: https://github.com/home-assistant/core/pull/37401
[#37405]: https://github.com/home-assistant/core/pull/37405
[#37419]: https://github.com/home-assistant/core/pull/37419
[#37420]: https://github.com/home-assistant/core/pull/37420
[#37421]: https://github.com/home-assistant/core/pull/37421
[#37423]: https://github.com/home-assistant/core/pull/37423
[#37424]: https://github.com/home-assistant/core/pull/37424
[#37425]: https://github.com/home-assistant/core/pull/37425
[#37426]: https://github.com/home-assistant/core/pull/37426
[#37427]: https://github.com/home-assistant/core/pull/37427
[#37428]: https://github.com/home-assistant/core/pull/37428
[#37429]: https://github.com/home-assistant/core/pull/37429
[#37430]: https://github.com/home-assistant/core/pull/37430
[#37432]: https://github.com/home-assistant/core/pull/37432
[#37433]: https://github.com/home-assistant/core/pull/37433
[#37438]: https://github.com/home-assistant/core/pull/37438
[#37439]: https://github.com/home-assistant/core/pull/37439
[#37440]: https://github.com/home-assistant/core/pull/37440
[#37441]: https://github.com/home-assistant/core/pull/37441
[#37445]: https://github.com/home-assistant/core/pull/37445
[#37446]: https://github.com/home-assistant/core/pull/37446
[#37450]: https://github.com/home-assistant/core/pull/37450
[#37454]: https://github.com/home-assistant/core/pull/37454
[#37455]: https://github.com/home-assistant/core/pull/37455
[#37456]: https://github.com/home-assistant/core/pull/37456
[#37457]: https://github.com/home-assistant/core/pull/37457
[#37461]: https://github.com/home-assistant/core/pull/37461
[#37463]: https://github.com/home-assistant/core/pull/37463
[#37465]: https://github.com/home-assistant/core/pull/37465
[#37468]: https://github.com/home-assistant/core/pull/37468
[#37471]: https://github.com/home-assistant/core/pull/37471
[#37472]: https://github.com/home-assistant/core/pull/37472
[#37473]: https://github.com/home-assistant/core/pull/37473
[#37477]: https://github.com/home-assistant/core/pull/37477
[#37479]: https://github.com/home-assistant/core/pull/37479
[#37480]: https://github.com/home-assistant/core/pull/37480
[#37483]: https://github.com/home-assistant/core/pull/37483
[#37485]: https://github.com/home-assistant/core/pull/37485
[#37486]: https://github.com/home-assistant/core/pull/37486
[#37487]: https://github.com/home-assistant/core/pull/37487
[#37488]: https://github.com/home-assistant/core/pull/37488
[#37490]: https://github.com/home-assistant/core/pull/37490
[#37494]: https://github.com/home-assistant/core/pull/37494
[#37496]: https://github.com/home-assistant/core/pull/37496
[#37497]: https://github.com/home-assistant/core/pull/37497
[#37500]: https://github.com/home-assistant/core/pull/37500
[#37501]: https://github.com/home-assistant/core/pull/37501
[#37505]: https://github.com/home-assistant/core/pull/37505
[#37508]: https://github.com/home-assistant/core/pull/37508
[#37510]: https://github.com/home-assistant/core/pull/37510
[#37512]: https://github.com/home-assistant/core/pull/37512
[#37515]: https://github.com/home-assistant/core/pull/37515
[#37516]: https://github.com/home-assistant/core/pull/37516
[#37523]: https://github.com/home-assistant/core/pull/37523
[#37527]: https://github.com/home-assistant/core/pull/37527
[#37530]: https://github.com/home-assistant/core/pull/37530
[#37531]: https://github.com/home-assistant/core/pull/37531
[#37535]: https://github.com/home-assistant/core/pull/37535
[#37536]: https://github.com/home-assistant/core/pull/37536
[#37550]: https://github.com/home-assistant/core/pull/37550
[#37551]: https://github.com/home-assistant/core/pull/37551
[#37555]: https://github.com/home-assistant/core/pull/37555
[#37556]: https://github.com/home-assistant/core/pull/37556
[#37559]: https://github.com/home-assistant/core/pull/37559
[#37560]: https://github.com/home-assistant/core/pull/37560
[#37565]: https://github.com/home-assistant/core/pull/37565
[#37581]: https://github.com/home-assistant/core/pull/37581
[#37587]: https://github.com/home-assistant/core/pull/37587
[#37588]: https://github.com/home-assistant/core/pull/37588
[#37589]: https://github.com/home-assistant/core/pull/37589
[#37590]: https://github.com/home-assistant/core/pull/37590
[#37591]: https://github.com/home-assistant/core/pull/37591
[#37592]: https://github.com/home-assistant/core/pull/37592
[#37597]: https://github.com/home-assistant/core/pull/37597
[#37598]: https://github.com/home-assistant/core/pull/37598
[#37599]: https://github.com/home-assistant/core/pull/37599
[#37602]: https://github.com/home-assistant/core/pull/37602
[#37605]: https://github.com/home-assistant/core/pull/37605
[#37613]: https://github.com/home-assistant/core/pull/37613
[#37617]: https://github.com/home-assistant/core/pull/37617
[#37618]: https://github.com/home-assistant/core/pull/37618
[#37619]: https://github.com/home-assistant/core/pull/37619
[#37620]: https://github.com/home-assistant/core/pull/37620
[#37621]: https://github.com/home-assistant/core/pull/37621
[#37628]: https://github.com/home-assistant/core/pull/37628
[#37629]: https://github.com/home-assistant/core/pull/37629
[#37630]: https://github.com/home-assistant/core/pull/37630
[#37637]: https://github.com/home-assistant/core/pull/37637
[#37640]: https://github.com/home-assistant/core/pull/37640
[#37642]: https://github.com/home-assistant/core/pull/37642
[#37644]: https://github.com/home-assistant/core/pull/37644
[#37650]: https://github.com/home-assistant/core/pull/37650
[#37659]: https://github.com/home-assistant/core/pull/37659
[#37665]: https://github.com/home-assistant/core/pull/37665
[#37666]: https://github.com/home-assistant/core/pull/37666
[#37667]: https://github.com/home-assistant/core/pull/37667
[#37677]: https://github.com/home-assistant/core/pull/37677
[#37678]: https://github.com/home-assistant/core/pull/37678
[#37682]: https://github.com/home-assistant/core/pull/37682
[#37688]: https://github.com/home-assistant/core/pull/37688
[#37690]: https://github.com/home-assistant/core/pull/37690
[#37691]: https://github.com/home-assistant/core/pull/37691
[#37694]: https://github.com/home-assistant/core/pull/37694
[#37697]: https://github.com/home-assistant/core/pull/37697
[#37698]: https://github.com/home-assistant/core/pull/37698
[#37699]: https://github.com/home-assistant/core/pull/37699
[#37700]: https://github.com/home-assistant/core/pull/37700
[#37703]: https://github.com/home-assistant/core/pull/37703
[#37706]: https://github.com/home-assistant/core/pull/37706
[#37709]: https://github.com/home-assistant/core/pull/37709
[#37710]: https://github.com/home-assistant/core/pull/37710
[#37713]: https://github.com/home-assistant/core/pull/37713
[#37715]: https://github.com/home-assistant/core/pull/37715
[#37716]: https://github.com/home-assistant/core/pull/37716
[#37729]: https://github.com/home-assistant/core/pull/37729
[#37730]: https://github.com/home-assistant/core/pull/37730
[#37735]: https://github.com/home-assistant/core/pull/37735
[#37738]: https://github.com/home-assistant/core/pull/37738
[#37740]: https://github.com/home-assistant/core/pull/37740
[#37741]: https://github.com/home-assistant/core/pull/37741
[#37742]: https://github.com/home-assistant/core/pull/37742
[#37743]: https://github.com/home-assistant/core/pull/37743
[#37746]: https://github.com/home-assistant/core/pull/37746
[#37748]: https://github.com/home-assistant/core/pull/37748
[#37749]: https://github.com/home-assistant/core/pull/37749
[#37751]: https://github.com/home-assistant/core/pull/37751
[#37753]: https://github.com/home-assistant/core/pull/37753
[#37759]: https://github.com/home-assistant/core/pull/37759
[#37763]: https://github.com/home-assistant/core/pull/37763
[#37764]: https://github.com/home-assistant/core/pull/37764
[#37771]: https://github.com/home-assistant/core/pull/37771
[#37772]: https://github.com/home-assistant/core/pull/37772
[#37773]: https://github.com/home-assistant/core/pull/37773
[#37776]: https://github.com/home-assistant/core/pull/37776
[#37778]: https://github.com/home-assistant/core/pull/37778
[#37780]: https://github.com/home-assistant/core/pull/37780
[#37781]: https://github.com/home-assistant/core/pull/37781
[#37786]: https://github.com/home-assistant/core/pull/37786
[#37789]: https://github.com/home-assistant/core/pull/37789
[#37790]: https://github.com/home-assistant/core/pull/37790
[#37792]: https://github.com/home-assistant/core/pull/37792
[#37793]: https://github.com/home-assistant/core/pull/37793
[#37794]: https://github.com/home-assistant/core/pull/37794
[#37801]: https://github.com/home-assistant/core/pull/37801
[#37802]: https://github.com/home-assistant/core/pull/37802
[#37803]: https://github.com/home-assistant/core/pull/37803
[#37805]: https://github.com/home-assistant/core/pull/37805
[#37808]: https://github.com/home-assistant/core/pull/37808
[#37815]: https://github.com/home-assistant/core/pull/37815
[#37816]: https://github.com/home-assistant/core/pull/37816
[#37817]: https://github.com/home-assistant/core/pull/37817
[#37818]: https://github.com/home-assistant/core/pull/37818
[#37820]: https://github.com/home-assistant/core/pull/37820
[#37821]: https://github.com/home-assistant/core/pull/37821
[#37827]: https://github.com/home-assistant/core/pull/37827
[#37829]: https://github.com/home-assistant/core/pull/37829
[#37830]: https://github.com/home-assistant/core/pull/37830
[#37831]: https://github.com/home-assistant/core/pull/37831
[#37832]: https://github.com/home-assistant/core/pull/37832
[#37833]: https://github.com/home-assistant/core/pull/37833
[#37834]: https://github.com/home-assistant/core/pull/37834
[#37837]: https://github.com/home-assistant/core/pull/37837
[#37840]: https://github.com/home-assistant/core/pull/37840
[#37841]: https://github.com/home-assistant/core/pull/37841
[#37843]: https://github.com/home-assistant/core/pull/37843
[#37849]: https://github.com/home-assistant/core/pull/37849
[#37850]: https://github.com/home-assistant/core/pull/37850
[#37852]: https://github.com/home-assistant/core/pull/37852
[#37853]: https://github.com/home-assistant/core/pull/37853
[#37858]: https://github.com/home-assistant/core/pull/37858
[#37859]: https://github.com/home-assistant/core/pull/37859
[#37862]: https://github.com/home-assistant/core/pull/37862
[#37863]: https://github.com/home-assistant/core/pull/37863
[#37865]: https://github.com/home-assistant/core/pull/37865
[#37866]: https://github.com/home-assistant/core/pull/37866
[#37867]: https://github.com/home-assistant/core/pull/37867
[#37869]: https://github.com/home-assistant/core/pull/37869
[#37870]: https://github.com/home-assistant/core/pull/37870
[#37872]: https://github.com/home-assistant/core/pull/37872
[#37875]: https://github.com/home-assistant/core/pull/37875
[#37881]: https://github.com/home-assistant/core/pull/37881
[#37884]: https://github.com/home-assistant/core/pull/37884
[#37885]: https://github.com/home-assistant/core/pull/37885
[#37887]: https://github.com/home-assistant/core/pull/37887
[#37888]: https://github.com/home-assistant/core/pull/37888
[#37889]: https://github.com/home-assistant/core/pull/37889
[#37896]: https://github.com/home-assistant/core/pull/37896
[#37901]: https://github.com/home-assistant/core/pull/37901
[#37909]: https://github.com/home-assistant/core/pull/37909
[#37910]: https://github.com/home-assistant/core/pull/37910
[#37915]: https://github.com/home-assistant/core/pull/37915
[#37918]: https://github.com/home-assistant/core/pull/37918
[#37923]: https://github.com/home-assistant/core/pull/37923
[#37924]: https://github.com/home-assistant/core/pull/37924
[#37932]: https://github.com/home-assistant/core/pull/37932
[#37942]: https://github.com/home-assistant/core/pull/37942
[#37957]: https://github.com/home-assistant/core/pull/37957
[#37961]: https://github.com/home-assistant/core/pull/37961
[#37965]: https://github.com/home-assistant/core/pull/37965
[#37974]: https://github.com/home-assistant/core/pull/37974
[#37976]: https://github.com/home-assistant/core/pull/37976
[#37980]: https://github.com/home-assistant/core/pull/37980
[#37995]: https://github.com/home-assistant/core/pull/37995
[#38030]: https://github.com/home-assistant/core/pull/38030
[#38036]: https://github.com/home-assistant/core/pull/38036
[#38039]: https://github.com/home-assistant/core/pull/38039
[#38040]: https://github.com/home-assistant/core/pull/38040
[#38043]: https://github.com/home-assistant/core/pull/38043
[#38049]: https://github.com/home-assistant/core/pull/38049
[#38057]: https://github.com/home-assistant/core/pull/38057
[@2fake]: https://github.com/2Fake
[@adminiuga]: https://github.com/Adminiuga
[@compatech]: https://github.com/CoMPaTech
[@darkfox]: https://github.com/DarkFox
[@gmta]: https://github.com/GMTA
[@harryjholmes]: https://github.com/Harryjholmes
[@induprakash]: https://github.com/InduPrakash
[@jc2k]: https://github.com/Jc2k
[@jefflirion]: https://github.com/JeffLIrion
[@kdemontf]: https://github.com/Kdemontf
[@martinhjelmare]: https://github.com/MartinHjelmare
[@matthewflamm]: https://github.com/MatthewFlamm
[@michsior14]: https://github.com/Michsior14
[@paulannekov]: https://github.com/PaulAnnekov
[@quentame]: https://github.com/Quentame
[@rogerselwyn]: https://github.com/RogerSelwyn
[@seraphimserapis]: https://github.com/SeraphimSerapis
[@shulyaka]: https://github.com/Shulyaka
[@sukramj]: https://github.com/SukramJ
[@thelastgimbus]: https://github.com/TheLastGimbus
[@aaliddell]: https://github.com/aaliddell
[@abmantis]: https://github.com/abmantis
[@ajschmidt8]: https://github.com/ajschmidt8
[@akloeckner]: https://github.com/akloeckner
[@alandtse]: https://github.com/alandtse
[@alexhardwicke]: https://github.com/alexhardwicke
[@amelchio]: https://github.com/amelchio
[@bachya]: https://github.com/bachya
[@balloob]: https://github.com/balloob
[@bdraco]: https://github.com/bdraco
[@bednar]: https://github.com/bednar
[@bouwew]: https://github.com/bouwew
[@bramkragten]: https://github.com/bramkragten
[@brefra]: https://github.com/brefra
[@bsmappee]: https://github.com/bsmappee
[@cgtobi]: https://github.com/cgtobi
[@ctalkington]: https://github.com/ctalkington
[@danielpervan]: https://github.com/danielpervan
[@davet2001]: https://github.com/davet2001
[@dermotduffy]: https://github.com/dermotduffy
[@divanikus]: https://github.com/divanikus
[@djpremier]: https://github.com/djpremier
[@dmulcahey]: https://github.com/dmulcahey
[@dshokouhi]: https://github.com/dshokouhi
[@eifinger]: https://github.com/eifinger
[@elupus]: https://github.com/elupus
[@emlove]: https://github.com/emlove
[@emontnemery]: https://github.com/emontnemery
[@engrbm87]: https://github.com/engrbm87
[@esev]: https://github.com/esev
[@firstof9]: https://github.com/firstof9
[@frenck]: https://github.com/frenck
[@gagebenne]: https://github.com/gagebenne
[@guillempages]: https://github.com/guillempages
[@haemishkyd]: https://github.com/haemishkyd
[@jberstler]: https://github.com/jberstler
[@jbeyerstedt]: https://github.com/jbeyerstedt
[@jduquennoy]: https://github.com/jduquennoy
[@jfearon]: https://github.com/jfearon
[@jjlawren]: https://github.com/jjlawren
[@jnewland]: https://github.com/jnewland
[@jschlyter]: https://github.com/jschlyter
[@jurgenhaas]: https://github.com/jurgenhaas
[@kennedyshead]: https://github.com/kennedyshead
[@knyar]: https://github.com/knyar
[@ktnrg45]: https://github.com/ktnrg45
[@ludeeus]: https://github.com/ludeeus
[@marcelveldt]: https://github.com/marcelveldt
[@mdegat01]: https://github.com/mdegat01
[@michaeldavie]: https://github.com/michaeldavie
[@nkgilley]: https://github.com/nkgilley
[@outadoc]: https://github.com/outadoc
[@pavoni]: https://github.com/pavoni
[@pilehave]: https://github.com/pilehave
[@pnbruckner]: https://github.com/pnbruckner
[@pnguyen-tyro]: https://github.com/pnguyen-tyro
[@prystupa]: https://github.com/prystupa
[@pvizeli]: https://github.com/pvizeli
[@rajlaud]: https://github.com/rajlaud
[@raman325]: https://github.com/raman325
[@robbiet480]: https://github.com/robbiet480
[@scop]: https://github.com/scop
[@serhtt]: https://github.com/serhtt
[@shenxn]: https://github.com/shenxn
[@shermdog]: https://github.com/shermdog
[@smugleafdev]: https://github.com/smugleafdev
[@starkillerog]: https://github.com/starkillerOG
[@teharris1]: https://github.com/teharris1
[@timmo001]: https://github.com/timmo001
[@timvancann]: https://github.com/timvancann
[@tizzen33]: https://github.com/tizzen33
[@zhulik]: https://github.com/zhulik
[acmeda docs]: /integrations/acmeda/
[ads docs]: /integrations/ads/
[agent_dvr docs]: /integrations/agent_dvr/
[alarm_control_panel docs]: /integrations/alarm_control_panel/
[alert docs]: /integrations/alert/
[amcrest docs]: /integrations/amcrest/
[androidtv docs]: /integrations/androidtv/
[apache_kafka docs]: /integrations/apache_kafka/
[asuswrt docs]: /integrations/asuswrt/
[august docs]: /integrations/august/
[automation docs]: /integrations/automation/
[avri docs]: /integrations/avri/
[azure_event_hub docs]: /integrations/azure_event_hub/
[bayesian docs]: /integrations/bayesian/
[bond docs]: /integrations/bond/
[camera docs]: /integrations/camera/
[cast docs]: /integrations/cast/
[daikin docs]: /integrations/daikin/
[darksky docs]: /integrations/darksky/
[datadog docs]: /integrations/datadog/
[debugpy docs]: /integrations/debugpy/
[demo docs]: /integrations/demo/
[denonavr docs]: /integrations/denonavr/
[derivative docs]: /integrations/derivative/
[device_tracker docs]: /integrations/device_tracker/
[devolo_home_control docs]: /integrations/devolo_home_control/
[dexcom docs]: /integrations/dexcom/
[directv docs]: /integrations/directv/
[discovery docs]: /integrations/discovery/
[doorbird docs]: /integrations/doorbird/
[ecobee docs]: /integrations/ecobee/
[emulated_hue docs]: /integrations/emulated_hue/
[enocean docs]: /integrations/enocean/
[environment_canada docs]: /integrations/environment_canada/
[esphome docs]: /integrations/esphome/
[fan docs]: /integrations/fan/
[fibaro docs]: /integrations/fibaro/
[filter docs]: /integrations/filter/
[flux docs]: /integrations/flux/
[foobot docs]: /integrations/foobot/
[forked_daapd docs]: /integrations/forked_daapd/
[freebox docs]: /integrations/freebox/
[frontend docs]: /integrations/frontend/
[garmin_connect docs]: /integrations/garmin_connect/
[gdacs docs]: /integrations/gdacs/
[generic_thermostat docs]: /integrations/generic_thermostat/
[geniushub docs]: /integrations/geniushub/
[geo_json_events docs]: /integrations/geo_json_events/
[geonetnz_quakes docs]: /integrations/geonetnz_quakes/
[geonetnz_volcano docs]: /integrations/geonetnz_volcano/
[google_assistant docs]: /integrations/google_assistant/
[google_pubsub docs]: /integrations/google_pubsub/
[group docs]: /integrations/group/
[guardian docs]: /integrations/guardian/
[harmony docs]: /integrations/harmony/
[hdmi_cec docs]: /integrations/hdmi_cec/
[history docs]: /integrations/history/
[homekit docs]: /integrations/homekit/
[homekit_controller docs]: /integrations/homekit_controller/
[homematic docs]: /integrations/homematic/
[homematicip_cloud docs]: /integrations/homematicip_cloud/
[hue docs]: /integrations/hue/
[influxdb docs]: /integrations/influxdb/
[input_number docs]: /integrations/input_number/
[insteon docs]: /integrations/insteon/
[integration docs]: /integrations/integration/
[ipp docs]: /integrations/ipp/
[joaoapps_join docs]: /integrations/joaoapps_join/
[knx docs]: /integrations/knx/
[logger docs]: /integrations/logger/
[loopenergy docs]: /integrations/loopenergy/
[luftdaten docs]: /integrations/luftdaten/
[manual_mqtt docs]: /integrations/manual_mqtt/
[min_max docs]: /integrations/min_max/
[mold_indicator docs]: /integrations/mold_indicator/
[mqtt docs]: /integrations/mqtt/
[neato docs]: /integrations/neato/
[netatmo docs]: /integrations/netatmo/
[netdata docs]: /integrations/netdata/
[nuki docs]: /integrations/nuki/
[nws docs]: /integrations/nws/
[onvif docs]: /integrations/onvif/
[ozw docs]: /integrations/ozw/
[pioneer docs]: /integrations/pioneer/
[plant docs]: /integrations/plant/
[plex docs]: /integrations/plex/
[plugwise docs]: /integrations/plugwise/
[plum_lightpad docs]: /integrations/plum_lightpad/
[poolsense docs]: /integrations/poolsense/
[prometheus docs]: /integrations/prometheus/
[ps4 docs]: /integrations/ps4/
[recorder docs]: /integrations/recorder/
[rejseplanen docs]: /integrations/rejseplanen/
[remote_rpi_gpio docs]: /integrations/remote_rpi_gpio/
[rfxtrx docs]: /integrations/rfxtrx/
[script docs]: /integrations/script/
[slack docs]: /integrations/slack/
[smappee docs]: /integrations/smappee/
[smarthab docs]: /integrations/smarthab/
[sms docs]: /integrations/sms/
[solaredge docs]: /integrations/solaredge/
[sonarr docs]: /integrations/sonarr/
[sonos docs]: /integrations/sonos/
[spotify docs]: /integrations/spotify/
[sql docs]: /integrations/sql/
[statistics docs]: /integrations/statistics/
[stream docs]: /integrations/stream/
[supervisord docs]: /integrations/supervisord/
[syncthru docs]: /integrations/syncthru/
[tado docs]: /integrations/tado/
[template docs]: /integrations/template/
[tesla docs]: /integrations/tesla/
[toon docs]: /integrations/toon/
[touchline docs]: /integrations/touchline/
[tplink docs]: /integrations/tplink/
[transmission docs]: /integrations/transmission/
[tuya docs]: /integrations/tuya/
[unifi docs]: /integrations/unifi/
[universal docs]: /integrations/universal/
[verisure docs]: /integrations/verisure/
[vizio docs]: /integrations/vizio/
[volumio docs]: /integrations/volumio/
[worldclock docs]: /integrations/worldclock/
[xiaomi_miio docs]: /integrations/xiaomi_miio/
[yeelight docs]: /integrations/yeelight/
[zeroconf docs]: /integrations/zeroconf/
[zerproc docs]: /integrations/zerproc/
[zha docs]: /integrations/zha/
