diff --git a/.github/workflows/add_prs_to_project.yml b/.github/workflows/add_prs_to_project.yml
index 922630f6d19..c48aea72c9b 100644
--- a/.github/workflows/add_prs_to_project.yml
+++ b/.github/workflows/add_prs_to_project.yml
@@ -13,7 +13,7 @@ jobs:
- name: Generate app token
id: token
# Pinned to a specific version of the action for security reasons
- uses: tibdex/github-app-token@b62528385c34dbc9f38e5f4225ac829252d1ea92 # v1.8.0
+ uses: tibdex/github-app-token@0914d50df753bbc42180d982a6550f195390069f # v2.0.0
with:
app_id: ${{ secrets.PROJECTS_APP_ID }}
private_key: ${{ secrets.PROJECTS_APP_PEM }}
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 23bf49f1fa8..e6974550d16 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -8,7 +8,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out files from GitHub
- uses: actions/checkout@v3.6.0
+ uses: actions/checkout@v4.0.0
- name: Setting up Node.js
uses: actions/setup-node@v3.8.1
with:
@@ -25,7 +25,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out files from GitHub
- uses: actions/checkout@v3.6.0
+ uses: actions/checkout@v4.0.0
- name: Setting up Node.js
uses: actions/setup-node@v3.8.1
with:
diff --git a/CODEOWNERS b/CODEOWNERS
index 979c8f57e93..10fb240d8bf 100644
--- a/CODEOWNERS
+++ b/CODEOWNERS
@@ -23,7 +23,6 @@ source/_integrations/airnow.markdown @asymworks
source/_integrations/airq.markdown @Sibgatulin @dl2080
source/_integrations/airthings.markdown @danielhiversen
source/_integrations/airthings_ble.markdown @vincegio
-source/_integrations/airtouch4.markdown @LonePurpleWolf
source/_integrations/airvisual.markdown @bachya
source/_integrations/airvisual_pro.markdown @bachya
source/_integrations/airzone.markdown @Noltari
@@ -124,9 +123,11 @@ source/_integrations/cloudflare.markdown @ludeeus @ctalkington
source/_integrations/coinbase.markdown @tombrien
source/_integrations/color_extractor.markdown @GenericStudent
source/_integrations/comed.markdown @tronikos
+source/_integrations/comelit.markdown @chemelli74
source/_integrations/comfoconnect.markdown @michaelarnauts
source/_integrations/command_line.markdown @gjohansson-ST
source/_integrations/compensation.markdown @Petro31
+source/_integrations/coned.markdown @tronikos
source/_integrations/config.markdown @home-assistant/core
source/_integrations/configurator.markdown @home-assistant/core
source/_integrations/control4.markdown @lawtancool
@@ -164,7 +165,6 @@ source/_integrations/digital_ocean.markdown @fabaff
source/_integrations/discogs.markdown @thibmaek
source/_integrations/discord.markdown @tkdrob
source/_integrations/discovergy.markdown @jpbede
-source/_integrations/discovery.markdown @home-assistant/core
source/_integrations/dlink.markdown @tkdrob
source/_integrations/dlna_dmr.markdown @StevenLooman @chishm
source/_integrations/dlna_dms.markdown @chishm
@@ -175,9 +175,8 @@ source/_integrations/dormakaba_dkey.markdown @emontnemery
source/_integrations/dremel_3d_printer.markdown @tkdrob
source/_integrations/dsmr.markdown @Robbie1221 @frenck
source/_integrations/dsmr_reader.markdown @depl0y @glodenox
-source/_integrations/dunehd.markdown @bieniu
source/_integrations/duotecno.markdown @cereal2nd
-source/_integrations/dwd_weather_warnings.markdown @runningman84 @stephan192 @Hummel95 @andarotajo
+source/_integrations/dwd_weather_warnings.markdown @runningman84 @stephan192 @andarotajo
source/_integrations/dynalite.markdown @ziv1234
source/_integrations/easyenergy.markdown @klaasnicolaas
source/_integrations/ecobee.markdown @marthoc @marcolivierarsenault
@@ -203,7 +202,7 @@ source/_integrations/energy.markdown @home-assistant/core
source/_integrations/energyzero.markdown @klaasnicolaas
source/_integrations/enigma2.markdown @fbradyirl
source/_integrations/enocean.markdown @bdurrer
-source/_integrations/enphase_envoy.markdown @gtdiehl
+source/_integrations/enphase_envoy.markdown @bdraco @cgarwood @dgomes @joostlek
source/_integrations/entur_public_transport.markdown @hfurubotten
source/_integrations/environment_canada.markdown @gwww @michaeldavie
source/_integrations/envisalink.markdown @ufodone
@@ -309,6 +308,8 @@ source/_integrations/home_plus_control.markdown @chemaaa
source/_integrations/homeassistant.markdown @home-assistant/core
source/_integrations/homeassistant_alerts.markdown @home-assistant/core
source/_integrations/homeassistant_hardware.markdown @home-assistant/core
+source/_integrations/homeassistant_sky_connect.markdown @home-assistant/core
+source/_integrations/homeassistant_yellow.markdown @home-assistant/core
source/_integrations/homekit.markdown @bdraco
source/_integrations/homekit_controller.markdown @Jc2k @bdraco
source/_integrations/homematic.markdown @pvizeli @danielperna84
@@ -351,7 +352,7 @@ source/_integrations/intesishome.markdown @jnimmo
source/_integrations/ios.markdown @robbiet480
source/_integrations/iotawatt.markdown @gtdiehl @jyavenard
source/_integrations/iperf3.markdown @rohankapoorcom
-source/_integrations/ipma.markdown @dgomes @abmantis
+source/_integrations/ipma.markdown @dgomes
source/_integrations/iqvia.markdown @bachya
source/_integrations/irish_rail_transport.markdown @ttroy50
source/_integrations/islamic_prayer_times.markdown @engrbm87
@@ -386,6 +387,7 @@ source/_integrations/landisgyr_heat_meter.markdown @vpathuis
source/_integrations/lastfm.markdown @joostlek
source/_integrations/launch_library.markdown @ludeeus @DurgNomis-drol
source/_integrations/laundrify.markdown @xLarry
+source/_integrations/lawn_mower.markdown @home-assistant/core
source/_integrations/lcn.markdown @alengwenus
source/_integrations/ld2410_ble.markdown @930913
source/_integrations/led_ble.markdown @bdraco
@@ -421,6 +423,7 @@ source/_integrations/mastodon.markdown @fabaff
source/_integrations/matter.markdown @home-assistant/matter
source/_integrations/mazda.markdown @bdr99
source/_integrations/meater.markdown @Sotolotl @emontnemery
+source/_integrations/media_extractor.markdown @joostlek
source/_integrations/media_player.markdown @home-assistant/core
source/_integrations/media_source.markdown @hunterjm
source/_integrations/mediaroom.markdown @dgomes
@@ -521,6 +524,7 @@ source/_integrations/opnsense.markdown @mtreinish
source/_integrations/opower.markdown @tronikos
source/_integrations/oralb.markdown @bdraco @Lash-L
source/_integrations/oru.markdown @bvlaicu
+source/_integrations/oru_opower.markdown @tronikos
source/_integrations/otbr.markdown @home-assistant/core
source/_integrations/overkiz.markdown @imicknl @vlebourl @tetienne @nyroDev
source/_integrations/ovo_energy.markdown @timmo001
@@ -591,7 +595,6 @@ source/_integrations/renson.markdown @jimmyd-be
source/_integrations/reolink.markdown @starkillerOG
source/_integrations/repairs.markdown @home-assistant/core
source/_integrations/repetier.markdown @MTrab @ShadowBr0ther
-source/_integrations/rest.markdown @epenet
source/_integrations/rexel.markdown @imicknl @vlebourl @tetienne @nyroDev
source/_integrations/rflink.markdown @javicalle
source/_integrations/rfxtrx.markdown @danielhiversen @elupus @RobBie1221
@@ -607,7 +610,7 @@ source/_integrations/roon.markdown @pavoni
source/_integrations/rpi_power.markdown @shenxn @swetoast
source/_integrations/rss_feed_template.markdown @home-assistant/core
source/_integrations/rtsp_to_webrtc.markdown @allenporter
-source/_integrations/ruckus_unleashed.markdown @gabe565
+source/_integrations/ruckus_unleashed.markdown @gabe565 @lanrat
source/_integrations/ruuvi_gateway.markdown @akx
source/_integrations/ruuvitag_ble.markdown @akx
source/_integrations/rympro.markdown @OnFreund @elad-bar @maorcc
@@ -617,8 +620,9 @@ source/_integrations/saj.markdown @fredericvl
source/_integrations/samsungtv.markdown @chemelli74 @epenet
source/_integrations/scene.markdown @home-assistant/core
source/_integrations/schedule.markdown @home-assistant/core
+source/_integrations/schlage.markdown @dknowles2
source/_integrations/schluter.markdown @prairieapps
-source/_integrations/scrape.markdown @fabaff @gjohansson-ST @epenet
+source/_integrations/scrape.markdown @fabaff @gjohansson-ST
source/_integrations/screenaway.markdown @starkillerOG
source/_integrations/screenlogic.markdown @dieselrabbit @bdraco
source/_integrations/script.markdown @home-assistant/core
@@ -708,7 +712,7 @@ source/_integrations/swiss_public_transport.markdown @fabaff
source/_integrations/switch.markdown @home-assistant/core
source/_integrations/switch_as_x.markdown @home-assistant/core
source/_integrations/switchbee.markdown @jafar-atili
-source/_integrations/switchbot.markdown @bdraco @danielhiversen @RenierM26 @murtas @Eloston @dsypniewski
+source/_integrations/switchbot.markdown @danielhiversen @RenierM26 @murtas @Eloston @dsypniewski
source/_integrations/switcher_kis.markdown @thecode
source/_integrations/switchmate.markdown @danielhiversen @qiz-li
source/_integrations/symfonisk.markdown @cgtobi @jjlawren
@@ -748,6 +752,7 @@ source/_integrations/tplink.markdown @rytilahti @thegardenmonkey
source/_integrations/tplink_omada.markdown @MarkGodwin
source/_integrations/traccar.markdown @ludeeus
source/_integrations/tractive.markdown @Danielhiversen @zhulik @bieniu
+source/_integrations/trafikverket_camera.markdown @gjohansson-ST
source/_integrations/trafikverket_ferry.markdown @gjohansson-ST
source/_integrations/trafikverket_train.markdown @endor-force @gjohansson-ST
source/_integrations/trafikverket_weatherstation.markdown @endor-force @gjohansson-ST
@@ -787,6 +792,7 @@ source/_integrations/vilfo.markdown @ManneW
source/_integrations/vivotek.markdown @HarlemSquirrel
source/_integrations/vizio.markdown @raman325
source/_integrations/vlc_telnet.markdown @rodripf @MartinHjelmare
+source/_integrations/vodafone_station.markdown @paoloantinori @chemelli74
source/_integrations/voice_assistant.markdown @balloob @synesthesiam
source/_integrations/voip.markdown @balloob @synesthesiam
source/_integrations/volumio.markdown @OnFreund
@@ -829,6 +835,7 @@ source/_integrations/yale_smart_alarm.markdown @gjohansson-ST
source/_integrations/yalexs_ble.markdown @bdraco
source/_integrations/yamaha_musiccast.markdown @vigonotion @micha91
source/_integrations/yandex_transport.markdown @rishatik92 @devbis
+source/_integrations/yardian.markdown @h3l1o5
source/_integrations/yeelight.markdown @zewelor @shenxn @starkillerOG @alexyao2015
source/_integrations/yeelightsunflower.markdown @lindsaymarkward
source/_integrations/yi.markdown @bachya
diff --git a/Gemfile.lock b/Gemfile.lock
index 506f6f7ccab..7cc8650cc18 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -27,7 +27,7 @@ GEM
ffi (1.15.5)
ffi (1.15.5-x64-mingw32)
forwardable-extended (2.6.0)
- google-protobuf (3.24.2)
+ google-protobuf (3.24.3)
http_parser.rb (0.8.0)
i18n (1.14.1)
concurrent-ruby (~> 1.0)
diff --git a/_config.yml b/_config.yml
index eeaaf6a4a5f..6d5e197cf17 100644
--- a/_config.yml
+++ b/_config.yml
@@ -109,9 +109,9 @@ social:
# Home Assistant release details
current_major_version: 2023
-current_minor_version: 8
-current_patch_version: 4
-date_released: 2023-08-24
+current_minor_version: 9
+current_patch_version: 2
+date_released: 2023-09-12
# Either # or the anchor link to latest release notes in the blog post.
# Must be prefixed with a # and have double quotes around it.
diff --git a/package-lock.json b/package-lock.json
index ce420040b1d..c3c648f0246 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -23,7 +23,7 @@
"textlint": "^13.3.3",
"textlint-filter-rule-comments": "^1.2.2",
"textlint-rule-common-misspellings": "^1.0.1",
- "textlint-rule-terminology": "^3.0.5"
+ "textlint-rule-terminology": "^4.0.0"
}
},
"node_modules/@aashutoshrathi/word-wrap": {
@@ -4069,9 +4069,9 @@
}
},
"node_modules/textlint-rule-terminology": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/textlint-rule-terminology/-/textlint-rule-terminology-3.0.5.tgz",
- "integrity": "sha512-IZw8byc4GjyccNjGwSMfy5OSxvjwTGk3IK3qMw2rJ0fsgCYQVlx5JThEQrs4CbWNQN6k2hAinIlxTzxgR00Hmw==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/textlint-rule-terminology/-/textlint-rule-terminology-4.0.0.tgz",
+ "integrity": "sha512-tbNpzDNLTVsqtDIMXEZNX2i1dvOqryME8Hknopq6Ze3TAjij5N0wBtG63frZLxJ9auE9fZse15sTi4Qe3arNZA==",
"dev": true,
"dependencies": {
"lodash": "^4.17.15",
@@ -4079,7 +4079,7 @@
"textlint-rule-helper": "^2.1.1"
},
"engines": {
- "node": ">=14"
+ "node": ">=18"
}
},
"node_modules/textlint-rule-terminology/node_modules/textlint-rule-helper": {
diff --git a/package.json b/package.json
index 11cc5df25d3..2cc22d0bbeb 100644
--- a/package.json
+++ b/package.json
@@ -18,7 +18,7 @@
"textlint": "^13.3.3",
"textlint-filter-rule-comments": "^1.2.2",
"textlint-rule-common-misspellings": "^1.0.1",
- "textlint-rule-terminology": "^3.0.5"
+ "textlint-rule-terminology": "^4.0.0"
},
"resolutions": {
"minimist": ">=1.2.5"
diff --git a/source/_docs/configuration/securing.markdown b/source/_docs/configuration/securing.markdown
index db6c9729a5a..5b73326e0be 100644
--- a/source/_docs/configuration/securing.markdown
+++ b/source/_docs/configuration/securing.markdown
@@ -9,7 +9,8 @@ One major advantage of Home Assistant is that it is not dependent on cloud servi
Here's the summary of what you *must* do to secure your Home Assistant system:
-- Configure [secrets](/docs/configuration/secrets/) (but do remember to back them up)
+- Centralize sensitive data in [secrets](/docs/configuration/secrets/) (but do remember to back them up)
+ - **Note**: Storing secrets in `secrets.yaml` does not encrypt them.
- Regularly keep the system up to date
## Remote Access
diff --git a/source/_docs/configuration/troubleshooting.markdown b/source/_docs/configuration/troubleshooting.markdown
index 9d84665e681..566ffc1eb59 100644
--- a/source/_docs/configuration/troubleshooting.markdown
+++ b/source/_docs/configuration/troubleshooting.markdown
@@ -104,22 +104,22 @@ The first thing you will need before reporting an issue online is debug logs and
### Enabling Debug Logging
-To enable debug logging for an integration, go to **Settings** > **Devices & Services** and select the integration. Select the triple dots for the integration giving you trouble and select **Enable Debug Logging**.
+To enable debug logging for an integration, go to **Settings** > **Devices & Services** > **Integrations** and go to the detail page of the integration. Select the **Enable Debug Logging** button on the left side of the integration detail page.
+
+
+
+ Example of Enable debug logging.
+
### Disable Debug Logging and Download Logs
-Once you enable debug logging, you ideally need to make the error happen. Run your automation, change up your device or whatever was giving you an error and then come back and disable Debug Logging. Disabling debug logging is the same as enabling, but now you will see **Disable Debug Logging**. After you disable debug logging, it will automatically prompt you to download your log file. Save this to a safe location to upload later.
-
-
-
- Example of Disable Debug Logging.
-
+Once you enable debug logging, you ideally need to make the error happen. Run your automation, change up your device or whatever was giving you an error and then come back and disable the debug logging. Disabling the debug logging is the same as enabling, but now the button says **Disable Debug Logging**. After you disable it, you will be automatically prompted you to download your log file. Save this to a safe location to upload later.
### Download Diagnostics
-After you download logs, you will also want to download the diagnostics for the integration giving you trouble. If the integration provides diagnostics, it will appear in the same menu that the Debug Logging toggle appeared.
+After you download logs, you will also want to download the diagnostics for the integration giving you trouble. If the integration provides diagnostics, it will appear in the three dot menu next to the integration configuration.
-
+
Example of Download Diagnostics.
diff --git a/source/_docs/energy/water.markdown b/source/_docs/energy/water.markdown
index 9fcd67e92af..496f83b70b4 100644
--- a/source/_docs/energy/water.markdown
+++ b/source/_docs/energy/water.markdown
@@ -24,6 +24,9 @@ Alternatively, the following shops sell ESPHome-based devices, that use a proxim
- [Slimme Watermeter Gateway](https://smartgateways.nl/product/slimme-watermeter-gateway/) (Dutch)
- [watermeterkit.nl](https://watermeterkit.nl/) (Dutch)
+Alternatively, the following shops sell ESPHome-based devices that use a 3-phase light sensor to detect a rotating disk in your water meter and convert this to the amount of water used in milliliters (ml).
+- [Muino water meter reader](https://watermeter.muino.nl/)
+
Maybe you like to build one yourself?
- Pieter Brinkman has quite a [nice blog article on how to create your own water sensor](https://www.pieterbrinkman.com/2022/02/02/build-a-cheap-water-usage-sensor-using-esphome-home-assistant-and-a-proximity-sensor/) using ESPHome, or [build a water meter](https://www.ztatz.nl/p1-monitor-watermeter/) that works with the [P1 Monitor](/integrations/p1_monitor) integration.
- [AI-on-the-edge-device](https://github.com/jomjol/AI-on-the-edge-device) is a project running on an ESP32-CAM and can be fully integrated into Home Assistant using the Home Assistant Discovery Functionality of MQTT. It digitalizes your gas/water/electricity meter display and provides its data in various ways.
diff --git a/source/_docs/z-wave/controllers.markdown b/source/_docs/z-wave/controllers.markdown
index 9ffbc80feba..e4600ba7b75 100644
--- a/source/_docs/z-wave/controllers.markdown
+++ b/source/_docs/z-wave/controllers.markdown
@@ -27,6 +27,8 @@ Users should upgrade the firmware on all 700 series controllers to version 7.17.
- Aeotec Z-Stick 7 USB stick (ZWA010) (the EU version is not recommended due to RF performance issues)
- Silicon Labs UZB-7 USB Stick (Silabs SLUSB7000A / SLUSB001A)
- Zooz S2 Stick 700 (ZST10 700)
+ - HomeSeer SmartStick+ G3
+ - HomeSeer Z-NET G3
- 500 series controllers
- Aeotec Z-Stick Gen5 (see note below)
@@ -35,6 +37,8 @@ Users should upgrade the firmware on all 700 series controllers to version 7.17.
- Sigma Designs UZB stick
- Vision USB stick - Gen5
- Z-Wave.Me UZB1 stick
+ - HomeSeer SmartStick+ G2
+ - HomeSeer Z-NET G2
- Raspberry Pi modules
- Aeotec Z-Pi 7 Raspberry Pi HAT/Shield (ZWA025, 700 series)
diff --git a/source/_includes/common-tasks/backups.md b/source/_includes/common-tasks/backups.md
index 18f71e269b7..2d714e8f7b0 100644
--- a/source/_includes/common-tasks/backups.md
+++ b/source/_includes/common-tasks/backups.md
@@ -1,6 +1,6 @@
## Backups
-Backup of your Home Assistant and add-on data and configuration. They are stored in a compressed archive file (.tar). Backups are made from the Supervisor Backups panel. There is also a service available that allows you to trigger the creation of a backup from an automation. Backups are stored in the `/backup` directory.
+Backup of your Home Assistant and add-on data and configuration. They are stored in a compressed archive file (.tar). Backups are made from the backups panel under {% my supervisor_backups title="**Settings** > **System** > **Backups**" %}. There is also a service available that allows you to trigger the creation of a backup from an automation. By default, backups are stored locally in the `/backup` directory.
A full backup includes the following directories:
@@ -12,16 +12,50 @@ A full backup includes the following directories:
A partial backup consists of any number of the above default directories and installed add-ons.
-### Making a Backup from the UI
+### Making a backup from the UI
-1. Go to {% my supervisor_backups title="Settings > System > Backups" %} in the UI.
-2. Click the **Create backup** button in the lower right.
+1. Go to {% my supervisor_backups title="**Settings** > **System** > **Backups**" %} in the UI.
+2. Select the **Create backup** button in the lower right.
3. Provide a name for the backup.
4. Choose full or partial.
-5. Choose to password protect or not. Password-protected backups cannot easily be browsed outside of Home Assistant OS.
-6. Click "Create" to begin the backup.
+5. Optionally, enable password protection.
+6. Select **Create** to begin the backup.
-### Restoring a Backup on a new install
+### Alternative: Creating a backup using the Home Assistant Command Line Interface
+
+1. `ha backups list` - lists backups and their slugnames
+2. `ha backups restore slugname` - restores a specific backup
+3. `ha backups new --name nameofbackup` - create a backup
+
+Use `ha help` to get more information about the command line usage.
+
+### Copying your backups to another location
+
+You might need a backup in case your system has crashed. If you only store them on the device itself, you won't be able to access them easily. We recommend that you copy them from `/backup` to another machine on occasion.
+
+There are multiple ways to store the backup on another device:
+
+- **Option 1**: Under {% my supervisor_backups title="**Settings** > **System** > **Backups**" %}, select the backup from the list.
+ - In the dialog, select the three dots menu and select **Download backup**.
+ - **Result**: The selected backup is stored in the **Downloads** folder of your computer.
+- **Option 2**: If you haven't already done so, [configure access to files on Home Assistant](/common-tasks/{{page.installation}}/#configuring-access-to-files), using one of the methods listed there.
+ - For example, [use the samba add-on](/common-tasks/{{page.installation}}/#installing-and-using-the-samba-add-on).
+ - In your file explorer, access Home Assistant, open the `backup` folder and copy the file to your computer.
+- **Option 3**: You can also change the default location for backups:
+ - [Add a network storage location](/common-tasks/{{page.installation}}/#network-storage) for backups.
+ - [Change the default location](/common-tasks/{{page.installation}}/#change-default-backup-location) for backups.
+
+- **Option 4**: Or even better, create an automation to handle that.
+- **Option 5**: Make use of a third-party add-on:
+ - [Google Drive Backup](https://github.com/sabeechen/hassio-google-drive-backup)
+ - [Dropbox Sync](https://github.com/danielwelch/hassio-dropbox-sync)
+ - [OneDrive Backup](https://github.com/lavinir/hassio-onedrive-backup)
+ - [Nextcloud Backup](https://github.com/Sebclem/hassio-nextcloud-backup)
+ - [Remote Backup (scp/rsync/rclone)](https://github.com/ikifar2012/remote-backup-addon)
+ - [Samba backup](https://github.com/thomasmauerer/hassio-addons/tree/master/samba-backup)
+ - [Syncthing](https://github.com/Poeschl/Hassio-Addons/tree/main/syncthing)
+
+### Restoring a backup
You can make use of backup which you have copied off of a previous install to restore to a new installation during the onboarding process. Follow the link at the bottom of the account creation page to upload your backup from the previous installation.
@@ -39,24 +73,3 @@ The length of time it takes to create or restore backup will depend on how much
If you're looking to slim down your backup, check if your configuration directory contains a large database file (`home-assistant_v2.db`). See the [`recorder`](/integrations/recorder/) integration page for options to keep your database data down to a size that won't cause issues. Note the keep days, purge interval, and include/exclude options.
When the restore is complete, Home Assistant will restart to apply the new settings. You will lose the connection to the UI and it will return once the restart is completed.
-
-### Creating backup using the Home Assistant Command Line Interface
-
-1. `ha backups list` - lists backups and their slugnames
-2. `ha backups restore slugname` - restores a specific backup
-3. `ha backups new --name nameofbackup` - create a backup
-
-Use `ha help` to get more information about the command line usage.
-
-
-### Copying your backups to another location
-
-You often need a backup in case your system has crashed. If you only store them on the crashed device, you won't be able to access them easily. We recommend that you manually copy them from `/backup` to another machine on occasion. Or even better, create an automation to handle that, or make use of one of the following add-ons:
-
-- [Google Drive Backup](https://github.com/sabeechen/hassio-google-drive-backup)
-- [Dropbox Sync](https://github.com/danielwelch/hassio-dropbox-sync)
-- [OneDrive Backup](https://github.com/lavinir/hassio-onedrive-backup)
-- [Nextcloud Backup](https://github.com/Sebclem/hassio-nextcloud-backup)
-- [Remote Backup (scp/rsync/rclone)](https://github.com/ikifar2012/remote-backup-addon)
-- [Samba backup](https://github.com/thomasmauerer/hassio-addons/tree/master/samba-backup)
-- [Syncthing](https://github.com/Poeschl/Hassio-Addons/tree/main/syncthing)
diff --git a/source/_includes/installation/container.md b/source/_includes/installation/container.md
index abf11f994d0..f5133d6dfa4 100644
--- a/source/_includes/installation/container.md
+++ b/source/_includes/installation/container.md
@@ -15,7 +15,7 @@ If you are using Docker then you need to be on at least version 19.03.9, ideally
Installation with Docker is straightforward. Adjust the following command so that:
-- `/PATH_TO_YOUR_CONFIG` points at the folder where you want to store your configuration and run it.
+- `/PATH_TO_YOUR_CONFIG` points at the folder where you want to store your configuration and run it. Make sure that you keep the `:/config` part.
- `MY_TIME_ZONE` is a [tz database name](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones), like `TZ=America/Los_Angeles`.
{% endif %}
diff --git a/source/_includes/installation/container/alternative.md b/source/_includes/installation/container/alternative.md
index d69f22beba4..a1bc4f71299 100644
--- a/source/_includes/installation/container/alternative.md
+++ b/source/_includes/installation/container/alternative.md
@@ -34,7 +34,7 @@ To use a Z-Wave USB stick for Z-Wave control, the HA Docker container needs extr
Adjust the following Terminal command as follows :
-- Replace `/PATH_TO_YOUR_CONFIG` points at the folder where you want to store your configuration
+- Replace `/PATH_TO_YOUR_CONFIG` points at the folder where you want to store your configuration - make sure that you keep the `:/config` part
- Replace `/PATH_TO_YOUR_USB_STICK` matches the path for your USB stick (e.g., `/dev/ttyACM0` for most Synology users)
- Replace "Australia/Melbourne" with [your timezone](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)
diff --git a/source/_integrations/adax.markdown b/source/_integrations/adax.markdown
index f8deed350ef..3d688bb5229 100644
--- a/source/_integrations/adax.markdown
+++ b/source/_integrations/adax.markdown
@@ -22,9 +22,10 @@ The local integrations only works with newer Adax heaters with both Bluetooth an
For the cloud integration, you'll need the Account ID (which can be found in the Adax Wifi app, pressing 'Account'). You will also need a credential, which you can create in the Adax app:
-1. Navigate to Account Tab,
-2. Select “Remote user client API”
-3. Select “Add Credential”
-4. Give some name to the created credential and copy the generated password.
+1. Navigate to the Account tab.
+2. Go to **Third party integrations**.
+3. Select **Remote API**.
+4. Select **Add Credential**.
+5. Give some name to the created credential (e.g. 'Home Assistant') and copy the generated password.
{% include integrations/config_flow.md %}
diff --git a/source/_integrations/airtouch4.markdown b/source/_integrations/airtouch4.markdown
index 994e2a5df41..2660789f7fe 100644
--- a/source/_integrations/airtouch4.markdown
+++ b/source/_integrations/airtouch4.markdown
@@ -6,8 +6,6 @@ ha_category:
ha_release: 2021.9
ha_iot_class: Local Polling
ha_config_flow: true
-ha_codeowners:
- - '@LonePurpleWolf'
ha_domain: airtouch4
ha_platforms:
- climate
diff --git a/source/_integrations/alert.markdown b/source/_integrations/alert.markdown
index 203d7c4b7a2..c3671c4a0f8 100644
--- a/source/_integrations/alert.markdown
+++ b/source/_integrations/alert.markdown
@@ -292,4 +292,23 @@ but you will still receive the done message.
entity_id: alert.garage_door
```
+Notifications sent to Home Assistant Companion apps support [replacing](https://companion.home-assistant.io/docs/notifications/notifications-basic/#replacing) and [clearing](https://companion.home-assistant.io/docs/notifications/notifications-basic/#replacing) notifications. To use these functions with alerts, set a `tag` in the message data, send `clear_notification` as the `done_message`, and use `mobile_app_*` as the notifier:
+
+```yaml
+alert:
+ garage_door:
+ name: Garage is open
+ done_message: clear_notification
+ entity_id: input_boolean.garage_door
+ state: "on"
+ repeat: 30
+ can_acknowledge: true
+ skip_first: true
+ notifiers:
+ - mobile_app_ryan
+ - mobile_app_kristen
+ data:
+ tag: garage-door
+```
+
[template]: /docs/configuration/templating/
diff --git a/source/_integrations/androidtv_remote.markdown b/source/_integrations/androidtv_remote.markdown
index d85192c60a9..2acdbd4de4e 100644
--- a/source/_integrations/androidtv_remote.markdown
+++ b/source/_integrations/androidtv_remote.markdown
@@ -30,9 +30,9 @@ For a quick introduction on how to get started with Android TV Remote, check out
## Media player
-This integration adds a `media_player` with basic playback and volume controls. The media player provides volume information and display name of current active app on the Android TV. Due to API limitations, the integration will not display the playback status. It is recommended to use this integration together with [Google Cast integration](https://www.home-assistant.io/integrations/cast/). Two media players can be combined into one using the [Universal Media Player](https://www.home-assistant.io/integrations/universal/) integration.
+This integration adds a `media_player` with basic playback and volume controls. The media player provides volume information and display name of current active app on the Android TV. Due to API limitations, the integration will not display the playback status. It is recommended to use this integration together with [Google Cast integration](/integrations/cast/). Two media players can be combined into one using the [Universal Media Player](/integrations/universal/) integration. See [Using with Google Cast](#using-with-google-cast) section for more details.
-Using the `media_player.play_media` service, you can launch applications via `Deep Links` and switch channels.
+Using the `media_player.play_media` service, you can launch applications via `Deep Links` and switch channels. Only `url` and `channel` media types are supported.
### Launching apps
@@ -72,7 +72,7 @@ target:
### Switch channels
-You can pass the channel number to switch the channel. The channel number must be an integer.
+You can pass the channel number to switch channels. The channel number must be an integer.
Example:
@@ -86,6 +86,46 @@ target:
entity_id: media_player.living_room_tv
```
+### Using with Google Cast
+
+Android TV Remote integration provides information about the power status of the device and gives you the ability to control playback. However, it does not provide information about the currently playing content (media title, duration, play/pause state, etc.). In turn, [Google Cast](/integrations/cast/) integration does not provide reliable information about the power status of the device (e.g. on Android TV Home Screen) and does not allow to control playback in Android apps without [MediaSession](https://developer.android.com/reference/android/media/session/MediaSession) support. However, it can display full information about the content being played in supported apps. For convenience, you can combine two media players into one using [Universal Media Player](/integrations/universal/) integration. Universal Media Player will automatically select the appropriate active media player entity.
+
+{% details "Example YAML configuration" %}
+
+Replace `media_player.living_room_tv_remote` with your Android TV Remote media player entity ID.
+Replace `media_player.living_room_tv_cast` with your Google Cast media player entity ID.
+
+```yaml
+media_player:
+ - platform: universal
+ name: living_room_tv
+ unique_id: living_room_tv
+ device_class: tv
+ children:
+ - media_player.living_room_tv_remote
+ - media_player.living_room_tv_cast
+ browse_media_entity: media_player.living_room_tv_cast
+ commands:
+ turn_off:
+ service: media_player.turn_off
+ data:
+ entity_id: media_player.living_room_tv_remote
+ turn_on:
+ service: media_player.turn_on
+ data:
+ entity_id: media_player.living_room_tv_remote
+ volume_up:
+ service: media_player.volume_up
+ data:
+ entity_id: media_player.living_room_tv_remote
+ volume_down:
+ service: media_player.volume_down
+ data:
+ entity_id: media_player.living_room_tv_remote
+```
+
+{% enddetails %}
+
## Remote
The remote allows you to send key commands to your Android TV device with the `remote.send_command` service.
diff --git a/source/_integrations/apprise.markdown b/source/_integrations/apprise.markdown
index 1e452ee7ecb..dcfce134999 100644
--- a/source/_integrations/apprise.markdown
+++ b/source/_integrations/apprise.markdown
@@ -22,7 +22,8 @@ To use Apprise supported notifications, add the following to your `configuration
```yaml
# Example configuration.yaml entry using URLs
notify:
- - platform: apprise
+ - name: NOTIFIER_NAME
+ platform: apprise
url: YOUR_APPRISE_URLS
```
@@ -32,7 +33,8 @@ You can also pre-define your own configuration files while storing them either r
# Example configuration.yaml entry using externally located Apprise
# Configuration Files/Sites:
notify:
- - platform: apprise
+ - name: NOTIFIER_NAME
+ platform: apprise
config: YOUR_APPRISE_CONFIG_URLS
```
@@ -41,7 +43,8 @@ There is no restriction on the number of URLs or Apprise Configuration locations
```yaml
# Example configuration.yaml entry using all options
notify:
- - platform: apprise
+ - name: NOTIFIER_NAME
+ platform: apprise
config: YOUR_APPRISE_CONFIG_URLS
url: YOUR_APPRISE_URLS
```
@@ -65,7 +68,7 @@ config:
## Example service call
```yaml
-- service: notify.apprise
+- service: notify.NOTIFIER_NAME
data:
message: "A message from Home Assistant"
```
@@ -73,7 +76,7 @@ config:
If you're using configuration files to store your Apprise URLs in, then you have the added bonus of associating tags with them. By default, Apprise in Home Assistant will only notify the elements that have no tags associated with them. You can optionally focus on only notifying a specific service based on the tag(s) you assigned them like so:
```yaml
-- service: notify.apprise
+- service: notify.NOTIFIER_NAME
data:
message: "A message from Home Assistant"
target: [
diff --git a/source/_integrations/devolo_home_network.markdown b/source/_integrations/devolo_home_network.markdown
index 90e6fc14f01..10826a4e1a2 100755
--- a/source/_integrations/devolo_home_network.markdown
+++ b/source/_integrations/devolo_home_network.markdown
@@ -60,13 +60,13 @@ Currently the following device types within Home Assistant are supported.
### Presence Detection
- Detect presence of devices connected to the main or the guest wifi
- - Updates every 10 seconds
+ - Updates every 15 seconds
- Automatically adds new devices as disabled entities unless disabled via system option
### Sensors
- Number of connected wifi clients
- - Updates every 10 seconds
+ - Updates every 15 seconds
- Is enabled by default
- Number of neighbored wifi networks
- Updates every 5 minutes
diff --git a/source/_integrations/dunehd.markdown b/source/_integrations/dunehd.markdown
index f926c6047d7..dd259068844 100644
--- a/source/_integrations/dunehd.markdown
+++ b/source/_integrations/dunehd.markdown
@@ -7,8 +7,6 @@ ha_iot_class: Local Polling
ha_release: 0.34
ha_domain: dunehd
ha_config_flow: true
-ha_codeowners:
- - '@bieniu'
ha_platforms:
- media_player
ha_integration_type: integration
diff --git a/source/_integrations/duotecno.markdown b/source/_integrations/duotecno.markdown
index b034a5bf4aa..20e400685f4 100644
--- a/source/_integrations/duotecno.markdown
+++ b/source/_integrations/duotecno.markdown
@@ -2,9 +2,9 @@
title: Duotecno
description: Access and control your Duotecno nodes.
ha_category:
- - Switch
- Cover
- Light
+ - Switch
ha_iot_class: Local Push
ha_release: '2023.8'
ha_config_flow: true
diff --git a/source/_integrations/dwd_weather_warnings.markdown b/source/_integrations/dwd_weather_warnings.markdown
index 4454636ac4d..c31d6a1dc17 100644
--- a/source/_integrations/dwd_weather_warnings.markdown
+++ b/source/_integrations/dwd_weather_warnings.markdown
@@ -10,7 +10,6 @@ ha_domain: dwd_weather_warnings
ha_codeowners:
- '@runningman84'
- '@stephan192'
- - '@Hummel95'
- '@andarotajo'
ha_platforms:
- sensor
diff --git a/source/_integrations/electric_kiwi.markdown b/source/_integrations/electric_kiwi.markdown
index b75ec25098f..117aeff6f68 100644
--- a/source/_integrations/electric_kiwi.markdown
+++ b/source/_integrations/electric_kiwi.markdown
@@ -10,6 +10,7 @@ ha_codeowners:
ha_domain: electric_kiwi
ha_config_flow: true
ha_platforms:
+ - select
- sensor
ha_integration_type: hub
---
diff --git a/source/_integrations/elmax.markdown b/source/_integrations/elmax.markdown
index 606de057f06..be38b91e26b 100644
--- a/source/_integrations/elmax.markdown
+++ b/source/_integrations/elmax.markdown
@@ -12,9 +12,8 @@ ha_domain: elmax
ha_platforms:
- alarm_control_panel
- binary_sensor
- - switch
- cover
- - alarm_control_panel
+ - switch
ha_integration_type: integration
---
diff --git a/source/_integrations/event.mqtt.markdown b/source/_integrations/event.mqtt.markdown
index ab01e916815..d1c62b8d286 100644
--- a/source/_integrations/event.mqtt.markdown
+++ b/source/_integrations/event.mqtt.markdown
@@ -2,7 +2,7 @@
title: "MQTT Event"
description: "Instructions on how to integrate MQTT events into Home Assistant."
ha_category:
- - Event
+ - Events
ha_release: 2023.8
ha_iot_class: Configurable
ha_domain: mqtt
@@ -221,3 +221,33 @@ The example below demonstrates how event attributes can be added to the event da
```bash
mosquitto_pub -h 127.0.0.1 -t home/doorbell/state -m '{"event_type": "press", "duration": 0.1}'
```
+
+### Example: processing event data using a value template
+
+In many cases, translation of an existing published payload is needed.
+The example config below translates the payload `{"Button1": {"Action": "SINGLE"}}` of
+the device `Button1` with event type `single` to the required format.
+An extra attribute `button` will be set to `Button1` and be added to the entity,
+but only if the `Action` property is set. Empty dictionaries will be ignored.
+
+{% raw %}
+
+```yaml
+mqtt:
+ - event:
+ name: "Desk button"
+ state_topic: "desk/button/state"
+ event_types:
+ - single
+ - double
+ device_class: "button"
+ value_template: |
+ { {% for key in value_json %}
+ {% if value_json[key].get("Action") %}
+ "button": "{{ key }}",
+ "event_type": "{{ value_json[key].Action | lower }}"
+ {% endif %}
+ {% endfor %} }
+```
+
+{% endraw %}
diff --git a/source/_integrations/fritzbox.markdown b/source/_integrations/fritzbox.markdown
index 4737f76ca9e..66c69425b68 100644
--- a/source/_integrations/fritzbox.markdown
+++ b/source/_integrations/fritzbox.markdown
@@ -26,6 +26,7 @@ ha_codeowners:
- '@mib1185'
- '@flabbamann'
ha_integration_type: hub
+ha_quality_scale: gold
---
The AVM FRITZ!SmartHome integration for Home Assistant allows you to integrate [FRITZ!DECT](https://en.avm.de/products/smart-home/) devices like switches, sensors and thermostats.
@@ -43,6 +44,7 @@ Additionally, we also support to trigger smarthome templates.
#### Tested Devices
+- [FRITZ!Box 5590 Fiber](https://en.avm.de/products/fritzbox/fritzbox-5590-fiber/)
- FRITZ!Box 6490 Cable
- [FRITZ!Box 6591 Cable](https://en.avm.de/products/fritzbox/fritzbox-6591-cable/)
- [FRITZ!Box 7590](https://en.avm.de/products/fritzbox/fritzbox-7590/)
diff --git a/source/_integrations/gardena_bluetooth.markdown b/source/_integrations/gardena_bluetooth.markdown
index f6dbf2db2ae..80b7de5c9ad 100644
--- a/source/_integrations/gardena_bluetooth.markdown
+++ b/source/_integrations/gardena_bluetooth.markdown
@@ -66,4 +66,4 @@ Gardena Bluetooth lawn mowers are currently not supported due to custom protocol
### Limitations
-Irrigation valves are currently untested, but expected to work.
\ No newline at end of file
+Irrigation valves are currently untested, but expected to work.
diff --git a/source/_integrations/generic.markdown b/source/_integrations/generic.markdown
index 2bdfc163de5..3348c79326a 100644
--- a/source/_integrations/generic.markdown
+++ b/source/_integrations/generic.markdown
@@ -3,7 +3,6 @@ title: Generic Camera
description: Instructions on how to integrate IP cameras within Home Assistant.
ha_category:
- Camera
-logo: home-assistant.png
ha_release: pre 0.7
ha_iot_class: Local Push
ha_domain: generic
diff --git a/source/_integrations/goodwe.markdown b/source/_integrations/goodwe.markdown
index 8791943191c..b7946059cd8 100644
--- a/source/_integrations/goodwe.markdown
+++ b/source/_integrations/goodwe.markdown
@@ -63,4 +63,4 @@ For more detailed steps on how to define a custom polling interval, follow the p
### Defining a custom polling interval
-{% include common-tasks/define_custom_polling.md %}
\ No newline at end of file
+{% include common-tasks/define_custom_polling.md %}
diff --git a/source/_integrations/google.markdown b/source/_integrations/google.markdown
index c0cfd25fadb..a8066ae58a6 100644
--- a/source/_integrations/google.markdown
+++ b/source/_integrations/google.markdown
@@ -85,6 +85,11 @@ If the setup process fails and you see an error message such as *Authentication
If you have an error with your credentials, you can delete them in the [Application Credentials](/integrations/application_credentials/) user interface.
+### Video Tutorial
+This video tutorial explains how to set up Google Calendar in Home Assistant and how you can trigger an automation based on a calendar event.
+
+
+
## Calendar Entities
Each Google Calendar from *My Calendars* ([more info](https://support.google.com/calendar/answer/37095)) is represented as a [calendar](/integrations/calendar) entity in Home Assistant.
diff --git a/source/_integrations/google_assistant_sdk.markdown b/source/_integrations/google_assistant_sdk.markdown
index e299f0b6d86..661c85dbb04 100644
--- a/source/_integrations/google_assistant_sdk.markdown
+++ b/source/_integrations/google_assistant_sdk.markdown
@@ -204,6 +204,7 @@ data:
## Conversation agent
You can add an assistant with the conversation agent set to "Google Assistant SDK".
+See setup your assistant section [here](/voice_control/voice_remote_local_assistant/).
Then you can converse with Google Assistant by tapping the Assist icon at the top right of your dashboard:

diff --git a/source/_integrations/google_cloud.markdown b/source/_integrations/google_cloud.markdown
index 884158516f5..0a08a611fc8 100644
--- a/source/_integrations/google_cloud.markdown
+++ b/source/_integrations/google_cloud.markdown
@@ -49,14 +49,19 @@ Basic instruction for all APIs:
6. Set up authentication:
1. Visit [this link](https://console.cloud.google.com/apis/credentials/serviceaccountkey)
- 2. From the `Service account` list, select `New service account`.
+ 2. From the toolbar above the `Service account` list, select `Create service account`.
3. In the `Service account name` field, enter any name.
If you are requesting a text-to-speech API key:
4. Don't select a value from the Role list. **No role is required to access this service**.
- 5. Click `Create`. A note appears, warning that this service account has no role.
- 6. Click `Create without role`. A JSON file that contains your `API key` downloads to your computer.
+ 5. Click `Create`. If a note appears, warning that this service account has no role, you may ignore that.
+ 6. Return to the `Service account` list page and click on the service account you created in step 5 to see the details for this service account.
+ 7. Choose the `Keys` tab within the details view for this service account.
+ 8. In the `Add Key` dropdown, select `Create New Key`.
+ 9. Specify a `JSON` key type and click `Create`.
+ 10. A `[serviceaccountname].json` file will download to your browser.
+
## Google Cloud text-to-speech
@@ -66,10 +71,13 @@ Basic instruction for all APIs:
The Cloud text-to-speech API is priced monthly based on the amount of characters to synthesize into audio sent to the service.
-| Feature | Monthly free tier | Paid usage |
+| Voice | Monthly free tier | Paid usage |
| ----------------------------- | ------------------------- | --------------------------------- |
-| Standard (non-WaveNet) voices | 0 to 4 million characters | $4.00 USD / 1 million characters |
-| WaveNet voices | 0 to 1 million characters | $16.00 USD / 1 million characters |
+| Neural2 | 0 to 1 million bytes | $16.00 USD / 1 million bytes |
+| Polyglot (Preview) | 0 to 1 million bytes | $16.00 USD / 1 million bytes |
+| Studio (Preview) | 0 to 100 thousand bytes | $160.00 USD / 1 million bytes |
+| Standard | 0 to 4 million characters | $4.00 USD / 1 million characters |
+| WaveNet | 0 to 1 million characters | $16.00 USD / 1 million characters |
### Text-to-speech configuration
diff --git a/source/_integrations/google_travel_time.markdown b/source/_integrations/google_travel_time.markdown
index 089f673b8f6..69abcfc5427 100644
--- a/source/_integrations/google_travel_time.markdown
+++ b/source/_integrations/google_travel_time.markdown
@@ -94,4 +94,4 @@ For more detailed steps on how to define a custom polling interval, follow the p
### Defining a custom polling interval
-{% include common-tasks/define_custom_polling.md %}
\ No newline at end of file
+{% include common-tasks/define_custom_polling.md %}
diff --git a/source/_integrations/gree.markdown b/source/_integrations/gree.markdown
index 770e67aa95c..05206e49d3c 100644
--- a/source/_integrations/gree.markdown
+++ b/source/_integrations/gree.markdown
@@ -38,6 +38,7 @@ Any Gree Smart device working with the Gree+ app should be supported, including
- Proklima
- Tadiran
- Heiwa
+- Ekokai
## Climate
diff --git a/source/_integrations/group.markdown b/source/_integrations/group.markdown
index 120370b0a66..2c774e3008a 100644
--- a/source/_integrations/group.markdown
+++ b/source/_integrations/group.markdown
@@ -4,8 +4,8 @@ description: Instructions on how to setup groups within Home Assistant.
ha_category:
- Binary Sensor
- Cover
- - Fan
- Event
+ - Fan
- Helper
- Light
- Lock
diff --git a/source/_integrations/home_plus_control.markdown b/source/_integrations/home_plus_control.markdown
index c76c8cd972d..25e0bec1062 100644
--- a/source/_integrations/home_plus_control.markdown
+++ b/source/_integrations/home_plus_control.markdown
@@ -14,6 +14,12 @@ ha_platforms:
ha_integration_type: integration
---
+
+
+The Legrand Home+ Control cloud is shutting down in December. Use [the Netatmo integration](/integrations/netatmo/) to integrate your Legrand Home+ Control devices.
+
+
+
The Home+ Control integration platform allows you to control a range of Legrand in-wall switches and power outlets that have smart home functionality thanks to their "with Netatmo" capabilities.
This integration works against the Home+ Control API, which is one of the many APIs offered through the [*Works with Legrand*](https://developer.legrand.com/) program. The API is capable of managing "Legrand/Btcino with Netatmo" devices, such as light switches, power outlets and rolling shutters.
diff --git a/source/_integrations/homeassistant_sky_connect.markdown b/source/_integrations/homeassistant_sky_connect.markdown
new file mode 100644
index 00000000000..ed2dbdcca34
--- /dev/null
+++ b/source/_integrations/homeassistant_sky_connect.markdown
@@ -0,0 +1,20 @@
+---
+title: Home Assistant SkyConnect
+description: Home Assistant SkyConnect provides hardware information for the hardware configuration page.
+ha_release: 2022.9
+ha_category:
+ - Other
+ha_codeowners:
+ - '@home-assistant/core'
+ha_domain: homeassistant_sky_connect
+ha_integration_type: hardware
+---
+
+The Home Assistant SkyConnect integration provides hardware information for the hardware configuration page.
+
+For documentation on the Home Assistant SkyConnect, please visit the [documentation page](https://skyconnect.home-assistant.io/documentation/).
+If you are looking to buy one, please visit the [product page](https://home-assistant.io/skyconnect)
+
+## Configuration
+
+This integration is not user configurable.
diff --git a/source/_integrations/homeassistant_yellow.markdown b/source/_integrations/homeassistant_yellow.markdown
new file mode 100644
index 00000000000..3e3b9ce1ccf
--- /dev/null
+++ b/source/_integrations/homeassistant_yellow.markdown
@@ -0,0 +1,20 @@
+---
+title: Home Assistant Yellow
+description: Home Assistant Yellow provides hardware information for the hardware configuration page.
+ha_release: 2022.7
+ha_category:
+ - Other
+ha_codeowners:
+ - '@home-assistant/core'
+ha_domain: homeassistant_yellow
+ha_integration_type: hardware
+---
+
+The Home Assistant Yellow integration provides hardware information for the hardware configuration page.
+
+For documentation on the Home Assistant Yellow, please visit the [documentation](https://yellow.home-assistant.io/documentation/).
+If you are looking to buy one, please visit the [product page](https://home-assistant.io/yellow).
+
+## Configuration
+
+This integration is not user configurable.
diff --git a/source/_integrations/ipma.markdown b/source/_integrations/ipma.markdown
index 9ad91d0d3dc..c72e650a8a8 100644
--- a/source/_integrations/ipma.markdown
+++ b/source/_integrations/ipma.markdown
@@ -8,7 +8,6 @@ ha_iot_class: Cloud Polling
ha_config_flow: true
ha_codeowners:
- '@dgomes'
- - '@abmantis'
ha_domain: ipma
ha_platforms:
- sensor
diff --git a/source/_integrations/landisgyr_heat_meter.markdown b/source/_integrations/landisgyr_heat_meter.markdown
index d34ddf2dbd0..9ff5be4c6b6 100644
--- a/source/_integrations/landisgyr_heat_meter.markdown
+++ b/source/_integrations/landisgyr_heat_meter.markdown
@@ -89,4 +89,4 @@ For more detailed steps on how to define a custom polling interval, follow the p
#### Defining a custom polling interval
-{% include common-tasks/define_custom_polling.md %}
\ No newline at end of file
+{% include common-tasks/define_custom_polling.md %}
diff --git a/source/_integrations/life360.markdown b/source/_integrations/life360.markdown
index 3bb15aa82eb..83adfb63c90 100644
--- a/source/_integrations/life360.markdown
+++ b/source/_integrations/life360.markdown
@@ -21,6 +21,8 @@ The `life360` integration allows you to detect presence using the [unofficial AP
You must first [create a Life360 account](https://app.life360.com/sign-up).
Individual Members must enable Location Sharing in their Life360 app to show up as a tracked entity in Home Assistant.
+> When adding your Life360 account to Home Assistant, you must use the email address associated with your Life360 account, not the phone number.
+
{% include integrations/config_flow.md %}
### Account options
diff --git a/source/_integrations/media_extractor.markdown b/source/_integrations/media_extractor.markdown
index de8bc7e353c..007abdd3326 100644
--- a/source/_integrations/media_extractor.markdown
+++ b/source/_integrations/media_extractor.markdown
@@ -8,6 +8,8 @@ ha_release: 0.49
ha_quality_scale: internal
ha_domain: media_extractor
ha_integration_type: integration
+ha_codeowners:
+ - '@joostlek'
---
The `media_extractor` integration gets a stream URL and sends it to a media player entity. This integration can extract entity specific streams if configured accordingly.
diff --git a/source/_integrations/modbus.markdown b/source/_integrations/modbus.markdown
index 3712b0df2ac..3736653b2a6 100644
--- a/source/_integrations/modbus.markdown
+++ b/source/_integrations/modbus.markdown
@@ -1,5 +1,5 @@
---
-title: modbus
+title: Modbus
description: Instructions on how to integrate modbus and platforms.
ha_category:
- Hub
diff --git a/source/_integrations/mqtt.markdown b/source/_integrations/mqtt.markdown
index 04c89a52287..519e7e355d9 100644
--- a/source/_integrations/mqtt.markdown
+++ b/source/_integrations/mqtt.markdown
@@ -601,6 +601,7 @@ The following software has built-in support for MQTT discovery:
- [SpeedTest-CLI MQTT](https://github.com/adorobis/speedtest-CLI2mqtt)
- [SwitchBot-MQTT-BLE-ESP32](https://github.com/devWaves/SwitchBot-MQTT-BLE-ESP32)
- [Tasmota](https://github.com/arendst/Tasmota) (starting with 5.11.1e, development halted)
+- [TeddyCloud](https://github.com/toniebox-reverse-engineering/teddycloud)
- [Teleinfo MQTT](https://fmartinou.github.io/teleinfo2mqtt) (starting with 3.0.0)
- [Tydom2MQTT](https://fmartinou.github.io/tydom2mqtt/)
- [What's up Docker?](https://fmartinou.github.io/whats-up-docker/) (starting with 3.5.0)
diff --git a/source/_integrations/neato.markdown b/source/_integrations/neato.markdown
index be184d9d76d..1bbd0860d1b 100644
--- a/source/_integrations/neato.markdown
+++ b/source/_integrations/neato.markdown
@@ -2,10 +2,10 @@
title: Neato Botvac
description: Instructions on how to integrate your Neato within Home Assistant.
ha_category:
+ - Button
- Camera
- Sensor
- Switch
- - Button
- Vacuum
ha_iot_class: Cloud Polling
ha_release: 0.33
@@ -15,10 +15,10 @@ ha_codeowners:
- '@Santobert'
ha_domain: neato
ha_platforms:
+ - button
- camera
- sensor
- switch
- - button
- vacuum
ha_integration_type: integration
---
diff --git a/source/_integrations/nest.markdown b/source/_integrations/nest.markdown
index 68e3ac06313..1d43c7b5323 100644
--- a/source/_integrations/nest.markdown
+++ b/source/_integrations/nest.markdown
@@ -17,7 +17,6 @@ ha_domain: nest
ha_quality_scale: platinum
ha_dhcp: true
ha_platforms:
- - binary_sensor
- camera
- climate
- diagnostics
diff --git a/source/_integrations/nexia.markdown b/source/_integrations/nexia.markdown
index b6c347b36ac..4457a65e9cc 100644
--- a/source/_integrations/nexia.markdown
+++ b/source/_integrations/nexia.markdown
@@ -18,6 +18,7 @@ ha_platforms:
- binary_sensor
- climate
- diagnostics
+ - number
- scene
- sensor
- switch
@@ -100,4 +101,4 @@ Sets the humidify setpoint. This setting will affect all zones on the same therm
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | no | String or list of strings that point at `entity_id`'s of climate devices to control.
-| `humidity` | no | Humidify setpoint level, from 35 to 65.
\ No newline at end of file
+| `humidity` | no | Humidify setpoint level, from 35 to 65.
diff --git a/source/_integrations/opower.markdown b/source/_integrations/opower.markdown
index a92ddace82e..580c5044de3 100644
--- a/source/_integrations/opower.markdown
+++ b/source/_integrations/opower.markdown
@@ -60,7 +60,7 @@ Alternatively, you can create a new TOTP secret for your account and use the "no
### Exelon subsidiaries
-When using Opower with any of the Exelon subsidiaries, such as such as BGE, ComEd, PECO, Pepco, etc., you need to actively disable two-factor authentication. Log onto the website, select **Don't use 2FA** and **Don't ask me again**. If you have already enabled 2FA, disable it.
+When using Opower with any of the Exelon subsidiaries, such as BGE, ComEd, PECO, Pepco, etc., you need to actively disable two-factor authentication. Log onto the website, select **Don't use 2FA** and **Don't ask me again**. If you have already enabled 2FA, disable it.
{% include integrations/config_flow.md %}
diff --git a/source/_integrations/oru_opower.markdown b/source/_integrations/oru_opower.markdown
index 437b84c312d..fa9f621208d 100644
--- a/source/_integrations/oru_opower.markdown
+++ b/source/_integrations/oru_opower.markdown
@@ -4,7 +4,7 @@ description: Get energy usage from Orange and Rockland Utilities using the Opowe
ha_category:
- Energy
- Sensor
-ha_release: 2023.9
+ha_release: 2023.8
ha_domain: oru_opower
ha_integration_type: virtual
ha_supporting_domain: opower
diff --git a/source/_integrations/overkiz.markdown b/source/_integrations/overkiz.markdown
index 5824eda96e1..3b0948cc908 100644
--- a/source/_integrations/overkiz.markdown
+++ b/source/_integrations/overkiz.markdown
@@ -54,7 +54,6 @@ The Overkiz (by Somfy) integration platform is used by many different vendors, l
- Atlantic Cozytouch
- Hitachi Hi Kumo
- Nexity Eugénie
-- Rexel Energeasy Connect
- Somfy Connectivity Kit
- Somfy Connexoon IO
- Somfy Connexoon RTS
@@ -84,7 +83,7 @@ During peak hours, it could happen that the Overkiz platform is unable to execut
### Internet connectivity required
-This integration communicates via the cloud-based Overkiz API. The Somfy TaHoma v2 and the Somfy TaHoma Switch offer the [Somfy TaHoma Developer Mode (local API)](https://developer.somfy.com/developer-mode), which is not supported in Home Assistant yet.
+This integration communicates via the cloud-based Overkiz API. The Somfy TaHoma v2 and the Somfy TaHoma Switch offer the [Somfy TaHoma Developer Mode (local API)](https://github.com/Somfy-Developer/Somfy-TaHoma-Developer-Mode), which is not supported in Home Assistant yet.
Another option if you are only using Somfy IO compatible devices is to purchase a Velux KLF200 hub and use [the Velux integration](/integrations/velux/) which has a local API.
diff --git a/source/_integrations/reolink.markdown b/source/_integrations/reolink.markdown
index 628ccc21e68..46e1a0a8246 100644
--- a/source/_integrations/reolink.markdown
+++ b/source/_integrations/reolink.markdown
@@ -272,6 +272,7 @@ Then power up the camera while pointing it at the QR code. It takes about a minu
- On some camera models, the RTMP port needs to be enabled in order for the HTTP(S) port to function properly. Make sure this port is also enabled if you get a `Cannot connect to host` error while one of the HTTP/HTTPS ports is already enabled.
- Setting a static IP address for Reolink cameras/NVRs in your router is advisable to prevent (temporal) connectivity issues when the IP address changes.
- Do not set a static IP in the Reolink device itself, but leave the **Connection Type** on **DHCP** under **Settings** > **Network** > **Network Information** > **Set Up**. If you set it to **static** on the Reolink device itself, this is known to cause incorrect DHCP requests on the network. The incorrect DHCP request causes Home Assistant to use the wrong IP address for the camera, resulting in connection issues. The issue originates from the Reolink firmware, which keeps sending DCHP requests even when you set a static IP address in the Reolink device.
+- Reolink cameras can support a limited amount of simultaneous connections. Therefore using third-party software like Frigate, Blue Iris, or Scrypted, or using the ONVIF integration at the same time can cause the camera to drop connections. This results in short unavailabilities of the Reolink entities in Home Assistant. Especially when the connections are coming from the same device (IP) where Home Assistant is running, the Reolink cameras can get confused, dropping one connection in favor of the other originating from the same host IP. If you experience disconnections/unavailabilities of the entities, please first temporarily shut down the other connections (like Frigate) to diagnose if that is the problem. If that is indeed the problem, you could try moving the third-party software to a different host (IP address) since that is known to solve the problem most of the time. You could also try switching the protocol to FLV on Home Assistant and/or the third-party software, as that is known to be less resource-intensive on the camera.
### Reducing latency of motion events
diff --git a/source/_integrations/rest.markdown b/source/_integrations/rest.markdown
index e025d641cff..9b2711d8747 100644
--- a/source/_integrations/rest.markdown
+++ b/source/_integrations/rest.markdown
@@ -13,8 +13,6 @@ ha_platforms:
- sensor
- switch
ha_integration_type: integration
-ha_codeowners:
- - '@epenet'
---
The `rest` sensor platform is consuming a given endpoint which is exposed by a [RESTful API](https://en.wikipedia.org/wiki/Representational_state_transfer) of a device, an application, or a web service. The sensor has support for GET and POST requests.
diff --git a/source/_integrations/ruckus_unleashed.markdown b/source/_integrations/ruckus_unleashed.markdown
index 123a19354f9..ba77a7ad606 100644
--- a/source/_integrations/ruckus_unleashed.markdown
+++ b/source/_integrations/ruckus_unleashed.markdown
@@ -8,10 +8,11 @@ ha_iot_class: Local Polling
ha_config_flow: true
ha_codeowners:
- '@gabe565'
+ - '@lanrat'
ha_domain: ruckus_unleashed
ha_platforms:
- device_tracker
-ha_integration_type: integration
+ha_integration_type: hub
---
This platform allows you to connect to a [Ruckus Unleashed](https://support.ruckuswireless.com/product_families/19-ruckus-unleashed) access point.
diff --git a/source/_integrations/schlage.markdown b/source/_integrations/schlage.markdown
index 315b163df62..35776692c40 100644
--- a/source/_integrations/schlage.markdown
+++ b/source/_integrations/schlage.markdown
@@ -16,6 +16,7 @@ ha_platforms:
- sensor
- switch
ha_integration_type: integration
+ha_domain: schlage
---
The Schlage integration provides connectivity with Schlage WiFi smart locks through Schlage's cloud API.
diff --git a/source/_integrations/scrape.markdown b/source/_integrations/scrape.markdown
index b7c9c545abb..5fec33707d8 100644
--- a/source/_integrations/scrape.markdown
+++ b/source/_integrations/scrape.markdown
@@ -8,7 +8,6 @@ ha_iot_class: Cloud Polling
ha_codeowners:
- '@fabaff'
- '@gjohansson-ST'
- - '@epenet'
ha_domain: scrape
ha_platforms:
- sensor
diff --git a/source/_integrations/sensor.markdown b/source/_integrations/sensor.markdown
index 7253851a8b9..5a34766fe85 100644
--- a/source/_integrations/sensor.markdown
+++ b/source/_integrations/sensor.markdown
@@ -22,7 +22,7 @@ The type of data a sensor returns impacts how it is displayed in the frontend. T
- **None**: Generic sensor. This is the default and doesn't need to be set.
- **apparent_power**: Apparent power in VA.
- **aqi**: Air Quality Index (unitless).
-- **atmospheric_pressure**: Atmospheric pressure in cbar, bar, hPa, inHg, kPa, mbar, Pa or psi
+- **atmospheric_pressure**: Atmospheric pressure in cbar, bar, hPa, mmHg, inHg, kPa, mbar, Pa or psi
- **battery**: Percentage of battery that is left in %
- **carbon_dioxide**: Carbon Dioxide in CO2 (Smoke) in ppm
- **carbon_monoxide**: Carbon Monoxide in CO (Gas CNG/LPG) in ppm
diff --git a/source/_integrations/subaru.markdown b/source/_integrations/subaru.markdown
index a1b7d36679e..444e7d3dbb5 100644
--- a/source/_integrations/subaru.markdown
+++ b/source/_integrations/subaru.markdown
@@ -13,7 +13,7 @@ ha_codeowners:
- '@G-Two'
ha_domain: subaru
ha_platforms:
- - device tracker
+ - device_tracker
- diagnostics
- lock
- sensor
diff --git a/source/_integrations/switch.mqtt.markdown b/source/_integrations/switch.mqtt.markdown
index c95f73169b3..77b7c13d181 100644
--- a/source/_integrations/switch.mqtt.markdown
+++ b/source/_integrations/switch.mqtt.markdown
@@ -68,7 +68,7 @@ availability_topic:
type: string
command_topic:
description: The MQTT topic to publish commands to change the switch state.
- required: false
+ required: true
type: string
device:
description: "Information about the device this switch is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device."
diff --git a/source/_integrations/switchbot.markdown b/source/_integrations/switchbot.markdown
index 51165889256..22bfc112342 100644
--- a/source/_integrations/switchbot.markdown
+++ b/source/_integrations/switchbot.markdown
@@ -11,7 +11,6 @@ ha_category:
ha_release: 0.78
ha_iot_class: Local Push
ha_codeowners:
- - '@bdraco'
- '@danielhiversen'
- '@RenierM26'
- '@murtas'
diff --git a/source/_integrations/template.markdown b/source/_integrations/template.markdown
index 153eee1a261..1b8c15eedbe 100644
--- a/source/_integrations/template.markdown
+++ b/source/_integrations/template.markdown
@@ -4,6 +4,7 @@ description: Instructions on how to integrate Template Sensors into Home Assista
ha_category:
- Binary Sensor
- Button
+ - Helper
- Image
- Number
- Select
@@ -31,7 +32,8 @@ ha_platforms:
- switch
- vacuum
- weather
-ha_integration_type: integration
+ha_integration_type: helper
+ha_config_flow: true
---
The `template` integration allows creating entities which derive their values from other data. This is done by specifying [templates](/docs/configuration/templating/) for properties of an entity, like the name or the state.
diff --git a/source/_integrations/ultraloq.markdown b/source/_integrations/ultraloq.markdown
new file mode 100644
index 00000000000..11c2a37a5cb
--- /dev/null
+++ b/source/_integrations/ultraloq.markdown
@@ -0,0 +1,22 @@
+---
+title: Ultraloq
+description: Connect and control your Ultraloq Z-Wave series devices using the Z-Wave integration
+ha_release: '2022.11'
+ha_category:
+ - Lock
+ha_domain: ultraloq
+ha_integration_type: virtual
+works_with:
+ - zwave
+ha_iot_standard: zwave
+---
+
+Ultraloq smart locks allow users to enter their homes without a key. The lock can be controlled remotely using the Ultraloq app or by using Home Assistant. U-tec, their parent company, is a member of the Works with Home Assistant partner program. This means they are committed to making sure the Ultraloq Z-Wave products are up-to-date and ready to use with Home Assistant.
+
+Ultraloq Z-Wave Series smart locks work locally and integrate seamlessly with the Z-Wave integration in Home Assistant (Z-Wave stick required).
+
+To add Ultraloq Z-Wave products, pair them as Z-Wave devices:
+
+{% my add_zwave_device badge domain=page.ha_domain %}
+
+[Learn more about Z-Wave in Home Assistant.](/integrations/zwave_js/)
diff --git a/source/_integrations/vodafone_station.markdown b/source/_integrations/vodafone_station.markdown
index 5a2b40785ce..10d8d63bca0 100644
--- a/source/_integrations/vodafone_station.markdown
+++ b/source/_integrations/vodafone_station.markdown
@@ -12,7 +12,6 @@ ha_codeowners:
ha_iot_class: Local Polling
ha_platforms:
- device_tracker
-ha_ssdp: false
ha_integration_type: integration
---
diff --git a/source/_integrations/withings.markdown b/source/_integrations/withings.markdown
index 9e1458cf537..e02cfe51da0 100644
--- a/source/_integrations/withings.markdown
+++ b/source/_integrations/withings.markdown
@@ -81,61 +81,3 @@ use_webhook:
default: false
type: boolean
{% endconfiguration %}
-
-## Bonus: Template Sensors to Convert Kilograms to Pounds
-
-In a text editor, replace ```USER_PROFILE_NAME``` in the template sensors below with your Withings User Profile Name defined in the Withings integration configuration.
-
-{% raw %}
-
-```yaml
-# Example configuration.yaml entry
-template:
- - sensor:
- - name: Withings weight lbs USER_PROFILE_NAME
- unit_of_measurement: "lbs"
- state: >-
- {{
- (states('sensor.withings_weight_kg_USER_PROFILE_NAME') | float(0) * 2.20462262185)
- | round(2, default=0)
- }}
- icon: "mdi:weight-pound"
-
- - name: Withings bone mass lbs USER_PROFILE_NAME
- unit_of_measurement: "lbs"
- state: >-
- {{
- (states('sensor.withings_bone_mass_kg_USER_PROFILE_NAME') | float(0) * 2.20462262185)
- | round(2, default=0)
- }}
- icon: "mdi:weight-pound"
-
- - name: Withings fat free mass lbs USER_PROFILE_NAME
- unit_of_measurement: "lbs"
- state: >-
- {{
- (states('sensor.withings_fat_free_mass_kg_USER_PROFILE_NAME') | float(0) * 2.20462262185)
- | round(2, default=0)
- }}
- icon: "mdi:weight-pound"
-
- - name: Withings fat mass lbs USER_PROFILE_NAME
- unit_of_measurement: "lbs"
- state: >-
- {{
- (states('sensor.withings_fat_mass_kg_USER_PROFILE_NAME') | float(0) * 2.20462262185)
- | round(2, default=0)
- }}
- icon: "mdi:weight-pound"
-
- - name: Withings muscle mass lbs USER_PROFILE_NAME
- unit_of_measurement: "lbs"
- state: >-
- {{
- (states('sensor.withings_muscle_mass_kg_USER_PROFILE_NAME') | float(0) * 2.20462262185)
- | round(2, default=0)
- }}
- icon: "mdi:weight-pound"
-```
-
-{% endraw %}
diff --git a/source/_integrations/zwave_js.markdown b/source/_integrations/zwave_js.markdown
index 450d0039d95..4c88af14feb 100644
--- a/source/_integrations/zwave_js.markdown
+++ b/source/_integrations/zwave_js.markdown
@@ -234,7 +234,7 @@ data:
### Service `zwave_js.bulk_set_partial_config_parameters`
-This service will bulk set multiple partial configuration parameters. Be warned that correctly using this service requires advanced knowledge of Z-Wave to use correctly.
+This service will bulk set multiple partial configuration parameters. Be warned that correctly using this service requires advanced knowledge of Z-Wave.
| Service Data Attribute | Required | Description |
| ---------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
diff --git a/source/_posts/2022-10-25-ultraloq-partner.markdown b/source/_posts/2022-10-25-ultraloq-partner.markdown
index d0abb44c5e9..13774b28d93 100644
--- a/source/_posts/2022-10-25-ultraloq-partner.markdown
+++ b/source/_posts/2022-10-25-ultraloq-partner.markdown
@@ -12,10 +12,6 @@ categories:
og_image: /images/blog/2022-10-25-ultraloq-partner/social.png
---
-
-On July 11th, 2023, due to fundamentally different perceptions of best Home Assistant user experience, Ultraloq by U-tec was removed from
Works With Home Assistant partner program.
-
-
Today we are excited to announce that [Ultraloq by U-tec](https://u-tec.com) has joined the Works with Home Assistant program as a Z-Wave partner.
diff --git a/source/_posts/2023-09-06-release-20239.markdown b/source/_posts/2023-09-06-release-20239.markdown
new file mode 100644
index 00000000000..10c961dc1b8
--- /dev/null
+++ b/source/_posts/2023-09-06-release-20239.markdown
@@ -0,0 +1,830 @@
+---
+layout: post
+title: "2023.9: New climate entity dialogs, lots of tile features, and template sensors from the UI!"
+description: "New entity dialogs for climate and others, lots of tile features, create template sensors from the UI and more!"
+date: 2023-09-06 00:00:00
+date_formatted: "September 6, 2023"
+author: Bram Kragten
+author_twitter: bramkragten
+comments: true
+categories:
+ - Release-Notes
+ - Core
+og_image: /images/blog/2023-09/social.png
+---
+
+
+
+Home Assistant Core 2023.9! 🎉
+
+Frenck is enjoying a well earned holiday, so I'm taking care of the release this month.
+
+This month, on the 17th, it has been 10 years since Home Assistant started. We'll be preparing a special event on the [Home Assistant YouTube channel](https://www.youtube.com/channel/UCbX3YkedQunLt7EQAdVxh7w) to celebrate, reflect and look ahead. We will have some cool announcements too! We hope you can join us on the 17th @ 12:00 PDT / 21:00 CET!
+
+This release is pretty packed! With some very nice updates to the UI with new entity dialogs for climate entities, and lots of tile card features. Template sensors can be created from the UI now, and for the more advanced template sensors, the ability to get data from services!
+A new service to get the weather forecast, and better options to display different forecasts.
+
+And something you will probably not see when you are already using Home Assistant: the onboarding flow is completely redesigned!
+
+I absolutely love it!
+
+Enjoy the release!
+
+Bram
+
+
+
+- [New climate, humidifier, and water heater entity dialogs](#new-climate-humidifier-and-water-heater-entity-dialogs)
+- [Lots of new tile features](#lots-of-new-tile-features)
+- [Lawn mower](#lawn-mower)
+- [Group previews](#group-previews)
+- [Template sensors from the UI](#template-sensors-from-the-ui)
+- [Actions for trigger template entities](#actions-for-trigger-template-entities)
+- [Weather forecast service](#weather-forecast-service)
+- [Onboarding](#onboarding)
+- [Other noteworthy changes](#other-noteworthy-changes)
+- [New integrations](#new-integrations)
+- [Release 2023.9.1 - September 8](#release-202391---september-8)
+- [Release 2023.9.2 - September 12](#release-202392---september-12)
+- [Need help? Join the community!](#need-help-join-the-community)
+- [Breaking changes](#breaking-changes)
+- [All changes](#all-changes)
+
+Don't forget to [join our release party live stream on YouTube](https://www.youtube.com/watch?v=JSNRrWk9IHs)
+6 September 2023, at 12:00 PDT / 21:00 CEST!
+
+
+
+## New climate, humidifier, and water heater entity dialogs
+
+The entity dialogs for climate, humidifier, and water heater entities got an update, and if you ask me, it looks absolutely stunning!
+It now has a newly designed circular slider showing the current and target temperatures and allows you to easily swipe to the desired target temperature.
+There are also dedicated buttons to change the target, so it is easy to use if you are not using a touchscreen.
+It will glow in the middle to show its current action, for example when it is heating or cooling.
+
+
+Screenshot of the more info dialog of a climate entity.
+
+
+## Lots of new tile features
+
+The tile card gets many new features this release.
+
+The features of a tile card are a great way to bring more functionalities directly into your dashboard, without needing to open the more info dialog.
+
+- HVAC mode
+- Water heater mode
+- Temperature control
+- Cover position
+- Cover tilt
+- Lawn mower commands
+- Color temperature
+
+
+
+Screenshot of tile cards with the new features.
+
+
+## Lawn mower
+
+A new entity type was added this release: the lawn mower!
+
+You can now integrate your lawn mower into Home Assistant!
+Never worry about the lawn mower when it starts raining, you can now automate the lawn mower to stop and go back when it rains.
+For now, just MQTT is supported, but keep an eye out for other integrations!
+
+
+
+Screenshot of the more info dialog of a lawn mower entity.
+
+
+
+## Group previews
+
+When setting up a helper, sometimes it can be useful to see how the entity that you are creating looks while you are setting it up. That's why we added a preview when you create or change a group helper.
+
+It will show exactly what the entity will look like with the current settings.
+
+And talking about groups, we also got a new group, the `event` group!
+
+
+
+Screenshot of creating a sensor group.
+
+
+
+## Template sensors from the UI
+
+We also added preview support to another helper that finally made its way into the UI, the template sensor.
+
+From the UI you can use a template to set the state of the sensor.
+You can pick a unit of measurement, set the device class, and select a state class.
+Both sensors and binary sensors are supported.
+
+This will make most of the use cases for template sensors available through the UI and one less need for YAML!
+
+Other more advanced fields, like attributes, are unavailable from the UI. You will still have to set those up in YAML.
+
+With the preview, you see a live update of the sensor value while writing the template.
+
+
+
+Screenshot of creating a template sensor.
+
+
+
+## Actions for trigger template entities
+
+Trigger template entities can now have an action block that is executed after the trigger but before the entities are rendered.
+
+This will allow users to fetch things like calendar events and weather forecasts using services with responses and use them in their template entities. You can even use OpenAI to set the value of your entities now!
+
+All variables from the action block will be available in the template.
+
+An example that checks at midnight if you have something on your calendar tomorrow and sets a binary sensor:
+
+{% raw %}
+
+```yaml
+template:
+ - trigger:
+ - platform: time
+ at: "00:00:00"
+ action:
+ - service: calendar.list_events
+ target:
+ entity_id: calendar.calendar
+ data:
+ start_date_time: "{{ today_at() + timedelta(days=1) }}"
+ duration:
+ hours: 24
+ response_variable: events
+ binary_sensor:
+ - name: Calendar events tomorrow
+ state: "{{ events.events is defined and events.events | count > 0 }}"
+```
+
+{% endraw %}
+
+
+## Weather forecast service
+
+We added a new service for weather entities, `weather.get_forecast`, that responds with the weather forecast.
+
+Previously you would have to look at the `forecast` attribute of a weather entity to get the forecast, now this can be done by calling a new service, `weather.get_forecast`, that will respond with the forecast.
+You can also specify what type of forecast you want. Do you want to see the forecast by day or do you want to know it for every hour? This means you no longer need separate entities for every forecast type, but it can all be done in 1 entity.
+
+All weather integrations are updated to support this new service.
+
+
+
+Screenshot of service developer tools showing the weather forecast service.
+
+
+If an entity supports multiple forecasts, you can choose which forecast you want to see in the more info dialog.
+In the weather card in your dashboard, you can also now pick what kind of weather forecast you want to show in that card.
+
+
+
+Screenshot of the weather more info dialog.
+
+
+With this change, the `forecast` attribute of the weather entity is deprecated, and will be removed in Home Assistant Core 2024.3.
+
+This will make it possible to have on-demand forecasts, that update when you want them to, instead of them being updated all the time.
+It will also make the system faster; all state data gets sent to your browser or mobile app every time it is opened so the frontend has the latest states of your entities. The forecast attribute makes the state of weather entities very big, causing everything to be loaded slower.
+
+While the way to access this data has changed and may impact your automations, you will not experience any loss in functionality. Even with this change, rest assured that the forecast cards in your dashboard will still work, they will now just use the service to retrieve the forecast data asynchronously instead of reading it from the state attribute. The end result is that your dashboards will load faster, and the frontend will be leaner.
+
+You can use the newly added `action` part of a template entity to fetch the forecast and use it in your template:
+
+{% raw %}
+
+```yaml
+template:
+ - trigger:
+ - platform: time
+ at: "00:00:00"
+ action:
+ - service: weather.get_forecast
+ target:
+ entity_id: weather.home
+ data:
+ type: daily
+ response_variable: forecast
+ binary_sensor:
+ - name: Is it going to rain?
+ state: "{{ forecast.forecast[0].precipitation > 0 }}"
+```
+
+{% endraw %}
+
+## Onboarding
+
+While it is certain that Home Assistant is a great tool once you understand how it works, one part that was often overlooked is its associated learning curve.
+We are now actively working to flatten that curve so that you can get more from your home faster and simpler.
+This release shows the first result of that effort, a new onboarding flow.
+
+Something you probably have not seen for a while, but we gave our onboarding a fresh new look! It is shortened to get users in Home Assistant as fast as possible, so they can enjoy tinkering with their home faster!
+
+
+
+Screenshot of the onboarding screen.
+
+
+## Other noteworthy changes
+
+There are many more improvements in this release; here are some of the other
+noteworthy changes this release:
+
+- [Enphase Envoy] has gotten a lot of love this release, ensure it works
+ perfectly with the latest firmware available. Thanks [@bdraco] and [@cgarwood]!
+- The [Shelly] integration now supports the Shelly Gas Valve addon. Thanks [@bieniu]!
+- [@starkillerOG] added zoom buttons and AI detection delay time controls to
+ the [Reolink] integration. Nice!
+- You can now set separate damping factors for morning and evening in the
+ [Forecast Solar] integration. Thanks [@joostlek]!
+- [@Kane610] added a restart device button to the [UniFi] integration. Thanks!
+- The [Tomorrow.io] integration now reports humidity and dew point in its weather
+ forecasts. Thanks [@lymanepp]!
+- Support for soil moisture sensors was added to the [Gardena] integration.
+ Thanks [@elupus]!
+- [@timmo001] added a power service to the [System Bridge] integration. Thanks!
+- If you change your password, you will be asked if you want to logout everywhere.
+- The file and image upload elements have been revamped.
+- You can now sort the options of an input select entity. Thanks [@karwosts]!
+- Local Bluetooth has been optimized and is now faster, thanks [@bdraco]!
+
+[@karwosts]: https://github.com/karwosts
+[@bdraco]: https://github.com/bdraco
+[@bieniu]: https://github.com/bieniu
+[@cgarwood]: https://github.com/cgarwood
+[@elupus]: https://github.com/elupus
+[@joostlek]: https://github.com/joostlek
+[@Kane610]: https://github.com/Kane610
+[@lymanepp]: https://github.com/lymanepp
+[@starkillerOG]: https://github.com/starkillerOG
+[@timmo001]: https://github.com/timmo001
+[Enphase Envoy]: /integrations/enphase_envoy
+[Forecast Solar]: /integrations/forecast_solar
+[Gardena]: /integrations/gardena_bluetooth
+[Reolink]: /integrations/reolink
+[Shelly]: /integrations/shelly
+[System Bridge]: /integrations/system_bridge
+[Tomorrow.io]: /integrations/tomorrowio
+[Unifi]: /integrations/unifi
+
+## New integrations
+
+We welcome the following new integrations in this release:
+
+- **[Comelit SimpleHome]**, added by [@chemelli74]
+ Control your Comelit home automation devices.
+- **[Lawn mower]**, added by [@mikey0000]
+ A new entity type, that allows integrations to provide lawn mower entities.
+- **[Schlage]**, added by [@dknowles2]
+ Use your Schlage WiFi smart locks with Home Assistant.
+- **[Trafikverket Camera]**, added by [@gjohansson-ST]
+ Adds Swedish traffic camera feeds from Trafikverket.
+- **[Vodafone Station]**, added by [@chemelli74]
+ Provides device tracker support for Vodafone Station router.
+- **[Yardian]**, added by [@h3l1o5]
+ Support for your Yardan Smart Sprinkler Controller.
+
+This release also has a new virtual integration. Virtual integrations are stubs that are handled by other (existing) integrations to help with findability. These are new:
+
+- **[Consolidated Edison (ConEd)]** provided by [Opower]
+- **[Orange and Rockland Utilities (ORU) Opower]** provided by [Opower]
+
+
+[@chemelli74]: https://github.com/chemelli74
+[@dknowles2]: https://github.com/dknowles2
+[@gjohansson-ST]: http://github.com/gjohansson-ST
+[@h3l1o5]: https://github.com/h3l1o5
+[@mikey0000]: https://github.com/mikey0000
+[Comelit SimpleHome]: /integrations/comelit
+[Lawn mower]: /integrations/lawn_mower
+[Schlage]: /integrations/schlage
+[Trafikverket Camera]: /integrations/trafikverket_camera
+[Vodafone Station]: /integrations/vodafone_station
+[Yardian]: /integrations/yardian
+[Opower]: /integrations/opower
+[Consolidated Edison (ConEd)]: /integrations/coned
+[Orange and Rockland Utilities (ORU) Opower]: /integrations/oru_opower
+
+## Release 2023.9.1 - September 8
+
+- Fix the Hydrawise status sensor ([@dknowles2] - [#99271]) ([hydrawise docs])
+- Fix tradfri asyncio.wait ([@cdce8p] - [#99730]) ([tradfri docs])
+- Handle alexa invalid climate temp adjustment ([@jbouwh] - [#99740]) ([alexa docs])
+- Revert "Bump pyoverkiz to 1.10.1 (#97916)" ([@joostlek] - [#99742]) ([overkiz docs])
+- Fix Freebox disk free space sensor ([@Quentame] - [#99757]) ([freebox docs])
+- Fix Freebox Home battery sensor ([@Quentame] - [#99756]) ([freebox docs])
+- Bump sense_energy to 0.12.1 ([@bdraco] - [#99763])
+- Add support for more busy codes for Epson ([@pszafer] - [#99771]) ([epson docs])
+- Bump `aiorecollect` to 2023.09.0 ([@bachya] - [#99780]) ([recollect_waste docs])
+- Bump pyenphase to 1.9.3 ([@bdraco] - [#99787]) ([enphase_envoy docs])
+- Bump pylutron-caseta to v0.18.2 ([@swamplynx] - [#99789]) ([lutron_caseta docs])
+- Fix missing dew point and humidity in tomorrowio forecasts ([@lymanepp] - [#99793]) ([tomorrowio docs])
+- Always set severity level flag on render_template error events ([@emontnemery] - [#99804]) ([websocket_api docs])
+- Improve error handling in /api/states POST ([@emontnemery] - [#99810]) ([api docs])
+- Use correct config entry id in Livisi ([@joostlek] - [#99812]) ([livisi docs])
+- Fix missing name and identifiers for ELKM1 connected devices ([@bdraco] - [#99828]) ([elkm1 docs])
+- Bump aiovodafone to 0.1.0 ([@chemelli74] - [#99851]) ([vodafone_station docs])
+- Bump dbus-fast to 1.95.0 ([@bdraco] - [#99749]) ([bluetooth docs])
+- Bump dbus-fast to 1.95.2 ([@bdraco] - [#99852]) ([bluetooth docs])
+- Bump ZHA dependencies ([@puddly] - [#99855]) ([zha docs])
+- Fix NOAA tides warnings ([@jbouwh] - [#99856]) ([noaa_tides docs])
+- Upgrade bluetooth deps to fix timeout behavior on py3.11 ([@bdraco] - [#99879]) ([bluetooth docs])
+- Update frontend to 20230908.0 ([@bramkragten] - [#99939]) ([frontend docs])
+- Bump pymodbus v3.5.0 ([@janiversen] - [#99343]) ([modbus docs])
+- Bump pymodbus v.3.5.1 ([@janiversen] - [#99940]) ([modbus docs])
+- Bump pyenphase to v1.11.0 ([@joostlek] - [#99941]) ([enphase_envoy docs])
+- Fix key error MQTT binary_sensor when no name is set ([@jbouwh] - [#99943]) ([mqtt docs])
+- Bump zeroconf to 0.93.1 ([@bdraco] - [#99516]) ([zeroconf docs])
+- Bump zeroconf to 0.96.0 ([@bdraco] - [#99549]) ([zeroconf docs])
+- Bump zeroconf to 0.97.0 ([@bdraco] - [#99554]) ([zeroconf docs])
+- Bump zeroconf to 0.98.0 ([@bdraco] - [#99748]) ([zeroconf docs])
+- Make WS command render_template not give up if initial render raises ([@emontnemery] - [#99808]) ([websocket_api docs])
+- Bump hatasmota to 0.7.1 ([@emontnemery] - [#99818]) ([tasmota docs])
+- Bump millheater to 0.11.2 ([@Danielhiversen] - [#99683]) ([mill docs])
+
+[#99271]: https://github.com/home-assistant/core/pull/99271
+[#99343]: https://github.com/home-assistant/core/pull/99343
+[#99516]: https://github.com/home-assistant/core/pull/99516
+[#99549]: https://github.com/home-assistant/core/pull/99549
+[#99554]: https://github.com/home-assistant/core/pull/99554
+[#99683]: https://github.com/home-assistant/core/pull/99683
+[#99730]: https://github.com/home-assistant/core/pull/99730
+[#99740]: https://github.com/home-assistant/core/pull/99740
+[#99741]: https://github.com/home-assistant/core/pull/99741
+[#99742]: https://github.com/home-assistant/core/pull/99742
+[#99748]: https://github.com/home-assistant/core/pull/99748
+[#99749]: https://github.com/home-assistant/core/pull/99749
+[#99756]: https://github.com/home-assistant/core/pull/99756
+[#99757]: https://github.com/home-assistant/core/pull/99757
+[#99763]: https://github.com/home-assistant/core/pull/99763
+[#99771]: https://github.com/home-assistant/core/pull/99771
+[#99780]: https://github.com/home-assistant/core/pull/99780
+[#99787]: https://github.com/home-assistant/core/pull/99787
+[#99789]: https://github.com/home-assistant/core/pull/99789
+[#99793]: https://github.com/home-assistant/core/pull/99793
+[#99804]: https://github.com/home-assistant/core/pull/99804
+[#99808]: https://github.com/home-assistant/core/pull/99808
+[#99810]: https://github.com/home-assistant/core/pull/99810
+[#99812]: https://github.com/home-assistant/core/pull/99812
+[#99818]: https://github.com/home-assistant/core/pull/99818
+[#99828]: https://github.com/home-assistant/core/pull/99828
+[#99851]: https://github.com/home-assistant/core/pull/99851
+[#99852]: https://github.com/home-assistant/core/pull/99852
+[#99855]: https://github.com/home-assistant/core/pull/99855
+[#99856]: https://github.com/home-assistant/core/pull/99856
+[#99879]: https://github.com/home-assistant/core/pull/99879
+[#99939]: https://github.com/home-assistant/core/pull/99939
+[#99940]: https://github.com/home-assistant/core/pull/99940
+[#99941]: https://github.com/home-assistant/core/pull/99941
+[#99943]: https://github.com/home-assistant/core/pull/99943
+[@Danielhiversen]: https://github.com/Danielhiversen
+[@Quentame]: https://github.com/Quentame
+[@bachya]: https://github.com/bachya
+[@bdraco]: https://github.com/bdraco
+[@bramkragten]: https://github.com/bramkragten
+[@cdce8p]: https://github.com/cdce8p
+[@chemelli74]: https://github.com/chemelli74
+[@dknowles2]: https://github.com/dknowles2
+[@emontnemery]: https://github.com/emontnemery
+[@janiversen]: https://github.com/janiversen
+[@jbouwh]: https://github.com/jbouwh
+[@joostlek]: https://github.com/joostlek
+[@lymanepp]: https://github.com/lymanepp
+[@pszafer]: https://github.com/pszafer
+[@puddly]: https://github.com/puddly
+[@swamplynx]: https://github.com/swamplynx
+[abode docs]: /integrations/abode/
+[accuweather docs]: /integrations/accuweather/
+[acmeda docs]: /integrations/acmeda/
+[adax docs]: /integrations/adax/
+[adguard docs]: /integrations/adguard/
+[ads docs]: /integrations/ads/
+[alexa docs]: /integrations/alexa/
+[api docs]: /integrations/api/
+[bluetooth docs]: /integrations/bluetooth/
+[elkm1 docs]: /integrations/elkm1/
+[enphase_envoy docs]: /integrations/enphase_envoy/
+[epson docs]: /integrations/epson/
+[freebox docs]: /integrations/freebox/
+[frontend docs]: /integrations/frontend/
+[hydrawise docs]: /integrations/hydrawise/
+[livisi docs]: /integrations/livisi/
+[lutron_caseta docs]: /integrations/lutron_caseta/
+[mill docs]: /integrations/mill/
+[modbus docs]: /integrations/modbus/
+[mqtt docs]: /integrations/mqtt/
+[noaa_tides docs]: /integrations/noaa_tides/
+[overkiz docs]: /integrations/overkiz/
+[recollect_waste docs]: /integrations/recollect_waste/
+[tasmota docs]: /integrations/tasmota/
+[tomorrowio docs]: /integrations/tomorrowio/
+[tradfri docs]: /integrations/tradfri/
+[vodafone_station docs]: /integrations/vodafone_station/
+[websocket_api docs]: /integrations/websocket_api/
+[zeroconf docs]: /integrations/zeroconf/
+[zha docs]: /integrations/zha/
+
+## Release 2023.9.2 - September 12
+
+- Remove modbus pragma no cover and solve nan ([@janiversen] - [#99221]) ([modbus docs])
+- Bugfix: Electric Kiwi reduce interval so oauth doesn't expire ([@mikey0000] - [#99489]) ([electric_kiwi docs])
+- Read modbus data before scan_interval ([@janiversen] - [#99243]) ([modbus docs])
+- Make modbus retry fast on read errors ([@janiversen] - [#99576]) ([modbus docs])
+- Fix Soma cover tilt ([@ratsept] - [#99717]) ([soma docs])
+- Cache device trigger info during ZHA startup ([@puddly] - [#99764]) ([zha docs])
+- Airthings BLE unique id migration ([@LaStrada] - [#99832]) ([airthings_ble docs])
+- Update RestrictedPython to 6.2 ([@cdce8p] - [#99955]) ([python_script docs])
+- Bump bleak to 0.21.1 ([@bdraco] - [#99960]) ([bluetooth docs])
+- Bump python-roborock to 33.2 ([@Lash-L] - [#99962]) ([roborock docs])
+- Handle disconnects in zwave_js repair flow ([@raman325] - [#99964]) ([zwave_js docs])
+- Bump plugwise to v0.32.2 ([@bouwew] - [#99973]) ([plugwise docs])
+- Bump bluetooth-auto-recovery to 1.2.3 ([@bdraco] - [#99979]) ([bluetooth docs])
+- Avoid probing ipp printers for unique_id when it is available via mdns ([@bdraco] - [#99982]) ([ipp docs])
+- Bump pymodbus to v3.5.2 ([@janiversen] - [#99988]) ([modbus docs])
+- Bump pywaze to 0.4.0 ([@eifinger] - [#99995]) ([waze_travel_time docs])
+- Bump systembridgeconnector to 3.8.2 ([@timmo001] - [#100051]) ([system_bridge docs])
+- Bump aiovodafone to 0.2.0 ([@chemelli74] - [#100062]) ([vodafone_station docs])
+- Remove Comelit alarm data retrieval ([@chemelli74] - [#100067]) ([comelit docs])
+- Fix addon slug validation ([@mdegat01] - [#100070]) ([hassio docs])
+- Remove duplicated word in enphase description text ([@greiginsydney] - [#100098]) ([enphase_envoy docs])
+- Fix TriggerEntity.async_added_to_hass ([@emontnemery] - [#100119]) ([template docs])
+- Bump hatasmota to 0.7.2 ([@emontnemery] - [#100129]) ([tasmota docs])
+- Update frontend to 20230911.0 ([@bramkragten] - [#100139]) ([frontend docs])
+- Fix devices not always reporting IP - bump aiounifi to v62 ([@Kane610] - [#100149]) ([unifi docs])
+- Fix AVM Fritz!Tools update entity ([@mib1185] - [#100151]) ([fritz docs])
+- Bump ZHA dependencies ([@puddly] - [#100156]) ([zha docs])
+- Bump zwave-js-server-python to 0.51.2 ([@raman325] - [#100159]) ([zwave_js docs])
+- Adjust tasmota sensor device class and icon mapping ([@emontnemery] - [#100168]) ([tasmota docs])
+- Bump hatasmota to 0.7.3 ([@emontnemery] - [#100169]) ([tasmota docs])
+- Bump Ultraheat to version 0.5.7 ([@vpathuis] - [#100172]) ([landisgyr_heat_meter docs])
+- Fix entity name attribute on mqtt entity is not removed on update ([@jbouwh] - [#100187]) ([mqtt docs])
+- Bump hass-nabucasa from 0.70.0 to 0.71.0 ([@ludeeus] - [#100193]) ([cloud docs])
+
+[#100051]: https://github.com/home-assistant/core/pull/100051
+[#100062]: https://github.com/home-assistant/core/pull/100062
+[#100067]: https://github.com/home-assistant/core/pull/100067
+[#100070]: https://github.com/home-assistant/core/pull/100070
+[#100098]: https://github.com/home-assistant/core/pull/100098
+[#100119]: https://github.com/home-assistant/core/pull/100119
+[#100129]: https://github.com/home-assistant/core/pull/100129
+[#100139]: https://github.com/home-assistant/core/pull/100139
+[#100149]: https://github.com/home-assistant/core/pull/100149
+[#100151]: https://github.com/home-assistant/core/pull/100151
+[#100156]: https://github.com/home-assistant/core/pull/100156
+[#100159]: https://github.com/home-assistant/core/pull/100159
+[#100168]: https://github.com/home-assistant/core/pull/100168
+[#100169]: https://github.com/home-assistant/core/pull/100169
+[#100172]: https://github.com/home-assistant/core/pull/100172
+[#100187]: https://github.com/home-assistant/core/pull/100187
+[#100188]: https://github.com/home-assistant/core/pull/100188
+[#100193]: https://github.com/home-assistant/core/pull/100193
+[#99221]: https://github.com/home-assistant/core/pull/99221
+[#99243]: https://github.com/home-assistant/core/pull/99243
+[#99489]: https://github.com/home-assistant/core/pull/99489
+[#99576]: https://github.com/home-assistant/core/pull/99576
+[#99717]: https://github.com/home-assistant/core/pull/99717
+[#99741]: https://github.com/home-assistant/core/pull/99741
+[#99764]: https://github.com/home-assistant/core/pull/99764
+[#99832]: https://github.com/home-assistant/core/pull/99832
+[#99950]: https://github.com/home-assistant/core/pull/99950
+[#99955]: https://github.com/home-assistant/core/pull/99955
+[#99960]: https://github.com/home-assistant/core/pull/99960
+[#99962]: https://github.com/home-assistant/core/pull/99962
+[#99964]: https://github.com/home-assistant/core/pull/99964
+[#99973]: https://github.com/home-assistant/core/pull/99973
+[#99979]: https://github.com/home-assistant/core/pull/99979
+[#99982]: https://github.com/home-assistant/core/pull/99982
+[#99988]: https://github.com/home-assistant/core/pull/99988
+[#99995]: https://github.com/home-assistant/core/pull/99995
+[@Kane610]: https://github.com/Kane610
+[@LaStrada]: https://github.com/LaStrada
+[@Lash-L]: https://github.com/Lash-L
+[@bdraco]: https://github.com/bdraco
+[@bouwew]: https://github.com/bouwew
+[@bramkragten]: https://github.com/bramkragten
+[@cdce8p]: https://github.com/cdce8p
+[@chemelli74]: https://github.com/chemelli74
+[@eifinger]: https://github.com/eifinger
+[@emontnemery]: https://github.com/emontnemery
+[@greiginsydney]: https://github.com/greiginsydney
+[@janiversen]: https://github.com/janiversen
+[@jbouwh]: https://github.com/jbouwh
+[@ludeeus]: https://github.com/ludeeus
+[@mdegat01]: https://github.com/mdegat01
+[@mib1185]: https://github.com/mib1185
+[@mikey0000]: https://github.com/mikey0000
+[@puddly]: https://github.com/puddly
+[@raman325]: https://github.com/raman325
+[@ratsept]: https://github.com/ratsept
+[@timmo001]: https://github.com/timmo001
+[@vpathuis]: https://github.com/vpathuis
+[abode docs]: /integrations/abode/
+[accuweather docs]: /integrations/accuweather/
+[acmeda docs]: /integrations/acmeda/
+[adax docs]: /integrations/adax/
+[adguard docs]: /integrations/adguard/
+[ads docs]: /integrations/ads/
+[airthings_ble docs]: /integrations/airthings_ble/
+[bluetooth docs]: /integrations/bluetooth/
+[cloud docs]: /integrations/cloud/
+[comelit docs]: /integrations/comelit/
+[electric_kiwi docs]: /integrations/electric_kiwi/
+[enphase_envoy docs]: /integrations/enphase_envoy/
+[fritz docs]: /integrations/fritz/
+[frontend docs]: /integrations/frontend/
+[hassio docs]: /integrations/hassio/
+[ipp docs]: /integrations/ipp/
+[landisgyr_heat_meter docs]: /integrations/landisgyr_heat_meter/
+[modbus docs]: /integrations/modbus/
+[mqtt docs]: /integrations/mqtt/
+[plugwise docs]: /integrations/plugwise/
+[python_script docs]: /integrations/python_script/
+[roborock docs]: /integrations/roborock/
+[soma docs]: /integrations/soma/
+[system_bridge docs]: /integrations/system_bridge/
+[tasmota docs]: /integrations/tasmota/
+[template docs]: /integrations/template/
+[unifi docs]: /integrations/unifi/
+[vodafone_station docs]: /integrations/vodafone_station/
+[waze_travel_time docs]: /integrations/waze_travel_time/
+[zha docs]: /integrations/zha/
+[zwave_js docs]: /integrations/zwave_js/
+
+## Need help? Join the community!
+
+Home Assistant has a great community of users who are all more than willing
+to help each other out. So, join us!
+
+Our very active [Discord chat server](/join-chat) is an excellent place to be
+at, and don't forget to join our amazing [forums](https://community.home-assistant.io/).
+
+Found a bug or issue? Please report it in our [issue tracker](https://github.com/home-assistant/core/issues),
+to get it fixed! Or, check [our help page](/help) for guidance for more
+places you can go.
+
+Are you more into email? [Sign-up for our Building the Open Home Newsletter](/newsletter)
+to get the latest news about features, things happening in our community and
+other news about building an Open Home; straight into your inbox.
+
+## Breaking changes
+
+{% details "BMW Connected Drive" %}
+
+The "Refresh from cloud" button has been removed. Use the
+`homeassistant.update_entity` service with any BMW entity for a
+full reload instead.
+
+([@rikroe] - [#97864]) ([documentation](/integrations/bmw_connected_drive))
+
+[@rikroe]: https://github.com/rikroe
+[#97864]: https://github.com/home-assistant/core/pull/97864
+
+{% enddetails %}
+
+{% details "DoorBird" %}
+
+The `doorbird_reset_favorites` event is no longer fired when the clear webhook
+is called. Note: this event was never documented.
+
+([@bdraco] - [#98585]) ([documentation](/integrations/doorbird))
+
+[@bdraco]: https://github.com/bdraco
+[#98585]: https://github.com/home-assistant/core/pull/98585
+
+{% enddetails %}
+
+{% details "Enphase Envoy" %}
+
+Envoy versions < 3.9 (pre-API) are no longer supported as they require
+web scraping which is disallowed by [ADR-0004](https://github.com/home-assistant/architecture/blob/master/adr/0004-webscraping.md).
+
+([@bdraco] - [#97862]) ([documentation](/integrations/enphase_envoy))
+
+[@bdraco]: https://github.com/bdraco
+[#97862]: https://github.com/home-assistant/core/pull/97862
+
+{% enddetails %}
+
+{% details "ESPHome" %}
+
+To prevent cross-linked devices, replacing an ESPHome device with a different
+board is no longer allowed. Instead, delete the integration entry and re-add
+the new device when the mac address of the board changes.
+
+([@bdraco] - [#98787]) ([documentation](/integrations/esphome))
+
+[@bdraco]: https://github.com/bdraco
+[#98787]: https://github.com/home-assistant/core/pull/98787
+
+{% enddetails %}
+
+{% details "EZVIZ" %}
+
+Only switches supported by the camera will be created. Non switchable switches have been removed.
+
+([@RenierM26] - [#95672]) ([documentation](/integrations/ezviz))
+
+[@RenierM26]: https://github.com/RenierM26
+[#95672]: https://github.com/home-assistant/core/pull/95672
+
+{% enddetails %}
+
+{% details "Flume" %}
+
+You might get false positives for leak detected and high flow sensors if you
+have old unread notifications in the Flume app.
+
+Before, the leak detected and high flow sensors would only trigger until you
+read the notification in the Flume app which was too late for Home Assistant
+to take any automated action.
+
+Now, they trigger regardless if you have read or not the notification. They will
+remain active until you delete the notification in the Flume app,
+similar to [the old behavior documented](/integrations/flume/#notifications).
+
+([@tronikos] - [#98560]) ([documentation](/integrations/flume))
+
+[@tronikos]: https://github.com/tronikos
+[#98560]: https://github.com/home-assistant/core/pull/98560
+
+{% enddetails %}
+
+{% details "Hive" %}
+
+The previously deprecated service `hive.boost_heating` has been removed.
+
+([@gjohansson-ST] - [#97444]) ([documentation](/integrations/hive))
+
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[#97444]: https://github.com/home-assistant/core/pull/97444
+
+{% enddetails %}
+
+{% details "HTTP / Webserver" %}
+
+Home Assistant can't be put in an iframe anymore by default. If you still want
+to embed the Home Assistant interface in a frame, you can do so by disabling
+`use_x_frame_options` by setting it to `false` in the `http` configuration.
+
+([@frenck] - [#97784]) ([documentation](/integrations/http))
+
+[@frenck]: https://github.com/frenck
+[#97784]: https://github.com/home-assistant/core/pull/97784
+
+{% enddetails %}
+
+{% details "Météo-France" %}
+
+The Météo-France weather entities have been updated:
+
+- The `forecast` state attribute is deprecated and will be removed in
+ Home Assistant Core 2024.3, you should instead use the `weather.get_forecast`
+ service.
+- The config entry option to select hourly or daily forecast can no longer be
+ adjusted, but any existing configuration of the forecast period will be
+ respected until Home Assistant Core 2024.3.
+- Météo-France now provides a single weather entity which supports both
+ hourly and daily forecast.
+
+([@emontnemery] - [#98022]) ([documentation](/integrations/meteo_france))
+
+[@emontnemery]: https://github.com/emontnemery
+[#98022]: https://github.com/home-assistant/core/pull/98022
+
+{% enddetails %}
+
+{% details "Mill" %}
+
+Mill has moved to a new IoT solution and released a new API. The unique ID from
+the old API is no longer available, so all devices will be shown as new devices.
+Support for the heater fan will be added later.
+
+([@Danielhiversen] - [#97497]) ([documentation](/integrations/mill))
+
+[@Danielhiversen]: https://github.com/Danielhiversen
+[#97497]: https://github.com/home-assistant/core/pull/97497
+
+{% enddetails %}
+
+{% details "MQTT" %}
+
+MQTT device trackers no longer always update when there is no state change.
+This means that automations that trigger on a state change no longer are
+triggered if there is no change.
+
+([@jbouwh] - [#98838]) ([documentation](/integrations/mqtt))
+
+[@jbouwh]: https://github.com/jbouwh
+[#98838]: https://github.com/home-assistant/core/pull/98838
+
+{% enddetails %}
+
+{% details "Nextcloud" %}
+
+The CPU load sensor has been replaced, it is not a list of 3 values anymore,
+but there are now three single sensors for
+CPU load within last 1, 5, and 15 minutes.
+
+([@mib1185] - [#99141]) ([documentation](/integrations/nextcloud))
+
+[@mib1185]: https://github.com/mib1185
+[#99141]: https://github.com/home-assistant/core/pull/99141
+
+{% enddetails %}
+
+{% details "Plugwise" %}
+
+The `maximum_boiler_temperature` sensor entity has been replaced by a number
+entity, allowing control as well.
+
+([@CoMPaTech] - [#97203]) ([documentation](/integrations/plugwise))
+
+[@CoMPaTech]: https://github.com/CoMPaTech
+[#97203]: https://github.com/home-assistant/core/pull/97203
+
+---
+
+The additional schema state attributes of the climate entity have been removed.
+They have beeen previously replaced by a select entity.
+
+([@bouwew] - [#98153]) ([documentation](/integrations/plugwise))
+
+[@bouwew]: https://github.com/bouwew
+[#98153]: https://github.com/home-assistant/core/pull/98153
+
+{% enddetails %}
+
+{% details "Start.ca" %}
+
+Start.ca `limit`, `usage`, and `used_remaining` sensors will no longer be created
+when there's no bandwidth cap.
+
+([@emontnemery] - [#98525]) ([documentation](/integrations/startca))
+
+[@emontnemery]: https://github.com/emontnemery
+[#98525]: https://github.com/home-assistant/core/pull/98525
+
+{% enddetails %}
+
+{% details "Trafikverket Train" %}
+
+All attributes have been converted into their own sensors.
+The original sensor is now renamed with suffix "Departure time".
+
+Any automation or script depending on these attributes needs to be adjusted
+to use these new sensors.
+
+([@gjohansson-ST] - [#71432]) ([documentation](/integrations/trafikverket_train))
+
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[#71432]: https://github.com/home-assistant/core/pull/71432
+
+{% enddetails %}
+
+{% details "Z-Wave" %}
+
+The entity naming logic has been updated to be less brittle. As a result,
+some `zwave_js` entities that you haven't given a custom name to may be renamed.
+
+Since they are registered in the entity registry, the entity IDs will not change
+and your automations should therefore not be impacted by the change.
+
+([@raman325] - [#98140]) ([documentation](/integrations/zwave_js))
+
+With this release, you will need to update your zwave-js-server instance. You must use zwave-js-server 1.31.0 or greater (schema 31).
+
+If you use the Z-Wave JS add-on, you need at least version 0.1.88.
+If you use the Z-Wave JS UI add-on, you need at least version 1.15.9.
+If you use the Z-Wave JS UI Docker container, you need at least version 8.23.2.
+If you run your own Docker container or some other installation method, you will need to update your zwave-js-server instance to at least 1.31.0.
+
+([@raman325] - [#99250]) ([documentation](/integrations/zwave_js))
+
+[@raman325]: https://github.com/raman325
+[#98140]: https://github.com/home-assistant/core/pull/98140
+[#99250]: https://github.com/home-assistant/core/pull/99250
+
+{% enddetails %}
+
+If you are a custom integration developer and want to learn about breaking
+changes and new features available for your integration: Be sure to follow our
+[developer blog][devblog]. The following are the most notable for this release:
+
+- [Entity state formatting](https://developers.home-assistant.io/blog/2023/08/29/hass-format-state)
+- [HomeAssistant.__init__ requires passing a string to it](https://developers.home-assistant.io/blog/2023/08/29/homeassistant-changed-signature)
+- [Numerical sensors are no longer allowed to set their state to NaN or inf](https://developers.home-assistant.io/blog/2023/08/23/sensor-updates)
+- [Weather entity forecast types](https://developers.home-assistant.io/blog/2023/08/07/weather_entity_forecast_types/)
+
+[devblog]: https://developers.home-assistant.io/blog/
+
+## All changes
+
+Of course, there is a lot more in this release. You can find a list of
+all changes made here: [Full changelog for Home Assistant Core 2023.9](/changelogs/core-2023.9)
diff --git a/source/_posts/2023-09-13-coming-soon-10-years-ha.markdown b/source/_posts/2023-09-13-coming-soon-10-years-ha.markdown
new file mode 100644
index 00000000000..7ac7f9af54e
--- /dev/null
+++ b/source/_posts/2023-09-13-coming-soon-10-years-ha.markdown
@@ -0,0 +1,17 @@
+---
+layout: post
+title: "Celebrate 10 years with us"
+description: "Join us on September 17 to look back on ten years of Home Assistant and hear some very special announcements..."
+date: 2023-09-13 00:00:00
+date_formatted: "September 13, 2023"
+author: Paulus Schoutsen
+comments: true
+categories: Announcements
+og_image: /images/frontpage/HA10_-_Website_banner.png
+---
+
+Join us on September 17 to look back on ten years of Home Assistant and hear some very special announcements...
+
+
+ Watch on YouTube: Home Assistant 10th Anniversary Event #HA10
+
diff --git a/source/_redirects b/source/_redirects
index b805dece7ef..72a31657ff3 100644
--- a/source/_redirects
+++ b/source/_redirects
@@ -544,7 +544,6 @@ layout: null
/integrations/trackr /more-info/removed-integration 301
/integrations/ubee /more-info/removed-integration 301
/integrations/uber /more-info/removed-integration 301
-/integrations/ultraloq /more-info/removed-integration 301
/integrations/updater /more-info/removed-integration 301
/integrations/ups /more-info/removed-integration 301
/integrations/uscis /more-info/removed-integration 301
diff --git a/source/changelogs/core-2023.9.markdown b/source/changelogs/core-2023.9.markdown
new file mode 100644
index 00000000000..26bfa34e102
--- /dev/null
+++ b/source/changelogs/core-2023.9.markdown
@@ -0,0 +1,2525 @@
+---
+title: Full changelog for Home Assistant Core 2023.9
+description: Detailed changelog for the Home Assistant Core 2023.9 release
+replace_regex: \s\(\[?[a-z0-9\-\s_]+\]?\)$
+---
+
+These are all the changes included in the Home Assistant Core 2023.9 release.
+
+For a summary in a more readable format:
+[Release notes blog for this release](/blog/2023/09/06/release-20239/).
+
+## Beta Fixes
+
+- Update Mill lib, improve error handling ([@Danielhiversen] - [#99296]) ([mill docs]) (beta fix)
+- Patch service validation in Aussie Broadband ([@Bre77] - [#99077]) ([aussie_broadband docs]) (beta fix)
+- Opower MFA fixes ([@tronikos] - [#99317]) ([opower docs]) (beta fix)
+- Add documentation URL for homeassistant_yellow ([@emontnemery] - [#99336]) ([homeassistant_yellow docs]) (beta fix)
+- Bump ZHA dependencies ([@puddly] - [#99341]) ([zha docs]) (beta fix)
+- Update pysnooz to 0.8.6 ([@AustinBrunkhorst] - [#99368]) ([snooz docs]) (beta fix)
+- Improve template sensor config flow validation ([@emontnemery] - [#99373]) ([template docs]) (beta fix)
+- Revert orjson to 3.9.2 ([@bdraco] - [#99374]) (beta fix)
+- Add documentation URL for homeassistant_sky_connect ([@emontnemery] - [#99377]) ([homeassistant_sky_connect docs]) (beta fix)
+- Revert "Sonos add yaml config issue" ([@gjohansson-ST] - [#99379]) ([sonos docs]) (beta fix)
+- Add entity component translation for water heater away mode attribute ([@piitaya] - [#99394]) ([water_heater docs]) (beta fix)
+- Update frontend to 20230831.0 ([@bramkragten] - [#99405]) ([frontend docs]) (beta fix)
+- Add remote alias to connection info response ([@ludeeus] - [#99410]) ([cloud docs]) (beta fix)
+- Initialize ZHA device database before connecting to the radio ([@puddly] - [#98082]) ([zha docs]) (beta fix)
+- Create a ZHA repair when directly accessing a radio with multi-PAN firmware ([@puddly] - [#98275]) ([zha docs]) (beta fix)
+- Address late review for Nextcloud ([@mib1185] - [#99226]) ([nextcloud docs]) (beta fix)
+- Significantly reduce overhead to filter event triggers ([@bdraco] - [#99376]) ([homeassistant docs]) (beta fix)
+- Update AEMET-OpenData to v0.4.4 ([@Noltari] - [#99418]) ([aemet docs]) (beta fix)
+- Use common key for away mode state translations ([@piitaya] - [#99425]) ([water_heater docs]) (beta fix)
+- Update asynsleepiq library to 1.3.7 ([@kbickar] - [#99431]) ([sleepiq docs]) (beta fix)
+- Fix template helper strings ([@emontnemery] - [#99456]) ([template docs]) (beta fix)
+- Update frontend to 20230901.0 ([@bramkragten] - [#99464]) ([frontend docs]) (beta fix)
+- Handle timestamp sensors in Prometheus integration ([@rcloran] - [#98001]) ([prometheus docs]) (beta fix)
+- Update Tibber library to 0.28.2 ([@Danielhiversen] - [#99115]) ([tibber docs]) (beta fix)
+- Check new IP of Reolink camera from DHCP ([@starkillerOG] - [#99381]) ([reolink docs]) (beta fix)
+- Fix device name in zwave_js repair flow ([@raman325] - [#99414]) ([zwave_js docs]) (beta fix)
+- Log unexpected exceptions causing recorder shutdown ([@emontnemery] - [#99445]) ([recorder docs]) (beta fix)
+- Fix translation bug Renson sensors ([@jimmyd-be] - [#99461]) ([renson docs]) (beta fix)
+- Fix default language in Workday ([@gjohansson-ST] - [#99463]) ([workday docs]) (beta fix)
+- Update aiotractive to 0.5.6 ([@oandrew] - [#99477]) ([tractive docs]) (beta fix)
+- Bump zeroconf to 0.91.1 ([@bdraco] - [#99490]) ([zeroconf docs]) (beta fix)
+- Extend template entities with a script section ([@allenporter] - [#96175]) ([template docs]) (beta fix)
+- Mark AVM Fritz!Smarthome as Gold integration ([@mib1185] - [#97086]) ([fritzbox docs]) (beta fix)
+- Enumerate available states in Prometheus startup ([@rcloran] - [#97993]) ([prometheus docs]) (beta fix)
+- Don't set assumed_state in cover groups ([@emontnemery] - [#99391]) ([group docs]) (beta fix)
+- Don't set assumed_state in fan groups ([@emontnemery] - [#99399]) ([group docs]) (beta fix)
+- Fix battery reading in SOMA API ([@ratsept] - [#99403]) ([soma docs]) (beta fix)
+- Fix recollect_waste month time boundary issue ([@mikeodr] - [#99429]) ([recollect_waste docs]) (beta fix)
+- Set state of entity with invalid state to unknown ([@emontnemery] - [#99452]) (beta fix)
+- Validate state in template helper preview ([@emontnemery] - [#99455]) ([template docs]) (beta fix)
+- Fix module check in _async_get_flow_handler ([@bdraco] - [#99509]) (beta fix)
+- Bump aiohomekit to 3.0.2 ([@bdraco] - [#99514]) ([homekit_controller docs]) (beta fix)
+- Bump bleak to 0.21.0 ([@bdraco] - [#99520]) ([bluetooth docs]) (beta fix)
+- Modbus switch, allow restore "unknown" ([@janiversen] - [#99533]) ([modbus docs]) (beta fix)
+- Bump bleak-retry-connector to 3.1.2 ([@bdraco] - [#99540]) ([bluetooth docs]) (beta fix)
+- Update bluetooth-data-tools to 1.11.0 ([@Jc2k] - [#99485]) ([esphome docs]) ([bluetooth docs]) ([led_ble docs]) ([ld2410_ble docs]) (beta fix)
+- Fix loading filesize coordinator from wrong place ([@gjohansson-ST] - [#99547]) ([filesize docs]) (beta fix)
+- Bump aiounifi to v60 ([@Kane610] - [#99548]) ([unifi docs]) (beta fix)
+- Bump ZHA dependencies ([@puddly] - [#99561]) ([zha docs]) (beta fix)
+- Small cleanup of WS command render_template ([@emontnemery] - [#99562]) ([websocket_api docs]) (beta fix)
+- Bump pyenphase to 1.9.1 ([@joostlek] - [#99574]) ([enphase_envoy docs]) (beta fix)
+- Remove unneeded name property from Logi Circle ([@joostlek] - [#99604]) ([logi_circle docs]) (beta fix)
+- Revert "Deprecate timer start optional duration parameter" ([@emontnemery] - [#99613]) ([timer docs]) (beta fix)
+- Update frontend to 20230904.0 ([@bramkragten] - [#99636]) ([frontend docs]) (beta fix)
+- Bump gardena_bluetooth to 1.4.0 ([@elupus] - [#99530]) ([gardena_bluetooth docs]) (beta fix)
+- Bump aioesphomeapi to 16.0.4 ([@bdraco] - [#99541]) ([esphome docs]) (beta fix)
+- Small cleanup of TemplateEnvironment ([@emontnemery] - [#99571]) (beta fix)
+- Fix not stripping no device class in template helper binary sensor ([@gjohansson-ST] - [#99640]) ([template docs]) (beta fix)
+- Fix missing unique id in SQL ([@gjohansson-ST] - [#99641]) ([sql docs]) (beta fix)
+- Update aioairzone to v0.6.8 ([@Noltari] - [#99644]) ([airzone docs]) (beta fix)
+- Fix long press event for matter generic switch ([@itpeters] - [#99645]) ([matter docs]) (beta fix)
+- Fix mobile app dispatcher performance ([@bdraco] - [#99647]) ([mobile_app docs]) (beta fix)
+- Bump zwave-js-server-python to 0.51.1 ([@raman325] - [#99652]) ([zwave_js docs]) (beta fix)
+- Update frontend to 20230905.0 ([@bramkragten] - [#99677]) ([frontend docs]) (beta fix)
+- Allow specifying a custom log function for template render ([@emontnemery] - [#99572]) ([websocket_api docs]) (beta fix)
+- Include template listener info in template preview ([@emontnemery] - [#99669]) ([template docs]) (beta fix)
+- Fix ZHA startup creating entities with non-unique IDs ([@puddly] - [#99679]) ([zha docs]) (beta fix)
+- Bump reolink_aio to 0.7.9 ([@starkillerOG] - [#99680]) ([reolink docs]) (beta fix)
+- Bump zamg to 0.3.0 ([@killer0071234] - [#99685]) ([zamg docs]) (beta fix)
+- Bump aiounifi to v61 ([@Kane610] - [#99686]) ([unifi docs]) (beta fix)
+- Bump aioesphomeapi to 16.0.5 ([@bdraco] - [#99698]) ([esphome docs]) (beta fix)
+- Fix unit conversion for gas cost sensor ([@emontnemery] - [#99708]) ([energy docs]) (beta fix)
+- Update frontend to 20230906.0 ([@bramkragten] - [#99715]) ([frontend docs]) (beta fix)
+- Reolink onvif not supported fix ([@starkillerOG] - [#99714]) ([reolink docs]) (beta fix)
+- Send template render errors to template helper preview ([@emontnemery] - [#99716]) ([template docs]) (beta fix)
+- Don't allow changing device class in template binary sensor options ([@emontnemery] - [#99720]) ([template docs]) (beta fix)
+- Correct state attributes in template helper preview ([@emontnemery] - [#99722]) ([template docs]) (beta fix)
+- Correct state attributes in group helper preview ([@emontnemery] - [#99723]) ([group docs]) (beta fix)
+- Update frontend to 20230906.1 ([@bramkragten] - [#99733]) ([frontend docs]) (beta fix)
+
+## All changes
+
+- Bump version to 2023.9.0dev0 ([@frenck] - [#97265])
+- Add Schlage integration ([@dknowles2] - [#93777]) ([schlage docs]) (new-integration)
+- Move async_client_device_info_fn to entity.py ([@dougiteixeira] - [#97270]) ([unifi docs])
+- Add AirNow Reporting Station as sensor ([@asymworks] - [#97273]) ([airnow docs])
+- Add breaks_in_ha_version for Dynalite YAML import ([@gjohansson-ST] - [#97359]) ([dynalite docs])
+- Netatmo add issue for yaml deprecation ([@gjohansson-ST] - [#97360]) ([netatmo docs])
+- Plum Lightpad deprecation issue for yaml configuration ([@gjohansson-ST] - [#97362]) ([plum_lightpad docs])
+- Sure Petcare deprecation issue yaml configuration ([@gjohansson-ST] - [#97363]) ([surepetcare docs])
+- Deprecate Freebox YAML ([@joostlek] - [#97345]) ([freebox docs])
+- Sonos add yaml config issue ([@gjohansson-ST] - [#97365]) ([sonos docs])
+- Home Connect deprecation issue yaml configuration ([@gjohansson-ST] - [#97361]) ([home_connect docs])
+- Avoid firing update coordinator callbacks when nothing has changed ([@bdraco] - [#97268])
+- Disable always_update in rain machine coordinator ([@bdraco] - [#97410]) ([rainmachine docs])
+- Disable always_update in steamist coordinator ([@bdraco] - [#97411]) ([steamist docs])
+- Disable always_update in flux_led coordinator ([@bdraco] - [#97412]) ([flux_led docs])
+- Disable always_update in nut coordinator ([@bdraco] - [#97413]) ([nut docs])
+- Disable always_update in emonitor coordinator ([@bdraco] - [#97414]) ([emonitor docs])
+- Disable always_update in lookin coordinator ([@bdraco] - [#97415]) ([lookin docs])
+- Disable always_update in powerwall coordinator ([@bdraco] - [#97416]) ([powerwall docs])
+- Disable always_update in cert_expiry coordinator ([@bdraco] - [#97417]) ([cert_expiry docs])
+- Disable always_update in filesize coordinator ([@bdraco] - [#97418]) ([filesize docs])
+- Disable always_update in esphome dashboard coordinator ([@bdraco] - [#97419]) ([esphome docs])
+- meteo_france add yaml config removal issue ([@gjohansson-ST] - [#97428]) ([meteo_france docs])
+- OctoPrint add yaml config removal issue ([@gjohansson-ST] - [#97431]) ([octoprint docs])
+- MELCloud add yaml config removal issue ([@gjohansson-ST] - [#97430]) ([melcloud docs])
+- LiteJet add yaml config removal issue ([@gjohansson-ST] - [#97429]) ([litejet docs])
+- Disable always_update in oncue coordinator ([@bdraco] - [#97434]) ([oncue docs])
+- Disable always_update in enphase_envoy coordinator ([@bdraco] - [#97425]) ([enphase_envoy docs])
+- Disable always_update in yale_smart_alarm coordinator ([@gjohansson-ST] - [#97426]) ([yale_smart_alarm docs])
+- Small cleanups to ambient station ([@bdraco] - [#97421]) ([ambient_station docs])
+- Disable always_update in nexia coordinator ([@bdraco] - [#97436]) ([nexia docs])
+- GDACS add yaml config issue ([@gjohansson-ST] - [#97424]) ([gdacs docs])
+- Add a battery sensor to Schlage ([@dknowles2] - [#97369]) ([schlage docs]) (new-platform)
+- bmw_connected_drive: Add WASHING_FLUID to correct binary sensor attribute ([@rikroe] - [#97448]) ([bmw_connected_drive docs])
+- Add more sensors to PEGELONLINE ([@mib1185] - [#97295]) ([pegel_online docs])
+- Add entity description to EZVIZ SwitchEntity ([@RenierM26] - [#95672]) ([ezviz docs]) (breaking-change)
+- Add device and state class to humidity sensor ([@mbo18] - [#97331]) ([meteo_france docs])
+- Add entity translations for AccuWeather ([@bieniu] - [#95940]) ([accuweather docs])
+- Update aiopvpc to 4.2.2 ([@cdce8p] - [#97482]) ([pvpc_hourly_pricing docs])
+- Update pydantic to 1.10.12 ([@cdce8p] - [#97479])
+- Change IoT class for ToD to calculated ([@jpbede] - [#97422]) ([tod docs])
+- Change IoT class for Moon to calculated ([@joostlek] - [#97405]) ([moon docs])
+- Add entity translation to Moon ([@joostlek] - [#97404]) ([moon docs])
+- Refactor deprecated RESULT_TYPE_* ([@GrumpyMeow] - [#97367])
+- Fix typo in PassiveBluetoothDataProcessor ([@bdraco] - [#97508]) ([bluetooth docs])
+- Fix bthome not remembering a device is a sleepy device ([@bdraco] - [#97517]) ([bthome docs])
+- Fix xiaomi_ble not remembering a device is a sleepy device ([@bdraco] - [#97518]) ([xiaomi_ble docs])
+- Use internal imports in Bluetooth update coordinator to avoid future circular imports ([@bdraco] - [#97506]) ([bluetooth docs])
+- Combine Bluetooth update coordinator subscriptions to reduce code duplication ([@bdraco] - [#97503]) ([bluetooth docs])
+- Remove myself from scrape codeowners ([@epenet] - [#97524]) ([scrape docs])
+- Fix unused variable in Renault tests ([@epenet] - [#97529]) ([renault docs])
+- Remove myself from rest codeowners ([@epenet] - [#97528]) ([rest docs])
+- Load homekit_controller test data using its json loader ([@bdraco] - [#97534]) ([homekit_controller docs])
+- Remove myself from const and util codeowners ([@epenet] - [#97527])
+- Update pydiscovergy to 2.0.3 ([@cdce8p] - [#97509]) ([discovergy docs])
+- Update python-typing-update to 0.6.0 ([@cdce8p] - [#97531])
+- Bump pyschlage to 2023.7.0 ([@dknowles2] - [#97366]) ([schlage docs])
+- Fix saving subclassed datetime objects in storage ([@bdraco] - [#97502])
+- Add frequency sensors to Nibe ([@janmolemans] - [#89072]) ([nibe_heatpump docs])
+- Cleanups to the Bluetooth processor coordinators ([@bdraco] - [#97546]) ([bluetooth docs])
+- Add Starlink to .strict-typing ([@boswelja] - [#97598])
+- Do not set hass data before first coordinator refresh ([@mib1185] - [#97343]) ([volvooncall docs]) ([hassio docs]) ([juicenet docs]) ([syncthru docs]) ([fritz docs]) ([mill docs]) ([pi_hole docs]) ([nextcloud docs]) ([dexcom docs]) ([devolo_home_network docs]) ([loqed docs]) ([landisgyr_heat_meter docs]) ([nextdns docs])
+- use write_registers also for target temp ([@brunoenten] - [#97475]) ([modbus docs])
+- Fix aiohttp code DeprecationWarnings ([@cdce8p] - [#97621]) ([netatmo docs]) ([bond docs])
+- Fix async_timeout DeprecationWarnings ([@cdce8p] - [#97622]) ([media_player docs]) ([webostv docs]) ([upb docs])
+- Fix httpx DeprecationWarning ([@cdce8p] - [#97625]) ([rest docs])
+- Replace deprecated aiohttp_unused_port fixture ([@cdce8p] - [#97626]) ([image_processing docs]) ([http docs])
+- Fix pylint DeprecationWarnings ([@cdce8p] - [#97627])
+- Fix abode DeprecationWarnings ([@cdce8p] - [#97620]) ([abode docs])
+- Fix ssl DeprecationWarnings ([@cdce8p] - [#97623]) ([webostv docs])
+- Fix deluge DeprecationWarning ([@cdce8p] - [#97624]) ([deluge docs])
+- Replace deprecated pkg_resources with importlib.metadata ([@cdce8p] - [#97628])
+- Revert "OctoPrint add yaml config removal issue" ([@gjohansson-ST] - [#97674]) ([octoprint docs])
+- Add hour of free power select to Electric Kiwi ([@mikey0000] - [#97515]) ([electric_kiwi docs]) (new-platform)
+- Use mirror to run `black` with pre-commit ([@cdce8p] - [#95605])
+- Bump pymodbus v3.4.1. ([@janiversen] - [#97612]) ([modbus docs])
+- Refactored deprecated UNITS ([@GrumpyMeow] - [#97368]) ([homekit_controller docs])
+- Bump python-opensky to 0.2.0 ([@joostlek] - [#97687]) ([opensky docs])
+- Allow to sort options in select selector ([@piitaya] - [#97680])
+- address code comments / tidy ups ([@mikey0000] - [#97716]) ([electric_kiwi docs])
+- Fix yalex_ble test RuntimeWarning ([@cdce8p] - [#97732]) ([yalexs_ble docs])
+- Fix hassfest check for schema ([@bdraco] - [#97713])
+- Fix zha test RuntimeWarnings ([@cdce8p] - [#97733]) ([zha docs])
+- Fix airvisual RuntimeWarning ([@cdce8p] - [#97739]) ([airvisual docs])
+- Add OUI to tplink diagnostics ([@bdraco] - [#97646]) ([tplink docs])
+- Add ability to remove Litter-Robot if no longer provided by integration ([@natekspencer] - [#97702]) ([litterrobot docs])
+- Fix mqtt test DeprecationWarnings ([@cdce8p] - [#97734]) ([mqtt docs])
+- Add battery sensor to Roborock ([@Lash-L] - [#97715]) ([roborock docs])
+- Fix command_line tests RuntimeWarnings ([@cdce8p] - [#97731]) ([command_line docs])
+- Fix core test RuntimeWarnings ([@cdce8p] - [#97730])
+- Fix jinja2 DeprecationWarnings ([@cdce8p] - [#97728])
+- Fix http test DeprecationWarnings ([@cdce8p] - [#97737]) ([http docs])
+- Fix recorder DeprecationWarnings ([@cdce8p] - [#97738]) ([recorder docs])
+- Add packaging as default requirement ([@cdce8p] - [#97712])
+- Fix mailbox PytestCollectionWarning ([@cdce8p] - [#97740]) ([mailbox docs])
+- Remove unused translation key from OpenSky ([@joostlek] - [#97699]) ([opensky docs])
+- Break long strings in Axis integration ([@Kane610] - [#97254]) ([axis docs])
+- Add is_admin check to check configuration API ([@frenck] - [#97788]) ([config docs])
+- modbus: use pb not pymodbus consistently as name. ([@janiversen] - [#97780]) ([modbus docs])
+- Update strings.json to correct grammer. ([@JasonCook599] - [#97790]) ([mqtt docs])
+- Fix typo in telegram_bot translations ([@jbouwh] - [#97793]) ([telegram_bot docs])
+- Fix Flexit mypy error in pymodbus ([@janiversen] - [#97799]) ([flexit docs])
+- Add device tracker to Subaru integration ([@G-Two] - [#79492]) ([subaru docs]) (new-platform)
+- Fix Melcloud import issue ([@gjohansson-ST] - [#97673]) ([melcloud docs])
+- Add lightplatform to Duotecno ([@Cereal2nd] - [#97582]) ([duotecno docs]) (new-platform)
+- Update starlink-grpc-tools to 1.1.2 ([@boswelja] - [#97824]) ([starlink docs])
+- Add untested Starlink components to .coveragerc ([@boswelja] - [#97825])
+- Add restart device to UniFi button platform ([@Kane610] - [#97642]) ([unifi docs]) (new-platform)
+- Improve code quality of CalDav ([@lindhe] - [#97570]) ([caldav docs])
+- Refactor alexa modules to avoid circular deps ([@jbouwh] - [#97618]) ([alexa docs])
+- Implement Elmax cover platform ([@albertogeniola] - [#79409]) ([elmax docs]) (new-platform)
+- Bump bluetooth-data-tools to 1.7.0 ([@bdraco] - [#97821]) ([esphome docs]) ([bluetooth docs]) ([led_ble docs]) ([ld2410_ble docs])
+- BMW: Remove deprecated refresh from cloud button ([@rikroe] - [#97864]) ([bmw_connected_drive docs]) (breaking-change)
+- Use new Mill api ([@Danielhiversen] - [#97497]) ([mill docs]) (breaking-change)
+- Change discovergy integration type ([@jpbede] - [#97391]) ([discovergy docs])
+- Migrate to SensorEntityDescriptions for Trafikverket Train ([@gjohansson-ST] - [#97318]) ([trafikverket_train docs])
+- Add support for toothbrushes to xiaomi-ble ([@Ernst79] - [#97276]) ([xiaomi_ble docs])
+- Use constants for translation keys and rename latency time to latency ([@elmurato] - [#97866]) ([minecraft_server docs])
+- Remove long overdue deprecated service boost_heating from Hive ([@gjohansson-ST] - [#97444]) ([hive docs]) (breaking-change)
+- Use PRECISION_TENTHS for Mill local integration ([@LaStrada] - [#97874]) ([mill docs])
+- Refactor enphase_envoy to use pyenphase library ([@bdraco] - [#97862]) ([enphase_envoy docs]) (breaking-change)
+- Add entity translations for Enphase Envoy ([@joostlek] - [#97876]) ([enphase_envoy docs])
+- Bump pyschlage to 2023.8.0 ([@dknowles2] - [#97875]) ([schlage docs])
+- Cache envoy auth tokens to ensure integration works if cloud is offline ([@bdraco] - [#97872]) ([enphase_envoy docs])
+- Schlage: Set the battery sensor state_class to measurement ([@dknowles2] - [#97879]) ([schlage docs])
+- Handle explicit Modbus NaN values ([@joanwa] - [#90800]) ([modbus docs])
+- Replace Float 'nan' with None for modbus floats ([@String-656] - [#93832]) ([modbus docs])
+- Trafikverket Train sensor and attributes to new sensors ([@gjohansson-ST] - [#71432]) ([trafikverket_train docs]) (breaking-change)
+- Fix Trafikverket Train departure state ([@gjohansson-ST] - [#97917]) ([trafikverket_train docs])
+- Fix Trafivkerket Train coordinator exceptions ([@gjohansson-ST] - [#97919]) ([trafikverket_train docs])
+- Velbus code cleanup ([@Cereal2nd] - [#97584]) ([velbus docs])
+- Complete test coverage for OpenSky ([@joostlek] - [#97863]) ([opensky docs])
+- Bump pytrafikverket to 0.3.4 ([@gjohansson-ST] - [#97921]) ([trafikverket_weatherstation docs]) ([trafikverket_train docs]) ([trafikverket_ferry docs])
+- Proactively refresh the enphase envoy token to handle cloud service downtime ([@bdraco] - [#97880]) ([enphase_envoy docs])
+- Bump pytrafikverket to 0.3.5 ([@gjohansson-ST] - [#97923]) ([trafikverket_weatherstation docs]) ([trafikverket_train docs]) ([trafikverket_ferry docs])
+- Bump pyenphase to 0.11.0 ([@bdraco] - [#97926]) ([enphase_envoy docs])
+- Bump pyschlage to 2023.8.1 ([@dknowles2] - [#97927]) ([schlage docs])
+- Update orjson to 3.9.3 ([@cdce8p] - [#97930])
+- Remove DWD code owner ([@joostlek] - [#97938]) ([dwd_weather_warnings docs])
+- Freeze time for whirlpool test to avoid fail ([@jbouwh] - [#97935]) ([whirlpool docs])
+- Add model/part number data enphase_envoy ([@bdraco] - [#97942]) ([enphase_envoy docs])
+- Add default headers to webserver responses ([@frenck] - [#97784]) ([http docs]) (breaking-change)
+- Reduce overhead to start a config entry flow by optimizing fetching the handler ([@bdraco] - [#97883])
+- Restore passive bluetooth entity data at startup ([@bdraco] - [#97462]) ([bluetooth docs])
+- Fix weather entities with update_before_add ([@gjohansson-ST] - [#97950]) ([weather docs])
+- Add repair issue for Reolink when using it with an incompatible global ssl certificate ([@starkillerOG] - [#91597]) ([reolink docs])
+- Bump devolo_plc_api to 1.4.0 ([@Shutgun] - [#97951]) ([devolo_home_network docs])
+- Bump pyoverkiz to 1.10.1 ([@iMicknl] - [#97916]) ([overkiz docs])
+- Fix alexa test RuntimeWarning ([@cdce8p] - [#97956]) ([alexa docs])
+- Neato add yaml config removal issue ([@gjohansson-ST] - [#97447]) ([neato docs])
+- Update enphase_envoy codeowners ([@cgarwood] - [#97947]) ([enphase_envoy docs])
+- Add service for getting a weather forecast ([@emontnemery] - [#97078]) ([weather docs])
+- Modernize met.no weather ([@emontnemery] - [#97952]) ([met docs])
+- Modernize SMHI weather ([@gjohansson-ST] - [#97275]) ([smhi docs])
+- Refactor Trafikverket Train to improve config flow ([@gjohansson-ST] - [#97929]) ([trafikverket_train docs])
+- Schlage: Set the changed by attribute on locks based on log messages ([@dknowles2] - [#97469]) ([schlage docs])
+- Fix docstrings in mobile app device tracker ([@joostlek] - [#97963]) ([mobile_app docs])
+- Restore bthome state at start when device is in range or sleepy ([@bdraco] - [#97949]) ([bthome docs])
+- Improve airthings ble ([@LaStrada] - [#97905]) ([airthings_ble docs])
+- Restore xiaomi_ble state at start when device is in range or sleepy ([@bdraco] - [#97979]) ([xiaomi_ble docs])
+- Alexa typing part 1 ([@jbouwh] - [#97909]) ([alexa docs])
+- Restore govee_ble state when gateway device becomes available ([@bdraco] - [#97984]) ([govee_ble docs])
+- Restore sleepy oralb devices state at startup ([@bdraco] - [#97983]) ([oralb docs])
+- Restore qingping state when device becomes available ([@bdraco] - [#97980]) ([qingping docs])
+- Bump yalexs to 1.5.2 ([@bdraco] - [#97991]) ([august docs])
+- Optimize august timings to prepare for Yale Doorman support ([@bdraco] - [#97940]) ([august docs])
+- Alexa typing part 2 ([@jbouwh] - [#97911]) ([alexa docs])
+- Add support for Yale Doorman to august ([@bdraco] - [#97997]) ([august docs])
+- Move KNX keyring validation and storage to helper module ([@farmio] - [#97931]) ([knx docs])
+- Alexa typing part 3 (handlers) ([@jbouwh] - [#97912]) ([alexa docs])
+- Use global constant for enphase token ([@joostlek] - [#98002]) ([enphase_envoy docs])
+- Add wake word integration ([@synesthesiam] - [#96380]) ([assist_pipeline docs]) ([wyoming docs]) ([wake docs]) (new-integration)
+- Add initial sensors for Enphase Encharge batteries ([@cgarwood] - [#97946]) ([enphase_envoy docs])
+- Cleanup enphase_envoy sensor inheritance ([@bdraco] - [#98012]) ([enphase_envoy docs])
+- Update prometheus-client to 0.17.1 ([@rcloran] - [#97998]) ([prometheus docs])
+- Set up shopping list during onboarding ([@frenck] - [#97974]) ([shopping_list docs]) ([onboarding docs])
+- Add edl21 sensor for positive active instantaneous power ([@StephanU] - [#94736]) ([edl21 docs])
+- Add is_admin checks to cloud APIs ([@frenck] - [#97804]) ([cloud docs])
+- Alexa typing part 4 (capabilities) ([@jbouwh] - [#97915]) ([alexa docs])
+- Improve OTBR factory reset ([@emontnemery] - [#98017]) ([otbr docs])
+- Alexa typing part 5 (smart_home) ([@jbouwh] - [#97918]) ([alexa docs])
+- Modernize ecobee weather ([@emontnemery] - [#98023]) ([ecobee docs])
+- Add is_admin checks to scene/script/automation APIs ([@frenck] - [#98025]) ([config docs])
+- Add prometheus requires_auth parameter ([@gtjadsonsantos] - [#92964]) ([prometheus docs])
+- Use require_admin decorator for check_config permissions ([@frenck] - [#98028]) ([config docs])
+- Modernize met_eireann weather ([@emontnemery] - [#98030]) ([met_eireann docs])
+- Add neato dismiss alert button ([@maxcanna] - [#97572]) ([neato docs])
+- Alexa typing part 6 (state_report) ([@jbouwh] - [#97920]) ([alexa docs]) ([cloud docs])
+- Bump plugwise to v0.31.9 ([@CoMPaTech] - [#97203]) ([plugwise docs]) (breaking-change)
+- modbus: remove unused constants and get 100% coverage. ([@janiversen] - [#97779]) ([modbus docs])
+- Add `neutral current` sensor for Shelly 3EM ([@bieniu] - [#97981]) ([shelly docs])
+- Alexa strict type hints ([@jbouwh] - [#97485]) ([alexa docs]) ([cloud docs])
+- Move all used modbus constants to Stiebel ([@joostlek] - [#98044]) ([stiebel_eltron docs])
+- Add some constants back that were used to Flexit and Stiebel ([@joostlek] - [#98042]) ([stiebel_eltron docs]) ([flexit docs])
+- Make changes in modbus trigger a full CI run ([@emontnemery] - [#98055])
+- Hyphenate "human-readable" in LIFX service description ([@reedy] - [#98058]) ([lifx docs])
+- Add WeatherEntity.__post_init__ ([@emontnemery] - [#98034]) ([weather docs])
+- Fix address typo in Reolink SSL issue description ([@reedy] - [#98060]) ([reolink docs])
+- Add state attributes translation and available modes for Sensibo ([@gjohansson-ST] - [#85234]) ([sensibo docs])
+- Fix duplicated word in imap_email_content deprecation issue description ([@reedy] - [#98051]) ([imap_email_content docs])
+- Patch dt_util.utcnow earlier ([@emontnemery] - [#98050])
+- Add DeviceInfo to Scrape ([@gjohansson-ST] - [#97399]) ([scrape docs])
+- Hyphenate "human-readable" in light service description ([@reedy] - [#98057]) ([light docs])
+- Add Encharge binary sensors to Enphase integration ([@cgarwood] - [#98039]) ([enphase_envoy docs]) (new-platform)
+- Update silabs_multiprotocol_hardware change cannel options flow description ([@reedy] - [#98047]) ([homeassistant_hardware docs])
+- Remove confusing comment from accuweather ([@emontnemery] - [#98063]) ([accuweather docs])
+- Add entity translations to Neato ([@joostlek] - [#98067]) ([neato docs])
+- Bump pyenphase to 1.1.1 ([@cgarwood] - [#98065]) ([enphase_envoy docs])
+- Allow float for inital MQTT climate temperature ([@jbouwh] - [#97995]) ([mqtt docs])
+- Bump pyenphase to 1.1.3 ([@bdraco] - [#98074]) ([enphase_envoy docs])
+- Add entity translations for Ambient station ([@joostlek] - [#98075]) ([ambient_station docs])
+- Add Envoy enpower sensors ([@cgarwood] - [#98086]) ([enphase_envoy docs])
+- Bump pyenphase to 1.3.0 ([@bdraco] - [#98090]) ([enphase_envoy docs])
+- zha: Fix double spaces in strings.json ([@reedy] - [#98097]) ([zha docs])
+- Refactor enphase_envoy to have a shared base class ([@bdraco] - [#98088]) ([enphase_envoy docs])
+- Use math.isfinite instead of explicitly checking for both nan and inf ([@emontnemery] - [#98103]) ([sensor docs]) ([generic_thermostat docs])
+- Add switch platform to Schlage ([@dknowles2] - [#98004]) ([schlage docs]) (new-platform)
+- Fix mock_integration and mock_platform test helpers ([@emontnemery] - [#98109])
+- Add product filtering feature to Trafikverket Train ([@gjohansson-ST] - [#86343]) ([trafikverket_train docs])
+- Migrate EAFM to has entity name ([@joostlek] - [#98121]) ([eafm docs])
+- UniFi WLAN availability affected by WLAN enabled ([@Kane610] - [#98020]) ([unifi docs])
+- Add Off-peak power control to Roborock ([@Lash-L] - [#97307]) ([roborock docs])
+- Bump zwave-js-server-python to 0.50.1 ([@raman325] - [#94760]) ([zwave_js docs])
+- Update zwave_js entity naming logic ([@raman325] - [#98140]) ([zwave_js docs]) (breaking-change)
+- Bump dbus-fast to 1.91.2 ([@bdraco] - [#98105]) ([bluetooth docs])
+- Update orjson to 3.9.4 ([@cdce8p] - [#98108])
+- Add unique_id to frontier_silicon media_player entity ([@wlcrs] - [#97955]) ([frontier_silicon docs])
+- Move Rova constants to separate file ([@joostlek] - [#97566]) ([rova docs])
+- Fix lingering test alexa ([@jbouwh] - [#98128]) ([alexa docs])
+- Refactor Rest Binary sensor with ManualTriggerEntity ([@gjohansson-ST] - [#97400]) ([rest docs])
+- Add device to cert expiry ([@joostlek] - [#98152]) ([cert_expiry docs])
+- Address late comments in #97955 ([@wlcrs] - [#98165]) ([frontier_silicon docs])
+- Ruff: isort don't split imports based on trailing comma ([@frenck] - [#98162])
+- Add Home Assistant Green ([@agners] - [#98171]) ([version docs])
+- Implement opensky data update coordinator ([@joostlek] - [#97925]) ([opensky docs])
+- Fix ruff checks for opensky ([@joostlek] - [#98176]) ([opensky docs])
+- Only handle shell commands output when return_response requested ([@RoboMagus] - [#97777]) ([shell_command docs])
+- Adjust asuswrt tests which create devices ([@emontnemery] - [#98182]) ([asuswrt docs])
+- Adjust config tests which create devices ([@emontnemery] - [#98184]) ([config docs])
+- Adjust conversation tests which create devices ([@emontnemery] - [#98185]) ([conversation docs])
+- Adjust device_tracker tests which create devices ([@emontnemery] - [#98188]) ([device_tracker docs])
+- Adjust fibaro tests which create devices ([@emontnemery] - [#98189]) ([fibaro docs])
+- Adjust freebox tests which create devices ([@emontnemery] - [#98190]) ([freebox docs])
+- Adjust google_assistant tests which create devices ([@emontnemery] - [#98191]) ([google_assistant docs])
+- Adjust google_generative_ai_conversation tests which create devices ([@emontnemery] - [#98192]) ([google_generative_ai_conversation docs])
+- Adjust homekit tests which create devices ([@emontnemery] - [#98193]) ([homekit docs])
+- Adjust integration tests which create devices ([@emontnemery] - [#98196]) ([integration docs])
+- Adjust kraken tests which create devices ([@emontnemery] - [#98197]) ([kraken docs])
+- Adjust matter tests which create devices ([@emontnemery] - [#98198]) ([matter docs])
+- Adjust mazda tests which create devices ([@emontnemery] - [#98199]) ([mazda docs])
+- Adjust mikrotik tests which create devices ([@emontnemery] - [#98200]) ([mikrotik docs])
+- Adjust motioneye tests which create devices ([@emontnemery] - [#98201]) ([motioneye docs])
+- Adjust mqtt tests which create devices ([@emontnemery] - [#98202]) ([mqtt docs])
+- Adjust openai_conversation tests which create devices ([@emontnemery] - [#98203]) ([openai_conversation docs])
+- Adjust plex tests which create devices ([@emontnemery] - [#98204]) ([plex docs])
+- Adjust ps4 tests which create devices ([@emontnemery] - [#98205]) ([ps4 docs])
+- Adjust threshold tests which create devices ([@emontnemery] - [#98208]) ([threshold docs])
+- Adjust switch_as_x tests which create devices ([@emontnemery] - [#98210]) ([switch_as_x docs])
+- Adjust unifi tests which create devices ([@emontnemery] - [#98211]) ([unifi docs])
+- Adjust utility_meter tests which create devices ([@emontnemery] - [#98212]) ([utility_meter docs])
+- Add unifi power stats for PDU outlets ([@Cisien] - [#98081]) ([unifi docs])
+- Adjust derivative tests which create devices ([@emontnemery] - [#98186]) ([derivative docs])
+- Adjust device_automation tests which create devices ([@emontnemery] - [#98187]) ([device_automation docs])
+- Adjust homekit_controller tests which create devices ([@emontnemery] - [#98194]) ([homekit_controller docs])
+- Adjust ruckus_unleashed tests which create devices ([@emontnemery] - [#98206]) ([ruckus_unleashed docs])
+- Adjust smartthings tests which create devices ([@emontnemery] - [#98207]) ([smartthings docs])
+- Adjust bond tests which create devices ([@emontnemery] - [#98183]) ([bond docs])
+- Adjust hue tests which create devices ([@emontnemery] - [#98195]) ([hue docs])
+- Adjust zwave_js tests which create devices ([@emontnemery] - [#98213]) ([zwave_js docs])
+- Adjust helpers tests which create devices ([@emontnemery] - [#98214])
+- Adjust device_registry tests which create devices ([@emontnemery] - [#98215])
+- Migrate WAQI to aiowaqi library ([@joostlek] - [#98000]) ([waqi docs])
+- Refactor Rest Sensor with ManualTriggerEntity ([@gjohansson-ST] - [#97396]) ([rest docs])
+- Add entity translations to EZVIZ ([@joostlek] - [#98123]) ([ezviz docs])
+- Fix Enphase dry contact binary sensor state updates ([@cgarwood] - [#98225]) ([enphase_envoy docs])
+- Fix issue registry sending unneeded update events ([@frenck] - [#98230])
+- Add missing transmit power to ESPHome Bluetooth scanners ([@bdraco] - [#98175]) ([esphome docs]) ([bluetooth docs]) ([led_ble docs]) ([ld2410_ble docs])
+- Move DeviceInfo from entity to device registry ([@emontnemery] - [#98149])
+- Don't allow creating device if config entry does not exist ([@emontnemery] - [#98157])
+- Migrate DirecTV to has entity name ([@joostlek] - [#98159]) ([directv docs])
+- Migrate Doorbird to has entity name ([@joostlek] - [#98161]) ([doorbird docs])
+- Add device to DWD ([@joostlek] - [#98120]) ([dwd_weather_warnings docs])
+- Fix CI mypy issues ([@gjohansson-ST] - [#98241]) ([opensky docs]) ([dwd_weather_warnings docs])
+- Refactor JSON attribute parsing in rest ([@epenet] - [#97526]) ([rest docs])
+- Migrate DenonAVR to has entity name ([@joostlek] - [#98155]) ([denonavr docs])
+- Enforce a minimum temperature range for nest thermostats ([@allenporter] - [#98238]) ([nest docs])
+- Update mypy to 1.5.0 ([@cdce8p] - [#98179]) ([litterrobot docs]) ([bluetooth docs])
+- Add entity translations to Keymitt ble ([@joostlek] - [#98236]) ([keymitt_ble docs])
+- Do not add entities with invalid device info ([@emontnemery] - [#98150])
+- Migrate iZone to has entity name ([@joostlek] - [#98234]) ([izone docs])
+- Add device classes to Buienradar ([@joostlek] - [#98151]) ([buienradar docs])
+- Add base entity to Garages Amsterdam ([@joostlek] - [#98172]) ([garages_amsterdam docs])
+- Wallbox Integration Change Switch Availability ([@hesselonline] - [#98111]) ([wallbox docs])
+- Add types-xmltodict dependency ([@cdce8p] - [#98268])
+- Add types-psutil dependency ([@cdce8p] - [#98267]) ([systemmonitor docs])
+- Add Enphase switch platform and grid enable switch ([@cgarwood] - [#98261]) ([enphase_envoy docs]) (new-platform)
+- Fix deque import ([@cdce8p] - [#98269]) ([stream docs])
+- Improve met_eireann generic typing ([@cdce8p] - [#98278]) ([met_eireann docs])
+- Improve wake_word generic typing ([@cdce8p] - [#98279]) ([wake_word docs])
+- Add Enphase Encharge aggregate sensors ([@cgarwood] - [#98276]) ([enphase_envoy docs])
+- Correct checks for non-finite numbers in ESPHome ([@emontnemery] - [#98102]) ([esphome docs])
+- Plugwise climate: remove extra_state_attributes property ([@bouwew] - [#98153]) ([plugwise docs]) (breaking-change)
+- Fix fanSpeed issue ([@erwindouna] - [#98293]) ([tado docs])
+- Add entity translations to DWD ([@joostlek] - [#98254]) ([dwd_weather_warnings docs])
+- Modernize ipma weather ([@emontnemery] - [#98062]) ([ipma docs])
+- Add UniFi power stats for PDU overall AC outlet metrics ([@Cisien] - [#98217]) ([unifi docs])
+- Add dataclass for Minecraft Server data ([@elmurato] - [#98297]) ([minecraft_server docs])
+- Update todoist-api-python to 2.1.1 ([@cdce8p] - [#98263]) ([todoist docs])
+- Google Assistant SDK: Allow responses for send_text_command ([@tronikos] - [#95966]) ([google_assistant_sdk docs])
+- Add missing logging for opower library ([@tronikos] - [#98325]) ([opower docs])
+- Plugwise climate: add HVAC_Mode handling to set_temperature() ([@bouwew] - [#98273]) ([plugwise docs])
+- Add domestic_hot_water_setpoint number to Plugwise ([@bouwew] - [#98092]) ([plugwise docs])
+- Add Ezviz siren entity ([@RenierM26] - [#93612]) ([ezviz docs]) (new-platform)
+- Cleanup EZVIZ number entity ([@RenierM26] - [#98333]) ([ezviz docs])
+- Update homekit entity feature constants ([@jbouwh] - [#98337]) ([homekit docs])
+- Update vacuum entity constants for Alexa tests ([@jbouwh] - [#98336]) ([alexa docs])
+- Update entity feature constants google_assistant ([@jbouwh] - [#98335]) ([google_assistant docs])
+- Add types-Pillow dependency ([@cdce8p] - [#98266]) ([generic docs])
+- Update coverage to 7.3.0 ([@cdce8p] - [#98327])
+- Add types-caldav dependency ([@cdce8p] - [#98265]) ([caldav docs])
+- Update attrs to 23.1.0 ([@cdce8p] - [#97095])
+- Add Unifi outlet switches for PDU devices ([@Cisien] - [#98320]) ([unifi docs])
+- Add support for Bosch 2nd Gen Shutter Contact ([@Mr-Ker] - [#98331]) ([bosch_shc docs])
+- Bump zeroconf to 0.75.0 ([@bdraco] - [#98360]) ([zeroconf docs])
+- Downgrade todoist-api-python to 2.0.2 and attrs to 22.2.0 ([@cdce8p] - [#98354]) ([todoist docs])
+- Decrease event loop latency by binding time.monotonic to loop.time directly ([@bdraco] - [#98288])
+- Bump zeroconf to 0.76.0 ([@bdraco] - [#98366]) ([zeroconf docs])
+- Exchange WazeRouteCalculator with pywaze in waze_travel_time ([@eifinger] - [#98169]) ([waze_travel_time docs])
+- Update beautifulsoup to 4.12.2 ([@cdce8p] - [#98372]) ([scrape docs])
+- Update async-timeout to 4.0.3 ([@cdce8p] - [#98370])
+- Update tqdm to 4.66.1 ([@cdce8p] - [#98328])
+- Update caldav to 1.3.6 ([@cdce8p] - [#98371]) ([caldav docs])
+- Create pytest output artifact [ci] ([@cdce8p] - [#98106])
+- Raise ConfigEntryNotReady when unable to connect during setup of AVM Fritz!Smarthome ([@mib1185] - [#97985]) ([fritzbox docs])
+- Store preferred border agent ID in thread dataset store ([@emontnemery] - [#98375]) ([thread docs])
+- Bump python-otbr-api to 2.4.0 ([@emontnemery] - [#98376]) ([thread docs]) ([otbr docs])
+- Add types-beautifulsoup4 dependency ([@cdce8p] - [#98377]) ([scrape docs])
+- Add entity translations to Aseko ([@joostlek] - [#98117]) ([aseko_pool_live docs])
+- Add entity translations to justnimbus ([@joostlek] - [#98235]) ([justnimbus docs])
+- Add entity translations to Aurora ([@joostlek] - [#98079]) ([aurora docs])
+- Improve rainbird error handling ([@allenporter] - [#98239])
+- Set preferred router when importing OTBR dataset ([@emontnemery] - [#98379]) ([otbr docs])
+- Remove Verisure default lock code ([@gjohansson-ST] - [#94676]) ([verisure docs])
+- Update todoist-api-python to 2.1.2 ([@cdce8p] - [#98383]) ([todoist docs])
+- Use @require_admin decorator ([@edenhaus] - [#98061]) ([api docs]) ([media_source docs]) ([zwave_js docs])
+- Store preferred border agent ID for each thread dataset ([@emontnemery] - [#98384]) ([thread docs])
+- Rename some incorrectly named assist_pipeline tests ([@emontnemery] - [#98389]) ([assist_pipeline docs])
+- Update attrs to 23.1.0 ([@cdce8p] - [#98385])
+- Improve picotts ([@MartinHjelmare] - [#98391]) ([picotts docs])
+- Include border agent ID in thread router discovery ([@emontnemery] - [#98378]) ([thread docs])
+- Add entity translations for August ([@joostlek] - [#98077]) ([august docs])
+- Enable Alexa Unlock directive ([@marcheologo] - [#97127]) ([alexa docs])
+- Ensure headers middleware handles errors too ([@frenck] - [#98397]) ([http docs])
+- Avoid leaking backtrace on connection lost in arcam ([@elupus] - [#98277]) ([arcam_fmj docs])
+- Update aioairzone to v0.6.6 ([@Noltari] - [#98399]) ([airzone docs])
+- Add entity translations to Goodwe ([@joostlek] - [#98224]) ([goodwe docs])
+- ipma: remove abmantis from codeowners ([@abmantis] - [#98304])
+- Bump python-otbr-api to 2.5.0 ([@emontnemery] - [#98403]) ([thread docs]) ([otbr docs])
+- Bump zeroconf to 0.78.0 ([@bdraco] - [#98405]) ([zeroconf docs])
+- Add sensor when meter last sent its data to Discovergy ([@jpbede] - [#97223]) ([discovergy docs])
+- Add entity translations to hunterdouglas powerview ([@joostlek] - [#98232]) ([hunterdouglas_powerview docs])
+- Add select platform to Enphase integration ([@cgarwood] - [#98368]) ([enphase_envoy docs]) (new-platform)
+- Ignore smartthings storage on fresh install ([@balloob] - [#98418]) ([smartthings docs])
+- Simplify error handling in otbr async_setup_entry ([@emontnemery] - [#98395]) ([otbr docs])
+- Include border agent id in response to WS otbr/info ([@emontnemery] - [#98394]) ([otbr docs])
+- Adjust thread router discovery typing ([@emontnemery] - [#98439]) ([thread docs])
+- Include extended address in response to WS otbr/info ([@emontnemery] - [#98440]) ([otbr docs])
+- Replace async_timeout with asyncio.timeout A-B ([@bdraco] - [#98415])
+- Add setup function to the component loader ([@emontnemery] - [#98148])
+- Refactor Rest Switch with ManualTriggerEntity ([@gjohansson-ST] - [#97403]) ([rest docs])
+- Make image upload mimetype to match frontend ([@frenck] - [#98411]) ([image_upload docs])
+- Disable polling in buienradar weather entity ([@emontnemery] - [#98443]) ([buienradar docs])
+- Use asyncio.timeout [i-n] ([@cdce8p] - [#98450])
+- Use asyncio.timeout [s-z] ([@cdce8p] - [#98452])
+- Update Enphase dry contact relay DeviceInfo and name ([@cgarwood] - [#98429]) ([enphase_envoy docs])
+- Use asyncio.timeout [b-e] ([@cdce8p] - [#98448])
+- Use asyncio.timeout [core] ([@cdce8p] - [#98447])
+- Use asyncio.timeout [f-h] ([@cdce8p] - [#98449])
+- Fix AiohttpClientMockResponse.release ([@emontnemery] - [#98458])
+- Restore sensorpush state when device becomes available ([@bdraco] - [#98420]) ([sensorpush docs])
+- Reolink 100% test coverage ([@starkillerOG] - [#94763]) ([reolink docs])
+- Set _attr_condition in WeatherEntity ([@emontnemery] - [#98459]) ([weather docs]) ([smhi docs]) ([buienradar docs])
+- Use asyncio.timeout [o-s] ([@cdce8p] - [#98451])
+- Replace "percents" -> "percentage" in flux_led option flow ([@reedy] - [#98059]) ([flux_led docs])
+- Update buienweather data before adding entities ([@emontnemery] - [#98455]) ([buienradar docs])
+- Remove unused code in enphase_envoy ([@bdraco] - [#98474]) ([enphase_envoy docs])
+- Add number platform & battery setpoint entities to Enphase integration ([@cgarwood] - [#98427]) ([enphase_envoy docs]) (new-platform)
+- Small cleanups to enphase_envoy select platform ([@bdraco] - [#98476]) ([enphase_envoy docs])
+- Remove some bound attributes from enphase_envoy binary_sensor ([@bdraco] - [#98477]) ([enphase_envoy docs])
+- Remove some bound attributes from enphase_envoy sensor ([@bdraco] - [#98479]) ([enphase_envoy docs])
+- Modernize aemet weather ([@emontnemery] - [#97969]) ([aemet docs])
+- Create a single entity for new met_eireann config entries ([@emontnemery] - [#98100]) ([met_eireann docs])
+- Bump protobuf to 4.24.0 ([@bdraco] - [#98468])
+- Bump aiolyric to 1.1.0 ([@dalinicus] - [#98113]) ([lyric docs])
+- Improve test recovery MQTT certificate files ([@jbouwh] - [#98223]) ([mqtt docs])
+- Add device_class to Renault charging remaining time ([@emmaguy] - [#98393]) ([renault docs])
+- Update Light flash description ([@apbarratt] - [#98252]) ([light docs])
+- Add some typing to doorbird ([@bdraco] - [#98483]) ([doorbird docs])
+- Skip writing pyc files [ci] ([@cdce8p] - [#98423])
+- Map meteo_france weather condition codes once ([@emontnemery] - [#98513]) ([meteo_france docs])
+- Push updated ecobee weather forecast to listeners ([@emontnemery] - [#98511]) ([ecobee docs])
+- Bump zeroconf to 0.80.0 ([@bdraco] - [#98416]) ([zeroconf docs])
+- Fix checks for duplicated config entries in IPMA ([@dgomes] - [#98319]) ([ipma docs])
+- Don't allow hass.config.config_dir to be None ([@emontnemery] - [#98442]) ([zha docs]) ([verisure docs]) ([cloud docs]) ([system_log docs]) ([homematicip_cloud docs]) ([file docs])
+- Add PoE switch tests ([@mheath] - [#95087]) ([tplink_omada docs])
+- Map ipma weather condition codes once ([@emontnemery] - [#98512]) ([ipma docs])
+- Make EnOceanSensor a RestoreSensor ([@emontnemery] - [#98527]) ([enocean docs])
+- Make ESPHome deep sleep tests more robust ([@bdraco] - [#98535]) ([esphome docs])
+- Add base entity for Dexcom ([@joostlek] - [#98158]) ([dexcom docs])
+- Log events with no listeners ([@emontnemery] - [#98540])
+- Make eufylife_ble sensors inherit RestoreSensor ([@emontnemery] - [#98528]) ([eufylife_ble docs])
+- Don't create certain start.ca sensors for unlimited plans ([@emontnemery] - [#98525]) ([startca docs]) (breaking-change)
+- Map accuweather weather condition codes once ([@emontnemery] - [#98509]) ([accuweather docs])
+- Improve typing of nws ([@emontnemery] - [#98485]) ([nws docs])
+- Modernize tomorrowio weather ([@emontnemery] - [#98466]) ([tomorrowio docs])
+- Map SMHI weather condition codes once ([@emontnemery] - [#98517]) ([smhi docs])
+- Map openweathermap weather condition codes once ([@emontnemery] - [#98516]) ([openweathermap docs])
+- Map metoffice weather condition codes once ([@emontnemery] - [#98515]) ([metoffice docs])
+- Modernize environment_canada weather ([@emontnemery] - [#98502]) ([environment_canada docs])
+- Map meteoclimatic weather condition codes once ([@emontnemery] - [#98514]) ([meteoclimatic docs])
+- Map demo and kitchen_sink weather condition codes once ([@emontnemery] - [#98510]) ([demo docs]) ([kitchen_sink docs])
+- Modernize buienradar weather ([@emontnemery] - [#98473]) ([buienradar docs])
+- Update mypy to 1.5.1 ([@cdce8p] - [#98554])
+- Make IKEA fan sensors diagnostic in ZHA ([@puddly] - [#97747]) ([zha docs])
+- Expose dew point in Met.no ([@slovdahl] - [#98543]) ([norway_air docs]) ([met docs])
+- Fix Verisure config entry migration ([@gjohansson-ST] - [#98546]) ([verisure docs])
+- Bump odp-amsterdam to v5.3.0 ([@klaasnicolaas] - [#98555]) ([garages_amsterdam docs])
+- Add state_class to tomorrowio UV Index ([@dirrgang] - [#98541]) ([tomorrowio docs])
+- Improve availability of Tractive entities ([@bieniu] - [#97091]) ([tractive docs])
+- Revert "Fix fanSpeed issue in Tado" ([@erwindouna] - [#98506]) ([tado docs])
+- Migrate IPMA to has entity name ([@joostlek] - [#98572]) ([ipma docs])
+- Additional doorbird cleanups to prepare for event entities ([@bdraco] - [#98542]) ([doorbird docs])
+- Log Tractive events on debug level ([@bieniu] - [#98539]) ([tractive docs])
+- Fix aiohttp test RuntimeWarning ([@cdce8p] - [#98568]) ([buienradar docs])
+- Bump aioesphomeapi to 16.0.1 ([@bdraco] - [#98536]) ([esphome docs])
+- Add tests for device tracker in Prometheus ([@rcloran] - [#98054]) ([prometheus docs])
+- Bump renault-api to 0.2.0 ([@epenet] - [#98587]) ([renault docs])
+- Migrate Cert Expiry to has entity name ([@joostlek] - [#98160]) ([cert_expiry docs])
+- Add tests and typing to Tado config flow ([@erwindouna] - [#98281]) ([tado docs])
+- Create a single entity for new met.no config entries ([@emontnemery] - [#98098]) ([met docs])
+- Add pipeline VAD events ([@synesthesiam] - [#98603]) ([assist_pipeline docs])
+- Add humidity and dew point to tomorrow.io integration ([@lymanepp] - [#98496]) ([tomorrowio docs])
+- Add option to disable MQTT Alarm Control Panel supported features ([@paravoid] - [#98363]) ([mqtt docs])
+- New integration for Comelit SimpleHome ([@chemelli74] - [#96552]) ([comelit docs]) (new-integration)
+- Fix Flume leak detected sensor ([@tronikos] - [#98560]) ([flume docs]) (breaking-change)
+- Bump dbus-fast to 1.91.4 ([@bdraco] - [#98600]) ([bluetooth docs])
+- Remove unneeded startswith in content check of image upload ([@frenck] - [#98599]) ([image_upload docs])
+- Modbus: set state_class etc in slaves. ([@janiversen] - [#98332]) ([modbus docs])
+- Fix copy-paste error in comments of number tests ([@edenhaus] - [#98615]) ([number docs])
+- Add device to Garage Amsterdam entity ([@joostlek] - [#98573]) ([garages_amsterdam docs])
+- Log entity_id payload and template on MQTT value template error ([@jbouwh] - [#98353]) ([mqtt docs])
+- Allow control of pump mode for nibe ([@elupus] - [#98499]) ([nibe_heatpump docs])
+- Name unnamed update entities by their device class ([@edenhaus] - [#98579]) ([rainmachine docs]) ([ezviz docs]) ([litterrobot docs]) ([update docs])
+- Add Yale Smart Living diagnostics test ([@gjohansson-ST] - [#98590]) ([yale_smart_alarm docs])
+- Remove default code in Yale Smart Living ([@gjohansson-ST] - [#94675]) ([yale_smart_alarm docs])
+- Use zoneinfo instead of pytz, mark pytz as banned in ruff ([@scop] - [#98613]) ([unifiprotect docs])
+- Bump hatasmota to 0.7.0 ([@emontnemery] - [#98636]) ([tasmota docs])
+- Make the check_config script open issue_registry read only ([@emontnemery] - [#98545])
+- Cleanup ManualTriggerSensorEntity ([@gjohansson-ST] - [#98629]) ([rest docs]) ([sql docs]) ([command_line docs]) ([scrape docs])
+- Clean up integration sensor ([@dgomes] - [#98552]) ([integration docs])
+- Update country `province` validation ([@arkid15r] - [#84463]) ([workday docs])
+- UniFi refactor using site data ([@Kane610] - [#98549]) ([unifi docs])
+- Fix rest debug logging ([@jbouwh] - [#98649]) ([rest docs])
+- Fix aiohttp DeprecationWarning ([@cdce8p] - [#98626]) ([cloud docs])
+- Change naming of Shelly entities to correspond with HA guidelines ([@bieniu] - [#97533]) ([shelly docs])
+- Add Starlink device tracker ([@boswelja] - [#91445]) ([starlink docs]) (new-platform)
+- Add Tractive `sleep` and `activity` sensors ([@bieniu] - [#98575]) ([tractive docs])
+- Reolink add pan position sensor ([@starkillerOG] - [#98592]) ([reolink docs])
+- Bump dbus-fast to 1.92.0 ([@bdraco] - [#98656]) ([bluetooth docs])
+- Upgrade ruff to 0.0.285 ([@scop] - [#98647])
+- Add Fan Speed number entity to Nexia ([@Ongion] - [#98642]) ([nexia docs])
+- Enphase remove operating ([@cgarwood] - [#98682]) ([enphase_envoy docs])
+- Support Eco Mode Preset in Climates ([@hahn-th] - [#98359]) ([homematicip_cloud docs])
+- Duotecno code-cleanup ([@Cereal2nd] - [#98675]) ([duotecno docs])
+- Add vicare sensor gas_summary_consumption_heating_lastsevendays ([@andresb5555] - [#95280]) ([vicare docs])
+- Deduplicate Tasmota sensor tests ([@emontnemery] - [#98628]) ([tasmota docs])
+- Remove dead code from __main__.py ([@emontnemery] - [#98694])
+- Verisure Improve Unpack ([@niro1987] - [#98696]) ([verisure docs])
+- Add additional tasmota tests ([@emontnemery] - [#98695]) ([tasmota docs])
+- Refactor doorbird to avoid using events internally ([@bdraco] - [#98585]) ([doorbird docs]) (breaking-change)
+- Filter some pytest warnings ([@cdce8p] - [#98689])
+- Remove no longer used nest binary sensor ([@scop] - [#98714]) ([nest docs])
+- Move Workday failures to __init__ ([@gjohansson-ST] - [#98651]) ([workday docs])
+- Ignore ble name for gardena ([@elupus] - [#98126]) ([gardena_bluetooth docs])
+- Use snapshot assertion for Accuweather diagnostics ([@joostlek] - [#98725]) ([accuweather docs])
+- Bump aioshelly to 6.0.0 ([@thecode] - [#98719]) ([shelly docs])
+- Reduce overhead to update august activities ([@bdraco] - [#98730]) ([august docs])
+- Bump yalexs to 1.7.0 ([@bdraco] - [#98720]) ([august docs])
+- Update aioqsw to v0.3.3 ([@Noltari] - [#98737]) ([qnap_qsw docs])
+- Use snapshot assertion for Jellyfin diagnostics ([@ctalkington] - [#98732]) ([jellyfin docs])
+- Use snapshot assertion for Airvisual diagnostics ([@joostlek] - [#98728]) ([airvisual docs])
+- Use snapshot assertion for Forecast solar diagnostics ([@joostlek] - [#98723]) ([forecast_solar docs])
+- Use snapshot assertion for Roku diagnostics ([@ctalkington] - [#98731]) ([roku docs])
+- Use snapshot assertion for KNX diagnostics ([@joostlek] - [#98724]) ([knx docs])
+- Bump pyspcwebgw to 0.7.0 ([@jschlyter] - [#98593]) ([spc docs])
+- Clean off unnecessary logger in Workday ([@gjohansson-ST] - [#98741]) ([workday docs])
+- Introduce base class for Neato ([@joostlek] - [#98071]) ([neato docs])
+- Add lawnmower entity ([@mikey0000] - [#93623]) ([lawn_mower docs]) (new-integration)
+- Fix LiteJet import config issue ([@gjohansson-ST] - [#97679]) ([litejet docs])
+- Use shorthand attributes in GDACS ([@joostlek] - [#98173]) ([gdacs docs])
+- Update aioairzone to v0.6.7 ([@Noltari] - [#98744]) ([airzone docs])
+- Use snapshot assertion for Airnow diagnostics ([@joostlek] - [#98727]) ([airnow docs])
+- Bump yalexs to 1.8.0 ([@bdraco] - [#98751]) ([august docs])
+- Add `payload` to Scrape config flow ([@gjohansson-ST] - [#98412]) ([scrape docs])
+- Modernize template weather ([@gjohansson-ST] - [#98064]) ([template docs])
+- Map heatercooler rotation speed as 3 level fan speed in homekit controller ([@freedreamer82] - [#98291]) ([homekit_controller docs])
+- Add ZigStar UZG-01 ZHA zeroconf autodiscovery ([@mercenaruss] - [#98657]) ([zha docs])
+- ESPHome Wake Word support ([@jesserockz] - [#98544]) ([esphome docs])
+- Use storage helper in feedreader ([@MartinHjelmare] - [#98754]) ([feedreader docs])
+- Bump dbus-fast to 1.93.0 ([@bdraco] - [#98758]) ([bluetooth docs])
+- Add entity translations to Kraken ([@joostlek] - [#98765]) ([kraken docs])
+- Fix default values in Scrape ([@gjohansson-ST] - [#98755]) ([scrape docs])
+- Python 3.10 support cleanups ([@scop] - [#98640])
+- Update aws boto dependencies ([@cdce8p] - [#98619]) ([route53 docs]) ([amazon_polly docs]) ([aws docs])
+- Add snapshot assertion to Ambient Station ([@joostlek] - [#98764]) ([ambient_station docs])
+- Add device info to LG Soundbar ([@joostlek] - [#98771]) ([lg_soundbar docs])
+- Add update platform to devolo Home Network ([@Shutgun] - [#86003]) ([devolo_home_network docs]) (new-platform)
+- Set battery device class in Logi Circle ([@joostlek] - [#98774]) ([logi_circle docs])
+- Add entity translations to Hyperion ([@joostlek] - [#98635]) ([hyperion docs])
+- Add morning and evening damping to Forecast solar ([@joostlek] - [#98721]) ([forecast_solar docs])
+- Update to 1.3.0 of gardena bluetooth ([@elupus] - [#98776]) ([gardena_bluetooth docs])
+- Add/Modify tomorrow.io sensor entity icons ([@dirrgang] - [#98648]) ([tomorrowio docs])
+- Unifi add port forward control to switch platform ([@Kane610] - [#98309]) ([unifi docs])
+- Enable strict typing for doorbird ([@bdraco] - [#98778]) ([doorbird docs])
+- Remove unused code in doorbird ([@bdraco] - [#98779]) ([doorbird docs])
+- Only create an issue if push updates fail 5 times in a row for Shelly gen1 devices ([@bieniu] - [#98747]) ([shelly docs])
+- Add entity translations to Honeywell Lyric ([@joostlek] - [#98775]) ([lyric docs])
+- Migrate LG Soundbar to has entity name ([@joostlek] - [#98773]) ([lg_soundbar docs])
+- Migrate LastFM to has entity name ([@joostlek] - [#98766]) ([lastfm docs])
+- Use VehicleType enum for Garages Amsterdam integration ([@klaasnicolaas] - [#98780]) ([garages_amsterdam docs])
+- Set thread dataset's preferred router on add if not set ([@emontnemery] - [#98639]) ([thread docs])
+- Add CoordinatorWeatherEntity ([@emontnemery] - [#98777]) ([weather docs]) ([environment_canada docs]) ([met docs]) ([aemet docs]) ([met_eireann docs]) ([tomorrowio docs])
+- Update pyipp to 0.14.4 ([@ctalkington] - [#98791]) ([ipp docs])
+- Add device to Dexcom ([@joostlek] - [#98574]) ([dexcom docs])
+- Require device id for Roku entities ([@ctalkington] - [#98734]) ([roku docs])
+- Add entity translations to Bosch SHC ([@joostlek] - [#98750]) ([bosch_shc docs])
+- Add device info to Life360 ([@joostlek] - [#98772]) ([life360 docs])
+- Add snapshot assertion to Airzone cloud ([@joostlek] - [#98761]) ([airzone_cloud docs])
+- Add snapshot assertion to Airvisual Pro ([@joostlek] - [#98759]) ([airvisual_pro docs])
+- Add Reolink zoom in/out buttons ([@starkillerOG] - [#97638]) ([reolink docs])
+- Add device info to FOSCAM ([@joostlek] - [#98167]) ([foscam docs])
+- Modernize open_meteo weather ([@emontnemery] - [#98504]) ([open_meteo docs])
+- Modernize nws weather ([@emontnemery] - [#98748]) ([weather docs]) ([nws docs])
+- Allows the supervisor to send a session's user to addon with header X-Remote-User ([@baflo] - [#88472]) ([hassio docs])
+- Migrate openweathermap weather to CoordinatorEntity ([@emontnemery] - [#98799]) ([openweathermap docs])
+- Add preview to sensor group config and option flows ([@emontnemery] - [#83638]) ([min_max docs])
+- Add entity translations to Modem callerID ([@joostlek] - [#98798]) ([modem_callerid docs])
+- Add support for Shelly Gas Valve addon ([@bieniu] - [#98705]) ([shelly docs])
+- Use snapshot assertion for Airly diagnostics ([@joostlek] - [#98726]) ([airly docs])
+- Add entity translations to Logi circle ([@joostlek] - [#98797]) ([logi_circle docs])
+- Add text sensor to BTHome ([@Ernst79] - [#98355]) ([bthome docs])
+- Migrate Oncue to has entity name ([@joostlek] - [#98812]) ([oncue docs])
+- Add entity translations to Nexia ([@joostlek] - [#98803]) ([nexia docs])
+- Abort Shelly setup if MAC address mismatch ([@thecode] - [#98807]) ([shelly docs])
+- Add entity translations to Roku ([@joostlek] - [#96083]) ([roku docs])
+- Adjust hassfest to require translations for core services ([@edenhaus] - [#98814])
+- Retry lifx setup later if device has an unexpected serial ([@bdraco] - [#98783]) ([lifx docs])
+- Detect wake word services in hassio discovery ([@synesthesiam] - [#98827]) ([wyoming docs])
+- Bump zeroconf to 0.81.0 ([@bdraco] - [#98826]) ([zeroconf docs])
+- Add Reolink AI detection delay time ([@starkillerOG] - [#98398]) ([reolink docs])
+- Add options flow to OpenSky ([@joostlek] - [#98177]) ([opensky docs])
+- Bump aiosomecomfort to 0.0.16 in Honeywell ([@mkmer] - [#98824]) ([honeywell docs])
+- Add input option to skip coverage [ci] ([@cdce8p] - [#98821])
+- Add entity translations to OpenGarage ([@joostlek] - [#98834]) ([opengarage docs])
+- Downgrade Debouncer call ignored log message ([@thecode] - [#98840])
+- Add entity translations to Powerwall ([@joostlek] - [#98843]) ([powerwall docs])
+- Bump zeroconf to 0.82.1 ([@bdraco] - [#98839]) ([zeroconf docs])
+- Set assist pipeline binary sensor to true only when stt-start is received ([@jesserockz] - [#98844]) ([esphome docs])
+- Add entity translations to Dexcom ([@joostlek] - [#98795]) ([dexcom docs])
+- Add device info to peco ([@joostlek] - [#98836]) ([peco docs])
+- Add entity translations to OVO Energy ([@joostlek] - [#98835]) ([ovo_energy docs])
+- Add filter for affected areas in NINA warnings ([@DeerMaximum] - [#97053]) ([nina docs])
+- Deprecate aux heat for mqtt climate ([@jbouwh] - [#98666]) ([mqtt docs])
+- Add Airzone Cloud System binary sensors ([@Noltari] - [#95121]) ([airzone_cloud docs])
+- Add hot water sensor support to Airzone ([@Noltari] - [#98500]) ([airzone docs])
+- Abort ESPHome connection when both name and mac address do not match ([@bdraco] - [#98787]) ([esphome docs]) (breaking-change)
+- Add entity name translations for Reolink ([@starkillerOG] - [#98589]) ([reolink docs])
+- Migrate Prosegur to has entity name ([@joostlek] - [#98845]) ([prosegur docs])
+- Add entity translations to PECO ([@joostlek] - [#98847]) ([peco docs])
+- Remove unnnecessary pylint configs from core ([@scop] - [#98704])
+- Update AEMET-OpenData to v0.3.0 ([@Noltari] - [#98810]) ([aemet docs])
+- Remove data rate converting code from NZBGet ([@joostlek] - [#98806]) ([nzbget docs])
+- Change Enphase dry contact relay binary_sensor to switch ([@cgarwood] - [#98467]) ([enphase_envoy docs])
+- Remove YAML solution from Open Exchange Rates ([@joostlek] - [#98815]) ([openexchangerates docs])
+- Fix Airzone Cloud diagnostics ([@Noltari] - [#98857]) ([airzone_cloud docs])
+- Fix imap test RuntimeWarning ([@cdce8p] - [#98865]) ([imap docs])
+- Enable code coverage for metoffice sensor + weather ([@emontnemery] - [#98863])
+- Refactor openhome media player getters and attrs ([@bazwilliams] - [#98690]) ([openhome docs])
+- Remove config name from IPMA config flow ([@joostlek] - [#98576]) ([ipma docs])
+- Clean up Freebox config flow ([@joostlek] - [#97347]) ([freebox docs])
+- Use constructor in Freebox config flow ([@joostlek] - [#98870]) ([freebox docs])
+- Fix forked_daapd test RuntimeWarning ([@cdce8p] - [#98864]) ([forked_daapd docs])
+- Small typing fix in binary_sensor group ([@emontnemery] - [#98874]) ([group docs])
+- Don't allow numerical sensor state to be NaN or inf ([@emontnemery] - [#98110]) ([sensor docs])
+- Add preview support to binary sensor group ([@emontnemery] - [#98872]) ([group docs])
+- Add state classes to adguard sensors ([@dirrgang] - [#98577]) ([adguard docs])
+- Revert "Add state classes to adguard sensors" ([@frenck] - [#98880]) ([adguard docs])
+- Use entity descriptions for IPP ([@ctalkington] - [#93888]) ([ipp docs])
+- Retry enphase_envoy setup later if the wrong device is found ([@bdraco] - [#98882]) ([enphase_envoy docs])
+- Retry lookin setup later if the wrong device is found ([@bdraco] - [#98881]) ([lookin docs])
+- Wake word entity state/category fix ([@synesthesiam] - [#98886]) ([wake_word docs])
+- Deduplicate group preview tests ([@emontnemery] - [#98883]) ([group docs])
+- Deduplicate entities derived from GroupEntity ([@emontnemery] - [#98893]) ([group docs])
+- Enable strict typing for ipp ([@ctalkington] - [#98792]) ([ipp docs])
+- Migrate BSB-Lan diagnostics test to snapshot assertion ([@jpbede] - [#98899]) ([bsblan docs])
+- baf: Raise ConfigEntryNotReady when the device has a mismatched UUID ([@jfroy] - [#98898]) ([baf docs])
+- Use snapshot assertion for Discovergy diagnostics test ([@jpbede] - [#98871]) ([discovergy docs])
+- Retry rainmachine setup later if the wrong device is found ([@bdraco] - [#98888]) ([rainmachine docs])
+- Use snapshot assertion for Axis diagnostics test ([@joostlek] - [#98902]) ([axis docs])
+- Use snapshot assertion for Deconz diagnostics test ([@joostlek] - [#98908]) ([deconz docs])
+- Use snapshot assertion for Environment Canada diagnostics test ([@joostlek] - [#98912]) ([environment_canada docs])
+- Bump energyzero to v0.5.0 ([@klaasnicolaas] - [#98914]) ([energyzero docs])
+- Add moisture sensors entities for gardena ([@elupus] - [#98282]) ([gardena_bluetooth docs])
+- Energyzero - Add sensor entity to pick best hours ([@klaasnicolaas] - [#98916]) ([energyzero docs])
+- Use snapshot assertion for August diagnostics test ([@joostlek] - [#98901]) ([august docs])
+- Remove unnnecessary pylint configs from components/[a-d]* ([@scop] - [#98911])
+- Remove unnnecessary pylint configs from components [m-r]* ([@scop] - [#98924])
+- Use snapshot assertion for Cpuspeed diagnostics test ([@joostlek] - [#98907]) ([cpuspeed docs])
+- Use snapshot assertion for Enphase Envoy diagnostics test ([@joostlek] - [#98910]) ([enphase_envoy docs])
+- Use snapshot assertion for ESPHome diagnostics test ([@joostlek] - [#98913]) ([esphome docs])
+- Add additional debug logging for imap ([@jbouwh] - [#98877]) ([imap docs])
+- Use snapshot assertion for Co2signal diagnostics test ([@joostlek] - [#98905]) ([co2signal docs])
+- Use snapshot assertion for Coinbase diagnostics test ([@joostlek] - [#98906]) ([coinbase docs])
+- Remove unnnecessary pylint configs from components [s-z]* ([@scop] - [#98925])
+- Bump bluetooth-data-tools to 1.9.0 ([@bdraco] - [#98927]) ([esphome docs]) ([bluetooth docs]) ([led_ble docs]) ([ld2410_ble docs])
+- Use snapshot assertion for Ridwell diagnostics test ([@joostlek] - [#98919]) ([ridwell docs])
+- Bump hass-nabucasa from 0.69.0 to 0.70.0 ([@ludeeus] - [#98935]) ([cloud docs])
+- Use snapshot assertion for EasyEnergy diagnostics test ([@joostlek] - [#98909]) ([easyenergy docs])
+- Add entity translations to Sabnzbd ([@joostlek] - [#98923]) ([sabnzbd docs])
+- Add origin info support for MQTT discovered items ([@jbouwh] - [#98782]) ([mqtt docs])
+- Add repair issue about the deprecation of home plus control ([@edenhaus] - [#98828]) ([home_plus_control docs])
+- Add Trafikverket Camera integration ([@gjohansson-ST] - [#79873]) ([trafikverket_camera docs]) (new-integration)
+- Add entity translations to Ridwell ([@joostlek] - [#98918]) ([ridwell docs])
+- Use snapshot assertion for Brother diagnostics test ([@joostlek] - [#98904]) ([brother docs])
+- Move platform specifics out of Solaredge const ([@joostlek] - [#98941]) ([solaredge docs])
+- Teach CoordinatorWeatherEntity about multiple coordinators ([@emontnemery] - [#98830]) ([weather docs]) ([environment_canada docs]) ([met docs]) ([aemet docs]) ([nws docs]) ([met_eireann docs]) ([tomorrowio docs]) ([open_meteo docs])
+- Add entity translations to Rachio ([@joostlek] - [#98917]) ([rachio docs])
+- Add coordinator test for Yale Smart Living ([@gjohansson-ST] - [#98638]) ([yale_smart_alarm docs])
+- SNMP sensor refactor to ManualTriggerSensorEntity ([@gjohansson-ST] - [#98630]) ([snmp docs])
+- Use a single WS command for group preview ([@emontnemery] - [#98903]) ([group docs])
+- Retry yeelight setup later if the wrong device is found ([@bdraco] - [#98884]) ([yeelight docs])
+- Remove `TemplateSensor` from the `template_entity` helper ([@gjohansson-ST] - [#98945]) ([template docs])
+- Remove obsolete yaml check in SQL ([@joostlek] - [#98950]) ([sql docs])
+- Add support for event groups ([@frenck] - [#98463]) ([group docs])
+- Modernize meteo_france weather ([@emontnemery] - [#98022]) ([meteo_france docs]) (breaking-change)
+- Improve performance of abort_entries_match ([@bdraco] - [#98932])
+- Move TemplateEntity to template ([@gjohansson-ST] - [#98957]) ([template docs])
+- Avoid use of `datetime.utc*` methods deprecated in Python 3.12 ([@scop] - [#93684])
+- Remove default model from upcloud ([@joostlek] - [#98972]) ([upcloud docs])
+- Use snapshot assertion in Tile diagnostic test ([@joostlek] - [#98965]) ([tile docs])
+- Bump dbus-fast to 1.94.0 ([@bdraco] - [#98973]) ([bluetooth docs])
+- Make Sabnzbd entity translation clearer ([@joostlek] - [#98938]) ([sabnzbd docs])
+- Fix stream test aiohttp DeprecationWarning ([@cdce8p] - [#98962]) ([stream docs])
+- Use device class in TPLink Omada Update entity ([@joostlek] - [#98971]) ([tplink_omada docs])
+- Remove `group_type` from group preview events ([@emontnemery] - [#98952]) ([group docs])
+- Use shorthand attributes for SRP Energy ([@joostlek] - [#98953]) ([srp_energy docs])
+- Add entity translations to Risco ([@joostlek] - [#98921]) ([risco docs])
+- Migrate Squeezebox to has entity name ([@joostlek] - [#98948]) ([squeezebox docs])
+- Add entity translations to Tankerkoenig ([@joostlek] - [#98961]) ([tankerkoenig docs])
+- Add device to Tile ([@joostlek] - [#98964]) ([tile docs])
+- Do not force update mqtt device_tracker ([@jbouwh] - [#98838]) ([mqtt docs]) (breaking-change)
+- Migrate Snooz to has entity name ([@joostlek] - [#98940]) ([snooz docs])
+- Bump aiosomecomfort to 0.0.17 ([@mkmer] - [#98978]) ([honeywell docs])
+- Electric Kiwi: Fix time for installations in UTC ([@mikey0000] - [#97881]) ([electric_kiwi docs])
+- Migrate Life360 to has entity name ([@joostlek] - [#98796]) ([life360 docs])
+- Use device class translations for 1-wire ([@joostlek] - [#98813]) ([onewire docs])
+- Use snapshot assertion for onvif diagnostics test ([@jpbede] - [#98982]) ([onvif docs])
+- Use snapshot assertion for iqvia diagnostics test ([@jpbede] - [#98983]) ([iqvia docs])
+- Add new integration Yardian ([@h3l1o5] - [#97326]) ([yardian docs]) (new-integration)
+- Replace remaining utcnow calls + add ruff check ([@cdce8p] - [#97964])
+- Bump `simplisafe-python` to 2023.08.0 ([@bachya] - [#98991]) ([simplisafe docs])
+- Add preview support to all groups ([@emontnemery] - [#98951]) ([group docs])
+- Bump ical to 5.0.1 ([@allenporter] - [#98998]) ([local_calendar docs])
+- Remove unnnecessary pylint configs from components [e-l]* ([@scop] - [#99004])
+- Modernize openweathermap weather ([@emontnemery] - [#99002]) ([openweathermap docs])
+- Upgrade Verisure to 2.6.6 ([@niro1987] - [#98258]) ([verisure docs])
+- Improve performance of bluetooth coordinators ([@bdraco] - [#98997]) ([bluetooth docs])
+- Extract SRP Energy coordinator to separate file ([@joostlek] - [#98956]) ([srp_energy docs])
+- Add unique id to srp energy entity ([@joostlek] - [#99008]) ([srp_energy docs])
+- Improve SRP Energy coordinator ([@joostlek] - [#99010]) ([srp_energy docs])
+- Reolink fix unknown value in select enums ([@starkillerOG] - [#99012]) ([reolink docs])
+- Fix asyncio DeprecationWarning [3.12] ([@cdce8p] - [#98989]) ([ffmpeg docs]) ([minecraft_server docs])
+- Update AEMET-OpenData to v0.4.0 ([@Noltari] - [#99015]) ([aemet docs])
+- Avoid fetching state and charging state multiple time for hkc icon ([@bdraco] - [#98995]) ([homekit_controller docs])
+- Use snapshot assertion for rdw diagnostics test ([@jpbede] - [#99027]) ([rdw docs])
+- Use freezegun in opensky tests ([@emontnemery] - [#99039]) ([opensky docs])
+- Use freezegun in solaredge tests ([@emontnemery] - [#99043]) ([solaredge docs])
+- Use freezegun in qnap_qsw tests ([@emontnemery] - [#99041]) ([qnap_qsw docs])
+- Use freezegun in wled tests ([@emontnemery] - [#99048]) ([wled docs])
+- Use freezegun in devolo_home_network tests ([@emontnemery] - [#99029]) ([devolo_home_network docs])
+- Use freezegun in motioneye tests ([@emontnemery] - [#99038]) ([motioneye docs])
+- Use freezegun in lacrosse_view tests ([@emontnemery] - [#99036]) ([lacrosse_view docs])
+- Use freezegun in ws66i tests ([@emontnemery] - [#99049]) ([ws66i docs])
+- Use freezegun in tomorrowio tests ([@emontnemery] - [#99044]) ([tomorrowio docs])
+- Use freezegun in version tests ([@emontnemery] - [#99047]) ([version docs])
+- Use freezegun in trafikverket_ferry tests ([@emontnemery] - [#99045]) ([trafikverket_ferry docs])
+- Use freezegun in here_travel_time tests ([@emontnemery] - [#99032]) ([here_travel_time docs])
+- Use freezegun in landisgyr_heat_meter tests ([@emontnemery] - [#99037]) ([landisgyr_heat_meter docs])
+- Use freezegun in kraken tests ([@emontnemery] - [#99035]) ([kraken docs])
+- Use freezegun in iotawatt tests ([@emontnemery] - [#99034]) ([iotawatt docs])
+- Use freezegun in fully_kiosk tests ([@emontnemery] - [#99031]) ([fully_kiosk docs])
+- Use freezegun in hue tests ([@emontnemery] - [#99033]) ([hue docs])
+- Use freezegun in airly tests ([@emontnemery] - [#99028]) ([airly docs])
+- Use freezegun in fronius tests ([@emontnemery] - [#99030]) ([fronius docs])
+- Use freezegun in uptimerobot tests ([@emontnemery] - [#99046]) ([uptimerobot docs])
+- Use freezegun in pvpc_hourly_pricing tests ([@emontnemery] - [#99040]) ([pvpc_hourly_pricing docs])
+- Use freezegun in shelly tests ([@emontnemery] - [#99042]) ([shelly docs])
+- Use snapshot assertion for gios diagnostics test ([@jpbede] - [#98984]) ([gios docs])
+- Modernize accuweather weather ([@emontnemery] - [#99001]) ([accuweather docs])
+- Add lawn_mower platform to MQTT ([@jbouwh] - [#98831]) ([mqtt docs]) (new-platform)
+- Wake word cleanup ([@synesthesiam] - [#98652]) ([assist_pipeline docs]) ([wake_word docs])
+- Add and improve comments about staggering of event listeners ([@emontnemery] - [#99058])
+- Use entity descriptions in Switcher ([@joostlek] - [#98958]) ([switcher_kis docs])
+- Replace mock_coro with AsyncMock ([@cdce8p] - [#99014])
+- Update calendar handle state updates at start/end of active/upcoming event ([@allenporter] - [#98037]) ([google docs]) ([calendar docs]) ([local_calendar docs])
+- Adjust netatmo test ([@cdce8p] - [#99071]) ([netatmo docs])
+- Use freezegun in additional fronius tests ([@emontnemery] - [#99066]) ([fronius docs])
+- Bump opower to 0.0.32 ([@tronikos] - [#99079]) ([opower docs])
+- Remove pylint configs flagged by useless-suppression ([@scop] - [#99081])
+- Bump zeroconf to 0.83.0 ([@bdraco] - [#99091]) ([zeroconf docs])
+- Generate Stream snapshots using next keyframe ([@uvjustin] - [#96991]) ([camera docs]) ([nest docs]) ([stream docs]) ([onvif docs]) ([generic docs]) (breaking-change)
+- Remove unused variable from Airthings BLE ([@joostlek] - [#99085]) ([airthings_ble docs])
+- Bump python bsblan 0.5.14 ([@liudger] - [#99089]) ([bsblan docs])
+- Bump aiounifi to v58 ([@Kane610] - [#99103]) ([unifi docs])
+- Drop switchbot codeowner ([@bdraco] - [#99108]) ([switchbot docs])
+- Add some missing typing to isy994 ([@bdraco] - [#99110]) ([isy994 docs])
+- Add type hints to transmission ([@engrbm87] - [#99117]) ([transmission docs])
+- Use climate entity built in attrs for nest climate ([@allenporter] - [#99093]) ([nest docs])
+- Revert "Bump python bsblan 0.5.14" ([@bdraco] - [#99130]) ([bsblan docs])
+- Add typing to Venstar Config flow ([@joostlek] - [#99016]) ([venstar docs])
+- Add device info to Withings ([@joostlek] - [#99052]) ([withings docs])
+- Bump async-upnp-client to 0.35.0 ([@StevenLooman] - [#99129]) ([upnp docs]) ([yeelight docs]) ([dlna_dmr docs]) ([samsungtv docs]) ([ssdp docs]) ([dlna_dms docs])
+- Migrate Somfy mylink to has entity name ([@joostlek] - [#98947]) ([somfy_mylink docs])
+- Use shorthand attributes for airtouch4 ([@joostlek] - [#99086]) ([airtouch4 docs])
+- Use snapshot assertion for Watttime diagnostics test ([@joostlek] - [#99023]) ([watttime docs])
+- Bump dbus-fast to 1.94.1 ([@bdraco] - [#99132]) ([bluetooth docs])
+- Bump zeroconf to 0.83.1 ([@bdraco] - [#99134]) ([zeroconf docs])
+- Bump home-assistant-bluetooth to 1.10.3 ([@bdraco] - [#99133])
+- Improve UniFi PoE control by queueing commands together ([@Kane610] - [#99114]) ([unifi docs])
+- Rework UniFi Network Controller device and add software version ([@Kane610] - [#99136]) ([unifi docs])
+- Bump fnv-hash-fast to 0.4.1 ([@bdraco] - [#99135]) ([recorder docs]) ([homekit docs])
+- Bump bluetooth-data-tools 1.9.1 ([@bdraco] - [#99131]) ([esphome docs]) ([bluetooth docs]) ([led_ble docs]) ([ld2410_ble docs])
+- Bump ulid-transform to 0.8.1 ([@bdraco] - [#99139])
+- Extend Nextcloud integration ([@escoand] - [#94066]) ([nextcloud docs])
+- Retry tplink setup later if device has an unexpected mac address ([@bdraco] - [#98784]) ([tplink docs])
+- Split Owncloud CPU load in separate sensors ([@mib1185] - [#99141]) ([nextcloud docs]) (breaking-change)
+- Fix typo in AnthemAV const ([@joostlek] - [#99149]) ([anthemav docs])
+- Add device info to Watttime ([@joostlek] - [#99022]) ([watttime docs])
+- Bump zeroconf to 0.84.0 ([@bdraco] - [#99138]) ([zeroconf docs])
+- Remove codeowner from airtouch4 ([@joostlek] - [#99145]) ([airtouch4 docs])
+- Improve Anova typing ([@joostlek] - [#99146]) ([anova docs])
+- Extract Ambient Station base entity to separate file ([@joostlek] - [#99142]) ([ambient_station docs])
+- Make Anova device unique id public ([@joostlek] - [#99147]) ([anova docs])
+- Rework to use list of entity descriptions in Nextcloud integration ([@mib1185] - [#99150]) ([nextcloud docs])
+- Introduce more sensors to Nextcloud ([@mib1185] - [#99155]) ([nextcloud docs])
+- Bump zeroconf to 0.85.0 ([@bdraco] - [#99165]) ([zeroconf docs])
+- Add entity translations to Watttime ([@joostlek] - [#99151]) ([watttime docs])
+- Add code owner for Media Extractor ([@joostlek] - [#99153]) ([media_extractor docs])
+- Bump bimmer_connected to 0.14.0 ([@rikroe] - [#99161]) ([bmw_connected_drive docs])
+- Add missing `low` state for `ENUM` Tractive sensors ([@bieniu] - [#99057]) ([tractive docs])
+- Fix trafikverket_camera recorder platform setup ([@emontnemery] - [#99080]) ([trafikverket_camera docs])
+- Address late modbus review ([@janiversen] - [#99123]) ([modbus docs])
+- Use freezegun in trafikverket_camera tests ([@emontnemery] - [#99067]) ([trafikverket_camera docs])
+- Bump zeroconf to 0.86.0 ([@bdraco] - [#99177]) ([zeroconf docs])
+- Bump pywemo to 1.3.0 ([@esev] - [#99172]) ([wemo docs])
+- Update aioqsw to v0.3.4 ([@Noltari] - [#99183]) ([qnap_qsw docs])
+- Fix typos in home_plus_controls ([@edenhaus] - [#99188]) ([home_plus_control docs])
+- Revert "Change naming of Shelly entities to correspond with HA guidelines" ([@thecode] - [#99059]) ([shelly docs])
+- Add more type hints to Transmission ([@engrbm87] - [#99190]) ([transmission docs])
+- Remove BleBox switch constructor ([@joostlek] - [#99204]) ([blebox docs])
+- Reorganize Transmission entry setup ([@engrbm87] - [#99195]) ([transmission docs])
+- Add typing to media extractor ([@joostlek] - [#99207]) ([media_extractor docs])
+- Initialize static shorthand attributes outside of constructor for BAF ([@joostlek] - [#99202]) ([baf docs])
+- Add image platform to devolo_home_network ([@Shutgun] - [#98036]) ([devolo_home_network docs]) (new-platform)
+- Vodafone Station device tracker ([@chemelli74] - [#94032]) ([vodafone_station docs]) (new-integration)
+- Use shorthand attributes in August ([@joostlek] - [#99196]) ([august docs])
+- Add entity translations to System bridge ([@joostlek] - [#98959]) ([system_bridge docs])
+- Add indoor sensors to Honeywell integration ([@jakecolman] - [#98609]) ([honeywell docs])
+- Switch async_track_point_in_time to async_call_later in alarmdecoder ([@bdraco] - [#99213]) ([alarmdecoder docs])
+- Switch w800rf32 to use async_call_later ([@bdraco] - [#99214]) ([w800rf32 docs])
+- Bump aiohomekit to 3.0.1 ([@bdraco] - [#99210]) ([homekit_controller docs])
+- Use loop.time in DataUpdateCoordinator ([@emontnemery] - [#98937])
+- Switch axis to use async_call_later ([@bdraco] - [#99215]) ([axis docs])
+- Switch lifx to use async_call_later ([@bdraco] - [#99217]) ([lifx docs])
+- Switch hassio to use async_call_later ([@bdraco] - [#99216]) ([hassio docs])
+- Fix ruckus_unleashed for python 3.11 ([@lanrat] - [#94835]) ([ruckus_unleashed docs])
+- Add power service to System Bridge integration ([@timmo001] - [#95719]) ([system_bridge docs])
+- Improve aurora data schema ([@joostlek] - [#99200]) ([aurora docs])
+- Use shorthand attribute for Coolmaster ([@joostlek] - [#99211]) ([coolmaster docs])
+- Clean up Balboa entity ([@joostlek] - [#99203]) ([balboa docs])
+- Remove polling interval property from Aurora ([@joostlek] - [#99198]) ([aurora docs])
+- Enhance Androidtv remote config flow typing ([@joostlek] - [#99144]) ([androidtv_remote docs])
+- Add entity translations to Switcher kis ([@joostlek] - [#99223]) ([switcher_kis docs])
+- Switch async_track_time_interval to use async_call_later internally ([@bdraco] - [#99220])
+- Renson binary sensors ([@jimmyd-be] - [#94490]) ([renson docs]) (new-platform)
+- Add Options Flow to change radius after initial configuration ([@asymworks] - [#97285]) ([airnow docs])
+- Switch async_track_same_state to use async_call_later ([@bdraco] - [#99219])
+- Bump syrupy to 4.2.1 ([@jpbede] - [#99156])
+- Wrap most ZHA exceptions in `HomeAssistantError` ([@puddly] - [#98421]) ([zha docs])
+- Automatic migration from multi-PAN back to Zigbee firmware ([@puddly] - [#93831]) ([zha docs]) ([homeassistant_yellow docs]) ([homeassistant_sky_connect docs]) ([homeassistant_hardware docs])
+- Bump zeroconf to 0.88.0 ([@bdraco] - [#99248]) ([zeroconf docs])
+- Migrate Venstar to has entity name ([@joostlek] - [#99013]) ([venstar docs])
+- Migrate Vilfo to has entity name ([@joostlek] - [#99018]) ([vilfo docs])
+- Bump zwave-js-server-python to 0.51.0 ([@raman325] - [#99250]) ([zwave_js docs]) (breaking-change)
+- Add entity translations to Vilfo ([@joostlek] - [#99019]) ([vilfo docs])
+- Fix Renault AssertionError ([@epenet] - [#99189]) ([renault docs])
+- Add new zigbee button SONOFF_SNZB_01P to deconz ([@liangjia2019] - [#99205]) ([deconz docs])
+- Abort YouTube configuration if user doesn't have subscriptions ([@joostlek] - [#99140]) ([youtube docs])
+- Fix stale docstring in trafikverket_camera tests ([@emontnemery] - [#99260]) ([trafikverket_camera docs])
+- Add deprecation to legacy forecast for Weather ([@gjohansson-ST] - [#97294]) ([weather docs])
+- Add possibility to have multiple values for every modbus hvac mode ([@escoand] - [#98829]) ([modbus docs])
+- Small typing fix in light group ([@emontnemery] - [#99259]) ([group docs])
+- Clean out compatibility for deprecated methods in Weather ([@gjohansson-ST] - [#99263]) ([weather docs])
+- Add Freebox Home battery sensor ([@Quentame] - [#99222]) ([freebox docs])
+- Remove myself from Dune HD codeowners ([@bieniu] - [#99268]) ([dunehd docs])
+- Refactor Freebox Home categories ([@Quentame] - [#99224]) ([freebox docs])
+- Use shorthand attributes for DuneHD ([@joostlek] - [#99237]) ([dunehd docs])
+- Update AEMET-OpenData to v0.4.1 ([@Noltari] - [#99261]) ([aemet docs])
+- Use shorthand attributes for Elkm1 ([@joostlek] - [#99275]) ([elkm1 docs])
+- Simplify and improve AEMET coordinator updates ([@Noltari] - [#99273]) ([aemet docs])
+- Bump pydrawise to 2023.8.0 ([@dknowles2] - [#99270]) ([hydrawise docs])
+- Fix typo in TrackTemplateResultInfo ([@emontnemery] - [#99276])
+- Add ws endpoint "auth/delete_all_refresh_tokens" ([@edenhaus] - [#98976]) ([auth docs])
+- Migrate PVPC to has entity name ([@joostlek] - [#98894]) ([pvpc_hourly_pricing docs])
+- Bump aioesphomeapi to 16.0.3 ([@bdraco] - [#99282]) ([esphome docs])
+- Use freezegun in AEMET tests ([@Noltari] - [#99253]) ([aemet docs])
+- Fix Life360 reauthorization config flow ([@pnbruckner] - [#99227]) ([life360 docs])
+- Use functions to get value and unit in Abode ([@joostlek] - [#99084]) ([abode docs])
+- Don't assume that the activity/sleep labels are always present in Tractive event ([@bieniu] - [#99197]) ([tractive docs])
+- Add entity translations to NZBGet ([@joostlek] - [#98805]) ([nzbget docs])
+- Validate slug in addon services ([@mdegat01] - [#99232]) ([hassio docs])
+- Update AEMET-OpenData to v0.4.2 ([@Noltari] - [#99286]) ([aemet docs])
+- Bump pydaikin version to 2.11.1 ([@kel30a] - [#99288]) ([daikin docs])
+- Allows defining list of attributes excluded from history in manifest.json ([@emontnemery] - [#99283]) ([recorder docs]) ([automation docs])
+- Update Home Assistant base image to 2023.08.0 ([@agners] - [#99281])
+- Add wind gust to AEMET hourly forecasts ([@Noltari] - [#99289]) ([aemet docs])
+- Allow one retry before raising ConfigEntryAuthFailed for bmw_connected_drive ([@rikroe] - [#99168]) ([bmw_connected_drive docs])
+- Verisure: propagate lock code digits configuration immediately ([@oyvindwe] - [#99241]) ([verisure docs])
+- Add option to save Assist pipeline audio ([@synesthesiam] - [#98928]) ([assist_pipeline docs])
+- Bump python-bsblan to 0.5.16 ([@liudger] - [#99238]) ([bsblan docs])
+- Opower add new virtual integrations ConEd and ORU ([@rct] - [#99230]) ([coned docs]) ([oru_opower docs]) (new-integration)
+- Add support for MFA auth in opower ([@Sebmaster] - [#97878]) ([opower docs])
+- Switchbot nightlatch feature ([@Michal4K] - [#98620]) ([switchbot docs])
+- Move more Oral-B entities to be diagnostic ([@balloob] - [#99297]) ([oralb docs])
+- Update Mill lib, improve error handling ([@Danielhiversen] - [#99296]) ([mill docs]) (beta fix)
+- Revert "Allows defining list of attributes excluded from history in manifest.json" ([@emontnemery] - [#99300]) ([recorder docs]) ([automation docs])
+- Add entity translations to Garages Amsterdam ([@joostlek] - [#98584]) ([garages_amsterdam docs])
+- Add extra sensors to Blebox ([@riokuu] - [#90516]) ([blebox docs])
+- Use shorthand attributes for Daikin ([@joostlek] - [#99225]) ([daikin docs])
+- Conditional category for temperature sensor entities in AVM Fritz!Smarthome ([@mib1185] - [#98981]) ([fritzbox docs])
+- Migrate Melcloud to has entity name ([@ollo69] - [#99025]) ([melcloud docs])
+- Add entity translations to QNAP QSW ([@joostlek] - [#98915]) ([qnap_qsw docs])
+- Add zwave_js controller identify event ([@raman325] - [#99254]) ([zwave_js docs])
+- Fix assist_pipeline schema ([@emontnemery] - [#99318]) ([assist_pipeline docs])
+- Add modbus test for configuration errors ([@janiversen] - [#98697]) ([modbus docs])
+- Refactor & enhance BMW tests ([@rikroe] - [#97895]) ([bmw_connected_drive docs])
+- Deprecate timer start optional duration parameter ([@gjohansson-ST] - [#93471]) ([timer docs])
+- Add typing to Blink config flow ([@joostlek] - [#98873]) ([blink docs])
+- Use device info object in ezviz ([@joostlek] - [#99280]) ([ezviz docs])
+- Use shorthand attributes for EnOcean ([@joostlek] - [#99278]) ([enocean docs])
+- Use shorthand attributes for Elmax ([@joostlek] - [#99277]) ([elmax docs])
+- Use shorthand attributes for Ecobee ([@joostlek] - [#99239]) ([ecobee docs])
+- Trigger full CI run if assist_pipeline is modified ([@emontnemery] - [#99319])
+- Use snapshot assertion for nextdns diagnostics test ([@jpbede] - [#99157]) ([nextdns docs])
+- Use snapshot assertion for google assistant diagnostics test ([@jpbede] - [#99167]) ([google_assistant docs])
+- Add zwave_js controller status sensor ([@raman325] - [#99252]) ([zwave_js docs])
+- Split bsblan coordinator and randomize update interval ([@jpbede] - [#99269]) ([bsblan docs])
+- Update AEMET-OpenData to v0.4.3 ([@Noltari] - [#99312]) ([aemet docs])
+- Bump pyduotecno to 2023.8.4 ([@Cereal2nd] - [#99328]) ([duotecno docs])
+- Use shorthand attribute in Google Travel Time ([@joostlek] - [#99331]) ([google_travel_time docs])
+- Use shorthand attributes in Gree ([@joostlek] - [#99332]) ([gree docs])
+- Use shorthand attributes for Freebox ([@joostlek] - [#99327]) ([freebox docs])
+- Map abode units to HA units ([@joostlek] - [#99323]) ([abode docs])
+- Add pressure device class to Telldus live ([@joostlek] - [#99337]) ([tellduslive docs])
+- Add entity translations to Tellduslive ([@joostlek] - [#98963]) ([tellduslive docs])
+- Correct loqed token URL to production server ([@mikewoudenberg] - [#99316]) ([loqed docs])
+- Add config flow for template sensor ([@emontnemery] - [#98970]) ([template docs])
+- Add new board type ([@emontnemery] - [#99334]) ([hassio docs]) ([homeassistant_green docs]) (new-integration)
+- Remove unneeded variable in Flo ([@joostlek] - [#99322]) ([flo docs])
+- Update frontend to 20230830.0 ([@bramkragten] - [#99340]) ([frontend docs])
+- Add snapshot assertion to Airzone ([@joostlek] - [#98760]) ([airzone docs])
+- Add config flow for template binary sensor ([@emontnemery] - [#99339]) ([template docs])
+- Add zwave_js device config file change fix/repair ([@raman325] - [#99314]) ([zwave_js docs])
+- 2023.9.0b0 ([@bramkragten] - [#99347]) ([abode docs]) ([ads docs]) ([adguard docs]) ([acmeda docs]) ([accuweather docs]) ([adax docs])
+- Patch service validation in Aussie Broadband ([@Bre77] - [#99077]) ([aussie_broadband docs]) (beta fix)
+- Opower MFA fixes ([@tronikos] - [#99317]) ([opower docs]) (beta fix)
+- Add documentation URL for homeassistant_yellow ([@emontnemery] - [#99336]) ([homeassistant_yellow docs]) (beta fix)
+- Bump ZHA dependencies ([@puddly] - [#99341]) ([zha docs]) (beta fix)
+- Update pysnooz to 0.8.6 ([@AustinBrunkhorst] - [#99368]) ([snooz docs]) (beta fix)
+- Improve template sensor config flow validation ([@emontnemery] - [#99373]) ([template docs]) (beta fix)
+- Revert orjson to 3.9.2 ([@bdraco] - [#99374]) (beta fix)
+- Add documentation URL for homeassistant_sky_connect ([@emontnemery] - [#99377]) ([homeassistant_sky_connect docs]) (beta fix)
+- Revert "Sonos add yaml config issue" ([@gjohansson-ST] - [#99379]) ([sonos docs]) (beta fix)
+- Add entity component translation for water heater away mode attribute ([@piitaya] - [#99394]) ([water_heater docs]) (beta fix)
+- Update frontend to 20230831.0 ([@bramkragten] - [#99405]) ([frontend docs]) (beta fix)
+- Add remote alias to connection info response ([@ludeeus] - [#99410]) ([cloud docs]) (beta fix)
+- Initialize ZHA device database before connecting to the radio ([@puddly] - [#98082]) ([zha docs]) (beta fix)
+- Create a ZHA repair when directly accessing a radio with multi-PAN firmware ([@puddly] - [#98275]) ([zha docs]) (beta fix)
+- Address late review for Nextcloud ([@mib1185] - [#99226]) ([nextcloud docs]) (beta fix)
+- Significantly reduce overhead to filter event triggers ([@bdraco] - [#99376]) ([homeassistant docs]) (beta fix)
+- Update AEMET-OpenData to v0.4.4 ([@Noltari] - [#99418]) ([aemet docs]) (beta fix)
+- Use common key for away mode state translations ([@piitaya] - [#99425]) ([water_heater docs]) (beta fix)
+- Update asynsleepiq library to 1.3.7 ([@kbickar] - [#99431]) ([sleepiq docs]) (beta fix)
+- Fix template helper strings ([@emontnemery] - [#99456]) ([template docs]) (beta fix)
+- Update frontend to 20230901.0 ([@bramkragten] - [#99464]) ([frontend docs]) (beta fix)
+- Handle timestamp sensors in Prometheus integration ([@rcloran] - [#98001]) ([prometheus docs]) (beta fix)
+- Update Tibber library to 0.28.2 ([@Danielhiversen] - [#99115]) ([tibber docs]) (beta fix)
+- Check new IP of Reolink camera from DHCP ([@starkillerOG] - [#99381]) ([reolink docs]) (beta fix)
+- Fix device name in zwave_js repair flow ([@raman325] - [#99414]) ([zwave_js docs]) (beta fix)
+- Log unexpected exceptions causing recorder shutdown ([@emontnemery] - [#99445]) ([recorder docs]) (beta fix)
+- Fix translation bug Renson sensors ([@jimmyd-be] - [#99461]) ([renson docs]) (beta fix)
+- Fix default language in Workday ([@gjohansson-ST] - [#99463]) ([workday docs]) (beta fix)
+- Update aiotractive to 0.5.6 ([@oandrew] - [#99477]) ([tractive docs]) (beta fix)
+- Bump zeroconf to 0.91.1 ([@bdraco] - [#99490]) ([zeroconf docs]) (beta fix)
+- Extend template entities with a script section ([@allenporter] - [#96175]) ([template docs]) (beta fix)
+- Mark AVM Fritz!Smarthome as Gold integration ([@mib1185] - [#97086]) ([fritzbox docs]) (beta fix)
+- Enumerate available states in Prometheus startup ([@rcloran] - [#97993]) ([prometheus docs]) (beta fix)
+- Don't set assumed_state in cover groups ([@emontnemery] - [#99391]) ([group docs]) (beta fix)
+- Don't set assumed_state in fan groups ([@emontnemery] - [#99399]) ([group docs]) (beta fix)
+- Fix battery reading in SOMA API ([@ratsept] - [#99403]) ([soma docs]) (beta fix)
+- Fix recollect_waste month time boundary issue ([@mikeodr] - [#99429]) ([recollect_waste docs]) (beta fix)
+- Set state of entity with invalid state to unknown ([@emontnemery] - [#99452]) (beta fix)
+- Validate state in template helper preview ([@emontnemery] - [#99455]) ([template docs]) (beta fix)
+- Fix module check in _async_get_flow_handler ([@bdraco] - [#99509]) (beta fix)
+- Bump aiohomekit to 3.0.2 ([@bdraco] - [#99514]) ([homekit_controller docs]) (beta fix)
+- Bump bleak to 0.21.0 ([@bdraco] - [#99520]) ([bluetooth docs]) (beta fix)
+- Modbus switch, allow restore "unknown" ([@janiversen] - [#99533]) ([modbus docs]) (beta fix)
+- Bump bleak-retry-connector to 3.1.2 ([@bdraco] - [#99540]) ([bluetooth docs]) (beta fix)
+- Update bluetooth-data-tools to 1.11.0 ([@Jc2k] - [#99485]) ([esphome docs]) ([bluetooth docs]) ([led_ble docs]) ([ld2410_ble docs]) (beta fix)
+- Fix loading filesize coordinator from wrong place ([@gjohansson-ST] - [#99547]) ([filesize docs]) (beta fix)
+- Bump aiounifi to v60 ([@Kane610] - [#99548]) ([unifi docs]) (beta fix)
+- Bump ZHA dependencies ([@puddly] - [#99561]) ([zha docs]) (beta fix)
+- Small cleanup of WS command render_template ([@emontnemery] - [#99562]) ([websocket_api docs]) (beta fix)
+- Bump pyenphase to 1.9.1 ([@joostlek] - [#99574]) ([enphase_envoy docs]) (beta fix)
+- Remove unneeded name property from Logi Circle ([@joostlek] - [#99604]) ([logi_circle docs]) (beta fix)
+- Revert "Deprecate timer start optional duration parameter" ([@emontnemery] - [#99613]) ([timer docs]) (beta fix)
+- Update frontend to 20230904.0 ([@bramkragten] - [#99636]) ([frontend docs]) (beta fix)
+- Bump gardena_bluetooth to 1.4.0 ([@elupus] - [#99530]) ([gardena_bluetooth docs]) (beta fix)
+- Bump aioesphomeapi to 16.0.4 ([@bdraco] - [#99541]) ([esphome docs]) (beta fix)
+- Small cleanup of TemplateEnvironment ([@emontnemery] - [#99571]) (beta fix)
+- Fix not stripping no device class in template helper binary sensor ([@gjohansson-ST] - [#99640]) ([template docs]) (beta fix)
+- Fix missing unique id in SQL ([@gjohansson-ST] - [#99641]) ([sql docs]) (beta fix)
+- Update aioairzone to v0.6.8 ([@Noltari] - [#99644]) ([airzone docs]) (beta fix)
+- Fix long press event for matter generic switch ([@itpeters] - [#99645]) ([matter docs]) (beta fix)
+- Fix mobile app dispatcher performance ([@bdraco] - [#99647]) ([mobile_app docs]) (beta fix)
+- Bump zwave-js-server-python to 0.51.1 ([@raman325] - [#99652]) ([zwave_js docs]) (beta fix)
+- Update frontend to 20230905.0 ([@bramkragten] - [#99677]) ([frontend docs]) (beta fix)
+- Allow specifying a custom log function for template render ([@emontnemery] - [#99572]) ([websocket_api docs]) (beta fix)
+- Include template listener info in template preview ([@emontnemery] - [#99669]) ([template docs]) (beta fix)
+- Fix ZHA startup creating entities with non-unique IDs ([@puddly] - [#99679]) ([zha docs]) (beta fix)
+- Bump reolink_aio to 0.7.9 ([@starkillerOG] - [#99680]) ([reolink docs]) (beta fix)
+- Bump zamg to 0.3.0 ([@killer0071234] - [#99685]) ([zamg docs]) (beta fix)
+- Bump aiounifi to v61 ([@Kane610] - [#99686]) ([unifi docs]) (beta fix)
+- Bump aioesphomeapi to 16.0.5 ([@bdraco] - [#99698]) ([esphome docs]) (beta fix)
+- Fix unit conversion for gas cost sensor ([@emontnemery] - [#99708]) ([energy docs]) (beta fix)
+- Update frontend to 20230906.0 ([@bramkragten] - [#99715]) ([frontend docs]) (beta fix)
+- Reolink onvif not supported fix ([@starkillerOG] - [#99714]) ([reolink docs]) (beta fix)
+- Send template render errors to template helper preview ([@emontnemery] - [#99716]) ([template docs]) (beta fix)
+- Don't allow changing device class in template binary sensor options ([@emontnemery] - [#99720]) ([template docs]) (beta fix)
+- Correct state attributes in template helper preview ([@emontnemery] - [#99722]) ([template docs]) (beta fix)
+- Correct state attributes in group helper preview ([@emontnemery] - [#99723]) ([group docs]) (beta fix)
+- Update frontend to 20230906.1 ([@bramkragten] - [#99733]) ([frontend docs]) (beta fix)
+
+[#71432]: https://github.com/home-assistant/core/pull/71432
+[#79409]: https://github.com/home-assistant/core/pull/79409
+[#79492]: https://github.com/home-assistant/core/pull/79492
+[#79873]: https://github.com/home-assistant/core/pull/79873
+[#83638]: https://github.com/home-assistant/core/pull/83638
+[#84463]: https://github.com/home-assistant/core/pull/84463
+[#85234]: https://github.com/home-assistant/core/pull/85234
+[#86003]: https://github.com/home-assistant/core/pull/86003
+[#86343]: https://github.com/home-assistant/core/pull/86343
+[#88472]: https://github.com/home-assistant/core/pull/88472
+[#89072]: https://github.com/home-assistant/core/pull/89072
+[#90516]: https://github.com/home-assistant/core/pull/90516
+[#90800]: https://github.com/home-assistant/core/pull/90800
+[#91445]: https://github.com/home-assistant/core/pull/91445
+[#91597]: https://github.com/home-assistant/core/pull/91597
+[#92964]: https://github.com/home-assistant/core/pull/92964
+[#93471]: https://github.com/home-assistant/core/pull/93471
+[#93612]: https://github.com/home-assistant/core/pull/93612
+[#93623]: https://github.com/home-assistant/core/pull/93623
+[#93684]: https://github.com/home-assistant/core/pull/93684
+[#93777]: https://github.com/home-assistant/core/pull/93777
+[#93831]: https://github.com/home-assistant/core/pull/93831
+[#93832]: https://github.com/home-assistant/core/pull/93832
+[#93888]: https://github.com/home-assistant/core/pull/93888
+[#94032]: https://github.com/home-assistant/core/pull/94032
+[#94066]: https://github.com/home-assistant/core/pull/94066
+[#94490]: https://github.com/home-assistant/core/pull/94490
+[#94675]: https://github.com/home-assistant/core/pull/94675
+[#94676]: https://github.com/home-assistant/core/pull/94676
+[#94736]: https://github.com/home-assistant/core/pull/94736
+[#94760]: https://github.com/home-assistant/core/pull/94760
+[#94763]: https://github.com/home-assistant/core/pull/94763
+[#94835]: https://github.com/home-assistant/core/pull/94835
+[#95087]: https://github.com/home-assistant/core/pull/95087
+[#95121]: https://github.com/home-assistant/core/pull/95121
+[#95280]: https://github.com/home-assistant/core/pull/95280
+[#95605]: https://github.com/home-assistant/core/pull/95605
+[#95672]: https://github.com/home-assistant/core/pull/95672
+[#95719]: https://github.com/home-assistant/core/pull/95719
+[#95940]: https://github.com/home-assistant/core/pull/95940
+[#95966]: https://github.com/home-assistant/core/pull/95966
+[#96083]: https://github.com/home-assistant/core/pull/96083
+[#96175]: https://github.com/home-assistant/core/pull/96175
+[#96380]: https://github.com/home-assistant/core/pull/96380
+[#96552]: https://github.com/home-assistant/core/pull/96552
+[#96991]: https://github.com/home-assistant/core/pull/96991
+[#97053]: https://github.com/home-assistant/core/pull/97053
+[#97078]: https://github.com/home-assistant/core/pull/97078
+[#97086]: https://github.com/home-assistant/core/pull/97086
+[#97091]: https://github.com/home-assistant/core/pull/97091
+[#97095]: https://github.com/home-assistant/core/pull/97095
+[#97127]: https://github.com/home-assistant/core/pull/97127
+[#97203]: https://github.com/home-assistant/core/pull/97203
+[#97223]: https://github.com/home-assistant/core/pull/97223
+[#97254]: https://github.com/home-assistant/core/pull/97254
+[#97265]: https://github.com/home-assistant/core/pull/97265
+[#97268]: https://github.com/home-assistant/core/pull/97268
+[#97270]: https://github.com/home-assistant/core/pull/97270
+[#97273]: https://github.com/home-assistant/core/pull/97273
+[#97275]: https://github.com/home-assistant/core/pull/97275
+[#97276]: https://github.com/home-assistant/core/pull/97276
+[#97285]: https://github.com/home-assistant/core/pull/97285
+[#97294]: https://github.com/home-assistant/core/pull/97294
+[#97295]: https://github.com/home-assistant/core/pull/97295
+[#97307]: https://github.com/home-assistant/core/pull/97307
+[#97318]: https://github.com/home-assistant/core/pull/97318
+[#97326]: https://github.com/home-assistant/core/pull/97326
+[#97331]: https://github.com/home-assistant/core/pull/97331
+[#97343]: https://github.com/home-assistant/core/pull/97343
+[#97345]: https://github.com/home-assistant/core/pull/97345
+[#97347]: https://github.com/home-assistant/core/pull/97347
+[#97359]: https://github.com/home-assistant/core/pull/97359
+[#97360]: https://github.com/home-assistant/core/pull/97360
+[#97361]: https://github.com/home-assistant/core/pull/97361
+[#97362]: https://github.com/home-assistant/core/pull/97362
+[#97363]: https://github.com/home-assistant/core/pull/97363
+[#97365]: https://github.com/home-assistant/core/pull/97365
+[#97366]: https://github.com/home-assistant/core/pull/97366
+[#97367]: https://github.com/home-assistant/core/pull/97367
+[#97368]: https://github.com/home-assistant/core/pull/97368
+[#97369]: https://github.com/home-assistant/core/pull/97369
+[#97391]: https://github.com/home-assistant/core/pull/97391
+[#97396]: https://github.com/home-assistant/core/pull/97396
+[#97399]: https://github.com/home-assistant/core/pull/97399
+[#97400]: https://github.com/home-assistant/core/pull/97400
+[#97403]: https://github.com/home-assistant/core/pull/97403
+[#97404]: https://github.com/home-assistant/core/pull/97404
+[#97405]: https://github.com/home-assistant/core/pull/97405
+[#97410]: https://github.com/home-assistant/core/pull/97410
+[#97411]: https://github.com/home-assistant/core/pull/97411
+[#97412]: https://github.com/home-assistant/core/pull/97412
+[#97413]: https://github.com/home-assistant/core/pull/97413
+[#97414]: https://github.com/home-assistant/core/pull/97414
+[#97415]: https://github.com/home-assistant/core/pull/97415
+[#97416]: https://github.com/home-assistant/core/pull/97416
+[#97417]: https://github.com/home-assistant/core/pull/97417
+[#97418]: https://github.com/home-assistant/core/pull/97418
+[#97419]: https://github.com/home-assistant/core/pull/97419
+[#97421]: https://github.com/home-assistant/core/pull/97421
+[#97422]: https://github.com/home-assistant/core/pull/97422
+[#97424]: https://github.com/home-assistant/core/pull/97424
+[#97425]: https://github.com/home-assistant/core/pull/97425
+[#97426]: https://github.com/home-assistant/core/pull/97426
+[#97428]: https://github.com/home-assistant/core/pull/97428
+[#97429]: https://github.com/home-assistant/core/pull/97429
+[#97430]: https://github.com/home-assistant/core/pull/97430
+[#97431]: https://github.com/home-assistant/core/pull/97431
+[#97434]: https://github.com/home-assistant/core/pull/97434
+[#97436]: https://github.com/home-assistant/core/pull/97436
+[#97444]: https://github.com/home-assistant/core/pull/97444
+[#97447]: https://github.com/home-assistant/core/pull/97447
+[#97448]: https://github.com/home-assistant/core/pull/97448
+[#97462]: https://github.com/home-assistant/core/pull/97462
+[#97469]: https://github.com/home-assistant/core/pull/97469
+[#97475]: https://github.com/home-assistant/core/pull/97475
+[#97479]: https://github.com/home-assistant/core/pull/97479
+[#97482]: https://github.com/home-assistant/core/pull/97482
+[#97485]: https://github.com/home-assistant/core/pull/97485
+[#97497]: https://github.com/home-assistant/core/pull/97497
+[#97502]: https://github.com/home-assistant/core/pull/97502
+[#97503]: https://github.com/home-assistant/core/pull/97503
+[#97506]: https://github.com/home-assistant/core/pull/97506
+[#97508]: https://github.com/home-assistant/core/pull/97508
+[#97509]: https://github.com/home-assistant/core/pull/97509
+[#97515]: https://github.com/home-assistant/core/pull/97515
+[#97517]: https://github.com/home-assistant/core/pull/97517
+[#97518]: https://github.com/home-assistant/core/pull/97518
+[#97524]: https://github.com/home-assistant/core/pull/97524
+[#97526]: https://github.com/home-assistant/core/pull/97526
+[#97527]: https://github.com/home-assistant/core/pull/97527
+[#97528]: https://github.com/home-assistant/core/pull/97528
+[#97529]: https://github.com/home-assistant/core/pull/97529
+[#97531]: https://github.com/home-assistant/core/pull/97531
+[#97533]: https://github.com/home-assistant/core/pull/97533
+[#97534]: https://github.com/home-assistant/core/pull/97534
+[#97546]: https://github.com/home-assistant/core/pull/97546
+[#97566]: https://github.com/home-assistant/core/pull/97566
+[#97570]: https://github.com/home-assistant/core/pull/97570
+[#97572]: https://github.com/home-assistant/core/pull/97572
+[#97582]: https://github.com/home-assistant/core/pull/97582
+[#97584]: https://github.com/home-assistant/core/pull/97584
+[#97598]: https://github.com/home-assistant/core/pull/97598
+[#97612]: https://github.com/home-assistant/core/pull/97612
+[#97618]: https://github.com/home-assistant/core/pull/97618
+[#97620]: https://github.com/home-assistant/core/pull/97620
+[#97621]: https://github.com/home-assistant/core/pull/97621
+[#97622]: https://github.com/home-assistant/core/pull/97622
+[#97623]: https://github.com/home-assistant/core/pull/97623
+[#97624]: https://github.com/home-assistant/core/pull/97624
+[#97625]: https://github.com/home-assistant/core/pull/97625
+[#97626]: https://github.com/home-assistant/core/pull/97626
+[#97627]: https://github.com/home-assistant/core/pull/97627
+[#97628]: https://github.com/home-assistant/core/pull/97628
+[#97638]: https://github.com/home-assistant/core/pull/97638
+[#97642]: https://github.com/home-assistant/core/pull/97642
+[#97646]: https://github.com/home-assistant/core/pull/97646
+[#97673]: https://github.com/home-assistant/core/pull/97673
+[#97674]: https://github.com/home-assistant/core/pull/97674
+[#97679]: https://github.com/home-assistant/core/pull/97679
+[#97680]: https://github.com/home-assistant/core/pull/97680
+[#97687]: https://github.com/home-assistant/core/pull/97687
+[#97699]: https://github.com/home-assistant/core/pull/97699
+[#97702]: https://github.com/home-assistant/core/pull/97702
+[#97712]: https://github.com/home-assistant/core/pull/97712
+[#97713]: https://github.com/home-assistant/core/pull/97713
+[#97715]: https://github.com/home-assistant/core/pull/97715
+[#97716]: https://github.com/home-assistant/core/pull/97716
+[#97728]: https://github.com/home-assistant/core/pull/97728
+[#97730]: https://github.com/home-assistant/core/pull/97730
+[#97731]: https://github.com/home-assistant/core/pull/97731
+[#97732]: https://github.com/home-assistant/core/pull/97732
+[#97733]: https://github.com/home-assistant/core/pull/97733
+[#97734]: https://github.com/home-assistant/core/pull/97734
+[#97737]: https://github.com/home-assistant/core/pull/97737
+[#97738]: https://github.com/home-assistant/core/pull/97738
+[#97739]: https://github.com/home-assistant/core/pull/97739
+[#97740]: https://github.com/home-assistant/core/pull/97740
+[#97747]: https://github.com/home-assistant/core/pull/97747
+[#97777]: https://github.com/home-assistant/core/pull/97777
+[#97779]: https://github.com/home-assistant/core/pull/97779
+[#97780]: https://github.com/home-assistant/core/pull/97780
+[#97784]: https://github.com/home-assistant/core/pull/97784
+[#97788]: https://github.com/home-assistant/core/pull/97788
+[#97790]: https://github.com/home-assistant/core/pull/97790
+[#97793]: https://github.com/home-assistant/core/pull/97793
+[#97799]: https://github.com/home-assistant/core/pull/97799
+[#97804]: https://github.com/home-assistant/core/pull/97804
+[#97821]: https://github.com/home-assistant/core/pull/97821
+[#97824]: https://github.com/home-assistant/core/pull/97824
+[#97825]: https://github.com/home-assistant/core/pull/97825
+[#97862]: https://github.com/home-assistant/core/pull/97862
+[#97863]: https://github.com/home-assistant/core/pull/97863
+[#97864]: https://github.com/home-assistant/core/pull/97864
+[#97866]: https://github.com/home-assistant/core/pull/97866
+[#97872]: https://github.com/home-assistant/core/pull/97872
+[#97874]: https://github.com/home-assistant/core/pull/97874
+[#97875]: https://github.com/home-assistant/core/pull/97875
+[#97876]: https://github.com/home-assistant/core/pull/97876
+[#97878]: https://github.com/home-assistant/core/pull/97878
+[#97879]: https://github.com/home-assistant/core/pull/97879
+[#97880]: https://github.com/home-assistant/core/pull/97880
+[#97881]: https://github.com/home-assistant/core/pull/97881
+[#97883]: https://github.com/home-assistant/core/pull/97883
+[#97895]: https://github.com/home-assistant/core/pull/97895
+[#97905]: https://github.com/home-assistant/core/pull/97905
+[#97909]: https://github.com/home-assistant/core/pull/97909
+[#97911]: https://github.com/home-assistant/core/pull/97911
+[#97912]: https://github.com/home-assistant/core/pull/97912
+[#97915]: https://github.com/home-assistant/core/pull/97915
+[#97916]: https://github.com/home-assistant/core/pull/97916
+[#97917]: https://github.com/home-assistant/core/pull/97917
+[#97918]: https://github.com/home-assistant/core/pull/97918
+[#97919]: https://github.com/home-assistant/core/pull/97919
+[#97920]: https://github.com/home-assistant/core/pull/97920
+[#97921]: https://github.com/home-assistant/core/pull/97921
+[#97923]: https://github.com/home-assistant/core/pull/97923
+[#97925]: https://github.com/home-assistant/core/pull/97925
+[#97926]: https://github.com/home-assistant/core/pull/97926
+[#97927]: https://github.com/home-assistant/core/pull/97927
+[#97929]: https://github.com/home-assistant/core/pull/97929
+[#97930]: https://github.com/home-assistant/core/pull/97930
+[#97931]: https://github.com/home-assistant/core/pull/97931
+[#97935]: https://github.com/home-assistant/core/pull/97935
+[#97938]: https://github.com/home-assistant/core/pull/97938
+[#97940]: https://github.com/home-assistant/core/pull/97940
+[#97942]: https://github.com/home-assistant/core/pull/97942
+[#97946]: https://github.com/home-assistant/core/pull/97946
+[#97947]: https://github.com/home-assistant/core/pull/97947
+[#97949]: https://github.com/home-assistant/core/pull/97949
+[#97950]: https://github.com/home-assistant/core/pull/97950
+[#97951]: https://github.com/home-assistant/core/pull/97951
+[#97952]: https://github.com/home-assistant/core/pull/97952
+[#97955]: https://github.com/home-assistant/core/pull/97955
+[#97956]: https://github.com/home-assistant/core/pull/97956
+[#97963]: https://github.com/home-assistant/core/pull/97963
+[#97964]: https://github.com/home-assistant/core/pull/97964
+[#97969]: https://github.com/home-assistant/core/pull/97969
+[#97974]: https://github.com/home-assistant/core/pull/97974
+[#97979]: https://github.com/home-assistant/core/pull/97979
+[#97980]: https://github.com/home-assistant/core/pull/97980
+[#97981]: https://github.com/home-assistant/core/pull/97981
+[#97983]: https://github.com/home-assistant/core/pull/97983
+[#97984]: https://github.com/home-assistant/core/pull/97984
+[#97985]: https://github.com/home-assistant/core/pull/97985
+[#97991]: https://github.com/home-assistant/core/pull/97991
+[#97993]: https://github.com/home-assistant/core/pull/97993
+[#97995]: https://github.com/home-assistant/core/pull/97995
+[#97997]: https://github.com/home-assistant/core/pull/97997
+[#97998]: https://github.com/home-assistant/core/pull/97998
+[#98000]: https://github.com/home-assistant/core/pull/98000
+[#98001]: https://github.com/home-assistant/core/pull/98001
+[#98002]: https://github.com/home-assistant/core/pull/98002
+[#98004]: https://github.com/home-assistant/core/pull/98004
+[#98012]: https://github.com/home-assistant/core/pull/98012
+[#98017]: https://github.com/home-assistant/core/pull/98017
+[#98020]: https://github.com/home-assistant/core/pull/98020
+[#98022]: https://github.com/home-assistant/core/pull/98022
+[#98023]: https://github.com/home-assistant/core/pull/98023
+[#98025]: https://github.com/home-assistant/core/pull/98025
+[#98028]: https://github.com/home-assistant/core/pull/98028
+[#98030]: https://github.com/home-assistant/core/pull/98030
+[#98034]: https://github.com/home-assistant/core/pull/98034
+[#98036]: https://github.com/home-assistant/core/pull/98036
+[#98037]: https://github.com/home-assistant/core/pull/98037
+[#98039]: https://github.com/home-assistant/core/pull/98039
+[#98042]: https://github.com/home-assistant/core/pull/98042
+[#98044]: https://github.com/home-assistant/core/pull/98044
+[#98047]: https://github.com/home-assistant/core/pull/98047
+[#98050]: https://github.com/home-assistant/core/pull/98050
+[#98051]: https://github.com/home-assistant/core/pull/98051
+[#98054]: https://github.com/home-assistant/core/pull/98054
+[#98055]: https://github.com/home-assistant/core/pull/98055
+[#98057]: https://github.com/home-assistant/core/pull/98057
+[#98058]: https://github.com/home-assistant/core/pull/98058
+[#98059]: https://github.com/home-assistant/core/pull/98059
+[#98060]: https://github.com/home-assistant/core/pull/98060
+[#98061]: https://github.com/home-assistant/core/pull/98061
+[#98062]: https://github.com/home-assistant/core/pull/98062
+[#98063]: https://github.com/home-assistant/core/pull/98063
+[#98064]: https://github.com/home-assistant/core/pull/98064
+[#98065]: https://github.com/home-assistant/core/pull/98065
+[#98067]: https://github.com/home-assistant/core/pull/98067
+[#98071]: https://github.com/home-assistant/core/pull/98071
+[#98074]: https://github.com/home-assistant/core/pull/98074
+[#98075]: https://github.com/home-assistant/core/pull/98075
+[#98077]: https://github.com/home-assistant/core/pull/98077
+[#98079]: https://github.com/home-assistant/core/pull/98079
+[#98081]: https://github.com/home-assistant/core/pull/98081
+[#98082]: https://github.com/home-assistant/core/pull/98082
+[#98086]: https://github.com/home-assistant/core/pull/98086
+[#98088]: https://github.com/home-assistant/core/pull/98088
+[#98090]: https://github.com/home-assistant/core/pull/98090
+[#98092]: https://github.com/home-assistant/core/pull/98092
+[#98097]: https://github.com/home-assistant/core/pull/98097
+[#98098]: https://github.com/home-assistant/core/pull/98098
+[#98100]: https://github.com/home-assistant/core/pull/98100
+[#98102]: https://github.com/home-assistant/core/pull/98102
+[#98103]: https://github.com/home-assistant/core/pull/98103
+[#98105]: https://github.com/home-assistant/core/pull/98105
+[#98106]: https://github.com/home-assistant/core/pull/98106
+[#98108]: https://github.com/home-assistant/core/pull/98108
+[#98109]: https://github.com/home-assistant/core/pull/98109
+[#98110]: https://github.com/home-assistant/core/pull/98110
+[#98111]: https://github.com/home-assistant/core/pull/98111
+[#98113]: https://github.com/home-assistant/core/pull/98113
+[#98117]: https://github.com/home-assistant/core/pull/98117
+[#98120]: https://github.com/home-assistant/core/pull/98120
+[#98121]: https://github.com/home-assistant/core/pull/98121
+[#98123]: https://github.com/home-assistant/core/pull/98123
+[#98126]: https://github.com/home-assistant/core/pull/98126
+[#98128]: https://github.com/home-assistant/core/pull/98128
+[#98140]: https://github.com/home-assistant/core/pull/98140
+[#98148]: https://github.com/home-assistant/core/pull/98148
+[#98149]: https://github.com/home-assistant/core/pull/98149
+[#98150]: https://github.com/home-assistant/core/pull/98150
+[#98151]: https://github.com/home-assistant/core/pull/98151
+[#98152]: https://github.com/home-assistant/core/pull/98152
+[#98153]: https://github.com/home-assistant/core/pull/98153
+[#98155]: https://github.com/home-assistant/core/pull/98155
+[#98157]: https://github.com/home-assistant/core/pull/98157
+[#98158]: https://github.com/home-assistant/core/pull/98158
+[#98159]: https://github.com/home-assistant/core/pull/98159
+[#98160]: https://github.com/home-assistant/core/pull/98160
+[#98161]: https://github.com/home-assistant/core/pull/98161
+[#98162]: https://github.com/home-assistant/core/pull/98162
+[#98165]: https://github.com/home-assistant/core/pull/98165
+[#98167]: https://github.com/home-assistant/core/pull/98167
+[#98169]: https://github.com/home-assistant/core/pull/98169
+[#98171]: https://github.com/home-assistant/core/pull/98171
+[#98172]: https://github.com/home-assistant/core/pull/98172
+[#98173]: https://github.com/home-assistant/core/pull/98173
+[#98175]: https://github.com/home-assistant/core/pull/98175
+[#98176]: https://github.com/home-assistant/core/pull/98176
+[#98177]: https://github.com/home-assistant/core/pull/98177
+[#98179]: https://github.com/home-assistant/core/pull/98179
+[#98182]: https://github.com/home-assistant/core/pull/98182
+[#98183]: https://github.com/home-assistant/core/pull/98183
+[#98184]: https://github.com/home-assistant/core/pull/98184
+[#98185]: https://github.com/home-assistant/core/pull/98185
+[#98186]: https://github.com/home-assistant/core/pull/98186
+[#98187]: https://github.com/home-assistant/core/pull/98187
+[#98188]: https://github.com/home-assistant/core/pull/98188
+[#98189]: https://github.com/home-assistant/core/pull/98189
+[#98190]: https://github.com/home-assistant/core/pull/98190
+[#98191]: https://github.com/home-assistant/core/pull/98191
+[#98192]: https://github.com/home-assistant/core/pull/98192
+[#98193]: https://github.com/home-assistant/core/pull/98193
+[#98194]: https://github.com/home-assistant/core/pull/98194
+[#98195]: https://github.com/home-assistant/core/pull/98195
+[#98196]: https://github.com/home-assistant/core/pull/98196
+[#98197]: https://github.com/home-assistant/core/pull/98197
+[#98198]: https://github.com/home-assistant/core/pull/98198
+[#98199]: https://github.com/home-assistant/core/pull/98199
+[#98200]: https://github.com/home-assistant/core/pull/98200
+[#98201]: https://github.com/home-assistant/core/pull/98201
+[#98202]: https://github.com/home-assistant/core/pull/98202
+[#98203]: https://github.com/home-assistant/core/pull/98203
+[#98204]: https://github.com/home-assistant/core/pull/98204
+[#98205]: https://github.com/home-assistant/core/pull/98205
+[#98206]: https://github.com/home-assistant/core/pull/98206
+[#98207]: https://github.com/home-assistant/core/pull/98207
+[#98208]: https://github.com/home-assistant/core/pull/98208
+[#98210]: https://github.com/home-assistant/core/pull/98210
+[#98211]: https://github.com/home-assistant/core/pull/98211
+[#98212]: https://github.com/home-assistant/core/pull/98212
+[#98213]: https://github.com/home-assistant/core/pull/98213
+[#98214]: https://github.com/home-assistant/core/pull/98214
+[#98215]: https://github.com/home-assistant/core/pull/98215
+[#98217]: https://github.com/home-assistant/core/pull/98217
+[#98223]: https://github.com/home-assistant/core/pull/98223
+[#98224]: https://github.com/home-assistant/core/pull/98224
+[#98225]: https://github.com/home-assistant/core/pull/98225
+[#98230]: https://github.com/home-assistant/core/pull/98230
+[#98232]: https://github.com/home-assistant/core/pull/98232
+[#98234]: https://github.com/home-assistant/core/pull/98234
+[#98235]: https://github.com/home-assistant/core/pull/98235
+[#98236]: https://github.com/home-assistant/core/pull/98236
+[#98238]: https://github.com/home-assistant/core/pull/98238
+[#98239]: https://github.com/home-assistant/core/pull/98239
+[#98241]: https://github.com/home-assistant/core/pull/98241
+[#98252]: https://github.com/home-assistant/core/pull/98252
+[#98254]: https://github.com/home-assistant/core/pull/98254
+[#98258]: https://github.com/home-assistant/core/pull/98258
+[#98261]: https://github.com/home-assistant/core/pull/98261
+[#98263]: https://github.com/home-assistant/core/pull/98263
+[#98265]: https://github.com/home-assistant/core/pull/98265
+[#98266]: https://github.com/home-assistant/core/pull/98266
+[#98267]: https://github.com/home-assistant/core/pull/98267
+[#98268]: https://github.com/home-assistant/core/pull/98268
+[#98269]: https://github.com/home-assistant/core/pull/98269
+[#98273]: https://github.com/home-assistant/core/pull/98273
+[#98275]: https://github.com/home-assistant/core/pull/98275
+[#98276]: https://github.com/home-assistant/core/pull/98276
+[#98277]: https://github.com/home-assistant/core/pull/98277
+[#98278]: https://github.com/home-assistant/core/pull/98278
+[#98279]: https://github.com/home-assistant/core/pull/98279
+[#98281]: https://github.com/home-assistant/core/pull/98281
+[#98282]: https://github.com/home-assistant/core/pull/98282
+[#98288]: https://github.com/home-assistant/core/pull/98288
+[#98291]: https://github.com/home-assistant/core/pull/98291
+[#98293]: https://github.com/home-assistant/core/pull/98293
+[#98297]: https://github.com/home-assistant/core/pull/98297
+[#98304]: https://github.com/home-assistant/core/pull/98304
+[#98309]: https://github.com/home-assistant/core/pull/98309
+[#98319]: https://github.com/home-assistant/core/pull/98319
+[#98320]: https://github.com/home-assistant/core/pull/98320
+[#98325]: https://github.com/home-assistant/core/pull/98325
+[#98327]: https://github.com/home-assistant/core/pull/98327
+[#98328]: https://github.com/home-assistant/core/pull/98328
+[#98331]: https://github.com/home-assistant/core/pull/98331
+[#98332]: https://github.com/home-assistant/core/pull/98332
+[#98333]: https://github.com/home-assistant/core/pull/98333
+[#98335]: https://github.com/home-assistant/core/pull/98335
+[#98336]: https://github.com/home-assistant/core/pull/98336
+[#98337]: https://github.com/home-assistant/core/pull/98337
+[#98353]: https://github.com/home-assistant/core/pull/98353
+[#98354]: https://github.com/home-assistant/core/pull/98354
+[#98355]: https://github.com/home-assistant/core/pull/98355
+[#98359]: https://github.com/home-assistant/core/pull/98359
+[#98360]: https://github.com/home-assistant/core/pull/98360
+[#98363]: https://github.com/home-assistant/core/pull/98363
+[#98366]: https://github.com/home-assistant/core/pull/98366
+[#98368]: https://github.com/home-assistant/core/pull/98368
+[#98370]: https://github.com/home-assistant/core/pull/98370
+[#98371]: https://github.com/home-assistant/core/pull/98371
+[#98372]: https://github.com/home-assistant/core/pull/98372
+[#98375]: https://github.com/home-assistant/core/pull/98375
+[#98376]: https://github.com/home-assistant/core/pull/98376
+[#98377]: https://github.com/home-assistant/core/pull/98377
+[#98378]: https://github.com/home-assistant/core/pull/98378
+[#98379]: https://github.com/home-assistant/core/pull/98379
+[#98383]: https://github.com/home-assistant/core/pull/98383
+[#98384]: https://github.com/home-assistant/core/pull/98384
+[#98385]: https://github.com/home-assistant/core/pull/98385
+[#98389]: https://github.com/home-assistant/core/pull/98389
+[#98391]: https://github.com/home-assistant/core/pull/98391
+[#98393]: https://github.com/home-assistant/core/pull/98393
+[#98394]: https://github.com/home-assistant/core/pull/98394
+[#98395]: https://github.com/home-assistant/core/pull/98395
+[#98397]: https://github.com/home-assistant/core/pull/98397
+[#98398]: https://github.com/home-assistant/core/pull/98398
+[#98399]: https://github.com/home-assistant/core/pull/98399
+[#98403]: https://github.com/home-assistant/core/pull/98403
+[#98405]: https://github.com/home-assistant/core/pull/98405
+[#98411]: https://github.com/home-assistant/core/pull/98411
+[#98412]: https://github.com/home-assistant/core/pull/98412
+[#98415]: https://github.com/home-assistant/core/pull/98415
+[#98416]: https://github.com/home-assistant/core/pull/98416
+[#98418]: https://github.com/home-assistant/core/pull/98418
+[#98420]: https://github.com/home-assistant/core/pull/98420
+[#98421]: https://github.com/home-assistant/core/pull/98421
+[#98423]: https://github.com/home-assistant/core/pull/98423
+[#98427]: https://github.com/home-assistant/core/pull/98427
+[#98429]: https://github.com/home-assistant/core/pull/98429
+[#98439]: https://github.com/home-assistant/core/pull/98439
+[#98440]: https://github.com/home-assistant/core/pull/98440
+[#98442]: https://github.com/home-assistant/core/pull/98442
+[#98443]: https://github.com/home-assistant/core/pull/98443
+[#98447]: https://github.com/home-assistant/core/pull/98447
+[#98448]: https://github.com/home-assistant/core/pull/98448
+[#98449]: https://github.com/home-assistant/core/pull/98449
+[#98450]: https://github.com/home-assistant/core/pull/98450
+[#98451]: https://github.com/home-assistant/core/pull/98451
+[#98452]: https://github.com/home-assistant/core/pull/98452
+[#98455]: https://github.com/home-assistant/core/pull/98455
+[#98458]: https://github.com/home-assistant/core/pull/98458
+[#98459]: https://github.com/home-assistant/core/pull/98459
+[#98463]: https://github.com/home-assistant/core/pull/98463
+[#98466]: https://github.com/home-assistant/core/pull/98466
+[#98467]: https://github.com/home-assistant/core/pull/98467
+[#98468]: https://github.com/home-assistant/core/pull/98468
+[#98473]: https://github.com/home-assistant/core/pull/98473
+[#98474]: https://github.com/home-assistant/core/pull/98474
+[#98476]: https://github.com/home-assistant/core/pull/98476
+[#98477]: https://github.com/home-assistant/core/pull/98477
+[#98479]: https://github.com/home-assistant/core/pull/98479
+[#98483]: https://github.com/home-assistant/core/pull/98483
+[#98485]: https://github.com/home-assistant/core/pull/98485
+[#98496]: https://github.com/home-assistant/core/pull/98496
+[#98499]: https://github.com/home-assistant/core/pull/98499
+[#98500]: https://github.com/home-assistant/core/pull/98500
+[#98502]: https://github.com/home-assistant/core/pull/98502
+[#98504]: https://github.com/home-assistant/core/pull/98504
+[#98506]: https://github.com/home-assistant/core/pull/98506
+[#98509]: https://github.com/home-assistant/core/pull/98509
+[#98510]: https://github.com/home-assistant/core/pull/98510
+[#98511]: https://github.com/home-assistant/core/pull/98511
+[#98512]: https://github.com/home-assistant/core/pull/98512
+[#98513]: https://github.com/home-assistant/core/pull/98513
+[#98514]: https://github.com/home-assistant/core/pull/98514
+[#98515]: https://github.com/home-assistant/core/pull/98515
+[#98516]: https://github.com/home-assistant/core/pull/98516
+[#98517]: https://github.com/home-assistant/core/pull/98517
+[#98525]: https://github.com/home-assistant/core/pull/98525
+[#98527]: https://github.com/home-assistant/core/pull/98527
+[#98528]: https://github.com/home-assistant/core/pull/98528
+[#98535]: https://github.com/home-assistant/core/pull/98535
+[#98536]: https://github.com/home-assistant/core/pull/98536
+[#98539]: https://github.com/home-assistant/core/pull/98539
+[#98540]: https://github.com/home-assistant/core/pull/98540
+[#98541]: https://github.com/home-assistant/core/pull/98541
+[#98542]: https://github.com/home-assistant/core/pull/98542
+[#98543]: https://github.com/home-assistant/core/pull/98543
+[#98544]: https://github.com/home-assistant/core/pull/98544
+[#98545]: https://github.com/home-assistant/core/pull/98545
+[#98546]: https://github.com/home-assistant/core/pull/98546
+[#98549]: https://github.com/home-assistant/core/pull/98549
+[#98552]: https://github.com/home-assistant/core/pull/98552
+[#98554]: https://github.com/home-assistant/core/pull/98554
+[#98555]: https://github.com/home-assistant/core/pull/98555
+[#98560]: https://github.com/home-assistant/core/pull/98560
+[#98568]: https://github.com/home-assistant/core/pull/98568
+[#98572]: https://github.com/home-assistant/core/pull/98572
+[#98573]: https://github.com/home-assistant/core/pull/98573
+[#98574]: https://github.com/home-assistant/core/pull/98574
+[#98575]: https://github.com/home-assistant/core/pull/98575
+[#98576]: https://github.com/home-assistant/core/pull/98576
+[#98577]: https://github.com/home-assistant/core/pull/98577
+[#98579]: https://github.com/home-assistant/core/pull/98579
+[#98584]: https://github.com/home-assistant/core/pull/98584
+[#98585]: https://github.com/home-assistant/core/pull/98585
+[#98587]: https://github.com/home-assistant/core/pull/98587
+[#98589]: https://github.com/home-assistant/core/pull/98589
+[#98590]: https://github.com/home-assistant/core/pull/98590
+[#98592]: https://github.com/home-assistant/core/pull/98592
+[#98593]: https://github.com/home-assistant/core/pull/98593
+[#98599]: https://github.com/home-assistant/core/pull/98599
+[#98600]: https://github.com/home-assistant/core/pull/98600
+[#98603]: https://github.com/home-assistant/core/pull/98603
+[#98609]: https://github.com/home-assistant/core/pull/98609
+[#98613]: https://github.com/home-assistant/core/pull/98613
+[#98615]: https://github.com/home-assistant/core/pull/98615
+[#98619]: https://github.com/home-assistant/core/pull/98619
+[#98620]: https://github.com/home-assistant/core/pull/98620
+[#98626]: https://github.com/home-assistant/core/pull/98626
+[#98628]: https://github.com/home-assistant/core/pull/98628
+[#98629]: https://github.com/home-assistant/core/pull/98629
+[#98630]: https://github.com/home-assistant/core/pull/98630
+[#98635]: https://github.com/home-assistant/core/pull/98635
+[#98636]: https://github.com/home-assistant/core/pull/98636
+[#98638]: https://github.com/home-assistant/core/pull/98638
+[#98639]: https://github.com/home-assistant/core/pull/98639
+[#98640]: https://github.com/home-assistant/core/pull/98640
+[#98642]: https://github.com/home-assistant/core/pull/98642
+[#98647]: https://github.com/home-assistant/core/pull/98647
+[#98648]: https://github.com/home-assistant/core/pull/98648
+[#98649]: https://github.com/home-assistant/core/pull/98649
+[#98651]: https://github.com/home-assistant/core/pull/98651
+[#98652]: https://github.com/home-assistant/core/pull/98652
+[#98656]: https://github.com/home-assistant/core/pull/98656
+[#98657]: https://github.com/home-assistant/core/pull/98657
+[#98666]: https://github.com/home-assistant/core/pull/98666
+[#98675]: https://github.com/home-assistant/core/pull/98675
+[#98682]: https://github.com/home-assistant/core/pull/98682
+[#98689]: https://github.com/home-assistant/core/pull/98689
+[#98690]: https://github.com/home-assistant/core/pull/98690
+[#98694]: https://github.com/home-assistant/core/pull/98694
+[#98695]: https://github.com/home-assistant/core/pull/98695
+[#98696]: https://github.com/home-assistant/core/pull/98696
+[#98697]: https://github.com/home-assistant/core/pull/98697
+[#98704]: https://github.com/home-assistant/core/pull/98704
+[#98705]: https://github.com/home-assistant/core/pull/98705
+[#98714]: https://github.com/home-assistant/core/pull/98714
+[#98719]: https://github.com/home-assistant/core/pull/98719
+[#98720]: https://github.com/home-assistant/core/pull/98720
+[#98721]: https://github.com/home-assistant/core/pull/98721
+[#98723]: https://github.com/home-assistant/core/pull/98723
+[#98724]: https://github.com/home-assistant/core/pull/98724
+[#98725]: https://github.com/home-assistant/core/pull/98725
+[#98726]: https://github.com/home-assistant/core/pull/98726
+[#98727]: https://github.com/home-assistant/core/pull/98727
+[#98728]: https://github.com/home-assistant/core/pull/98728
+[#98730]: https://github.com/home-assistant/core/pull/98730
+[#98731]: https://github.com/home-assistant/core/pull/98731
+[#98732]: https://github.com/home-assistant/core/pull/98732
+[#98734]: https://github.com/home-assistant/core/pull/98734
+[#98737]: https://github.com/home-assistant/core/pull/98737
+[#98741]: https://github.com/home-assistant/core/pull/98741
+[#98744]: https://github.com/home-assistant/core/pull/98744
+[#98747]: https://github.com/home-assistant/core/pull/98747
+[#98748]: https://github.com/home-assistant/core/pull/98748
+[#98750]: https://github.com/home-assistant/core/pull/98750
+[#98751]: https://github.com/home-assistant/core/pull/98751
+[#98754]: https://github.com/home-assistant/core/pull/98754
+[#98755]: https://github.com/home-assistant/core/pull/98755
+[#98758]: https://github.com/home-assistant/core/pull/98758
+[#98759]: https://github.com/home-assistant/core/pull/98759
+[#98760]: https://github.com/home-assistant/core/pull/98760
+[#98761]: https://github.com/home-assistant/core/pull/98761
+[#98764]: https://github.com/home-assistant/core/pull/98764
+[#98765]: https://github.com/home-assistant/core/pull/98765
+[#98766]: https://github.com/home-assistant/core/pull/98766
+[#98771]: https://github.com/home-assistant/core/pull/98771
+[#98772]: https://github.com/home-assistant/core/pull/98772
+[#98773]: https://github.com/home-assistant/core/pull/98773
+[#98774]: https://github.com/home-assistant/core/pull/98774
+[#98775]: https://github.com/home-assistant/core/pull/98775
+[#98776]: https://github.com/home-assistant/core/pull/98776
+[#98777]: https://github.com/home-assistant/core/pull/98777
+[#98778]: https://github.com/home-assistant/core/pull/98778
+[#98779]: https://github.com/home-assistant/core/pull/98779
+[#98780]: https://github.com/home-assistant/core/pull/98780
+[#98782]: https://github.com/home-assistant/core/pull/98782
+[#98783]: https://github.com/home-assistant/core/pull/98783
+[#98784]: https://github.com/home-assistant/core/pull/98784
+[#98787]: https://github.com/home-assistant/core/pull/98787
+[#98791]: https://github.com/home-assistant/core/pull/98791
+[#98792]: https://github.com/home-assistant/core/pull/98792
+[#98795]: https://github.com/home-assistant/core/pull/98795
+[#98796]: https://github.com/home-assistant/core/pull/98796
+[#98797]: https://github.com/home-assistant/core/pull/98797
+[#98798]: https://github.com/home-assistant/core/pull/98798
+[#98799]: https://github.com/home-assistant/core/pull/98799
+[#98803]: https://github.com/home-assistant/core/pull/98803
+[#98805]: https://github.com/home-assistant/core/pull/98805
+[#98806]: https://github.com/home-assistant/core/pull/98806
+[#98807]: https://github.com/home-assistant/core/pull/98807
+[#98810]: https://github.com/home-assistant/core/pull/98810
+[#98812]: https://github.com/home-assistant/core/pull/98812
+[#98813]: https://github.com/home-assistant/core/pull/98813
+[#98814]: https://github.com/home-assistant/core/pull/98814
+[#98815]: https://github.com/home-assistant/core/pull/98815
+[#98821]: https://github.com/home-assistant/core/pull/98821
+[#98824]: https://github.com/home-assistant/core/pull/98824
+[#98826]: https://github.com/home-assistant/core/pull/98826
+[#98827]: https://github.com/home-assistant/core/pull/98827
+[#98828]: https://github.com/home-assistant/core/pull/98828
+[#98829]: https://github.com/home-assistant/core/pull/98829
+[#98830]: https://github.com/home-assistant/core/pull/98830
+[#98831]: https://github.com/home-assistant/core/pull/98831
+[#98834]: https://github.com/home-assistant/core/pull/98834
+[#98835]: https://github.com/home-assistant/core/pull/98835
+[#98836]: https://github.com/home-assistant/core/pull/98836
+[#98838]: https://github.com/home-assistant/core/pull/98838
+[#98839]: https://github.com/home-assistant/core/pull/98839
+[#98840]: https://github.com/home-assistant/core/pull/98840
+[#98843]: https://github.com/home-assistant/core/pull/98843
+[#98844]: https://github.com/home-assistant/core/pull/98844
+[#98845]: https://github.com/home-assistant/core/pull/98845
+[#98847]: https://github.com/home-assistant/core/pull/98847
+[#98857]: https://github.com/home-assistant/core/pull/98857
+[#98863]: https://github.com/home-assistant/core/pull/98863
+[#98864]: https://github.com/home-assistant/core/pull/98864
+[#98865]: https://github.com/home-assistant/core/pull/98865
+[#98870]: https://github.com/home-assistant/core/pull/98870
+[#98871]: https://github.com/home-assistant/core/pull/98871
+[#98872]: https://github.com/home-assistant/core/pull/98872
+[#98873]: https://github.com/home-assistant/core/pull/98873
+[#98874]: https://github.com/home-assistant/core/pull/98874
+[#98877]: https://github.com/home-assistant/core/pull/98877
+[#98880]: https://github.com/home-assistant/core/pull/98880
+[#98881]: https://github.com/home-assistant/core/pull/98881
+[#98882]: https://github.com/home-assistant/core/pull/98882
+[#98883]: https://github.com/home-assistant/core/pull/98883
+[#98884]: https://github.com/home-assistant/core/pull/98884
+[#98886]: https://github.com/home-assistant/core/pull/98886
+[#98888]: https://github.com/home-assistant/core/pull/98888
+[#98893]: https://github.com/home-assistant/core/pull/98893
+[#98894]: https://github.com/home-assistant/core/pull/98894
+[#98898]: https://github.com/home-assistant/core/pull/98898
+[#98899]: https://github.com/home-assistant/core/pull/98899
+[#98901]: https://github.com/home-assistant/core/pull/98901
+[#98902]: https://github.com/home-assistant/core/pull/98902
+[#98903]: https://github.com/home-assistant/core/pull/98903
+[#98904]: https://github.com/home-assistant/core/pull/98904
+[#98905]: https://github.com/home-assistant/core/pull/98905
+[#98906]: https://github.com/home-assistant/core/pull/98906
+[#98907]: https://github.com/home-assistant/core/pull/98907
+[#98908]: https://github.com/home-assistant/core/pull/98908
+[#98909]: https://github.com/home-assistant/core/pull/98909
+[#98910]: https://github.com/home-assistant/core/pull/98910
+[#98911]: https://github.com/home-assistant/core/pull/98911
+[#98912]: https://github.com/home-assistant/core/pull/98912
+[#98913]: https://github.com/home-assistant/core/pull/98913
+[#98914]: https://github.com/home-assistant/core/pull/98914
+[#98915]: https://github.com/home-assistant/core/pull/98915
+[#98916]: https://github.com/home-assistant/core/pull/98916
+[#98917]: https://github.com/home-assistant/core/pull/98917
+[#98918]: https://github.com/home-assistant/core/pull/98918
+[#98919]: https://github.com/home-assistant/core/pull/98919
+[#98921]: https://github.com/home-assistant/core/pull/98921
+[#98923]: https://github.com/home-assistant/core/pull/98923
+[#98924]: https://github.com/home-assistant/core/pull/98924
+[#98925]: https://github.com/home-assistant/core/pull/98925
+[#98927]: https://github.com/home-assistant/core/pull/98927
+[#98928]: https://github.com/home-assistant/core/pull/98928
+[#98932]: https://github.com/home-assistant/core/pull/98932
+[#98935]: https://github.com/home-assistant/core/pull/98935
+[#98937]: https://github.com/home-assistant/core/pull/98937
+[#98938]: https://github.com/home-assistant/core/pull/98938
+[#98940]: https://github.com/home-assistant/core/pull/98940
+[#98941]: https://github.com/home-assistant/core/pull/98941
+[#98945]: https://github.com/home-assistant/core/pull/98945
+[#98947]: https://github.com/home-assistant/core/pull/98947
+[#98948]: https://github.com/home-assistant/core/pull/98948
+[#98950]: https://github.com/home-assistant/core/pull/98950
+[#98951]: https://github.com/home-assistant/core/pull/98951
+[#98952]: https://github.com/home-assistant/core/pull/98952
+[#98953]: https://github.com/home-assistant/core/pull/98953
+[#98956]: https://github.com/home-assistant/core/pull/98956
+[#98957]: https://github.com/home-assistant/core/pull/98957
+[#98958]: https://github.com/home-assistant/core/pull/98958
+[#98959]: https://github.com/home-assistant/core/pull/98959
+[#98961]: https://github.com/home-assistant/core/pull/98961
+[#98962]: https://github.com/home-assistant/core/pull/98962
+[#98963]: https://github.com/home-assistant/core/pull/98963
+[#98964]: https://github.com/home-assistant/core/pull/98964
+[#98965]: https://github.com/home-assistant/core/pull/98965
+[#98970]: https://github.com/home-assistant/core/pull/98970
+[#98971]: https://github.com/home-assistant/core/pull/98971
+[#98972]: https://github.com/home-assistant/core/pull/98972
+[#98973]: https://github.com/home-assistant/core/pull/98973
+[#98976]: https://github.com/home-assistant/core/pull/98976
+[#98978]: https://github.com/home-assistant/core/pull/98978
+[#98981]: https://github.com/home-assistant/core/pull/98981
+[#98982]: https://github.com/home-assistant/core/pull/98982
+[#98983]: https://github.com/home-assistant/core/pull/98983
+[#98984]: https://github.com/home-assistant/core/pull/98984
+[#98989]: https://github.com/home-assistant/core/pull/98989
+[#98991]: https://github.com/home-assistant/core/pull/98991
+[#98995]: https://github.com/home-assistant/core/pull/98995
+[#98997]: https://github.com/home-assistant/core/pull/98997
+[#98998]: https://github.com/home-assistant/core/pull/98998
+[#99001]: https://github.com/home-assistant/core/pull/99001
+[#99002]: https://github.com/home-assistant/core/pull/99002
+[#99003]: https://github.com/home-assistant/core/pull/99003
+[#99004]: https://github.com/home-assistant/core/pull/99004
+[#99008]: https://github.com/home-assistant/core/pull/99008
+[#99010]: https://github.com/home-assistant/core/pull/99010
+[#99012]: https://github.com/home-assistant/core/pull/99012
+[#99013]: https://github.com/home-assistant/core/pull/99013
+[#99014]: https://github.com/home-assistant/core/pull/99014
+[#99015]: https://github.com/home-assistant/core/pull/99015
+[#99016]: https://github.com/home-assistant/core/pull/99016
+[#99018]: https://github.com/home-assistant/core/pull/99018
+[#99019]: https://github.com/home-assistant/core/pull/99019
+[#99022]: https://github.com/home-assistant/core/pull/99022
+[#99023]: https://github.com/home-assistant/core/pull/99023
+[#99025]: https://github.com/home-assistant/core/pull/99025
+[#99027]: https://github.com/home-assistant/core/pull/99027
+[#99028]: https://github.com/home-assistant/core/pull/99028
+[#99029]: https://github.com/home-assistant/core/pull/99029
+[#99030]: https://github.com/home-assistant/core/pull/99030
+[#99031]: https://github.com/home-assistant/core/pull/99031
+[#99032]: https://github.com/home-assistant/core/pull/99032
+[#99033]: https://github.com/home-assistant/core/pull/99033
+[#99034]: https://github.com/home-assistant/core/pull/99034
+[#99035]: https://github.com/home-assistant/core/pull/99035
+[#99036]: https://github.com/home-assistant/core/pull/99036
+[#99037]: https://github.com/home-assistant/core/pull/99037
+[#99038]: https://github.com/home-assistant/core/pull/99038
+[#99039]: https://github.com/home-assistant/core/pull/99039
+[#99040]: https://github.com/home-assistant/core/pull/99040
+[#99041]: https://github.com/home-assistant/core/pull/99041
+[#99042]: https://github.com/home-assistant/core/pull/99042
+[#99043]: https://github.com/home-assistant/core/pull/99043
+[#99044]: https://github.com/home-assistant/core/pull/99044
+[#99045]: https://github.com/home-assistant/core/pull/99045
+[#99046]: https://github.com/home-assistant/core/pull/99046
+[#99047]: https://github.com/home-assistant/core/pull/99047
+[#99048]: https://github.com/home-assistant/core/pull/99048
+[#99049]: https://github.com/home-assistant/core/pull/99049
+[#99052]: https://github.com/home-assistant/core/pull/99052
+[#99057]: https://github.com/home-assistant/core/pull/99057
+[#99058]: https://github.com/home-assistant/core/pull/99058
+[#99059]: https://github.com/home-assistant/core/pull/99059
+[#99066]: https://github.com/home-assistant/core/pull/99066
+[#99067]: https://github.com/home-assistant/core/pull/99067
+[#99071]: https://github.com/home-assistant/core/pull/99071
+[#99077]: https://github.com/home-assistant/core/pull/99077
+[#99079]: https://github.com/home-assistant/core/pull/99079
+[#99080]: https://github.com/home-assistant/core/pull/99080
+[#99081]: https://github.com/home-assistant/core/pull/99081
+[#99084]: https://github.com/home-assistant/core/pull/99084
+[#99085]: https://github.com/home-assistant/core/pull/99085
+[#99086]: https://github.com/home-assistant/core/pull/99086
+[#99089]: https://github.com/home-assistant/core/pull/99089
+[#99091]: https://github.com/home-assistant/core/pull/99091
+[#99093]: https://github.com/home-assistant/core/pull/99093
+[#99103]: https://github.com/home-assistant/core/pull/99103
+[#99108]: https://github.com/home-assistant/core/pull/99108
+[#99110]: https://github.com/home-assistant/core/pull/99110
+[#99114]: https://github.com/home-assistant/core/pull/99114
+[#99115]: https://github.com/home-assistant/core/pull/99115
+[#99117]: https://github.com/home-assistant/core/pull/99117
+[#99123]: https://github.com/home-assistant/core/pull/99123
+[#99129]: https://github.com/home-assistant/core/pull/99129
+[#99130]: https://github.com/home-assistant/core/pull/99130
+[#99131]: https://github.com/home-assistant/core/pull/99131
+[#99132]: https://github.com/home-assistant/core/pull/99132
+[#99133]: https://github.com/home-assistant/core/pull/99133
+[#99134]: https://github.com/home-assistant/core/pull/99134
+[#99135]: https://github.com/home-assistant/core/pull/99135
+[#99136]: https://github.com/home-assistant/core/pull/99136
+[#99138]: https://github.com/home-assistant/core/pull/99138
+[#99139]: https://github.com/home-assistant/core/pull/99139
+[#99140]: https://github.com/home-assistant/core/pull/99140
+[#99141]: https://github.com/home-assistant/core/pull/99141
+[#99142]: https://github.com/home-assistant/core/pull/99142
+[#99144]: https://github.com/home-assistant/core/pull/99144
+[#99145]: https://github.com/home-assistant/core/pull/99145
+[#99146]: https://github.com/home-assistant/core/pull/99146
+[#99147]: https://github.com/home-assistant/core/pull/99147
+[#99149]: https://github.com/home-assistant/core/pull/99149
+[#99150]: https://github.com/home-assistant/core/pull/99150
+[#99151]: https://github.com/home-assistant/core/pull/99151
+[#99153]: https://github.com/home-assistant/core/pull/99153
+[#99155]: https://github.com/home-assistant/core/pull/99155
+[#99156]: https://github.com/home-assistant/core/pull/99156
+[#99157]: https://github.com/home-assistant/core/pull/99157
+[#99161]: https://github.com/home-assistant/core/pull/99161
+[#99165]: https://github.com/home-assistant/core/pull/99165
+[#99167]: https://github.com/home-assistant/core/pull/99167
+[#99168]: https://github.com/home-assistant/core/pull/99168
+[#99172]: https://github.com/home-assistant/core/pull/99172
+[#99177]: https://github.com/home-assistant/core/pull/99177
+[#99183]: https://github.com/home-assistant/core/pull/99183
+[#99188]: https://github.com/home-assistant/core/pull/99188
+[#99189]: https://github.com/home-assistant/core/pull/99189
+[#99190]: https://github.com/home-assistant/core/pull/99190
+[#99195]: https://github.com/home-assistant/core/pull/99195
+[#99196]: https://github.com/home-assistant/core/pull/99196
+[#99197]: https://github.com/home-assistant/core/pull/99197
+[#99198]: https://github.com/home-assistant/core/pull/99198
+[#99200]: https://github.com/home-assistant/core/pull/99200
+[#99202]: https://github.com/home-assistant/core/pull/99202
+[#99203]: https://github.com/home-assistant/core/pull/99203
+[#99204]: https://github.com/home-assistant/core/pull/99204
+[#99205]: https://github.com/home-assistant/core/pull/99205
+[#99207]: https://github.com/home-assistant/core/pull/99207
+[#99210]: https://github.com/home-assistant/core/pull/99210
+[#99211]: https://github.com/home-assistant/core/pull/99211
+[#99213]: https://github.com/home-assistant/core/pull/99213
+[#99214]: https://github.com/home-assistant/core/pull/99214
+[#99215]: https://github.com/home-assistant/core/pull/99215
+[#99216]: https://github.com/home-assistant/core/pull/99216
+[#99217]: https://github.com/home-assistant/core/pull/99217
+[#99219]: https://github.com/home-assistant/core/pull/99219
+[#99220]: https://github.com/home-assistant/core/pull/99220
+[#99222]: https://github.com/home-assistant/core/pull/99222
+[#99223]: https://github.com/home-assistant/core/pull/99223
+[#99224]: https://github.com/home-assistant/core/pull/99224
+[#99225]: https://github.com/home-assistant/core/pull/99225
+[#99226]: https://github.com/home-assistant/core/pull/99226
+[#99227]: https://github.com/home-assistant/core/pull/99227
+[#99230]: https://github.com/home-assistant/core/pull/99230
+[#99232]: https://github.com/home-assistant/core/pull/99232
+[#99237]: https://github.com/home-assistant/core/pull/99237
+[#99238]: https://github.com/home-assistant/core/pull/99238
+[#99239]: https://github.com/home-assistant/core/pull/99239
+[#99241]: https://github.com/home-assistant/core/pull/99241
+[#99248]: https://github.com/home-assistant/core/pull/99248
+[#99250]: https://github.com/home-assistant/core/pull/99250
+[#99252]: https://github.com/home-assistant/core/pull/99252
+[#99253]: https://github.com/home-assistant/core/pull/99253
+[#99254]: https://github.com/home-assistant/core/pull/99254
+[#99259]: https://github.com/home-assistant/core/pull/99259
+[#99260]: https://github.com/home-assistant/core/pull/99260
+[#99261]: https://github.com/home-assistant/core/pull/99261
+[#99263]: https://github.com/home-assistant/core/pull/99263
+[#99268]: https://github.com/home-assistant/core/pull/99268
+[#99269]: https://github.com/home-assistant/core/pull/99269
+[#99270]: https://github.com/home-assistant/core/pull/99270
+[#99273]: https://github.com/home-assistant/core/pull/99273
+[#99275]: https://github.com/home-assistant/core/pull/99275
+[#99276]: https://github.com/home-assistant/core/pull/99276
+[#99277]: https://github.com/home-assistant/core/pull/99277
+[#99278]: https://github.com/home-assistant/core/pull/99278
+[#99280]: https://github.com/home-assistant/core/pull/99280
+[#99281]: https://github.com/home-assistant/core/pull/99281
+[#99282]: https://github.com/home-assistant/core/pull/99282
+[#99283]: https://github.com/home-assistant/core/pull/99283
+[#99286]: https://github.com/home-assistant/core/pull/99286
+[#99288]: https://github.com/home-assistant/core/pull/99288
+[#99289]: https://github.com/home-assistant/core/pull/99289
+[#99296]: https://github.com/home-assistant/core/pull/99296
+[#99297]: https://github.com/home-assistant/core/pull/99297
+[#99300]: https://github.com/home-assistant/core/pull/99300
+[#99312]: https://github.com/home-assistant/core/pull/99312
+[#99314]: https://github.com/home-assistant/core/pull/99314
+[#99316]: https://github.com/home-assistant/core/pull/99316
+[#99317]: https://github.com/home-assistant/core/pull/99317
+[#99318]: https://github.com/home-assistant/core/pull/99318
+[#99319]: https://github.com/home-assistant/core/pull/99319
+[#99322]: https://github.com/home-assistant/core/pull/99322
+[#99323]: https://github.com/home-assistant/core/pull/99323
+[#99327]: https://github.com/home-assistant/core/pull/99327
+[#99328]: https://github.com/home-assistant/core/pull/99328
+[#99331]: https://github.com/home-assistant/core/pull/99331
+[#99332]: https://github.com/home-assistant/core/pull/99332
+[#99334]: https://github.com/home-assistant/core/pull/99334
+[#99336]: https://github.com/home-assistant/core/pull/99336
+[#99337]: https://github.com/home-assistant/core/pull/99337
+[#99339]: https://github.com/home-assistant/core/pull/99339
+[#99340]: https://github.com/home-assistant/core/pull/99340
+[#99341]: https://github.com/home-assistant/core/pull/99341
+[#99347]: https://github.com/home-assistant/core/pull/99347
+[#99368]: https://github.com/home-assistant/core/pull/99368
+[#99373]: https://github.com/home-assistant/core/pull/99373
+[#99374]: https://github.com/home-assistant/core/pull/99374
+[#99376]: https://github.com/home-assistant/core/pull/99376
+[#99377]: https://github.com/home-assistant/core/pull/99377
+[#99379]: https://github.com/home-assistant/core/pull/99379
+[#99381]: https://github.com/home-assistant/core/pull/99381
+[#99391]: https://github.com/home-assistant/core/pull/99391
+[#99394]: https://github.com/home-assistant/core/pull/99394
+[#99399]: https://github.com/home-assistant/core/pull/99399
+[#99403]: https://github.com/home-assistant/core/pull/99403
+[#99405]: https://github.com/home-assistant/core/pull/99405
+[#99410]: https://github.com/home-assistant/core/pull/99410
+[#99414]: https://github.com/home-assistant/core/pull/99414
+[#99418]: https://github.com/home-assistant/core/pull/99418
+[#99425]: https://github.com/home-assistant/core/pull/99425
+[#99429]: https://github.com/home-assistant/core/pull/99429
+[#99431]: https://github.com/home-assistant/core/pull/99431
+[#99445]: https://github.com/home-assistant/core/pull/99445
+[#99452]: https://github.com/home-assistant/core/pull/99452
+[#99455]: https://github.com/home-assistant/core/pull/99455
+[#99456]: https://github.com/home-assistant/core/pull/99456
+[#99461]: https://github.com/home-assistant/core/pull/99461
+[#99463]: https://github.com/home-assistant/core/pull/99463
+[#99464]: https://github.com/home-assistant/core/pull/99464
+[#99477]: https://github.com/home-assistant/core/pull/99477
+[#99485]: https://github.com/home-assistant/core/pull/99485
+[#99490]: https://github.com/home-assistant/core/pull/99490
+[#99509]: https://github.com/home-assistant/core/pull/99509
+[#99514]: https://github.com/home-assistant/core/pull/99514
+[#99520]: https://github.com/home-assistant/core/pull/99520
+[#99530]: https://github.com/home-assistant/core/pull/99530
+[#99533]: https://github.com/home-assistant/core/pull/99533
+[#99540]: https://github.com/home-assistant/core/pull/99540
+[#99541]: https://github.com/home-assistant/core/pull/99541
+[#99547]: https://github.com/home-assistant/core/pull/99547
+[#99548]: https://github.com/home-assistant/core/pull/99548
+[#99561]: https://github.com/home-assistant/core/pull/99561
+[#99562]: https://github.com/home-assistant/core/pull/99562
+[#99571]: https://github.com/home-assistant/core/pull/99571
+[#99572]: https://github.com/home-assistant/core/pull/99572
+[#99574]: https://github.com/home-assistant/core/pull/99574
+[#99604]: https://github.com/home-assistant/core/pull/99604
+[#99613]: https://github.com/home-assistant/core/pull/99613
+[#99636]: https://github.com/home-assistant/core/pull/99636
+[#99640]: https://github.com/home-assistant/core/pull/99640
+[#99641]: https://github.com/home-assistant/core/pull/99641
+[#99644]: https://github.com/home-assistant/core/pull/99644
+[#99645]: https://github.com/home-assistant/core/pull/99645
+[#99647]: https://github.com/home-assistant/core/pull/99647
+[#99652]: https://github.com/home-assistant/core/pull/99652
+[#99669]: https://github.com/home-assistant/core/pull/99669
+[#99677]: https://github.com/home-assistant/core/pull/99677
+[#99679]: https://github.com/home-assistant/core/pull/99679
+[#99680]: https://github.com/home-assistant/core/pull/99680
+[#99685]: https://github.com/home-assistant/core/pull/99685
+[#99686]: https://github.com/home-assistant/core/pull/99686
+[#99698]: https://github.com/home-assistant/core/pull/99698
+[#99708]: https://github.com/home-assistant/core/pull/99708
+[#99714]: https://github.com/home-assistant/core/pull/99714
+[#99715]: https://github.com/home-assistant/core/pull/99715
+[#99716]: https://github.com/home-assistant/core/pull/99716
+[#99720]: https://github.com/home-assistant/core/pull/99720
+[#99722]: https://github.com/home-assistant/core/pull/99722
+[#99723]: https://github.com/home-assistant/core/pull/99723
+[#99733]: https://github.com/home-assistant/core/pull/99733
+[@AustinBrunkhorst]: https://github.com/AustinBrunkhorst
+[@Bre77]: https://github.com/Bre77
+[@Cereal2nd]: https://github.com/Cereal2nd
+[@Cisien]: https://github.com/Cisien
+[@CoMPaTech]: https://github.com/CoMPaTech
+[@Danielhiversen]: https://github.com/Danielhiversen
+[@DeerMaximum]: https://github.com/DeerMaximum
+[@Ernst79]: https://github.com/Ernst79
+[@G-Two]: https://github.com/G-Two
+[@GrumpyMeow]: https://github.com/GrumpyMeow
+[@JasonCook599]: https://github.com/JasonCook599
+[@Jc2k]: https://github.com/Jc2k
+[@Kane610]: https://github.com/Kane610
+[@LaStrada]: https://github.com/LaStrada
+[@Lash-L]: https://github.com/Lash-L
+[@MartinHjelmare]: https://github.com/MartinHjelmare
+[@Michal4K]: https://github.com/Michal4K
+[@Mr-Ker]: https://github.com/Mr-Ker
+[@Noltari]: https://github.com/Noltari
+[@Ongion]: https://github.com/Ongion
+[@Quentame]: https://github.com/Quentame
+[@RenierM26]: https://github.com/RenierM26
+[@RoboMagus]: https://github.com/RoboMagus
+[@Sebmaster]: https://github.com/Sebmaster
+[@Shutgun]: https://github.com/Shutgun
+[@StephanU]: https://github.com/StephanU
+[@StevenLooman]: https://github.com/StevenLooman
+[@String-656]: https://github.com/String-656
+[@abmantis]: https://github.com/abmantis
+[@agners]: https://github.com/agners
+[@albertogeniola]: https://github.com/albertogeniola
+[@allenporter]: https://github.com/allenporter
+[@andresb5555]: https://github.com/andresb5555
+[@apbarratt]: https://github.com/apbarratt
+[@arkid15r]: https://github.com/arkid15r
+[@asymworks]: https://github.com/asymworks
+[@bachya]: https://github.com/bachya
+[@baflo]: https://github.com/baflo
+[@balloob]: https://github.com/balloob
+[@bazwilliams]: https://github.com/bazwilliams
+[@bdraco]: https://github.com/bdraco
+[@bieniu]: https://github.com/bieniu
+[@boswelja]: https://github.com/boswelja
+[@bouwew]: https://github.com/bouwew
+[@bramkragten]: https://github.com/bramkragten
+[@brunoenten]: https://github.com/brunoenten
+[@cdce8p]: https://github.com/cdce8p
+[@cgarwood]: https://github.com/cgarwood
+[@chemelli74]: https://github.com/chemelli74
+[@ctalkington]: https://github.com/ctalkington
+[@dalinicus]: https://github.com/dalinicus
+[@dgomes]: https://github.com/dgomes
+[@dirrgang]: https://github.com/dirrgang
+[@dknowles2]: https://github.com/dknowles2
+[@dougiteixeira]: https://github.com/dougiteixeira
+[@edenhaus]: https://github.com/edenhaus
+[@eifinger]: https://github.com/eifinger
+[@elmurato]: https://github.com/elmurato
+[@elupus]: https://github.com/elupus
+[@emmaguy]: https://github.com/emmaguy
+[@emontnemery]: https://github.com/emontnemery
+[@engrbm87]: https://github.com/engrbm87
+[@epenet]: https://github.com/epenet
+[@erwindouna]: https://github.com/erwindouna
+[@escoand]: https://github.com/escoand
+[@esev]: https://github.com/esev
+[@farmio]: https://github.com/farmio
+[@freedreamer82]: https://github.com/freedreamer82
+[@frenck]: https://github.com/frenck
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[@gtjadsonsantos]: https://github.com/gtjadsonsantos
+[@h3l1o5]: https://github.com/h3l1o5
+[@hahn-th]: https://github.com/hahn-th
+[@hesselonline]: https://github.com/hesselonline
+[@iMicknl]: https://github.com/iMicknl
+[@itpeters]: https://github.com/itpeters
+[@jakecolman]: https://github.com/jakecolman
+[@janiversen]: https://github.com/janiversen
+[@janmolemans]: https://github.com/janmolemans
+[@jbouwh]: https://github.com/jbouwh
+[@jesserockz]: https://github.com/jesserockz
+[@jfroy]: https://github.com/jfroy
+[@jimmyd-be]: https://github.com/jimmyd-be
+[@joanwa]: https://github.com/joanwa
+[@joostlek]: https://github.com/joostlek
+[@jpbede]: https://github.com/jpbede
+[@jschlyter]: https://github.com/jschlyter
+[@kbickar]: https://github.com/kbickar
+[@kel30a]: https://github.com/kel30a
+[@killer0071234]: https://github.com/killer0071234
+[@klaasnicolaas]: https://github.com/klaasnicolaas
+[@lanrat]: https://github.com/lanrat
+[@liangjia2019]: https://github.com/liangjia2019
+[@lindhe]: https://github.com/lindhe
+[@liudger]: https://github.com/liudger
+[@ludeeus]: https://github.com/ludeeus
+[@lymanepp]: https://github.com/lymanepp
+[@marcheologo]: https://github.com/marcheologo
+[@maxcanna]: https://github.com/maxcanna
+[@mbo18]: https://github.com/mbo18
+[@mdegat01]: https://github.com/mdegat01
+[@mercenaruss]: https://github.com/mercenaruss
+[@mheath]: https://github.com/mheath
+[@mib1185]: https://github.com/mib1185
+[@mikeodr]: https://github.com/mikeodr
+[@mikewoudenberg]: https://github.com/mikewoudenberg
+[@mikey0000]: https://github.com/mikey0000
+[@mkmer]: https://github.com/mkmer
+[@natekspencer]: https://github.com/natekspencer
+[@niro1987]: https://github.com/niro1987
+[@oandrew]: https://github.com/oandrew
+[@ollo69]: https://github.com/ollo69
+[@oyvindwe]: https://github.com/oyvindwe
+[@paravoid]: https://github.com/paravoid
+[@piitaya]: https://github.com/piitaya
+[@pnbruckner]: https://github.com/pnbruckner
+[@puddly]: https://github.com/puddly
+[@raman325]: https://github.com/raman325
+[@ratsept]: https://github.com/ratsept
+[@rcloran]: https://github.com/rcloran
+[@rct]: https://github.com/rct
+[@reedy]: https://github.com/reedy
+[@rikroe]: https://github.com/rikroe
+[@riokuu]: https://github.com/riokuu
+[@scop]: https://github.com/scop
+[@slovdahl]: https://github.com/slovdahl
+[@starkillerOG]: https://github.com/starkillerOG
+[@synesthesiam]: https://github.com/synesthesiam
+[@thecode]: https://github.com/thecode
+[@timmo001]: https://github.com/timmo001
+[@tronikos]: https://github.com/tronikos
+[@uvjustin]: https://github.com/uvjustin
+[@wlcrs]: https://github.com/wlcrs
+[abode docs]: https://www.home-assistant.io/integrations/abode/
+[accuweather docs]: https://www.home-assistant.io/integrations/accuweather/
+[acmeda docs]: https://www.home-assistant.io/integrations/acmeda/
+[adax docs]: https://www.home-assistant.io/integrations/adax/
+[adguard docs]: https://www.home-assistant.io/integrations/adguard/
+[ads docs]: https://www.home-assistant.io/integrations/ads/
+[aemet docs]: https://www.home-assistant.io/integrations/aemet/
+[airly docs]: https://www.home-assistant.io/integrations/airly/
+[airnow docs]: https://www.home-assistant.io/integrations/airnow/
+[airthings_ble docs]: https://www.home-assistant.io/integrations/airthings_ble/
+[airtouch4 docs]: https://www.home-assistant.io/integrations/airtouch4/
+[airvisual docs]: https://www.home-assistant.io/integrations/airvisual/
+[airvisual_pro docs]: https://www.home-assistant.io/integrations/airvisual_pro/
+[airzone docs]: https://www.home-assistant.io/integrations/airzone/
+[airzone_cloud docs]: https://www.home-assistant.io/integrations/airzone_cloud/
+[alarmdecoder docs]: https://www.home-assistant.io/integrations/alarmdecoder/
+[alexa docs]: https://www.home-assistant.io/integrations/alexa/
+[amazon_polly docs]: https://www.home-assistant.io/integrations/amazon_polly/
+[ambient_station docs]: https://www.home-assistant.io/integrations/ambient_station/
+[androidtv_remote docs]: https://www.home-assistant.io/integrations/androidtv_remote/
+[anova docs]: https://www.home-assistant.io/integrations/anova/
+[anthemav docs]: https://www.home-assistant.io/integrations/anthemav/
+[api docs]: https://www.home-assistant.io/integrations/api/
+[arcam_fmj docs]: https://www.home-assistant.io/integrations/arcam_fmj/
+[aseko_pool_live docs]: https://www.home-assistant.io/integrations/aseko_pool_live/
+[assist_pipeline docs]: https://www.home-assistant.io/integrations/assist_pipeline/
+[asuswrt docs]: https://www.home-assistant.io/integrations/asuswrt/
+[august docs]: https://www.home-assistant.io/integrations/august/
+[aurora docs]: https://www.home-assistant.io/integrations/aurora/
+[aussie_broadband docs]: https://www.home-assistant.io/integrations/aussie_broadband/
+[auth docs]: https://www.home-assistant.io/integrations/auth/
+[automation docs]: https://www.home-assistant.io/integrations/automation/
+[aws docs]: https://www.home-assistant.io/integrations/aws/
+[axis docs]: https://www.home-assistant.io/integrations/axis/
+[baf docs]: https://www.home-assistant.io/integrations/baf/
+[balboa docs]: https://www.home-assistant.io/integrations/balboa/
+[blebox docs]: https://www.home-assistant.io/integrations/blebox/
+[blink docs]: https://www.home-assistant.io/integrations/blink/
+[bluetooth docs]: https://www.home-assistant.io/integrations/bluetooth/
+[bmw_connected_drive docs]: https://www.home-assistant.io/integrations/bmw_connected_drive/
+[bond docs]: https://www.home-assistant.io/integrations/bond/
+[bosch_shc docs]: https://www.home-assistant.io/integrations/bosch_shc/
+[brother docs]: https://www.home-assistant.io/integrations/brother/
+[bsblan docs]: https://www.home-assistant.io/integrations/bsblan/
+[bthome docs]: https://www.home-assistant.io/integrations/bthome/
+[buienradar docs]: https://www.home-assistant.io/integrations/buienradar/
+[caldav docs]: https://www.home-assistant.io/integrations/caldav/
+[calendar docs]: https://www.home-assistant.io/integrations/calendar/
+[camera docs]: https://www.home-assistant.io/integrations/camera/
+[cert_expiry docs]: https://www.home-assistant.io/integrations/cert_expiry/
+[cloud docs]: https://www.home-assistant.io/integrations/cloud/
+[co2signal docs]: https://www.home-assistant.io/integrations/co2signal/
+[coinbase docs]: https://www.home-assistant.io/integrations/coinbase/
+[comelit docs]: https://www.home-assistant.io/integrations/comelit/
+[command_line docs]: https://www.home-assistant.io/integrations/command_line/
+[coned docs]: https://www.home-assistant.io/integrations/coned/
+[config docs]: https://www.home-assistant.io/integrations/config/
+[conversation docs]: https://www.home-assistant.io/integrations/conversation/
+[coolmaster docs]: https://www.home-assistant.io/integrations/coolmaster/
+[cpuspeed docs]: https://www.home-assistant.io/integrations/cpuspeed/
+[daikin docs]: https://www.home-assistant.io/integrations/daikin/
+[deconz docs]: https://www.home-assistant.io/integrations/deconz/
+[deluge docs]: https://www.home-assistant.io/integrations/deluge/
+[demo docs]: https://www.home-assistant.io/integrations/demo/
+[denonavr docs]: https://www.home-assistant.io/integrations/denonavr/
+[derivative docs]: https://www.home-assistant.io/integrations/derivative/
+[device_automation docs]: https://www.home-assistant.io/integrations/device_automation/
+[device_tracker docs]: https://www.home-assistant.io/integrations/device_tracker/
+[devolo_home_network docs]: https://www.home-assistant.io/integrations/devolo_home_network/
+[dexcom docs]: https://www.home-assistant.io/integrations/dexcom/
+[directv docs]: https://www.home-assistant.io/integrations/directv/
+[discovergy docs]: https://www.home-assistant.io/integrations/discovergy/
+[dlna_dmr docs]: https://www.home-assistant.io/integrations/dlna_dmr/
+[dlna_dms docs]: https://www.home-assistant.io/integrations/dlna_dms/
+[doorbird docs]: https://www.home-assistant.io/integrations/doorbird/
+[dunehd docs]: https://www.home-assistant.io/integrations/dunehd/
+[duotecno docs]: https://www.home-assistant.io/integrations/duotecno/
+[dwd_weather_warnings docs]: https://www.home-assistant.io/integrations/dwd_weather_warnings/
+[dynalite docs]: https://www.home-assistant.io/integrations/dynalite/
+[eafm docs]: https://www.home-assistant.io/integrations/eafm/
+[easyenergy docs]: https://www.home-assistant.io/integrations/easyenergy/
+[ecobee docs]: https://www.home-assistant.io/integrations/ecobee/
+[edl21 docs]: https://www.home-assistant.io/integrations/edl21/
+[electric_kiwi docs]: https://www.home-assistant.io/integrations/electric_kiwi/
+[elkm1 docs]: https://www.home-assistant.io/integrations/elkm1/
+[elmax docs]: https://www.home-assistant.io/integrations/elmax/
+[emonitor docs]: https://www.home-assistant.io/integrations/emonitor/
+[energy docs]: https://www.home-assistant.io/integrations/energy/
+[energyzero docs]: https://www.home-assistant.io/integrations/energyzero/
+[enocean docs]: https://www.home-assistant.io/integrations/enocean/
+[enphase_envoy docs]: https://www.home-assistant.io/integrations/enphase_envoy/
+[environment_canada docs]: https://www.home-assistant.io/integrations/environment_canada/
+[esphome docs]: https://www.home-assistant.io/integrations/esphome/
+[eufylife_ble docs]: https://www.home-assistant.io/integrations/eufylife_ble/
+[ezviz docs]: https://www.home-assistant.io/integrations/ezviz/
+[feedreader docs]: https://www.home-assistant.io/integrations/feedreader/
+[ffmpeg docs]: https://www.home-assistant.io/integrations/ffmpeg/
+[fibaro docs]: https://www.home-assistant.io/integrations/fibaro/
+[file docs]: https://www.home-assistant.io/integrations/file/
+[filesize docs]: https://www.home-assistant.io/integrations/filesize/
+[flexit docs]: https://www.home-assistant.io/integrations/flexit/
+[flo docs]: https://www.home-assistant.io/integrations/flo/
+[flume docs]: https://www.home-assistant.io/integrations/flume/
+[flux_led docs]: https://www.home-assistant.io/integrations/flux_led/
+[forecast_solar docs]: https://www.home-assistant.io/integrations/forecast_solar/
+[forked_daapd docs]: https://www.home-assistant.io/integrations/forked_daapd/
+[foscam docs]: https://www.home-assistant.io/integrations/foscam/
+[freebox docs]: https://www.home-assistant.io/integrations/freebox/
+[fritz docs]: https://www.home-assistant.io/integrations/fritz/
+[fritzbox docs]: https://www.home-assistant.io/integrations/fritzbox/
+[fronius docs]: https://www.home-assistant.io/integrations/fronius/
+[frontend docs]: https://www.home-assistant.io/integrations/frontend/
+[frontier_silicon docs]: https://www.home-assistant.io/integrations/frontier_silicon/
+[fully_kiosk docs]: https://www.home-assistant.io/integrations/fully_kiosk/
+[garages_amsterdam docs]: https://www.home-assistant.io/integrations/garages_amsterdam/
+[gardena_bluetooth docs]: https://www.home-assistant.io/integrations/gardena_bluetooth/
+[gdacs docs]: https://www.home-assistant.io/integrations/gdacs/
+[generic docs]: https://www.home-assistant.io/integrations/generic/
+[generic_thermostat docs]: https://www.home-assistant.io/integrations/generic_thermostat/
+[gios docs]: https://www.home-assistant.io/integrations/gios/
+[goodwe docs]: https://www.home-assistant.io/integrations/goodwe/
+[google docs]: https://www.home-assistant.io/integrations/google/
+[google_assistant docs]: https://www.home-assistant.io/integrations/google_assistant/
+[google_assistant_sdk docs]: https://www.home-assistant.io/integrations/google_assistant_sdk/
+[google_generative_ai_conversation docs]: https://www.home-assistant.io/integrations/google_generative_ai_conversation/
+[google_travel_time docs]: https://www.home-assistant.io/integrations/google_travel_time/
+[govee_ble docs]: https://www.home-assistant.io/integrations/govee_ble/
+[gree docs]: https://www.home-assistant.io/integrations/gree/
+[group docs]: https://www.home-assistant.io/integrations/group/
+[hassio docs]: https://www.home-assistant.io/integrations/hassio/
+[here_travel_time docs]: https://www.home-assistant.io/integrations/here_travel_time/
+[hive docs]: https://www.home-assistant.io/integrations/hive/
+[home_connect docs]: https://www.home-assistant.io/integrations/home_connect/
+[home_plus_control docs]: https://www.home-assistant.io/integrations/home_plus_control/
+[homeassistant docs]: https://www.home-assistant.io/integrations/homeassistant/
+[homeassistant_green docs]: https://www.home-assistant.io/integrations/homeassistant_green/
+[homeassistant_hardware docs]: https://www.home-assistant.io/integrations/homeassistant_hardware/
+[homeassistant_sky_connect docs]: https://www.home-assistant.io/integrations/homeassistant_sky_connect/
+[homeassistant_yellow docs]: https://www.home-assistant.io/integrations/homeassistant_yellow/
+[homekit docs]: https://www.home-assistant.io/integrations/homekit/
+[homekit_controller docs]: https://www.home-assistant.io/integrations/homekit_controller/
+[homematicip_cloud docs]: https://www.home-assistant.io/integrations/homematicip_cloud/
+[honeywell docs]: https://www.home-assistant.io/integrations/honeywell/
+[http docs]: https://www.home-assistant.io/integrations/http/
+[hue docs]: https://www.home-assistant.io/integrations/hue/
+[hunterdouglas_powerview docs]: https://www.home-assistant.io/integrations/hunterdouglas_powerview/
+[hydrawise docs]: https://www.home-assistant.io/integrations/hydrawise/
+[hyperion docs]: https://www.home-assistant.io/integrations/hyperion/
+[image_processing docs]: https://www.home-assistant.io/integrations/image_processing/
+[image_upload docs]: https://www.home-assistant.io/integrations/image_upload/
+[imap docs]: https://www.home-assistant.io/integrations/imap/
+[imap_email_content docs]: https://www.home-assistant.io/integrations/imap_email_content/
+[integration docs]: https://www.home-assistant.io/integrations/integration/
+[iotawatt docs]: https://www.home-assistant.io/integrations/iotawatt/
+[ipma docs]: https://www.home-assistant.io/integrations/ipma/
+[ipp docs]: https://www.home-assistant.io/integrations/ipp/
+[iqvia docs]: https://www.home-assistant.io/integrations/iqvia/
+[isy994 docs]: https://www.home-assistant.io/integrations/isy994/
+[izone docs]: https://www.home-assistant.io/integrations/izone/
+[jellyfin docs]: https://www.home-assistant.io/integrations/jellyfin/
+[juicenet docs]: https://www.home-assistant.io/integrations/juicenet/
+[justnimbus docs]: https://www.home-assistant.io/integrations/justnimbus/
+[keymitt_ble docs]: https://www.home-assistant.io/integrations/keymitt_ble/
+[kitchen_sink docs]: https://www.home-assistant.io/integrations/kitchen_sink/
+[knx docs]: https://www.home-assistant.io/integrations/knx/
+[kraken docs]: https://www.home-assistant.io/integrations/kraken/
+[lacrosse_view docs]: https://www.home-assistant.io/integrations/lacrosse_view/
+[landisgyr_heat_meter docs]: https://www.home-assistant.io/integrations/landisgyr_heat_meter/
+[lastfm docs]: https://www.home-assistant.io/integrations/lastfm/
+[lawn_mower docs]: https://www.home-assistant.io/integrations/lawn_mower/
+[ld2410_ble docs]: https://www.home-assistant.io/integrations/ld2410_ble/
+[led_ble docs]: https://www.home-assistant.io/integrations/led_ble/
+[lg_soundbar docs]: https://www.home-assistant.io/integrations/lg_soundbar/
+[life360 docs]: https://www.home-assistant.io/integrations/life360/
+[lifx docs]: https://www.home-assistant.io/integrations/lifx/
+[light docs]: https://www.home-assistant.io/integrations/light/
+[litejet docs]: https://www.home-assistant.io/integrations/litejet/
+[litterrobot docs]: https://www.home-assistant.io/integrations/litterrobot/
+[local_calendar docs]: https://www.home-assistant.io/integrations/local_calendar/
+[logi_circle docs]: https://www.home-assistant.io/integrations/logi_circle/
+[lookin docs]: https://www.home-assistant.io/integrations/lookin/
+[loqed docs]: https://www.home-assistant.io/integrations/loqed/
+[lyric docs]: https://www.home-assistant.io/integrations/lyric/
+[mailbox docs]: https://www.home-assistant.io/integrations/mailbox/
+[matter docs]: https://www.home-assistant.io/integrations/matter/
+[mazda docs]: https://www.home-assistant.io/integrations/mazda/
+[media_extractor docs]: https://www.home-assistant.io/integrations/media_extractor/
+[media_player docs]: https://www.home-assistant.io/integrations/media_player/
+[media_source docs]: https://www.home-assistant.io/integrations/media_source/
+[melcloud docs]: https://www.home-assistant.io/integrations/melcloud/
+[met docs]: https://www.home-assistant.io/integrations/met/
+[met_eireann docs]: https://www.home-assistant.io/integrations/met_eireann/
+[meteo_france docs]: https://www.home-assistant.io/integrations/meteo_france/
+[meteoclimatic docs]: https://www.home-assistant.io/integrations/meteoclimatic/
+[metoffice docs]: https://www.home-assistant.io/integrations/metoffice/
+[mikrotik docs]: https://www.home-assistant.io/integrations/mikrotik/
+[mill docs]: https://www.home-assistant.io/integrations/mill/
+[min_max docs]: https://www.home-assistant.io/integrations/min_max/
+[minecraft_server docs]: https://www.home-assistant.io/integrations/minecraft_server/
+[mobile_app docs]: https://www.home-assistant.io/integrations/mobile_app/
+[modbus docs]: https://www.home-assistant.io/integrations/modbus/
+[modem_callerid docs]: https://www.home-assistant.io/integrations/modem_callerid/
+[moon docs]: https://www.home-assistant.io/integrations/moon/
+[motioneye docs]: https://www.home-assistant.io/integrations/motioneye/
+[mqtt docs]: https://www.home-assistant.io/integrations/mqtt/
+[neato docs]: https://www.home-assistant.io/integrations/neato/
+[nest docs]: https://www.home-assistant.io/integrations/nest/
+[netatmo docs]: https://www.home-assistant.io/integrations/netatmo/
+[nexia docs]: https://www.home-assistant.io/integrations/nexia/
+[nextcloud docs]: https://www.home-assistant.io/integrations/nextcloud/
+[nextdns docs]: https://www.home-assistant.io/integrations/nextdns/
+[nibe_heatpump docs]: https://www.home-assistant.io/integrations/nibe_heatpump/
+[nina docs]: https://www.home-assistant.io/integrations/nina/
+[norway_air docs]: https://www.home-assistant.io/integrations/norway_air/
+[number docs]: https://www.home-assistant.io/integrations/number/
+[nut docs]: https://www.home-assistant.io/integrations/nut/
+[nws docs]: https://www.home-assistant.io/integrations/nws/
+[nzbget docs]: https://www.home-assistant.io/integrations/nzbget/
+[octoprint docs]: https://www.home-assistant.io/integrations/octoprint/
+[onboarding docs]: https://www.home-assistant.io/integrations/onboarding/
+[oncue docs]: https://www.home-assistant.io/integrations/oncue/
+[onewire docs]: https://www.home-assistant.io/integrations/onewire/
+[onvif docs]: https://www.home-assistant.io/integrations/onvif/
+[open_meteo docs]: https://www.home-assistant.io/integrations/open_meteo/
+[openai_conversation docs]: https://www.home-assistant.io/integrations/openai_conversation/
+[openexchangerates docs]: https://www.home-assistant.io/integrations/openexchangerates/
+[opengarage docs]: https://www.home-assistant.io/integrations/opengarage/
+[openhome docs]: https://www.home-assistant.io/integrations/openhome/
+[opensky docs]: https://www.home-assistant.io/integrations/opensky/
+[openweathermap docs]: https://www.home-assistant.io/integrations/openweathermap/
+[opower docs]: https://www.home-assistant.io/integrations/opower/
+[oralb docs]: https://www.home-assistant.io/integrations/oralb/
+[oru_opower docs]: https://www.home-assistant.io/integrations/oru_opower/
+[otbr docs]: https://www.home-assistant.io/integrations/otbr/
+[overkiz docs]: https://www.home-assistant.io/integrations/overkiz/
+[ovo_energy docs]: https://www.home-assistant.io/integrations/ovo_energy/
+[peco docs]: https://www.home-assistant.io/integrations/peco/
+[pegel_online docs]: https://www.home-assistant.io/integrations/pegel_online/
+[pi_hole docs]: https://www.home-assistant.io/integrations/pi_hole/
+[picotts docs]: https://www.home-assistant.io/integrations/picotts/
+[plex docs]: https://www.home-assistant.io/integrations/plex/
+[plugwise docs]: https://www.home-assistant.io/integrations/plugwise/
+[plum_lightpad docs]: https://www.home-assistant.io/integrations/plum_lightpad/
+[powerwall docs]: https://www.home-assistant.io/integrations/powerwall/
+[prometheus docs]: https://www.home-assistant.io/integrations/prometheus/
+[prosegur docs]: https://www.home-assistant.io/integrations/prosegur/
+[ps4 docs]: https://www.home-assistant.io/integrations/ps4/
+[pvpc_hourly_pricing docs]: https://www.home-assistant.io/integrations/pvpc_hourly_pricing/
+[qingping docs]: https://www.home-assistant.io/integrations/qingping/
+[qnap_qsw docs]: https://www.home-assistant.io/integrations/qnap_qsw/
+[rachio docs]: https://www.home-assistant.io/integrations/rachio/
+[rainmachine docs]: https://www.home-assistant.io/integrations/rainmachine/
+[rdw docs]: https://www.home-assistant.io/integrations/rdw/
+[recollect_waste docs]: https://www.home-assistant.io/integrations/recollect_waste/
+[recorder docs]: https://www.home-assistant.io/integrations/recorder/
+[renault docs]: https://www.home-assistant.io/integrations/renault/
+[renson docs]: https://www.home-assistant.io/integrations/renson/
+[reolink docs]: https://www.home-assistant.io/integrations/reolink/
+[rest docs]: https://www.home-assistant.io/integrations/rest/
+[ridwell docs]: https://www.home-assistant.io/integrations/ridwell/
+[risco docs]: https://www.home-assistant.io/integrations/risco/
+[roborock docs]: https://www.home-assistant.io/integrations/roborock/
+[roku docs]: https://www.home-assistant.io/integrations/roku/
+[route53 docs]: https://www.home-assistant.io/integrations/route53/
+[rova docs]: https://www.home-assistant.io/integrations/rova/
+[ruckus_unleashed docs]: https://www.home-assistant.io/integrations/ruckus_unleashed/
+[sabnzbd docs]: https://www.home-assistant.io/integrations/sabnzbd/
+[samsungtv docs]: https://www.home-assistant.io/integrations/samsungtv/
+[schlage docs]: https://www.home-assistant.io/integrations/schlage/
+[scrape docs]: https://www.home-assistant.io/integrations/scrape/
+[sensibo docs]: https://www.home-assistant.io/integrations/sensibo/
+[sensor docs]: https://www.home-assistant.io/integrations/sensor/
+[sensorpush docs]: https://www.home-assistant.io/integrations/sensorpush/
+[shell_command docs]: https://www.home-assistant.io/integrations/shell_command/
+[shelly docs]: https://www.home-assistant.io/integrations/shelly/
+[shopping_list docs]: https://www.home-assistant.io/integrations/shopping_list/
+[simplisafe docs]: https://www.home-assistant.io/integrations/simplisafe/
+[sleepiq docs]: https://www.home-assistant.io/integrations/sleepiq/
+[smartthings docs]: https://www.home-assistant.io/integrations/smartthings/
+[smhi docs]: https://www.home-assistant.io/integrations/smhi/
+[snmp docs]: https://www.home-assistant.io/integrations/snmp/
+[snooz docs]: https://www.home-assistant.io/integrations/snooz/
+[solaredge docs]: https://www.home-assistant.io/integrations/solaredge/
+[soma docs]: https://www.home-assistant.io/integrations/soma/
+[somfy_mylink docs]: https://www.home-assistant.io/integrations/somfy_mylink/
+[sonos docs]: https://www.home-assistant.io/integrations/sonos/
+[spc docs]: https://www.home-assistant.io/integrations/spc/
+[sql docs]: https://www.home-assistant.io/integrations/sql/
+[squeezebox docs]: https://www.home-assistant.io/integrations/squeezebox/
+[srp_energy docs]: https://www.home-assistant.io/integrations/srp_energy/
+[ssdp docs]: https://www.home-assistant.io/integrations/ssdp/
+[starlink docs]: https://www.home-assistant.io/integrations/starlink/
+[startca docs]: https://www.home-assistant.io/integrations/startca/
+[steamist docs]: https://www.home-assistant.io/integrations/steamist/
+[stiebel_eltron docs]: https://www.home-assistant.io/integrations/stiebel_eltron/
+[stream docs]: https://www.home-assistant.io/integrations/stream/
+[subaru docs]: https://www.home-assistant.io/integrations/subaru/
+[surepetcare docs]: https://www.home-assistant.io/integrations/surepetcare/
+[switch_as_x docs]: https://www.home-assistant.io/integrations/switch_as_x/
+[switchbot docs]: https://www.home-assistant.io/integrations/switchbot/
+[switcher_kis docs]: https://www.home-assistant.io/integrations/switcher_kis/
+[syncthru docs]: https://www.home-assistant.io/integrations/syncthru/
+[system_bridge docs]: https://www.home-assistant.io/integrations/system_bridge/
+[system_log docs]: https://www.home-assistant.io/integrations/system_log/
+[systemmonitor docs]: https://www.home-assistant.io/integrations/systemmonitor/
+[tado docs]: https://www.home-assistant.io/integrations/tado/
+[tankerkoenig docs]: https://www.home-assistant.io/integrations/tankerkoenig/
+[tasmota docs]: https://www.home-assistant.io/integrations/tasmota/
+[telegram_bot docs]: https://www.home-assistant.io/integrations/telegram_bot/
+[tellduslive docs]: https://www.home-assistant.io/integrations/tellduslive/
+[template docs]: https://www.home-assistant.io/integrations/template/
+[thread docs]: https://www.home-assistant.io/integrations/thread/
+[threshold docs]: https://www.home-assistant.io/integrations/threshold/
+[tibber docs]: https://www.home-assistant.io/integrations/tibber/
+[tile docs]: https://www.home-assistant.io/integrations/tile/
+[timer docs]: https://www.home-assistant.io/integrations/timer/
+[tod docs]: https://www.home-assistant.io/integrations/tod/
+[todoist docs]: https://www.home-assistant.io/integrations/todoist/
+[tomorrowio docs]: https://www.home-assistant.io/integrations/tomorrowio/
+[tplink docs]: https://www.home-assistant.io/integrations/tplink/
+[tplink_omada docs]: https://www.home-assistant.io/integrations/tplink_omada/
+[tractive docs]: https://www.home-assistant.io/integrations/tractive/
+[trafikverket_camera docs]: https://www.home-assistant.io/integrations/trafikverket_camera/
+[trafikverket_ferry docs]: https://www.home-assistant.io/integrations/trafikverket_ferry/
+[trafikverket_train docs]: https://www.home-assistant.io/integrations/trafikverket_train/
+[trafikverket_weatherstation docs]: https://www.home-assistant.io/integrations/trafikverket_weatherstation/
+[transmission docs]: https://www.home-assistant.io/integrations/transmission/
+[unifi docs]: https://www.home-assistant.io/integrations/unifi/
+[unifiprotect docs]: https://www.home-assistant.io/integrations/unifiprotect/
+[upb docs]: https://www.home-assistant.io/integrations/upb/
+[upcloud docs]: https://www.home-assistant.io/integrations/upcloud/
+[update docs]: https://www.home-assistant.io/integrations/update/
+[upnp docs]: https://www.home-assistant.io/integrations/upnp/
+[uptimerobot docs]: https://www.home-assistant.io/integrations/uptimerobot/
+[utility_meter docs]: https://www.home-assistant.io/integrations/utility_meter/
+[velbus docs]: https://www.home-assistant.io/integrations/velbus/
+[venstar docs]: https://www.home-assistant.io/integrations/venstar/
+[verisure docs]: https://www.home-assistant.io/integrations/verisure/
+[version docs]: https://www.home-assistant.io/integrations/version/
+[vicare docs]: https://www.home-assistant.io/integrations/vicare/
+[vilfo docs]: https://www.home-assistant.io/integrations/vilfo/
+[vodafone_station docs]: https://www.home-assistant.io/integrations/vodafone_station/
+[volvooncall docs]: https://www.home-assistant.io/integrations/volvooncall/
+[w800rf32 docs]: https://www.home-assistant.io/integrations/w800rf32/
+[wake docs]: https://www.home-assistant.io/integrations/wake/
+[wake_word docs]: https://www.home-assistant.io/integrations/wake_word/
+[wallbox docs]: https://www.home-assistant.io/integrations/wallbox/
+[waqi docs]: https://www.home-assistant.io/integrations/waqi/
+[water_heater docs]: https://www.home-assistant.io/integrations/water_heater/
+[watttime docs]: https://www.home-assistant.io/integrations/watttime/
+[waze_travel_time docs]: https://www.home-assistant.io/integrations/waze_travel_time/
+[weather docs]: https://www.home-assistant.io/integrations/weather/
+[webostv docs]: https://www.home-assistant.io/integrations/webostv/
+[websocket_api docs]: https://www.home-assistant.io/integrations/websocket_api/
+[wemo docs]: https://www.home-assistant.io/integrations/wemo/
+[whirlpool docs]: https://www.home-assistant.io/integrations/whirlpool/
+[withings docs]: https://www.home-assistant.io/integrations/withings/
+[wled docs]: https://www.home-assistant.io/integrations/wled/
+[workday docs]: https://www.home-assistant.io/integrations/workday/
+[ws66i docs]: https://www.home-assistant.io/integrations/ws66i/
+[wyoming docs]: https://www.home-assistant.io/integrations/wyoming/
+[xiaomi_ble docs]: https://www.home-assistant.io/integrations/xiaomi_ble/
+[yale_smart_alarm docs]: https://www.home-assistant.io/integrations/yale_smart_alarm/
+[yalexs_ble docs]: https://www.home-assistant.io/integrations/yalexs_ble/
+[yardian docs]: https://www.home-assistant.io/integrations/yardian/
+[yeelight docs]: https://www.home-assistant.io/integrations/yeelight/
+[youtube docs]: https://www.home-assistant.io/integrations/youtube/
+[zamg docs]: https://www.home-assistant.io/integrations/zamg/
+[zeroconf docs]: https://www.home-assistant.io/integrations/zeroconf/
+[zha docs]: https://www.home-assistant.io/integrations/zha/
+[zwave_js docs]: https://www.home-assistant.io/integrations/zwave_js/
\ No newline at end of file
diff --git a/source/getting-started/onboarding.markdown b/source/getting-started/onboarding.markdown
index be295c3514f..fea4f457b9b 100644
--- a/source/getting-started/onboarding.markdown
+++ b/source/getting-started/onboarding.markdown
@@ -5,22 +5,21 @@ description: "Instructions to get Home Assistant configured."
Alright, you made it here. The tough part is done.
-After entering the Home Assistant device's address in your browser's address bar, the preparation screen is shown. Depending on your hardware, preparation may take a while.
+After entering the Home Assistant device's address in your browser's address bar, the welcome screen is shown. Depending on your hardware, preparation may take a while.
-
-
-To show the logs, select the blue pulsing circle.
-
+
With Home Assistant installed, it's time to set up the basics.
-In this step, you will create the owner account of Home Assistant. This account is an administrator account. It will always be able to change everything.
+In this step, you will create the owner's account of Home Assistant. This account is an administrator account. It will always be able to change everything.
-1. Enter a name, username, and password. Select **Create account**.
+1. If this is your initial installation, select **Create my smart home**.
+ - If you want to restore from a backup of a previous installation, select **Restore from backup**.
+ - The following steps describe how to create a new installation, not how to restore from backup.
+2. Enter a name, username, and password. Select **Create account**.

-2. Enter a name for your home.
3. Enter the location of your home.
- The location is used to populate settings such as time zone, unit system, and currency.
- It is also used for location-based information and automations: for example showing the weather-forecast, opening the shades at sunrise, or starting the vacuum when you leave the home.
@@ -28,26 +27,21 @@ In this step, you will create the owner account of Home Assistant. This account
- You can always change this information later in the settings.

-
-4. Check if the location based information is correct and change if necessary.
- - You can always change this information later in the settings.
- 
-
-5. Select which information you are willing to share.
+4. Select which information you are willing to share.
- Sharing is disabled by default. However, we would like to encourage you to share some of this data.
- This information helps us to find out which platforms we need to support and where to focus our efforts.
- The data is anonymized and aggregated. To see the charts we generate out of this data, take a look at our [analytics page](https://analytics.home-assistant.io/).

-6. Once you are done, select **Next**.
+5. Once you are done, select **Next**.
- Home Assistant will then show any {% term devices %} it has discovered on your network.
- Don't be alarmed if you see fewer items than shown below; you can always manually add devices later.

-7. Finally, select **Finish**.
- - Now you're brought to the Home Assistant web interface. This screen will show all of your devices.
+6. Finally, select **Finish**.
+ - Now you're brought to the Home Assistant web interface. If some of your devices were discovered and setup automatically, this default dashboard may already show some of your devices.
{% include getting-started/next_step.html step="Concepts & Terminology" link="/getting-started/concepts-terminology/" %}
diff --git a/source/help/trivia.markdown b/source/help/trivia.markdown
index 82d4df69111..51827f04aea 100644
--- a/source/help/trivia.markdown
+++ b/source/help/trivia.markdown
@@ -22,6 +22,12 @@ The current logo was created by [Jeremy Geltman](https://jeremygeltman.com/). Fu
Home Assistant is open source software and available under the [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0) license.
+## Hardware
+
+- End of 2020, [Home Assistant Blue](/blue/) was launched. The first dedicated smart home hub for Home Assistant. This limited edition is based on an ODROID and known for its blue aluminum case.
+- In September 2021, [Home Assistant Yellow](/yellow/) was launched. This extendable smart home hub is a custom, open-source design powered by a Raspberry Pi Compute Module 4. Home Assistant Yellow supports both Zigbee and Thread.
+- End of 2022, [Home Assistant SkyConnect](skyconnect) was launched: a USB dongle that provides Zigbee and Thread network support for hubs that do not have this built-in.
+
## Numbers
This sections just contains some random numbers of the Home Assistant eco-system. Sorry, only the main repository counts.
diff --git a/source/images/blog/2023-09/climate-card.png b/source/images/blog/2023-09/climate-card.png
new file mode 100644
index 00000000000..6501d439b78
Binary files /dev/null and b/source/images/blog/2023-09/climate-card.png differ
diff --git a/source/images/blog/2023-09/get-forecast-service.png b/source/images/blog/2023-09/get-forecast-service.png
new file mode 100644
index 00000000000..eeee893282e
Binary files /dev/null and b/source/images/blog/2023-09/get-forecast-service.png differ
diff --git a/source/images/blog/2023-09/group-preview.png b/source/images/blog/2023-09/group-preview.png
new file mode 100644
index 00000000000..729a8d1f4a8
Binary files /dev/null and b/source/images/blog/2023-09/group-preview.png differ
diff --git a/source/images/blog/2023-09/lawn-mower.png b/source/images/blog/2023-09/lawn-mower.png
new file mode 100644
index 00000000000..387bd3a3ea1
Binary files /dev/null and b/source/images/blog/2023-09/lawn-mower.png differ
diff --git a/source/images/blog/2023-09/onboarding.png b/source/images/blog/2023-09/onboarding.png
new file mode 100644
index 00000000000..a82064f2aec
Binary files /dev/null and b/source/images/blog/2023-09/onboarding.png differ
diff --git a/source/images/blog/2023-09/social.png b/source/images/blog/2023-09/social.png
new file mode 100644
index 00000000000..057068bcb26
Binary files /dev/null and b/source/images/blog/2023-09/social.png differ
diff --git a/source/images/blog/2023-09/template-sensor.png b/source/images/blog/2023-09/template-sensor.png
new file mode 100644
index 00000000000..5a72455aa27
Binary files /dev/null and b/source/images/blog/2023-09/template-sensor.png differ
diff --git a/source/images/blog/2023-09/tile-features.png b/source/images/blog/2023-09/tile-features.png
new file mode 100644
index 00000000000..9461b60ed6f
Binary files /dev/null and b/source/images/blog/2023-09/tile-features.png differ
diff --git a/source/images/blog/2023-09/weather-more-info.png b/source/images/blog/2023-09/weather-more-info.png
new file mode 100644
index 00000000000..e482bc079f5
Binary files /dev/null and b/source/images/blog/2023-09/weather-more-info.png differ
diff --git a/source/images/docs/configuration/disable-debug-logging.gif b/source/images/docs/configuration/disable-debug-logging.gif
deleted file mode 100644
index add1b28e3b8..00000000000
Binary files a/source/images/docs/configuration/disable-debug-logging.gif and /dev/null differ
diff --git a/source/images/docs/configuration/download-diagnostics.gif b/source/images/docs/configuration/download-diagnostics.gif
deleted file mode 100644
index ef003051434..00000000000
Binary files a/source/images/docs/configuration/download-diagnostics.gif and /dev/null differ
diff --git a/source/images/docs/configuration/download-diagnostics.png b/source/images/docs/configuration/download-diagnostics.png
new file mode 100644
index 00000000000..3bff602f0ff
Binary files /dev/null and b/source/images/docs/configuration/download-diagnostics.png differ
diff --git a/source/images/docs/configuration/enable-debug-logging.png b/source/images/docs/configuration/enable-debug-logging.png
new file mode 100644
index 00000000000..68cf50eae8f
Binary files /dev/null and b/source/images/docs/configuration/enable-debug-logging.png differ
diff --git a/source/images/frontpage/HA10_-_Website_banner.png b/source/images/frontpage/HA10_-_Website_banner.png
new file mode 100644
index 00000000000..f4f8116e0f7
Binary files /dev/null and b/source/images/frontpage/HA10_-_Website_banner.png differ
diff --git a/source/images/getting-started/location_based_settings.png b/source/images/getting-started/location_based_settings.png
deleted file mode 100644
index b7ac42c524d..00000000000
Binary files a/source/images/getting-started/location_based_settings.png and /dev/null differ
diff --git a/source/images/getting-started/onboarding_devices.png b/source/images/getting-started/onboarding_devices.png
index b6d4737188b..4b8669b9e94 100644
Binary files a/source/images/getting-started/onboarding_devices.png and b/source/images/getting-started/onboarding_devices.png differ
diff --git a/source/images/getting-started/onboarding_location.png b/source/images/getting-started/onboarding_location.png
index aaddfe7a430..6356e61a846 100644
Binary files a/source/images/getting-started/onboarding_location.png and b/source/images/getting-started/onboarding_location.png differ
diff --git a/source/images/getting-started/onboarding_preparing_01.png b/source/images/getting-started/onboarding_preparing_01.png
deleted file mode 100644
index f42b6b2d505..00000000000
Binary files a/source/images/getting-started/onboarding_preparing_01.png and /dev/null differ
diff --git a/source/images/getting-started/onboarding_preparing_01_.png b/source/images/getting-started/onboarding_preparing_01_.png
new file mode 100644
index 00000000000..43094952abd
Binary files /dev/null and b/source/images/getting-started/onboarding_preparing_01_.png differ
diff --git a/source/images/getting-started/onboarding_preparing_show_logs.png b/source/images/getting-started/onboarding_preparing_show_logs.png
deleted file mode 100644
index c78d0afb11b..00000000000
Binary files a/source/images/getting-started/onboarding_preparing_show_logs.png and /dev/null differ
diff --git a/source/images/getting-started/onboarding_share_anonymized_info.png b/source/images/getting-started/onboarding_share_anonymized_info.png
index e9e8a40f58f..22aecd50852 100644
Binary files a/source/images/getting-started/onboarding_share_anonymized_info.png and b/source/images/getting-started/onboarding_share_anonymized_info.png differ
diff --git a/source/images/getting-started/username.png b/source/images/getting-started/username.png
index 2f06ff8d104..45f069d30d7 100644
Binary files a/source/images/getting-started/username.png and b/source/images/getting-started/username.png differ
diff --git a/source/index.html b/source/index.html
index cab9c9706f3..efef4f8fc29 100644
--- a/source/index.html
+++ b/source/index.html
@@ -90,6 +90,16 @@ feedback: false
+
+
-
-
{% assign pages_by_date = site.pages | sort: "date" | reverse %}
{% for page in pages_by_date %}
diff --git a/source/yellow/index.html b/source/yellow/index.html
index 7a288f242be..269e11394c9 100644
--- a/source/yellow/index.html
+++ b/source/yellow/index.html
@@ -1,7 +1,7 @@
---
layout: landingpage
title: "Home Assistant Yellow"
-description: "The easiest way to run Home Assistant. Now available for pre-order."
+description: "Home Assistant Yellow is your Matter-ready, upgradeable, and extendable smart home hub. You won't need anything else."
date: 2022-10-05
tagline: Home Assistant Yellow
tagline_wide: false
@@ -180,7 +180,7 @@ frontpage_image: /images/frontpage/yellow-frontpage.jpg
-
+
Yellow Kit with Power-over-Ethernet
Some assembly required! This kit supports Power-over-Ethernet (PoE) but is otherwise almost the same as the flagship version.
Without the Raspberry Pi Compute Module 4.
@@ -189,7 +189,7 @@ frontpage_image: /images/frontpage/yellow-frontpage.jpg
-
+
Yellow Kit with power supply
Some assembly required! This kit is almost the same as the flagship version.
Without the Raspberry Pi Compute Module 4.