Listing above and below together means the numeric_state has to be between the two values.
-In the example above, the trigger would fire a single time if a numeric_state goes into the 17.1-24.9 range (from 17 and below or 25 and above). It will only fire again, once it has left the defined range and enters it again.
+In the example above, the trigger would fire a single time if a numeric_state goes into the 17.1-24.9 range (above 17 and below 25). It will only fire again, once it has left the defined range and enters it again.
Number helpers (`input_number` entities), `number` and `sensor` entities that
@@ -225,8 +255,6 @@ automation:
trigger:
- platform: numeric_state
entity_id: sensor.temperature
- # Optional
- value_template: "{{ state.attributes.battery }}"
# At least one of the following required
above: 17
below: 25
@@ -649,7 +677,7 @@ automation 3:
-Do not prefix numbers with a zero - using `'00'` instead of '0' for example will result in errors.
+Do not prefix numbers with a zero - using `'00'` instead of `'0'` for example will result in errors.
diff --git a/source/_docs/automation/yaml.markdown b/source/_docs/automation/yaml.markdown
index 36c3368ebcf7..3d0ad65144bf 100644
--- a/source/_docs/automation/yaml.markdown
+++ b/source/_docs/automation/yaml.markdown
@@ -118,12 +118,12 @@ automation:
### Number of debug traces stored
-When using YAML you can configure the number of debugging traces stored for an automation. This is controlled with the `stored_traces` option under `traces`. Set `stored_traces` to the number of traces you wish to store for the particular automation. If not specified the default value of 5 will be used.
+When using YAML you can configure the number of debugging traces stored for an automation. This is controlled with the `stored_traces` option under `trace`. Set `stored_traces` to the number of traces you wish to store for the particular automation. If not specified the default value of 5 will be used.
```yaml
automation:
- alias: "Automation Name"
- traces:
+ trace:
stored_traces: 10
trigger:
- platform: ...
diff --git a/source/_docs/blueprint/schema.markdown b/source/_docs/blueprint/schema.markdown
index 2f88a109dc47..b47b1e125a3d 100644
--- a/source/_docs/blueprint/schema.markdown
+++ b/source/_docs/blueprint/schema.markdown
@@ -121,7 +121,7 @@ A blueprint can have as many inputs as you like.
The inputs are available as custom YAML tags, but not as template variables.
To use a blueprint input in a template, it first needs to be exposed as either
-a [script level variable](/integrations/script/#-configuration-variables) or in
+a [script level variable](/integrations/script/#configuration-variables) or in
a [variable script step](/docs/scripts/#variables).
```yaml
diff --git a/source/_docs/configuration.markdown b/source/_docs/configuration.markdown
index 5b61f9289a5d..9cabf86087d4 100644
--- a/source/_docs/configuration.markdown
+++ b/source/_docs/configuration.markdown
@@ -5,7 +5,7 @@ description: "Configuring Home Assistant via text files."
While you can configure most of Home Assistant directly from the user interface under {% my configuration %}, some parts need you to edit `configuration.yaml`. This file contains integrations to be loaded along with their configurations. Throughout the documentation you will find snippets that you can add to your configuration file to enable specific functionality.
-If you run into trouble while configuring Home Assistant, refer to the [configuration troubleshooting page](/getting-started/configuration/troubleshooting/) and the [`configuration.yaml` examples](/examples/#example-configurationyaml).
+If you run into trouble while configuring Home Assistant, refer to the [configuration troubleshooting page](/docs/configuration/troubleshooting/) and the [`configuration.yaml` examples](/examples/#example-configurationyaml).
## Editing `configuration.yaml`
diff --git a/source/_docs/configuration/basic.markdown b/source/_docs/configuration/basic.markdown
index 8142a9c56ee8..9487c1fba623 100644
--- a/source/_docs/configuration/basic.markdown
+++ b/source/_docs/configuration/basic.markdown
@@ -14,7 +14,7 @@ homeassistant:
longitude: 117.22743
elevation: 430
unit_system: metric
- currency: "$",
+ currency: USD
time_zone: "America/Los_Angeles"
external_url: "https://www.example.com"
internal_url: "http://homeassistant.local:8123"
@@ -61,7 +61,7 @@ time_zone:
required: false
type: string
currency:
- description: The default currency symbol for your location.
+ description: "Pick your currency code from the column **Code** of [Wikipedia's list of ISO 4217 active codes](https://en.wikipedia.org/wiki/ISO_4217#Active_codes)"
required: false
type: string
external_url:
diff --git a/source/_docs/energy.markdown b/source/_docs/energy.markdown
index 4158c793b2ab..c794713ea274 100644
--- a/source/_docs/energy.markdown
+++ b/source/_docs/energy.markdown
@@ -5,6 +5,8 @@ description: "How to get started using home energy management in Home Assistant.
Home Assistant allows you to get on top of your energy use with its home energy management feature. Gain new insights, optimize your solar panel production, plan energy usage and save money.
+{% my energy badge %} {% my config_energy badge %}
+
Home Assistant works with three different types of information sources. You can start using it even if you just have one source connected to Home Assistant. Every source you add will complement the other sources, giving you even more insight into energy in your home.
Home Assistant is an open platform and so home energy management is not restricted to specific hardware. Any energy monitoring hardware that integrates with Home Assistant can be used as a data source. Check out the following sections for in-depth explanations and hardware recommendations.
diff --git a/source/_docs/energy/electricity-grid.markdown b/source/_docs/energy/electricity-grid.markdown
index 4e4952f479f5..e9b229bac2be 100644
--- a/source/_docs/energy/electricity-grid.markdown
+++ b/source/_docs/energy/electricity-grid.markdown
@@ -7,50 +7,58 @@ Energy management is all about knowing how much energy you’re consuming, where
Almost all houses are connected to the electricity grid which provides the energy your home will need. The energy usage is being tracked by your energy meter and is billed to you by your energy provider. Energy prices can differ based on a schedule or change according to market price.
-
+
## Tariffs
It has become popular for energy utilities to split the price of energy based on time of the day; this is done in order to incentivise consumers to shift their power needs towards times where the grid has lower loads. These periods of time are commonly referred to as Peak and Off Peak, exactly because they match periods of time where everyone is consuming energy (Peak) and periods of time where the energy is abundant but no one is using it (Off Peak). Therefore Peak energy is more expensive then Off Peak energy.
-If you are using a 3rd party device (e.g. not reading directly from your utility meter device or from the utility provider cloud service) you need HA to split your energy measurements into 2 (or more) tariffs, in order to track these energy consumptions separately. To accomplish such, you might use [the utility_meter integration](/integrations/utility_meter/). With the utility_meter integration you define as many tariffs as required (in accordance to your utility provider contract) and HA will be able to differentiate energy consumptions in each of the tariffs. Please note that each utility provider has their own time schedules for peak and off peak and you are required to create an automation that switches the utility_meter entity from one tariff to the other.
+If you want to split energy usage into multiple tariffs, [read this](/docs/energy/faq/#split-consumption-by-tariffs).
## Hardware
-Home Assistant will need to know the amount of energy flowing through your meter. This can be done in various ways.
+Home Assistant will need to know the amount of energy flowing through your meter. This data can be tracked in various ways.
-### Using a CT clamp sensor
+### Connect to your meter
-CT clamp sensors measure the instantaneous current passing through an electrical wire. To translate this into electrical power (Wh) you also need a voltage measurement, because Power = Current x Voltage.
+The best way to get this data is directly from your electricity meter that sits between your house and the grid. In certain countries these meters contain standardized ways of reading out the information locally.
-In Home Assistant we have support for off-the-shelf CT clamp sensors and you can build your own with ESPHome's [CT Clamp Current sensor](https://esphome.io/components/sensor/ct_clamp.html).
+#### Connect using a P1 port
-The off-the-shelf solution that we advice is the [Shelly EM](https://shop.shelly.cloud/shelly-em-120a-clamp-wifi-smart-home-automation#143). The device has a local API, updates are pushed to Home Assistant and it has a high quality integration.
+The P1 port is a standardized port in the Netherlands, Belgium and Luxembourg. A P1 reader can connect to this port and receive real-time information.
-Devices like Shelly EM/3EM, Iotawatt, Openenergymonitor (EmonPi) measure both current and voltage.
+We have worked with creator [Marcel Zuidwijk](https://www.zuidwijk.com) to develop [SlimmeLezer](https://www.slimmelezer.nl). It's an affordable P1 reader powered by [ESPHome](https://esphome.io) that will seamlessly integrate this information in Home Assistant. It is being sold on [his website](https://www.slimmelezer.nl) and the firmware is open source [on GitHub](https://github.com/zuidwijk/dsmr).
-In case of three-phase electrical systems, attention should be drawn to the fact that the current measurement of a given phase is matched to the voltage of the same phase, otherwise the power measurements will be incorrect.
+
-_Attention! Installing CT clamp sensor devices requires opening your electrical cabinet. This work should be done by someone familiar with electrical wiring. Your qualified installer will know how to do this._
+#### Connect via Zigbee Energy Profile
-### Connect to your meter
+The Zigbee Energy Profile is a wireless energy standard to provide real-time information about electricity usage. This standard is available in some meters in the US, UK and Australia. This is not "normal" Zigbee as implemented by Home Assistant but requires special certified hardware.
-The best way to get this data is directly from your electricity meter that sits between your house and the grid. In certain countries these meters contain standardized ways of reading out the information locally.
+One such option with a local API is the [Rainforest EAGLE-200](/integrations/rainforest_eagle/).
-### Connect using a P1 port
+#### Reading the meter via a pulse counter
-The P1 port is a standardized port in the Netherlands, Belgium and Luxembourg. A P1 reader can connect to this port and receive real-time information.
+Many meters, including older ones, have an LED that will flash whenever energy passes through it. For example, each flash is a 1/1000th kWh. By monitoring the time between flashes it’s possible to determine the energy consumption.
-We have worked with creator Marcel Zuidwijk to develop [Slimme Lezer](https://www.slimmelezer.nl). It's a P1 reader powered by ESPHome that will seamlessly integrate this information in Home Assistant. It is being sold on his website.
+We have developed [Home Assistant Glow](https://github.com/klaasnicolaas/home-assistant-glow), an open source solution powered by ESPHome's [pulse meter sensor](https://esphome.io/components/sensor/pulse_meter.html). You put it on top of the activity LED of your electricity meter and it will bring your consumption into Home Assistant.
-### Reading the meter via a pulse counter
+
-Many meters, including older ones, have an LED that will flash whenever energy passes through it. For example, each flash is a 1/1000th kWh. By monitoring the time between flashes it’s possible to determine the energy consumption.
+### Using a CT clamp sensor
+
+CT clamp sensors measure your energy usage by looking at the current passing through an electrical wire. This makes it possible to calculate the energy usage. In Home Assistant we have support for off-the-shelf CT clamp sensors and you can build your own.
-We have developed [Home Assistant Glow](https://github.com/klaasnicolaas/home-assistant-glow), an open source solution powered by ESPHome's [pulse meter sensor](https://esphome.io/components/sensor/pulse_meter.html).
+The off-the-shelf solution that we advise is the [Shelly EM](https://shop.shelly.cloud/shelly-em-2-x-120a-clamp-wifi-smart-home-automation?tracking=A7FsiPIfUWsFpnfKHa8SRyUYLXjr2hPq). The device has a local API, updates are pushed to Home Assistant and it has a high quality integration.
+
+You can build your own using ESPHome's [CT Clamp Current sensor](https://esphome.io/components/sensor/ct_clamp.html) or energy meter sensors like the [ATM90E32](https://esphome.io/components/sensor/atm90e32.html). For the DIY route, check out [this video by digiblur](https://www.youtube.com/watch?v=n2XZzciz0s4) to get started.
+
+_Attention! Installing CT clamp sensor devices requires opening your electrical cabinet. This work should be done by someone familiar with electrical wiring. Your qualified installer will know how to do this._
### Data provided by your energy provider
Some energy providers will provide you real-time information about your usage and have this data integrated into Home Assistant.
+[Energy integrations](/integrations/#energy)
+
_Disclaimer: Some links on this page are affiliate links._
diff --git a/source/_docs/energy/faq.markdown b/source/_docs/energy/faq.markdown
index 0f3f0cfff1c8..8a1c69dad4cf 100644
--- a/source/_docs/energy/faq.markdown
+++ b/source/_docs/energy/faq.markdown
@@ -5,10 +5,26 @@ description: "Home Energy Management is a vast topic and not everything might be
## Energy vs Power
-Energy is a quantitative measurement of what it takes to produce work (e.g. heat water) while Power measures the speed at which energy is transferred.
+It's a common mistake to take Power as an Energy value, but the two are not alike.
-Electrical Power is usually measured in Watts (W) and Electrical Energy is usually measured in Watt-Hour (Wh) (not to be confused with Watt/Hour).
+[Energy](https://en.wikipedia.org/wiki/Energy) is a quantitative measurement of what it takes to produce work (e.g. heat water) while [Power](https://en.wikipedia.org/wiki/Electric_power) measures the speed at which energy is transferred.
-This difference is very important as you need to use the proper entities and/or convert between the two. Energy (Watt-Hour) is not an average of the Power you are consuming over a given period of time, but the sum of the power function: Power is the derivative of Energy over time.
+Electrical Power is measured in Watts (W) and Electrical Energy is measured in kiloWatt-hour (kWh).
Think of this in a parallel to speed and distance: Power is the speed you are going and Energy is the distance driven.
+
+Therefore Energy (kiloWatt-hour) is not an average of the Power you are consuming over a given period of time (that would be kiloWatt/hour). Energy is the integral (mathematical operation) of the Power function.
+
+This difference is very important as you need to use the proper entities in our Energy Panel.
+
+## Creating an Energy Sensor out of a Power Sensor
+
+Since in Home Assistant, we don't deal with Power functions but with samples of the power being used, we can't do the integral (mathematical operation) directly and get the true amount of energy consumed/produced.
+
+That said, if you can sample Power values fast enough (every few seconds) you can reliably measure energy transferred through mathematic approximations called [Riemann Sum](https://en.wikipedia.org/wiki/Riemann_sum). Home Assistant provides this mathematical operation through the [integration](/integrations/integration/#energy).
+
+## Split consumption by tariffs
+
+If you are using a 3rd party device (e.g. not reading directly from your utility meter device or from the utility provider cloud service) you need HA to split your energy measurements into 2 (or more) tariffs, in order to track these energy consumptions separately.
+
+To accomplish such, you can use [the utility_meter integration](/integrations/utility_meter/). With this integration, you define as many tariffs as required (in accordance with your utility provider contract) and HA will be able to differentiate energy consumptions in each of the tariffs. Please note that each utility provider has its own time schedules for peak and off-peak and you are required to create an automation that switches the utility_meter entity from one tariff to the other.
diff --git a/source/_docs/energy/individual-devices.markdown b/source/_docs/energy/individual-devices.markdown
index 2e5ad145471c..c84939cd5e31 100644
--- a/source/_docs/energy/individual-devices.markdown
+++ b/source/_docs/energy/individual-devices.markdown
@@ -3,10 +3,27 @@ title: "Integrating individual device energy usage"
description: "Learn how to add information about individual device energy usage to Home Assistant home energy management."
---
-Home Assistant can integrate the energy usage of individual devices into Home Assistant. This usage is generally measured by a smart plug sitting between the device and the outlet.
+Home Assistant can integrate the energy usage of individual devices into Home Assistant. That way you can see the impact of individual devices on your total enery consumption.
+
+## Hardware
+
+### Smart plugs
+
+Smart plugs sit between the device and the outlet and measure the energy flowing through the device.
Depending on what protocols you use at home, you can use Zigbee, Z-Wave or Wi-Fi based plugs.
-
+### Smart Relays
+
+Smart relays sit behind your "normal" switches and make them smart. It allows you to control the devices via Home Assistant and via the connected buttons/switches.
+
+{% comment %}
+We recommend the Shelly brand because they have a local API that updates Home Assistant as soon as something happens and it has a high quality integration:
+
+ - [Shelly 1PM](https://shop.shelly.cloud/shelly-1pm-wifi-smart-home-automation-1?tracking=A7FsiPIfUWsFpnfKHa8SRyUYLXjr2hPq)
+ - [Shelly 2.5](https://shop.shelly.cloud/shelly-2.5-ce-ul-wifi-smart-home-automation?tracking=A7FsiPIfUWsFpnfKHa8SRyUYLXjr2hPq)
+ {% endcomment %}
+
+
_Disclaimer: Some links on this page are affiliate links._
diff --git a/source/_docs/energy/solar-panels.markdown b/source/_docs/energy/solar-panels.markdown
index f2a22b428949..092f6cf5536c 100644
--- a/source/_docs/energy/solar-panels.markdown
+++ b/source/_docs/energy/solar-panels.markdown
@@ -7,7 +7,7 @@ Gain insight into your energy production by integrating your solar panels into H
If you also set up [the Solar Forecast integration](/integrations/forecast_solar), you will be able to see expected solar production and automate based on planned production.
-
+
## Hardware
@@ -15,14 +15,16 @@ Home Assistant will need to know the amount of energy that is being produced. Th
### Using a CT clamp sensor
-CT clamp sensors measure the instantaneous current passing through an electrical wire. To translate this into electrical power (Wh) you also need a voltage measurement, because Power = Current x Voltage.
+CT clamp sensors measure the instantaneous current passing through an electrical wire. To translate this into electrical power (W) you also need a voltage measurement, because Power = Current x Voltage.
In Home Assistant we have support for off-the-shelf CT clamp sensors and you can build your own with ESPHome's [CT Clamp Current sensor](https://esphome.io/components/sensor/ct_clamp.html).
-The off-the-shelf solution that we advice is the [Shelly EM](https://shop.shelly.cloud/shelly-em-120a-clamp-wifi-smart-home-automation#143). The device has a local API, updates are pushed to Home Assistant and it has a high quality integration.
+The off-the-shelf solution that we advice is the [Shelly EM](https://shop.shelly.cloud/shelly-em-2-x-120a-clamp-wifi-smart-home-automation?tracking=A7FsiPIfUWsFpnfKHa8SRyUYLXjr2hPq). The device has a local API, updates are pushed to Home Assistant and it has a high quality integration.
-Devices like Shelly EM/3EM, Iotawatt, Openenergymonitor (EmonPi) measure both current and voltage.
+_Attention! Installing CT clamp sensor devices requires opening your electrical cabinet. This work should be done by someone familiar with electrical wiring. Your qualified installer will know how to do this._
-In case of three-phase electrical systems, attention should be drawn to the fact that the current measurement of a given phase is matched to the voltage of the same phase, otherwise the power measurements will be incorrect.
+### Connecting to your inverter
-_Attention! Installing CT clamp sensor devices requires opening your electrical cabinet. This work should be done by someone familiar with electrical wiring. Your qualified installer will know how to do this._
+Some solar inverters have APIs that can be read by Home Assistant.
+
+[Energy integrations](/integrations/#energy)
diff --git a/source/_docs/mqtt/discovery.markdown b/source/_docs/mqtt/discovery.markdown
index b5f9b00c127a..b0247eeaa4d0 100644
--- a/source/_docs/mqtt/discovery.markdown
+++ b/source/_docs/mqtt/discovery.markdown
@@ -303,6 +303,7 @@ Supported abbreviations for device registry configuration:
The following software has built-in support for MQTT discovery:
- [Arilux AL-LC0X LED controllers](https://github.com/mertenats/Arilux_AL-LC0X)
+- [ecowitt2mqtt](https://github.com/bachya/ecowitt2mqtt)
- [ESPHome](https://esphome.io)
- [ESPurna](https://github.com/xoseperez/espurna)
- [IOTLink](https://iotlink.gitlab.io) (starting with 2.0.0)
@@ -311,6 +312,8 @@ The following software has built-in support for MQTT discovery:
- [room-assistant](https://github.com/mKeRix/room-assistant) (starting with 1.1.0)
- [SmartHome](https://github.com/roncoa/SmartHome)
- [Tasmota](https://github.com/arendst/Tasmota) (starting with 5.11.1e, development halted)
+- [Teleinfo MQTT](https://github.com/fmartinou/teleinfo-mqtt) (starting with 3.0.0)
+- [What's up Docker?](https://github.com/fmartinou/whats-up-docker) (starting with 3.5.0)
- [WyzeSense2MQTT](https://github.com/raetha/wyzesense2mqtt)
- [Xiaomi DaFang Hacks](https://github.com/EliasKotlyar/Xiaomi-Dafang-Hacks)
- [Zigbee2mqtt](https://github.com/koenkk/zigbee2mqtt)
diff --git a/source/_docs/scripts.markdown b/source/_docs/scripts.markdown
index 98dd5df48ee0..f76598b68eb5 100644
--- a/source/_docs/scripts.markdown
+++ b/source/_docs/scripts.markdown
@@ -674,4 +674,4 @@ automation:
[service calls page]: /getting-started/scripts-service-calls/
[conditions page]: /getting-started/scripts-conditions/
[shorthand-template]: /docs/scripts/conditions/#template-condition-shorthand-notation
-[script variables]: /integrations/script/#-configuration-variables
+[script variables]: /integrations/script/#configuration-variables
diff --git a/source/_docs/scripts/service-calls.markdown b/source/_docs/scripts/service-calls.markdown
index 896126b7aa4e..bb65a50c8f7d 100644
--- a/source/_docs/scripts/service-calls.markdown
+++ b/source/_docs/scripts/service-calls.markdown
@@ -30,12 +30,13 @@ This is done with the `target` key.
A `target` is a map that contains at least one of the following: `area_id`, `device_id`, `entity_id`.
Each of these can be a list.
-When the service is called, the areas and devices will be resolved to entities.
+The following example uses a single service call to turn on the lights in the
+living room area, 2 additional light devices and 2 additional light entities:
```yaml
-service: homeassistant.turn_on
+service: light.turn_on
target:
- area_id: livingroom
+ area_id: living_room
device_id:
- ff22a1889a6149c5ab6327a8236ae704
- 52c050ca1a744e238ad94d170651f96b
diff --git a/source/_docs/z-wave/controllers.markdown b/source/_docs/z-wave/controllers.markdown
index e806ede70109..55aaaa829cb9 100644
--- a/source/_docs/z-wave/controllers.markdown
+++ b/source/_docs/z-wave/controllers.markdown
@@ -13,13 +13,12 @@ This Z-Wave integration is deprecated and replaced with a [new implementation ba
You need to have a compatible Z-Wave stick or module installed. This needs to be a *static controller*, which most Z-Wave sticks and modules will be. If yours is a *bridge* device then it won't work with [OpenZWave](http://openzwave.com/), which is what provides Home Assistant's Z-Wave capabilities. The following devices have been confirmed to work:
-- Aeotec Z-Stick Series 5 (see note below)
+- Aeotec Z-Stick Gen5 (see note below)
- Everspring USB stick - Gen 5
- GoControl HUSBZB-1 stick
- Sigma Designs UZB stick
- Silicon Labs SLUSB7000A
- Vision USB stick - Gen5
-- Zooz Z-Wave Plus S2 stick ZST10
- ZWave.me Razberry Board
- ZWave.me UZB1 stick
@@ -34,7 +33,6 @@ We recommend that you purchase a [Z-Wave Plus](https://z-wavealliance.org/z-wave
The alternative to a stick is a hub that supports Z-Wave. Home Assistant supports the following hubs with Z-Wave support:
- [Vera](/integrations/vera/)
-- [Wink](/integrations/wink/)
- [Fibaro](/integrations/fibaro/)
- [SmartThings](/integrations/smartthings/)
diff --git a/source/_includes/asides/about.html b/source/_includes/asides/about.html
index e4a12f326189..f5e5c5ddae42 100644
--- a/source/_includes/asides/about.html
+++ b/source/_includes/asides/about.html
@@ -2,7 +2,7 @@
About Home Assistant
- Home Assistant is an open-source home automation platform running on Python 3. Track and control all devices at home and automate control.
+ {{ site.description }}
+ Home Assistant allows you to get on top of your energy use with its
+ home energy management feature. Gain new insights,
+ optimize your solar panel production, plan energy usage and save money.
+
-Open source home automation that puts local control and privacy first. Powered by a worldwide community of tinkerers and DIY enthusiasts. Perfect to run on a Raspberry Pi or a local server.
+
Suggest an edit to this page, or provide/view feedback for this page.
diff --git a/source/_includes/installation/operating_system.md b/source/_includes/installation/operating_system.md
index 73d00f256eef..36829242140a 100644
--- a/source/_includes/installation/operating_system.md
+++ b/source/_includes/installation/operating_system.md
@@ -54,6 +54,10 @@ We will need a few things to get started with installing Home Assistant. Links b
Prerequisites
This guide assumes that you have a dedicated generic x86 PC (typically an Intel or AMD-based system) available to exclusively run Home Assistant Operating System. The system must be 64-bit capable and able to boot using UEFI. Pretty much all systems produced in the last 10 years support the UEFI boot mode.
+
+Summary
+
+You will need to write the HAOS (Home Assistant OS) disk image directly to your boot media, and then configure your x86 to boot from this media, using UEFI boot mode.
### Configure the BIOS
@@ -69,15 +73,15 @@ To boot Home Assistant OS the BIOS needs to have UEFI boot mode enabled and Secu
1. Disable Secure Boot

-As a next step, we need to write the Operating System image to the installation media. Depending on your system this can be a S-ATA hard disk, S-ATA SSD, a M.2 SSD or even a eMMC. Home Assistant Operating System has no integrated installer. You need to use your Desktop computer (e.g. by using a USB to S-ATA adapter) or boot a live operating system on your target system to install Home Assistant Operating System.
+As a next step, we need to write the Operating System image to the target boot media (Your "boot media" is the disk, SSD, or eMMC that your x86-64 hardware will boot from when it is running Home Assistant). Depending on your system this can be a S-ATA hard disk, S-ATA SSD, a M.2 SSD or even a eMMC. Home Assistant Operating System has no integrated installer. You need to use your Desktop computer (e.g. by using a USB to S-ATA adapter) or boot a live operating system on your target system to install Home Assistant Operating System, by writing the disk image directly onto the boot media for your x86 system.
-If you prefer to use a live operating system, follow the instructions of your Live distribution (e.g., [this Ubuntu guide](https://ubuntu.com/tutorials/try-ubuntu-before-you-install)). Once you booted the live operating system, the following steps on how-to write the image to your installation media can be followed.
+If you prefer to use a live operating system, follow the instructions of your Live distribution (e.g., [this Ubuntu guide](https://ubuntu.com/tutorials/try-ubuntu-before-you-install)). Once you booted the live operating system, the following steps on how to write the image to your boot media can be followed.
{% endif %}
-### Write the image to your installation media
+### Write the image to your boot media
-1. Attach the installation media ({{site.installation.types[page.installation_type].installation_media}}) to your computer
+1. Attach the Home Assistant boot media ({{site.installation.types[page.installation_type].installation_media}}) to your computer
2. Download and start Balena Etcher
3. Select "Flash from URL"

@@ -127,11 +131,11 @@ _Select and copy the URL or use the "copy" button that appear when you hover it.
### Start up your {{site.installation.types[page.installation_type].board}}
{% if page.installation_type == 'generic-x86-64' %}
-1. If you used your Desktop system to write to your installation media, install the installation media ({{site.installation.types[page.installation_type].installation_media}}) to the target system. Otherwise, shutdown the live operating system and make sure to remove the USB flash drive you have been using for the live system.
+1. If you used your Desktop system to write to your boot media, install the boot media ({{site.installation.types[page.installation_type].installation_media}}) into the target system. Otherwise, shutdown the live operating system and make sure to remove the USB flash drive you have been using for the live system.
2. Make sure an ethernet cable for network is plugged in
3. Power the system on.
{% else %}
-1. Insert the installation media ({{site.installation.types[page.installation_type].installation_media}}) you just created
+1. Insert the boot media ({{site.installation.types[page.installation_type].installation_media}}) you just created
2. Attach a ethernet cable for network.
3. Attach a cable for power
{% endif %}
diff --git a/source/_integrations/acmeda.markdown b/source/_integrations/acmeda.markdown
index 39f411e71330..d787f59ac668 100644
--- a/source/_integrations/acmeda.markdown
+++ b/source/_integrations/acmeda.markdown
@@ -15,15 +15,13 @@ ha_platforms:
- sensor
---
-The Rollease Acmeda Automate integration allows you to control and monitor covers via your Rolelase Acmeda Automate hub (v1 only, see the [Automate Integration](/integrations/automate) for the Automate Pulse v2 Hub).
-
-The integration uses an [API](https://pypi.org/project/aiopulse/) to directly communicate with hubs on the local network, rather than connecting via the cloud or via RS-485.
-Devices are represented as a cover for monitoring and control as well as a sensor for monitoring battery condition.
+The Rollease Acmeda Automate integration allows you to control and monitor covers via your Rolelase Acmeda Automate hub. The integrations communicates directly with hubs on the local network, rather than connecting via the cloud or via RS-485. Devices are represented as a cover for monitoring and control as well as a sensor for monitoring battery condition.
### Supported devices
- Automate Pulse Hub v1
+
{% include integrations/config_flow.md %}
### Multiple hubs
diff --git a/source/_integrations/analytics.markdown b/source/_integrations/analytics.markdown
index ec29202eac39..cddcd7ba7590 100644
--- a/source/_integrations/analytics.markdown
+++ b/source/_integrations/analytics.markdown
@@ -74,6 +74,7 @@ This includes:
- The names of all your core integrations
- The names and versions of all your custom integrations if you have any
+- Boolean to indicate that the [`energy` integration](/integrations/energy) is configured
If your system includes the Supervisor, this will also contain:
@@ -100,14 +101,17 @@ If your system includes the Supervisor, this will also contain:
"version": "{{site.data.version_data.hassos['odroid-n2']}}"
},
"integrations": ["awesome_integration"],
- "addons": [
- {
- "slug": "awesome_addon",
- "protected": true,
- "version": "1.0.0",
- "auto_update": false
- }
- ]
+ "addons": [
+ {
+ "slug": "awesome_addon",
+ "protected": true,
+ "version": "1.0.0",
+ "auto_update": false
+ }
+ ],
+ "energy": {
+ "configured": true
+ }
}
```
diff --git a/source/_integrations/august.markdown b/source/_integrations/august.markdown
index 2d82264b5680..3d06a581a743 100644
--- a/source/_integrations/august.markdown
+++ b/source/_integrations/august.markdown
@@ -21,7 +21,18 @@ ha_platforms:
- sensor
---
-The `august` integration allows you to integrate your [August](https://august.com/) devices in Home Assistant.
+The `august` integration allows you to integrate your [August](https://august.com/) and some Yale Access devices in Home Assistant.
+
+{% include integrations/config_flow.md %}
+
+### Known Working Devices
+
+- August Wi-Fi Smart Lock (Gen 4)
+- August Smart Lock Pro (Gen 3)
+- August Smart Lock (Gen 2)
+- August Doorbell Cam (Gen 1, Gen2)
+- August View
+- Yale Assure Locks with August/Yale Connect Module
There is currently support for the following device types within Home Assistant:
@@ -35,7 +46,10 @@ There is currently support for the following device types within Home Assistant:
August Lock 2nd Gen will need either August Connect or Doorbell to connect to Home Assistant.
-{% include integrations/config_flow.md %}
+### Known Unsupported Devices
+- The Yale Doorman L3
+
+Other devices not listed above have not been tested and may not function as expected.
### Binary Sensor
diff --git a/source/_integrations/automate.markdown b/source/_integrations/automate.markdown
deleted file mode 100644
index 61e25b7f93fe..000000000000
--- a/source/_integrations/automate.markdown
+++ /dev/null
@@ -1,32 +0,0 @@
----
-title: Automate Pulse 2 Hub by Rollease Acmeda
-description: Instructions on setting up the Automate Pulse Hub v2 by Rollease Acmeda within Home Assistant.
-ha_category:
- - Cover
-ha_iot_class: Local Push
-ha_release: 2021.8
-ha_config_flow: true
-ha_codeowners:
- - '@sillyfrog'
-ha_domain: automate
----
-
-The Automate Pulse 2 Hub by Rollease Acmeda integration allows you to control and monitor covers via your Automate Pulse v2 Hub (see the [acmeda](/integrations/acmeda) integration for the v1 hub). The integration uses an [API](https://pypi.org/project/aiopulse2/) to directly communicate with hubs on the local network, rather than connecting via the cloud.
-
-Devices are represented as a cover for monitoring and control as well as a sensor for monitoring battery level and signal strength.
-
-
-{% include integrations/config_flow.md %}
-
-Once registration is complete, all devices are automatically discovered on the hub and you will have the opportunity to select the area each device is located. You should see a `cover` and two `sensor` entities for each device.
-
-The integration automatically manages the addition/update/removal of any devices connected to the hub at startup, including device names unless manually specified in Home Assistant.
-
-## Caveats
-
-If the IP address for the hub changes, you will need to re-register it with Home Assistant again. To avoid this, you may set up a DHCP reservation on your router for your hub so that it always has the same IP address.
-
-The integration has the following limitations:
-
-- covers with position as well as tilt are not yet supported.
-- the integration doesn't make use of rooms and scenes configured in the hub, use the equivalent functionality in Home Assistant instead.
diff --git a/source/_integrations/caldav.markdown b/source/_integrations/caldav.markdown
index 5c9200a4fce0..98abca786f1c 100644
--- a/source/_integrations/caldav.markdown
+++ b/source/_integrations/caldav.markdown
@@ -44,6 +44,15 @@ calendar:
url: https://nextcloud.example.com/remote.php/dav
```
+```yaml
+# Example configuration.yaml entry for iCloud, calendars will be found automatically
+calendar:
+ - platform: caldav
+ username: !secret userIcloud
+ password: !secret passIcloud
+ url: https://caldav.icloud.com
+```
+
This example will generate default binary sensors for each calendar you have in your account. Those calendars will be `on` when there is an ongoing event and `off` if not. Events that last a whole day are ignored in those calendars. You have to setup custom calendars in order to take them into account or for advanced event filtering.
## Custom calendars
diff --git a/source/_integrations/coronavirus.markdown b/source/_integrations/coronavirus.markdown
index 34b4a87273e8..c0b18691ee17 100644
--- a/source/_integrations/coronavirus.markdown
+++ b/source/_integrations/coronavirus.markdown
@@ -7,7 +7,7 @@ ha_release: 0.106
ha_iot_class: Cloud Polling
ha_config_flow: true
ha_codeowners:
- - '@home_assistant/core'
+ - '@home-assistant/core'
ha_domain: coronavirus
ha_platforms:
- sensor
diff --git a/source/_integrations/default_config.markdown b/source/_integrations/default_config.markdown
index fe0f13a492c5..8b6c946491ed 100644
--- a/source/_integrations/default_config.markdown
+++ b/source/_integrations/default_config.markdown
@@ -15,6 +15,7 @@ This integration is a meta-component and configures a default set of integration
- [Configuration](/integrations/config/) (`config`)
- [Counter](/integrations/counter/) (`counter`)
- [DHCP Discovery](/integrations/dhcp/) (`dhcp`)
+- [Energy](/integrations/energy/) (`energy`)
- [Frontend](/integrations/frontend/) (`frontend`)
- [History](/integrations/history/) (`history`)
- [Image](/integrations/image/) (`image`)
diff --git a/source/_integrations/demo.markdown b/source/_integrations/demo.markdown
index 658cc6526441..dbad6e5433f4 100644
--- a/source/_integrations/demo.markdown
+++ b/source/_integrations/demo.markdown
@@ -27,6 +27,8 @@ ha_platforms:
- number
- remote
- sensor
+ - select
+ - siren
- stt
- switch
- tts
diff --git a/source/_integrations/denonavr.markdown b/source/_integrations/denonavr.markdown
index 75672de79307..989734ab63c5 100644
--- a/source/_integrations/denonavr.markdown
+++ b/source/_integrations/denonavr.markdown
@@ -91,9 +91,9 @@ show_all_sources:
zone1:
description: Specifies if zone 1 should be activated. Zones are displayed as additional media players with the same functionality as the Main Zone of the device supports.
zone2:
- description: Specifies if zone 2 should be activated. Zones are displayed as additional media players with the same functionality as the Main Zone of the device supports.
+ description: Specifies if zone 2 should be activated. Zones are displayed as additional media players with the same functionality as the Main Zone of the device supports. Some receivers do not support a second zone.
update_audyssey:
- description: Specifies if Audyssey settings should be updated. This can take up to 10 Seconds for some receivers.
+ description: Specifies if Audyssey settings should be updated. This can take up to 10 seconds for some receivers.
required: false
default: false
type: boolean
@@ -110,14 +110,25 @@ A few notes:
#### Service `denonavr.get_command`
-Generic commands are supported, in particular, any command supported by the telnet protocol can be sent to `/goform/formiPhoneAppDirect.xml`, e.g., `/goform/formiPhoneAppDirect.xml?VSMONI2` to switch HDMI outputs on supported receivers. IR remote codes can also be sent to this endpoint, e.g., "/goform/formiPhoneAppDirect.xml?RCKSK0410370" as a mute toggle.
-A comprehensive list of telnet protocol commands is [also available](http://assets.denon.com/_layouts/15/xlviewer.aspx?id=/DocumentMaster/us/AVR-X6400H_X4400H_X3400H_X2400H_X1400H_S930H_S730H_PROTOCOL_V01.xlsx) and so is a [full list of IR codes](http://assets.denon.com/DocumentMaster/UK/AVR3313_IR_CODE_V01.pdf)
+Denon AVR receivers support a simple text-based network interface for sending commands to the receiver over the network. You can access this interface via the `denonavr.get_command` service. In addition, IR remote codes can also be sent to this interface.
+
+A list of network commands supported by the various Denon AVR receivers can be [found here](https://www.heimkinoraum.de/upload/files/product/IP_Protocol_AVR-Xx100.pdf). A list of IR codes can be [found here](https://www.heimkinoraum.de/upload/files/product/IP_Protocol_AVR-Xx100.pdf).
+
+To use these commands, call the `denonavr.get_command` service and append the specific command to the path `/goform/formiPhoneAppDirect.xml?`:
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ---------------------------------------------------- |
| `entity_id` | no | Name of entity to send command to. For example `media_player.marantz`|
| `command` | no | Command to send to device, e.g., `/goform/formiPhoneAppDirect.xml?VSMONI2`|
+So for example, the above command `/goform/formiPhoneAppDirect.xml?VSMONI2` will switch the HDMI to output 2 (if your receiver supports it). Sending an IR code works the same, so the command `/goform/formiPhoneAppDirect.xml?RCKSK0410370` will toggle muting.
+
+
+
+The denonavr platform supports the standard media player controls such as `turn_on` and `volume_up`. Thus calling the service `media_player.turn_on` is equivalent to calling `denonavr.get_command` with the command `/goform/formiPhoneAppDirect.xml?PWON`. See [media_player](/integrations/meida_player/) for more details.
+
+
+
#### Service `denonavr.set_dynamic_eq`
Enable or disable DynamicEQ setting.
diff --git a/source/_integrations/derivative.markdown b/source/_integrations/derivative.markdown
index 7e169ca99f5d..e8032a79aa71 100644
--- a/source/_integrations/derivative.markdown
+++ b/source/_integrations/derivative.markdown
@@ -80,6 +80,6 @@ sensor:
source: sensor.temperature
name: Temperature change per hour
round: 1
- unit_time: h # the resulting "unit_of_measurement" will be °C/h if the sensor.temperate has set °C as it's unit
+ unit_time: h # the resulting "unit_of_measurement" will be °C/h if the sensor.temperate has set °C as its unit
time_window: "00:30:00" # we look at the change over the last half hour
```
diff --git a/source/_integrations/dexcom.markdown b/source/_integrations/dexcom.markdown
index e167038a8d9e..00e8a3e4500c 100644
--- a/source/_integrations/dexcom.markdown
+++ b/source/_integrations/dexcom.markdown
@@ -17,7 +17,7 @@ The Dexcom integration allows you to view your CGM data from [Dexcom](https://ww
## Prerequisites
-You will need to set up the [Dexcom Share](https://provider.dexcom.com/education-research/cgm-education-use/videos/setting-dexcom-share-and-follow) feature in your Dexcom G6 App to use this integration.
+You will need to set up the [Dexcom Share](https://provider.dexcom.com/education-research/cgm-education-use/videos/setting-dexcom-share-and-follow) feature in your Dexcom G6 App to use this integration. Enabling the Dexcom Share service requires setup of at least one follower. The integration will use the Dexcom user's credentials, not the follower's credentials.
{% include integrations/config_flow.md %}
diff --git a/source/_integrations/dsmr.markdown b/source/_integrations/dsmr.markdown
index a286047c2ef1..d2bfb0e359e6 100644
--- a/source/_integrations/dsmr.markdown
+++ b/source/_integrations/dsmr.markdown
@@ -35,6 +35,7 @@ This integration is known to work for:
- Kaifa E0026
- Kamstrup 382JxC (DSMR 2.2)
- Sagemcom XS210 ESMR5
+- Ziv E0058 ESMR5
USB serial converters:
@@ -49,7 +50,7 @@ Serial to network proxies:
DIY solutions (ESP8266 based):
-- [esp8266_p1meter (fliphess)](https://github.com/fliphess/esp8266_p1meter)
+- [esp8266_p1meter (daniel-jong)](https://github.com/daniel-jong/esp8266_p1meter)
{% include integrations/config_flow.md %}
diff --git a/source/_integrations/edl21.markdown b/source/_integrations/edl21.markdown
index 318051942407..196d4b080be0 100644
--- a/source/_integrations/edl21.markdown
+++ b/source/_integrations/edl21.markdown
@@ -24,6 +24,7 @@ Compatible transceivers:
Tested smart meters:
- APATOR Norax 3D (enable InF Mode as described in manual to retrieve full data)
+- DZG DWS76 (enable InF as described in manual to retrieve full data)
- Iskraemeco MT175 (ISKRA MT175-D2A51-V22-K0t)
## Configuration
diff --git a/source/_integrations/esphome.markdown b/source/_integrations/esphome.markdown
index aeef0935d962..fd42361fc948 100644
--- a/source/_integrations/esphome.markdown
+++ b/source/_integrations/esphome.markdown
@@ -21,6 +21,7 @@ ha_platforms:
- light
- number
- sensor
+ - select
- switch
---
diff --git a/source/_integrations/fido.markdown b/source/_integrations/fido.markdown
index 5722b8fe1826..58f9831e6fa1 100644
--- a/source/_integrations/fido.markdown
+++ b/source/_integrations/fido.markdown
@@ -84,6 +84,6 @@ monitored_variables:
description: Other talk time used (It could be international calls)
other_talk_limit:
description: Other talk time limit
- other_talt_remaining:
+ other_talk_remaining:
description: Other talk time remaining
{% endconfiguration %}
diff --git a/source/_integrations/fixer.markdown b/source/_integrations/fixer.markdown
index ff98f2ab15ea..68153e17621b 100644
--- a/source/_integrations/fixer.markdown
+++ b/source/_integrations/fixer.markdown
@@ -18,7 +18,7 @@ To get an overview about the available [currencies](https://fixer.io/symbols).
## Setup
-You need to create an [API key](https://fixer.io/product). There is a rate limit of 1000 calls per month.
+You need to create an [API key](https://fixer.io/product). The free account is limited to only EUR as a base currency, allows 250 requests per month, and updates every hour.
## Configuration
diff --git a/source/_integrations/flipr.markdown b/source/_integrations/flipr.markdown
index 173d9acd013e..04147886bfae 100644
--- a/source/_integrations/flipr.markdown
+++ b/source/_integrations/flipr.markdown
@@ -9,6 +9,8 @@ ha_config_flow: true
ha_codeowners:
- '@cnico'
ha_domain: flipr
+ha_platforms:
+ - sensor
---
[Flipr](https://www.goflipr.com) is a smart pool monitor that publishes data to the cloud via SigFox.
@@ -42,6 +44,6 @@ It is recommended that you create your own card with the following sensors where
- `sensor.flipr_[fliprid]_ph`
- `sensor.flipr_[fliprid]_red_ox`
- `sensor.flipr_[fliprid]_water_temp`
-- `sensor.flipr_[fliprid]_date_measure`
+- `sensor.flipr_[fliprid]_last_measured`
Leave `binary_sensor.flipr_[fliprid]_ph_status` and `binary_sensor.flipr_[fliprid]_chlorine_status` as badges.
diff --git a/source/_integrations/forecast_solar.markdown b/source/_integrations/forecast_solar.markdown
index c627f7ca9861..b27284d804e9 100644
--- a/source/_integrations/forecast_solar.markdown
+++ b/source/_integrations/forecast_solar.markdown
@@ -33,6 +33,8 @@ As an example automation idea, you could determine if:
## Prerequisites
+Forecast.Solar relies on data provided by the [EU Photovoltaic geographical information system](https://re.jrc.ec.europa.eu/pvg_tools/en/tools.html) and your solar panels must be in a location that is covered by this tool. Data is currently not available for most of the Asia Pacific region.
+
To use the Forecast.Solar integration, it will need some information about your
solar panel system: **latitude**, **longitude**, **declination**, **azimuth**
and **total modules power**.
diff --git a/source/_integrations/freedompro.markdown b/source/_integrations/freedompro.markdown
index 98d038d3042f..3d45f6bffc67 100644
--- a/source/_integrations/freedompro.markdown
+++ b/source/_integrations/freedompro.markdown
@@ -17,7 +17,7 @@ ha_codeowners:
- '@stefano055415'
ha_domain: freedompro
ha_platforms:
- - binary sensor
+ - binary_sensor
- climate
- cover
- fan
diff --git a/source/_integrations/fritz.markdown b/source/_integrations/fritz.markdown
index 6c99fce904dd..7ae3e2e8c070 100644
--- a/source/_integrations/fritz.markdown
+++ b/source/_integrations/fritz.markdown
@@ -79,6 +79,8 @@ These can be changed at **AVM FRITZ!Box Tools** -> **Configure** on the Integrat
### Parental control
+Parental control switches can be used to enable and disable internet access of individual devices. If a device has internet access it will be enabled, otherwise it will be disabled. You can also find the current blocking state of the individual devices in the UI of the FRITZ!Box under `Internet` -> `Filters` -> `Parental Controls` -> `Device Block`
+
Parental control switches are designed for advanced users, thus they are disabled by default. You need to enable the wanted entities manually.
### Device Tracker
@@ -91,3 +93,55 @@ Parental control switches are designed for advanced users, thus they are disable
Due to security reasons, AVM implemented the ability to enable/disable a port forward rule only from the host involved in the rule.
As a result, this integration will create entities only for rules that have your Home Assistant host as a destination.
+
+**Note 1**: On your FRITZ!Box, enable the setting `Permit independent port sharing for this device` for the device which runs HA (`Internet` -> `Permit Access` -> ``)
+
+**Note 2**: Only works if you have a dedicated IPv4 address (it won't work with DS-Lite)
+
+## Example Automations and Scripts
+
+
+**Script: Reconnect / get new IP**
+
+The following script can be used to easily add a reconnect button to your UI. If you want to reboot your FRITZ!Box, you can use `fritzbox_tools.reboot` instead.
+
+```yaml
+fritz_box_reconnect:
+ alias: "Reconnect FRITZ!Box"
+ sequence:
+ - service: fritz.reconnect
+ target:
+ entity_id: binary_sensor.fritz_box_7530_connectivity
+
+```
+**Automation: Reconnect / get new IP every night**
+
+```yaml
+automation:
+- alias: "System: Reconnect FRITZ!Box"
+ trigger:
+ - platform: time
+ at: "05:00:00"
+ action:
+ - service: fritz.reconnect
+ target:
+ entity_id: binary_sensor.fritzbox_x_connectivity
+
+```
+
+**Automation: Phone notification with wifi credentials when guest wifi is created**
+
+```yaml
+automation:
+ - alias: "Guests Wifi Turned On -> Send Password To Phone"
+ trigger:
+ - platform: state
+ entity_id: switch.fritzbox_x_wifi_x
+ to: "on"
+ action:
+ - service: notify.notify
+ data:
+ title: "Guest wifi is enabled"
+ message: "Password: ..."
+
+```
diff --git a/source/_integrations/frontend.markdown b/source/_integrations/frontend.markdown
index d939ac9789f7..80755d46acde 100644
--- a/source/_integrations/frontend.markdown
+++ b/source/_integrations/frontend.markdown
@@ -46,7 +46,6 @@ frontend:
type: string
{% endconfiguration %}
-
## Defining Themes
### Theme format
@@ -99,18 +98,19 @@ frontend:
Theme `happy`: Same as in the previous example. This legacy format is still supported and will behave as before and automatically use the default light theme as the base.
-Theme `sad`: By using the new `mode` key plus the subkey `dark` this theme will now be based on the default dark theme. The final theme rules are determined in three steps: First, the default dark theme CSS variables will be applied, then second the CSS variables from the top level of the theme that are mode-independent (`primary-color: steelblue` in this example) and lastly the mode-specific CSS variables will be layered on top (`secondary-text-color: slategray`).
+Theme `sad`: By using the new `modes` key plus the subkey `dark` this theme will now be based on the default dark theme. The final theme rules are determined in three steps: First, the default dark theme CSS variables will be applied, then second the CSS variables from the top level of the theme that are mode-independent (`primary-color: steelblue` in this example) and lastly the mode-specific CSS variables will be layered on top (`secondary-text-color: slategray`).
Note: Since this example theme only has a `dark` mode defined, this mode will automatically be used.
Theme `day_and_night`: This theme has both a `light` and a `dark` mode section. That tells the frontend to allow the user to choose which mode to use from the user profile (default selection is based on the system settings). Independent of the selection, the primary color will be set to green, but based on the chosen mode either the default light or dark theme will be used as the basis for rendering, plus the secondary text color will be either olive or slategray.
### Theme configuration splitting
+
As with all configuration, you can either:
-- Directly specify the themes inside your `configuration.yaml` file
-- Put them into a separate file (e.g. `themes.yaml`) and include that in your configuration (`themes: !include themes.yaml`)
-- Create a dedicated folder (e.g. `my_themes`) and include all files from within this folder (`themes: !include_dir_merge_named my_themes`)
+- Directly specify the themes inside your `configuration.yaml` file.
+- Put them into a separate file (e.g., `themes.yaml`) and include that in your configuration (`themes: !include themes.yaml`).
+- Create a dedicated folder (e.g., `my_themes`) and include all files from within this folder (`themes: !include_dir_merge_named my_themes`).
For more details about splitting up the configuration into multiple files, see [this page](/docs/configuration/splitting_configuration/).
@@ -120,10 +120,10 @@ Check our [community forums](https://community.home-assistant.io/c/projects/them
There are two themes-related services:
- - `frontend.reload_themes`: Reloads theme configuration from your `configuration.yaml` file.
- - `frontend.set_theme`: Sets backend-preferred theme name.
+- `frontend.reload_themes`: Reloads theme configuration from your `configuration.yaml` file.
+- `frontend.set_theme`: Sets backend-preferred theme name.
- ### Service `set_theme`
+### Service `set_theme`
| Service data attribute | Description |
| ---------------------- | --------------------------------------------------------------------------------------------------- |
diff --git a/source/_integrations/generic.markdown b/source/_integrations/generic.markdown
index 9aed29877e37..1fe49cdbd891 100644
--- a/source/_integrations/generic.markdown
+++ b/source/_integrations/generic.markdown
@@ -1,5 +1,5 @@
---
-title: Generic
+title: Generic Camera
description: Instructions on how to integrate IP cameras within Home Assistant.
ha_category:
- Camera
diff --git a/source/_integrations/generic_hygrostat.markdown b/source/_integrations/generic_hygrostat.markdown
index f2f68afc6bcc..d1392d977172 100644
--- a/source/_integrations/generic_hygrostat.markdown
+++ b/source/_integrations/generic_hygrostat.markdown
@@ -1,11 +1,16 @@
---
-title: Generic Hygrostat
+title: Generic hygrostat
description: Virtual hygrostat device
ha_category:
- Humidifier
ha_release: 2021.8
ha_domain: generic_hygrostat
ha_quality_scale: internal
+ha_codeowners:
+ - '@Shulyaka'
+ha_iot_class: Local Polling
+ha_platforms:
+ - humidifier
---
The `generic_hygrostat` humidifier integration is a virtual hygrostat implemented in Home Assistant. It uses a sensor and a switch connected to a humidifier or dehumidifier under the hood. When in humidifier mode, if the measured humidity is less than the target humidity, the humidifier will be turned on and turned off when the required humidity is reached. When in dehumidifier mode, if the measured humidity is greater than the target humidity, the dehumidifier will be turned on and turned off when required humidity is reached. One Generic Hygrostat entity can only control one switch. If you need to activate two switches, one for a humidifier and one for a dehumidifier, you will need two Generic Hygrostat entities.
@@ -43,7 +48,7 @@ max_humidity:
default: 100
type: integer
target_humidity:
- description: Set initial target temperature. This value will be used as a fallback when the previous setpoint is not available.
+ description: Set initial target humidity. This value will be used as a fallback when the previous setpoint is not available.
required: false
type: integer
device_class:
diff --git a/source/_integrations/greeneye_monitor.markdown b/source/_integrations/greeneye_monitor.markdown
index cd79ffc13982..2bed14f8f1d9 100644
--- a/source/_integrations/greeneye_monitor.markdown
+++ b/source/_integrations/greeneye_monitor.markdown
@@ -5,6 +5,7 @@ logo: brultech.png
ha_category:
- Hub
- Sensor
+ - Energy
ha_release: 0.82
ha_iot_class: Local Push
ha_codeowners:
diff --git a/source/_integrations/hikvision.markdown b/source/_integrations/hikvision.markdown
index d69de480cbe0..cfb480fb5177 100644
--- a/source/_integrations/hikvision.markdown
+++ b/source/_integrations/hikvision.markdown
@@ -66,6 +66,7 @@ and has been confirmed to work with the following models:
This platform also was confirmed to work with the following Hikvison-based NVRS
- N46PCK (Annke H800 4K NVR)
+- N48PAW (Annke 4K NVR)
## Configuration
diff --git a/source/_integrations/homeassistant.markdown b/source/_integrations/homeassistant.markdown
index ef0270e522a5..fccd2f0e54bc 100644
--- a/source/_integrations/homeassistant.markdown
+++ b/source/_integrations/homeassistant.markdown
@@ -38,7 +38,7 @@ Reloads the core configuration under `homeassistant:` and all linked files. Once
### Service `homeassistant.restart`
-Restarts the Home Assistant instance (also reloading the configuration on start).
+Restarts the Home Assistant instance (also reloading the configuration on start).
This will also do a configuration check before doing a restart. If the configuration check fails then Home Assistant will not be restarted, instead a persistent notification with the ID `persistent_notification.homeassistant_check_config` will be created. The logs will show details on what failed the configuration check.
@@ -65,9 +65,12 @@ action:
longitude: 117.22743
```
-### Service `homeassistant.toggle`
+### Service `homeassistant.toggle`
-Generic service to toggle devices on/off under any domain. Same usage as the light.turn_on, switch.turn_on, etc. services.
+Generic service to toggle devices on/off. Same usage as the
+`light.toggle`, `switch.toggle`, etc. services. The difference with this
+service compared the others, is that is can be used to mix different domains,
+for example, a light and a switch can be toggled in a single service call.
| Service data attribute | Optional | Description |
|---------------------------|----------|-------------------------------------------------------|
@@ -79,12 +82,17 @@ Generic service to toggle devices on/off under any domain. Same usage as the lig
action:
service: homeassistant.toggle
target:
- entity_id: light.living_room
+ entity_id:
+ - light.living_room
+ - switch.tv
```
-### Service `homeassistant.turn_on`
+### Service `homeassistant.turn_on`
-Generic service to turn devices on under any domain. Same usage as the light.turn_on, switch.turn_on, etc. services.
+Generic service to toggle devices on. Same usage as the
+`light.turn_on`, `switch.turn_on`, etc. services. The difference with this
+service compared the others, is that is can be used to mix different domains,
+for example, a light and a switch can be turned on in a single service call.
| Service data attribute | Optional | Description |
|---------------------------|----------|-------------------------------------------------------|
@@ -96,12 +104,17 @@ Generic service to turn devices on under any domain. Same usage as the light.tur
action:
service: homeassistant.turn_on
target:
- entity_id: light.living_room
+ entity_id:
+ - light.living_room
+ - switch.tv
```
### Service `homeassistant.turn_off`
-Generic service to turn devices off under any domain. Same usage as the light.turn_on, switch.turn_on, etc. services.
+Generic service to toggle devices off. Same usage as the
+`light.turn_off`, `switch.turn_off`, etc. services. The difference with this
+service compared the others, is that is can be used to mix different domains,
+for example, a light and a switch can be turned off in a single service call.
| Service data attribute | Optional | Description |
|---------------------------|----------|-------------------------------------------------------|
@@ -113,10 +126,12 @@ Generic service to turn devices off under any domain. Same usage as the light.tu
action:
service: homeassistant.turn_off
target:
- entity_id: light.living_room
+ entity_id:
+ - light.living_room
+ - switch.tv
```
-### Service `homeassistant.update_entity`
+### Service `homeassistant.update_entity`
Force one or more entities to update its data rather than wait for the next scheduled update.
diff --git a/source/_integrations/homekit_controller.markdown b/source/_integrations/homekit_controller.markdown
index a34be7397e46..377079d4080b 100644
--- a/source/_integrations/homekit_controller.markdown
+++ b/source/_integrations/homekit_controller.markdown
@@ -34,6 +34,7 @@ ha_platforms:
- light
- lock
- media_player
+ - number
- sensor
- switch
---
diff --git a/source/_integrations/honeywell.markdown b/source/_integrations/honeywell.markdown
index 393b08dd9cae..c15ae822535b 100644
--- a/source/_integrations/honeywell.markdown
+++ b/source/_integrations/honeywell.markdown
@@ -19,4 +19,4 @@ It uses the [somecomfort](https://github.com/kk7ds/somecomfort) client library.
If your system is compatible with this integration, then you will be able access it via [https://mytotalconnectcomfort.com/portal/](https://mytotalconnectcomfort.com/portal/) (note the `/portal/`).
-{% include integrations/config_flow.md %}
\ No newline at end of file
+{% include integrations/config_flow.md %}
diff --git a/source/_integrations/humidifier.mqtt.markdown b/source/_integrations/humidifier.mqtt.markdown
index 5b946ca5e599..3092bdc58b6d 100644
--- a/source/_integrations/humidifier.mqtt.markdown
+++ b/source/_integrations/humidifier.mqtt.markdown
@@ -191,7 +191,7 @@ target_humidity_state_topic:
description: The MQTT topic subscribed to receive humidifier target humidity.
required: false
type: string
-target_humidity_value_template:
+target_humidity_state_template:
description: Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value for the humidifier `target_humidity` state.
required: false
type: string
@@ -207,7 +207,7 @@ mode_state_topic:
description: The MQTT topic subscribed to receive the humidifier `mode`.
required: false
type: string
-mode_value_template:
+mode_state_template:
description: Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value for the humidifier `mode` state.
required: false
type: string
diff --git a/source/_integrations/integration.markdown b/source/_integrations/integration.markdown
index f45780e295b7..a49ea9cc2d10 100644
--- a/source/_integrations/integration.markdown
+++ b/source/_integrations/integration.markdown
@@ -83,4 +83,4 @@ sensor:
round: 2
```
-This configuration will provide you with `sensor.energy_spent` who will have your energy in kWh.
+This configuration will provide you with `sensor.energy_spent` which will have your energy in kWh.
diff --git a/source/_integrations/intesishome.markdown b/source/_integrations/intesishome.markdown
index ddb8ce1adc5d..fe0cc1a33232 100644
--- a/source/_integrations/intesishome.markdown
+++ b/source/_integrations/intesishome.markdown
@@ -1,7 +1,6 @@
---
title: IntesisHome
description: Instructions how to integrate IntesisHome AC devices with Home Assistant
-logo: intesishome.png
ha_category: Climate
ha_release: 0.104
ha_iot_class: Cloud Push
diff --git a/source/_integrations/iss.markdown b/source/_integrations/iss.markdown
index 91c6ff0f0da7..e99d852b44f3 100644
--- a/source/_integrations/iss.markdown
+++ b/source/_integrations/iss.markdown
@@ -48,24 +48,3 @@ If you set `show_on_map: true` then the location attributes are named `latitude`
The default name of the location attributes is `lat` and `long` to avoid showing them on the map.
-
-### Show position on map with camera platform
-
-The [generic camera platform](/integrations/mjpeg) offers
-the possibility to show the location of the ISS on OpenStreetMap.
-
-{% raw %}
-
-```yaml
-# Example configuration.yaml entry
- - platform: iss
- show_on_map: true
-
-camera:
- - platform: generic
- name: ISS
- still_image_url: http://staticmap.openstreetmap.de/staticmap.php?center={{ state_attr('binary_sensor.iss', 'lat') }},{{ state_attr('binary_sensor.iss', 'long') }}&zoom=4&size=865x512&maptype=mapnik&markers={{ state_attr('binary_sensor.iss', 'lat') }},{{ state_attr('binary_sensor.iss', 'long') }},lightblue
- limit_refetch_to_url_change: true
-```
-
-{% endraw %}
diff --git a/source/_integrations/knx.markdown b/source/_integrations/knx.markdown
index aa1a27133ed2..16416c0d4b39 100644
--- a/source/_integrations/knx.markdown
+++ b/source/_integrations/knx.markdown
@@ -33,6 +33,7 @@ ha_platforms:
- number
- scene
- sensor
+ - select
- switch
- weather
---
diff --git a/source/_integrations/kostal_plenticore.markdown b/source/_integrations/kostal_plenticore.markdown
index a7392c7357d2..d7646745fe75 100644
--- a/source/_integrations/kostal_plenticore.markdown
+++ b/source/_integrations/kostal_plenticore.markdown
@@ -105,23 +105,3 @@ The following sensors are available in the library:
Setting values change less often, therefore these sensors are only polled every 5 minutes.
-
-## Services
-
-### Service `kostal_plenticore.write_setting_value`
-
-Write a new value to a setting.
-
-| Service data attribute | Optional | Description |
-| ---------------------- | -------- | ----------- |
-| `entity_id` | no | String that point to a setting `entity_id`.
-| `value` | no | The new value to write to the setting.
-
-Example:
-
-Set the minimal SoC of the battery:
-
-```yaml
-entity_id: sensor.plenticore_battery_min_soc
-value: 10
-```
diff --git a/source/_integrations/light.markdown b/source/_integrations/light.markdown
index 03a0f492050b..659c2b75b879 100644
--- a/source/_integrations/light.markdown
+++ b/source/_integrations/light.markdown
@@ -53,7 +53,7 @@ Most lights do not support all attributes. You can check the integration documen
| `brightness_pct`| yes | Alternatively, you can specify brightness in percent (a number between 0 and 100), where 0 means the light is off, 1 is the minimum brightness and 100 is the maximum brightness supported by the light.
| `brightness_step` | yes | Change brightness by an amount. Should be between -255..255.
| `brightness_step_pct` | yes | Change brightness by a percentage. Should be between -100..100.
-| `white` | yes | Set the light to white mode and change its brightness, where 0 means the light is off, 1 is the minimum brightness and 255 is the maximum brightness supported by the light.
+| `white` | yes | Set the light to white mode and change its brightness, where 0 means the light is off, 1 is the minimum brightness and 255 is the maximum brightness supported by the light. Note that `white` does not have a corresponding state attribute, the `color_mode` state attribute will to `white` and the `brightness` state attribute will be set to the requested brightness.
| `flash` | yes | Tell light to flash, can be either value `short` or `long`.
| `effect`| yes | Applies an effect such as `colorloop` or `random`.
diff --git a/source/_integrations/local_file.markdown b/source/_integrations/local_file.markdown
index d7178497ddd1..a8877b707e1b 100644
--- a/source/_integrations/local_file.markdown
+++ b/source/_integrations/local_file.markdown
@@ -10,7 +10,7 @@ ha_platforms:
- camera
---
-The `local_file` camera platform allows you to integrate an image file from disk into Home Assistant as a camera. If the image is updated on the file system the image displayed in Home Assistant will also be updated. The service `local_file_update_file_path` can be used to update the image using an automation.
+The `local_file` camera platform allows you to integrate an image file from disk into Home Assistant as a camera. If the image is updated on the file system the image displayed in Home Assistant will also be updated. The service `local_file.update_file_path` can be used to update the image using an automation.
The `local_file` camera can for example be used with various camera platforms that save a temporary images locally. It can also be used to display a graph that you render periodically and will then be displayed in Home Assistant.
diff --git a/source/_integrations/lutron.markdown b/source/_integrations/lutron.markdown
index c9c4f87e8b75..9bda0f6c3bac 100644
--- a/source/_integrations/lutron.markdown
+++ b/source/_integrations/lutron.markdown
@@ -63,7 +63,7 @@ It is recommended to assign a static IP address to your main repeater. This ensu
Individual buttons on keypads are not represented as entities. Instead, they fire events called `lutron_event` whose payloads include `id` and `action` attributes.
-The `id` attribute includes the name of the keypad and the name of the button, normalized the same way entity names are. For example, if the keypad is called "Kitchen Keypad" and the button is called "Dinner" the event's `id` will be `kitchen_keypad_dinner`.
+The `id` attribute includes the name of the keypad and the name of the button, normalized the same way entity names are. For example, if the keypad is called "Kitchen Keypad" and the button is called "Dinner" the event's `id` will be `kitchen_keypad_dinner`. If the button has not been assigned a name by the Lutron system installer then the button will have a name of "Unknown Button". In this case the `id` will be suffixed with the underlying Lutron button number and will be of the form `kitchen_keypad_unknown_button_1`.
The `action` attribute varies depending on the button type.
diff --git a/source/_integrations/media_player.markdown b/source/_integrations/media_player.markdown
index bf468537416a..47ab15c813e6 100644
--- a/source/_integrations/media_player.markdown
+++ b/source/_integrations/media_player.markdown
@@ -176,3 +176,6 @@ The way media players are displayed in the frontend can be modified in the [cust
- `tv`: Device is a television type device.
- `speaker`: Device is speaker or stereo type device.
+- `receiver`: Device is audio video receiver type device taking audio and outputting to speakers and video to some display.
+
+
diff --git a/source/_integrations/microsoft_face_detect.markdown b/source/_integrations/microsoft_face_detect.markdown
index 8f2d4fd5ae02..20a71e6d7eac 100644
--- a/source/_integrations/microsoft_face_detect.markdown
+++ b/source/_integrations/microsoft_face_detect.markdown
@@ -55,7 +55,7 @@ source:
required: false
type: string
attributes:
- description: "The image search attributes. Supported: `age`, `gender`, `glasses`."
+ description: "The image search attributes. Supported: `age`, `gender`, `glasses`, `hair`, `smile`, `facialhair`, `emotion`, `accessories`."
required: false
type: list
default: "[age, gender]"
diff --git a/source/_integrations/mill.markdown b/source/_integrations/mill.markdown
index 018ffa48c484..f5dd09fdd2a1 100644
--- a/source/_integrations/mill.markdown
+++ b/source/_integrations/mill.markdown
@@ -11,6 +11,7 @@ ha_domain: mill
ha_config_flow: true
ha_platforms:
- climate
+ - sensor
---
Integrates Mill heater into Home Assistant.
diff --git a/source/_integrations/modbus.markdown b/source/_integrations/modbus.markdown
index 4f3c1093da69..c381f7c63d75 100644
--- a/source/_integrations/modbus.markdown
+++ b/source/_integrations/modbus.markdown
@@ -18,6 +18,7 @@ ha_platforms:
- light
- sensor
- switch
+ha_quality_scale: silver
---
[Modbus](http://www.modbus.org/) is a serial communication protocol to control PLCs (Programmable Logic Controller) and RTUs (Remote Terminal Unit). The integration adheres strictly to the [protocol specification](https://modbus.org/docs/Modbus_Application_Protocol_V1_1b3.pdf).
@@ -297,7 +298,7 @@ modbus:
address: 100
scan_interval: 20
slave: 1
- - name: "binary_ensor2"
+ - name: "binary_sensor2"
address: 110
device_class: door
input_type: discrete_input
@@ -945,7 +946,7 @@ switches:
default: 0
type: integer
input_type:
- description: type of address (holding/coil/discrete/input)
+ description: type of address (holding/coil/discrete/input or holdings/coils for array call)
required: false
default: write_type
type: integer
diff --git a/source/_integrations/motioneye.markdown b/source/_integrations/motioneye.markdown
index 067ed4b92891..c9056afdf49f 100644
--- a/source/_integrations/motioneye.markdown
+++ b/source/_integrations/motioneye.markdown
@@ -11,6 +11,7 @@ ha_codeowners:
ha_config_flow: true
ha_platforms:
- camera
+ - switch
---
The motionEye integration allows you to integrate your
diff --git a/source/_integrations/mqtt.markdown b/source/_integrations/mqtt.markdown
index 41de0c79af2b..007bccc19480 100644
--- a/source/_integrations/mqtt.markdown
+++ b/source/_integrations/mqtt.markdown
@@ -17,10 +17,12 @@ ha_platforms:
- climate
- cover
- fan
+ - humidifier
- lock
- number
- scene
- sensor
+ - select
- switch
---
diff --git a/source/_integrations/nest.markdown b/source/_integrations/nest.markdown
index e70ae145feec..38179bbf10e7 100644
--- a/source/_integrations/nest.markdown
+++ b/source/_integrations/nest.markdown
@@ -37,7 +37,7 @@ This integration supports two Nest APIs. The SDM API is the new primary API that
Google applies strict [Redirect URI validation
rules](https://developers.google.com/identity/protocols/oauth2/web-server#uri-validation) to keep your login
-credentials secure. In practice, this means that you must access Home Assistant *over SSL* and a *public top-level domain*. See the documentation on [Securing](/docs/configuration/securing/) or [Troubleshooting](#troubleshooting), and note that you don't need actually need to enable remote access.
+credentials secure. In practice, this means that you must access Home Assistant *over SSL* and a *public top-level domain* when setting up this integration. See the documentation on [Securing](/docs/configuration/securing/) or [Troubleshooting](#troubleshooting), and note that you don't actually need to enable remote access.
## Overview: Supported Devices
@@ -365,7 +365,7 @@ New users are not currently able to set up a Works With Nest Developer account.
-Click here for documentation for the Legacy Works with Nest API
+Click here to expand documentation for the Legacy Works with Nest API
The Nest integration is the main integration to integrate all [Nest](https://nest.com/) related platforms. To connect Nest, you will have to [sign up for a developer account](https://developers.nest.com/products) and get a `client_id` and `client_secret`.
diff --git a/source/_integrations/netatmo.markdown b/source/_integrations/netatmo.markdown
index 90e11d9b7ccd..6f5da99d7147 100644
--- a/source/_integrations/netatmo.markdown
+++ b/source/_integrations/netatmo.markdown
@@ -21,6 +21,7 @@ ha_platforms:
- climate
- light
- sensor
+ - select
---
The Netatmo integration platform is the main integration to integrate all Netatmo related platforms.
diff --git a/source/_integrations/nexia.markdown b/source/_integrations/nexia.markdown
index 20f3d2ffe100..c8a035f15315 100644
--- a/source/_integrations/nexia.markdown
+++ b/source/_integrations/nexia.markdown
@@ -1,5 +1,5 @@
---
-title: Nexia/American Standard
+title: Nexia/American Standard/Trane
description: Instructions on how to integrate Trane and American Standard thermostats into Home Assistant.
ha_category:
- Binary Sensor
diff --git a/source/_integrations/openexchangerates.markdown b/source/_integrations/openexchangerates.markdown
index 194744738144..06613ddf80c0 100644
--- a/source/_integrations/openexchangerates.markdown
+++ b/source/_integrations/openexchangerates.markdown
@@ -39,7 +39,7 @@ quote:
required: true
type: string
base:
- description: The symbol of the base currency.
+ description: The symbol of the base currency. Note that, changing the API `base` currency is not part of the freemium API plan.
required: false
type: string
default: USD
diff --git a/source/_integrations/panel_iframe.markdown b/source/_integrations/panel_iframe.markdown
index 48dd0d9b1827..cfbe1b1f5354 100644
--- a/source/_integrations/panel_iframe.markdown
+++ b/source/_integrations/panel_iframe.markdown
@@ -27,9 +27,11 @@ panel_iframe:
fridge:
title: "Fridge"
url: "http://192.168.1.5"
+ icon: mdi:fridge
otherapp:
title: "Other App"
url: "/otherapp"
+ require_admin: true
```
{% configuration %}
diff --git a/source/_integrations/pi_hole.markdown b/source/_integrations/pi_hole.markdown
index 7a7d88b8f37b..2b2fa2b7e17d 100644
--- a/source/_integrations/pi_hole.markdown
+++ b/source/_integrations/pi_hole.markdown
@@ -40,3 +40,14 @@ Disables configured Pi-hole(s) for the specified amount of time.
| ---------------------- | -------- | -------- | ----------- |
| `entity_id` | `False` | string | Target switch entity. Use `all` to target all Pi-hole services |
| `duration` | `True` | timedelta | Time for which Pi-hole should be disabled |
+
+Example service call:
+
+```yaml
+# Example service call to disable Pi-Hole for 30 minutes
+service: pi_hole.disable
+data:
+ duration: '00:30'
+target:
+ entity_id: all
+```
diff --git a/source/_integrations/point.markdown b/source/_integrations/point.markdown
index af0e199e6f18..d47ac9247e48 100644
--- a/source/_integrations/point.markdown
+++ b/source/_integrations/point.markdown
@@ -19,7 +19,7 @@ ha_platforms:
- sensor
---
-The Point hub enables integration with the [Minut Point](https://minut.com/). To connect with Point, you will have to [sign up for a developer account](https://minut.com/community/developers/) and get a `client_id` and `client_secret` with the `callback url` configured as your Home Assistant URL + `/api/minut`, e.g., `http://localhost:8123/api/minut`. The `client_id` and `client_secret` should be used as below.
+The Point hub enables integration with the [Minut Point](https://minut.com/). To connect with Point, you will have to [sign up for a developer account and have a Pro subscription](https://minut.com/community/developers/) and get a `client_id` and `client_secret` with the `callback url` configured as your Home Assistant URL + `/api/minut`, e.g., `http://localhost:8123/api/minut`. The `client_id` and `client_secret` should be used as below.
Once Home Assistant is started, a configurator will pop up asking you to Authenticate your Point account via a link. When you follow the link and click on **Accept** you will be redirected to the `callback url` and the Point integration will be automatically configured and you can go back to the original dialog and press **Submit**.
diff --git a/source/_integrations/prosegur.markdown b/source/_integrations/prosegur.markdown
index 5fb60c6dc32c..6def25326c86 100644
--- a/source/_integrations/prosegur.markdown
+++ b/source/_integrations/prosegur.markdown
@@ -1,5 +1,5 @@
---
-title: Prosegur
+title: Prosegur Alarm
description: Instructions on how to integrate Prosegur Smart Alarms into Home Assistant.
ha_category:
- Alarm
diff --git a/source/_integrations/pvoutput.markdown b/source/_integrations/pvoutput.markdown
index adf40579cebc..9629d471fbfe 100644
--- a/source/_integrations/pvoutput.markdown
+++ b/source/_integrations/pvoutput.markdown
@@ -52,7 +52,7 @@ sensor:
- platform: template
sensors:
power_consumption:
- value_template: "{% if is_state_attr('sensor.pvoutput', 'power_consumption', 'NaN') %}0{% else %}{{ state_attr('sensor.pvoutput', 'power_consumption') }}{% endif %}"
+ value_template: "{% if is_state_attr('sensor.pvoutput', 'power_consumption', 'NaN') %}0{% else %}{{ state_attr('sensor.pvoutput', 'power_consumption') }}{% endif %}"
friendly_name: "Using"
unit_of_measurement: "Watt"
energy_consumption:
diff --git a/source/_integrations/renault.markdown b/source/_integrations/renault.markdown
new file mode 100644
index 000000000000..739b7df80c9c
--- /dev/null
+++ b/source/_integrations/renault.markdown
@@ -0,0 +1,27 @@
+---
+title: Renault
+description: Instructions on how to integrate Renault car into Home Assistant.
+ha_category:
+ - Car
+ - Sensor
+ha_release: 2021.8
+ha_iot_class: Cloud Polling
+ha_config_flow: true
+ha_codeowners: '@epenet'
+ha_domain: renault
+---
+
+The Renault integration offers integration with the **MyRenault** cloud service and provides sensors such as charger state and temperature.
+
+This integration provides the following platforms:
+
+- Sensors - such as battery level, outside temperature, odometer, estimated range, and charging rate.
+
+## Prerequisites
+
+You need two API keys: one for Gigya and one for Kamereon and they shouldn't be confused with your API credentials. Instructions can be found at [https://github.com/jamesremuscat/pyze#obtaining-api-keys].
+
+
+{% include integrations/config_flow.md %}
+
+All vehicles linked to the account should then get added as devices, with sensors added as linked entity.
diff --git a/source/_integrations/rituals_perfume_genie.markdown b/source/_integrations/rituals_perfume_genie.markdown
index 694a3c786bdd..ed4c7e323a1c 100644
--- a/source/_integrations/rituals_perfume_genie.markdown
+++ b/source/_integrations/rituals_perfume_genie.markdown
@@ -16,8 +16,8 @@ ha_domain: rituals_perfume_genie
ha_platforms:
- binary_sensor
- number
- - select
- sensor
+ - select
- switch
ha_quality_scale: silver
---
diff --git a/source/_integrations/scene.markdown b/source/_integrations/scene.markdown
index 6ce6fcf82ca9..e3b44220cf81 100644
--- a/source/_integrations/scene.markdown
+++ b/source/_integrations/scene.markdown
@@ -12,7 +12,7 @@ ha_domain: scene
You can create scenes that capture the states you want certain entities to be. For example, a scene can specify that light A should be turned on and light B should be bright red.
-Scenes can be created and managed via the user interface using the [Scene Editor](/docs/scene/editor/). They can also be configured via `configuration.yaml`:
+Scenes can be created and managed via the user interface using the [Scene Editor](/docs/scene/editor/). They can also be manually configured via `configuration.yaml`. Note that the entity data is not service call parameters, it's a representation of the wanted state:
```yaml
# Example configuration.yaml entry
@@ -23,17 +23,26 @@ scene:
light.tv_back_light: "on"
light.ceiling:
state: "on"
- xy_color: [0.33, 0.66]
brightness: 200
+ color_mode: "xy"
+ xy_color: [0.33, 0.66]
- name: Movies
entities:
light.tv_back_light:
state: "on"
brightness: 125
- light.ceiling: off
+ light.ceiling: "off"
media_player.sony_bravia_tv:
state: "on"
source: HDMI 1
+ - name: Standard
+ entities:
+ light.tv_back_light:
+ state: "off"
+ light.ceiling:
+ state: "on"
+ brightness: 125
+ color_mode: "white"
```
{% configuration %}
diff --git a/source/_integrations/sensor.markdown b/source/_integrations/sensor.markdown
index 730dd15c3a4f..61ff05e99a0a 100644
--- a/source/_integrations/sensor.markdown
+++ b/source/_integrations/sensor.markdown
@@ -22,6 +22,7 @@ The type of data a sensor returns impacts how it is displayed in the frontend. T
- **energy**: Energy in Wh or kWh.
- **humidity**: Percentage of humidity in the air.
- **illuminance**: The current light level in lx or lm.
+- **monetary**: The monetary value.
- **signal_strength**: Signal strength in dB or dBm.
- **temperature**: Temperature in °C or °F.
- **power**: Power in W or kW.
diff --git a/source/_integrations/serial_pm.markdown b/source/_integrations/serial_pm.markdown
index ef29975c235a..8f7def32dca6 100644
--- a/source/_integrations/serial_pm.markdown
+++ b/source/_integrations/serial_pm.markdown
@@ -10,9 +10,9 @@ ha_platforms:
- sensor
---
-Particulate matter sensors measure the amount of very small particles in the air. A short introduction how these sensors work can be found on [Open Home Automation](https://www.open-homeautomation.com/2016/07/19/measuring-air-quality/).
+Particulate matter sensors measure the amount of very small particles in the air.
-Cheap LED based sensors usually use a GPIO interface that is hard to attach to computers. However, there are a lot of laser LED based sensors on the market that use a serial interface and can be [connected to your Home Assistant system easily with a USB to serial converter](https://www.open-homeautomation.com/2016/07/20/connecting-an-particulate-matter-sensor-to-your-pc-or-mac/).
+Cheap LED based sensors usually use a GPIO interface that is hard to attach to computers. However, there are a lot of laser LED based sensors on the market that use a serial interface and can be connected to your Home Assistant system easily with a USB to serial converter.
## Supported Sensors
diff --git a/source/_integrations/siren.markdown b/source/_integrations/siren.markdown
index 8f4b668f868f..7f9333f7b1f9 100644
--- a/source/_integrations/siren.markdown
+++ b/source/_integrations/siren.markdown
@@ -9,7 +9,6 @@ ha_quality_scale: internal
ha_codeowners:
- '@home-assistant/core'
- '@raman325'
-ha_iot_class:
---
The Siren integration is built for the controlling and monitoring of siren/chime devices.
diff --git a/source/_integrations/sma.markdown b/source/_integrations/sma.markdown
index f57ebda9534a..2051184b10af 100644
--- a/source/_integrations/sma.markdown
+++ b/source/_integrations/sma.markdown
@@ -46,7 +46,7 @@ The SMA WebConnect module supports a wide variety of sensors, but not all of the
| power_l1 | W | Power for phase 1 |
| power_l2 | W | Power for phase 2 |
| power_l3 | W | Power for phase 3 |
-| total_yield | kWh | Total power yield from a solar installation |
+| total_yield | kWh | Total energy yield from a solar installation |
| daily_yield | Wh | The solar plant's yield for today |
| pv_gen_meter | kWh | Total kWh generated to date |
@@ -66,8 +66,8 @@ The SMA WebConnect module supports a wide variety of sensors, but not all of the
| metering_power_supplied | W | Power supplied |
| metering_power_absorbed | W | Power absorbed |
| metering_frequency | Hz | Grid frequency |
-| metering_total_yield | kWh | Total power from the grid |
-| metering_total_absorbed | kWh | Total power supplied to the grid |
+| metering_total_yield | kWh | Total energy supplied to the grid |
+| metering_total_absorbed | kWh | Total energy from the grid |
| metering_current_l1 | A | Current for phase 1 |
| metering_current_l2 | A | Current for phase 2 |
| metering_current_l3 | A | Current for phase 3 |
diff --git a/source/_integrations/smappee.markdown b/source/_integrations/smappee.markdown
index 85d44ac4a1e8..a793d37650b2 100644
--- a/source/_integrations/smappee.markdown
+++ b/source/_integrations/smappee.markdown
@@ -44,6 +44,8 @@ Those automatically discovered Smappee devices are listed on the integrations pa
This will provide you a limited number of entities only.
If your home network doesn't support mDNS you can still manually initiate the Smappee integration by choosing the LOCAL option and entering the IP address of the Smappee monitor through the configuration flow.
+Technical note: Auto-discovery of Smappee device requires that its mDNS name and password are set to factory default values. These values are typically accessed on the device expert web portal (locally at http://[IP-Address]/smappee.html). If you have changed the mDNS name, this typically is "Smappee[serialnumber]".
+
### Sensor
A sensor entity is being added for the current active power usage. In case of solar production, an entity for active power production is added as well.
diff --git a/source/_integrations/solarlog.markdown b/source/_integrations/solarlog.markdown
index 0d8b0f86d0f0..3eb3c3a5557a 100644
--- a/source/_integrations/solarlog.markdown
+++ b/source/_integrations/solarlog.markdown
@@ -1,7 +1,9 @@
---
title: Solar-Log
description: Instructions on how to integrate Solar-Log sensors within Home Assistant.
-ha_category: Sensor
+ha_category:
+ - Sensor
+ - Energy
ha_release: 0.101
ha_iot_class: Local Polling
ha_config_flow: true
diff --git a/source/_integrations/sonos.markdown b/source/_integrations/sonos.markdown
index ea66f950e4b1..7e6561ebebe6 100644
--- a/source/_integrations/sonos.markdown
+++ b/source/_integrations/sonos.markdown
@@ -18,6 +18,7 @@ ha_platforms:
- media_player
- sensor
- switch
+ha_zeroconf: true
---
The `sonos` integration allows you to control your [Sonos](https://www.sonos.com) wireless speakers from Home Assistant. It also works with IKEA Symfonisk speakers.
diff --git a/source/_integrations/spider.markdown b/source/_integrations/spider.markdown
index 9506d1a5c276..d2eee7122346 100644
--- a/source/_integrations/spider.markdown
+++ b/source/_integrations/spider.markdown
@@ -13,6 +13,7 @@ ha_domain: spider
ha_config_flow: true
ha_platforms:
- climate
+ - sensor
- switch
---
diff --git a/source/_integrations/stiebel_eltron.markdown b/source/_integrations/stiebel_eltron.markdown
index abc0eabc2b4b..ffc2b33fabc4 100644
--- a/source/_integrations/stiebel_eltron.markdown
+++ b/source/_integrations/stiebel_eltron.markdown
@@ -24,8 +24,9 @@ It requires the following components:
By now, the following units are tested:
-- LWZ504e
-- LWZ304
+- LWZ 504e
+- LWZ 304
+- LWZ 304 Trend
## HVAC modes
diff --git a/source/_integrations/switcher_kis.markdown b/source/_integrations/switcher_kis.markdown
index 3e8c608689c4..93230033fadc 100644
--- a/source/_integrations/switcher_kis.markdown
+++ b/source/_integrations/switcher_kis.markdown
@@ -12,6 +12,7 @@ ha_domain: switcher_kis
ha_platforms:
- sensor
- switch
+ha_config_flow: true
---
This `Switcher` integration allows you to control your [Switcher Devices](https://www.switcher.co.il/).
@@ -24,6 +25,8 @@ Supported devices:
- Switcher V2 (Qualcomm chipset - from firmware 72.32)
- Switcher V4
+If you completed the integration setup but are still unable to control the device, please make sure your device's firmware is up-to-date.
+
{% include integrations/config_flow.md %}
## Sensors
diff --git a/source/_integrations/tag.markdown b/source/_integrations/tag.markdown
index c49d8dafbb27..2deda463d074 100644
--- a/source/_integrations/tag.markdown
+++ b/source/_integrations/tag.markdown
@@ -99,7 +99,7 @@ NFC tags come in many different shapes and formats. [NFC Stickers](https://amzn.
To get started with printing cards, you need the following hardware:
-- [Inktjet Printer](https://amzn.to/3khMrts)
+- [Inkjet Printer](https://amzn.to/3khMrts)
- [Compatible card printing tray](https://amzn.to/3hq59x2)
- [Printable NFC cards](https://amzn.to/3iqHpKx)
diff --git a/source/_integrations/tautulli.markdown b/source/_integrations/tautulli.markdown
index a3705bd3b01a..495c2737f773 100644
--- a/source/_integrations/tautulli.markdown
+++ b/source/_integrations/tautulli.markdown
@@ -93,4 +93,4 @@ sensor:
```
[tautulli]: https://tautulli.com
-[tautulliapi]: https://github.com/Tautulli/Tautulli/blob/master/API.md#get_activity
+[tautulliapi]: https://github.com/Tautulli/Tautulli/wiki/Tautulli-API-Reference#get_activity
diff --git a/source/_integrations/template.markdown b/source/_integrations/template.markdown
index 6904ba4337ae..fec172510910 100644
--- a/source/_integrations/template.markdown
+++ b/source/_integrations/template.markdown
@@ -2,6 +2,7 @@
title: Template
description: Instructions on how to integrate Template Sensors into Home Assistant.
ha_category:
+ - Binary Sensor
- Sensor
ha_release: 0.12
ha_iot_class: Local Push
@@ -9,6 +10,7 @@ ha_quality_scale: internal
ha_codeowners:
- '@PhracturedBlue'
- '@tetienne'
+ - '@home-assistant/core'
ha_domain: template
ha_platforms:
- alarm_control_panel
diff --git a/source/_integrations/tesla.markdown b/source/_integrations/tesla.markdown
index 751e3d353f49..ac494ded48c1 100644
--- a/source/_integrations/tesla.markdown
+++ b/source/_integrations/tesla.markdown
@@ -40,12 +40,6 @@ This integration provides the following platforms:
{% include integrations/config_flow.md %}
-
-
- Note: MFA on your Tesla Account is not supported at this time.
-
-
-
## Options
Tesla options are set via **Configuration** -> **Integrations** -> **Tesla** -> **Options**.
diff --git a/source/_integrations/thethingsnetwork.markdown b/source/_integrations/thethingsnetwork.markdown
index f88e84b59b33..c500aabd4ec5 100644
--- a/source/_integrations/thethingsnetwork.markdown
+++ b/source/_integrations/thethingsnetwork.markdown
@@ -13,6 +13,10 @@ ha_platforms:
- sensor
---
+
+ This integration only supports TTNv2.
+
+
The `thethingsnetwork` integration allows one to interact with the [The Things Network](https://www.thethingsnetwork.org). This community-driven and open network supports [LoRaWAN](https://www.lora-alliance.org/) for long range (~5 to 15 km) communication with a low bandwidth (51 bytes/message). [Gateways](https://www.thethingsnetwork.org/docs/gateways/) transfers the received data from the sensors to the The Things Network.
The Things network support various integrations to make the data available:
diff --git a/source/_integrations/tplink.markdown b/source/_integrations/tplink.markdown
index a34f5d0e740a..bf70b7990817 100644
--- a/source/_integrations/tplink.markdown
+++ b/source/_integrations/tplink.markdown
@@ -5,6 +5,7 @@ ha_category:
- Hub
- Switch
- Light
+ - Sensor
ha_release: 0.89
ha_iot_class: Local Polling
ha_config_flow: true
@@ -14,6 +15,7 @@ ha_codeowners:
ha_domain: tplink
ha_platforms:
- light
+ - sensor
- switch
ha_dhcp: true
---
@@ -24,6 +26,7 @@ There is currently support for the following device types within Home Assistant:
- **Light**
- **Switch**
+- **Sensor**
In order to activate the support, you will have to enable the integration inside the configuration panel.
The supported devices in your network are automatically discovered, but if you want to control devices residing in other networks you will need to configure them manually as shown below.
@@ -40,17 +43,19 @@ Plugs are type `switch` when autodiscovery has been disabled.
- HS100
- HS103
- HS105
-- HS110 (This device is capable of reporting energy usage data to template sensors)
+- HS110 (confirmed to support consumption sensors)
- KP105
-- KP115
+- KP115 (confirmed to support consumption sensors)
### Strip (Multi-Plug)
- HS107 (indoor 2-outlet)
-- HS300 (powerstrip 6-outlet) (This device is capable of reporting energy usage data to template sensors)
+- HS300 (powerstrip 6-outlet) (confirmed to support consumption sensors)
- KP303 (powerstrip 3-outlet)
- KP400 (outdoor 2-outlet)
- KP200 (indoor 2-outlet)
+- KP40 (outdoor 2-outlet)
+- EP40 (outdoor 2-outlet)
### Wall Switches
@@ -143,44 +148,3 @@ tplink:
- host: 192.168.200.7
- host: 192.168.200.8
```
-
-## Extracting Energy Sensor data
-
-Devices that are confirmed to support Consumption Reading;
-1. HS110
-2. HS300
-3. KP115
-4. Bulbs (device-specific, only current power consumption is commonly available)
-
-In order to get the power consumption readings from a TP-Link HS110 device, you'll have to create a [template sensor](/integrations/template/).
-In the example below, change all of the `my_tp_switch`'s to match your device's entity ID (without the domain). For example, if your entity is `switch.whale_heater` then replace `my_tp_switch` with `whale_heater`:
-
-{% raw %}
-
-```yaml
-sensor:
- - platform: template
- sensors:
- my_tp_switch_amps:
- friendly_name_template: "{{ state_attr('switch.my_tp_switch','friendly_name') }} Current"
- value_template: "{{ state_attr('switch.my_tp_switch','current_a') }}"
- unit_of_measurement: "A"
- my_tp_switch_watts:
- friendly_name_template: "{{ state_attr('switch.my_tp_switch','friendly_name') }} Current Consumption"
- value_template: "{{ state_attr('switch.my_tp_switch','current_power_w') }}"
- unit_of_measurement: "W"
- my_tp_switch_total_kwh:
- friendly_name_template: "{{ state_attr('switch.my_tp_switch','friendly_name') }} Total Consumption"
- value_template: "{{ state_attr('switch.my_tp_switch','total_energy_kwh') }}"
- unit_of_measurement: "kWh"
- my_tp_switch_volts:
- friendly_name_template: "{{ state_attr('switch.my_tp_switch','friendly_name') }} Voltage"
- value_template: "{{ state_attr('switch.my_tp_switch','voltage') }}"
- unit_of_measurement: "V"
- my_tp_switch_today_kwh:
- friendly_name_template: "{{ state_attr('switch.my_tp_switch','friendly_name') }} Today's Consumption"
- value_template: "{{ state_attr('switch.my_tp_switch','today_energy_kwh') }}"
- unit_of_measurement: "kWh"
-```
-
-{% endraw %}
diff --git a/source/_integrations/velux.markdown b/source/_integrations/velux.markdown
index a0e896633c9c..d494dba3d9b0 100644
--- a/source/_integrations/velux.markdown
+++ b/source/_integrations/velux.markdown
@@ -11,6 +11,7 @@ ha_codeowners:
ha_domain: velux
ha_platforms:
- cover
+ - light
- scene
---
diff --git a/source/_integrations/version.markdown b/source/_integrations/version.markdown
index 9054b9fd2a14..358aa6d26b7e 100644
--- a/source/_integrations/version.markdown
+++ b/source/_integrations/version.markdown
@@ -54,50 +54,5 @@ source:
`default`, `qemux86`, `qemux86-64`, `qemuarm`, `qemuarm-64`, `generic-x86-64`, `raspberrypi`, `raspberrypi2`, `raspberrypi3`, `raspberrypi3-64`, `raspberrypi4`, `raspberrypi4-64`, `tinker`, `odroid-c2`, `odroid-n2`, `odroid-xu`
-## Alternatives for showing local version
-This sensor is an alternative to the existing solutions to achieve the same
-result through various platforms.
-Remember that you can easily get the installed version on the command line.
-```bash
-hass --version
-```
-
-Or go to the **Info** section of the **Developer Tools**.
-
-A [`command_line`](/integrations/sensor.command_line/) with
-[`hass`](/docs/tools/hass/) to display your current version.
-
-```yaml
-sensor:
- - platform: command_line
- name: Version
- command: "/home/homeassistant/bin/hass --version"
-```
-
-It's also possible to read a file called `.HA_VERSION` which is located in your
-Home Assistant [configuration](/docs/configuration/) folder.
-
-```yaml
-sensor:
- - platform: command_line
- name: Version
- command: "cat /home/homeassistant/.homeassistant/.HA_VERSION"
-```
-
-You might think that a [`rest` sensor](/integrations/rest) could work,
-too,
-but it will not as Home Assistant is not ready when the sensor gets initialized.
-
-{% raw %}
-
-```yaml
-sensor:
- - platform: rest
- resource: http://IP_ADDRESS:8123/api/config
- name: Current Version
- value_template: "{{ value_json.version }}"
-```
-
-{% endraw %}
diff --git a/source/_integrations/vesync.markdown b/source/_integrations/vesync.markdown
index 5d724d535dc1..5a2cee259bbf 100644
--- a/source/_integrations/vesync.markdown
+++ b/source/_integrations/vesync.markdown
@@ -126,5 +126,17 @@ sensor:
value_template: '{{ states.switch.vesync_switch.attributes["voltage"] | float }}'
unit_of_measurement: "V"
```
+{% endraw %}
+
+Extracting air quality from a VeSync LV-PUR131S air purifier. Change the `vesync_air_purifier` to match your device's entity ID.
+
+{% raw %}
+
+```yaml
+template:
+ - sensor:
+ - name: "VeSync Air Quality"
+ state: "{{ state_attr('fan.vesync_air_purifier', 'air_quality') | title }}"
+```
{% endraw %}
diff --git a/source/_integrations/vicare.markdown b/source/_integrations/vicare.markdown
index 9e1e1cf64842..c2bb70ce6c84 100644
--- a/source/_integrations/vicare.markdown
+++ b/source/_integrations/vicare.markdown
@@ -43,7 +43,7 @@ The above-required configuration parameters can be obtained as follows:
Google reCAPTCHA: Disabled
Redirect URIs: vicare://oauth-callback/everest
```
-4. Copy the Client ID to the configuration, e.g., `client_id="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"`.
+4. Copy the Client ID to the configuration, e.g., `client_id: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"`.
5. Set `username`and `password` to your Viessmann Developer Portal login credentials.
diff --git a/source/_integrations/webostv.markdown b/source/_integrations/webostv.markdown
index 6c0b075d355a..d145f6217d7c 100644
--- a/source/_integrations/webostv.markdown
+++ b/source/_integrations/webostv.markdown
@@ -8,6 +8,7 @@ ha_iot_class: Local Polling
ha_release: 0.18
ha_codeowners:
- '@bendavid'
+ - '@thecode'
ha_domain: webostv
ha_platforms:
- media_player
diff --git a/source/_integrations/wemo.markdown b/source/_integrations/wemo.markdown
index 78d457a1816a..8fde46d45221 100644
--- a/source/_integrations/wemo.markdown
+++ b/source/_integrations/wemo.markdown
@@ -17,6 +17,7 @@ ha_platforms:
- binary_sensor
- fan
- light
+ - sensor
- switch
ha_codeowners:
- '@esev'
diff --git a/source/_integrations/wirelesstag.markdown b/source/_integrations/wirelesstag.markdown
index 7ea450c56333..ae5c89e7edd7 100644
--- a/source/_integrations/wirelesstag.markdown
+++ b/source/_integrations/wirelesstag.markdown
@@ -13,6 +13,8 @@ ha_platforms:
- binary_sensor
- sensor
- switch
+ha_codeowners:
+ - '@sergeymaysak'
---
The `wirelesstag` implementation allows you to integrate your [wirelesstag.net](https://wirelesstag.net/) sensors tags in Home Assistant.
diff --git a/source/_integrations/wled.markdown b/source/_integrations/wled.markdown
index e1b5f9d5397e..108ec9001732 100644
--- a/source/_integrations/wled.markdown
+++ b/source/_integrations/wled.markdown
@@ -16,6 +16,7 @@ ha_zeroconf: true
ha_platforms:
- light
- sensor
+ - select
- switch
---
diff --git a/source/_integrations/xiaomi_miio.markdown b/source/_integrations/xiaomi_miio.markdown
index fde7c6ad63ba..2d5006960fa5 100644
--- a/source/_integrations/xiaomi_miio.markdown
+++ b/source/_integrations/xiaomi_miio.markdown
@@ -24,9 +24,12 @@ ha_platforms:
- alarm_control_panel
- device_tracker
- fan
+ - humidifier
- light
+ - number
- remote
- sensor
+ - select
- switch
- vacuum
---
@@ -413,32 +416,58 @@ This model uses newer MiOT communication protocol.
### Air Humidifier (zhimi.humidifier.v1)
- On, Off
-- Operation modes (silent, medium, high, strong)
+- Operation modes (Silent, Medium, High, Strong)
- Buzzer (on, off)
- Child lock (on, off)
- LED (on, off), LED brightness (bright, dim, off)
- Target humidity (30, 40, 50, 60, 70, 80)
+- Attributes (humidifier platform)
+
+Attribute | Description
+--- | ---
+`humidity` | The current `target_humidity`
+`max_humidity` | The maximum settable `target_humidity`
+`min_humidity` | The minimum settable `target_humidity`
+`available_modes` | A list with the operation modes available
+`mode` | the current operation mode selected
+
- Sensor entities
- - `humidity`
- - `temperature`
+
+Sensor | Description
+--- | ---
+`humidity` | The current `humidity` measured
+`temperature` | The current `temperature` measured
### Air Humidifier CA (zhimi.humidifier.ca1)
- On, Off
-- Operation modes (silent, medium, high, auto)
+- Operation modes (Silent, Medium, High, Auto)
- Buzzer (on, off)
- Child lock (on, off)
- LED brightness (bright, dim, off)
- Target humidity (30, 40, 50, 60, 70, 80)
- Dry mode (on, off)
+- Attributes (humidifier platform)
+
+Attribute | Description
+--- | ---
+`humidity` | The current `target_humidity`
+`max_humidity` | The maximum settable `target_humidity`
+`min_humidity` | The minimum settable `target_humidity`
+`available_modes` | A list with the operation modes available
+`mode` | the current operation mode selected
+
- Sensor entities
- - `humidity`
- - `temperature`
+
+Sensor | Description
+--- | ---
+`humidity` | The current `humidity` measured
+`temperature` | The current `temperature` measured
### Air Humidifier CA (zhimi.humidifier.ca4)
- On, Off
-- Operation modes (auto, low, medium, high)
+- Operation modes (Auto, Low, Medium, High)
- Buzzer (on, off)
- Child lock (on, off)
- LED brightness (off, dim, bright)
@@ -446,11 +475,24 @@ This model uses newer MiOT communication protocol.
- Clean mode (on, off)
- Dry mode (on, off)
- Motor speed rpm (200 - 2000)
+- Attributes (humidifier platform)
+
+Attribute | Description
+--- | ---
+`humidity` | The current `target_humidity`
+`max_humidity` | The maximum settable `target_humidity`
+`min_humidity` | The minimum settable `target_humidity`
+`available_modes` | A list with the operation modes available
+`mode` | the current operation mode selected
+
- Sensor entities
- - `actual_speed`
- - `humidity`
- - `temperature`
- - `water_level`
+
+Sensor | Description
+--- | ---
+`actual_speed` | The current `motor_speed` measured in (rpm)
+`humidity` | The current `humidity` percentage measured
+`temperature` | The current `temperature` measured in degrees Celius
+`water_level` | The current `water_level` percentage measured
Clean mode and Motor speed can only be set when the device is turned on.
@@ -459,15 +501,28 @@ Clean mode and Motor speed can only be set when the device is turned on.
### Air Humidifier CB (zhimi.humidifier.cb1)
- On, Off
-- Operation modes (silent, medium, high, auto)
+- Operation modes (Silent, Medium, High, Auto)
- Buzzer (on, off)
- Child lock (on, off)
- LED (on, off), LED brightness (bright, dim, off)
- Target humidity (30, 40, 50, 60, 70, 80)
- Dry mode (on, off)
+- Attributes (humidifier platform)
+
+Attribute | Description
+--- | ---
+`humidity` | The current `target_humidity`
+`max_humidity` | The maximum settable `target_humidity`
+`min_humidity` | The minimum settable `target_humidity`
+`available_modes` | A list with the operation modes available
+`mode` | the current operation mode selected
+
- Sensor entities
- - `humidity`
- - `temperature`
+
+Sensor | Description
+--- | ---
+`humidity` | The current `humidity` measured
+`temperature` | The current `temperature` measured
### Air Fresh VA2
diff --git a/source/_integrations/yale_smart_alarm.markdown b/source/_integrations/yale_smart_alarm.markdown
index d8e46872f40f..d0a174a01648 100644
--- a/source/_integrations/yale_smart_alarm.markdown
+++ b/source/_integrations/yale_smart_alarm.markdown
@@ -7,12 +7,10 @@ ha_release: 0.78
ha_iot_class: Cloud Polling
ha_config_flow: true
ha_codeowners:
- - '@gjohanssson-ST'
+ - '@gjohansson-ST'
ha_domain: yale_smart_alarm
ha_platforms:
- alarm_control_panel
-ha_codeowners:
- - '@gjohansson-ST'
---
The Yale Smart Living integration provides connectivity with the Yale Smart Alarm systems and Smart Hub through Yale's API.
diff --git a/source/_integrations/youless.markdown b/source/_integrations/youless.markdown
index 1624f242eb88..885df87f8889 100644
--- a/source/_integrations/youless.markdown
+++ b/source/_integrations/youless.markdown
@@ -3,10 +3,14 @@ title: YouLess
description: Instructions on how to integrate your YouLess device into Home Assistant.
ha_category:
- Sensor
-ha_iot_class: Local Pull
+ha_iot_class: Local Polling
ha_config_flow: true
ha_release: 2021.8
ha_domain: youless
+ha_codeowners:
+ - '@gjong'
+ha_platforms:
+ - sensor
---
The YouLess integration for Home Assistant allows you to read the meter values from sensors created by [YouLess](https://www.youless.nl/home.html).
diff --git a/source/_integrations/zha.markdown b/source/_integrations/zha.markdown
index 7dbaa6f43ac8..c1ec45ff7605 100644
--- a/source/_integrations/zha.markdown
+++ b/source/_integrations/zha.markdown
@@ -391,9 +391,11 @@ Using a Philips Hue Dimmer Switch or Lutron Connected Bulb Remote is probably th
1. Turn on your Hue bulb/light you want to reset. (It is important that the bulb has just been turned).
2. Hold the Philips Hue Dimmer Switch near your bulb (closer than 10 centimeters / 4 inches).
-3. Press and hold the (I)/(ON) and (O)/(OFF) buttons on the Philips Hue Dimmer Switch for about 10 seconds continuously until your bulb starts to blink.
+3. Press and hold the (I)/(ON) and (O)/(OFF) buttons on the Philips Hue Dimmer Switch for about 10 seconds continuously until your bulb starts to blink. On the newer switches hold the I/O and Scene Switch buttons.
4. Your bulb should stop blinking and eventually turn on again. At the same time, a green light on the top left of your remote indicates that your bulb has been successfully reset to factory default settings.
+Note: If you are not unable to reset the bulb, remove it from the Hue Bridge and retry the procedure.
+
#### Lutron Connected Bulb Remote
1. Turn on your Hue bulb/light you want to reset. (It is important that the bulb has just been turned).
diff --git a/source/_integrations/zwave_js.markdown b/source/_integrations/zwave_js.markdown
index fde2654e49fe..521c392d20b6 100644
--- a/source/_integrations/zwave_js.markdown
+++ b/source/_integrations/zwave_js.markdown
@@ -10,7 +10,9 @@ ha_category:
- Hub
- Light
- Lock
+ - Number
- Sensor
+ - Siren
- Switch
ha_release: '2021.2'
ha_iot_class: Local Push
@@ -27,6 +29,7 @@ ha_platforms:
- lock
- number
- sensor
+ - siren
- switch
---
@@ -262,6 +265,16 @@ action:
entity_id: "{{ trigger.entity_id }}"
```
+### Service `zwave_js.reset_meter`
+
+This service will reset the meters on a device that supports the Meter Command Class.
+
+| Service Data Attribute | Required | Description |
+| ---------------------- | -------- | ------------------------------------------------------------------------------------------------------------------ |
+| `entity_id` | yes | Entity (or list of entities) for the meters you want to reset. |
+| `meter_type` | no | If supported by the device, indicates the type of meter to reset. Not all devices support this option. |
+| `value` | no | If supported by the device, indicates the value to reset the meter to. Not all devices support this option. |
+
### Service `zwave_js.set_lock_usercode`
This service will set the usercode of a lock to X at code slot Y.
@@ -423,7 +436,7 @@ It is perfectly doable to switch over from one of the above mentioned previous i
Make a list of what node ID belongs to each device. Your network (Nodes and their config etc) is stored on the stick but the names you gave your devices and entities are not. This step is optional but will save you a lot of time later.
-2) Remove the Z-Wave integration from Home Assistant: Configuration --> Integrations --> Z-Wave (or OpenZWave) --> Press the three dots and click Remove.
+2) Remove the Z-Wave integration from Home Assistant: Configuration --> Integrations --> Z-Wave (or OpenZWave) --> Press the three dots and click Delete.
3) If you were running the OpenZWave beta, make sure to stop (or even remove) the OpenZWave add-on, also make sure it doesn't start automatically at startup.
diff --git a/source/_layouts/default.html b/source/_layouts/default.html
index a4c3a65ca72d..6e10e3d03a08 100644
--- a/source/_layouts/default.html
+++ b/source/_layouts/default.html
@@ -1,5 +1,5 @@
{% include site/head.html %}
-
+
{% include site/header.html %}
@@ -14,20 +14,20 @@
+ {% endfor %}
+{% endif %}
+
+
+
+
+
+
diff --git a/source/_layouts/page.html b/source/_layouts/page.html
index 227c55488b3b..9363a8a4e69d 100644
--- a/source/_layouts/page.html
+++ b/source/_layouts/page.html
@@ -3,7 +3,7 @@
---
- {% if page.title and page.show_title != false %}
+ {% if page.title and page.show_title != false and page.layout != "landingpage" %}
{% if site.titlecase %}{{ page.title | titlecase }}{% else %}{{ page.title
diff --git a/source/_lovelace/alarm-panel.markdown b/source/_lovelace/alarm-panel.markdown
index 1288e296f4f0..f0c773dfdb78 100644
--- a/source/_lovelace/alarm-panel.markdown
+++ b/source/_lovelace/alarm-panel.markdown
@@ -1,4 +1,5 @@
---
+type: card
title: "Alarm Panel Card"
sidebar_label: Alarm Panel
description: "The Alarm Panel card allows you to arm and disarm your alarm control panel integrations."
diff --git a/source/_lovelace/button.markdown b/source/_lovelace/button.markdown
index c7dca136f753..14ed2b2e819f 100644
--- a/source/_lovelace/button.markdown
+++ b/source/_lovelace/button.markdown
@@ -1,4 +1,5 @@
---
+type: card
title: "Button Card"
sidebar_label: Button
description: "The Button card allows you to add buttons to perform tasks."
diff --git a/source/_lovelace/calendar.markdown b/source/_lovelace/calendar.markdown
index 6b5d084212d9..b5fb73da00b6 100644
--- a/source/_lovelace/calendar.markdown
+++ b/source/_lovelace/calendar.markdown
@@ -1,4 +1,5 @@
---
+type: card
title: "Calendar Card"
sidebar_label: Calendar
description: "The calendar card displays your calendar entities in a month, day and list view"
diff --git a/source/_lovelace/conditional.markdown b/source/_lovelace/conditional.markdown
index b8fe0369d866..df73887cdc3f 100644
--- a/source/_lovelace/conditional.markdown
+++ b/source/_lovelace/conditional.markdown
@@ -1,4 +1,5 @@
---
+type: card
title: Conditional Card
sidebar_label: Conditional
description: The Conditional card displays another card based on entity states.
diff --git a/source/_lovelace/energy.markdown b/source/_lovelace/energy.markdown
new file mode 100644
index 000000000000..50c8b17770b1
--- /dev/null
+++ b/source/_lovelace/energy.markdown
@@ -0,0 +1,143 @@
+---
+type: card
+title: "Energy Cards"
+sidebar_label: Energy Cards
+description: "An overview of the energy cards that are available."
+---
+
+This is a list of all the cards used in the energy dashboard, you can also place them anywhere you want in your Lovelace dashboard.
+
+At the moment there are no configuration options available for these cards, you can configure them on the {% my config_energy title="energy configuration page" %}.
+
+## Energy date picker
+
+
+
+ Screenshot of the Energy date selection card.
+
+
+This card will allow you to pick what data to show. Changing it in this card will influence the data in all other cards.
+
+#### Example
+```yaml
+type: energy-date-selection
+```
+
+## Energy usage graph
+
+
+
+ Screenshot of the Energy usage graph card.
+
+
+The energy usage graph card shows the amount of energy your house has consumed, and from what source this energy came.
+It will also show the amount of energy your have returned to the grid.
+
+#### Example
+```yaml
+type: energy-usage-graph
+```
+
+## Solar production graph
+
+
+
+ Screenshot of the Solar production graph card.
+
+
+The solar production graph card shows the amount of energy your solar panels have produced per source, and if setup and available the forecast of the solar production.
+
+#### Example
+```yaml
+type: energy-solar-graph
+```
+
+## Energy distribution
+
+
+
+ Screenshot of the Energy distribution card.
+
+
+The energy distribution card shows how the energy flowed, from the grid to your house, from your solar panels to your house and/or back to the grid.
+
+If setup, it will also tell you how many kWh of the energy you got from the grid was produced without using fossil fuels.
+
+If you set `link_dashboard` to `true`, the card will include a link to the energy dashboard.
+
+#### Example
+```yaml
+type: energy-distribution
+link_dashboard: true
+```
+
+## Energy sources table
+
+
+
+ Screenshot of the Energy sources table card.
+
+
+The energy sources table card shows all your energy sources, and the corresponding amount of energy.
+If setup, it will also show the costs and compensation per source and the total.
+
+#### Example
+```yaml
+type: energy-sources-table
+```
+
+## Grid neutrality gauge
+
+
+
+ Screenshot of the Grid neutrality gauge card.
+
+
+The grid neutrality gauge card represents your energy dependency. If it's green, it means you produced more energy than that you consumed from the grid. If it's in the red, it means that you relied on the grid for part of your home's energy consumption.
+
+#### Example
+```yaml
+type: energy-grid-neutrality-gauge
+```
+
+## Solar consumed gauge
+
+
+
+ Screenshot of the Solar consumed gauge card.
+
+
+The solar consumed gauge represents how much of the solar energy was not used by your home and was returned to the grid. If you frequently return a lot, try to conserve this energy by installing a battery or buying an electric car to charge.
+
+#### Example
+```yaml
+type: energy-solar-consumed-gauge
+```
+
+## Carbon consumed gauge
+
+
+
+ Screenshot of the Carbon consumed gauge card.
+
+
+The carbon consumed gauge card represents how much of the energy consumed by your home was generated using non-fossil fuels like solar, wind and nuclear. It includes the solar energy you generated your self.
+
+#### Example
+```yaml
+type: energy-carbon-consumed-gauge
+```
+
+## Devices energy graph
+
+
+
+ Screenshot of the devices energy graph card.
+
+
+The devices energy graph show the energy usage per device, it is sorted by usage.
+
+#### Example
+```yaml
+type: energy-devices-graph
+```
diff --git a/source/_lovelace/entities.markdown b/source/_lovelace/entities.markdown
index 8a6fc8db5d90..18c816569246 100644
--- a/source/_lovelace/entities.markdown
+++ b/source/_lovelace/entities.markdown
@@ -1,4 +1,5 @@
---
+type: card
title: "Entities Card"
sidebar_label: Entities
description: "The Entities card is the most common type of card. It groups items together into lists."
diff --git a/source/_lovelace/entity-filter.markdown b/source/_lovelace/entity-filter.markdown
index 8605d34b89b5..0e62325fe560 100644
--- a/source/_lovelace/entity-filter.markdown
+++ b/source/_lovelace/entity-filter.markdown
@@ -1,4 +1,5 @@
---
+type: card
title: "Entity Filter Card"
sidebar_label: Entity Filter
description: "The Entity Filter card allows you to define a list of entities that you want to track only when in a certain state. Very useful for showing lights that you forgot to turn off or show a list of people only when they're at home. "
diff --git a/source/_lovelace/entity.markdown b/source/_lovelace/entity.markdown
index 132347a1f32e..7c1009f09eb1 100644
--- a/source/_lovelace/entity.markdown
+++ b/source/_lovelace/entity.markdown
@@ -1,4 +1,5 @@
---
+type: card
title: "Entity Card"
sidebar_label: Entity
description: "The Entity card gives you a quick overview of your entity's state"
diff --git a/source/_lovelace/gauge.markdown b/source/_lovelace/gauge.markdown
index c82dc46e4b5b..b55fe8c70938 100644
--- a/source/_lovelace/gauge.markdown
+++ b/source/_lovelace/gauge.markdown
@@ -1,4 +1,5 @@
---
+type: card
title: "Gauge Card"
sidebar_label: Gauge
description: "The Gauge card is a basic card that allows visually seeing sensor data."
@@ -11,6 +12,11 @@ The Gauge card is a basic card that allows visually seeing sensor data.
Screenshot of the Gauge card.
+
+
+Screenshot of the Gauge card in needle mode.
+
+
To add the Gauge card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Gauge** from the card picker. All options for this card can be configured via the user interface.
Alternatively, the card can be configured using YAML:
@@ -53,6 +59,11 @@ max:
description: Maximum value for graph.
type: integer
default: 100
+needle:
+ required: false
+ description: Show the gauge as a needle gauge.
+ type: boolean
+ default: false
severity:
required: false
description: Allows setting of colors for different numbers.
diff --git a/source/_lovelace/glance.markdown b/source/_lovelace/glance.markdown
index 812c9269ca7f..b9a00165006d 100644
--- a/source/_lovelace/glance.markdown
+++ b/source/_lovelace/glance.markdown
@@ -1,4 +1,5 @@
---
+type: card
title: "Glance Card"
sidebar_label: Glance
description: "The Glance card is useful to group multiple sensors in a compact overview."
diff --git a/source/_lovelace/grid.markdown b/source/_lovelace/grid.markdown
index 3b31e81f53a2..95a1fc4953b9 100644
--- a/source/_lovelace/grid.markdown
+++ b/source/_lovelace/grid.markdown
@@ -1,4 +1,5 @@
---
+type: card
title: "Grid Card"
sidebar_label: Grid
description: "The Grid card allows you to show multiple cards in a grid."
diff --git a/source/_lovelace/history-graph.markdown b/source/_lovelace/history-graph.markdown
index 9452a3e09696..d77a4dd437fa 100644
--- a/source/_lovelace/history-graph.markdown
+++ b/source/_lovelace/history-graph.markdown
@@ -1,4 +1,5 @@
---
+type: card
title: "History Graph Card"
sidebar_label: History Graph
description: "The History Graph card allows you to display a graph for each of the entities listed."
diff --git a/source/_lovelace/horizontal-stack.markdown b/source/_lovelace/horizontal-stack.markdown
index eaf96be80f07..fa66b6d0b802 100644
--- a/source/_lovelace/horizontal-stack.markdown
+++ b/source/_lovelace/horizontal-stack.markdown
@@ -1,4 +1,5 @@
---
+type: card
title: "Horizontal Stack Card"
sidebar_label: Horizontal Stack
description: "The Horizontal Stack card allows you to stack together multiple cards, so they always sit next to each other in the space of one column."
diff --git a/source/_lovelace/humidifier.markdown b/source/_lovelace/humidifier.markdown
index 935e42c2dad4..25edb613984f 100644
--- a/source/_lovelace/humidifier.markdown
+++ b/source/_lovelace/humidifier.markdown
@@ -1,4 +1,5 @@
---
+type: card
title: "Humidifier Card"
sidebar_label: Humidifier
description: "The Humidifier card gives control of your humidifier entity, allowing you to change the target humidity and mode of the entity."
diff --git a/source/_lovelace/iframe.markdown b/source/_lovelace/iframe.markdown
index 9b2316e41c6b..310029219b21 100644
--- a/source/_lovelace/iframe.markdown
+++ b/source/_lovelace/iframe.markdown
@@ -1,4 +1,5 @@
---
+type: card
title: "Webpage Card"
sidebar_label: Webpage
description: "The Webpage card allows you to embed your favorite webpage right into Home Assistant."
diff --git a/source/_lovelace/light.markdown b/source/_lovelace/light.markdown
index 56e74ee880a7..baf004510174 100644
--- a/source/_lovelace/light.markdown
+++ b/source/_lovelace/light.markdown
@@ -1,4 +1,5 @@
---
+type: card
title: "Light Card"
sidebar_label: Light
description: "The Light card allows you to change the brightness of the light."
diff --git a/source/_lovelace/logbook.markdown b/source/_lovelace/logbook.markdown
index aed2f9af9109..4ddb422ef865 100644
--- a/source/_lovelace/logbook.markdown
+++ b/source/_lovelace/logbook.markdown
@@ -1,4 +1,5 @@
---
+type: card
title: "Logbook Card"
sidebar_label: Logbook
description: "The Logbook card displays entries from the logbook for specific entities."
diff --git a/source/_lovelace/map.markdown b/source/_lovelace/map.markdown
index 63815a9885c2..65259d0d5da6 100644
--- a/source/_lovelace/map.markdown
+++ b/source/_lovelace/map.markdown
@@ -1,4 +1,5 @@
---
+type: card
title: "Map Card"
sidebar_label: Map
description: "The Map card that allows you to display entities on a map"
diff --git a/source/_lovelace/markdown.markdown b/source/_lovelace/markdown.markdown
index 417f9b4e3d91..f26e7d9bbd1d 100644
--- a/source/_lovelace/markdown.markdown
+++ b/source/_lovelace/markdown.markdown
@@ -1,4 +1,5 @@
---
+type: card
title: "Markdown Card"
sidebar_label: Markdown
description: "The Markdown card is used to render Markdown"
diff --git a/source/_lovelace/masonry.markdown b/source/_lovelace/masonry.markdown
new file mode 100644
index 000000000000..908e75aca1fb
--- /dev/null
+++ b/source/_lovelace/masonry.markdown
@@ -0,0 +1,16 @@
+---
+type: view
+title: Masonry View
+sidebar_label: Masonry (default)
+description: "The default panel layout uses a masonry algorithme."
+---
+
+The masonry view is the default view type.
+It sorts cards in columns based on their `card size`. If you want to group some cards you have to use `stack` cards.
+
+{% configuration %}
+type:
+ required: false
+ description: "`masonry`"
+ type: string
+{% endconfiguration %}
\ No newline at end of file
diff --git a/source/_lovelace/media-control.markdown b/source/_lovelace/media-control.markdown
index fc6ad9bd9e8f..ab2928706435 100644
--- a/source/_lovelace/media-control.markdown
+++ b/source/_lovelace/media-control.markdown
@@ -1,4 +1,5 @@
---
+type: card
title: "Media Control Card"
sidebar_label: Media Control
description: "The Media Control card is used to display media player entities on an interface with easy to use controls."
diff --git a/source/_lovelace/panel.markdown b/source/_lovelace/panel.markdown
new file mode 100644
index 000000000000..0e883d5899ef
--- /dev/null
+++ b/source/_lovelace/panel.markdown
@@ -0,0 +1,19 @@
+---
+type: view
+title: Panel View
+sidebar_label: Panel
+description: "The panel view shows 1 card in the fullwidth of the screen."
+---
+
+In this view the first card is rendered full-width, other cards in the view will not be rendered.
+
+This view doesn't have support for badges.
+
+This view is good when using cards like `map`, `stack` or `picture-elements`.
+
+{% configuration %}
+type:
+ required: true
+ description: "`panel`"
+ type: string
+{% endconfiguration %}
\ No newline at end of file
diff --git a/source/_lovelace/picture-elements.markdown b/source/_lovelace/picture-elements.markdown
index 0141895c8c72..8fe22b78b8ca 100644
--- a/source/_lovelace/picture-elements.markdown
+++ b/source/_lovelace/picture-elements.markdown
@@ -1,4 +1,5 @@
---
+type: card
title: "Picture Elements Card"
sidebar_label: Picture Elements
description: "The Picture Elements card is one of the most versatile types of cards. The cards allow you to position icons or text and even services! On an image based on coordinates."
@@ -549,10 +550,10 @@ elements:
filter: saturate(.8)
state_filter:
"on": brightness(120%) saturate(1.2)
- style:
- top: 25%
- left: 75%
- width: 15%
+ style:
+ top: 25%
+ left: 75%
+ width: 15%
# Camera, red border, rounded-rectangle - show more-info on click
- type: image
entity: camera.driveway_camera
diff --git a/source/_lovelace/picture-entity.markdown b/source/_lovelace/picture-entity.markdown
index 372f85f09f74..b0e84aca0bd4 100644
--- a/source/_lovelace/picture-entity.markdown
+++ b/source/_lovelace/picture-entity.markdown
@@ -1,4 +1,5 @@
---
+type: card
title: Picture Entity Card
sidebar_label: Picture Entity
description: The Picture Entity card displays an entity in the form of an image. Instead of images from URL, it can also show the picture of camera entities.
diff --git a/source/_lovelace/picture-glance.markdown b/source/_lovelace/picture-glance.markdown
index 776853bf4e59..89972b57d70f 100644
--- a/source/_lovelace/picture-glance.markdown
+++ b/source/_lovelace/picture-glance.markdown
@@ -1,4 +1,5 @@
---
+type: card
title: "Picture Glance Card"
sidebar_label: Picture Glance
description: "The Picture Glance card shows an image and corresponding entity states as an icon. The entities on the right side allow toggle actions, others show the more information dialog."
diff --git a/source/_lovelace/picture.markdown b/source/_lovelace/picture.markdown
index 5dffca2b3e3f..79cc23d89c5d 100644
--- a/source/_lovelace/picture.markdown
+++ b/source/_lovelace/picture.markdown
@@ -1,4 +1,5 @@
---
+type: card
title: "Picture Card"
sidebar_label: Picture
description: "The Picture card allows you to set an image to use for navigation to various paths in your interface or to call a service."
diff --git a/source/_lovelace/plant-status.markdown b/source/_lovelace/plant-status.markdown
index 24dc0b1cecbb..753a58877b21 100644
--- a/source/_lovelace/plant-status.markdown
+++ b/source/_lovelace/plant-status.markdown
@@ -1,4 +1,5 @@
---
+type: card
title: "Plant Status Card"
sidebar_label: Plant Status
description: "The Plant Status card is for all the lovely botanists out there."
diff --git a/source/_lovelace/sensor.markdown b/source/_lovelace/sensor.markdown
index bb268216df0a..f5201c12baec 100644
--- a/source/_lovelace/sensor.markdown
+++ b/source/_lovelace/sensor.markdown
@@ -1,4 +1,5 @@
---
+type: card
title: "Sensor Card"
sidebar_label: Sensor
description: "The Sensor card gives you a quick overview of your sensors state with an optional graph to visualize change over time."
@@ -48,6 +49,21 @@ hours_to_show:
description: Hours to show in graph. Minimum is 1 hour. Big values can result in delayed rendering, especially if the selected entities have a lot of state changes.
type: integer
default: 24
+limits:
+ required: false
+ description: Limits of the graph Y-axis.
+ type: map
+ keys:
+ min:
+ description: Minimum value of the graph Y-axis.
+ type: float
+ required: false
+ default: "`0` if the entity `unit_of_measurement` is `%`, otherwise minimum value of sample"
+ max:
+ description: Maximum value of the graph Y-axis.
+ type: float
+ required: false
+ default: "`100` if the entity `unit_of_measurement` is `%`, otherwise maximum value of sample"
theme:
required: false
description: Override the used theme for this card with any loaded theme. For more information about themes, see the [frontend documentation](/integrations/frontend/).
diff --git a/source/_lovelace/shopping-list.markdown b/source/_lovelace/shopping-list.markdown
index 360a41724486..9edd2e39aecd 100644
--- a/source/_lovelace/shopping-list.markdown
+++ b/source/_lovelace/shopping-list.markdown
@@ -1,4 +1,5 @@
---
+type: card
title: "Shopping List Card"
sidebar_label: Shopping List
description: "The Shopping List card allows you to add, edit, check-off, and clear items from your shopping list."
diff --git a/source/_lovelace/sidebar.markdown b/source/_lovelace/sidebar.markdown
new file mode 100644
index 000000000000..03e2176fcc43
--- /dev/null
+++ b/source/_lovelace/sidebar.markdown
@@ -0,0 +1,47 @@
+---
+type: view
+title: Sidebar View
+sidebar_label: Sidebar
+description: "The sidebar view has 2 columns, a wide one and a smaller one on the right."
+---
+
+The sidebar view has 2 columns, a wide one and a smaller one on the right.
+
+This view doesn't have support for badges.
+
+To change a view to edit mode, or to change the location of a card, enable edit mode:
+Click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**.
+
+You can set if a card should be placed in the main (left) column of the sidebar column (right), by pressing the arrow right or left arrow in the bar underneath the card.
+
+On mobile all cards are rendered in 1 column and kept in the order of the cards in the config.
+
+## View config:
+
+{% configuration %}
+type:
+ required: true
+ description: "`sidebar`"
+ type: string
+{% endconfiguration %}
+
+#### Example
+
+Alternatively, the position of the card can be configured using YAML with the `view_layout` option:
+
+```yaml
+type: entities
+entities:
+ - media_player.lounge_room
+view_layout:
+ position: sidebar
+```
+
+## Cards config:
+
+{% configuration %}
+view_layout.position:
+ required: false
+ description: "The position of the card, `main` or `sidebar`"
+ type: string
+{% endconfiguration %}
diff --git a/source/_lovelace/statistics-graph.markdown b/source/_lovelace/statistics-graph.markdown
new file mode 100644
index 000000000000..6a13d4205c5e
--- /dev/null
+++ b/source/_lovelace/statistics-graph.markdown
@@ -0,0 +1,80 @@
+---
+type: card
+title: "Statistics Graph Card"
+sidebar_label: Statistics Graph
+description: "The Statistics Graph card allows you to display a graph with statistics data for each of the entities listed."
+---
+
+The Statistics Graph card allows you to display a graph of statistics data for each of the entities listed.
+
+Statistics are gathered every hour for sensors that support it. It will either keep the `min`, `max` and `mean` of a sensors value for a specific hour, or the `sum` for a metered entity.
+
+If your sensor doesn't work with statistics, check [this](/more-info/statistics/).
+
+
+
+Screenshot of the Statistics Graph card with none metered entities and `chart_type` `line`.
+
+
+
+
+Screenshot of the Statistics Graph card with a metered entity and `chart_type` `bar`.
+
+
+To add the Statistics Graph card to your user interface, click the Lovelace menu (three dots at the top right of the screen) and then **Edit Dashboard**. Click the "Add Card" button in the bottom right corner and select **Statistics Graph** from the card picker. All options for this card can be configured via the user interface.
+
+{% configuration %}
+type:
+ required: true
+ description: statistics-graph
+ type: string
+entities:
+ required: true
+ description: "A list of entity IDs or `entity` objects, see below."
+ type: list
+days_to_show:
+ required: false
+ description: Days to show in graph. Minimum is 1 day.
+ type: integer
+ default: 30
+chart_type:
+ required: false
+ description: If the chart should be rendered as a `bar` or a `line` chart.
+ type: string
+stat_types:
+ required: false
+ description: The stat types to render. `min`, `max`, `mean`, `sum`
+ type: list
+title:
+ required: false
+ description: The card title.
+ type: string
+{% endconfiguration %}
+
+## Options For Entities
+
+If you define entities as objects instead of strings, you can add more customization and configuration:
+
+{% configuration %}
+entity:
+ required: true
+ description: Entity ID.
+ type: string
+name:
+ required: false
+ description: Overwrites friendly name.
+ type: string
+{% endconfiguration %}
+
+## Example
+
+Alternatively, the card can be configured using YAML:
+
+```yaml
+type: statistics-graph
+title: 'My Graph'
+entities:
+ - sensor.outside_temperature
+ - entity: sensor.inside_temperature
+ name: Inside
+```
diff --git a/source/_lovelace/thermostat.markdown b/source/_lovelace/thermostat.markdown
index 4add41872726..5be392a7e67c 100644
--- a/source/_lovelace/thermostat.markdown
+++ b/source/_lovelace/thermostat.markdown
@@ -1,4 +1,5 @@
---
+type: card
title: "Thermostat Card"
sidebar_label: Thermostat
description: "The Thermostat card gives control of your climate entity, allowing you to change the temperature and mode of the entity."
diff --git a/source/_lovelace/vertical-stack.markdown b/source/_lovelace/vertical-stack.markdown
index fb3d0b05b436..2b5946bd9c5b 100644
--- a/source/_lovelace/vertical-stack.markdown
+++ b/source/_lovelace/vertical-stack.markdown
@@ -1,4 +1,5 @@
---
+type: card
title: "Vertical Stack Card"
sidebar_label: Vertical Stack
description: "The Vertical Stack card allows you to group multiple cards so they always sit in the same column."
diff --git a/source/_lovelace/weather-forecast.markdown b/source/_lovelace/weather-forecast.markdown
index 3925f8f47122..94cae354bdd7 100644
--- a/source/_lovelace/weather-forecast.markdown
+++ b/source/_lovelace/weather-forecast.markdown
@@ -1,4 +1,5 @@
---
+type: card
title: "Weather Forecast Card"
sidebar_label: Weather Forecast
description: "The Weather Forecast card displays the weather. Very useful to include on interfaces that people display on the wall."
diff --git a/source/_posts/2021-08-04-home-energy-management.markdown b/source/_posts/2021-08-04-home-energy-management.markdown
new file mode 100644
index 000000000000..44305c2f4914
--- /dev/null
+++ b/source/_posts/2021-08-04-home-energy-management.markdown
@@ -0,0 +1,132 @@
+---
+layout: post
+title: "Energy Management in Home Assistant"
+description: "Monitor your energy usage, transition to sustainable energy and save money."
+date: 2021-08-04 00:01:00
+date_formatted: "August 4, 2021"
+author: Paulus Schoutsen
+author_twitter: balloob
+comments: true
+categories:
+- Announcements
+og_image: /images/blog/2021-08-energy/social.png
+feedback: true
+---
+
+_TL; DR: We're adding energy management and [it's awesome](https://demo.home-assistant.io/#/energy). Created two products to read out electricity meters: [SlimmeLezer](https://www.slimmelezer.nl) for P1 ports & [Home Assistant Glow](https://github.com/klaasnicolaas/home-assistant-glow) for activity LEDs. Upgraded most of the [existing energy integrations](/integrations/#energy) to be compatible._
+
+
+
+The world is in a climate crisis. Global warming is a reality and the weather is getting unpredictable. Our way of living needs to change, at all levels. I am worried that the climate crisis is something that the world is going to try to solve too late and after irreversible damages have already been done.
+
+So with Home Assistant we want to do our part to help take on the climate crisis, and help you do the same. One part of fighting the climate crisis is making sure our homes are energy efficient and use low-carbon energy sources.
+
+Starting today, Home Assistant is adding official support for home energy management. Our energy management will help users monitor the energy usage, transition to sustainable energy and save money.
+
+
+
+Home automation and energy management are built on top of knowing what devices are doing
+
+
+## Energy management and Home Assistant in context
+
+Bill Gates was recently interviewed by Marques Brownlee (MKBHD) and talked about how intelligent homes are needed to make smart cities. And how all of this starts with energy management in the home. The interview is 3 minutes and worth watching:
+
+
+
+
+
+Home Assistant won’t have all the answers when it comes to energy management, at least not right away. But we have two key things going for us that makes us the perfect platform to choose for your energy management:
+
+The first is that we’re completely open. This means that with Home Assistant, anyone can use [the source](https://github.com/home-assistant/core) or [its collected data](https://data.home-assistant.io/) and build anything with it. We already see this happening: the [European federation of citizen energy cooperatives](https://www.rescoop.eu/) is using Home Assistant to build [energy management software tailored for communities](https://www.rescoopvpp.eu/blog/presenting-the-cofy-box). We are part of a rich ecosystem with many different approaches, all connected with Home Assistant.
+
+The second thing is that we have a passionate and global community that wants to make their homes the best it can be. A community that revolves around building and sharing their own hardware and software to be able to achieve their goals. Through experimentation and iteration we will be able to improve energy management over time to fit our needs – there are no investors to satisfy.
+
+When it comes to your home, Home Assistant is the best platform to manage it and figure out what works and what doesn’t.
+
+
+
+## Energy Dashboard
+
+Today's release of [Home Assistant Core 2021.8](/blog/2021/08/04/release-20218/) contains a new energy dashboard ([demo](https://demo.home-assistant.io/#/energy)). The goal is to make it super easy for users to get insight into their energy usage. The dashboard has been designed to see at a quick glance how you're doing today, with the option to also break down per hour to see what happened when. It also includes indicators to help you identify your reliance on the grid and if adding energy storage would help your situation.
+
+
+
+(above) Different ways of looking at your consumption will help you better understand your energy usage
+(below) The energy usage graph shows per hour how much energy you used from the grid, how much energy you produced and how much of that energy went back to the grid.
+
+
+
+
+Users will be able to see at a glance what sources of energy have been used in their home. This insight includes the carbon intensity of the electricity being consumed from the grid, which is available thanks to [electricityMap](https://www.electricitymap.org/).
+
+If users have solar panels they can set up the [Forecast.Solar](https://www.forecast.solar) integration which allows users to see at a glance how today’s production is going to be. This enables users to schedule when to charge their electric car or heat extra water.
+
+
+
+Energy management is complicated, so we made sure that our energy settings are as easy as it can be. They are accompanied with [documentation](/docs/energy/) to further explain the different concepts.
+
+Users can configure their consumption and production and Home Assistant will do the rest. Home Assistant can pull in energy data from any supported hardware such as smart energy meters, inverters, CT clamps, pulse monitors and smart plugs.
+
+
+
+The configuration is separated into different sections.
+
+
+## Hardware
+
+Home Assistant is vendor agnostic and there is no vendor lock-in. You can use any hardware that you want. We’ve already upgraded many of the [existing integrations for energy monitoring](/integrations/#energy) to work out of the box with energy management.
+
+Besides supporting existing integrations, we’ve also created two open-source hardware projects to help you get your energy data into Home Assistant.
+
+### Slimme Lezer
+
+Most energy meters in the Netherlands, Belgium and Luxembourg have a P1 port on their energy meter. This port provides real-time usage statistics.
+
+Together with [Marcel Zuidwijk](https://www.zuidwijk.com) we have designed and developed [SlimmeLezer](https://www.slimmelezer.nl). This product, based on [ESPHome](https://esphome.io), will make all P1 data instantly available in Home Assistant. P1 ports using the DSMR v5 protocol will also be able to power this device directly, so you don’t need an external charger. The SlimmeLezer firmware is fully open source.
+
+[Buy a SlimmeLezer](https://www.slimmelezer.nl)
+
+[SlimmeLezer on GitHub](https://www.github.com/zuidwijk/dsmr/)
+
+
+
+### Home Assistant Glow
+
+Most energy meters will flash a small light when a fixed amount of energy has been consumed. Home Assistant Glow monitors this light and brings it as a consumption sensor into Home Assistant.
+
+Home Assistant Glow is powered by [ESPHome](https://esphome.io). Both firmware and case are fully open source and it is relatively straightforward to make your own with the included guide.
+
+The Home Assistant Glow was designed and developed by [Klaas Schoute](https://github.com/klaasnicolaas) as part of his internship at [Nabu Casa](https://www.nabucasa.com).
+
+[Home Assistant Glow on GitHub](https://github.com/klaasnicolaas/home-assistant-glow)
+
+
+
+### This is only the beginning
+
+Today we released the very first version of energy management in Home Assistant 2021.8. We have many ideas that we're going to add in the next couple of releases.
+
+If you're interested in helping out, don't hesitate to stop by the new #devs_energy channel on [our Discord server](/join-chat).
+
+### New possibilities for advanced users
+
+Every home is different and so are the needs of individual users. The energy management feature in Home Assistant is created with existing Home Assistant building blocks: Lovelace & Data storage. This means that our advanced users can choose to build up their own dashboards and use [the pieces from the energy dashboard](/lovelace/energy/) that they like.
+
+On top of that, advanced users will have access to the new [long-term statistics](/lovelace/statistics-graph/) that have been added to Home Assistant. This data allows you to easily monitor most sensor data over long periods of time, not just energy data.
+
+### Thank you community
+
+Our home energy management has been in the making for over six months and many people and companies around the world have contributed to making this a success.
+
+We’ve upgraded how Home Assistant stores data, renders charts and enhanced many other parts. We also extended the sensor model in ESPHome and added new features to make it possible to create devices that work out of the box with energy management. It’s been a lot of work by a lot of people and I am very proud of what we have been able to accomplish.
+
+It shows that open source works: when you bring a group of people together that are passionate about something, great things can be made.
+
+I want to give a special thanks to [Klaas Schoute](https://github.com/klaasnicolaas) who started the initial research as part of his internship at [Nabu Casa](https://www.nabucasa.com). He researched available solutions, created his own solutions ([Home Assistant Glow](https://github.com/klaasnicolaas/home-assistant-glow)), held in-depth interviews with 20 Home Assistant users, created the first iterations of the dashboard and integrated new data sources into Home Assistant ([forecast.solar](/integrations/forecast_solar/)). Thanks Klaas!
+
+
+
+### Support our work
+
+If you like what we’re doing and want to help fund our work, subscribe to [Home Assistant Cloud](https://www.nabucasa.com).
diff --git a/source/_posts/2021-08-04-release-20218.markdown b/source/_posts/2021-08-04-release-20218.markdown
new file mode 100644
index 000000000000..d3edd40c6979
--- /dev/null
+++ b/source/_posts/2021-08-04-release-20218.markdown
@@ -0,0 +1,2912 @@
+---
+layout: post
+title: "2021.8.0: Feel the energy ⚡️"
+description: "Introducing Home Energy Management, long-term statistics, new Lovelace sidebar layout and statistics graph card, sirens, additional lock capabilities and new advanced templating features"
+date: 2021-08-04 00:00:00
+date_formatted: "August 4, 2021"
+author: Franck Nijhof
+author_twitter: frenck
+comments: true
+categories:
+- Release-Notes
+- Core
+og_image: /images/blog/2021-08/social.png
+feedback: true
+---
+
+
+
+Happy August! ☀️
+
+Home Assistant Core 2021.8 is here, and this is the release I have been looking
+forward to for months! There is so much exciting new stuff in here: I don't
+know where to start.
+
+The most exciting part is the new main focus that is added to Home Assistant:
+
+**Home Energy management.**
+
+A massive deal for a lot of people, no matter if you are doing it for
+environmental reasons or simply to save a buck or two (or both 😬). Knowing
+that moving forward, it will be an additional focus, I think, is amazing.
+
+But besides the Energy management stuff, I'm also excited about the side effects
+of it. A lot of things created for Energy, are also re-usable for other things!
+That is how we roll, right?
+
+We get long-term statistics, new super nice and fast graphs, and a new
+layout option for Lovelace. All the building blocks are available for
+customization and re-use. I am looking forward to seeing how they are going
+to be put to use.
+
+Anyways, enjoy the release! And don't forget the drop by
+[the release party on YouTube](https://www.youtube.com/watch?v=VLiqDkam33k)
+later today (9:00 PM CET).
+
+../Frenck
+
+- [Matthias de Baat joins Nabu Casa](#matthias-de-baat-joins-nabu-casa)
+- [Home Energy Management!](#home-energy-management)
+- [Long term statistics](#long-term-statistics)
+- [Sidebar view](#sidebar-view)
+- [Gauge card now has needle mode](#gauge-card-now-has-needle-mode)
+- [Currency core setting](#currency-core-setting)
+- [Siren](#siren)
+- [Locking, Unlocking and Jammed](#locking-unlocking-and-jammed)
+- [Scripts/Automations/Templates](#scriptsautomationstemplates)
+ - [This](#this)
+ - [Device template functions](#device-template-functions)
+- [Other noteworthy changes](#other-noteworthy-changes)
+- [New Integrations](#new-integrations)
+- [New Platforms](#new-platforms)
+- [Integrations now available to set up from the UI](#integrations-now-available-to-set-up-from-the-ui)
+- [Release 2021.8.1 - August 4](#release-202181---august-4)
+- [Release 2021.8.2 - August 5](#release-202182---august-5)
+- [Release 2021.8.3 - August 6](#release-202183---august-6)
+- [Release 2021.8.4 - August 8](#release-202184---august-8)
+- [Release 2021.8.5 - August 9](#release-202185---august-9)
+- [Release 2021.8.6 - August 10](#release-202186---august-10)
+- [Release 2021.8.7 - August 15](#release-202187---august-15)
+- [Release 2021.8.8 - August 18](#release-202188---august-18)
+- [If you need help...](#if-you-need-help)
+- [Breaking Changes](#breaking-changes)
+- [Farewell to the following](#farewell-to-the-following)
+- [All changes](#all-changes)
+
+## Matthias de Baat joins Nabu Casa
+
+Let start by announcing that [Matthias de Baat](https://twitter.com/matthiasdebaat)
+is joining the team at [Nabu Casa](https://nabucasa.com/) to work on
+Home Assistant as a UX-designer.
+
+UX stands for "User Experience", which is Matthias' area of expertise and what
+he will be working on improving. His goal is to make Home Assistant easier to
+use and accessible for everyone. He will be setting up design processes and
+tooling, doing user research and making designs.
+
+If you are interested in joining the Home Assistant user research group, you
+can show your interest by filling in this [Google Form](https://forms.gle/5NSabxHJ3qkp7Vke9)
+that Matthias has prepared.
+
+Welcome Matthias! Excited to have you on board!
+
+But wait! There is more!
+
+[Otto Winter][@ottowinter], the founder of [ESPHome](https://esphome.io/), will
+be joining Nabu Casa during his summer break as well! Welcome Otto! This summer
+is going to be fantastic!
+
+## Home Energy Management!
+
+This feature is a big thing; A start of something new. Home Assistant is going
+to provide you insight into your energy usage.
+
+But this needs more than just a paragraph in the release notes, this needs
+its own blog! So, at this point, stop reading the release notes (momentarily)
+and read the blog Paulus has written about this:
+
+[Read the blog about the new Home Energy Management features of Home Assistant](/blog/2021/08/04/home-energy-management/)
+
+## Long term statistics
+
+Storing sensor data for a more extended period using the recorder, can make your
+database grow pretty fast (especially if you have sensors that update a lot!).
+
+In the previous releases, we've worked towards improving this situation and
+laid down the groundwork for tracking statistics in the database;
+We are making it widely available this release!
+
+Integrations can now hint Home Assistant about the type of value the sensor
+represents, allowing us to process and store that data in a more efficient way.
+Every hour, we calculate things like mean, min/max values, or the difference
+created that hour and store just that result in our long-term statistics.
+
+These statistics is what partly powers the new Energy dashboard, however,
+they can be used for anything else: Introducing the Lovelace [statistics graph card](/lovelace/statistics-graph/).
+
+
+
+Screenshot of the new Lovelace statistics graph card.
+
+
+This card can make beautiful graphs, allowing you to make graphs for any of
+your stored long-term statistical data. It can render as a line or bar chart.
+Bars are suited for `metered` entities that have a summed value. Lines are
+perfect to display the `mean`, `min` and `max` of the entity.
+
+The support for long-term statistics is limited at this moment. We are
+expecting to open it up for more measurements in the upcoming releases while
+more integrations are adding support for these new measurement types.
+
+## Sidebar view
+
+The default layout you see in Lovelace (which we generally all use), is called
+the "masonry" layout. We also have a panel view/layout that stretches a single
+card to the whole view. This release brings in a brand new view layout: Sidebar.
+
+This new sidebar view has two columns, a wide one and a small one on the right.
+It is perfect for displaying larger cards like graphs (like that nice new
+statistics graph card), or maps. While having some additional smaller cards
+with information on the side.
+
+The new Energy dashboard uses this new view layout, but of course, made
+available for use in other Lovelace dashboards as well.
+
+
+
+Screenshot of new Lovelace sidebar view layout.
+
+
+## Gauge card now has needle mode
+
+A nice little addition to the Lovelace gauge card: Needle mode!
+
+Instead of showing a value and filling it partially, in needle mode, it will
+show the full gauge but point out the value with a needle. And, if you add
+severity to your gauge card configuration, it will always be shown.
+
+
+
+Screenshot of the Gauge card in needle mode with severity configured.
+
+
+These settings are available straight from the Lovelace UI editor; More
+information and examples can be found in the [Gauge card documentation](/lovelace/gauge/).
+
+## Currency core setting
+
+To support the display of financial values, we've added a new setting to Home
+Assistant that allows you to define the currency Home Assistant should use
+in cases it relies on your input.
+
+You can find this new currency setting in the general settings of Home Assistant.
+
+{% my general badge %}
+
+This setting is used for the cost calculation of the new energy features.
+
+## Siren
+
+The last release, we introduced the [`select` entity](/blog/2021/07/07/release-20217/#new-entity-select),
+this release, we introduce the `siren` entity! 🚨
+
+Thanks to [@raman325] for adding this noisemaker to the family! He also
+implemented the first integration to add support for Sirens: the Z-Wave JS
+integration. So, if you have a Z-Wave enabled Siren, you can now control it.
+
+## Locking, Unlocking and Jammed
+
+Locks in Home Assistant can be a little bit smarter as of today, thanks
+to [@bdraco]. Besides the locked & unlocked states, support for locking,
+unlocking and jammed has been added.
+
+Support for these new states has been added to the August, HomeKit Controller
+and template integrations. Additionally, HomeKit, Alexa and Google Assistant
+have been made compatible and aware for these states as well.
+
+## Scripts/Automations/Templates
+
+Some new features landed for script, automations and templates this release.
+
+### This
+
+When an automation or script is triggered to run, a new variable is available:
+`this`. This variable contains the [state object](/docs/configuration/state_object/)
+of the automation or script running and allows you to access information about
+the automation directly. Thanks, [@r-t-s]!
+
+### Device template functions
+
+If you like to write YAML automations manually, are using templates, and require
+device IDs or device information, than you know those IDs are hard to find and
+the device information is not available at all.
+
+[@raman325] added some new template functions that can be helpful when working
+with devices.
+
+- `device_entities(device_id)` returns a list of entities associated
+ with a given device ID (can also be used as a filter).
+- `device_attr(device_or_entity_id, attr_name)` returns the value of `attr_name`
+ for the given device ID or entity ID.
+- `is_device_attr(device_or_entity_id, attr_name, attr_value)` returns whether
+ the value of `attr_name` for the given device ID or entity ID matches `attr_value`.
+- `device_id(entity_id)` returns the device ID for a given entity ID
+ (can also be used as a filter).
+
+Thanks for these powerful new features!
+
+## Other noteworthy changes
+
+There is much more juice in this release; here are some of the other
+noteworthy changes this release:
+
+- Thanks to [@firstof9], Z-Wave JS now has support for transitions with lights!
+- More Z-Wave JS improvements by [@raman325]. He added support for device
+ triggers and conditions. Thanks!
+- You can now assign a unique ID to light, cover and media player groups,
+ allowing you to manage them from the Home Assistant frontend and assign
+ them to an area!
+- The motionEye integration now has support for motion detection, thanks [@dermotduffy]
+- ZHA can now work with Formaldehyde and VOC level sensors, thanks [@Adminiuga]
+- [@posixx] added a new feature for integration that provide alarm panels;
+ those integrations can now update to support Vacation mode!
+- Rainbird now has a service to change the rain delay, thanks [@Kr0llx]!
+- If you are using BMW Connected Drive, [@EddyK69] added a lot of trip sensors.
+- Sonos snapshots now behave, are more robust and work as expected. Additionally,
+ support for controlling crossfade has been added, thanks [@jjlawren]!
+- WLED now supports controlling the new playlists features introduced in WLED 0.13.
+- [@farmio] added support for KNX lights that use HS-colors, thanks!
+- And [@joncar] added support for transitions to LiteJet lights, awesome!
+- If you have MFA on your Tesla account, thanks to [@BreakingBread0],
+ the integration now supports that.
+- When using the Netatmo integration, you can now control the schedule it
+ should be using with a select entity. Thanks, [@cgtobi]!
+- [@janiversen] added more data types to modus and added array write to
+ the turn on/off capabilities of Modbus switches, fans and lights.
+- Advantage Air now has temperature sensors for each zone, thanks [@Bre77]!
+- Gree Climate now has switches to support more modes, thanks to [@cmroche]!
+- You can now remove holidays from the workday sensor by name instead of
+ date. This is useful for holidays they don't have a fixed date each year.
+ Thanks [@matthewgottlieb]!
+- HomeKit will not auto-recreated TVs when sources are out of sync. One thinsg
+ less to worry about, thanks [@bdraco]
+- [@jbouwh] has drastically reworked and extended the Humidifier support for
+ the Xiaomi Miio integration. Amazing job!
+
+## New Integrations
+
+We welcome the following new integrations this release:
+
+- [Adax][adax docs], added by [@Danielhiversen]
+- [Energy][energy docs], added by the Home Assistant Core team
+- [Flipr][flipr docs], added by [@cnico]
+- [Generic Hygrostat][generic_hygrostat docs], added by [@Shulyaka]
+- [Prosegur][prosegur docs], added by [@dgomes]
+- [Siren][siren docs], added by [@raman325]
+- [YouLess][youless docs], added by [@gjong]
+- [Renault][renault docs], added by [@epenet]
+
+## New Platforms
+
+The following integration got support for a new platform:
+
+- [Belkin WeMo][wemo docs] added sensors for energy usage. Added by [@esev]
+- [Freedompro][freedompro docs] now supports binary sensors, sensors, switches, locks, covers, climate and fans! Added by [@stefano055415]
+- [GIOŚ][gios docs] now has sensors for replacing the air quality platform, added by [@bieniu]
+- [Goal Zero Yeti][goalzero docs], added sensors that provide a lot of information, added by [@tkdrob]
+- [Itho Daalderop Spider][spider docs], added sensors for energy usages. Added by [@peternijssen]
+- [Mill][mill docs], added support for sensors for its energy consumption, added by [@Danielhiversen]
+- [motionEye][motioneye docs] now exposes switches, added by [@dermotduffy]
+- [TP-Link Kasa Smart][tplink docs] added sensors for energy usage. Added by [@mib1185]
+- [Velux][velux docs] now supports lights, added by [@bramstroker]
+- [Z-Wave JS][zwave_js docs] now supports sirens, added by [@raman325]
+
+## Integrations now available to set up from the UI
+
+The following integrations are now available via the Home Assistant UI:
+
+- [CO2 Signal][co2signal docs], done by [@Danielhiversen]
+- [Honeywell Total Connect Comfort (US)][honeywell docs], done by [@rdfurman]
+- [Notifications for Android TV / Fire TV][nfandroidtv docs], done by [@tkdrob]
+- [Switcher][switcher_kis docs], done by [@thecode]
+- [Yale Smart Living][yale_smart_alarm docs], done by [@gjohansson-ST]
+
+## Release 2021.8.1 - August 4
+
+- Fix Panasonic Viera TV going unavailable when turned off ([@Hyralex] - [#53788]) ([panasonic_viera docs])
+- Add temporary fix to modbus to solve upstream problem ([@janiversen] - [#53857]) ([modbus docs])
+- Fix attr_unit_of_measurement in update of apcupsd entity ([@mib1185] - [#53947]) ([apcupsd docs])
+- Fix coordinator not defined in yale_smart_alarm ([@gjohansson-ST] - [#53973]) ([yale_smart_alarm docs])
+- Fix divider for Fritz sensors ([@chemelli74] - [#53980]) ([fritz docs])
+- Fix empty sonos_group entity attribute on startup ([@jjlawren] - [#53985]) ([sonos docs])
+- Update frontend to 20210804.0 ([@bramkragten] - [#53997]) ([frontend docs])
+
+[#53788]: https://github.com/home-assistant/core/pull/53788
+[#53857]: https://github.com/home-assistant/core/pull/53857
+[#53947]: https://github.com/home-assistant/core/pull/53947
+[#53973]: https://github.com/home-assistant/core/pull/53973
+[#53980]: https://github.com/home-assistant/core/pull/53980
+[#53985]: https://github.com/home-assistant/core/pull/53985
+[#53997]: https://github.com/home-assistant/core/pull/53997
+[@Hyralex]: https://github.com/Hyralex
+[@bramkragten]: https://github.com/bramkragten
+[@chemelli74]: https://github.com/chemelli74
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[@janiversen]: https://github.com/janiversen
+[@jjlawren]: https://github.com/jjlawren
+[@mib1185]: https://github.com/mib1185
+[apcupsd docs]: /integrations/apcupsd/
+[fritz docs]: /integrations/fritz/
+[frontend docs]: /integrations/frontend/
+[modbus docs]: /integrations/modbus/
+[panasonic_viera docs]: /integrations/panasonic_viera/
+[sonos docs]: /integrations/sonos/
+[yale_smart_alarm docs]: /integrations/yale_smart_alarm/
+
+## Release 2021.8.2 - August 5
+
+- Bump pylitterbot to 2021.8.0 ([@natekspencer] - [#54000]) ([litterrobot docs])
+- Add missing device class to SAJ energy sensors ([@frenck] - [#54048]) ([saj docs])
+- Handle empty software version when setting up HomeKit ([@bdraco] - [#54068]) ([homekit docs])
+- Bump up ZHA dependencies ([@puddly] - [#54079]) ([zha docs])
+- Packages to support config platforms ([@balloob] - [#54085]) ([automation docs]) ([script docs]) ([template docs])
+- Fix Shelly last_reset ([@thecode] - [#54101]) ([shelly docs])
+- Two fixes ([@chemelli74] - [#54102]) ([fritz docs])
+- Increase time before scene and script HomeKit entities are reset ([@bdraco] - [#54105]) ([homekit docs])
+- Bump zeroconf to 0.33.3 ([@bdraco] - [#54108]) ([zeroconf docs])
+
+[#54000]: https://github.com/home-assistant/core/pull/54000
+[#54048]: https://github.com/home-assistant/core/pull/54048
+[#54068]: https://github.com/home-assistant/core/pull/54068
+[#54079]: https://github.com/home-assistant/core/pull/54079
+[#54085]: https://github.com/home-assistant/core/pull/54085
+[#54101]: https://github.com/home-assistant/core/pull/54101
+[#54102]: https://github.com/home-assistant/core/pull/54102
+[#54105]: https://github.com/home-assistant/core/pull/54105
+[#54108]: https://github.com/home-assistant/core/pull/54108
+[@balloob]: https://github.com/balloob
+[@bdraco]: https://github.com/bdraco
+[@chemelli74]: https://github.com/chemelli74
+[@frenck]: https://github.com/frenck
+[@natekspencer]: https://github.com/natekspencer
+[@puddly]: https://github.com/puddly
+[@thecode]: https://github.com/thecode
+[automation docs]: /integrations/automation/
+[fritz docs]: /integrations/fritz/
+[homekit docs]: /integrations/homekit/
+[litterrobot docs]: /integrations/litterrobot/
+[saj docs]: /integrations/saj/
+[script docs]: /integrations/script/
+[shelly docs]: /integrations/shelly/
+[template docs]: /integrations/template/
+[zeroconf docs]: /integrations/zeroconf/
+[zha docs]: /integrations/zha/
+
+## Release 2021.8.3 - August 6
+
+- Gracefully handle additional GSM errors ([@ocalvo] - [#54114]) ([sms docs])
+- Handle software version being None when setting up HomeKit accessories ([@nzapponi] - [#54130]) ([homekit docs])
+- Fix sensor PLATFORM_SCHEMA for ebox and enphase_envoy ([@mib1185] - [#54142]) ([enphase_envoy docs])
+- Fetch interface index from network integration instead of socket.if_nametoindex in zeroconf ([@bdraco] - [#54152]) ([zeroconf docs]) ([network docs])
+- Bump zeroconf to 0.33.4 to ensure zeroconf can startup when ipv6 is disabled ([@bdraco] - [#54165]) ([zeroconf docs])
+
+[#54114]: https://github.com/home-assistant/core/pull/54114
+[#54130]: https://github.com/home-assistant/core/pull/54130
+[#54142]: https://github.com/home-assistant/core/pull/54142
+[#54152]: https://github.com/home-assistant/core/pull/54152
+[#54165]: https://github.com/home-assistant/core/pull/54165
+[@bdraco]: https://github.com/bdraco
+[@mib1185]: https://github.com/mib1185
+[@nzapponi]: https://github.com/nzapponi
+[@ocalvo]: https://github.com/ocalvo
+[enphase_envoy docs]: /integrations/enphase_envoy/
+[homekit docs]: /integrations/homekit/
+[network docs]: /integrations/network/
+[sms docs]: /integrations/sms/
+[zeroconf docs]: /integrations/zeroconf/
+
+## Release 2021.8.4 - August 8
+
+- Add missing `motor_speed` sensor for Xiaomi Miio humidifier CA1 and CB1 ([@bieniu] - [#54202])
+- Fix update entity prior to adding ([@Trinnik] - [#54015]) ([aladdin_connect docs])
+- Fix androidtv media_image_hash ([@tkdrob] - [#54188]) ([androidtv docs])
+- Solve missing automatic update of struct configuration in modbus ([@janiversen] - [#54193]) ([modbus docs])
+- Update const.py ([@Mk4242] - [#54195]) ([ebusd docs])
+- Add parameter to delay sending of requests in modbus ([@janiversen] - [#54203]) ([modbus docs])
+- Bugfix: Bring back unique IDs for ADS covers after #52488 ([@carstenschroeder] - [#54212]) ([ads docs])
+- Don't block motionEye setup on NoURLAvailableError ([@dermotduffy] - [#54225]) ([motioneye docs])
+- Pin google-cloud-pubsub to an older version ([@allenporter] - [#54239])
+
+[#54015]: https://github.com/home-assistant/core/pull/54015
+[#54188]: https://github.com/home-assistant/core/pull/54188
+[#54193]: https://github.com/home-assistant/core/pull/54193
+[#54195]: https://github.com/home-assistant/core/pull/54195
+[#54202]: https://github.com/home-assistant/core/pull/54202
+[#54203]: https://github.com/home-assistant/core/pull/54203
+[#54212]: https://github.com/home-assistant/core/pull/54212
+[#54225]: https://github.com/home-assistant/core/pull/54225
+[#54239]: https://github.com/home-assistant/core/pull/54239
+[@Mk4242]: https://github.com/Mk4242
+[@Trinnik]: https://github.com/Trinnik
+[@allenporter]: https://github.com/allenporter
+[@bieniu]: https://github.com/bieniu
+[@carstenschroeder]: https://github.com/carstenschroeder
+[@dermotduffy]: https://github.com/dermotduffy
+[@janiversen]: https://github.com/janiversen
+[@tkdrob]: https://github.com/tkdrob
+[ads docs]: https://www.home-assistant.io/integrations/ads/
+[aladdin_connect docs]: https://www.home-assistant.io/integrations/aladdin_connect/
+[androidtv docs]: https://www.home-assistant.io/integrations/androidtv/
+[ebusd docs]: https://www.home-assistant.io/integrations/ebusd/
+[modbus docs]: https://www.home-assistant.io/integrations/modbus/
+[motioneye docs]: https://www.home-assistant.io/integrations/motioneye/
+
+## Release 2021.8.5 - August 9
+
+- Fix camera state and attributes for agent_dvr ([@tkdrob] - [#54049]) ([agent_dvr docs])
+- Force an attempted subscribe on speaker reboot ([@geuben] - [#54100]) ([sonos docs])
+- Fix login to BMW services for rest_of_world and north_america ([@rikroe] - [#54261]) ([bmw_connected_drive docs])
+- Always set interfaces explicitly when IPv6 is present ([@bdraco] - [#54268]) ([zeroconf docs])
+- Fix atom integration for long term statistics ([@ZeGuigui] - [#54285]) ([atome docs])
+- Use correct state attribute for alarmdecoder binary sensor ([@tkdrob] - [#54286]) ([alarmdecoder docs])
+- Bump soco to 0.23.3 ([@jjlawren] - [#54288]) ([sonos docs])
+- Fix ondilo_ico name attribute ([@cdce8p] - [#54290]) ([ondilo_ico docs])
+- Bump zeroconf to 0.34.3 ([@bdraco] - [#54294]) ([zeroconf docs])
+- Ensure hunterdouglas_powerview model type is a string ([@bdraco] - [#54299]) ([hunterdouglas_powerview docs])
+- Remove zwave_js transition on individual color channels ([@firstof9] - [#54303]) ([zwave_js docs])
+- Restores unit_of_measurement ([@dgomes] - [#54335]) ([integration docs])
+- Fix xiaomi air fresh fan preset modes ([@jbouwh] - [#54342]) ([xiaomi_miio docs])
+- Update frontend to 20210809.0 ([@bramkragten] - [#54350]) ([frontend docs])
+- Fix Xiaomi-miio turn fan on with speed, percentage or preset ([@jbouwh] - [#54353]) ([xiaomi_miio docs])
+- Fix aqualogic state attribute update ([@dailow] - [#54354]) ([aqualogic docs])
+- Cast SimpliSafe version number as a string in device info ([@bachya] - [#54356]) ([simplisafe docs])
+- Do not process forwarded for headers for cloud requests ([@balloob] - [#54364]) ([http docs]) ([cloud docs])
+- Revert "Use entity class attributes for Bluesound (#53033)" ([@balloob] - [#54365]) ([bluesound docs])
+- Update Climacell rate limit ([@raman325] - [#54373]) ([climacell docs])
+- Fix race condition in Advantage Air ([@Bre77] - [#53439]) ([advantage_air docs])
+
+[#53439]: https://github.com/home-assistant/core/pull/53439
+[#54049]: https://github.com/home-assistant/core/pull/54049
+[#54100]: https://github.com/home-assistant/core/pull/54100
+[#54261]: https://github.com/home-assistant/core/pull/54261
+[#54268]: https://github.com/home-assistant/core/pull/54268
+[#54285]: https://github.com/home-assistant/core/pull/54285
+[#54286]: https://github.com/home-assistant/core/pull/54286
+[#54288]: https://github.com/home-assistant/core/pull/54288
+[#54290]: https://github.com/home-assistant/core/pull/54290
+[#54294]: https://github.com/home-assistant/core/pull/54294
+[#54299]: https://github.com/home-assistant/core/pull/54299
+[#54303]: https://github.com/home-assistant/core/pull/54303
+[#54335]: https://github.com/home-assistant/core/pull/54335
+[#54342]: https://github.com/home-assistant/core/pull/54342
+[#54350]: https://github.com/home-assistant/core/pull/54350
+[#54353]: https://github.com/home-assistant/core/pull/54353
+[#54354]: https://github.com/home-assistant/core/pull/54354
+[#54356]: https://github.com/home-assistant/core/pull/54356
+[#54364]: https://github.com/home-assistant/core/pull/54364
+[#54365]: https://github.com/home-assistant/core/pull/54365
+[#54373]: https://github.com/home-assistant/core/pull/54373
+[@Bre77]: https://github.com/Bre77
+[@ZeGuigui]: https://github.com/ZeGuigui
+[@bachya]: https://github.com/bachya
+[@balloob]: https://github.com/balloob
+[@bdraco]: https://github.com/bdraco
+[@bramkragten]: https://github.com/bramkragten
+[@cdce8p]: https://github.com/cdce8p
+[@dailow]: https://github.com/dailow
+[@dgomes]: https://github.com/dgomes
+[@firstof9]: https://github.com/firstof9
+[@geuben]: https://github.com/geuben
+[@jbouwh]: https://github.com/jbouwh
+[@jjlawren]: https://github.com/jjlawren
+[@raman325]: https://github.com/raman325
+[@rikroe]: https://github.com/rikroe
+[@tkdrob]: https://github.com/tkdrob
+[advantage_air docs]: /integrations/advantage_air/
+[agent_dvr docs]: /integrations/agent_dvr/
+[alarmdecoder docs]: /integrations/alarmdecoder/
+[aqualogic docs]: /integrations/aqualogic/
+[atome docs]: /integrations/atome/
+[bluesound docs]: /integrations/bluesound/
+[bmw_connected_drive docs]: /integrations/bmw_connected_drive/
+[climacell docs]: /integrations/climacell/
+[cloud docs]: /integrations/cloud/
+[frontend docs]: /integrations/frontend/
+[http docs]: /integrations/http/
+[hunterdouglas_powerview docs]: /integrations/hunterdouglas_powerview/
+[integration docs]: /integrations/integration/
+[ondilo_ico docs]: /integrations/ondilo_ico/
+[simplisafe docs]: /integrations/simplisafe/
+[sonos docs]: /integrations/sonos/
+[xiaomi_miio docs]: /integrations/xiaomi_miio/
+[zeroconf docs]: /integrations/zeroconf/
+[zwave_js docs]: /integrations/zwave_js/
+
+## Release 2021.8.6 - August 10
+
+- Handle CO2Signal response value being None ([@balloob] - [#54377]) ([co2signal docs])
+- Fix Canary sensor state ([@ludeeus] - [#54380]) ([canary docs])
+- Re-add Tibber notify service name ([@Danielhiversen] - [#54401]) ([tibber docs])
+- Bump hass_nabucasa to 0.46.0 ([@balloob] - [#54421]) ([cloud docs])
+- Bump pyopenuv to 2.1.0 ([@bachya] - [#54436]) ([openuv docs])
+
+[#54377]: https://github.com/home-assistant/core/pull/54377
+[#54380]: https://github.com/home-assistant/core/pull/54380
+[#54401]: https://github.com/home-assistant/core/pull/54401
+[#54421]: https://github.com/home-assistant/core/pull/54421
+[#54436]: https://github.com/home-assistant/core/pull/54436
+[@Danielhiversen]: https://github.com/Danielhiversen
+[@bachya]: https://github.com/bachya
+[@balloob]: https://github.com/balloob
+[@ludeeus]: https://github.com/ludeeus
+[canary docs]: /integrations/canary/
+[cloud docs]: /integrations/cloud/
+[co2signal docs]: /integrations/co2signal/
+[openuv docs]: /integrations/openuv/
+[tibber docs]: /integrations/tibber/
+
+## Release 2021.8.7 - August 15
+
+- Use pycarwings2 2.11 ([@filcole] - [#54424]) ([nissan_leaf docs])
+- Fix Huawei LTE entity state updating ([@scop] - [#54447]) ([huawei_lte docs])
+- Strip attributes whitespace in universal media_player ([@0xFelix] - [#54451]) ([universal docs])
+- Bump notifications-android-tv to 0.1.3 ([@tkdrob] - [#54462]) ([nfandroidtv docs])
+- Updates to bump MyQ to 3.1.2 ([@ehendrix23] - [#54488]) ([myq docs])
+- Add missing PRESSURE_BAR conversion ([@Danielhiversen] - [#54497])
+- Treat temporary errors as warnings for Tesla ([@alandtse] - [#54515]) ([tesla docs])
+- Fix attributes not showing after using entity class attributes ([@gerard33] - [#54558]) ([bmw_connected_drive docs])
+- Upgrade qnapstats library to 0.4.0 ([@colinodell] - [#54571]) ([qnap docs])
+- Fix bug in ambiclimate ([@Danielhiversen] - [#54579]) ([ambiclimate docs])
+- Fix Tibber last reset ([@Danielhiversen] - [#54582]) ([tibber docs])
+- Adax, update requirements ([@Danielhiversen] - [#54587]) ([adax docs])
+- Clamp color temperature to supported range in ESPHome light ([@oxan] - [#54595]) ([esphome docs])
+- Bump zeroconf to 0.35.0 ([@bdraco] - [#54604]) ([zeroconf docs])
+- Bump py-synologydsm-api to 1.0.4 ([@mib1185] - [#54610]) ([synology_dsm docs])
+- Guard partial upgrade ([@balloob] - [#54617]) ([http docs])
+- Solve switch/verify register type convert problem in modbus ([@janiversen] - [#54645]) ([modbus docs])
+- Send color_brightness to ESPHome devices on 1.20 (pre-color_mode) ([@jesserockz] - [#54670]) ([esphome docs])
+
+[#54424]: https://github.com/home-assistant/core/pull/54424
+[#54447]: https://github.com/home-assistant/core/pull/54447
+[#54451]: https://github.com/home-assistant/core/pull/54451
+[#54462]: https://github.com/home-assistant/core/pull/54462
+[#54488]: https://github.com/home-assistant/core/pull/54488
+[#54497]: https://github.com/home-assistant/core/pull/54497
+[#54515]: https://github.com/home-assistant/core/pull/54515
+[#54558]: https://github.com/home-assistant/core/pull/54558
+[#54571]: https://github.com/home-assistant/core/pull/54571
+[#54579]: https://github.com/home-assistant/core/pull/54579
+[#54582]: https://github.com/home-assistant/core/pull/54582
+[#54587]: https://github.com/home-assistant/core/pull/54587
+[#54595]: https://github.com/home-assistant/core/pull/54595
+[#54604]: https://github.com/home-assistant/core/pull/54604
+[#54610]: https://github.com/home-assistant/core/pull/54610
+[#54617]: https://github.com/home-assistant/core/pull/54617
+[#54645]: https://github.com/home-assistant/core/pull/54645
+[#54670]: https://github.com/home-assistant/core/pull/54670
+[@0xFelix]: https://github.com/0xFelix
+[@Danielhiversen]: https://github.com/Danielhiversen
+[@alandtse]: https://github.com/alandtse
+[@balloob]: https://github.com/balloob
+[@bdraco]: https://github.com/bdraco
+[@colinodell]: https://github.com/colinodell
+[@ehendrix23]: https://github.com/ehendrix23
+[@filcole]: https://github.com/filcole
+[@gerard33]: https://github.com/gerard33
+[@janiversen]: https://github.com/janiversen
+[@jesserockz]: https://github.com/jesserockz
+[@mib1185]: https://github.com/mib1185
+[@oxan]: https://github.com/oxan
+[@scop]: https://github.com/scop
+[@tkdrob]: https://github.com/tkdrob
+[adax docs]: /integrations/adax/
+[ambiclimate docs]: /integrations/ambiclimate/
+[bmw_connected_drive docs]: /integrations/bmw_connected_drive/
+[esphome docs]: /integrations/esphome/
+[http docs]: /integrations/http/
+[huawei_lte docs]: /integrations/huawei_lte/
+[modbus docs]: /integrations/modbus/
+[myq docs]: /integrations/myq/
+[nfandroidtv docs]: /integrations/nfandroidtv/
+[nissan_leaf docs]: /integrations/nissan_leaf/
+[qnap docs]: /integrations/qnap/
+[synology_dsm docs]: /integrations/synology_dsm/
+[tesla docs]: /integrations/tesla/
+[tibber docs]: /integrations/tibber/
+[universal docs]: /integrations/universal/
+[zeroconf docs]: /integrations/zeroconf/
+
+## Release 2021.8.8 - August 18
+
+- Fix TPLink emeter reset not updating ([@TomBrien] - [#54848]) ([tplink docs])
+- Fix tplink doing I/O in event loop and optimize ([@rytilahti] - [#54570]) ([tplink docs])
+- Fix 'in' comparisons vesync light ([@cdce8p] - [#54614]) ([vesync docs])
+- Update PyMetEireann to 2021.8.0 ([@DylanGore] - [#54693]) ([met_eireann docs])
+- Fix BMW remote services in rest_of_world & north_america ([@rikroe] - [#54726]) ([bmw_connected_drive docs])
+- Fix HomeKit cover creation with tilt position, open/close, no set position ([@bdraco] - [#54727]) ([homekit docs])
+
+[#54570]: https://github.com/home-assistant/core/pull/54570
+[#54614]: https://github.com/home-assistant/core/pull/54614
+[#54693]: https://github.com/home-assistant/core/pull/54693
+[#54726]: https://github.com/home-assistant/core/pull/54726
+[#54727]: https://github.com/home-assistant/core/pull/54727
+[#54848]: https://github.com/home-assistant/core/pull/54848
+[@DylanGore]: https://github.com/DylanGore
+[@TomBrien]: https://github.com/TomBrien
+[@bdraco]: https://github.com/bdraco
+[@cdce8p]: https://github.com/cdce8p
+[@rikroe]: https://github.com/rikroe
+[@rytilahti]: https://github.com/rytilahti
+[bmw_connected_drive docs]: /integrations/bmw_connected_drive/
+[homekit docs]: /integrations/homekit/
+[met_eireann docs]: /integrations/met_eireann/
+[tplink docs]: /integrations/tplink/
+[vesync docs]: /integrations/vesync/
+
+## If you need help...
+
+...don't hesitate to use our very active [forums](https://community.home-assistant.io/) or join us for a little [chat](https://discord.gg/c5DvZ4e).
+
+Experiencing issues introduced by this release? Please report them in our [issue tracker](https://github.com/home-assistant/core/issues). Make sure to fill in all fields of the issue template.
+
+
+
+## Breaking Changes
+
+Below is a listing of the breaking change for this release, per subject or
+integration. Click on one of those to read more about the breaking change
+for that specific item.
+
+{% details "Abode" %}
+
+The previously deprecated YAML configuration of the Abode integration has been removed.
+
+Abode is now configured via the UI, any existing YAML configuration has been imported
+in previous releases and can now be safely removed from your YAML configuration files.
+
+([@frenck] - [#52357]) ([abode docs])
+
+{% enddetails %}
+
+{% details "AirVisual" %}
+
+The Air Quality platform has been marked as deprecated, therefore the
+`air_quality` entity has been removed and replaced with `sensor` entities.
+
+If you used the `air_quality` entity in your automations, scripts or Lovelace
+dashboards, you'll need to update your configuration to match this change.
+
+([@bachya] - [#52349]) ([airvisual docs])
+
+----
+
+States for the "Pollutant Level" and "Main Pollutant" entities have changed;
+automations that depended on the old states will need to be updated.
+
+Pollutant Level:
+
+- `Good -> good`
+- `Moderate -> moderate`
+- `Unhealthy -> unhealthy`
+- `Unhealthy for sensitive groups -> unhealthy_sensitive`
+- `Very unhealthy -> very_unhealthy`
+- `Hazardous -> hazardous`
+
+Pollutant Label:
+
+- `Carbon Monoxide -> co`
+- `Nitrogen Dioxide -> n2`
+- `Ozone -> o3`
+- `PM10 -> p1`
+- `PM2.5 -> p2`
+- `Sulfur Dioxide -> s2`
+
+([@bachya] - [#53133]) ([airvisual docs])
+
+{% enddetails %}
+
+{% details "Ambient Weather Station" %}
+
+The previously deprecated YAML configuration of the Ambient Weather Station integration has been removed.
+
+Ambient Weather Station is now configured via the UI, any existing YAML configuration has been imported
+in previous releases and can now be safely removed from your YAML configuration files.
+
+([@bachya] - [#52459]) ([ambient_station docs])
+
+{% enddetails %}
+
+{% details "AVM FRITZ!Box Net Monitor / AVM FRITZ!Box Tools" %}
+
+In order to optimize device load and avoid exhausting available connections,
+`fritz_netmonitor` has been merged into `fritz`.
+
+Please remove your YAML existing configuration and configure the new integration.
+
+([@chemelli74] - [#52264]) ([fritz docs])
+
+----
+
+The profile switches introduced in the previous release have been removed as
+they where incompatible with the Home Assistant architectural design rules.
+
+Instead, you can now block every device connected individually.
+
+([@AaronDavidSchneider] - [#52721]) ([fritz docs])
+
+{% enddetails %}
+
+{% details "AVM FRITZ!SmartHome" %}
+
+The power and energy attributes from switch entities have been removed and
+replaced by sensors.
+
+If you relied on these attributes in your automations, scripts or Lovelace
+dashboards, you'll need to update your configuration to match this change.
+
+([@mib1185] - [#52562]) ([fritzbox docs])
+
+{% enddetails %}
+
+{% details "Bosch BME280" %}
+
+The YAML configuration for this integration has changed. Instead of a sensor
+config with platform section, an integration configuration section under the
+integration domain key should be used.
+
+Before:
+
+```yaml
+sensor:
+ - platform: bme280
+ name: "Stary_Oskol"
+```
+
+After:
+
+```yaml
+bme280:
+ - name: "Stary_Oskol"
+```
+
+([@Kuzj] - [#48775]) ([bme280 docs])
+
+{% enddetails %}
+
+{% details "Broadlink" %}
+
+The power and energy attributes from switch entities have been removed and
+replaced by sensors.
+
+If you relied on these attributes in your automations, scripts or Lovelace
+dashboards, you'll need to update your configuration to match this change.
+
+([@Danielhiversen] - [#53342]) ([broadlink docs])
+
+{% enddetails %}
+
+{% details "Buienradar" %}
+
+The previously deprecated YAML configuration of the Buienradar integration has been removed.
+
+Buienradar is now configured via the UI, any existing YAML configuration has been imported
+in previous releases and can now be safely removed from your YAML configuration files.
+
+([@frenck] - [#52939]) ([buienradar docs])
+
+{% enddetails %}
+
+{% details "CO2 Signal" %}
+
+The CO2 Signal integration migrated to configuration via the UI. Configuring
+CO2 Signal via YAML configuration has been deprecated and will be removed in a
+future Home Assistant release.
+
+Your existing YAML configuration is automatically imported on upgrade to this release;
+and thus can be safely removed from your YAML configuration after upgrading.
+
+([@Danielhiversen] - [#53193]) ([co2signal docs])
+
+{% enddetails %}
+
+{% details "Demo" %}
+
+Demo switch entity no longer reports `current_power_w` and `today_energy_kwh` attributes.
+
+([@thecode] - [#52424]) ([demo docs])
+
+{% enddetails %}
+
+{% details "devolo Home Control" %}
+
+The consumptions attributes from the switch entities have been removed and
+replaced by sensors.
+
+If you relied on these attributes in your automations, scripts or Lovelace
+dashboards, you'll need to update your configuration to match this change.
+
+([@Shutgun] - [#53335]) ([devolo_home_control docs])
+
+{% enddetails %}
+
+{% details "GIOŚ" %}
+
+The Air Quality platform has been marked as deprecated, therefore the
+`air_quality` entity has been removed and replaced with `sensor` entities.
+
+If you used the `air_quality` entity in your automations, scripts or Lovelace
+dashboards, you'll need to update your configuration to match this change.
+
+([@bieniu] - [#52295]) ([gios docs])
+
+{% enddetails %}
+
+{% details "Google Assistant" %}
+
+Home Assistant will no longer expose the legacy fan speeds to Google Assistant.
+
+If you use fans with with Google Assistant, you'll need to resync your device.
+Ask you Google device to `Sync my device` or trigger an update via
+the `google_assistant.request_sync` service.
+
+([@elupus] - [#53105]) ([google_assistant docs])
+
+{% enddetails %}
+
+{% details "HomeKit" %}
+
+Previously the on/off switches provided to HomeKit by scripts, would enable or
+disable a script. This likely was not what is expected as
+`Hey Siri turn on "script"` would appear to do nothing.
+
+Pressing a script switch in HomeKit now runs the script instead.
+
+([@bdraco] - [#53106]) ([homekit docs])
+
+{% enddetails %}
+
+{% details "HomeKit Controller" %}
+
+HomeKit Controller was using the wrong ID to track some sensors.
+The following are affected:
+
+- Koogeek or Eve power sensors (added in [Jan 2021](https://github.com/home-assistant/core/pull/44013))
+- The temperature sensor added alongside homekit climate devices (added in [Jul 2021](https://github.com/home-assistant/core/pull/52194), the climate entity itself is not affected)
+
+If you have one of these you may need to remove a stale entity registry entry
+and you may need to fix the names of these entities as customizations may be lost.
+
+([@Jc2k] - [#53848]) ([homekit_controller docs])
+
+----
+
+If you have a power sensor for a Eve Energy or Koogeek P1EU/SW2, the units for
+that sensor has changed from `watts` to `W` to properly follow
+Home Assistant standards.
+
+([@Jc2k] - [#53877]) ([homekit_controller docs])
+
+{% enddetails %}
+
+{% details "Honeywell Total Connect Comfort (US)" %}
+
+The Honeywell integration migrated to configuration via the UI. Configuring
+Honeywell via YAML configuration has been deprecated and will be removed in a
+future Home Assistant release.
+
+Your existing YAML configuration is automatically imported on upgrade to this release;
+and thus can be safely removed from your YAML configuration after upgrading.
+
+([@rdfurman] - [#50731]) ([honeywell docs])
+
+{% enddetails %}
+
+{% details "Huawei LTE" %}
+
+Routers currently in unauthenticated mode need to be provided credentials for
+duration of one successful startup in order to retrieve a unique id from the API.
+Unauthenticated mode can then be enabled for subsequent starts in integration options.
+
+([@scop] - [#49878]) ([huawei_lte docs])
+
+{% enddetails %}
+
+{% details "Itho Daalderop Spider" %}
+
+The power and energy attributes from switch entities have been removed and
+replaced by sensors.
+
+If you relied on these attributes in your automations, scripts or Lovelace
+dashboards, you'll need to update your configuration to match this change.
+
+([@peternijssen] - [#53397]) ([spider docs])
+
+{% enddetails %}
+
+{% details "Jewish Calendar" %}
+
+The Jewish Calendar integration returned a datetime format that wasn't properly
+formatted according to ISO standards. This has been adjusted.
+
+If you rely on manually parsing of dates that are returned from this integration,
+you might need to adjust your templates to incorporate this change.
+
+([@frenck] - [#52722]) ([jewish_calendar docs])
+
+{% enddetails %}
+
+{% details "Lyft" %}
+
+The Lyft integration has been deprecated and is pending removal in
+Home Assistant Core 2021.10.0. It is considered impossible to obtain API keys
+to be able to use this integration.
+
+([@frenck] - [#53005]) ([lyft docs])
+
+{% enddetails %}
+
+{% details "Mill" %}
+
+The `consumption_today` and `consumption_total` from the climate entity have
+been removed and replace by sensors.
+
+If you relied on these attributes in your automations, scripts or Lovelace
+dashboards, you'll need to update your configuration to match this change.
+
+([@Danielhiversen] - [#52311]) ([mill docs])
+
+{% enddetails %}
+
+{% details "Modbus" %}
+
+All entities are set to unavailable during loading of modbus integration and
+remain so until data is received. Entities with `scan_interval` = 0
+(entities without polling) are always available, to allow service calls.
+
+The old configuration style with setting `scan_interval`: 9999 will cause the
+entity to be unavailable for 9999 seconds.
+
+([@janiversen] - [#53155]) ([modbus docs])
+
+{% enddetails %}
+
+{% details "MySensors" %}
+
+The power and energy attributes from switch entities have been removed.
+
+If you relied on these switch attributes in your automations, scripts or Lovelace
+dashboards, you'll need to update your configuration to match this change.
+
+This measurement (`S_POWER`, `V_WATT`) will still be reported as previously
+by the power sensor entity.
+
+([@MartinHjelmare] - [#53566]) ([mysensors docs])
+
+{% enddetails %}
+
+{% details "Prometheus" %}
+
+This includes a few changes to the names of the exported Prometheus metrics,
+which now better align with Prometheus [naming guidelines](https://github.com/home-assistant/core/tree/dev/homeassistant/components/prometheus#metric-naming-guidelines):
+
+- Default value for the `namespace` configuration variable is now `homeassistant`,
+ and all metric names now have a default `homeassistant_` prefix.
+- Some metrics have been renamed:
+ - `light_state` renamed to `light_brightness_percent`.
+ - `temperature_c` renamed to `climate_target_temperature_celsius`.
+ - `current_temperature_c` renamed to `climate_current_temperature_celsius`.
+ - Sensor metrics now have a `sensor_` name prefix.
+ - Temperature sensor metrics now have a `_celsius` unit suffix (as opposed to just `_c`).
+
+Note, that users that don't currently explicitly set the `namespace` variable
+will see names changed for all exported metrics. If keeping existing metric
+names is important to you, you can adjust your Home Assistant and Prometheus
+configuration as described below.
+
+To keep metrics exported without the `homeassistant_` prefix, explicitly set an
+empty namespace in Home Assistant configuration:
+
+```yaml
+prometheus:
+ namespace: ""
+```
+
+To revert the other metric name changes, you can use [metric_relabel_configs](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs)
+in your Prometheus configuration file to rename the metrics after scraping.
+[This set of relabeling rules](https://gist.github.com/knyar/c3a58f8be92a2b7afadba5c16bbfc28f)
+is a good starting point, but please note that if you set a non-empty `namespace`
+in Home Assistant you will need to adjust these rules accordingly.
+
+([@knyar] - [#50156]) ([prometheus docs])
+
+{% enddetails %}
+
+{% details "Rituals Perfume Genie" %}
+
+The previously deprecated fan speed and room size attributes have been removed.
+They have now have got their own entities.
+
+([@milanmeu] - [#53611]) ([rituals_perfume_genie docs])
+
+{% enddetails %}
+
+{% details "Synology DSM" %}
+
+The previously deprecated YAML configuration of the Synology DSM integration has been removed.
+
+Synology DSM is now configured via the UI, any existing YAML configuration has been imported
+in previous releases and can now be safely removed from your YAML configuration files.
+
+([@mib1185] - [#53197]) ([synology_dsm docs])
+
+{% enddetails %}
+
+{% details "Tibber" %}
+
+The previously deprecated YAML configuration of the Tibber integration has been removed.
+
+Tibber is now configured via the UI, any existing YAML configuration has been imported
+in previous releases and can now be safely removed from your YAML configuration files.
+
+([@Danielhiversen] - [#53235]) ([tibber docs])
+
+{% enddetails %}
+
+{% details "TP-Link Kasa Smart" %}
+
+The power and energy attributes from switch entities have been removed and
+replaced by sensors. This applies to all five extra attributes about energy
+(_`current_power_w`, `total_energy_kwh`, `today_energy_kwh`, `voltage`, `current_a`_).
+
+If you relied on these attributes in your automations, scripts or Lovelace
+dashboards, you'll need to update your configuration to match this change.
+
+([@mib1185] - [#53596]) ([tplink docs])
+
+{% enddetails %}
+
+{% details "VeSync" %}
+
+The previously deprecated YAML configuration of the VeSync integration has been removed.
+
+VeSync is now configured via the UI, any existing YAML configuration has been imported
+in previous releases and can now be safely removed from your YAML configuration files.
+
+([@frenck] - [#52358]) ([vesync docs])
+
+{% enddetails %}
+
+{% details "Viessmann ViCare" %}
+
+Viessmann introduced a new API to control their devices. The original
+(inofficial API) was shut down which rendered the Home Assistant integration
+useless. This breaking change restores the integrations functionality
+
+This involves adding a new `client_id` parameter. It must be set with an API
+key from the Viessmann developer portal.
+
+Please register and create your private API key.
+Follow these steps to create your API key:
+
+1. Register and login in the [Viessmann Developer Portal](https://developer.viessmann.com).
+2. In the menu navigate to API Keys.
+3. Create a new OAuth client using following data:
+
+ ```txt
+ Name: PyViCare
+ Google reCAPTCHA: Disabled
+ Redirect URIs: vicare://oauth-callback/everest
+ ```
+
+4. Copy the Client ID to the configuration, e.g. `client_id="XXXXXXXXXXXXXX"`
+
+ ```yaml
+ vicare:
+ username: VICARE_EMAIL
+ password: VICARE_PASSWORD
+ client_id: VICARE_CLIENT_ID
+ ```
+
+Please not that not all previous properties are available in the new API.
+Missing properties were removed and might be added later if they are
+available again.
+
+([@oischinger] - [#53281]) ([vicare docs])
+
+{% enddetails %}
+
+{% details "WLED" %}
+
+The `wled.preset` service has been deprecated. In the previous Home Assistant
+release, support for an `select` entity that provides access to presets
+has been added, use that entity in your automations and scripts instead.
+
+([@frenck] - [#53383]) ([wled docs])
+
+----
+
+The `playlist` attribute from the WLED light entities has been removed and
+replaced by a playlist `select` entity instead of the attribute.
+
+If you relied on the attribute in your automation or scripts, you need to
+adjust those to use the new entity instead.
+
+([@frenck] - [#53381]) ([wled docs])
+
+{% enddetails %}
+
+{% details "Xiaomi Miio" %}
+
+Existing Xiaomi Mi automations using the platform specific services for
+humidifiers will have a breaking change. You need to change their automation
+to use new services. Existing fan entities will be automatically replaced with
+new humidity entities.
+
+The entity name is migrated from the fan entity name. The fan entity_id will
+change because the platform will change.
+
+For the related entities the old fan entity name will be prepended to the new
+entities.
+
+Example:
+
+Entity with `entity_id` "fan.my_device" and `name` "My humidifier" will migrate
+to an entity with `entity_id` "humidifier.my_humidifier" and name "My humidifier".
+
+A sensor for `humidity` will have a name like "My humidifier Humidity".
+
+([@jbouwh] - [#52366]) ([xiaomi_miio docs])
+
+{% enddetails %}
+
+{% details "Yale Smart Living" %}
+
+The CYale Smart Living integration migrated to configuration via the UI. Configuring
+Yale Smart Living via YAML configuration has been deprecated and will be removed in a
+future Home Assistant release.
+
+Your existing YAML configuration is automatically imported on upgrade to this release;
+and thus can be safely removed from your YAML configuration after upgrading.
+
+([@gjohansson-ST] - [#50850]) ([yale_smart_alarm docs])
+
+{% enddetails %}
+
+{% details "Z-Wave JS" %}
+
+Z-Wave JS entities will now be in an `unavailable` state when the parent node
+is considered dead by Z-Wave JS. This may impact existing automations because
+Home Assistant will block service calls to unavailable entities.
+
+A node can potentially be revived by sending a ping to it, therefore you can
+use the new node status sensor (disabled by default) to track node status and
+use the `zwave_js.ping_node` service to try to revive the node.
+
+The node status sensor will always be available even when the node is dead.
+
+([@raman325] - [#48017]) ([zwave_js docs])
+
+{% enddetails %}
+
+## Farewell to the following
+
+The following integrations are no longer available as of this release:
+
+- **Weather Underground** has been unavailable and in a non-working state and
+ has therefore been removed. ([@frenck] - [#52999])
+- **Garmin Connect** has been removed. Due to API changes, it stopped working
+ and cannot function without violating Home Assistant design rules. Garmin
+ will not allow open source projects to their official APIs.
+ ([@cyberjunky] - [#52808]) ([garmin_connect docs])
+
+## All changes
+
+{% details "Click to see all changes!" %}
+
+- Bump version to 2021.8.0dev0 ([@frenck] - [#52346])
+- Use attrs instead of property for Jewish Calendar ([@yuvalabou] - [#52333]) ([jewish_calendar docs])
+- Remove deprecated YAML configuration from Abode ([@frenck] - [#52357]) ([abode docs]) (breaking-change)
+- Remove deprecated YAML configuration from VeSync ([@frenck] - [#52358]) ([vesync docs]) (breaking-change)
+- Remove redundant property definitions in Ambient PWS ([@bachya] - [#52350]) ([ambient_station docs])
+- Remove redundant property definitions in IQVIA ([@bachya] - [#52378]) ([iqvia docs])
+- Remove redundant property definitions in Flu Near You ([@bachya] - [#52377])
+- Add motion detection support to motionEye ([@dermotduffy] - [#49665]) ([motioneye docs])
+- Remove redundant property definitions in Notion ([@bachya] - [#52367]) ([notion docs])
+- Bump pyfritzhome to 6.2.0 ([@flabbamann] - [#52345]) ([fritzbox docs])
+- Demo: Explicitly return None when no extra state attribute set ([@frenck] - [#52390]) ([demo docs])
+- Add support for Formaldehyde and VOC level sensors ([@Adminiuga] - [#52232]) ([zha docs])
+- Allow combining value_template and position_template for template cover ([@emontnemery] - [#52383]) ([template docs])
+- Vacation Mode on Alarm Panels ([@posixx] - [#45980]) ([alarm_control_panel docs])
+- Use attributes instead of properties for uptime ([@yuvalabou] - [#52398]) ([uptime docs])
+- Remove redundant property definitions in Guardian ([@bachya] - [#52361]) ([guardian docs])
+- Remove redundant property definitions in OpenUV ([@bachya] - [#52379]) ([openuv docs])
+- Clean up netatmo sensor data processing ([@cgtobi] - [#52403]) ([netatmo docs])
+- Add rainbird set_rain_delay service ([@Kr0llx] - [#52369]) ([rainbird docs])
+- Remove boilerplate code in favour of attributes in Netatmo integration ([@cgtobi] - [#52395]) ([netatmo docs])
+- Enable basic type checking for Tasmota ([@emontnemery] - [#52435]) ([tasmota docs])
+- Add sensor platform to goalzero ([@tkdrob] - [#49835]) ([goalzero docs]) (new-platform)
+- Demo: remove deprecated switch entity properties ([@thecode] - [#52424]) ([demo docs]) (breaking-change)
+- Remove redundant property definitions in ReCollect Waste ([@bachya] - [#52368]) ([recollect_waste docs])
+- Add static typing to devolo_home_control ([@Shutgun] - [#52396]) ([devolo_home_control docs])
+- Replace custom listener with helper in ReCollect Waste ([@bachya] - [#52445]) ([recollect_waste docs])
+- Merge fritzbox_netmonitor integration into fritz ([@chemelli74] - [#52264]) ([fritz docs]) ([fritzbox_netmonitor docs]) (breaking-change)
+- Improve typing in Sony Bravia TV integration ([@bieniu] - [#52438]) ([braviatv docs])
+- Enable basic type checking for climate ([@emontnemery] - [#52470]) ([climate docs])
+- Enable basic type checking for gogogate2 ([@emontnemery] - [#52467]) ([gogogate2 docs])
+- Enable basic type checking for trace ([@emontnemery] - [#52468])
+- Replace custom listener with helper in SimpliSafe ([@bachya] - [#52457]) ([simplisafe docs])
+- Remove redundant property definitions in SimpliSafe ([@bachya] - [#52458]) ([simplisafe docs])
+- Remove redundant property definitions in RainMachine ([@bachya] - [#52456]) ([rainmachine docs])
+- Remove redundant property definitions in Tile ([@bachya] - [#52448]) ([tile docs])
+- Enable basic type checking for script ([@emontnemery] - [#52476])
+- Deprecate YAML config for Ambient PWs (2021.9.0 removal) ([@bachya] - [#52459]) ([ambient_station docs]) (breaking-change)
+- Mark entities for dead zwave_js nodes as unavailable ([@raman325] - [#48017]) ([zwave_js docs]) (breaking-change)
+- Update devolo-home-control-api ([@Shutgun] - [#52497]) ([devolo_home_control docs])
+- Add basic typing to ezviz camera platform ([@RenierM26] - [#52492]) ([ezviz docs])
+- Use entity class attributes for airnow ([@tkdrob] - [#52502]) ([airnow docs])
+- Migrate GIOS air_quality platform to sensor ([@bieniu] - [#52295]) ([gios docs]) (breaking-change) (new-platform)
+- Migrate AirVisual `air_quality` platform to `sensor` platform ([@bachya] - [#52349]) ([airvisual docs]) (breaking-change)
+- Use entity class attributes for ambiclimate ([@tkdrob] - [#52521]) ([ambiclimate docs])
+- Use entity class attributes for aemet ([@tkdrob] - [#52499]) ([aemet docs])
+- Use entity class attributes for alpha_vantage ([@tkdrob] - [#52520]) ([alpha_vantage docs])
+- Use entity class attributes for alert ([@tkdrob] - [#52518]) ([alert docs])
+- Add type checking and entity attributes for Fast.com ([@yuvalabou] - [#52524]) ([fastdotcom docs])
+- Enable basic typing for roku ([@ctalkington] - [#52478]) ([roku docs])
+- Use entity class attributes for abode ([@tkdrob] - [#52427]) ([abode docs])
+- Enable basic type checking for mqtt ([@emontnemery] - [#52463]) ([mqtt docs])
+- Use entity class attributes for aftership ([@tkdrob] - [#52500]) ([aftership docs])
+- Fix CI failing due to Shell Command exception ([@thecode] - [#52483]) ([shell_command docs])
+- Rename goalzero sensor ([@tkdrob] - [#52452]) ([goalzero docs])
+- Enable basic type checking for Google cast ([@emontnemery] - [#52434]) ([cast docs])
+- Enable basic type checking for the homeassistant component ([@emontnemery] - [#52464]) ([homeassistant docs])
+- Use entity class attributes for accuweather ([@tkdrob] - [#52431]) ([accuweather docs])
+- Add type annotations and shorten sensor names on ezviz sensor platforms ([@RenierM26] - [#52475]) ([ezviz docs])
+- Fully type Tag component ([@yuvalabou] - [#52540]) ([tag docs])
+- Use entity class attributes for ads ([@tkdrob] - [#52488]) ([ads docs])
+- Use dataclasses in netatmo data handler ([@cgtobi] - [#52537]) ([netatmo docs])
+- Disable flaky shell_command test ([@thecode] - [#52564]) ([shell_command docs])
+- Use entity class attributes for aladdin_connect ([@tkdrob] - [#52516]) ([aladdin_connect docs])
+- Add type hints to LCN ([@alengwenus] - [#52509]) ([lcn docs])
+- Bump gios to version 1.0.2 ([@bieniu] - [#52576]) ([gios docs])
+- Wheels v2021.07.0 ([@pvizeli] - [#52580])
+- Minor improvements of util.percentage typing ([@emontnemery] - [#52581])
+- Improve config entry title for GIOS integration ([@bieniu] - [#52583]) ([gios docs])
+- Minor improvements of MQTT typing ([@emontnemery] - [#52578]) ([mqtt docs]) ([mysensors docs])
+- Add type annotations to init and coordinator. Minor cleanups. ([@RenierM26] - [#52506]) ([ezviz docs])
+- Enable strict typing for Fritz ([@chemelli74] - [#50668]) ([fritz docs])
+- Clean up alarmdecoder ([@tkdrob] - [#52517]) ([alarmdecoder docs])
+- Bump hatasmota to 0.2.20 ([@emontnemery] - [#52591]) ([tasmota docs])
+- Add home-assistant/core as codeowner for the template integration ([@emontnemery] - [#52592]) ([template docs])
+- Use HA location name as `name` in GIOS integration ([@bieniu] - [#52585]) ([gios docs])
+- Upgrade numpy to 1.21.0 ([@frenck] - [#52586]) ([compensation docs]) ([iqvia docs]) ([opencv docs]) ([tensorflow docs]) ([trend docs])
+- Enable basic type checking for fan ([@emontnemery] - [#52471]) ([fan docs])
+- Remove unnecessary async_setup method for Guardian ([@bachya] - [#52597]) ([guardian docs])
+- Add type annotations to Ambient PWS ([@bachya] - [#52596]) ([ambient_station docs])
+- Python 3.9.6 / Base image 2021.07.0 ([@pvizeli] - [#52605])
+- Bump opencv to 4.5.2.54 ([@pvizeli] - [#52630]) ([opencv docs])
+- Fix Waze Travel Time tests ([@thecode] - [#52663]) ([waze_travel_time docs])
+- Refactor decompression timestamp validation logic in stream component ([@allenporter] - [#52462]) ([stream docs])
+- Add missing type annotations to Guardian ([@bachya] - [#52598]) ([guardian docs])
+- Add missing type annotations to Notion ([@bachya] - [#52599]) ([notion docs])
+- Add missing type annotations to ReCollect Waste ([@bachya] - [#52600]) ([recollect_waste docs])
+- Use entity class attributes for anel_pwrctrl ([@tkdrob] - [#52594]) ([anel_pwrctrl docs])
+- Use entity class attributes for avion ([@tkdrob] - [#52696]) ([avion docs])
+- Use entity class attributes for aurora_abb_power ([@tkdrob] - [#52692]) ([aurora_abb_powerone docs])
+- Use class properties in netatmo ([@cgtobi] - [#52705]) ([netatmo docs])
+- Use entity class attributes for Aten pe ([@tkdrob] - [#52687]) ([aten_pe docs])
+- Hint for str type instead of explicitly casting to str ([@alengwenus] - [#52712]) ([lcn docs])
+- Use entity class attributes for anthemav ([@tkdrob] - [#52602]) ([anthemav docs])
+- Use entity class attributes for apcupsd ([@tkdrob] - [#52662]) ([apcupsd docs])
+- Upgrade Fronius dependency to 0.5.3 ([@nielstron] - [#52737]) ([fronius docs])
+- Use entity class attributes for aurora ([@tkdrob] - [#52690]) ([aurora docs])
+- Add device info to Freedompro ([@stefano055415] - [#52715]) ([freedompro docs])
+- Add transition support to zwave_js lights ([@firstof9] - [#52160]) ([zwave_js docs])
+- Fix pylint issue with stream component c-extension ([@cdce8p] - [#52847]) ([stream docs])
+- Rename preview task to run ([@balloob] - [#52857])
+- Use entity class attributes for bbb_gpio ([@tkdrob] - [#52837]) ([bbb_gpio docs])
+- Use entity class attributes for bayesian ([@tkdrob] - [#52831]) ([bayesian docs])
+- Use entity class attributes for Beewi smartclim ([@tkdrob] - [#52839]) ([beewi_smartclim docs])
+- Use entity class attributes for azure_devops ([@tkdrob] - [#52698]) ([azure_devops docs])
+- Use entity class attributes for arlo ([@tkdrob] - [#52681]) ([arlo docs])
+- Add AllTrips sensors for BMW Connected Drive ([@EddyK69] - [#50420]) ([bmw_connected_drive docs])
+- Add siren platform ([@raman325] - [#48309]) ([demo docs]) ([siren docs]) (new-integration)
+- Add device classes to homematicip_cloud cover ([@LeszekSwirski] - [#52793]) ([homematicip_cloud docs])
+- Initial support for zwave_js device conditions ([@raman325] - [#52003]) ([zwave_js docs])
+- Implement stable unique id for Huawei LTE, requires credentials on setup ([@scop] - [#49878]) ([huawei_lte docs]) (breaking-change)
+- Add more data_types to modbus ([@janiversen] - [#52423]) ([modbus docs])
+- Fix Soundbar exclusion from SamsungTV ([@chemelli74] - [#51023]) ([samsungtv docs])
+- Use entity class attributes for Blinksticklight ([@tkdrob] - [#52892]) ([blinksticklight docs])
+- Use entity class attributes for Bh1750 ([@tkdrob] - [#52886]) ([bh1750 docs])
+- Import Protocol from typing ([@cdce8p] - [#52848])
+- Use entity class attributes for Bizkaibus ([@tkdrob] - [#52888]) ([bizkaibus docs])
+- Bump dessant/lock-threads from 2.0.3 to 2.1.1 (@dependabot - [#52899])
+- Use entity class attributes for Bitcoin ([@tkdrob] - [#52887]) ([bitcoin docs])
+- Improve testing of option flow in Coinbase ([@TomBrien] - [#52870]) ([coinbase docs])
+- Add some type hints for webhook component ([@cgtobi] - [#52895]) ([webhook docs])
+- Improve typing of Tasmota (2/3) ([@emontnemery] - [#52747]) ([tasmota docs])
+- Use entity class attributes for apple_tv ([@tkdrob] - [#52664]) ([apple_tv docs])
+- Set device_class on temperature sensors R-Z ([@emontnemery] - [#52920])
+- Improve typing of Tasmota (3/3) ([@emontnemery] - [#52748]) ([tasmota docs])
+- Upgrade sentry-sdk to 1.3.0 ([@frenck] - [#52926]) ([sentry docs])
+- Correct Wrong "raise" in modbus validators. ([@janiversen] - [#52924]) ([modbus docs])
+- Improve typing of Tasmota (1/3) ([@emontnemery] - [#52746]) ([mqtt docs]) ([tasmota docs])
+- Add array write to turn_on/off in modbus switch/fan/light ([@janiversen] - [#52582]) ([modbus docs])
+- Set device_class on temperature sensors F-K ([@emontnemery] - [#52918]) ([foobot docs]) ([fritzbox docs]) ([glances docs]) ([hddtemp docs]) ([ihc docs]) ([juicenet docs]) ([kaiterra docs])
+- Use properties instead of raw data in the rituals integration ([@milanmeu] - [#52587]) ([rituals_perfume_genie docs])
+- Set device_class on temperature sensors L-Q ([@emontnemery] - [#52919]) ([lacrosse docs]) ([luftdaten docs]) ([mfi docs]) ([mysensors docs]) ([notion docs]) ([openevse docs]) ([qnap docs])
+- Poll Nissan servers for battery updates ([@bwduncan] - [#44826]) ([nissan_leaf docs])
+- Set device_class on temperature sensors A-E ([@emontnemery] - [#49524])
+- Use entity class attributes for bbox ([@tkdrob] - [#52838]) ([bbox docs])
+- Use entity class attributes for Blockchain ([@tkdrob] - [#52894]) ([blockchain docs])
+- Use entity class attributes for Blebox ([@tkdrob] - [#52890]) ([blebox docs])
+- ESPHome enable static type checking ([@OttoWinter] - [#52348]) ([esphome docs])
+- Use entity class attributes for Plex ([@jjlawren] - [#52617]) ([plex docs])
+- String formatting cleanups ([@scop] - [#52937])
+- Use entity class attributes for aqualogic ([@tkdrob] - [#52668]) ([aqualogic docs])
+- Add schedule selector for Netatmo ([@cgtobi] - [#52909]) ([netatmo docs])
+- Fix siren turn on parameter filtering ([@raman325] - [#52947]) ([siren docs])
+- Handle FailedCommand exceptions in zwave_js WS API ([@raman325] - [#52461]) ([zwave_js docs])
+- Change behavior of Z-Wave JS services ([@raman325] - [#52941]) ([zwave_js docs])
+- Minor test coverage improvement of mfi and zwave sensors ([@emontnemery] - [#52935]) ([mfi docs]) ([zwave docs])
+- Add switch support to Freedompro ([@stefano055415] - [#52727]) ([freedompro docs]) (new-integration) (new-platform)
+- Expose async_get_source_ip in the network integration ([@bdraco] - [#52901]) ([network docs])
+- Switch to using entry.async_on_remove ([@raman325] - [#52952]) ([zwave_js docs])
+- Return empty when listing statistic_ids for unsupported statistic ([@emontnemery] - [#52954]) ([history docs]) ([recorder docs])
+- Fix modbus climate precision configuration variable ([@Kirchoff] - [#52651]) ([modbus docs])
+- Validate tone is valid when processing siren.turn_on service call ([@raman325] - [#52953]) ([demo docs]) ([siren docs])
+- Improve docstring for async_get_device_class_lookup ([@emontnemery] - [#52921])
+- Add generic hygrostat integration ([@Shulyaka] - [#36759]) ([generic_hygrostat docs]) (new-integration)
+- Add sensor support to Freedompro ([@stefano055415] - [#52726]) ([freedompro docs]) (new-integration) (new-platform)
+- Set device_class on additional temperature sensors ([@emontnemery] - [#52960]) ([dht docs]) ([ecobee docs]) ([htu21d docs]) ([mhz19 docs]) ([mysensors docs]) ([temper docs]) ([thermoworks_smoke docs]) ([waterfurnace docs])
+- Use entity class attributes for automation ([@tkdrob] - [#52694]) ([automation docs])
+- Add binary_sensor support to Freedompro ([@stefano055415] - [#52717]) ([freedompro docs]) (new-integration) (new-platform)
+- Fix flume converagerc ([@tkdrob] - [#52975])
+- Set device class for climacell temperature sensors ([@emontnemery] - [#52965]) ([climacell docs])
+- Additional fixes for siren platform ([@raman325] - [#52971]) ([siren docs])
+- Use entity class attributes for aquostv ([@tkdrob] - [#52670]) ([aquostv docs])
+- Use entity class attributes for Blackbird ([@tkdrob] - [#52889]) ([blackbird docs])
+- Add missing device classes for climacell sensors ([@raman325] - [#52979]) ([climacell docs])
+- Enable basic type checking for recorder ([@emontnemery] - [#52440]) ([recorder docs])
+- Use entity class attributes for august ([@tkdrob] - [#52744]) ([august docs])
+- Make zwave_js value updated event logic more performant ([@raman325] - [#52997]) ([zwave_js docs])
+- Remove flume for allowed ignore coverage violations ([@frenck] - [#53001])
+- Remove defunct Weather Underground integration ([@frenck] - [#52999]) ([wunderground docs]) (breaking-change)
+- Update homekit to use network integration ([@bdraco] - [#52946]) ([homekit docs]) ([network docs])
+- Include future statistics in history/list_statistic_ids ([@emontnemery] - [#52942]) ([history docs]) ([recorder docs]) ([sensor docs])
+- Deprecate Lyft integration ([@frenck] - [#53005]) ([lyft docs]) (breaking-change)
+- Update statistics meta data on entity_id change ([@emontnemery] - [#52755]) ([recorder docs])
+- Add support for Z-Wave JS siren ([@raman325] - [#52948]) ([zwave_js docs])
+- Add missing test coverage for sirens ([@raman325] - [#53014]) ([siren docs])
+- Add zwave_js device triggers ([@raman325] - [#51968]) ([zwave_js docs])
+- Pylint 2.9.3 ([@Danielhiversen] - [#52972])
+- Use entity class attributes for Co2signal ([@Danielhiversen] - [#53032]) ([co2signal docs])
+- Support user-defined base currency for Coinbase exchange rate sensors ([@TomBrien] - [#52879]) ([coinbase docs])
+- Remove deprecated YAML configuration from Buienradar ([@frenck] - [#52939]) ([buienradar docs]) (breaking-change)
+- Bump actions/stale from 3.0.19 to 4 (@dependabot - [#53042])
+- Clean up freedompro ([@tkdrob] - [#52992]) ([freedompro docs])
+- Add lock support Freedompro ([@stefano055415] - [#52725]) ([freedompro docs]) (new-integration) (new-platform)
+- Use entity class attributes for bme680 ([@tkdrob] - [#53037]) ([bme680 docs])
+- Use entity class attributes for arcam_fmj ([@tkdrob] - [#52675]) ([arcam_fmj docs])
+- Add MQTT humidifier platform integration ([@jbouwh] - [#52828]) ([humidifier docs]) ([mqtt docs]) (new-integration)
+- Use entity class attributes for Bmp280 ([@tkdrob] - [#53036]) ([bmp280 docs])
+- Handle missing peername ([@ludeeus] - [#53052]) ([hassio docs])
+- Use entity class attributes for agent_dvr ([@tkdrob] - [#52501]) ([agent_dvr docs])
+- Use entity class attributes for Bloomsky ([@tkdrob] - [#53030]) ([bloomsky docs])
+- Use entity class attributes for androidtv ([@tkdrob] - [#52531]) ([androidtv docs])
+- Generate const files for config flow scaffolds ([@balloob] - [#53064])
+- Fix google test coverage ([@tkdrob] - [#53060])
+- Use Utility Meter configured name as friendly name ([@rklomp] - [#53051]) ([utility_meter docs])
+- Rewrite mocking in devolo Home Control tests ([@Shutgun] - [#53011]) ([devolo_home_control docs])
+- Update name from "generic" to "generic camera" ([@hmmbob] - [#53080]) ([generic docs])
+- Add cover support to Freedompro ([@stefano055415] - [#52723]) ([freedompro docs]) (new-integration) (new-platform)
+- Revert "Fix google test coverage (#53060)" ([@tkdrob] - [#53085])
+- Replace fritz profile switches by per device parental control switches ([@AaronDavidSchneider] - [#52721]) ([fritz docs]) (breaking-change)
+- Add fan support to Freedompro ([@stefano055415] - [#52724]) ([freedompro docs]) (new-integration) (new-platform)
+- Add On/Off as target values for zwave_js cover stop action ([@p4p3r] - [#52881]) ([zwave_js docs])
+- Update Plugwise Config Flow ([@bouwew] - [#47563]) ([plugwise docs])
+- Fix units for Fritz network sensors ([@chemelli74] - [#53026]) ([fritz docs])
+- Use entity class attributes for Bond ([@tkdrob] - [#53055]) ([bond docs])
+- Log source of discovery in Sonos ([@jjlawren] - [#53101]) ([sonos docs])
+- Replace local Barrier CC constants with library enums ([@kpine] - [#53109]) ([zwave_js docs])
+- Bump library version for Advantage Air ([@Bre77] - [#52813]) ([advantage_air docs])
+- Add more Gree switches ([@cmroche] - [#49629]) ([gree docs])
+- Add new unit types for better type checking ([@cdce8p] - [#53124]) ([climate docs]) ([devolo_home_control docs]) ([esphome docs]) ([fritzbox docs]) ([lcn docs]) ([mysensors docs]) ([zwave_js docs])
+- Improve error message when HomeKit does not support an entity ([@bdraco] - [#53129]) ([homekit docs])
+- Bump greeclimate to 0.11.8 ([@cmroche] - [#53148]) ([gree docs])
+- Fix home_connect test coverage ([@tkdrob] - [#53086])
+- Fix home plus control coverage ([@tkdrob] - [#53087])
+- Use entity class attributes for bosch_shc ([@tkdrob] - [#53057]) ([bosch_shc docs])
+- Add support for tilt only covers to HomeKit ([@bdraco] - [#53130]) ([homekit docs])
+- Use entity class attributes for arwn ([@tkdrob] - [#52683]) ([arwn docs])
+- Use entity class attributes for Blink ([@tkdrob] - [#52891]) ([blink docs])
+- Use entity class attributes for blinkt ([@tkdrob] - [#52893]) ([blinkt docs])
+- Update pylutron-caseta to 0.11.0 ([@defunctzombie] - [#53160]) ([lutron_caseta docs])
+- Fix hisense_aehw4a1 test exclusion ([@tkdrob] - [#53084])
+- Add _attr_state_class ([@Bre77] - [#52815]) ([advantage_air docs])
+- Show the name of the domain in HomeKit when selecting to include ([@bdraco] - [#53169]) ([homekit docs])
+- Please mypy. ([@janiversen] - [#53142]) ([alarmdecoder docs])
+- Bump zeroconf to 0.33.0 ([@bdraco] - [#53174]) ([zeroconf docs])
+- Upgrade pyupgrade to 2.21.2, apply its changes ([@scop] - [#52987])
+- Bump google-nest-sdm to 0.3.0 ([@allenporter] - [#53172]) ([nest docs])
+- Add CO2 and efficiency sensors to Vallox ([@viiru-] - [#48923]) ([vallox docs])
+- Run pyupgrade on homekit config_flow ([@bdraco] - [#53180]) ([homekit docs])
+- Cleanup redundant coveragerc entries ([@tkdrob] - [#53171])
+- Execute scripts from HomeKit ([@bdraco] - [#53106]) ([homekit docs]) (breaking-change)
+- Bump zeroconf to 0.33.1 ([@bdraco] - [#53179]) ([zeroconf docs])
+- Activate mypy for eafm ([@janiversen] - [#53184])
+- Correct typing in control4 and activate mypy ([@janiversen] - [#53156]) ([control4 docs])
+- Add Switcher config flow discovery support ([@thecode] - [#52316]) ([switcher_kis docs])
+- Add sound pressure unit constants (dB + dBa) ([@cdce8p] - [#53159]) ([awair docs]) ([demo docs]) ([isy994 docs]) ([mysensors docs]) ([netatmo docs]) ([point docs])
+- Add pylint CodeStyle extension ([@cdce8p] - [#53147])
+- Bugfix current temperature in gree climate ([@cmroche] - [#53149]) ([gree docs])
+- Correct typing in azure_devops and activate mypy ([@janiversen] - [#53152]) ([azure_devops docs])
+- Use entity class attributes for avea ([@tkdrob] - [#52695]) ([avea docs])
+- Activate mypy in aurora ([@janiversen] - [#53150]) ([aurora docs])
+- Modify AirVisual states to be translatable ([@bachya] - [#53133]) ([airvisual docs]) (breaking-change)
+- Use entity class attributes for Citybikes ([@tkdrob] - [#53167]) ([citybikes docs])
+- Upgrade black to 21.7b0 ([@frenck] - [#53192])
+- Remove I/O in Plex tests ([@jjlawren] - [#53196]) ([plex docs])
+- Upgrade numpy to 1.21.1 ([@frenck] - [#53194]) ([compensation docs]) ([iqvia docs]) ([opencv docs]) ([tensorflow docs]) ([trend docs])
+- Upgrade holidays to 0.11.2 ([@frenck] - [#53191]) ([workday docs])
+- Correct typing in bsblan and activate mypy ([@janiversen] - [#53153]) ([bsblan docs])
+- Remove yaml support from Synology DSM ([@mib1185] - [#53197]) ([synology_dsm docs]) (breaking-change)
+- Use entity class attributes for bme280 ([@tkdrob] - [#53035]) ([bme280 docs])
+- Use entity class attributes for buienradar ([@tkdrob] - [#53166]) ([buienradar docs])
+- Add honeywell config flow ([@rdfurman] - [#50731]) ([honeywell docs]) (breaking-change)
+- Fix issues after pylint update ([@cdce8p] - [#53205]) ([xiaomi_miio docs])
+- Switch to dataclass from dictionary for climacell sensor definitions ([@raman325] - [#53168]) ([climacell docs])
+- Co2signal configflow ([@Danielhiversen] - [#53193]) ([co2signal docs]) (breaking-change)
+- Refactor KNX tests ([@farmio] - [#53183]) ([knx docs])
+- Small log addition for samsungtv ([@chemelli74] - [#53206]) ([samsungtv docs])
+- Remove duplicate functions in modbus climate/sensor. ([@janiversen] - [#53141]) ([modbus docs])
+- Upgrade modbus to quality level "silver". ([@janiversen] - [#53186]) ([modbus docs])
+- mypy cleanup for homeassistant.components.nest ([@allenporter] - [#53214]) ([nest docs])
+- Increase interval to stop Connection reset by peer ([@aav7fl] - [#53202]) ([mutesync docs])
+- Mark ZHA Light methods as a callbacks ([@Adminiuga] - [#53170]) ([zha docs])
+- Bump codecov/codecov-action from 1.5.2 to 2.0.1 (@dependabot - [#53216])
+- Correct typing and activate mypy. ([@janiversen] - [#53217]) ([huisbaasje docs])
+- Add support for options in zwave_js.set_value service ([@raman325] - [#53212]) ([zwave_js docs])
+- Use entity class attributes for acer_projector ([@tkdrob] - [#52432]) ([acer_projector docs])
+- Update python-typing-update to v0.3.5 ([@cdce8p] - [#53223])
+- Use entity class attributes for Brottsplatskartan ([@tkdrob] - [#53163]) ([brottsplatskartan docs])
+- Tibber, accumulated reward ([@Danielhiversen] - [#53195]) ([tibber docs])
+- Review comments on earlier merge. ([@janiversen] - [#53221]) ([azure_devops docs]) ([insteon docs])
+- Add unique ID support to light, cover and media player groups ([@frenck] - [#53225]) ([group docs])
+- Revert new unit types ([@cdce8p] - [#53226])
+- Use entity class attributes for Brunt ([@tkdrob] - [#53164]) ([brunt docs])
+- Add new electrical unit constants (mV + mA) ([@cdce8p] - [#53158])
+- Correct typing in Insteon and activate mypy ([@janiversen] - [#53222]) ([insteon docs])
+- Address style issues in nest typing ([@allenporter] - [#53236]) ([nest docs])
+- Address late review of Co2 signal ([@Danielhiversen] - [#53232]) ([co2signal docs])
+- Tibber use dataclass ([@Danielhiversen] - [#53233]) ([tibber docs])
+- Update lock entity to support locking, unlocking, jammed ([@bdraco] - [#51455]) ([lock docs])
+- Add typing in dynalite and activate mypy ([@janiversen] - [#53238]) ([dynalite docs])
+- Add friendly name to Fritz profile switches ([@chemelli74] - [#53190]) ([fritz docs])
+- Add last reset and state class to rainforest eagle ([@balloob] - [#52951]) ([rainforest_eagle docs])
+- Address late review of Ambiclimate, code clean up ([@Danielhiversen] - [#53231]) ([ambiclimate docs])
+- Fix typing for climacell dataclass ([@raman325] - [#53240]) ([climacell docs])
+- Rename and reorganize electric unit constants ([@cdce8p] - [#53243]) (breaking-change)
+- Tibber, remove yaml support ([@Danielhiversen] - [#53235]) ([tibber docs]) (breaking-change)
+- Use unit constants ([@cdce8p] - [#53244]) ([fritz docs]) ([powerwall docs])
+- Melcloud use NamedTuple ([@Danielhiversen] - [#53234]) ([melcloud docs])
+- Correct set_temperature in modbus climate ([@janiversen] - [#52923]) ([modbus docs])
+- Cleanup regroup handling in Sonos ([@jjlawren] - [#53241]) ([sonos docs])
+- Fix alert infinite loop on repeat interval of 0 ([@PeteRager] - [#52628]) ([alert docs])
+- Update requirement of homematicip_cloud component to v1.0.1 ([@web-dc] - [#51407]) ([homematicip_cloud docs])
+- Fix modbus setting string as temperature in climate platform ([@frenck] - [#53249]) ([modbus docs])
+- Add extra state attributes to goalzero ([@tkdrob] - [#52932]) ([goalzero docs])
+- Update BlinkStick to 1.2.0 ([@jtitley] - [#52244]) ([blinksticklight docs])
+- Type _attr_extra_state_attributes as a MutableMapping ([@bachya] - [#52616])
+- Advantage Air add zone temperature sensors ([@Bre77] - [#51941]) ([advantage_air docs])
+- Avoid supplemental discovery of ignored upnp entry ([@StevenLooman] - [#53250]) ([upnp docs])
+- Bump pylitterbot to 2021.7.2 ([@natekspencer] - [#53254]) ([litterrobot docs])
+- Ensure Ambient PWS is strictly typed ([@bachya] - [#53251])
+- Correct typing in edl21 and activate mypy. ([@janiversen] - [#53188]) ([edl21 docs])
+- Update alexa lock to support locking, unlocking, jammed ([@bdraco] - [#52841]) ([alexa docs])
+- Recreate HomeKit accessories when calling the reset_accessory service ([@bdraco] - [#53199]) ([homekit docs])
+- Auto recreate HomeKit TVs when the sources are out of sync ([@bdraco] - [#53208]) ([homekit docs])
+- Bump httpx to 0.18.2 ([@bdraco] - [#53257])
+- Update august to support locking, unlocking, jammed ([@bdraco] - [#52814]) ([august docs])
+- Update google assistant locks to support locking, unlocking, jammed ([@bdraco] - [#52820]) ([google_assistant docs])
+- Update template lock to support locking, unlocking, jammed ([@bdraco] - [#52817]) ([template docs])
+- Update homekit controller lock to support locking, unlocking, jammed ([@bdraco] - [#52821]) ([homekit_controller docs])
+- Update homekit lock to support locking, unlocking, jammed ([@bdraco] - [#52819]) ([homekit docs])
+- Drop support for fan speeds and support reverse ([@elupus] - [#53105]) ([google_assistant docs]) (breaking-change)
+- Make additional input for zwave_js device triggers optional ([@raman325] - [#53134]) ([zwave_js docs])
+- Convert Mill consumption attributes to sensors ([@Danielhiversen] - [#52311]) ([mill docs]) (breaking-change) (new-platform)
+- Set modbus entity to non-available unless scan_interval=0 ([@janiversen] - [#53155]) ([modbus docs]) (breaking-change)
+- Calculate count automatically in modbus platforms ([@janiversen] - [#53116]) ([modbus docs])
+- Netatmo, use nameclass ([@Danielhiversen] - [#53247]) ([netatmo docs])
+- Code quality improvements for goalzero ([@tkdrob] - [#53260]) ([goalzero docs])
+- Fix lint on dev ([@balloob] - [#53265]) ([mill docs])
+- Tibber, use nameclass ([@Danielhiversen] - [#53242]) ([tibber docs])
+- Fix MQTT to allow setting an unknown Select state ([@frenck] - [#53227]) ([mqtt docs])
+- Allow for alternative external Growatt servers ([@muppet3000] - [#53102]) ([growatt_server docs])
+- Adax heaters ([@Danielhiversen] - [#50998]) ([adax docs]) (new-integration)
+- Use entity class attributes for arduino ([@tkdrob] - [#52677]) ([arduino docs])
+- Use entity class attributes for atag ([@tkdrob] - [#52686]) ([atag docs])
+- Add config flow to nfandroidtv ([@tkdrob] - [#51280]) ([nfandroidtv docs])
+- Use entity class attributes for airvisual ([@tkdrob] - [#52503]) ([airvisual docs])
+- Use entity class attributes for Bmw connected drive ([@tkdrob] - [#53054]) ([bmw_connected_drive docs])
+- Use entity class attributes for arest ([@tkdrob] - [#52678]) ([arest docs])
+- Use entity class attributes for Broadlink ([@tkdrob] - [#53058]) ([broadlink docs])
+- Add reauth flow to Synology DSM ([@mib1185] - [#53204]) ([synology_dsm docs])
+- Improve typing in Shelly integration ([@bieniu] - [#52544]) ([shelly docs])
+- Fix incorrect unit ([@cdce8p] - [#53274]) ([fritz docs])
+- Fix similar network names for Fritz ([@chemelli74] - [#53278]) ([fritz docs])
+- Use entity class attributes for Bsblan ([@tkdrob] - [#53165]) ([bsblan docs])
+- Convert skybell to use NamedTuple ([@janiversen] - [#53269]) ([skybell docs])
+- Convert ebox to use NamedTuple ([@janiversen] - [#53272]) ([ebox docs])
+- Add new unit constants ([@cdce8p] - [#53258]) ([ambient_station docs]) ([arwn docs]) ([huawei_lte docs])
+- Refactor goalzero ([@tkdrob] - [#53282]) ([goalzero docs])
+- Flipr integration ([@cnico] - [#46582]) ([flipr docs]) (new-integration)
+- Add missing type annotations to Airvisual ([@bachya] - [#52615]) ([airvisual docs])
+- Add refresh after turning switch on or off and type annotations to ezviz ([@RenierM26] - [#52469]) ([ezviz docs])
+- Upgrade PyNaCl to 1.4.0 ([@frenck] - [#53287]) ([mobile_app docs]) ([owntracks docs])
+- Use None instead of STATE_UNKNOWN in template lock ([@bdraco] - [#53286]) ([template docs])
+- Add type annotations for Netatmo ([@cgtobi] - [#52811]) ([netatmo docs])
+- Add WS API to access solar forecast data ([@balloob] - [#53264]) ([forecast_solar docs])
+- Test KNX switch ([@farmio] - [#53289]) ([knx docs])
+- Migrate forecast solar to v2 ([@balloob] - [#53259]) ([forecast_solar docs])
+- Avoid dataclass incompat with mock spec ([@balloob] - [#53298]) ([forecast_solar docs])
+- Use NamedTuple - nws ([@cdce8p] - [#53293]) ([nws docs])
+- Use NamedTuple - metoffice ([@cdce8p] - [#53294]) ([metoffice docs])
+- Use NamedTuple - glances ([@cdce8p] - [#53297]) ([glances docs])
+- Use NamedTuple - ondilo_ico ([@cdce8p] - [#53296]) ([ondilo_ico docs])
+- Use NamedTuple - epsonworkforce ([@cdce8p] - [#53295]) ([epsonworkforce docs])
+- Ensure Guardian is strictly typed ([@bachya] - [#53253]) ([guardian docs])
+- Bump zwave-js-server-python to 0.28.0 ([@raman325] - [#53302]) ([zwave_js docs])
+- Block title in strings.json unless internal or allowed ([@balloob] - [#53304])
+- Add support for updating the ISY ip address from discovery ([@bdraco] - [#53290]) ([isy994 docs])
+- Use entity class attributes for Bluesound ([@tkdrob] - [#53033]) ([bluesound docs])
+- Disable speeds for first gen Xiaomi_miio air purifiers ([@jbouwh] - [#52772]) ([xiaomi_miio docs])
+- Use NamedTuple - brother ([@cdce8p] - [#53330]) ([brother docs])
+- Speedtestdotnet code cleanup and type hints ([@engrbm87] - [#52533]) ([speedtestdotnet docs])
+- Use NamedTuple - rova ([@cdce8p] - [#53292]) ([rova docs])
+- Add a homekit.unpair service to forcefully remove pairings ([@bdraco] - [#53303]) ([homekit docs])
+- Remove energy attributes from switch platform in devolo Home Control ([@Shutgun] - [#53335]) ([devolo_home_control docs]) (breaking-change)
+- Switch wirelesstag to use cloud push ([@sergeymaysak] - [#50984]) ([wirelesstag docs])
+- Add Automate Pulse Hub v2 support ([@sillyfrog] - [#39501]) ([automate docs]) (new-integration)
+- Use entity class attributes for caldav ([@tkdrob] - [#53332]) ([caldav docs])
+- Use NamedTuple - rainbird ([@cdce8p] - [#53329]) ([rainbird docs])
+- Upgrade wled to 0.7.3 ([@frenck] - [#53340]) ([wled docs])
+- Fritzbox enable temp sensor ([@mib1185] - [#52558]) ([fritzbox docs])
+- Add state class and last reset to consumption sensor in devolo Home Control ([@Shutgun] - [#53337]) ([devolo_home_control docs])
+- Fix for issue #53031 ([@MrHarcombe] - [#53343]) ([metoffice docs])
+- Making Pytest default for VS code ([@chemelli74] - [#53203])
+- Handle more Sonos snapshot restore scenarios ([@jjlawren] - [#53277]) ([sonos docs]) (breaking-change)
+- Bump aionotion to 3.0.2 ([@bachya] - [#53354]) ([notion docs])
+- Create APIs for Insteon panel ([@teharris1] - [#49785]) ([insteon docs]) (new-integration)
+- Replace util.get_local_ip in favor of components.network.async_get_source_ip() - part 1 ([@chemelli74] - [#52980]) (breaking-change)
+- Do not automatically add title to strings.json ([@balloob] - [#53350])
+- Update to PyVicare 1.0 ([@oischinger] - [#53281]) ([vicare docs]) (breaking-change)
+- Use entity class attributes for canary ([@tkdrob] - [#53333]) ([canary docs])
+- Store JSON in database in compact format ([@frenck] - [#53364]) ([recorder docs])
+- Bump HAP-python to 3.5.2 ([@bdraco] - [#53362]) ([homekit docs])
+- Move Sonos to upstream SoCo ([@amelchio] - [#53351]) ([sonos docs])
+- Use entity class attributes for Cert expiry ([@tkdrob] - [#53363]) ([cert_expiry docs])
+- Add motionEye switches ([@dermotduffy] - [#52491]) ([motioneye docs]) (new-platform)
+- Move Fritzbox power, energy and temperature switch attributes to sensors ([@mib1185] - [#52562]) ([fritzbox docs]) (breaking-change)
+- Upgrade wled to 0.8.0 ([@frenck] - [#53376]) ([wled docs])
+- Send initial status in zwave_js WS API cmds to subscribe to updates ([@raman325] - [#53386]) ([zwave_js docs])
+- Add new input to zwave_js.multicast_set_value service ([@raman325] - [#53369]) ([zwave_js docs])
+- Support group events for AC switches and binary sensors. Fixes #53065. ([@bnordli] - [#53384]) ([rfxtrx docs])
+- Upgrade debugpy to 1.4.0 ([@frenck] - [#53284]) ([debugpy docs])
+- Add support for power data from Koogeek SW2 via homekit_controller ([@Jc2k] - [#53378]) ([homekit_controller docs])
+- Enforce strict typing for Notion ([@bachya] - [#53355]) ([notion docs])
+- Convert CO2Signal to data update coordinator and add fossil fuel percentage ([@balloob] - [#53370]) ([co2signal docs])
+- Use class attributes in devolo Home Control ([@Shutgun] - [#53360]) ([devolo_home_control docs])
+- Handle homekit accessories where the pairing flag is wrong ([@Jc2k] - [#53385]) ([homekit_controller docs])
+- Use entity class attributes for asuswrt ([@tkdrob] - [#52685]) ([asuswrt docs])
+- Fix motionEye switch refresh bug ([@dermotduffy] - [#53413]) ([motioneye docs])
+- Add missing string interpolation ([@samueltardieu] - [#53422]) ([zha docs])
+- Add transition to LiteJet ([@joncar] - [#47657])
+- Use entity class attributes for advantage_air ([@tkdrob] - [#52498]) ([advantage_air docs])
+- Test KNX services ([@farmio] - [#53367]) ([knx docs])
+- Ensure PyPI packages can still be installed on high latency connections ([@bdraco] - [#53365])
+- Update Plugwise config_flow once more ([@bouwew] - [#53423]) ([plugwise docs])
+- Bump to py-synologydsm-api 1.0.3 ([@mib1185] - [#53402]) ([synology_dsm docs])
+- Enforce strict typing for OpenUV ([@bachya] - [#53409]) ([openuv docs])
+- Test KNX select ([@farmio] - [#53371]) ([knx docs])
+- Upgrade open-garage to 0.1.5 ([@davidjb] - [#53412]) ([opengarage docs])
+- Add support for Velux light devices ([@bramstroker] - [#49338]) ([velux docs]) (new-platform)
+- Ensure HomeKit accessories are started again after reset ([@bdraco] - [#53372]) ([homekit docs])
+- Add yale_smart_alarm config flow and coordinator ([@gjohansson-ST] - [#50850]) ([yale_smart_alarm docs]) (breaking-change)
+- Bump yalesmartalarmclient to 0.3.4 ([@gjohansson-ST] - [#53431]) ([yale_smart_alarm docs])
+- Add myself to webOS TV codeowners ([@thecode] - [#53428]) ([webostv docs])
+- Use entity class attributes for climacell ([@tkdrob] - [#53444]) ([climacell docs])
+- Fix System Bridge unique key for filesystem sensors ([@timmo001] - [#53446]) ([system_bridge docs])
+- Address late review of Adax ([@Danielhiversen] - [#53456]) ([adax docs])
+- Fix wan/device uptime and add state_class to counters for Fritz ([@chemelli74] - [#52574]) ([fritz docs])
+- Pass clientsession. ([@dermotduffy] - [#53455]) ([motioneye docs])
+- Bump aioambient to 1.2.4 ([@timmo001] - [#53467]) ([ambient_station docs])
+- Bugfix package 0.3.4 ([@gjohansson-ST] - [#53470]) ([yale_smart_alarm docs])
+- Codereview fixes. ([@dermotduffy] - [#53452]) ([motioneye docs])
+- Feature/google calendar read only support ([@BottlecapDave] - [#52790]) ([google docs])
+- Late review comment in edl21 ([@janiversen] - [#53464]) ([edl21 docs])
+- Bump up ZHA dependencies ([@Adminiuga] - [#53472]) ([zha docs])
+- Fix flakey august pubnub test ([@bdraco] - [#53474]) ([august docs])
+- Reduce repetitive noise in Sonos debug logs ([@jjlawren] - [#53352]) ([sonos docs])
+- Bump codecov/codecov-action from 2.0.1 to 2.0.2 (@dependabot - [#53487])
+- Allow zeroconf name change if there is another Home Assistant running on the local network ([@bdraco] - [#53476]) ([zeroconf docs])
+- Deprecate wled.preset service ([@frenck] - [#53383]) ([wled docs]) (breaking-change)
+- Add WLED playlist support ([@frenck] - [#53381]) ([wled docs]) (breaking-change)
+- Add state class measurement to sensors where suitable for Synology DSM ([@mib1185] - [#53468]) ([synology_dsm docs])
+- Update pyupgrade to v2.23.0 ([@cdce8p] - [#53495])
+- Reduce min scan interval to 10s for InfluxDB ([@broadcasttechie] - [#53276]) ([influxdb docs])
+- Address late review of homekit_controller ([@Jc2k] - [#53492]) ([homekit_controller docs])
+- Update pylint to 2.9.5 ([@cdce8p] - [#53496])
+- Add MAC to SamsungTV when missing ([@chemelli74] - [#53479]) ([samsungtv docs])
+- Increase pool max size for urllib3 in Fritz integration ([@chemelli74] - [#53461]) ([fritz docs])
+- Broadlink, remove attr_current_power_w and add sensor ([@Danielhiversen] - [#53342]) ([broadlink docs]) (breaking-change)
+- Support controlling Flowerbud spray level via homekit_controller ([@Jc2k] - [#53493]) ([homekit_controller docs])
+- Support energy/power sensors in the WeMo component ([@esev] - [#53419]) ([wemo docs]) (new-platform)
+- Add zwave_js WS API commands to get statistics ([@raman325] - [#53393]) ([zwave_js docs])
+- Add energy integration ([@bramkragten] - [#52001]) ([default_config docs]) ([energy docs]) ([history docs]) ([websocket_api docs]) (new-integration)
+- Mark energy integration as internal ([@frenck] - [#53513]) ([energy docs])
+- Add country code to co2signal state attributes ([@balloob] - [#53512]) ([co2signal docs])
+- Bump motioneye-client version to v0.3.11 ([@dermotduffy] - [#53504]) ([motioneye docs])
+- Musiccast grouping fixes ([@micha91] - [#52339]) ([yamaha_musiccast docs])
+- Rename Prometheus metrics to conform with naming guidelines ([@knyar] - [#50156]) ([prometheus docs]) (breaking-change)
+- Change integration modbus to use _attr variables ([@janiversen] - [#53511]) ([modbus docs])
+- Use entity class attributes for cloud ([@tkdrob] - [#53445]) ([cloud docs])
+- Add crossfade control support to Sonos ([@jjlawren] - [#53228]) ([sonos docs])
+- Add SensorEntityDescription class ([@frenck] - [#53357]) ([ambee docs]) ([sensor docs])
+- Make sure that vocolinc flowerbud humidity sensor is exposed (via homekit_controller) ([@Jc2k] - [#53518]) ([homekit_controller docs])
+- xknx 0.18.9 ([@farmio] - [#53519]) ([knx docs])
+- Fix typo in codeowners ([@oxan] - [#53520]) ([coronavirus docs]) ([energy docs])
+- Update frontend to 20210726.0 ([@bramkragten] - [#53522]) ([frontend docs])
+- Add description classes to entity components ([@frenck] - [#53521])
+- Address late review comments on Netatmo ([@cgtobi] - [#53524]) ([netatmo docs])
+- Fix Rituals Perfume Genie sensors icons ([@milanmeu] - [#53517]) ([rituals_perfume_genie docs])
+- Upgrade pyrituals to 0.0.6 ([@milanmeu] - [#53527]) ([rituals_perfume_genie docs])
+- Adjust typing of _attr_extra_state_attributes ([@frenck] - [#53529]) ([airvisual docs]) ([guardian docs]) ([netatmo docs]) ([openuv docs]) ([sia docs])
+- Increase static type coverage for nest integration ([@allenporter] - [#53475]) ([nest docs])
+- Use EntityDescription - nws ([@cdce8p] - [#53523]) ([nws docs])
+- Add MFA Capability to Tesla Integration ([@BreakingBread0] - [#53245]) ([tesla docs])
+- Ensure Jewish Calendar returns an iso formatted timestamp ([@frenck] - [#52722]) ([jewish_calendar docs]) (breaking-change)
+- Clean wemo sensor attributes ([@esev] - [#53532]) ([wemo docs])
+- Update nexia to 0.9.11 ([@mdz] - [#53534]) ([nexia docs])
+- Enforce strict typing for Flu Near You ([@bachya] - [#53407]) ([flunearyou docs])
+- Enforce strict typing for RainMachine ([@bachya] - [#53414]) ([rainmachine docs])
+- Add select entities to ESPHome ([@jesserockz] - [#53526]) ([esphome docs])
+- Enable strict typing for Rituals Perfume Genie ([@milanmeu] - [#53543]) ([rituals_perfume_genie docs])
+- Enforce strict typing for Tile ([@bachya] - [#53410]) ([tile docs])
+- Use SensorEntityDescription for wemo ([@esev] - [#53537]) ([wemo docs])
+- Use SensorEntityDescription in Airly integration ([@bieniu] - [#53540]) ([airly docs])
+- Use SensorEntityDescription in Nettigo Air Monitor ([@bieniu] - [#53539]) ([nam docs])
+- Replace HomeAssistantType with HomeAssistant ([@milanmeu] - [#53545]) ([hyperion docs]) ([lcn docs]) ([meteoclimatic docs]) ([modern_forms docs]) ([philips_js docs]) ([siren docs]) ([yamaha_musiccast docs])
+- Remove incorrect use of ConfigType in config flows ([@milanmeu] - [#53544])
+- UniFi lies about the client being noted, using the real note instead if it exists ([@Kane610] - [#53542]) ([unifi docs])
+- Update spider integration to support HEM ([@peternijssen] - [#53397]) ([spider docs]) (breaking-change) (new-platform)
+- Replace ServiceCallType with ServiceCall in lcn services ([@milanmeu] - [#53547]) ([lcn docs])
+- Use entity descriptions classes in DSMR ([@frenck] - [#53549]) ([dsmr docs])
+- Upgrade Rituals Perfume Genie to quality level "silver" ([@milanmeu] - [#53550]) ([rituals_perfume_genie docs])
+- Use EntityDescription - metoffice ([@cdce8p] - [#53555]) ([metoffice docs])
+- Ignore Sonos Boost devices during discovery v2 ([@jjlawren] - [#53358]) ([sonos docs])
+- Use EntityDescription - glances ([@cdce8p] - [#53559]) ([glances docs])
+- Use SensorEntityDescription in Brother integration ([@bieniu] - [#53558]) ([brother docs])
+- Add initial version for the YouLess integration ([@gjong] - [#41942]) ([youless docs]) (new-integration)
+- Use EntityDescription - epsonworkforce ([@cdce8p] - [#53556]) ([epsonworkforce docs])
+- Use entity descriptions classes in Forecast.Solar ([@frenck] - [#53553]) ([forecast_solar docs])
+- Refactor the logic for peeking into the start of the stream ([@allenporter] - [#52699]) ([stream docs])
+- Use EntityDescription - rainbird ([@cdce8p] - [#53560]) ([rainbird docs])
+- Bump matrix-client to 0.4.0 ([@johansmitsnl] - [#53508]) ([matrix docs])
+- Use EntityDescription - ebox ([@cdce8p] - [#53565]) ([ebox docs])
+- Split color temp and color into separate HomeKit services when a light supports both ([@bdraco] - [#53471]) ([homekit docs])
+- Bump `gios` library to version 2.0 ([@bieniu] - [#53557]) ([gios docs])
+- Use EntityDescription - rova ([@cdce8p] - [#53531]) ([rova docs])
+- Fix various zeroconf IPv6 compatibility issues ([@vfreex] - [#53505]) ([network docs]) ([zeroconf docs])
+- KNX: Support for HS-color lights ([@farmio] - [#53538]) ([knx docs])
+- Add more mysensors sensor attributes ([@MartinHjelmare] - [#53566]) ([mysensors docs]) (breaking-change)
+- Use EntityDescription - skybell ([@cdce8p] - [#53564]) ([skybell docs])
+- Use entity class attributes for Cast ([@tkdrob] - [#53348]) ([cast docs])
+- Use EntityDescription - tibber ([@cdce8p] - [#53569]) ([tibber docs])
+- Use entity class attributes for clementine ([@tkdrob] - [#53405]) ([clementine docs])
+- Allow removing workday holidays by name ([@matthewgottlieb] - [#52700]) ([workday docs])
+- Move the coordinator logic to the BroadlinkEntity class ([@felipediel] - [#53571]) ([broadlink docs])
+- Bump yalexs to 1.1.13 to fix august doorsense offline at startup ([@bdraco] - [#53574]) ([august docs])
+- Replace util.get_local_ip in favor of components.network.async_get_source_ip() - part 3 ([@chemelli74] - [#53424]) ([emulated_roku docs]) (breaking-change)
+- Bump pyairvisual to 5.0.9 ([@bachya] - [#53578]) ([airvisual docs])
+- Remove garmin_connect integration ([@cyberjunky] - [#52808]) ([garmin_connect docs]) (breaking-change)
+- Create stats for all sensors that have % unit and are measurement ([@balloob] - [#53576]) ([sensor docs])
+- Enforce strict typing for SimpliSafe ([@bachya] - [#53417]) ([simplisafe docs])
+- Add Prosegur Alarms ([@dgomes] - [#44679]) ([prosegur docs]) (new-integration)
+- Refactor bme280, add SPI support ([@Kuzj] - [#48775]) ([bme280 docs]) (breaking-change)
+- Rename snapshot -> backup ([@ludeeus] - [#51629]) ([hassio docs]) (breaking-change)
+- Use EntityDescription - ondilo_ico ([@cdce8p] - [#53579]) ([ondilo_ico docs])
+- Use EntityDescription - dwd_weather_warnings ([@cdce8p] - [#53580]) ([dwd_weather_warnings docs])
+- Use EntityDescription - climacell ([@cdce8p] - [#53573]) ([climacell docs])
+- Use EntityDescription - melcloud ([@cdce8p] - [#53572]) ([melcloud docs])
+- Add DeviceRegistry template functions ([@raman325] - [#53131])
+- Bump frontend to 20210727.0 ([@balloob] - [#53591]) ([frontend docs])
+- Add statistics support for SMA energy sensors ([@bramkragten] - [#53589]) ([sma docs])
+- Add currency to location data ([@ludeeus] - [#53575]) ([config docs]) ([ps4 docs])
+- Fix mypy type for timestamp validator ([@allenporter] - [#53598]) ([stream docs])
+- Use EntityDescription - netatmo ([@cdce8p] - [#53568]) ([netatmo docs])
+- Use SensorEntityDescription in GIOS integration ([@bieniu] - [#53581]) ([gios docs])
+- Bump plexapi to 4.7.0 ([@jjlawren] - [#53597]) ([plex docs])
+- Improve CO2Signal error handling ([@balloob] - [#53602]) ([co2signal docs])
+- Enforce strict typing for ReCollect Waste ([@bachya] - [#53356]) ([recollect_waste docs])
+- Add currency core configuration ([@frenck] - [#53541]) ([api docs]) ([config docs])
+- Use the new EntityDescription for motionEye switches ([@dermotduffy] - [#53536]) ([motioneye docs])
+- Add this variable for use by automation and script templates ([@r-t-s] - [#52774]) ([automation docs]) ([script docs])
+- Enable strict static type checking for nest integration ([@allenporter] - [#53535]) ([nest docs])
+- Skip 'None' values when restoring climate scenes ([@allenporter] - [#53484]) ([climate docs])
+- Fix missing encoding with open() ([@cdce8p] - [#53593])
+- Combine some stream test mocks ([@allenporter] - [#53600]) ([stream docs])
+- Use SensorEntityDescription in AccuWeather integration ([@bieniu] - [#53604]) ([accuweather docs])
+- Pin pandas to 1.3.0 ([@pvizeli] - [#53607])
+- Xiaomi_Miio Humidifier rework ([@jbouwh] - [#52366]) ([xiaomi_miio docs]) (breaking-change)
+- Remove unnecessary `init_integration()` call in NAM tests ([@bieniu] - [#53609]) ([nam docs])
+- Add mixin classes for required keys in EntityDescription ([@cdce8p] - [#53610]) ([climacell docs]) ([melcloud docs]) ([netatmo docs])
+- Remove Rituals DiffuserSwitch extra_state_attributes ([@milanmeu] - [#53611]) ([rituals_perfume_genie docs]) (breaking-change)
+- Clean device initialization log for Xiaomi Miio humidifiers ([@bieniu] - [#53612]) ([xiaomi_miio docs])
+- Auto reset on value going back to 0 in ESPHome ([@jesserockz] - [#53592]) ([esphome docs])
+- Add Khadas VIM3 ([@agners] - [#53616])
+- Bump zeroconf to 0.33.2 ([@bdraco] - [#53625]) ([zeroconf docs])
+- Remove currency from energy, use core config ([@bramkragten] - [#53615]) ([energy docs])
+- Fix broadlink creating duplicate unique IDs (2) ([@felipediel] - [#53622]) ([broadlink docs])
+- Add deCONZ support for Legrand Self-e ZGP switches ([@fredericseiler] - [#53008]) ([deconz docs])
+- Upgrade ns-api to 3.0.5 ([@Danielhiversen] - [#53620]) ([nederlandse_spoorwegen docs])
+- Remove CONNECTION_CLASS from Yale Smart Alarm ConfigFlow ([@milanmeu] - [#53629]) ([yale_smart_alarm docs])
+- Test KNX events ([@farmio] - [#53433]) ([knx docs])
+- Fix Yale Smart Alarm strings ([@milanmeu] - [#53627]) ([yale_smart_alarm docs])
+- Include advertise_addr in Sonos logs when used ([@jjlawren] - [#53617]) ([sonos docs])
+- Add climate support to Freedompro ([@stefano055415] - [#52720]) ([freedompro docs]) (new-integration) (new-platform)
+- Use entity class attributes for cmus ([@tkdrob] - [#53458]) ([cmus docs])
+- Bump frontend to 20210728.0 ([@balloob] - [#53634]) ([frontend docs])
+- Only declare powerwall login failure after 5 attempts ([@bdraco] - [#53635]) ([powerwall docs])
+- Add CameraEntityDescription to camera integration ([@janiversen] - [#53636]) ([camera docs])
+- Fix missing supported_features when only custom presets for ESPHome ([@OttoWinter] - [#53632]) ([esphome docs])
+- Tado, setup to return False and not ConfigEntryNotReady on RuntimeError ([@milanmeu] - [#53637]) ([tado docs])
+- Add renault integration ([@epenet] - [#39605]) ([renault docs]) (new-integration)
+- Add zwave_js.reset_meter service ([@raman325] - [#53390]) ([zwave_js docs]) (beta fix)
+- Fix invalid homekit state when arming ([@bdraco] - [#53646]) ([homekit docs]) (beta fix)
+- Add last reset to enphase sensors ([@balloob] - [#53653]) ([enphase_envoy docs]) (beta fix)
+- Add last reset to Shelly ([@balloob] - [#53654]) ([shelly docs]) (beta fix)
+- Bump aiolip to 1.1.6 to fix timeout with ident ([@bdraco] - [#53660]) ([lutron_caseta docs]) (beta fix)
+- Add device class energy and last reset to sense ([@bdraco] - [#53667]) ([sense docs]) (beta fix)
+- Allow uploading large snapshots ([@sabeechen] - [#53528]) ([hassio docs]) (beta fix)
+- Move TP-Link power and energy switch attributes to sensors ([@mib1185] - [#53596]) ([tplink docs]) (breaking-change) (beta fix) (new-platform)
+- Add enabled attribute to zwave_js discovery model ([@raman325] - [#53645]) ([zwave_js docs]) (beta fix)
+- Prosegur code quality improvements ([@dgomes] - [#53647]) ([prosegur docs]) (beta fix)
+- Fix unhandled exception with Guardian paired sensor coordinators ([@bachya] - [#53663]) ([guardian docs]) (beta fix)
+- Add energy support for zwave_js meter CC entities ([@raman325] - [#53665]) ([zwave_js docs]) (beta fix)
+- Skip each ssdp listener that fails to bind ([@bdraco] - [#53670]) ([ssdp docs]) (beta fix)
+- pyWeMo version bump (0.6.6) ([@esev] - [#53671]) ([wemo docs]) (beta fix)
+- Bump nest to version 0.3.5 ([@allenporter] - [#53672]) ([nest docs]) (beta fix)
+- Fix `last_reset_topic` config replaces `state_topic` for sensor platform ([@bieniu] - [#53677]) ([mqtt docs]) (beta fix)
+- Only disable a device if all associated config entries are disabled ([@Kane610] - [#53681]) (beta fix)
+- Bump bimmer_connected to 0.7.16 to fix parking light issue ([@gerard33] - [#53687]) ([bmw_connected_drive docs]) (beta fix)
+- Fix problem with telegram_bot ([@Andrew55529] - [#53690]) ([telegram_bot docs]) (beta fix)
+- Surepetcare, bug fix ([@Danielhiversen] - [#53695]) ([surepetcare docs]) (beta fix)
+- Energy round ([@Danielhiversen] - [#53696]) ([energy docs]) (beta fix)
+- Integration. Add device class, last_reset, state_class ([@Danielhiversen] - [#53698]) ([integration docs]) (beta fix)
+- Revert "Add Automate Pulse Hub v2 support (#39501)" ([@MartinHjelmare] - [#53704]) ([automate docs]) (beta fix)
+- Set state class measurement also for Total Energy for AVM Fritz!Smarthome devices ([@mib1185] - [#53707]) ([fritzbox docs]) (beta fix)
+- Add last reset to Shelly's energy entities ([@chemelli74] - [#53710]) ([shelly docs]) (beta fix)
+- Add state class support to DSMR Reader ([@frenck] - [#53715]) ([dsmr_reader docs]) (beta fix) (new-integration)
+- Fix zwave_js meter sensor state class ([@MartinHjelmare] - [#53716]) ([zwave_js docs]) (beta fix)
+- Bump frontend to 20210729.0 ([@balloob] - [#53717]) ([frontend docs]) (beta fix)
+- Fix SolarEdge statistics; missing device_class ([@frenck] - [#53720]) ([solaredge docs]) (beta fix)
+- Fix DSMR reconnecting loop without timeout ([@frenck] - [#53722]) ([dsmr docs]) (beta fix)
+- Fix zwave_js current and voltage meter sensor device class ([@MartinHjelmare] - [#53723]) ([zwave_js docs]) (beta fix)
+- Fix effect selector of light.turn_on service ([@frenck] - [#53726]) ([light docs]) (beta fix)
+- Revert "Allow uploading large snapshots (#53528)" ([@balloob] - [#53729]) ([hassio docs]) (beta fix)
+- Bump pyatv to 0.8.2 ([@ryanjohnsontv] - [#53659]) (beta fix)
+- Extract smartthings switch energy attributes into sensors ([@mib1185] - [#53719]) ([smartthings docs]) (beta fix)
+- Add energy device class to deCONZ consumption sensors ([@Kane610] - [#53731]) (beta fix)
+- Bump up ZHA dependencies ([@Adminiuga] - [#53732]) ([zha docs]) (beta fix)
+- Fix exception handling in DataUpdateCoordinator in TP-Link ([@mib1185] - [#53734]) ([tplink docs]) (beta fix)
+- Only allow one Mazda vehicle status request at a time ([@bdr99] - [#53736]) ([mazda docs]) (beta fix)
+- Apply left suggestions #53596 for TP-Link ([@mib1185] - [#53737]) ([tplink docs]) (beta fix)
+- Fix Xiaomi humidifier name migration ([@jbouwh] - [#53738]) ([xiaomi_miio docs]) (beta fix)
+- Fix Xiaomi-miio switch platform setup ([@jbouwh] - [#53739]) ([xiaomi_miio docs]) (beta fix)
+- Add energy attributes to Fronius ([@balloob] - [#53741]) ([fronius docs]) (beta fix)
+- Fix non monotonic dts error in stream ([@uvjustin] - [#53712]) ([stream docs]) (beta fix)
+- Cost sensor handle consumption sensor in Wh ([@balloob] - [#53746]) ([energy docs]) (beta fix)
+- Revert "Rename snapshot -> backup" ([@ludeeus] - [#53751]) ([hassio docs]) ([zwave_js docs]) (beta fix)
+- Bump HAP-python to 3.6.0 ([@bdraco] - [#53754]) ([homekit docs]) (beta fix)
+- Fix Xiaomi Miio humidifier mode change ([@bieniu] - [#53757]) ([xiaomi_miio docs]) (beta fix)
+- Fix Xiaomi-miio humidifier write the state back when turning on or off ([@jbouwh] - [#53771]) ([xiaomi_miio docs]) (beta fix)
+- Fix parsing of non-string values in Slack data ([@bachya] - [#53775]) ([slack docs]) (beta fix)
+- Update frontend to 20210730.0 ([@bramkragten] - [#53778]) ([frontend docs]) (beta fix)
+- Bump Hue and only fire events for button presses ([@balloob] - [#53781]) ([hue docs]) (beta fix)
+- Do not block setup of TP-Link when device unreachable ([@mib1185] - [#53770]) ([tplink docs]) (beta fix)
+- Fix name migration of the Xiaomi Miio humidifier ([@bieniu] - [#53790]) ([xiaomi_miio docs]) (beta fix)
+- Fix onkyo UnboundLocalError ([@andreasbrett] - [#53793]) ([onkyo docs]) (beta fix)
+- Remove `led` from Xiaomi Miio humidifier features ([@bieniu] - [#53796]) ([xiaomi_miio docs]) (beta fix)
+- ForecastSolar - power production now w not k w ([@B-Hartley] - [#53797]) ([forecast_solar docs]) (beta fix)
+- Clean Xiaomi Miio humidifier services ([@bieniu] - [#53806]) ([xiaomi_miio docs]) (beta fix)
+- Fix file path error in nfandroidtv ([@tkdrob] - [#53814]) ([nfandroidtv docs]) (beta fix)
+- Update frontend to 20210801.0 ([@bramkragten] - [#53841]) ([frontend docs]) (beta fix)
+- Add energy consumption sensors to smartthings devices ([@firstof9] - [#53759]) ([smartthings docs]) (beta fix)
+- Fix error in homekit_controller causing some entities to get an incorrect unique id ([@Jc2k] - [#53848]) ([homekit_controller docs]) (breaking-change) (beta fix)
+- Fix Radiothermostat hold value updates ([@vinnyfuria] - [#53656]) ([radiotherm docs]) (beta fix)
+- Fix missing default reconnect interval in dsmr ([@Emilv2] - [#53760]) ([dsmr docs]) (beta fix)
+- Fix entry setup for Broadlink SP4 sensors ([@felipediel] - [#53765]) ([broadlink docs]) (beta fix)
+- Bump pysma to 0.6.5 ([@rklomp] - [#53792]) ([sma docs]) (beta fix)
+- Fix TP-Link smart strip devices ([@mib1185] - [#53799]) ([tplink docs]) (beta fix)
+- Add STATE_CLASS_MEASUREMENT to Tibber ([@Danielhiversen] - [#53802]) ([tibber docs]) (beta fix)
+- Fix crash when AVM FRITZ!SmartHome devices are unreachable ([@mib1185] - [#53809]) ([fritzbox docs]) (beta fix)
+- Add base energy analytics ([@ludeeus] - [#53855]) ([analytics docs]) (beta fix)
+- Allow combinations write_coil/read_coils and write_coils/read_coil for modbus switch ([@janiversen] - [#53856]) ([modbus docs]) (beta fix)
+- Add RPi.GPIO dependency to rpi_rf integration ([@frenck] - [#53858]) ([rpi_rf docs]) (beta fix)
+- Fix cloud accountlinking replacing token data ([@frenck] - [#53865]) ([cloud docs]) (beta fix)
+- Add measurement state class to ZHA power devices ([@frenck] - [#53866]) ([zha docs]) (beta fix)
+- Fix growat server config entry missing URL key ([@frenck] - [#53867]) ([growatt_server docs]) (beta fix)
+- Fix issue when data is None ([@ludeeus] - [#53875]) ([energy docs]) (beta fix)
+- Bump frontend to 20210802.0 ([@balloob] - [#53876]) ([frontend docs]) (beta fix)
+- Fix watts unit for homekit_controller power sensors ([@Jc2k] - [#53877]) ([homekit_controller docs]) (breaking-change) (beta fix)
+- ESPHome implement light color modes ([@OttoWinter] - [#53854]) ([esphome docs]) (beta fix)
+- Bump aiohue to 2.6.1 ([@balloob] - [#53887]) ([hue docs]) (beta fix)
+- Handle powerConsumption reports with null value ([@firstof9] - [#53888]) ([smartthings docs]) (beta fix)
+- Only show a SimpliSafe code entry when one exists ([@bachya] - [#53894]) ([simplisafe docs]) (beta fix)
+- Bump frontend to 20210803.0 ([@balloob] - [#53897]) ([frontend docs]) (beta fix)
+- Add user to homeassistant system health ([@ludeeus] - [#53902]) ([homeassistant docs]) (beta fix)
+- Bump aioesphomeapi to 6.0.1 ([@jesserockz] - [#53905]) ([esphome docs]) (beta fix)
+- Bump pyroon to 0.0.38 ([@pavoni] - [#53906]) ([roon docs]) (beta fix)
+- Use `SelectEntityDescription` for Xiaomi Miio integration ([@bieniu] - [#53907]) (beta fix)
+- Handle scenario where SimpliSafe code is falsey ([@bachya] - [#53912]) ([simplisafe docs]) (beta fix)
+- Enforce maximum length for HomeKit characteristics ([@bdraco] - [#53913]) ([homekit docs]) (beta fix)
+- Handle Shelly get name on uninitialized device ([@balloob] - [#53917]) ([shelly docs]) (beta fix)
+- Limit API usage for Uptime Robot ([@ludeeus] - [#53918]) ([uptimerobot docs]) (beta fix)
+- Limit zwave_js meter sensor last reset ([@MartinHjelmare] - [#53921]) ([zwave_js docs]) (beta fix)
+- Update frontend to 20210803.2 ([@bramkragten] - [#53923]) ([frontend docs]) (beta fix)
+- Address review comments for 53918 ([@ludeeus] - [#53927]) ([uptimerobot docs]) (beta fix)
+
+{% enddetails %}
+
+[#36759]: https://github.com/home-assistant/core/pull/36759
+[#39501]: https://github.com/home-assistant/core/pull/39501
+[#39605]: https://github.com/home-assistant/core/pull/39605
+[#41942]: https://github.com/home-assistant/core/pull/41942
+[#44679]: https://github.com/home-assistant/core/pull/44679
+[#44826]: https://github.com/home-assistant/core/pull/44826
+[#45980]: https://github.com/home-assistant/core/pull/45980
+[#46582]: https://github.com/home-assistant/core/pull/46582
+[#47563]: https://github.com/home-assistant/core/pull/47563
+[#47657]: https://github.com/home-assistant/core/pull/47657
+[#48017]: https://github.com/home-assistant/core/pull/48017
+[#48309]: https://github.com/home-assistant/core/pull/48309
+[#48775]: https://github.com/home-assistant/core/pull/48775
+[#48923]: https://github.com/home-assistant/core/pull/48923
+[#49338]: https://github.com/home-assistant/core/pull/49338
+[#49524]: https://github.com/home-assistant/core/pull/49524
+[#49629]: https://github.com/home-assistant/core/pull/49629
+[#49665]: https://github.com/home-assistant/core/pull/49665
+[#49785]: https://github.com/home-assistant/core/pull/49785
+[#49835]: https://github.com/home-assistant/core/pull/49835
+[#49878]: https://github.com/home-assistant/core/pull/49878
+[#50156]: https://github.com/home-assistant/core/pull/50156
+[#50420]: https://github.com/home-assistant/core/pull/50420
+[#50668]: https://github.com/home-assistant/core/pull/50668
+[#50731]: https://github.com/home-assistant/core/pull/50731
+[#50850]: https://github.com/home-assistant/core/pull/50850
+[#50984]: https://github.com/home-assistant/core/pull/50984
+[#50998]: https://github.com/home-assistant/core/pull/50998
+[#51023]: https://github.com/home-assistant/core/pull/51023
+[#51280]: https://github.com/home-assistant/core/pull/51280
+[#51407]: https://github.com/home-assistant/core/pull/51407
+[#51455]: https://github.com/home-assistant/core/pull/51455
+[#51629]: https://github.com/home-assistant/core/pull/51629
+[#51941]: https://github.com/home-assistant/core/pull/51941
+[#51968]: https://github.com/home-assistant/core/pull/51968
+[#52001]: https://github.com/home-assistant/core/pull/52001
+[#52003]: https://github.com/home-assistant/core/pull/52003
+[#52160]: https://github.com/home-assistant/core/pull/52160
+[#52232]: https://github.com/home-assistant/core/pull/52232
+[#52244]: https://github.com/home-assistant/core/pull/52244
+[#52264]: https://github.com/home-assistant/core/pull/52264
+[#52295]: https://github.com/home-assistant/core/pull/52295
+[#52311]: https://github.com/home-assistant/core/pull/52311
+[#52316]: https://github.com/home-assistant/core/pull/52316
+[#52333]: https://github.com/home-assistant/core/pull/52333
+[#52339]: https://github.com/home-assistant/core/pull/52339
+[#52345]: https://github.com/home-assistant/core/pull/52345
+[#52346]: https://github.com/home-assistant/core/pull/52346
+[#52348]: https://github.com/home-assistant/core/pull/52348
+[#52349]: https://github.com/home-assistant/core/pull/52349
+[#52350]: https://github.com/home-assistant/core/pull/52350
+[#52357]: https://github.com/home-assistant/core/pull/52357
+[#52358]: https://github.com/home-assistant/core/pull/52358
+[#52361]: https://github.com/home-assistant/core/pull/52361
+[#52366]: https://github.com/home-assistant/core/pull/52366
+[#52367]: https://github.com/home-assistant/core/pull/52367
+[#52368]: https://github.com/home-assistant/core/pull/52368
+[#52369]: https://github.com/home-assistant/core/pull/52369
+[#52377]: https://github.com/home-assistant/core/pull/52377
+[#52378]: https://github.com/home-assistant/core/pull/52378
+[#52379]: https://github.com/home-assistant/core/pull/52379
+[#52383]: https://github.com/home-assistant/core/pull/52383
+[#52390]: https://github.com/home-assistant/core/pull/52390
+[#52395]: https://github.com/home-assistant/core/pull/52395
+[#52396]: https://github.com/home-assistant/core/pull/52396
+[#52398]: https://github.com/home-assistant/core/pull/52398
+[#52403]: https://github.com/home-assistant/core/pull/52403
+[#52423]: https://github.com/home-assistant/core/pull/52423
+[#52424]: https://github.com/home-assistant/core/pull/52424
+[#52427]: https://github.com/home-assistant/core/pull/52427
+[#52431]: https://github.com/home-assistant/core/pull/52431
+[#52432]: https://github.com/home-assistant/core/pull/52432
+[#52434]: https://github.com/home-assistant/core/pull/52434
+[#52435]: https://github.com/home-assistant/core/pull/52435
+[#52438]: https://github.com/home-assistant/core/pull/52438
+[#52440]: https://github.com/home-assistant/core/pull/52440
+[#52445]: https://github.com/home-assistant/core/pull/52445
+[#52448]: https://github.com/home-assistant/core/pull/52448
+[#52452]: https://github.com/home-assistant/core/pull/52452
+[#52456]: https://github.com/home-assistant/core/pull/52456
+[#52457]: https://github.com/home-assistant/core/pull/52457
+[#52458]: https://github.com/home-assistant/core/pull/52458
+[#52459]: https://github.com/home-assistant/core/pull/52459
+[#52461]: https://github.com/home-assistant/core/pull/52461
+[#52462]: https://github.com/home-assistant/core/pull/52462
+[#52463]: https://github.com/home-assistant/core/pull/52463
+[#52464]: https://github.com/home-assistant/core/pull/52464
+[#52467]: https://github.com/home-assistant/core/pull/52467
+[#52468]: https://github.com/home-assistant/core/pull/52468
+[#52469]: https://github.com/home-assistant/core/pull/52469
+[#52470]: https://github.com/home-assistant/core/pull/52470
+[#52471]: https://github.com/home-assistant/core/pull/52471
+[#52475]: https://github.com/home-assistant/core/pull/52475
+[#52476]: https://github.com/home-assistant/core/pull/52476
+[#52478]: https://github.com/home-assistant/core/pull/52478
+[#52483]: https://github.com/home-assistant/core/pull/52483
+[#52488]: https://github.com/home-assistant/core/pull/52488
+[#52491]: https://github.com/home-assistant/core/pull/52491
+[#52492]: https://github.com/home-assistant/core/pull/52492
+[#52497]: https://github.com/home-assistant/core/pull/52497
+[#52498]: https://github.com/home-assistant/core/pull/52498
+[#52499]: https://github.com/home-assistant/core/pull/52499
+[#52500]: https://github.com/home-assistant/core/pull/52500
+[#52501]: https://github.com/home-assistant/core/pull/52501
+[#52502]: https://github.com/home-assistant/core/pull/52502
+[#52503]: https://github.com/home-assistant/core/pull/52503
+[#52506]: https://github.com/home-assistant/core/pull/52506
+[#52509]: https://github.com/home-assistant/core/pull/52509
+[#52516]: https://github.com/home-assistant/core/pull/52516
+[#52517]: https://github.com/home-assistant/core/pull/52517
+[#52518]: https://github.com/home-assistant/core/pull/52518
+[#52520]: https://github.com/home-assistant/core/pull/52520
+[#52521]: https://github.com/home-assistant/core/pull/52521
+[#52524]: https://github.com/home-assistant/core/pull/52524
+[#52531]: https://github.com/home-assistant/core/pull/52531
+[#52533]: https://github.com/home-assistant/core/pull/52533
+[#52537]: https://github.com/home-assistant/core/pull/52537
+[#52540]: https://github.com/home-assistant/core/pull/52540
+[#52544]: https://github.com/home-assistant/core/pull/52544
+[#52558]: https://github.com/home-assistant/core/pull/52558
+[#52562]: https://github.com/home-assistant/core/pull/52562
+[#52564]: https://github.com/home-assistant/core/pull/52564
+[#52574]: https://github.com/home-assistant/core/pull/52574
+[#52576]: https://github.com/home-assistant/core/pull/52576
+[#52578]: https://github.com/home-assistant/core/pull/52578
+[#52580]: https://github.com/home-assistant/core/pull/52580
+[#52581]: https://github.com/home-assistant/core/pull/52581
+[#52582]: https://github.com/home-assistant/core/pull/52582
+[#52583]: https://github.com/home-assistant/core/pull/52583
+[#52585]: https://github.com/home-assistant/core/pull/52585
+[#52586]: https://github.com/home-assistant/core/pull/52586
+[#52587]: https://github.com/home-assistant/core/pull/52587
+[#52591]: https://github.com/home-assistant/core/pull/52591
+[#52592]: https://github.com/home-assistant/core/pull/52592
+[#52594]: https://github.com/home-assistant/core/pull/52594
+[#52596]: https://github.com/home-assistant/core/pull/52596
+[#52597]: https://github.com/home-assistant/core/pull/52597
+[#52598]: https://github.com/home-assistant/core/pull/52598
+[#52599]: https://github.com/home-assistant/core/pull/52599
+[#52600]: https://github.com/home-assistant/core/pull/52600
+[#52602]: https://github.com/home-assistant/core/pull/52602
+[#52605]: https://github.com/home-assistant/core/pull/52605
+[#52615]: https://github.com/home-assistant/core/pull/52615
+[#52616]: https://github.com/home-assistant/core/pull/52616
+[#52617]: https://github.com/home-assistant/core/pull/52617
+[#52628]: https://github.com/home-assistant/core/pull/52628
+[#52630]: https://github.com/home-assistant/core/pull/52630
+[#52651]: https://github.com/home-assistant/core/pull/52651
+[#52662]: https://github.com/home-assistant/core/pull/52662
+[#52663]: https://github.com/home-assistant/core/pull/52663
+[#52664]: https://github.com/home-assistant/core/pull/52664
+[#52668]: https://github.com/home-assistant/core/pull/52668
+[#52670]: https://github.com/home-assistant/core/pull/52670
+[#52675]: https://github.com/home-assistant/core/pull/52675
+[#52677]: https://github.com/home-assistant/core/pull/52677
+[#52678]: https://github.com/home-assistant/core/pull/52678
+[#52681]: https://github.com/home-assistant/core/pull/52681
+[#52683]: https://github.com/home-assistant/core/pull/52683
+[#52685]: https://github.com/home-assistant/core/pull/52685
+[#52686]: https://github.com/home-assistant/core/pull/52686
+[#52687]: https://github.com/home-assistant/core/pull/52687
+[#52690]: https://github.com/home-assistant/core/pull/52690
+[#52692]: https://github.com/home-assistant/core/pull/52692
+[#52694]: https://github.com/home-assistant/core/pull/52694
+[#52695]: https://github.com/home-assistant/core/pull/52695
+[#52696]: https://github.com/home-assistant/core/pull/52696
+[#52698]: https://github.com/home-assistant/core/pull/52698
+[#52699]: https://github.com/home-assistant/core/pull/52699
+[#52700]: https://github.com/home-assistant/core/pull/52700
+[#52705]: https://github.com/home-assistant/core/pull/52705
+[#52712]: https://github.com/home-assistant/core/pull/52712
+[#52715]: https://github.com/home-assistant/core/pull/52715
+[#52717]: https://github.com/home-assistant/core/pull/52717
+[#52720]: https://github.com/home-assistant/core/pull/52720
+[#52721]: https://github.com/home-assistant/core/pull/52721
+[#52722]: https://github.com/home-assistant/core/pull/52722
+[#52723]: https://github.com/home-assistant/core/pull/52723
+[#52724]: https://github.com/home-assistant/core/pull/52724
+[#52725]: https://github.com/home-assistant/core/pull/52725
+[#52726]: https://github.com/home-assistant/core/pull/52726
+[#52727]: https://github.com/home-assistant/core/pull/52727
+[#52737]: https://github.com/home-assistant/core/pull/52737
+[#52744]: https://github.com/home-assistant/core/pull/52744
+[#52746]: https://github.com/home-assistant/core/pull/52746
+[#52747]: https://github.com/home-assistant/core/pull/52747
+[#52748]: https://github.com/home-assistant/core/pull/52748
+[#52755]: https://github.com/home-assistant/core/pull/52755
+[#52772]: https://github.com/home-assistant/core/pull/52772
+[#52774]: https://github.com/home-assistant/core/pull/52774
+[#52790]: https://github.com/home-assistant/core/pull/52790
+[#52793]: https://github.com/home-assistant/core/pull/52793
+[#52808]: https://github.com/home-assistant/core/pull/52808
+[#52811]: https://github.com/home-assistant/core/pull/52811
+[#52813]: https://github.com/home-assistant/core/pull/52813
+[#52814]: https://github.com/home-assistant/core/pull/52814
+[#52815]: https://github.com/home-assistant/core/pull/52815
+[#52817]: https://github.com/home-assistant/core/pull/52817
+[#52819]: https://github.com/home-assistant/core/pull/52819
+[#52820]: https://github.com/home-assistant/core/pull/52820
+[#52821]: https://github.com/home-assistant/core/pull/52821
+[#52828]: https://github.com/home-assistant/core/pull/52828
+[#52831]: https://github.com/home-assistant/core/pull/52831
+[#52837]: https://github.com/home-assistant/core/pull/52837
+[#52838]: https://github.com/home-assistant/core/pull/52838
+[#52839]: https://github.com/home-assistant/core/pull/52839
+[#52841]: https://github.com/home-assistant/core/pull/52841
+[#52847]: https://github.com/home-assistant/core/pull/52847
+[#52848]: https://github.com/home-assistant/core/pull/52848
+[#52857]: https://github.com/home-assistant/core/pull/52857
+[#52870]: https://github.com/home-assistant/core/pull/52870
+[#52879]: https://github.com/home-assistant/core/pull/52879
+[#52881]: https://github.com/home-assistant/core/pull/52881
+[#52886]: https://github.com/home-assistant/core/pull/52886
+[#52887]: https://github.com/home-assistant/core/pull/52887
+[#52888]: https://github.com/home-assistant/core/pull/52888
+[#52889]: https://github.com/home-assistant/core/pull/52889
+[#52890]: https://github.com/home-assistant/core/pull/52890
+[#52891]: https://github.com/home-assistant/core/pull/52891
+[#52892]: https://github.com/home-assistant/core/pull/52892
+[#52893]: https://github.com/home-assistant/core/pull/52893
+[#52894]: https://github.com/home-assistant/core/pull/52894
+[#52895]: https://github.com/home-assistant/core/pull/52895
+[#52899]: https://github.com/home-assistant/core/pull/52899
+[#52901]: https://github.com/home-assistant/core/pull/52901
+[#52909]: https://github.com/home-assistant/core/pull/52909
+[#52918]: https://github.com/home-assistant/core/pull/52918
+[#52919]: https://github.com/home-assistant/core/pull/52919
+[#52920]: https://github.com/home-assistant/core/pull/52920
+[#52921]: https://github.com/home-assistant/core/pull/52921
+[#52923]: https://github.com/home-assistant/core/pull/52923
+[#52924]: https://github.com/home-assistant/core/pull/52924
+[#52926]: https://github.com/home-assistant/core/pull/52926
+[#52932]: https://github.com/home-assistant/core/pull/52932
+[#52935]: https://github.com/home-assistant/core/pull/52935
+[#52937]: https://github.com/home-assistant/core/pull/52937
+[#52939]: https://github.com/home-assistant/core/pull/52939
+[#52941]: https://github.com/home-assistant/core/pull/52941
+[#52942]: https://github.com/home-assistant/core/pull/52942
+[#52946]: https://github.com/home-assistant/core/pull/52946
+[#52947]: https://github.com/home-assistant/core/pull/52947
+[#52948]: https://github.com/home-assistant/core/pull/52948
+[#52951]: https://github.com/home-assistant/core/pull/52951
+[#52952]: https://github.com/home-assistant/core/pull/52952
+[#52953]: https://github.com/home-assistant/core/pull/52953
+[#52954]: https://github.com/home-assistant/core/pull/52954
+[#52960]: https://github.com/home-assistant/core/pull/52960
+[#52965]: https://github.com/home-assistant/core/pull/52965
+[#52971]: https://github.com/home-assistant/core/pull/52971
+[#52972]: https://github.com/home-assistant/core/pull/52972
+[#52975]: https://github.com/home-assistant/core/pull/52975
+[#52979]: https://github.com/home-assistant/core/pull/52979
+[#52980]: https://github.com/home-assistant/core/pull/52980
+[#52987]: https://github.com/home-assistant/core/pull/52987
+[#52992]: https://github.com/home-assistant/core/pull/52992
+[#52997]: https://github.com/home-assistant/core/pull/52997
+[#52999]: https://github.com/home-assistant/core/pull/52999
+[#53001]: https://github.com/home-assistant/core/pull/53001
+[#53005]: https://github.com/home-assistant/core/pull/53005
+[#53008]: https://github.com/home-assistant/core/pull/53008
+[#53011]: https://github.com/home-assistant/core/pull/53011
+[#53014]: https://github.com/home-assistant/core/pull/53014
+[#53026]: https://github.com/home-assistant/core/pull/53026
+[#53030]: https://github.com/home-assistant/core/pull/53030
+[#53032]: https://github.com/home-assistant/core/pull/53032
+[#53033]: https://github.com/home-assistant/core/pull/53033
+[#53035]: https://github.com/home-assistant/core/pull/53035
+[#53036]: https://github.com/home-assistant/core/pull/53036
+[#53037]: https://github.com/home-assistant/core/pull/53037
+[#53042]: https://github.com/home-assistant/core/pull/53042
+[#53051]: https://github.com/home-assistant/core/pull/53051
+[#53052]: https://github.com/home-assistant/core/pull/53052
+[#53054]: https://github.com/home-assistant/core/pull/53054
+[#53055]: https://github.com/home-assistant/core/pull/53055
+[#53057]: https://github.com/home-assistant/core/pull/53057
+[#53058]: https://github.com/home-assistant/core/pull/53058
+[#53060]: https://github.com/home-assistant/core/pull/53060
+[#53064]: https://github.com/home-assistant/core/pull/53064
+[#53080]: https://github.com/home-assistant/core/pull/53080
+[#53084]: https://github.com/home-assistant/core/pull/53084
+[#53085]: https://github.com/home-assistant/core/pull/53085
+[#53086]: https://github.com/home-assistant/core/pull/53086
+[#53087]: https://github.com/home-assistant/core/pull/53087
+[#53101]: https://github.com/home-assistant/core/pull/53101
+[#53102]: https://github.com/home-assistant/core/pull/53102
+[#53105]: https://github.com/home-assistant/core/pull/53105
+[#53106]: https://github.com/home-assistant/core/pull/53106
+[#53109]: https://github.com/home-assistant/core/pull/53109
+[#53116]: https://github.com/home-assistant/core/pull/53116
+[#53124]: https://github.com/home-assistant/core/pull/53124
+[#53129]: https://github.com/home-assistant/core/pull/53129
+[#53130]: https://github.com/home-assistant/core/pull/53130
+[#53131]: https://github.com/home-assistant/core/pull/53131
+[#53133]: https://github.com/home-assistant/core/pull/53133
+[#53134]: https://github.com/home-assistant/core/pull/53134
+[#53141]: https://github.com/home-assistant/core/pull/53141
+[#53142]: https://github.com/home-assistant/core/pull/53142
+[#53147]: https://github.com/home-assistant/core/pull/53147
+[#53148]: https://github.com/home-assistant/core/pull/53148
+[#53149]: https://github.com/home-assistant/core/pull/53149
+[#53150]: https://github.com/home-assistant/core/pull/53150
+[#53152]: https://github.com/home-assistant/core/pull/53152
+[#53153]: https://github.com/home-assistant/core/pull/53153
+[#53155]: https://github.com/home-assistant/core/pull/53155
+[#53156]: https://github.com/home-assistant/core/pull/53156
+[#53158]: https://github.com/home-assistant/core/pull/53158
+[#53159]: https://github.com/home-assistant/core/pull/53159
+[#53160]: https://github.com/home-assistant/core/pull/53160
+[#53163]: https://github.com/home-assistant/core/pull/53163
+[#53164]: https://github.com/home-assistant/core/pull/53164
+[#53165]: https://github.com/home-assistant/core/pull/53165
+[#53166]: https://github.com/home-assistant/core/pull/53166
+[#53167]: https://github.com/home-assistant/core/pull/53167
+[#53168]: https://github.com/home-assistant/core/pull/53168
+[#53169]: https://github.com/home-assistant/core/pull/53169
+[#53170]: https://github.com/home-assistant/core/pull/53170
+[#53171]: https://github.com/home-assistant/core/pull/53171
+[#53172]: https://github.com/home-assistant/core/pull/53172
+[#53174]: https://github.com/home-assistant/core/pull/53174
+[#53179]: https://github.com/home-assistant/core/pull/53179
+[#53180]: https://github.com/home-assistant/core/pull/53180
+[#53183]: https://github.com/home-assistant/core/pull/53183
+[#53184]: https://github.com/home-assistant/core/pull/53184
+[#53186]: https://github.com/home-assistant/core/pull/53186
+[#53188]: https://github.com/home-assistant/core/pull/53188
+[#53190]: https://github.com/home-assistant/core/pull/53190
+[#53191]: https://github.com/home-assistant/core/pull/53191
+[#53192]: https://github.com/home-assistant/core/pull/53192
+[#53193]: https://github.com/home-assistant/core/pull/53193
+[#53194]: https://github.com/home-assistant/core/pull/53194
+[#53195]: https://github.com/home-assistant/core/pull/53195
+[#53196]: https://github.com/home-assistant/core/pull/53196
+[#53197]: https://github.com/home-assistant/core/pull/53197
+[#53199]: https://github.com/home-assistant/core/pull/53199
+[#53202]: https://github.com/home-assistant/core/pull/53202
+[#53203]: https://github.com/home-assistant/core/pull/53203
+[#53204]: https://github.com/home-assistant/core/pull/53204
+[#53205]: https://github.com/home-assistant/core/pull/53205
+[#53206]: https://github.com/home-assistant/core/pull/53206
+[#53208]: https://github.com/home-assistant/core/pull/53208
+[#53212]: https://github.com/home-assistant/core/pull/53212
+[#53214]: https://github.com/home-assistant/core/pull/53214
+[#53216]: https://github.com/home-assistant/core/pull/53216
+[#53217]: https://github.com/home-assistant/core/pull/53217
+[#53221]: https://github.com/home-assistant/core/pull/53221
+[#53222]: https://github.com/home-assistant/core/pull/53222
+[#53223]: https://github.com/home-assistant/core/pull/53223
+[#53225]: https://github.com/home-assistant/core/pull/53225
+[#53226]: https://github.com/home-assistant/core/pull/53226
+[#53227]: https://github.com/home-assistant/core/pull/53227
+[#53228]: https://github.com/home-assistant/core/pull/53228
+[#53231]: https://github.com/home-assistant/core/pull/53231
+[#53232]: https://github.com/home-assistant/core/pull/53232
+[#53233]: https://github.com/home-assistant/core/pull/53233
+[#53234]: https://github.com/home-assistant/core/pull/53234
+[#53235]: https://github.com/home-assistant/core/pull/53235
+[#53236]: https://github.com/home-assistant/core/pull/53236
+[#53238]: https://github.com/home-assistant/core/pull/53238
+[#53240]: https://github.com/home-assistant/core/pull/53240
+[#53241]: https://github.com/home-assistant/core/pull/53241
+[#53242]: https://github.com/home-assistant/core/pull/53242
+[#53243]: https://github.com/home-assistant/core/pull/53243
+[#53244]: https://github.com/home-assistant/core/pull/53244
+[#53245]: https://github.com/home-assistant/core/pull/53245
+[#53247]: https://github.com/home-assistant/core/pull/53247
+[#53249]: https://github.com/home-assistant/core/pull/53249
+[#53250]: https://github.com/home-assistant/core/pull/53250
+[#53251]: https://github.com/home-assistant/core/pull/53251
+[#53253]: https://github.com/home-assistant/core/pull/53253
+[#53254]: https://github.com/home-assistant/core/pull/53254
+[#53257]: https://github.com/home-assistant/core/pull/53257
+[#53258]: https://github.com/home-assistant/core/pull/53258
+[#53259]: https://github.com/home-assistant/core/pull/53259
+[#53260]: https://github.com/home-assistant/core/pull/53260
+[#53264]: https://github.com/home-assistant/core/pull/53264
+[#53265]: https://github.com/home-assistant/core/pull/53265
+[#53269]: https://github.com/home-assistant/core/pull/53269
+[#53272]: https://github.com/home-assistant/core/pull/53272
+[#53274]: https://github.com/home-assistant/core/pull/53274
+[#53276]: https://github.com/home-assistant/core/pull/53276
+[#53277]: https://github.com/home-assistant/core/pull/53277
+[#53278]: https://github.com/home-assistant/core/pull/53278
+[#53281]: https://github.com/home-assistant/core/pull/53281
+[#53282]: https://github.com/home-assistant/core/pull/53282
+[#53284]: https://github.com/home-assistant/core/pull/53284
+[#53286]: https://github.com/home-assistant/core/pull/53286
+[#53287]: https://github.com/home-assistant/core/pull/53287
+[#53289]: https://github.com/home-assistant/core/pull/53289
+[#53290]: https://github.com/home-assistant/core/pull/53290
+[#53292]: https://github.com/home-assistant/core/pull/53292
+[#53293]: https://github.com/home-assistant/core/pull/53293
+[#53294]: https://github.com/home-assistant/core/pull/53294
+[#53295]: https://github.com/home-assistant/core/pull/53295
+[#53296]: https://github.com/home-assistant/core/pull/53296
+[#53297]: https://github.com/home-assistant/core/pull/53297
+[#53298]: https://github.com/home-assistant/core/pull/53298
+[#53302]: https://github.com/home-assistant/core/pull/53302
+[#53303]: https://github.com/home-assistant/core/pull/53303
+[#53304]: https://github.com/home-assistant/core/pull/53304
+[#53329]: https://github.com/home-assistant/core/pull/53329
+[#53330]: https://github.com/home-assistant/core/pull/53330
+[#53332]: https://github.com/home-assistant/core/pull/53332
+[#53333]: https://github.com/home-assistant/core/pull/53333
+[#53335]: https://github.com/home-assistant/core/pull/53335
+[#53337]: https://github.com/home-assistant/core/pull/53337
+[#53340]: https://github.com/home-assistant/core/pull/53340
+[#53342]: https://github.com/home-assistant/core/pull/53342
+[#53343]: https://github.com/home-assistant/core/pull/53343
+[#53348]: https://github.com/home-assistant/core/pull/53348
+[#53350]: https://github.com/home-assistant/core/pull/53350
+[#53351]: https://github.com/home-assistant/core/pull/53351
+[#53352]: https://github.com/home-assistant/core/pull/53352
+[#53354]: https://github.com/home-assistant/core/pull/53354
+[#53355]: https://github.com/home-assistant/core/pull/53355
+[#53356]: https://github.com/home-assistant/core/pull/53356
+[#53357]: https://github.com/home-assistant/core/pull/53357
+[#53358]: https://github.com/home-assistant/core/pull/53358
+[#53360]: https://github.com/home-assistant/core/pull/53360
+[#53362]: https://github.com/home-assistant/core/pull/53362
+[#53363]: https://github.com/home-assistant/core/pull/53363
+[#53364]: https://github.com/home-assistant/core/pull/53364
+[#53365]: https://github.com/home-assistant/core/pull/53365
+[#53367]: https://github.com/home-assistant/core/pull/53367
+[#53369]: https://github.com/home-assistant/core/pull/53369
+[#53370]: https://github.com/home-assistant/core/pull/53370
+[#53371]: https://github.com/home-assistant/core/pull/53371
+[#53372]: https://github.com/home-assistant/core/pull/53372
+[#53376]: https://github.com/home-assistant/core/pull/53376
+[#53378]: https://github.com/home-assistant/core/pull/53378
+[#53381]: https://github.com/home-assistant/core/pull/53381
+[#53383]: https://github.com/home-assistant/core/pull/53383
+[#53384]: https://github.com/home-assistant/core/pull/53384
+[#53385]: https://github.com/home-assistant/core/pull/53385
+[#53386]: https://github.com/home-assistant/core/pull/53386
+[#53390]: https://github.com/home-assistant/core/pull/53390
+[#53393]: https://github.com/home-assistant/core/pull/53393
+[#53397]: https://github.com/home-assistant/core/pull/53397
+[#53402]: https://github.com/home-assistant/core/pull/53402
+[#53405]: https://github.com/home-assistant/core/pull/53405
+[#53407]: https://github.com/home-assistant/core/pull/53407
+[#53409]: https://github.com/home-assistant/core/pull/53409
+[#53410]: https://github.com/home-assistant/core/pull/53410
+[#53412]: https://github.com/home-assistant/core/pull/53412
+[#53413]: https://github.com/home-assistant/core/pull/53413
+[#53414]: https://github.com/home-assistant/core/pull/53414
+[#53417]: https://github.com/home-assistant/core/pull/53417
+[#53419]: https://github.com/home-assistant/core/pull/53419
+[#53422]: https://github.com/home-assistant/core/pull/53422
+[#53423]: https://github.com/home-assistant/core/pull/53423
+[#53424]: https://github.com/home-assistant/core/pull/53424
+[#53428]: https://github.com/home-assistant/core/pull/53428
+[#53431]: https://github.com/home-assistant/core/pull/53431
+[#53433]: https://github.com/home-assistant/core/pull/53433
+[#53444]: https://github.com/home-assistant/core/pull/53444
+[#53445]: https://github.com/home-assistant/core/pull/53445
+[#53446]: https://github.com/home-assistant/core/pull/53446
+[#53452]: https://github.com/home-assistant/core/pull/53452
+[#53455]: https://github.com/home-assistant/core/pull/53455
+[#53456]: https://github.com/home-assistant/core/pull/53456
+[#53458]: https://github.com/home-assistant/core/pull/53458
+[#53461]: https://github.com/home-assistant/core/pull/53461
+[#53464]: https://github.com/home-assistant/core/pull/53464
+[#53467]: https://github.com/home-assistant/core/pull/53467
+[#53468]: https://github.com/home-assistant/core/pull/53468
+[#53470]: https://github.com/home-assistant/core/pull/53470
+[#53471]: https://github.com/home-assistant/core/pull/53471
+[#53472]: https://github.com/home-assistant/core/pull/53472
+[#53474]: https://github.com/home-assistant/core/pull/53474
+[#53475]: https://github.com/home-assistant/core/pull/53475
+[#53476]: https://github.com/home-assistant/core/pull/53476
+[#53479]: https://github.com/home-assistant/core/pull/53479
+[#53484]: https://github.com/home-assistant/core/pull/53484
+[#53487]: https://github.com/home-assistant/core/pull/53487
+[#53492]: https://github.com/home-assistant/core/pull/53492
+[#53493]: https://github.com/home-assistant/core/pull/53493
+[#53495]: https://github.com/home-assistant/core/pull/53495
+[#53496]: https://github.com/home-assistant/core/pull/53496
+[#53504]: https://github.com/home-assistant/core/pull/53504
+[#53505]: https://github.com/home-assistant/core/pull/53505
+[#53508]: https://github.com/home-assistant/core/pull/53508
+[#53511]: https://github.com/home-assistant/core/pull/53511
+[#53512]: https://github.com/home-assistant/core/pull/53512
+[#53513]: https://github.com/home-assistant/core/pull/53513
+[#53517]: https://github.com/home-assistant/core/pull/53517
+[#53518]: https://github.com/home-assistant/core/pull/53518
+[#53519]: https://github.com/home-assistant/core/pull/53519
+[#53520]: https://github.com/home-assistant/core/pull/53520
+[#53521]: https://github.com/home-assistant/core/pull/53521
+[#53522]: https://github.com/home-assistant/core/pull/53522
+[#53523]: https://github.com/home-assistant/core/pull/53523
+[#53524]: https://github.com/home-assistant/core/pull/53524
+[#53526]: https://github.com/home-assistant/core/pull/53526
+[#53527]: https://github.com/home-assistant/core/pull/53527
+[#53528]: https://github.com/home-assistant/core/pull/53528
+[#53529]: https://github.com/home-assistant/core/pull/53529
+[#53531]: https://github.com/home-assistant/core/pull/53531
+[#53532]: https://github.com/home-assistant/core/pull/53532
+[#53534]: https://github.com/home-assistant/core/pull/53534
+[#53535]: https://github.com/home-assistant/core/pull/53535
+[#53536]: https://github.com/home-assistant/core/pull/53536
+[#53537]: https://github.com/home-assistant/core/pull/53537
+[#53538]: https://github.com/home-assistant/core/pull/53538
+[#53539]: https://github.com/home-assistant/core/pull/53539
+[#53540]: https://github.com/home-assistant/core/pull/53540
+[#53541]: https://github.com/home-assistant/core/pull/53541
+[#53542]: https://github.com/home-assistant/core/pull/53542
+[#53543]: https://github.com/home-assistant/core/pull/53543
+[#53544]: https://github.com/home-assistant/core/pull/53544
+[#53545]: https://github.com/home-assistant/core/pull/53545
+[#53547]: https://github.com/home-assistant/core/pull/53547
+[#53549]: https://github.com/home-assistant/core/pull/53549
+[#53550]: https://github.com/home-assistant/core/pull/53550
+[#53553]: https://github.com/home-assistant/core/pull/53553
+[#53555]: https://github.com/home-assistant/core/pull/53555
+[#53556]: https://github.com/home-assistant/core/pull/53556
+[#53557]: https://github.com/home-assistant/core/pull/53557
+[#53558]: https://github.com/home-assistant/core/pull/53558
+[#53559]: https://github.com/home-assistant/core/pull/53559
+[#53560]: https://github.com/home-assistant/core/pull/53560
+[#53564]: https://github.com/home-assistant/core/pull/53564
+[#53565]: https://github.com/home-assistant/core/pull/53565
+[#53566]: https://github.com/home-assistant/core/pull/53566
+[#53568]: https://github.com/home-assistant/core/pull/53568
+[#53569]: https://github.com/home-assistant/core/pull/53569
+[#53571]: https://github.com/home-assistant/core/pull/53571
+[#53572]: https://github.com/home-assistant/core/pull/53572
+[#53573]: https://github.com/home-assistant/core/pull/53573
+[#53574]: https://github.com/home-assistant/core/pull/53574
+[#53575]: https://github.com/home-assistant/core/pull/53575
+[#53576]: https://github.com/home-assistant/core/pull/53576
+[#53578]: https://github.com/home-assistant/core/pull/53578
+[#53579]: https://github.com/home-assistant/core/pull/53579
+[#53580]: https://github.com/home-assistant/core/pull/53580
+[#53581]: https://github.com/home-assistant/core/pull/53581
+[#53589]: https://github.com/home-assistant/core/pull/53589
+[#53591]: https://github.com/home-assistant/core/pull/53591
+[#53592]: https://github.com/home-assistant/core/pull/53592
+[#53593]: https://github.com/home-assistant/core/pull/53593
+[#53596]: https://github.com/home-assistant/core/pull/53596
+[#53597]: https://github.com/home-assistant/core/pull/53597
+[#53598]: https://github.com/home-assistant/core/pull/53598
+[#53600]: https://github.com/home-assistant/core/pull/53600
+[#53602]: https://github.com/home-assistant/core/pull/53602
+[#53604]: https://github.com/home-assistant/core/pull/53604
+[#53607]: https://github.com/home-assistant/core/pull/53607
+[#53609]: https://github.com/home-assistant/core/pull/53609
+[#53610]: https://github.com/home-assistant/core/pull/53610
+[#53611]: https://github.com/home-assistant/core/pull/53611
+[#53612]: https://github.com/home-assistant/core/pull/53612
+[#53615]: https://github.com/home-assistant/core/pull/53615
+[#53616]: https://github.com/home-assistant/core/pull/53616
+[#53617]: https://github.com/home-assistant/core/pull/53617
+[#53620]: https://github.com/home-assistant/core/pull/53620
+[#53622]: https://github.com/home-assistant/core/pull/53622
+[#53625]: https://github.com/home-assistant/core/pull/53625
+[#53627]: https://github.com/home-assistant/core/pull/53627
+[#53629]: https://github.com/home-assistant/core/pull/53629
+[#53632]: https://github.com/home-assistant/core/pull/53632
+[#53634]: https://github.com/home-assistant/core/pull/53634
+[#53635]: https://github.com/home-assistant/core/pull/53635
+[#53636]: https://github.com/home-assistant/core/pull/53636
+[#53637]: https://github.com/home-assistant/core/pull/53637
+[#53645]: https://github.com/home-assistant/core/pull/53645
+[#53646]: https://github.com/home-assistant/core/pull/53646
+[#53647]: https://github.com/home-assistant/core/pull/53647
+[#53653]: https://github.com/home-assistant/core/pull/53653
+[#53654]: https://github.com/home-assistant/core/pull/53654
+[#53656]: https://github.com/home-assistant/core/pull/53656
+[#53659]: https://github.com/home-assistant/core/pull/53659
+[#53660]: https://github.com/home-assistant/core/pull/53660
+[#53663]: https://github.com/home-assistant/core/pull/53663
+[#53665]: https://github.com/home-assistant/core/pull/53665
+[#53667]: https://github.com/home-assistant/core/pull/53667
+[#53670]: https://github.com/home-assistant/core/pull/53670
+[#53671]: https://github.com/home-assistant/core/pull/53671
+[#53672]: https://github.com/home-assistant/core/pull/53672
+[#53677]: https://github.com/home-assistant/core/pull/53677
+[#53681]: https://github.com/home-assistant/core/pull/53681
+[#53687]: https://github.com/home-assistant/core/pull/53687
+[#53690]: https://github.com/home-assistant/core/pull/53690
+[#53695]: https://github.com/home-assistant/core/pull/53695
+[#53696]: https://github.com/home-assistant/core/pull/53696
+[#53698]: https://github.com/home-assistant/core/pull/53698
+[#53704]: https://github.com/home-assistant/core/pull/53704
+[#53707]: https://github.com/home-assistant/core/pull/53707
+[#53710]: https://github.com/home-assistant/core/pull/53710
+[#53712]: https://github.com/home-assistant/core/pull/53712
+[#53715]: https://github.com/home-assistant/core/pull/53715
+[#53716]: https://github.com/home-assistant/core/pull/53716
+[#53717]: https://github.com/home-assistant/core/pull/53717
+[#53719]: https://github.com/home-assistant/core/pull/53719
+[#53720]: https://github.com/home-assistant/core/pull/53720
+[#53722]: https://github.com/home-assistant/core/pull/53722
+[#53723]: https://github.com/home-assistant/core/pull/53723
+[#53726]: https://github.com/home-assistant/core/pull/53726
+[#53729]: https://github.com/home-assistant/core/pull/53729
+[#53731]: https://github.com/home-assistant/core/pull/53731
+[#53732]: https://github.com/home-assistant/core/pull/53732
+[#53734]: https://github.com/home-assistant/core/pull/53734
+[#53736]: https://github.com/home-assistant/core/pull/53736
+[#53737]: https://github.com/home-assistant/core/pull/53737
+[#53738]: https://github.com/home-assistant/core/pull/53738
+[#53739]: https://github.com/home-assistant/core/pull/53739
+[#53741]: https://github.com/home-assistant/core/pull/53741
+[#53746]: https://github.com/home-assistant/core/pull/53746
+[#53751]: https://github.com/home-assistant/core/pull/53751
+[#53754]: https://github.com/home-assistant/core/pull/53754
+[#53757]: https://github.com/home-assistant/core/pull/53757
+[#53759]: https://github.com/home-assistant/core/pull/53759
+[#53760]: https://github.com/home-assistant/core/pull/53760
+[#53765]: https://github.com/home-assistant/core/pull/53765
+[#53770]: https://github.com/home-assistant/core/pull/53770
+[#53771]: https://github.com/home-assistant/core/pull/53771
+[#53775]: https://github.com/home-assistant/core/pull/53775
+[#53778]: https://github.com/home-assistant/core/pull/53778
+[#53781]: https://github.com/home-assistant/core/pull/53781
+[#53790]: https://github.com/home-assistant/core/pull/53790
+[#53792]: https://github.com/home-assistant/core/pull/53792
+[#53793]: https://github.com/home-assistant/core/pull/53793
+[#53796]: https://github.com/home-assistant/core/pull/53796
+[#53797]: https://github.com/home-assistant/core/pull/53797
+[#53799]: https://github.com/home-assistant/core/pull/53799
+[#53802]: https://github.com/home-assistant/core/pull/53802
+[#53806]: https://github.com/home-assistant/core/pull/53806
+[#53809]: https://github.com/home-assistant/core/pull/53809
+[#53814]: https://github.com/home-assistant/core/pull/53814
+[#53841]: https://github.com/home-assistant/core/pull/53841
+[#53848]: https://github.com/home-assistant/core/pull/53848
+[#53854]: https://github.com/home-assistant/core/pull/53854
+[#53855]: https://github.com/home-assistant/core/pull/53855
+[#53856]: https://github.com/home-assistant/core/pull/53856
+[#53858]: https://github.com/home-assistant/core/pull/53858
+[#53865]: https://github.com/home-assistant/core/pull/53865
+[#53866]: https://github.com/home-assistant/core/pull/53866
+[#53867]: https://github.com/home-assistant/core/pull/53867
+[#53875]: https://github.com/home-assistant/core/pull/53875
+[#53876]: https://github.com/home-assistant/core/pull/53876
+[#53877]: https://github.com/home-assistant/core/pull/53877
+[#53887]: https://github.com/home-assistant/core/pull/53887
+[#53888]: https://github.com/home-assistant/core/pull/53888
+[#53894]: https://github.com/home-assistant/core/pull/53894
+[#53897]: https://github.com/home-assistant/core/pull/53897
+[#53902]: https://github.com/home-assistant/core/pull/53902
+[#53905]: https://github.com/home-assistant/core/pull/53905
+[#53906]: https://github.com/home-assistant/core/pull/53906
+[#53907]: https://github.com/home-assistant/core/pull/53907
+[#53912]: https://github.com/home-assistant/core/pull/53912
+[#53913]: https://github.com/home-assistant/core/pull/53913
+[#53917]: https://github.com/home-assistant/core/pull/53917
+[#53918]: https://github.com/home-assistant/core/pull/53918
+[#53921]: https://github.com/home-assistant/core/pull/53921
+[#53923]: https://github.com/home-assistant/core/pull/53923
+[#53927]: https://github.com/home-assistant/core/pull/53927
+[@AaronDavidSchneider]: https://github.com/AaronDavidSchneider
+[@Adminiuga]: https://github.com/Adminiuga
+[@Andrew55529]: https://github.com/Andrew55529
+[@B-Hartley]: https://github.com/B-Hartley
+[@BottlecapDave]: https://github.com/BottlecapDave
+[@Bre77]: https://github.com/Bre77
+[@BreakingBread0]: https://github.com/BreakingBread0
+[@Danielhiversen]: https://github.com/Danielhiversen
+[@EddyK69]: https://github.com/EddyK69
+[@Emilv2]: https://github.com/Emilv2
+[@Jc2k]: https://github.com/Jc2k
+[@Kane610]: https://github.com/Kane610
+[@Kirchoff]: https://github.com/Kirchoff
+[@Kr0llx]: https://github.com/Kr0llx
+[@Kuzj]: https://github.com/Kuzj
+[@LeszekSwirski]: https://github.com/LeszekSwirski
+[@MartinHjelmare]: https://github.com/MartinHjelmare
+[@MrHarcombe]: https://github.com/MrHarcombe
+[@OttoWinter]: https://github.com/OttoWinter
+[@PeteRager]: https://github.com/PeteRager
+[@RenierM26]: https://github.com/RenierM26
+[@Shulyaka]: https://github.com/Shulyaka
+[@Shutgun]: https://github.com/Shutgun
+[@StevenLooman]: https://github.com/StevenLooman
+[@TomBrien]: https://github.com/TomBrien
+[@aav7fl]: https://github.com/aav7fl
+[@agners]: https://github.com/agners
+[@alengwenus]: https://github.com/alengwenus
+[@allenporter]: https://github.com/allenporter
+[@amelchio]: https://github.com/amelchio
+[@andreasbrett]: https://github.com/andreasbrett
+[@bachya]: https://github.com/bachya
+[@balloob]: https://github.com/balloob
+[@bdr99]: https://github.com/bdr99
+[@bdraco]: https://github.com/bdraco
+[@bieniu]: https://github.com/bieniu
+[@bnordli]: https://github.com/bnordli
+[@bouwew]: https://github.com/bouwew
+[@bramkragten]: https://github.com/bramkragten
+[@bramstroker]: https://github.com/bramstroker
+[@broadcasttechie]: https://github.com/broadcasttechie
+[@bwduncan]: https://github.com/bwduncan
+[@cdce8p]: https://github.com/cdce8p
+[@cgtobi]: https://github.com/cgtobi
+[@chemelli74]: https://github.com/chemelli74
+[@cmroche]: https://github.com/cmroche
+[@cnico]: https://github.com/cnico
+[@ctalkington]: https://github.com/ctalkington
+[@cyberjunky]: https://github.com/cyberjunky
+[@davidjb]: https://github.com/davidjb
+[@defunctzombie]: https://github.com/defunctzombie
+[@dermotduffy]: https://github.com/dermotduffy
+[@dgomes]: https://github.com/dgomes
+[@elupus]: https://github.com/elupus
+[@emontnemery]: https://github.com/emontnemery
+[@engrbm87]: https://github.com/engrbm87
+[@epenet]: https://github.com/epenet
+[@esev]: https://github.com/esev
+[@farmio]: https://github.com/farmio
+[@felipediel]: https://github.com/felipediel
+[@firstof9]: https://github.com/firstof9
+[@flabbamann]: https://github.com/flabbamann
+[@fredericseiler]: https://github.com/fredericseiler
+[@frenck]: https://github.com/frenck
+[@gerard33]: https://github.com/gerard33
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[@gjong]: https://github.com/gjong
+[@hmmbob]: https://github.com/hmmbob
+[@janiversen]: https://github.com/janiversen
+[@jbouwh]: https://github.com/jbouwh
+[@jesserockz]: https://github.com/jesserockz
+[@jjlawren]: https://github.com/jjlawren
+[@johansmitsnl]: https://github.com/johansmitsnl
+[@joncar]: https://github.com/joncar
+[@jtitley]: https://github.com/jtitley
+[@knyar]: https://github.com/knyar
+[@kpine]: https://github.com/kpine
+[@ludeeus]: https://github.com/ludeeus
+[@matthewgottlieb]: https://github.com/matthewgottlieb
+[@mdz]: https://github.com/mdz
+[@mib1185]: https://github.com/mib1185
+[@micha91]: https://github.com/micha91
+[@milanmeu]: https://github.com/milanmeu
+[@muppet3000]: https://github.com/muppet3000
+[@natekspencer]: https://github.com/natekspencer
+[@nielstron]: https://github.com/nielstron
+[@oischinger]: https://github.com/oischinger
+[@oxan]: https://github.com/oxan
+[@p4p3r]: https://github.com/p4p3r
+[@pavoni]: https://github.com/pavoni
+[@peternijssen]: https://github.com/peternijssen
+[@posixx]: https://github.com/posixx
+[@pvizeli]: https://github.com/pvizeli
+[@r-t-s]: https://github.com/r-t-s
+[@raman325]: https://github.com/raman325
+[@rdfurman]: https://github.com/rdfurman
+[@rklomp]: https://github.com/rklomp
+[@ryanjohnsontv]: https://github.com/ryanjohnsontv
+[@sabeechen]: https://github.com/sabeechen
+[@samueltardieu]: https://github.com/samueltardieu
+[@scop]: https://github.com/scop
+[@sergeymaysak]: https://github.com/sergeymaysak
+[@sillyfrog]: https://github.com/sillyfrog
+[@stefano055415]: https://github.com/stefano055415
+[@teharris1]: https://github.com/teharris1
+[@thecode]: https://github.com/thecode
+[@timmo001]: https://github.com/timmo001
+[@tkdrob]: https://github.com/tkdrob
+[@uvjustin]: https://github.com/uvjustin
+[@vfreex]: https://github.com/vfreex
+[@viiru-]: https://github.com/viiru-
+[@vinnyfuria]: https://github.com/vinnyfuria
+[@web-dc]: https://github.com/web-dc
+[@yuvalabou]: https://github.com/yuvalabou
+[abode docs]: /integrations/abode/
+[accuweather docs]: /integrations/accuweather/
+[acer_projector docs]: /integrations/acer_projector/
+[adax docs]: /integrations/adax/
+[ads docs]: /integrations/ads/
+[advantage_air docs]: /integrations/advantage_air/
+[aemet docs]: /integrations/aemet/
+[aftership docs]: /integrations/aftership/
+[agent_dvr docs]: /integrations/agent_dvr/
+[airly docs]: /integrations/airly/
+[airnow docs]: /integrations/airnow/
+[airvisual docs]: /integrations/airvisual/
+[aladdin_connect docs]: /integrations/aladdin_connect/
+[alarm_control_panel docs]: /integrations/alarm_control_panel/
+[alarmdecoder docs]: /integrations/alarmdecoder/
+[alert docs]: /integrations/alert/
+[alexa docs]: /integrations/alexa/
+[alpha_vantage docs]: /integrations/alpha_vantage/
+[ambee docs]: /integrations/ambee/
+[ambiclimate docs]: /integrations/ambiclimate/
+[ambient_station docs]: /integrations/ambient_station/
+[analytics docs]: /integrations/analytics/
+[androidtv docs]: /integrations/androidtv/
+[anel_pwrctrl docs]: /integrations/anel_pwrctrl/
+[anthemav docs]: /integrations/anthemav/
+[apcupsd docs]: /integrations/apcupsd/
+[api docs]: /integrations/api/
+[apple_tv docs]: /integrations/apple_tv/
+[aqualogic docs]: /integrations/aqualogic/
+[aquostv docs]: /integrations/aquostv/
+[arcam_fmj docs]: /integrations/arcam_fmj/
+[arduino docs]: /integrations/arduino/
+[arest docs]: /integrations/arest/
+[arlo docs]: /integrations/arlo/
+[arwn docs]: /integrations/arwn/
+[asuswrt docs]: /integrations/asuswrt/
+[atag docs]: /integrations/atag/
+[aten_pe docs]: /integrations/aten_pe/
+[august docs]: /integrations/august/
+[aurora docs]: /integrations/aurora/
+[aurora_abb_powerone docs]: /integrations/aurora_abb_powerone/
+[automate docs]: /integrations/automate/
+[automation docs]: /integrations/automation/
+[avea docs]: /integrations/avea/
+[avion docs]: /integrations/avion/
+[awair docs]: /integrations/awair/
+[azure_devops docs]: /integrations/azure_devops/
+[bayesian docs]: /integrations/bayesian/
+[bbb_gpio docs]: /integrations/bbb_gpio/
+[bbox docs]: /integrations/bbox/
+[beewi_smartclim docs]: /integrations/beewi_smartclim/
+[bh1750 docs]: /integrations/bh1750/
+[bitcoin docs]: /integrations/bitcoin/
+[bizkaibus docs]: /integrations/bizkaibus/
+[blackbird docs]: /integrations/blackbird/
+[blebox docs]: /integrations/blebox/
+[blink docs]: /integrations/blink/
+[blinksticklight docs]: /integrations/blinksticklight/
+[blinkt docs]: /integrations/blinkt/
+[blockchain docs]: /integrations/blockchain/
+[bloomsky docs]: /integrations/bloomsky/
+[bluesound docs]: /integrations/bluesound/
+[bme280 docs]: /integrations/bme280/
+[bme680 docs]: /integrations/bme680/
+[bmp280 docs]: /integrations/bmp280/
+[bmw_connected_drive docs]: /integrations/bmw_connected_drive/
+[bond docs]: /integrations/bond/
+[bosch_shc docs]: /integrations/bosch_shc/
+[braviatv docs]: /integrations/braviatv/
+[broadlink docs]: /integrations/broadlink/
+[brother docs]: /integrations/brother/
+[brottsplatskartan docs]: /integrations/brottsplatskartan/
+[brunt docs]: /integrations/brunt/
+[bsblan docs]: /integrations/bsblan/
+[buienradar docs]: /integrations/buienradar/
+[caldav docs]: /integrations/caldav/
+[camera docs]: /integrations/camera/
+[canary docs]: /integrations/canary/
+[cast docs]: /integrations/cast/
+[cert_expiry docs]: /integrations/cert_expiry/
+[citybikes docs]: /integrations/citybikes/
+[clementine docs]: /integrations/clementine/
+[climacell docs]: /integrations/climacell/
+[climate docs]: /integrations/climate/
+[cloud docs]: /integrations/cloud/
+[cmus docs]: /integrations/cmus/
+[co2signal docs]: /integrations/co2signal/
+[coinbase docs]: /integrations/coinbase/
+[compensation docs]: /integrations/compensation/
+[config docs]: /integrations/config/
+[control4 docs]: /integrations/control4/
+[coronavirus docs]: /integrations/coronavirus/
+[debugpy docs]: /integrations/debugpy/
+[deconz docs]: /integrations/deconz/
+[default_config docs]: /integrations/default_config/
+[demo docs]: /integrations/demo/
+[devolo_home_control docs]: /integrations/devolo_home_control/
+[dht docs]: /integrations/dht/
+[dsmr docs]: /integrations/dsmr/
+[dsmr_reader docs]: /integrations/dsmr_reader/
+[dwd_weather_warnings docs]: /integrations/dwd_weather_warnings/
+[dynalite docs]: /integrations/dynalite/
+[ebox docs]: /integrations/ebox/
+[ecobee docs]: /integrations/ecobee/
+[edl21 docs]: /integrations/edl21/
+[emulated_roku docs]: /integrations/emulated_roku/
+[energy docs]: /integrations/energy/
+[enphase_envoy docs]: /integrations/enphase_envoy/
+[epsonworkforce docs]: /integrations/epsonworkforce/
+[esphome docs]: /integrations/esphome/
+[ezviz docs]: /integrations/ezviz/
+[fan docs]: /integrations/fan/
+[fastdotcom docs]: /integrations/fastdotcom/
+[flipr docs]: /integrations/flipr/
+[flunearyou docs]: /integrations/flunearyou/
+[foobot docs]: /integrations/foobot/
+[forecast_solar docs]: /integrations/forecast_solar/
+[freedompro docs]: /integrations/freedompro/
+[fritz docs]: /integrations/fritz/
+[fritzbox docs]: /integrations/fritzbox/
+[fritzbox_netmonitor docs]: /integrations/fritzbox_netmonitor/
+[fronius docs]: /integrations/fronius/
+[frontend docs]: /integrations/frontend/
+[garmin_connect docs]: /integrations/garmin_connect/
+[generic docs]: /integrations/generic/
+[generic_hygrostat docs]: /integrations/generic_hygrostat/
+[gios docs]: /integrations/gios/
+[glances docs]: /integrations/glances/
+[goalzero docs]: /integrations/goalzero/
+[gogogate2 docs]: /integrations/gogogate2/
+[google docs]: /integrations/google/
+[google_assistant docs]: /integrations/google_assistant/
+[gree docs]: /integrations/gree/
+[group docs]: /integrations/group/
+[growatt_server docs]: /integrations/growatt_server/
+[guardian docs]: /integrations/guardian/
+[hassio docs]: /integrations/hassio/
+[hddtemp docs]: /integrations/hddtemp/
+[history docs]: /integrations/history/
+[homeassistant docs]: /integrations/homeassistant/
+[homekit docs]: /integrations/homekit/
+[homekit_controller docs]: /integrations/homekit_controller/
+[homematicip_cloud docs]: /integrations/homematicip_cloud/
+[honeywell docs]: /integrations/honeywell/
+[htu21d docs]: /integrations/htu21d/
+[huawei_lte docs]: /integrations/huawei_lte/
+[hue docs]: /integrations/hue/
+[huisbaasje docs]: /integrations/huisbaasje/
+[humidifier docs]: /integrations/humidifier/
+[hyperion docs]: /integrations/hyperion/
+[ihc docs]: /integrations/ihc/
+[influxdb docs]: /integrations/influxdb/
+[insteon docs]: /integrations/insteon/
+[integration docs]: /integrations/integration/
+[iqvia docs]: /integrations/iqvia/
+[isy994 docs]: /integrations/isy994/
+[jewish_calendar docs]: /integrations/jewish_calendar/
+[juicenet docs]: /integrations/juicenet/
+[kaiterra docs]: /integrations/kaiterra/
+[knx docs]: /integrations/knx/
+[lacrosse docs]: /integrations/lacrosse/
+[lcn docs]: /integrations/lcn/
+[light docs]: /integrations/light/
+[litterrobot docs]: /integrations/litterrobot/
+[lock docs]: /integrations/lock/
+[luftdaten docs]: /integrations/luftdaten/
+[lutron_caseta docs]: /integrations/lutron_caseta/
+[lyft docs]: /integrations/lyft/
+[matrix docs]: /integrations/matrix/
+[mazda docs]: /integrations/mazda/
+[melcloud docs]: /integrations/melcloud/
+[meteoclimatic docs]: /integrations/meteoclimatic/
+[metoffice docs]: /integrations/metoffice/
+[mfi docs]: /integrations/mfi/
+[mhz19 docs]: /integrations/mhz19/
+[mill docs]: /integrations/mill/
+[mobile_app docs]: /integrations/mobile_app/
+[modbus docs]: /integrations/modbus/
+[modern_forms docs]: /integrations/modern_forms/
+[motioneye docs]: /integrations/motioneye/
+[mqtt docs]: /integrations/mqtt/
+[mutesync docs]: /integrations/mutesync/
+[mysensors docs]: /integrations/mysensors/
+[nam docs]: /integrations/nam/
+[nederlandse_spoorwegen docs]: /integrations/nederlandse_spoorwegen/
+[nest docs]: /integrations/nest/
+[netatmo docs]: /integrations/netatmo/
+[network docs]: /integrations/network/
+[nexia docs]: /integrations/nexia/
+[nfandroidtv docs]: /integrations/nfandroidtv/
+[nissan_leaf docs]: /integrations/nissan_leaf/
+[notion docs]: /integrations/notion/
+[nws docs]: /integrations/nws/
+[ondilo_ico docs]: /integrations/ondilo_ico/
+[onkyo docs]: /integrations/onkyo/
+[opencv docs]: /integrations/opencv/
+[openevse docs]: /integrations/openevse/
+[opengarage docs]: /integrations/opengarage/
+[openuv docs]: /integrations/openuv/
+[owntracks docs]: /integrations/owntracks/
+[philips_js docs]: /integrations/philips_js/
+[plex docs]: /integrations/plex/
+[plugwise docs]: /integrations/plugwise/
+[point docs]: /integrations/point/
+[powerwall docs]: /integrations/powerwall/
+[prometheus docs]: /integrations/prometheus/
+[prosegur docs]: /integrations/prosegur/
+[ps4 docs]: /integrations/ps4/
+[qnap docs]: /integrations/qnap/
+[radiotherm docs]: /integrations/radiotherm/
+[rainbird docs]: /integrations/rainbird/
+[rainforest_eagle docs]: /integrations/rainforest_eagle/
+[rainmachine docs]: /integrations/rainmachine/
+[recollect_waste docs]: /integrations/recollect_waste/
+[recorder docs]: /integrations/recorder/
+[renault docs]: /integrations/renault/
+[rfxtrx docs]: /integrations/rfxtrx/
+[rituals_perfume_genie docs]: /integrations/rituals_perfume_genie/
+[roku docs]: /integrations/roku/
+[roon docs]: /integrations/roon/
+[rova docs]: /integrations/rova/
+[rpi_rf docs]: /integrations/rpi_rf/
+[samsungtv docs]: /integrations/samsungtv/
+[script docs]: /integrations/script/
+[sense docs]: /integrations/sense/
+[sensor docs]: /integrations/sensor/
+[sentry docs]: /integrations/sentry/
+[shell_command docs]: /integrations/shell_command/
+[shelly docs]: /integrations/shelly/
+[sia docs]: /integrations/sia/
+[simplisafe docs]: /integrations/simplisafe/
+[siren docs]: /integrations/siren/
+[skybell docs]: /integrations/skybell/
+[slack docs]: /integrations/slack/
+[sma docs]: /integrations/sma/
+[smartthings docs]: /integrations/smartthings/
+[solaredge docs]: /integrations/solaredge/
+[sonos docs]: /integrations/sonos/
+[speedtestdotnet docs]: /integrations/speedtestdotnet/
+[spider docs]: /integrations/spider/
+[ssdp docs]: /integrations/ssdp/
+[stream docs]: /integrations/stream/
+[surepetcare docs]: /integrations/surepetcare/
+[switcher_kis docs]: /integrations/switcher_kis/
+[synology_dsm docs]: /integrations/synology_dsm/
+[system_bridge docs]: /integrations/system_bridge/
+[tado docs]: /integrations/tado/
+[tag docs]: /integrations/tag/
+[tasmota docs]: /integrations/tasmota/
+[telegram_bot docs]: /integrations/telegram_bot/
+[temper docs]: /integrations/temper/
+[template docs]: /integrations/template/
+[tensorflow docs]: /integrations/tensorflow/
+[tesla docs]: /integrations/tesla/
+[thermoworks_smoke docs]: /integrations/thermoworks_smoke/
+[tibber docs]: /integrations/tibber/
+[tile docs]: /integrations/tile/
+[tplink docs]: /integrations/tplink/
+[trend docs]: /integrations/trend/
+[unifi docs]: /integrations/unifi/
+[upnp docs]: /integrations/upnp/
+[uptime docs]: /integrations/uptime/
+[uptimerobot docs]: /integrations/uptimerobot/
+[utility_meter docs]: /integrations/utility_meter/
+[vallox docs]: /integrations/vallox/
+[velux docs]: /integrations/velux/
+[vesync docs]: /integrations/vesync/
+[vicare docs]: /integrations/vicare/
+[waterfurnace docs]: /integrations/waterfurnace/
+[waze_travel_time docs]: /integrations/waze_travel_time/
+[webhook docs]: /integrations/webhook/
+[webostv docs]: /integrations/webostv/
+[websocket_api docs]: /integrations/websocket_api/
+[wemo docs]: /integrations/wemo/
+[wirelesstag docs]: /integrations/wirelesstag/
+[wled docs]: /integrations/wled/
+[workday docs]: /integrations/workday/
+[wunderground docs]: /integrations/wunderground/
+[xiaomi_miio docs]: /integrations/xiaomi_miio/
+[yale_smart_alarm docs]: /integrations/yale_smart_alarm/
+[yamaha_musiccast docs]: /integrations/yamaha_musiccast/
+[youless docs]: /integrations/youless/
+[zeroconf docs]: /integrations/zeroconf/
+[zha docs]: /integrations/zha/
+[zwave docs]: /integrations/zwave/
+[zwave_js docs]: /integrations/zwave_js/
diff --git a/source/_posts/2021-08-24-supervisor-update.markdown b/source/_posts/2021-08-24-supervisor-update.markdown
new file mode 100644
index 000000000000..31f6f2f03010
--- /dev/null
+++ b/source/_posts/2021-08-24-supervisor-update.markdown
@@ -0,0 +1,62 @@
+---
+title: "Supervisor update"
+description: "Upcoming changes to the Supervisor"
+date: 2021-08-24 00:00:00
+date_formatted: "August 24, 2021"
+comments: true
+author: Joakim Sørensen
+author_twitter: ludeeus
+categories:
+ - Announcements
+ - Supervisor
+---
+
+## Renaming snapshot to backup
+
+"Snapshot" is a term that we have been using in the Supervisor since the beginning,
+but it's not very descriptive for those that do not know what it is.
+Over the next few weeks, we will start using "backup"
+in all our software and documentation.
+
+The functionality of it does not change, this is just a rename to make it more understandable.
+
+## Supervised installations
+
+
+Having a supervisor does not make it a supervised installation, Home Assistant Operating System also has this, the information below does not apply to Home Assistant Operating System.
+
+
+While we try not to break supervised installations, we do have a few things we need to change.
+These adjustments you have to manually apply to your installation. Without these adjustments you will start to see warnings in your logs, and your installation will eventually be marked as unsupported.
+
+If you are interested to make changes required on supervised installations more maintainable, have a look at the [blog on the developer site][dev_blog].
+
+As an alternative to doing these adjustments, you can migrate your installation to [Home Assistant Operating System][installation_docs].
+
+## Bullseye
+
+Two weeks ago Debian 11 (Bullseye) was released. The upcoming version of the Supervisor will recognize that version as a supported Operating System. This means that if you are running Home Assistant Supervised, you can start upgrading that.
+
+Support for the previous version (Debian 10 (Buster)) is now deprecated and will be removed in the first version of the Supervisor after the 4 months grace period.
+This means that within the next 4 months you need to update to Debian 11.
+
+### Environment variables
+
+There are a few environment variables that you have to add in order to make the Supervisor work properly with newer versions of the Supervisor.
+These variables have to be added to the run command for the Supervisor container, on most installations this is a script called from a service file.
+
+- `SUPERVISOR_SHARE` - The path to the directory for the Supervisor data files, typically `/usr/share/hassio`.
+- `SUPERVISOR_NAME` - The name of the supervisor container, typically `hassio_supervisor`
+- `SUPERVISOR_MACHINE` - The machine you are using. For a list of machine types, [have a look here][machine_types]
+
+### OS Agent
+
+Recently, we created an [OS Agent][os_agent]. OS Agent allows for better communication between the host OS and the Supervisor which will enable new features.
+You can find the installation instructions for OS Agent in its [GitHub repository][os_agent].
+
+If you you are interested we have also just published a [blog on the developer site][dev_blog].
+
+[os_agent]: https://github.com/home-assistant/os-agent
+[dev_blog]: https://developers.home-assistant.io/blog/2021/08/24/supervisor_update/
+[installation_docs]: /installation/
+[machine_types]: https://github.com/home-assistant/supervised-installer#supported-machine-types
diff --git a/source/_redirects b/source/_redirects
index a8fbd2f4e2a7..8f7a1944841b 100644
--- a/source/_redirects
+++ b/source/_redirects
@@ -7,6 +7,10 @@
/get-blueprints https://community.home-assistant.io/c/blueprints-exchange/53
/latest-security-alert /blog/2021/01/23/security-disclosure2/
+# Redirect for Energy
+/energy /home-energy-management
+/integrations/energy /docs/energy
+
# Older development pages
/developers https://developers.home-assistant.io
/developers/add_new_platform https://developers.home-assistant.io/docs/creating_platform_index/
diff --git a/source/blue/index.html b/source/blue/index.html
index 5e7b98020749..d9737a80fd03 100644
--- a/source/blue/index.html
+++ b/source/blue/index.html
@@ -1,17 +1,9 @@
---
+layout: landingpage
title: "Home Assistant Blue!"
description: "Where style and performance meet privacy"
-sidebar: false
-is_homepage: true
-feedback: false
-body_id: blue
-show_title: false
-og_image: /images/blue/blue_hero.jpg
----
-
-
-
-
+date: 2020-12-12
+tagline: >-
Home Assistant
Blue
-
We challenged ourselves: what would the perfect home automation hub look
like. Not just software, but also hardware and looks.
-
+
The result is the limited edition Home Assistant Blue bundle. Hardware
that is affordable and fast, packed in a gorgeous case and powered by
the most powerful home automation software on the planet: Home
Assistant.
-
-
LIMITED EDITION
-
+
+
LIMITED EDITION
+
$140
*
-
+
-
+
BUY NOW
-
+
* Price does not include taxes and import fees
@@ -731,7 +725,7 @@
FAQs
-
+
diff --git a/source/home-energy-management/index.html b/source/home-energy-management/index.html
new file mode 100644
index 000000000000..86f9370ef080
--- /dev/null
+++ b/source/home-energy-management/index.html
@@ -0,0 +1,85 @@
+---
+layout: landingpage
+title: "Home Energy Management"
+date: 2021-07-28
+description: "Monitor your energy usage, transition to sustainable energy and save money"
+hero_image: /images/energy/hero.jpg
+og_image: /images/blog/2021-08-energy/social.png
+frontpage_image: /images/frontpage/energy-frontpage.jpg
+tagline: The world is heating up. Together we can fix that.
+sections:
+ - title: "Monitor usage"
+ description: "Easily track your different power sources and their tariffs."
+ image: /images/energy/vector-graph.png
+ entries:
+ - title: "Know where it goes."
+ description: "Home Assistant shows at a glance how much you're consuming, producing and where this energy is going."
+ image: /images/energy/distribution.png
+ - title: "Keep an eye on your devices."
+ description: "Track the energy use of individual devices to see their impact on your energy consumption."
+ image: /images/energy/individual_devices.png
+
+ - title: "Supercharge your solar panels"
+ description: "Schedule power usage based on solar production predictions."
+ image: /images/energy/vector-sun.png
+ entries:
+ - title: "Time your usage."
+ description: "It’s cheaper to consume the energy you produce than to give it back to the grid. Home Assistant helps you conserve the energy you don't use for later."
+ image: /images/blog/2021-08-energy/solar-production.png
+ style: >-
+ background: rgb(255,244,201);
+ background: radial-gradient(at bottom left, rgb(255, 244, 201) 0%, rgb(255, 252, 223) 15%, rgb(255, 221, 80) 100%);
+ border-radius: 15px;
+
+ - title: "Use any hardware"
+ description: ""
+ image: /images/energy/vector-connect.png
+ entries:
+ - title: "Bring your own hardware"
+ description: "Home Assistant is vendor agnostic and there is no vendor lock-in: we work with any device or service that allows us to retrieve the data."
+ image: /images/blue/blue_hero.jpg
+ read_more: /integrations/#energy
+ - title: "SlimmeLezer"
+ description: >
+ We created SlimmeLezer, a device that connects to electricity meters with P1 ports and makes the data locally available in Home Assistant.
+ image: /images/docs/energy/slimmelezer.jpg
+ read_more: /docs/energy/electricity-grid/#connect-using-a-p1-port
+ - title: "Home Assistant Glow."
+ description: "We created Home Assistant Glow, a device that reads the consumption LED on your electricity meter and make it locally available in Home Assistant."
+ image: /images/docs/energy/home-assistant-glow.jpg
+ image_description: "Home Assistant Glow attached to an energy meter"
+ read_more: /docs/energy/electricity-grid/#reading-the-meter-via-a-pulse-counter
+
+ - title: "Track your costs"
+ description: "Home Assistant helps you keep track of the costs and compensation for your energy consumption and production."
+ image: /images/energy/vector-money.png
+ entries:
+ - title: "Consumption overview."
+ description: "Get an overview of your energy consumption."
+ image: /images/energy/cost.png
+ style: >-
+ background: rgb(201,255,224);
+ background: linear-gradient(90deg, rgba(0,255,102,0.3925770991990546) 0%, rgba(223,255,235,1) 85%, rgba(201,255,224,1) 100%);
+ border-radius: 15px;
+
+---
+
+
+
+
Home Energy Management
+
+ With Home Assistant we want to do our part to help take on the climate crisis, and help you do the same. One part of fighting the climate crisis is making sure our homes are energy efficient and use low-carbon energy sources.
+
+ Home Assistant helps you monitor your energy usage, transition to sustainable energy and save money.
+