-mode: single
```
Update the blocks array with valid Slack blocks. The easiest way to create this is using [Slack Block Kit Builder](https://app.slack.com/block-kit-builder). Up to 50 blocks may be included per message.
diff --git a/source/_integrations/smart_blinds.markdown b/source/_integrations/smart_blinds.markdown
index 5ff3c8bd056a..35e311f39fa7 100644
--- a/source/_integrations/smart_blinds.markdown
+++ b/source/_integrations/smart_blinds.markdown
@@ -12,6 +12,7 @@ ha_codeowners:
- '@starkillerOG'
ha_config_flow: true
ha_platforms:
+ - button
- cover
- sensor
ha_iot_class: Local Push
diff --git a/source/_integrations/smart_home.markdown b/source/_integrations/smart_home.markdown
index cbc5d7635dee..ae958deec3a5 100644
--- a/source/_integrations/smart_home.markdown
+++ b/source/_integrations/smart_home.markdown
@@ -12,6 +12,7 @@ ha_codeowners:
- '@starkillerOG'
ha_config_flow: true
ha_platforms:
+ - button
- cover
- sensor
ha_iot_class: Local Push
diff --git a/source/_integrations/smartthings.markdown b/source/_integrations/smartthings.markdown
index 102a4dec54d7..e321f44135e9 100644
--- a/source/_integrations/smartthings.markdown
+++ b/source/_integrations/smartthings.markdown
@@ -171,7 +171,6 @@ For a SmartThings thermostat to be represented by the climate platform, it must
| --------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
| [`thermostat`](https://developer.smartthings.com/docs/devices/capabilities/deprecated#thermostat) (set a) | `hvac mode`, `hvac action`, `target temp high`, `target temp low` and `fan mode` |
| [`thermostatMode`](https://developer.smartthings.com/docs/devices/capabilities/capabilities-reference#thermostatMode) (set b) | `hvac mode` |
-| [`thermostatCoolingSetpoint`](https://developer.smartthings.com/docs/devices/capabilities/capabilities-reference#thermostatCoolingSetpoint) (seb b) | `target temp low` |
| [`thermostatHeatingSetpoint`](https://developer.smartthings.com/docs/devices/capabilities/capabilities-reference#thermostatHeatingSetpoint) (set b) | `target temp high` |
| [`temperatureMeasurement`](https://developer.smartthings.com/docs/devices/capabilities/capabilities-reference#temperatureMeasurement) (set b) |
| [`thermostatOperatingState`](https://developer.smartthings.com/docs/devices/capabilities/capabilities-reference#thermostatOperatingState) | `hvac action` |
diff --git a/source/_integrations/smarty.markdown b/source/_integrations/smarty.markdown
index b364d410787c..0ac2ca4c9f26 100644
--- a/source/_integrations/smarty.markdown
+++ b/source/_integrations/smarty.markdown
@@ -14,7 +14,7 @@ ha_platforms:
- binary_sensor
- fan
- sensor
-ha_integration_type: integration
+ha_integration_type: hub
---
The `smarty` integration lets you control Salda [Smarty](http://www.salda.lt/en/products/category/compact-counter-flow-units) ventilation units from Home Assistant. You need a [MB-GATEWAY](http://www.salda.lt/en/products/item/5637227077) or something similar to connect to your local network.
diff --git a/source/_integrations/smlight.markdown b/source/_integrations/smlight.markdown
index 0824a4ab68ba..8d6673c5f8c1 100644
--- a/source/_integrations/smlight.markdown
+++ b/source/_integrations/smlight.markdown
@@ -2,14 +2,23 @@
title: SMLIGHT SLZB
description: The SMLIGHT SLZB integration allows users to monitor and manage their SMLIGHT SLZB-06x devices from directly within Home Assistant.
ha_category:
+ - Binary sensor
+ - Button
- Sensor
+ - Switch
+ - Update
ha_release: 2024.9
-ha_iot_class: Local Polling
+ha_iot_class: Local Push
ha_config_flow: true
ha_domain: smlight
ha_zeroconf: true
ha_platforms:
+ - binary_sensor
+ - button
+ - diagnostics
- sensor
+ - switch
+ - update
ha_codeowners:
- '@tl-sl'
ha_integration_type: device
@@ -32,18 +41,54 @@ You need a supported SLZB-06 adapter.
- [SLZB-06M](https://smlight.tech/product/slzb-06m)
- [SLZB-06p7](https://smlight.tech/product/slzb-06p7)
- [SLZB-06p10](https://smlight.tech/product/slzb-06p10/)
-
-Core firmware on your SLZB-06x device must be `2.3.6` or newer. If you have an older version, update using the SMLIGHT Web UI before installing this integration.
+Core firmware on your SLZB-06x device must be `v2.3.6` or newer. If you have an older `v2.x.x` version, you can update from within Home Assistant. If you have `v0.9.9`, update using the [SMLIGHT web flasher](https://smlight.tech/flasher/#SLZB-06) before installing this integration.
+
{% include integrations/config_flow.md %}
## Integration entities
+### Sensors
+
The following sensors will be created:
-- **Core Temperature** - Temperature of core ESP32
-- **Zigbee Temperature** - Temperature of Zigbee CC2652 or EFR32 chip
-- **Core Uptime** - Uptime of Core device
-- **Zigbee Uptime** - Uptime of Zigbee connection to ZHA/Z2M
-- **RAM Usage** - Monitor RAM Usage
-- **FS Usage** - Monitor filesystem usage
+- **Core temperature** - Temperature of core ESP32
+- **Zigbee temperature** - Temperature of Zigbee CC2652 or EFR32 chip
+- **Core uptime** - Uptime of Core device
+- **Zigbee uptime** - Uptime of Zigbee connection to ZHA/Z2M
+- **RAM usage** - Monitor RAM Usage
+- **FS usage** - Monitor filesystem usage
+- **Connection mode** - Connection mode - Ethernet, Wi-Fi, or USB
+- **Ethernet** - Ethernet connection status
+- **Internet** - Internet connection status
+- **VPN** - WireGuard VPN client connection status
+- **Wi-Fi** - Wi-Fi connection status
+- **Firmware channel** - Channel for updates, stable, or development firmware or currently installed firmware.
+- **Zigbee type** - Current mode of Zigbee chip. Coordinator, router, or Thread. Only works with official firmware installed via OTA in SMLIGHT web UI.
+
+### Buttons
+
+The following buttons will be created:
+
+- **Core restart** - Restart core ESP32
+- **Zigbee restart** - Restart Zigbee CCCC2652 or EFR32 chip
+- **Zigbee flash mode** - Trigger the Zigbee chip into bootloader flash mode so it can be flashed. It is possible to flash Zigbee firmware over a network socket once this is activated.
+- **Reconnect Zigbee router** - Place the router into pairing mode to join a new Zigbee network. This is only created if the SLZB-06x device is in Zibgee router mode.
+
+### Switches
+
+The following switches will be created:
+
+- **Auto Zigbee update** - This allows the core firmware on SLZB-06x to manage Zigbee firmware updates and it will automatically install updates when they are released.
+- **Disable LEDs** - Disable all LEDs on the SLZB-06x device.
+- **LED night mode** - Enables night mode, which turns off the LEDs overnight, based on the times set in SLZB-06x web UI.
+- **Enable VPN** - Enable WireGuard VPN client (requires configuration via the SMLIGHT web UI).
+
+### Updates
+
+The following update entities will be created:
+
+- **Core firmware** - Core firmware updates of SLZB-06x firmware
+- **Zigbee firmware** - Firmware updates of Zigbee chip
+
+The updates offered in Home Assistant will match your currently installed firmware. This is based on the firmware channel (dev, release) and for Zigbee also on the firmware type (coordinator, router, Thread). If you wish to switch channels, install the different firmware type in the SMLIGHT web UI. You will get notifications when new firmware updates are available to install.
diff --git a/source/_integrations/sms.markdown b/source/_integrations/sms.markdown
index 426c8ca4f7fd..424ab34539df 100644
--- a/source/_integrations/sms.markdown
+++ b/source/_integrations/sms.markdown
@@ -33,11 +33,11 @@ To use notifications, please see the [getting started with automation page](/get
### Send message
```yaml
-action:
- action: notify.sms
- data:
- message: "This is a message for you!"
- target: "+5068081-8181"
+actions:
+ - action: notify.sms
+ data:
+ message: "This is a message for you!"
+ target: "+5068081-8181"
```
### Sending SMS using GSM alphabet
@@ -45,13 +45,13 @@ action:
Some devices (receiving or sending) do not support Unicode (the default encoding). For these you can disable Unicode:
```yaml
-action:
- action: notify.sms
- data:
- message: "This is a message for you in ANSI"
- target: "+5068081-8181"
+actions:
+ - action: notify.sms
data:
- unicode: False
+ message: "This is a message for you in ANSI"
+ target: "+5068081-8181"
+ data:
+ unicode: False
```
### Getting SMS messages
@@ -85,7 +85,6 @@ notify_sms_user1:
data:
message: "{{ message }}"
target: "{{ states('sensor.user1_phone_number') }}"
- mode: single
icon: mdi:chat-alert
```
@@ -97,15 +96,15 @@ notify_sms_user1:
```yaml
- alias: "Forward SMS"
- trigger:
- - platform: event
+ triggers:
+ - trigger: event
event_type: sms.incoming_sms
- action:
+ actions:
- action: script.notify_sms_user1
data:
message: |
From: {{trigger.event.data.phone}}
- {{trigger.event.data.text}} mode: single
+ {{trigger.event.data.text}}
```
{% endraw %}
diff --git a/source/_integrations/smtp.markdown b/source/_integrations/smtp.markdown
index 5c5e5014c1f2..c49f8af28272 100644
--- a/source/_integrations/smtp.markdown
+++ b/source/_integrations/smtp.markdown
@@ -90,19 +90,16 @@ A notify integration will be created using the name without spaces. In the above
```yaml
- alias: "Send E-Mail Every Morning"
- description: ""
- trigger:
+ triggers:
- platform: time
at: "08:00:00"
- condition: []
- action:
+ actions:
- action: notify.NOTIFIER_NAME
data:
title: "Good Morning"
message: "Rise and shine"
target:
- "morning@example.com"
- mode: single
```
The optional `target` field is used to specify recipient(s) for this specific action. When `target` field is not used, this message will be sent to default recipient(s), specified in the `recipient` part of the smtp notifier in `configuration.yaml`. Line breaks can be added in the body part of the email by using `\r\n`, for instance `message: "Rise and shine\r\n\r\nIt's a brand new day!"`
diff --git a/source/_integrations/snips.markdown b/source/_integrations/snips.markdown
index 38ebf9bb250f..507a07860a0d 100644
--- a/source/_integrations/snips.markdown
+++ b/source/_integrations/snips.markdown
@@ -247,8 +247,8 @@ Here is a more complex example. The automation is triggered if the garage door i
```yaml
automation:
garage_door_has_been_open:
- trigger:
- - platform: state
+ triggers:
+ - trigger: state
entity_id: binary_sensor.my_garage_door_sensor
from: "off"
to: "on"
@@ -267,7 +267,7 @@ intent_script:
speech:
type: plain
text: "OK, closing the garage door"
- action:
+ actions:
- action: script.garage_door_close
```
diff --git a/source/_integrations/snooz.markdown b/source/_integrations/snooz.markdown
index 2308d522131b..273abf5a7a3e 100644
--- a/source/_integrations/snooz.markdown
+++ b/source/_integrations/snooz.markdown
@@ -67,10 +67,10 @@ Transition the volume level over the specified duration. If the device is powere
```yaml
automation:
- - trigger:
- - platform: time
+ - triggers:
+ - trigger: time
at: "04:20:00"
- action:
+ actions:
- action: snooz.transition_on
target:
entity_id: fan.snooz_abcd
@@ -97,10 +97,10 @@ Once the transition completes, the volume level is restored to the value before
```yaml
automation:
- - trigger:
- - platform: time
+ - triggers:
+ - trigger: time
at: "16:20:00"
- action:
+ actions:
- action: snooz.transition_off
target:
entity_id: fan.snooz_abcd
diff --git a/source/_integrations/solarlog.markdown b/source/_integrations/solarlog.markdown
index d5772baf68f9..657ed3381721 100644
--- a/source/_integrations/solarlog.markdown
+++ b/source/_integrations/solarlog.markdown
@@ -12,26 +12,31 @@ ha_codeowners:
- '@dontinelli'
ha_domain: solarlog
ha_platforms:
+ - diagnostics
- sensor
ha_integration_type: integration
---
-The `solarlog` integration uses the open JSON interface on [Solar-Log PV monitoring systems](https://www.solar-log.com/) to allow you to get details from your Solar-Log device and integrate these into your Home Assistant installation.
+The **Solarlog** {% term integration %} uses the open JSON interface on [Solar-Log PV monitoring systems](https://www.solar-log.com/) to get details from your Solar-Log device and integrate these into your Home Assistant installation.
-Before being able to use the integration, you have to activate the open JSON interface on your Solar-Log device. This can be activated from the Configuration | System | Access control menu of your Solar-Log device.
-When activating the interface, a red warning triangle with security information and risks is displayed.
+## Prerequisites
+
+Before you can use the integration, you either need the password of the Solar-Log user or you must activate the open JSON interface on your Solar-Log device.
+- To activate the JSON interface on your Solar-Log device, on the device, go to the Configuration | System | Access control menu.
+- When activating the interface, a red warning triangle with security information and risks is displayed. For security reasons, it is recommended to activate password protection and use the integration with the respective password.
The `solarlog` integration uses the default host address "http://solar-log" if you don't specify a host. If your device isn't accessible on this address, use its IP Address instead.
{% important %}
-The open JSON interface is deactivated by default. To activate the open JSON interface, a user password must first be set. The password isn't needed for accessing the open JSON interface.
+If password protection for the general user is deactivated, the open JSON interface is activated by default. For security reasons, it is recommended to activate the user's password.
+Please note that the open JSON interface only exposes a limited amount of data. Even if the open JSON interface has been activated, without the user's password, only limited data is available in the integration [see available sensors](#sensors). For [full functionality](#additional-data), you either need the user's password or the user password should be deactivated (not recommended).
{% endimportant %}
{% include integrations/config_flow.md %}
## Additional template sensor
-In case you would like to convert the values, for example, to Wh instead of the default kWh, you can use the [template platform](/integrations/template/).
+In case you would like to get additional calculated sensors such as the amount of excess solar power available, you can use the [template platform](/integrations/template/).
{% raw %}
@@ -47,7 +52,7 @@ template:
## Sensors
-The following sensors are available in the library:
+The following sensors are available via the open JSON intervace:
| name | Unit | Description |
|-----------------------|--------|:-------------------------------------------|
@@ -67,7 +72,6 @@ The following sensors are available in the library:
| consumption_month | kWh | Total consumption for the month from all of the consumption meters. |
| consumption_year | kWh | Total consumption for the year from all of the consumption meters. |
| consumption_total | kWh | Accumulated total consumption from all consumption meters. |
-| self_consumption_year | kWh | Accumulated total self-consumption. |
| installed_peak_power | W | Installed solar peak power. |
| alternator_loss | W | Altenator loss (equals to power_dc - power_ac) |
| capacity | % | Capacity (equals to power_dc / total power) |
@@ -75,6 +79,25 @@ The following sensors are available in the library:
| power_available | W | Available power (equals to power_ac - consumption_ac) |
| usage | % | Usage (equals to consumption_ac / power_ac) |
+## Additional data
+
+{% important %}
+The additional data is only accessible if the user's password is available (or password protection is deactivated). Obviously, deactivating password protection is a security risk and should only be done in specific circumstances. In any event, you do this at your own risk.
+{% endimportant %}
+
+The following additional sensor becomes available:
+
+| Name | Unit | Description |
+|-----------------------|--------|:-------------------------------------------|
+| self_consumption_year | kWh | Annual self-consumed solar power. |
+
+In addition, information from devices connected to the Solar-Log device becomes available. The following additional sensors become available (all values are per inverter/device):
+
+| Name | Unit | Description |
+|-----------------------|--------|:-------------------------------------------|
+| current_power | W | Current power provided/used by the device. |
+| consumption_year | kWh | Total energy provided/used by the device. |
+
{% note %}
The solarlog integration is using the solarlog_cli pypi package to get the data from your Solar-Log device. The last five sensors are not reported by your Solar-Log device directly, but are computed by the library.
{% endnote %}
diff --git a/source/_integrations/sonos.markdown b/source/_integrations/sonos.markdown
index 5a5e439eea01..2aa67094c4be 100644
--- a/source/_integrations/sonos.markdown
+++ b/source/_integrations/sonos.markdown
@@ -396,30 +396,29 @@ Removes an item from the queue.
```yaml
# Example automation to remove just played song from queue
alias: "Remove last played song from queue"
-id: Remove last played song from queue
-trigger:
- - platform: state
+triggers:
+ - trigger: state
entity_id: media_player.kitchen
- - platform: state
+ - trigger: state
entity_id: media_player.bathroom
- - platform: state
+ - trigger: state
entity_id: media_player.move
-condition:
- condition: and
- conditions:
- # Coordinator
- - condition: template
- value_template: >
- {{ state_attr( trigger.entity_id , 'group_members')[0] == trigger.entity_id }}
- # Going from queue to queue
- - condition: template
- value_template: >
- {{ 'queue_position' in trigger.from_state.attributes and 'queue_position' in trigger.to_state.attributes }}
- # Moving forward
- - condition: template
- value_template: >
- {{ trigger.from_state.attributes.queue_position < trigger.to_state.attributes.queue_position }}
-action:
+conditions:
+ - condition: and
+ conditions:
+ # Coordinator
+ - condition: template
+ value_template: >
+ {{ state_attr( trigger.entity_id , 'group_members')[0] == trigger.entity_id }}
+ # Going from queue to queue
+ - condition: template
+ value_template: >
+ {{ 'queue_position' in trigger.from_state.attributes and 'queue_position' in trigger.to_state.attributes }}
+ # Moving forward
+ - condition: template
+ value_template: >
+ {{ trigger.from_state.attributes.queue_position < trigger.to_state.attributes.queue_position }}
+actions:
- action: sonos.remove_from_queue
target:
entity_id: >
diff --git a/source/_integrations/spc.markdown b/source/_integrations/spc.markdown
index 12aa74aaef6f..fe3765036143 100644
--- a/source/_integrations/spc.markdown
+++ b/source/_integrations/spc.markdown
@@ -59,10 +59,10 @@ The `changed_by` attribute enables one to be able to take different actions depe
```yaml
automation:
- alias: "Alarm status changed"
- trigger:
- - platform: state
+ triggers:
+ - trigger: state
entity_id: alarm_control_panel.alarm_1
- action:
+ actions:
- action: notify.notify
data:
message: >
diff --git a/source/_integrations/speedtestdotnet.markdown b/source/_integrations/speedtestdotnet.markdown
index 94f3b5768a61..093c40ea948b 100644
--- a/source/_integrations/speedtestdotnet.markdown
+++ b/source/_integrations/speedtestdotnet.markdown
@@ -50,17 +50,17 @@ In this section you will find some real-life examples of how to use this integra
# Example configuration.yaml entry
automation:
- alias: "Internet Speed Glow Connect Great"
- trigger:
- - platform: template
+ triggers:
+ - trigger: template
value_template: "{{ states('sensor.speedtest_download')|float >= 10 }}"
- action:
+ actions:
- action: shell_command.green
- alias: "Internet Speed Glow Connect Poor"
- trigger:
- - platform: template
+ triggers:
+ - trigger: template
value_template: "{{ states('sensor.speedtest_download')|float < 10 }}"
- action:
+ actions:
- action: shell_command.red
```
diff --git a/source/_integrations/squeezebox.markdown b/source/_integrations/squeezebox.markdown
index 112e3bc75423..44fc26ce4da0 100644
--- a/source/_integrations/squeezebox.markdown
+++ b/source/_integrations/squeezebox.markdown
@@ -1,6 +1,6 @@
---
title: Squeezebox (Lyrion Music Server)
-description: Instructions on how to integrate a Squeezebox player into Home Assistant.
+description: Instructions on how to integrate Squeezebox players and a Lyrion Music Server (LMS) into Home Assistant.
ha_category:
- Media player
ha_release: pre 0.7
@@ -11,11 +11,15 @@ ha_codeowners:
ha_config_flow: true
ha_dhcp: true
ha_platforms:
+ - binary_sensor
- media_player
+ - sensor
ha_integration_type: integration
---
-The Squeezebox integration allows you to control music players from the [Lyrion Music Server](https://lyrion.org/) (LMS) ecosystem. Lyrion Music Server was previously known as [Logitech Media Server](https://en.wikipedia.org/wiki/Squeezebox_%28network_music_player%29).
+The Squeezebox integration allows you to control music players from the [Lyrion Music Server](https://lyrion.org/) (LMS) ecosystem. Lyrion Music Server was formerly known as [Logitech Media Server](https://en.wikipedia.org/wiki/Squeezebox_%28network_music_player%29).
+
+This integration provides both media players connected to the server and supporting binary sensors for the server status.
The Squeezebox music player ecosystem, which can be controlled through this integration, includes hardware audio players from Logitech, including [Squeezebox 3rd Generation, Squeezebox Boom, Squeezebox Receiver, Transporter, Squeezebox2, Squeezebox and SLIMP3](https://lms-community.github.io/players-and-controllers/hardware-comparison/), and many software emulators like [Squeezelite, SqueezeSlave, SoftSqueeze and SqueezePlay](https://sourceforge.net/projects/lmsclients/files/).
@@ -46,6 +50,26 @@ transporter_toslink:
media_content_type: "music"
```
+## Entities
+
+### Binary sensors
+
+- **Needs restart**: Server Service needs to be restarted (typically, this is needed to apply updates).
+- **Library rescan**: The music library is currently being scanned by LMS (depending on the type of scan, some content may be unavailable).
+
+### Sensors
+
+- **Last scan**: Date of the last library scan.
+- **Player count**: Number of players on the service.
+- **Player count off service**: Number of players not on this service.
+- **Total albums**: Total number of albums currently available in the service.
+- **Total artists**: Total number of artists currently available in the service.
+- **Total duration**: Duration of all tracks in service (HHHH:MM:SS).
+- **Total genres**: Total number of genres used in current service.
+- **Total songs**: Total number of music files currently in service.
+
+## Actions
+
### Action `call_method`
Call a custom Squeezebox JSON-RPC API.
diff --git a/source/_integrations/sun.markdown b/source/_integrations/sun.markdown
index e637a4d806f7..715056b6aca9 100644
--- a/source/_integrations/sun.markdown
+++ b/source/_integrations/sun.markdown
@@ -63,8 +63,8 @@ an offset.
The sun trigger need to have the type 'sun', which event (sunset or sunrise) and an optional offset.
```yaml
-trigger:
- - platform: sun
+triggers:
+ - trigger: sun
event: sunrise
offset: "-01:00:01"
```
diff --git a/source/_integrations/switchbot_cloud.markdown b/source/_integrations/switchbot_cloud.markdown
index afac48dd1384..6b1d33302204 100644
--- a/source/_integrations/switchbot_cloud.markdown
+++ b/source/_integrations/switchbot_cloud.markdown
@@ -7,16 +7,19 @@ ha_category:
- Remote
- Sensor
- Switch
+ - Vacuum
ha_release: '2023.10'
ha_iot_class: Cloud Polling
ha_codeowners:
- '@SeraphicRav'
- '@laurence-presland'
+ - '@Gigatrappeur'
ha_domain: switchbot_cloud
ha_platforms:
- climate
- sensor
- switch
+ - vacuum
ha_config_flow: true
ha_integration_type: hub
---
@@ -41,6 +44,7 @@ Please note, device names configured in the SwitchBot app are transferred into H
- Meter
- MeterPlus
- Outdoor Meter
+- Vacuum K10+, K10+ pro, S1, S1 Plus
## Important considerations
diff --git a/source/_integrations/switcher_kis.markdown b/source/_integrations/switcher_kis.markdown
index abe24ecd0e26..1e88854ad9c5 100644
--- a/source/_integrations/switcher_kis.markdown
+++ b/source/_integrations/switcher_kis.markdown
@@ -10,6 +10,7 @@ ha_release: 0.93
ha_iot_class: Local Push
ha_codeowners:
- '@thecode'
+ - '@YogevBokobza'
ha_domain: switcher_kis
ha_platforms:
- button
@@ -34,9 +35,27 @@ Supported devices:
- Switcher V4
- Switcher Breeze
- Switcher Runner
+- Switcher Runner S11
+
+Devices that require a token:
+
+- Switcher Runner S11
If you completed the integration setup but are still unable to control the device, please make sure your device's firmware is up-to-date.
+## Prerequisites
+
+To enhance security, certain Switcher devices require a token for operation. In order to integrate your token-based Switcher devices with Home Assistant, you'll need the following information:
+
+- **The username of your Switcher Account**: To find the username, open the Switcher app.
+- **Local control key token**: To find the local control key token, browse to the
+ [Switcher GetKey API][token], enter your Switcher account username (which is an email address), and press
+ **Send Me The Code**.
+
+ The token will be sent to you by email. It will look something like this: `zvVvd7JxtN7CgvkD1Psujw==`
+
+[token]: https://switcher.co.il/GetKey/
+
{% include integrations/config_flow.md %}
## Buttons
@@ -87,5 +106,5 @@ Note: This does not affect the auto off timer.
## Notes
-Make sure that Home Assistant host's firewall allows incoming traffic on UDP ports 10002, 20002 & 20003 and outgoing connections to Switcher device(s) on TCP ports 9957 & 10000.
+Make sure that Home Assistant host's firewall allows incoming traffic on UDP ports 10002, 10003, 20002 & 20003 and outgoing connections to Switcher device(s) on TCP ports 9957 & 10000.
If Home Assistant and the Switcher device(s) are not on the same network, you will also need to have their traffic properly forwarded between the two networks.
diff --git a/source/_integrations/system_log.markdown b/source/_integrations/system_log.markdown
index 7c171b7a55bc..3390312216a9 100644
--- a/source/_integrations/system_log.markdown
+++ b/source/_integrations/system_log.markdown
@@ -90,15 +90,15 @@ counter:
automation:
- alias: "Count warnings"
- trigger:
- platform: event
- event_type: system_log_event
- event_data:
- level: WARNING
- action:
- action: counter.increment
- target:
- entity_id: counter.warning_counter
+ triggers:
+ - trigger: event
+ event_type: system_log_event
+ event_data:
+ level: WARNING
+ actions:
+ - action: counter.increment
+ target:
+ entity_id: counter.warning_counter
```
### Conditional Messages
@@ -110,17 +110,17 @@ This automation will create a persistent notification whenever an error or warni
```yaml
automation:
- alias: "Create notifications for 'action' errors"
- trigger:
- platform: event
- event_type: system_log_event
- condition:
- condition: template
- value_template: '{{ "action" in trigger.event.data.message[0] }}'
- action:
- action: persistent_notification.create
- data:
- title: Something bad happened
- message: "{{ trigger.event.data.message[0] }}"
+ triggers:
+ - trigger: event
+ event_type: system_log_event
+ conditions:
+ - condition: template
+ value_template: '{{ "action" in trigger.event.data.message[0] }}'
+ actions:
+ - action: persistent_notification.create
+ data:
+ title: "Something bad happened"
+ message: "{{ trigger.event.data.message[0] }}"
```
{% endraw %}
@@ -132,14 +132,14 @@ This automation will create a new log entry when the door is opened:
```yaml
automation:
- alias: "Log door opened"
- trigger:
- platform: state
- entity_id: binary_sensor.door
- from: "off"
- to: "on"
- action:
- action: system_log.write
- data:
- message: "Door opened!"
- level: info
+ triggers:
+ - trigger: state
+ entity_id: binary_sensor.door
+ from: "off"
+ to: "on"
+ actions:
+ - action: system_log.write
+ data:
+ message: "Door opened!"
+ level: info
```
diff --git a/source/_integrations/tado.markdown b/source/_integrations/tado.markdown
index f4f89e1a8325..c88daa5a5300 100644
--- a/source/_integrations/tado.markdown
+++ b/source/_integrations/tado.markdown
@@ -115,14 +115,14 @@ script:
# Example automation to set temperature offset based on another thermostat value
automation:
# Trigger if the state of either thermostat changes
- trigger:
- - platform: state
+ triggers:
+ - trigger: state
entity_id:
- sensor.temp_sensor_room
- sensor.tado_temperature
# Check if the room temp is more than 0.5 away from the tado thermostat reading condition. The sensors default to room temperature (20) when the reading is in error:
- condition:
+ conditions:
- condition: template
value_template: >
{% set tado_temp = states('sensor.tado_temperature')|float(20) %}
@@ -130,7 +130,7 @@ automation:
{{ (tado_temp - room_temp) | abs > 0.5 }}
# Work out what the new offset should be (tado temp less the room temp but add the current offset value) and turn that to a negative value for setting as the new offset
- action:
+ actions:
- action: tado.set_climate_temperature_offset
target:
entity_id: climate.tado
@@ -159,14 +159,14 @@ Examples:
# Example automation add meter readings on a daily basis.
automation:
# Trigger on specified time.
- trigger:
- - platform: time
+ triggers:
+ - trigger: time
at: "00:00:00"
# Add meter readings from `sensor.gas_consumption` to Tado.
# Retrieve your `config_entry` id by setting this automation up in UI mode.
# Notice that you may have to convert the reading to integer.
- action:
+ actions:
- action: tado.add_meter_reading
data:
config_entry: ef2e84b3dfc0aee85ed44ac8e8038ccf
diff --git a/source/_integrations/tag.markdown b/source/_integrations/tag.markdown
index 18cf41220af6..f780b3020d54 100644
--- a/source/_integrations/tag.markdown
+++ b/source/_integrations/tag.markdown
@@ -9,7 +9,7 @@ ha_codeowners:
- '@dmulcahey'
ha_domain: tag
ha_quality_scale: internal
-ha_integration_type: integration
+ha_integration_type: entity
---
@@ -58,9 +58,7 @@ One of the most fun applications of tags is to pick music in your living room. T
```yaml
automation:
-- id: handle_tag_scan
- alias: "Handle Tag Scan"
- mode: single
+- alias: "Handle Tag Scan"
# Hide warnings when triggered while in delay.
max_exceeded: silent
variables:
@@ -75,14 +73,14 @@ automation:
04-B1-C6-62-2F-64-80:
media_content_id: spotify:playlist:0OtWh3u6fZrBJTQtVBQWge
media_content_type: playlist
- trigger:
- platform: event
- event_type: tag_scanned
- condition:
+ triggers:
+ - trigger: event
+ event_type: tag_scanned
+ conditions:
# Test that we support this device and tag
- "{{ trigger.event.data.tag_id in tags }}"
- "{{ trigger.event.data.device_id in media_players }}"
- action:
+ actions:
- variables:
media_player_entity_id: "{{ media_players[trigger.event.data.device_id] }}"
media_content_id: "{{ tags[trigger.event.data.tag_id].media_content_id }}"
diff --git a/source/_integrations/tami4.markdown b/source/_integrations/tami4.markdown
index 33e8a8b2cd37..209f0f989a0e 100644
--- a/source/_integrations/tami4.markdown
+++ b/source/_integrations/tami4.markdown
@@ -3,6 +3,7 @@ title: Tami4 Edge / Edge+
description: Tami4 Edge Integration
ha_release: 2023.11
ha_category:
+ - Button
- Sensor
ha_iot_class: Cloud Polling
ha_config_flow: true
@@ -15,10 +16,34 @@ ha_platforms:
ha_integration_type: integration
---
-Support for [Tami4 Edge / Edge+ by Strauss](https://www.tami4.co.il/tami4edge-collection) in Home Assistant.
+The **Tami4 Edge** {% term integration %} allows you to control and monitor [Tami4 Edge / Edge+ by Strauss](https://www.tami4.co.il/tami4edge-collection) devices in Home Assistant.
You can boil water and get filter / UV information, such as when you need to replace them.
+Also, all of your personal drinks will be available as buttons for you to use.
You can easily pair your device by confirming your phone number which is registered with your Edge app account.
+## Prerequisites
+
+- Strauss'es Tami4 Edge / Edge+ device
+- Tami4 Edge account and app
+- Have your phone number registered with your Edge app account
+
{% include integrations/config_flow.md %}
+
+## Entities
+
+The Tami4 Edge integration provides the following entities.
+
+### Buttons
+
+- **Boil water**: Select this button to start boiling the water.
+- **Prepare drink**: Select this button to start preparing the drink. There's a button for each predefined drink.
+
+### Sensors
+
+**UV upcoming replacement**: Date when the UV lamp needs to be replaced.
+**UV installed**: Date when the UV lamp was installed.
+**Filter upcoming replacement**: Date when the filter needs to be replaced.
+**Filter installed**: Date when the filter was installed.
+**Filter water passed**: Amount of water (in liters) that has been filtered with the currently installed filter.
diff --git a/source/_integrations/telegram.markdown b/source/_integrations/telegram.markdown
index 3b2285b24cec..53030077bcdd 100644
--- a/source/_integrations/telegram.markdown
+++ b/source/_integrations/telegram.markdown
@@ -176,15 +176,15 @@ To use notifications, please see the [getting started with automation page](/get
```yaml
...
-action:
- action: notify.NOTIFIER_NAME
- data:
- title: "*Send a message*"
- message: "That's an example that _sends_ a *formatted* message with a custom inline keyboard."
+actions:
+ - action: notify.NOTIFIER_NAME
data:
- inline_keyboard:
- - 'Task 1:/command1, Task 2:/command2'
- - 'Task 3:/command3, Task 4:/command4'
+ title: "*Send a message*"
+ message: "That's an example that _sends_ a *formatted* message with a custom inline keyboard."
+ data:
+ inline_keyboard:
+ - 'Task 1:/command1, Task 2:/command2'
+ - 'Task 3:/command3, Task 4:/command4'
```
{% configuration %}
@@ -210,20 +210,20 @@ inline_keyboard:
```yaml
...
-action:
- action: notify.NOTIFIER_NAME
- data:
- title: Send an images
- message: "That's an example that sends an image."
+actions:
+ - action: notify.NOTIFIER_NAME
data:
- photo:
- - url: http://192.168.1.28/camera.jpg
- username: admin
- password: secret
- - file: /tmp/picture.jpg
- caption: Picture Title xy
- - url: http://somebla.ie/video.png
- caption: i.e., for a Title
+ title: "Send an images"
+ message: "That's an example that sends an image."
+ data:
+ photo:
+ - url: http://192.168.1.28/camera.jpg
+ username: "admin"
+ password: "secret"
+ - file: /tmp/picture.jpg
+ caption: "Picture Title xy"
+ - url: http://somebla.ie/video.png
+ caption: "i.e., for a Title"
```
{% configuration %}
@@ -286,20 +286,20 @@ homeassistant:
```yaml
...
-action:
- action: notify.NOTIFIER_NAME
- data:
- title: Send a video
- message: "That's an example that sends a video."
+actions:
+ - action: notify.NOTIFIER_NAME
data:
- video:
- - url: http://192.168.1.28/camera.mp4
- username: admin
- password: secret
- - file: /tmp/video.mp4
- caption: Video Title xy
- - url: http://somebla.ie/video.mp4
- caption: i.e., for a Title
+ title: "Send a video"
+ message: "That's an example that sends a video."
+ data:
+ video:
+ - url: http://192.168.1.28/camera.mp4
+ username: "admin"
+ password: "secret"
+ - file: /tmp/video.mp4
+ caption: "Video Title xy"
+ - url: http://somebla.ie/video.mp4
+ caption: "i.e., for a Title"
```
{% configuration %}
@@ -347,18 +347,18 @@ inline_keyboard:
```yaml
...
-action:
- action: notify.NOTIFIER_NAME
- data:
- title: Send a document
- message: "That's an example that sends a document and a custom keyboard."
+actions:
+ - action: notify.NOTIFIER_NAME
data:
- document:
- file: /tmp/whatever.odf
- caption: Document Title xy
- keyboard:
- - '/command1, /command2'
- - '/command3, /command4'
+ title: "Send a document"
+ message: "That's an example that sends a document and a custom keyboard."
+ data:
+ document:
+ file: /tmp/whatever.odf
+ caption: "Document Title xy"
+ keyboard:
+ - '/command1, /command2'
+ - '/command3, /command4'
```
{% configuration %}
@@ -407,15 +407,15 @@ inline_keyboard:
```yaml
...
-action:
- action: notify.NOTIFIER_NAME
- data:
- title: Send location
- message: Location updated.
+actions:
+ - action: notify.NOTIFIER_NAME
data:
- location:
- latitude: 32.87336
- longitude: 117.22743
+ title: "Send location"
+ message: "Location updated."
+ data:
+ location:
+ latitude: 32.87336
+ longitude: 117.22743
```
{% configuration %}
@@ -441,18 +441,18 @@ inline_keyboard:
```yaml
...
-action:
- action: notify.NOTIFIER_NAME
- data:
- title: "*Send a message*"
- message: |-
- That's an example that sends a message with message_tag, disable_notification and disable_web_page_preview.
- HA site
+actions:
+ - action: notify.NOTIFIER_NAME
data:
- parse_mode: html
- message_tag: "example_tag"
- disable_notification: True
- disable_web_page_preview: True
+ title: "*Send a message*"
+ message: |-
+ That's an example that sends a message with message_tag, disable_notification and disable_web_page_preview.
+ HA site
+ data:
+ parse_mode: html
+ message_tag: "example_tag"
+ disable_notification: True
+ disable_web_page_preview: True
```
{% configuration %}
diff --git a/source/_integrations/telegram_bot.markdown b/source/_integrations/telegram_bot.markdown
index a697554baba6..329ee3481221 100644
--- a/source/_integrations/telegram_bot.markdown
+++ b/source/_integrations/telegram_bot.markdown
@@ -345,13 +345,13 @@ chat_id: ""
Simple ping pong example.
```yaml
-alias: 'Telegram bot that reply pong to ping'
-trigger:
- platform: event
- event_type: telegram_command
- event_data:
- command: "/ping"
-action:
+alias: "Telegram bot that reply pong to ping"
+triggers:
+ - trigger: event
+ event_type: telegram_command
+ event_data:
+ command: "/ping"
+actions:
- action: notify.notify
data:
message: "pong"
@@ -360,12 +360,12 @@ action:
An example that shows keyboard interaction with `notify.telegram`
```yaml
-trigger:
- platform: event
- event_type: telegram_command
- event_data:
- command: "/start"
-action:
+triggers:
+ - trigger: event
+ event_type: telegram_command
+ event_data:
+ command: "/start"
+actions:
- action: notify.telegram
data:
message: "commands"
@@ -378,12 +378,12 @@ action:
and an automation to trigger a related command "/siren".
```yaml
-trigger:
- platform: event
- event_type: telegram_command
- event_data:
- command: "/siren"
-action:
+triggers:
+ - trigger: event
+ event_type: telegram_command
+ event_data:
+ command: "/siren"
+actions:
- action: homeassistant.turn_on
target:
entity_id: switch.vision_zm1601eu5_battery_operated_siren_switch_9_0
@@ -399,13 +399,13 @@ An example to show the use of event_data in action:
{% raw %}
```yaml
-- alias: 'Kitchen Telegram Speak'
- trigger:
- platform: event
- event_type: telegram_command
- event_data:
- command: "/speak"
- action:
+- alias: "Kitchen Telegram Speak"
+ triggers:
+ - trigger: event
+ event_type: telegram_command
+ event_data:
+ command: "/speak"
+ actions:
- action: notify.kitchen_echo
data:
message: >
@@ -427,11 +427,11 @@ Text repeater:
{% raw %}
```yaml
-- alias: 'Telegram bot that repeats text'
- trigger:
- platform: event
- event_type: telegram_text
- action:
+- alias: "Telegram bot that repeats text"
+ triggers:
+ - trigger: event
+ event_type: telegram_text
+ actions:
- action: telegram_bot.send_message
data:
title: "*Dumb automation*"
@@ -450,13 +450,13 @@ Message editor:
{% raw %}
```yaml
-- alias: 'Telegram bot that edits the last sent message'
- trigger:
- platform: event
- event_type: telegram_callback
- event_data:
- command: "/edit_msg"
- action:
+- alias: "Telegram bot that edits the last sent message"
+ triggers:
+ - trigger: event
+ event_type: telegram_callback
+ event_data:
+ command: "/edit_msg"
+ actions:
- action: telegram_bot.answer_callback_query
data:
callback_query_id: "{{ trigger.event.data.id }}"
@@ -483,13 +483,13 @@ Keyboard editor:
{% raw %}
```yaml
-- alias: 'Telegram bot that edits the keyboard'
- trigger:
- platform: event
- event_type: telegram_callback
- event_data:
- command: "/remove_button"
- action:
+- alias: "Telegram bot that edits the keyboard"
+ triggers:
+ - trigger: event
+ event_type: telegram_callback
+ event_data:
+ command: "/remove_button"
+ actions:
- action: telegram_bot.answer_callback_query
data:
callback_query_id: "{{ trigger.event.data.id }}"
@@ -509,13 +509,13 @@ Only acknowledges the 'NO' answer:
{% raw %}
```yaml
-- alias: 'Telegram bot that simply acknowledges'
- trigger:
- platform: event
- event_type: telegram_callback
- event_data:
- command: "/do_nothing"
- action:
+- alias: "Telegram bot that simply acknowledges"
+ triggers:
+ - trigger: event
+ event_type: telegram_callback
+ event_data:
+ command: "/do_nothing"
+ actions:
- action: telegram_bot.answer_callback_query
data:
callback_query_id: "{{ trigger.event.data.id }}"
@@ -529,13 +529,13 @@ Telegram callbacks also support arguments and commands the same way as normal me
{% raw %}
```yaml
-- alias: 'Telegram bot repeats arguments on callback query'
- trigger:
- platform: event
- event_type: telegram_callback
- event_data:
- command: "/repeat"
- action:
+- alias: "Telegram bot repeats arguments on callback query"
+ triggers:
+ - trigger: event
+ event_type: telegram_callback
+ event_data:
+ command: "/repeat"
+ actions:
- action: telegram_bot.answer_callback_query
data:
show_alert: true
@@ -553,12 +553,12 @@ Receiving `chat_id` and `message_id` identifiers of sent messages by the `telegr
```yaml
- alias: 'Notifications about messages sent by Telegram bot'
- trigger:
- platform: event
- event_type: telegram_sent
- event_data:
- message_tag: "msg_start"
- action:
+ triggers:
+ - trigger: event
+ event_type: telegram_sent
+ event_data:
+ message_tag: "msg_start"
+ actions:
- action: input_number.set_value
data_template:
entity_id: input_number.chat_id
@@ -574,7 +574,7 @@ Receiving `chat_id` and `message_id` identifiers of sent messages by the `telegr
## Example: send_message with formatted Text
```yaml
-action:
+actions:
- action: notify.telegrambot
data:
title: Example Message
@@ -584,7 +584,7 @@ action:
## Example: send_message with message tag
```yaml
-action:
+actions:
- action: notify.telegrambot
data:
title: Example Message
@@ -596,7 +596,7 @@ action:
## Example: send_message with disabled webpage preview:
```yaml
-action:
+actions:
- action: notify.telegram
data:
message: >-
diff --git a/source/_integrations/template.markdown b/source/_integrations/template.markdown
index 70e42e820382..ec1fff885f80 100644
--- a/source/_integrations/template.markdown
+++ b/source/_integrations/template.markdown
@@ -111,7 +111,7 @@ The state, including attributes, of trigger-based sensors and binary sensors is
# Example configuration entry
template:
- trigger:
- - platform: time_pattern
+ - trigger: time_pattern
# This will update every night
hours: 0
minutes: 0
@@ -133,6 +133,10 @@ unique_id:
description: The unique ID for this config block. This will be prefixed to all unique IDs of all entities in this block.
required: false
type: string
+condition:
+ description: Define conditions that have to be met after a trigger fires and before any actions are executed or sensor updates are performed. Optional. [See condition documentation](/docs/automation/condition).
+ required: false
+ type: list
action:
description: Define actions to be executed when the trigger fires. Optional. Variables set by the action script are available when evaluating entity templates. This can be used to interact with anything using actions, in particular actions with [response data](/docs/scripts/perform-actions#use-templates-to-handle-response-data). [See action documentation](/docs/automation/action).
required: false
@@ -214,6 +218,11 @@ number:
description: Template for the number's current value.
required: true
type: template
+ unit_of_measurement:
+ description: Defines the units of measurement of the number, if any.
+ required: false
+ type: string
+ default: None
set_value:
description: Defines actions to run when the number value changes. The variable `value` will contain the number entered.
required: true
@@ -493,7 +502,7 @@ Template entities can be triggered using any automation trigger, including webho
```yaml
template:
- trigger:
- - platform: webhook
+ - trigger: webhook
webhook_id: my-super-secret-webhook-id
sensor:
- name: "Webhook Temperature"
@@ -528,7 +537,7 @@ You can use a trigger-based template entity to convert any event or other automa
```yaml
template:
- trigger:
- platform: event
+ trigger: event
event_type: my_event
binary_sensor:
- name: Event recently fired
@@ -536,6 +545,27 @@ template:
state: "true"
```
+### Using conditions with triggers to control status updates
+
+This example shows how to store the last valid value of a temperature sensor. It will update as long as the source sensor has a valid (numeric) state. Otherwise, the template sensor's state will remain unchanged.
+
+{% raw %}
+
+```yaml
+template:
+ - trigger:
+ trigger: state
+ entity_id: sensor.outside_temperature
+ condition:
+ - condition: template
+ value_template: "{{ is_number(states('sensor.outside_temperature')) }}"
+ sensor:
+ - name: Outside Temperature last known value
+ state: "{{ states('sensor.outside_temperature') }}"
+```
+
+{% endraw %}
+
### State based sensor exposing sun angle
This example shows the sun angle in the frontend.
@@ -723,9 +753,9 @@ The binary sensor turns on and sets the matching icon when the appropriate event
```yaml
template:
- trigger:
- - platform: event
+ - trigger: event
event_type: YOUR_EVENT
- - platform: state
+ - trigger: state
entity_id: binary_sensor.doorbell_rang
to: "off"
binary_sensor:
@@ -790,7 +820,7 @@ and use the response in a template.
```yaml
template:
- trigger:
- - platform: time_pattern
+ - trigger: time_pattern
hours: /1
action:
- action: weather.get_forecasts
@@ -809,6 +839,33 @@ template:
{% endraw %}
+### Number entity changing the unit of measurement of another number
+
+This example demonstrates the usage of a template number with a unit of measurement set to change a unit-less value of another number entity.
+
+{% raw %}
+
+```yaml
+template:
+ - number:
+ - name: "Cutting Height"
+ unit_of_measurement: "cm"
+ unique_id: automower_cutting_height
+ state: "{{ states('number.automower_cutting_height_raw')|int(0) * 0.5 + 1.5 }}"
+ set_value:
+ - service: number.set_value
+ target:
+ entity_id: number.automower_cutting_height_raw
+ data:
+ value: "{{ (value - 1.5) * 2 }}"
+ step: 0.5
+ min: 2
+ max: 6
+ icon: mdi:ruler
+```
+
+{% endraw %}
+
## Legacy binary sensor configuration format
diff --git a/source/_integrations/tensorflow.markdown b/source/_integrations/tensorflow.markdown
index b8e0ab42b208..53294479cd73 100644
--- a/source/_integrations/tensorflow.markdown
+++ b/source/_integrations/tensorflow.markdown
@@ -209,11 +209,11 @@ image_processing:
```yaml
# Example advanced automations.yaml entry
- alias: "TensorFlow scanning"
- trigger:
- - platform: state
+ triggers:
+ - trigger: state
entity_id:
- binary_sensor.driveway
- action:
+ actions:
- action: image_processing.scan
target:
entity_id: camera.driveway
diff --git a/source/_integrations/tesla_fleet.markdown b/source/_integrations/tesla_fleet.markdown
index dafe60f31ab7..3fea2ef8a758 100644
--- a/source/_integrations/tesla_fleet.markdown
+++ b/source/_integrations/tesla_fleet.markdown
@@ -3,9 +3,17 @@ title: Tesla Fleet
description: Instructions on how to integrate the Tesla Fleet API within Home Assistant.
ha_category:
- Binary sensor
+ - Button
- Car
+ - Climate
+ - Cover
- Device tracker
+ - Lock
+ - Media player
+ - Number
+ - Select
- Sensor
+ - Switch
ha_release: 2024.8
ha_iot_class: Cloud Polling
ha_config_flow: true
@@ -14,9 +22,17 @@ ha_codeowners:
ha_domain: tesla_fleet
ha_platforms:
- binary_sensor
+ - button
+ - climate
+ - cover
- device_tracker
- diagnostics
+ - lock
+ - media_player
+ - number
+ - select
- sensor
+ - switch
ha_quality_scale: gold
ha_integration_type: integration
---
@@ -46,6 +62,10 @@ When connecting your Tesla account to Home Assistant, you **must** select the `V
Tesla restricts open-source integrations to the ["Discovery" plan](https://developer.tesla.com/docs/fleet-api/getting-started/subscription-plans) which only allows for 200 vehicle data requests per day. The integration will initially poll every 90 seconds, making vehicle data requests only when the vehicle is awake, and then dynamically slow down polling based on how many vehicle data requests have been made in the last 24 hours.
+## Command signing
+
+Certain vehicles, including all vehicles manufactured since late 2023, require vehicle commands to be encrypted end-to-end and signed with a private key. The Tesla Fleet integration is unable to perform this encryption at this time, so certain features may be disabled or throw an exception when used.
+
## Entities
These are the entities available in the Tesla Fleet integration. Not all entities are enabled by default, and not all values are always available.
@@ -77,8 +97,34 @@ These are the entities available in the Tesla Fleet integration. Not all entitie
|Binary sensor|Tire pressure warning rear right|No|
|Binary sensor|Trip charging|No|
|Binary sensor|User present|Yes|
+|Button|Flash lights|Yes|
+|Button|Homelink|Yes|
+|Button|Honk horn|Yes|
+|Button|Keyless driving|Yes|
+|Button|Play fart|Yes|
+|Button|Wake|Yes|
+|Climate|Cabin overheat protection|No|
+|Climate|Climate|Yes|
+|Cover|Charge port door|Yes|
+|Cover|Frunk|Yes|
+|Cover|Sunroof|No|
+|Cover|Trunk|Yes|
+|Cover|Vent windows|Yes|
|Device tracker|Location|Yes|
|Device tracker|Route|Yes|
+|Lock|Charge cable lock|Yes|
+|Lock|Lock|Yes|
+|Media player|Media player|Yes|
+|Number|Charge current|Yes|
+|Number|Charge limit|Yes|
+|Select|Seat heater front left|Yes|
+|Select|Seat heater front right|Yes|
+|Select|Seat heater rear center|No|
+|Select|Seat heater rear left|No|
+|Select|Seat heater rear right|No|
+|Select|Seat heater third row left|No|
+|Select|Seat heater third row right|No|
+|Select|Steering wheel heater|Yes|
|Sensor|Battery level|Yes|
|Sensor|Battery range|Yes|
|Sensor|Charge cable|No|
@@ -91,7 +137,6 @@ These are the entities available in the Tesla Fleet integration. Not all entitie
|Sensor|Distance to arrival|Yes|
|Sensor|Driver temperature setting|No|
|Sensor|Estimate battery range|No|
-|Sensor|Exterior color|No|
|Sensor|Fast charger type|No|
|Sensor|Ideal battery range|No|
|Sensor|Inside temperature|Yes|
@@ -99,27 +144,23 @@ These are the entities available in the Tesla Fleet integration. Not all entitie
|Sensor|Outside temperature|Yes|
|Sensor|Passenger temperature setting|No|
|Sensor|Power|No|
-|Sensor|Roof color|No|
-|Sensor|Scheduled charging mode|No|
-|Sensor|Scheduled charging start time|No|
-|Sensor|Scheduled departure time|No|
|Sensor|Shift state|No|
|Sensor|Speed|No|
|Sensor|State of charge at arrival|No|
-|Sensor|Time at arrival|Yes|
-|Sensor|Time at full charge|Yes|
|Sensor|Time to arrival|Yes|
|Sensor|Time to full charge|Yes|
|Sensor|Tire pressure front left|No|
|Sensor|Tire pressure front right|No|
-|Sensor|Tire pressure last measured front left|No|
-|Sensor|Tire pressure last measured front right|No|
-|Sensor|Tire pressure last measured rear left|No|
-|Sensor|Tire pressure last measured rear right|No|
|Sensor|Tire pressure rear left|No|
|Sensor|Tire pressure rear right|No|
|Sensor|Traffic delay|No|
|Sensor|Usable battery level|No|
+|Switch|Auto seat climate left|Yes|
+|Switch|Auto seat climate right|Yes|
+|Switch|Auto steering wheel heater|Yes|
+|Switch|Charge|Yes|
+|Switch|Defrost|Yes|
+|Switch|Sentry mode|Yes|
### Energy sites
@@ -128,6 +169,11 @@ These are the entities available in the Tesla Fleet integration. Not all entitie
|Binary sensor|Backup capable|Yes|
|Binary sensor|Grid services active|Yes|
|Binary sensor|Grid services enabled|Yes|
+|Binary sensor|Storm watch active|Yes|
+|Number|Backup reserve|Yes|
+|Number|Off grid reserve|Yes|
+|Select|Allow export|Yes|
+|Select|Operation mode|Yes|
|Sensor|Battery power|Yes|
|Sensor|Energy left|Yes|
|Sensor|Generator power|No|
@@ -140,6 +186,8 @@ These are the entities available in the Tesla Fleet integration. Not all entitie
|Sensor|Total pack energy|No|
|Sensor|VPP backup reserve|Yes|
|Sensor|Version|Yes|
+|Switch|Allow charging from grid|Yes|
+|Switch|Storm watch|Yes|
### Wall connector
diff --git a/source/_integrations/teslemetry.markdown b/source/_integrations/teslemetry.markdown
index cfc42c3154d3..364d5070d77e 100644
--- a/source/_integrations/teslemetry.markdown
+++ b/source/_integrations/teslemetry.markdown
@@ -167,18 +167,34 @@ These are the entities available in the Teslemetry integration. Not all entities
|Binary sensor|Backup capable|Yes|
|Binary sensor|Grid services active|Yes|
|Binary sensor|Grid services enabled|Yes|
+|Binary sensor|Storm watch active|Yes|
|Number|Backup reserve|Yes|
|Number|Off grid reserve|Yes|
|Select|Allow export|Yes|
|Select|Operation mode|Yes|
|Sensor|Battery power|Yes|
+|Sensor|Consumer imported from battery|No|
+|Sensor|Consumer imported from generator|No|
+|Sensor|Consumer imported from grid|No|
+|Sensor|Consumer imported from solar|No|
|Sensor|Energy left|Yes|
+|Sensor|Generator exported|Yes|
|Sensor|Generator power|No|
+|Sensor|Grid exported|Yes|
+|Sensor|Grid exported from battery|No|
+|Sensor|Grid exported from generator|No|
+|Sensor|Grid exported from solar|No|
+|Sensor|Grid imported|No|
|Sensor|Grid power|Yes|
+|Sensor|Grid services exported|No|
+|Sensor|Grid services imported|No|
|Sensor|Grid services power|Yes|
+|Sensor|Home usage|Yes|
|Sensor|Island status|Yes|
|Sensor|Load power|Yes|
|Sensor|Percentage charged|Yes|
+|Sensor|Solar exported|No|
+|Sensor|Solar generated|Yes|
|Sensor|Solar power|Yes|
|Sensor|Total pack energy|No|
|Sensor|Version|Yes|
diff --git a/source/_integrations/tessie.markdown b/source/_integrations/tessie.markdown
index 6a90a6d5caa6..913ca0c17f89 100644
--- a/source/_integrations/tessie.markdown
+++ b/source/_integrations/tessie.markdown
@@ -227,6 +227,7 @@ The integration will show vehicle software updates and their installation progre
- Backup capable
- Grid services enabled
- Grid services active
+- Storm watch active
### Number
diff --git a/source/_integrations/thermoworks_smoke.markdown b/source/_integrations/thermoworks_smoke.markdown
index 7557cddcc3e5..1b5488a96b43 100644
--- a/source/_integrations/thermoworks_smoke.markdown
+++ b/source/_integrations/thermoworks_smoke.markdown
@@ -107,15 +107,15 @@ input_number:
automation:
- alias: "Alert when My Smoke Probe 1 is above threshold"
- trigger:
- platform: template
- value_template: >-
- {% if (states("sensor.my_smoke_probe_1") | float) > (states("input_number.smoke_probe_1_threshold") | float) %}
- True
- {% else %}
- False
- {% endif %}
- action:
+ triggers:
+ - trigger: template
+ value_template: >-
+ {% if (states("sensor.my_smoke_probe_1") | float) > (states("input_number.smoke_probe_1_threshold") | float) %}
+ True
+ {% else %}
+ False
+ {% endif %}
+ actions:
- action: notify.all
data:
message: >
diff --git a/source/_integrations/tibber.markdown b/source/_integrations/tibber.markdown
index 157d8d3d4443..fa01b4d7fdf3 100644
--- a/source/_integrations/tibber.markdown
+++ b/source/_integrations/tibber.markdown
@@ -42,12 +42,12 @@ To use notifications, please see the [getting started with automation page](/get
### Send message
```yaml
-action:
- action: notify.send_message
- data:
- entity_id: notify.tibber
- title: Your title
- message: This is a message for you!
+actions:
+ - action: notify.send_message
+ data:
+ entity_id: notify.tibber
+ title: "Your title"
+ message: "This is a message for you!"
```
## Sensor
@@ -143,14 +143,14 @@ The electricity price can be used to make automations. The sensor has a `max_pri
```yaml
- alias: "Electricity price"
- trigger:
- platform: time_pattern
- # Matches every hour at 1 minutes past whole
- minutes: 1
- condition:
- condition: template
- value_template: '{{ float(states('sensor.electricity_price_hamretunet_10')) > 0.9 * float(state_attr('sensor.electricity_price_hamretunet_10', 'max_price')) }}'
- action:
+ triggers:
+ - trigger: time_pattern
+ # Matches every hour at 1 minutes past whole
+ minutes: 1
+ conditions:
+ - condition: template
+ value_template: '{{ float(states('sensor.electricity_price_hamretunet_10')) > 0.9 * float(state_attr('sensor.electricity_price_hamretunet_10', 'max_price')) }}'
+ actions:
- action: notify.pushbullet
data:
title: "Electricity price"
@@ -158,6 +158,4 @@ The electricity price can be used to make automations. The sensor has a `max_pri
message: "The electricity price is now {{ states('sensor.electricity_price_hamretunet_10') }}"
```
-
-
{% endraw %}
diff --git a/source/_integrations/timer.markdown b/source/_integrations/timer.markdown
index bc179282d24f..44be36988f0d 100644
--- a/source/_integrations/timer.markdown
+++ b/source/_integrations/timer.markdown
@@ -153,11 +153,11 @@ timer:
- alias: "Timerswitch"
id: "Timerstart"
# Timer is started when the switch pumprun is set to on.
- trigger:
- - platform: state
+ triggers:
+ - trigger: state
entity_id: switch.pumprun
to: "on"
- action:
+ actions:
- action: timer.start
target:
entity_id: timer.test
@@ -165,12 +165,12 @@ timer:
# When timer is stopped, the time run out, another message is sent
- alias: "Timerstop"
id: "Timerstop"
- trigger:
- - platform: event
+ triggers:
+ - trigger: event
event_type: timer.finished
event_data:
entity_id: timer.test
- action:
+ actions:
- action: notify.nma
data:
message: "Timer stop"
diff --git a/source/_integrations/totalconnect.markdown b/source/_integrations/totalconnect.markdown
index 3c022f584dd6..275910d09425 100644
--- a/source/_integrations/totalconnect.markdown
+++ b/source/_integrations/totalconnect.markdown
@@ -33,39 +33,44 @@ Give the user access to your Location, along with a user code, usually a 4 digit
**Auto Bypass Low Battery:** if enabled, TotalConnect zones will immediately be bypassed when they report low battery. This option helps because zones tend to report low battery in the middle of the night. The downside of this option is that when the alarm system is armed, the bypassed zone will not be monitored.
+**Require Code:** if enabled, you must enter the user code to disarm the alarm.
+
## Automation example
+
```yaml
automation:
- alias: "Alarm: Disarmed Daytime"
- trigger:
- platform: state
- entity_id: alarm_control_panel.total_connect
- to: "disarmed"
- condition:
- condition: sun
- before: sunset
- action:
- action: scene.turn_on
- target:
- entity_id: scene.OnDisarmedDaytime
+ triggers:
+ - trigger: state
+ entity_id: alarm_control_panel.total_connect
+ to: "disarmed"
+ conditions:
+ - condition: sun
+ before: sunset
+ actions:
+ - action: scene.turn_on
+ target:
+ entity_id: scene.on_disarmed_day_time
+
- alias: "Alarm: Armed Away"
- trigger:
- platform: state
- entity_id: alarm_control_panel.total_connect
- to: "armed_away"
- action:
- action: scene.turn_on
- target:
- entity_id: scene.OnArmedAway
- - alias: "Alarm: Arm Home Instant at Sunset"
- trigger:
- platform: sun
- event: sunset
- offset: '0'
- action:
- action: totalconnect.arm_home_instant
- target:
+ triggers:
+ - trigger: state
entity_id: alarm_control_panel.total_connect
+ to: "armed_away"
+ actions:
+ - action: scene.turn_on
+ target:
+ entity_id: scene.on_armed_away
+
+ - alias: "Alarm: Arm Home Instant at Sunset"
+ triggers:
+ - trigger: sun
+ event: sunset
+ offset: 0
+ actions:
+ - action: totalconnect.arm_home_instant
+ target:
+ entity_id: alarm_control_panel.total_connect
```
{% details "Notes for Home Assistant Core Installations" %}
diff --git a/source/_integrations/touchline_sl.markdown b/source/_integrations/touchline_sl.markdown
index 58b611cb6275..d9da13299913 100644
--- a/source/_integrations/touchline_sl.markdown
+++ b/source/_integrations/touchline_sl.markdown
@@ -8,7 +8,10 @@ ha_iot_class: Cloud Polling
ha_domain: touchline_sl
ha_platforms:
- climate
-ha_integration_type: integration
+ha_integration_type: hub
+ha_codeowners:
+ - '@jnsgruk'
+ha_config_flow: true
---
The **Roth Touchline SL** climate integration enables you to control [Roth Touchline SL](https://www.roth-uk.com/products/control-systems/roth-touchliner-sl-wireless-system) underfloor heating systems.
diff --git a/source/_integrations/tplink.markdown b/source/_integrations/tplink.markdown
index 78fc910ec3d3..43e4917e5f01 100644
--- a/source/_integrations/tplink.markdown
+++ b/source/_integrations/tplink.markdown
@@ -11,6 +11,7 @@ ha_category:
- Number
- Select
- Sensor
+ - Siren
- Switch
ha_release: 0.89
ha_iot_class: Local Polling
@@ -30,6 +31,7 @@ ha_platforms:
- number
- select
- sensor
+ - siren
- switch
ha_dhcp: true
ha_quality_scale: platinum
diff --git a/source/_integrations/tplink_tapo.markdown b/source/_integrations/tplink_tapo.markdown
index 90dd40eb4663..3ee90a156dd5 100644
--- a/source/_integrations/tplink_tapo.markdown
+++ b/source/_integrations/tplink_tapo.markdown
@@ -11,6 +11,7 @@ ha_category:
- Number
- Select
- Sensor
+ - Siren
- Switch
ha_domain: tplink_tapo
ha_release: 0.89
@@ -32,6 +33,7 @@ ha_platforms:
- number
- select
- sensor
+ - siren
- switch
ha_iot_class: Local Polling
ha_dhcp: true
diff --git a/source/_integrations/traccar_server.markdown b/source/_integrations/traccar_server.markdown
index 0f51f4e9cf58..83c70210b64d 100644
--- a/source/_integrations/traccar_server.markdown
+++ b/source/_integrations/traccar_server.markdown
@@ -74,7 +74,7 @@ Attributes:
The Traccar Server integration will create devices for each device registered in the Traccar Server with at least one position update.
-These device representations in Home Assistant will have [entities](#entities) associated with them, which you can use in [automations](/docs/automation), [scripts](/docs/script), and display on your [dashboard](/docs/dashboard).
+These device representations in Home Assistant will have [entities](#entities) associated with them, which you can use in [automations](/docs/automation), [scripts](/docs/scripts), and display on your [dashboard](/dashboards).
## Entities
@@ -266,11 +266,11 @@ The allows you to do something when the device "Millennium Falcon" enters the de
{% details "Show me the YAML!" %}
```yaml
-trigger:
- - platform: state
+triggers:
+ - trigger: state
entity_id: sensor.millennium_falcon_geofence
to: 'Tatooine'
-action:
+actions:
...
```
@@ -285,11 +285,11 @@ The allows you to do something when the device "Millennium Falcon" exceeds a def
{% details "Show me the YAML!" %}
```yaml
-trigger:
- - platform: numeric_state
+triggers:
+ - trigger: numeric_state
entity_id: sensor.millennium_falcon_speed
above: 1337
-action:
+actions:
...
```
@@ -298,9 +298,9 @@ If you want to include the speed in a notification, you can use the `{{ trigger.
Partial example:
```yaml
-trigger:
+triggers:
...
-action:
+actions:
- action: notify.notify
data:
message: "The current speed of the Millennium falcon is {{ trigger.to_state.state }}!"
diff --git a/source/_integrations/transmission.markdown b/source/_integrations/transmission.markdown
index 2c00f5b17568..55b97be7c907 100644
--- a/source/_integrations/transmission.markdown
+++ b/source/_integrations/transmission.markdown
@@ -62,10 +62,10 @@ Example of an automation that notifies on successful download and removes the to
```yaml
- alias: "Notify and remove completed torrent"
- trigger:
- - platform: event
+ triggers:
+ - trigger: event
event_type: transmission_downloaded_torrent
- action:
+ actions:
- action: notify.telegram_notifier
data:
title: "Torrent completed!"
diff --git a/source/_integrations/triggercmd.markdown b/source/_integrations/triggercmd.markdown
new file mode 100644
index 000000000000..381d68203ee4
--- /dev/null
+++ b/source/_integrations/triggercmd.markdown
@@ -0,0 +1,35 @@
+---
+title: TRIGGERcmd
+description: How to integrate TRIGGERcmd with Home Assistant.
+ha_category:
+ - Automation
+ - Switch
+ha_release: '2024.10'
+ha_iot_class: Cloud Polling
+ha_config_flow: true
+ha_codeowners:
+ - '@rvmey'
+ha_domain: triggercmd
+ha_platforms:
+ - switch
+ha_integration_type: hub
+---
+
+The TRIGGERcmd {% term integration %} allows you to run commands on computers via [TRIGGERcmd](https://triggercmd.com/) with Home Assistant.
+
+
+## Prerequisites
+
+To use TRIGGERcmd, you need the following:
+
+- A [TRIGGERcmd account](https://www.triggercmd.com/user/auth/signup)
+- A computer with the TRIGGERcmd agent running on it
+- For instructions on installing and using TRIGGERcmd itself, refer to the [TRIGGERcmd Quick Start Guide](https://docs.triggercmd.com/#/./QuickStart).
+- After adding the TRIGGERcmd integration, you will be prompted for your **user token**. This can be found at the bottom of your TRIGGERcmd profile page or the instructions page.
+{% include integrations/config_flow.md %}
+
+## Using TRIGGERcmd with Home Assistant
+
+All of your TRIGGERcmd commands should show up as **switch** devices. You can change the rooms of your devices, or select **Finish** to leave them without rooms.
+
+Using the switch will trigger the respective command. If you have **Allow parameters** enabled, your command will run with an "on" or "off" parameter, depending on whether you flip the switch in Home Assistant on or off.
diff --git a/source/_integrations/twilio.markdown b/source/_integrations/twilio.markdown
index c3d2aab155c9..cdae2343b916 100644
--- a/source/_integrations/twilio.markdown
+++ b/source/_integrations/twilio.markdown
@@ -56,18 +56,18 @@ Here is an example:
```yaml
automation:
- trigger:
- platform: event
- event_type: twilio_data_received
- event_data:
- From: '+1XXXXXXXXXXX'
- To: '+1YYYYYYYYYYY'
- CallStatus: ringing
- Direction: inbound
- action:
- action: cover.open_cover
- target:
- entity_id: cover.garage_door
+ triggers:
+ - trigger: event
+ event_type: twilio_data_received
+ event_data:
+ From: '+1XXXXXXXXXXX'
+ To: '+1YYYYYYYYYYY'
+ CallStatus: ringing
+ Direction: inbound
+ actions:
+ - action: cover.open_cover
+ target:
+ entity_id: cover.garage_door
```
The above opens the garage door when the number `+1XXXXXXXXXXX` calls `+1YYYYYYYYYYY` (considering that `+1YYYYYYYYYYY` is one of your numbers registered in Twilio).
@@ -76,11 +76,11 @@ An example of an SMS handler:
{% raw %}
```yaml
-alias: Twilio incoming
-trigger:
- - platform: event
+alias: "Twilio incoming"
+triggers:
+ - trigger: event
event_type: twilio_data_received
-action:
+actions:
- variables:
sender: |
{{ trigger.event.data.From }}
diff --git a/source/_integrations/twilio_call.markdown b/source/_integrations/twilio_call.markdown
index 2d81081dc473..d39677cfacd7 100644
--- a/source/_integrations/twilio_call.markdown
+++ b/source/_integrations/twilio_call.markdown
@@ -48,14 +48,14 @@ Twilio is a notification platform and thus can be controlled by calling the noti
# Example automation notification entry
automation:
- alias: "The sun has set"
- trigger:
- platform: sun
- event: sunset
- action:
- action: notify.twilio_call
- data:
- message: "The sun has set"
- target:
- - +14151234567
- - +15105555555
+ triggers:
+ - trigger: sun
+ event: sunset
+ actions:
+ - action: notify.twilio_call
+ data:
+ message: "The sun has set"
+ target:
+ - +14151234567
+ - +15105555555
```
diff --git a/source/_integrations/twilio_sms.markdown b/source/_integrations/twilio_sms.markdown
index f433bb369d2f..5850f113425e 100644
--- a/source/_integrations/twilio_sms.markdown
+++ b/source/_integrations/twilio_sms.markdown
@@ -51,17 +51,17 @@ Media can be included with messages by setting the optional `media_url` variable
# Example automation notification entry
automation:
- alias: "The sun has set"
- trigger:
- platform: sun
- event: sunset
- action:
- action: notify.twilio_sms
- data:
- message: "The sun has set"
- target:
- - '+14151234567'
- - '+15105555555'
+ triggers:
+ - trigger: sun
+ event: sunset
+ actions:
+ - action: notify.twilio_sms
data:
- media_url:
- - "https://www.home-assistant.io/images/supported_brands/home-assistant.png"
+ message: "The sun has set"
+ target:
+ - '+14151234567'
+ - '+15105555555'
+ data:
+ media_url:
+ - "https://www.home-assistant.io/images/supported_brands/home-assistant.png"
```
diff --git a/source/_integrations/unifi.markdown b/source/_integrations/unifi.markdown
index 520d77a517ad..f0959448017b 100644
--- a/source/_integrations/unifi.markdown
+++ b/source/_integrations/unifi.markdown
@@ -51,6 +51,8 @@ All configuration options are offered from the front end. Enter what UniFi Netwo
The UniFi Network application allows you to create multiple users on it besides the main administrator. If all you want to use is the device tracker then it is recommended that you create a limited user that has `read-only` permissions for the UniFi Network device tracker. If you want blocking of network access, POE control, or firmware upgrades as well you would need to have 'admin' permissions.
+If you want to create a local-only user, you need to switch to the classic UniFi interface for the option to become available.
+
### UniFi OS
For UniFi OS a local-only user needs to be created. A user who uses the Ubiquiti cloud will not work. You can do this in the manage users section on the UniFi OS dashboard. Make sure to give it the right permissions for the functions you want to use. Note the Dream Machine Pro and Cloud Key Gen2 plus updated to UniFi OS needs the port to be 443. For some self hosted servers the port will be 8443.
@@ -130,6 +132,10 @@ Entities appear for each port forwarding rule.
Entities appear for each WLAN. Changing the state of WLAN will trigger a reconfiguration of affected access points, limiting access to all WLANs exposed by the access point.
+### Traffic Rules
+
+Entities appear for each Traffic Rule. This allows toggling rules on and off.
+
## Sensor
### Bandwidth sensor
diff --git a/source/_integrations/universal.markdown b/source/_integrations/universal.markdown
index b4a9887ab278..0083d073bc9e 100644
--- a/source/_integrations/universal.markdown
+++ b/source/_integrations/universal.markdown
@@ -226,7 +226,7 @@ media_player:
volume_level: media_player.kodi|volume_level
- platform: kodi
- name: Kodi
+ name: "Kodi"
host: 192.168.1.10
turn_on_action:
- action: input_boolean.turn_on
@@ -240,6 +240,7 @@ media_player:
addonid: script.json-cec
params:
command: activate
+
turn_off_action:
- action: input_boolean.turn_off
target:
@@ -257,24 +258,25 @@ media_player:
command: standby
automation:
- - alias: Turn on the TV when Kodi is activated
- trigger:
- platform: state
- entity_id: media_player.kodi_tv
- from: "off"
- to: playing
- action:
+ - alias: "Turn on the TV when Kodi is activated"
+ triggers:
+ - trigger: state
+ entity_id: media_player.kodi_tv
+ from: "off"
+ to: "playing"
+ actions:
- action: media_player.turn_on
target:
entity_id: media_player.kodi_tv
- - alias: Turn off the TV when Kodi is in idle > 15 min
- trigger:
- platform: state
- entity_id: media_player.kodi_tv
- to: idle
- for:
- minutes: 15
- action:
+
+ - alias: "Turn off the TV when Kodi is in idle > 15 min"
+ triggers:
+ - trigger: state
+ entity_id: media_player.kodi_tv
+ to: "idle"
+ for:
+ minutes: 15
+ actions:
- action: media_player.turn_off
target:
entity_id: media_player.kodi_tv
diff --git a/source/_integrations/upb.markdown b/source/_integrations/upb.markdown
index 9acd6a7903c9..c039b61f91f4 100644
--- a/source/_integrations/upb.markdown
+++ b/source/_integrations/upb.markdown
@@ -176,20 +176,20 @@ Start a scene blinking.
```yaml
#automation:
-- alias: "'Specific scene activated'"
+- alias: "Specific scene activated"
description: "Trigger when scene 9 on network 42 is activated"
- trigger:
- platform: event
- event_type: upb.scene_changed
- event_data:
- command: activated
- address: "42_9"
- action:
- action: persistent_notification.create
- data:
- title: "Scene Activated"
- message: >
- Activated scene 9 on network 42: {{trigger.event.data.command}}, {{trigger.event.data.address}}
+ triggers:
+ - trigger: event
+ event_type: upb.scene_changed
+ event_data:
+ command: activated
+ address: "42_9"
+ actions:
+ - action: persistent_notification.create
+ data:
+ title: "Scene Activated"
+ message: >
+ Activated scene 9 on network 42: {{trigger.event.data.command}}, {{trigger.event.data.address}}
```
diff --git a/source/_integrations/update.markdown b/source/_integrations/update.markdown
index 20e4b9f1afdf..932bf1cb5d7e 100644
--- a/source/_integrations/update.markdown
+++ b/source/_integrations/update.markdown
@@ -147,14 +147,14 @@ the update for a light bulb becomes available.
```yaml
automation:
- alias: "Send notification when update available"
- trigger:
- platform: state
- entity_id: update.my_light_bulb
- to: "on"
- action:
- alias: "Send notification to my phone about the update"
- action: notify.iphone
- data:
- title: "New update available"
- message: "New update available for my_light_bulb!"
+ triggers:
+ - trigger: state
+ entity_id: update.my_light_bulb
+ to: "on"
+ actions:
+ - alias: "Send notification to my phone about the update"
+ action: notify.iphone
+ data:
+ title: "New update available"
+ message: "New update available for my_light_bulb!"
```
diff --git a/source/_integrations/uprise_smart_shades.markdown b/source/_integrations/uprise_smart_shades.markdown
index 1cb707f2f8ef..8bc6c92ceecb 100644
--- a/source/_integrations/uprise_smart_shades.markdown
+++ b/source/_integrations/uprise_smart_shades.markdown
@@ -12,6 +12,7 @@ ha_codeowners:
- '@starkillerOG'
ha_config_flow: true
ha_platforms:
+ - button
- cover
- sensor
ha_iot_class: Local Push
diff --git a/source/_integrations/utility_meter.markdown b/source/_integrations/utility_meter.markdown
index 01dadd8cc365..bdab9600e162 100644
--- a/source/_integrations/utility_meter.markdown
+++ b/source/_integrations/utility_meter.markdown
@@ -212,16 +212,16 @@ a time based automation can be used:
```yaml
automation:
- trigger:
- - platform: time
+ triggers:
+ - trigger: time
at: "09:00:00"
variables:
tariff: "peak"
- - platform: time
+ - trigger: time
at: "21:00:00"
variables:
tariff: "offpeak"
- action:
+ actions:
- action: select.select_option
target:
entity_id: select.daily_energy
diff --git a/source/_integrations/vacuum.mqtt.markdown b/source/_integrations/vacuum.mqtt.markdown
index 8fc1da7bf458..dd09750f59dc 100644
--- a/source/_integrations/vacuum.mqtt.markdown
+++ b/source/_integrations/vacuum.mqtt.markdown
@@ -274,17 +274,17 @@ Action trigger example:
```yaml
- alias: "Push command based on sensor"
- trigger:
- - platform: state
+ triggers:
+ - trigger: state
entity_id: sensor.sensor
- action:
- action: vacuum.send_command
- target:
- entity_id: vacuum.vacuum_entity
- data:
- command: "custom_command"
- params:
- - key: value
+ actions:
+ - action: vacuum.send_command
+ target:
+ entity_id: vacuum.vacuum_entity
+ data:
+ command: "custom_command"
+ params:
+ - key: value
```
MQTT topic: `vacuum/send_command`
diff --git a/source/_integrations/vallox.markdown b/source/_integrations/vallox.markdown
index a4bf430dcf33..d3bd0da0d9af 100644
--- a/source/_integrations/vallox.markdown
+++ b/source/_integrations/vallox.markdown
@@ -91,3 +91,12 @@ Set the fan speed of the `Boost` profile.
| Data attribute | Optional | Description |
|------------------------|----------|-------------------------------------------------|
| `fan_speed` | no | Fan speed in %. `Integer`, between 0 and 100. |
+
+### Action `vallox.set_profile`
+
+Set the profile, and optionally a duration for the profile to be active.
+
+| Data attribute | Optional | Description |
+|----------------|---------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `profile` | no | Profile to set, one of `home`, `away`, `boost`, `fireplace`, or `extra`. |
+| `duration` | yes | Duration to activate the profile for; in minutes. `Integer` between 1 and 65535. Only applies to `boost`, `fireplace` or `extra` profiles. 65535 sets the profile without a timeout. |
\ No newline at end of file
diff --git a/source/_integrations/valve.markdown b/source/_integrations/valve.markdown
index 862d6fcc5e62..4b38e1655030 100644
--- a/source/_integrations/valve.markdown
+++ b/source/_integrations/valve.markdown
@@ -57,10 +57,10 @@ Valves that allow setting a specific position may also be controlled with `valve
```yaml
automation:
- trigger:
- platform: time
- at: "07:15:00"
- action:
+ triggers:
+ - trigger: time
+ at: "07:15:00"
+ actions:
- action: valve.close
target:
entity_id: valve.demo
@@ -79,10 +79,10 @@ Set the position of one or multiple valves if they support setting a specific po
```yaml
automation:
- trigger:
- platform: time
- at: "07:15:00"
- action:
+ triggers:
+ - trigger: time
+ at: "07:15:00"
+ actions:
- action: valve.set_position
target:
entity_id: valve.demo
diff --git a/source/_integrations/velbus.markdown b/source/_integrations/velbus.markdown
index f41e6c923f6c..1e1ff9fa19c0 100644
--- a/source/_integrations/velbus.markdown
+++ b/source/_integrations/velbus.markdown
@@ -82,11 +82,11 @@ script:
trash_memo:
alias: "Trash memo text"
sequence:
- - data:
+ - action: velbus.set_memo_text
+ data:
address: 65
memo_text: "It's trash day"
interface: "tls://192.168.1.9:27015"
- action: velbus.set_memo_text
```
### Action `velbus.clear_cache`
@@ -122,47 +122,46 @@ The actual linking can be realized by two automation rules. One rule to control
```yaml
# Control light living from Velbus push_button_10
-- id: 'Control_light_living_from_Velbus'
- alias: "Control light living using Velbus push_button_10"
- trigger:
- - entity_id: binary_sensor.push_button_10
- platform: state
- to: "on"
- condition: []
- action:
- - entity_id: light.living
- action: light.toggle
+- alias: "Control light living using Velbus push_button_10"
+ triggers:
+ - trigger: state
+ entity_id: binary_sensor.push_button_10
+ to: "on"
+ actions:
+ - action: light.toggle
+ entity_id: light.living
+
# Keep status LED push_button_10 in sync to status light living
-- id: 'Update LED of push_button_10'
- alias: "Update LED state of push_button_10"
- trigger:
- - entity_id: light.living
- platform: state
- to: "on"
- - entity_id: light.living
- platform: state
- to: "off"
- condition: []
- action:
- - condition: or
- conditions:
- - condition: and
+- alias: "Update LED state of push_button_10"
+ triggers:
+ - trigger: state
+ entity_id: light.living
+ to: "on"
+ - trigger: state
+ entity_id: light.living
+ to: "off"
+ conditions:
+ - condition: or
conditions:
- - condition: state
- entity_id: light.led_push_button_10
- state: "on"
- - condition: state
- entity_id: light.living
- state: "off"
- - condition: and
- conditions:
- - condition: state
- entity_id: light.led_push_button_10
- state: "off"
- - condition: state
- entity_id: light.living
- state: "on"
- - entity_id: light.led_push_button_10
- action: light.toggle
+ - condition: and
+ conditions:
+ - condition: state
+ entity_id: light.led_push_button_10
+ state: "on"
+ - condition: state
+ entity_id: light.living
+ state: "off"
+ - condition: and
+ conditions:
+ - condition: state
+ entity_id: light.led_push_button_10
+ state: "off"
+ - condition: state
+ entity_id: light.living
+ state: "on"
+ actions:
+ - action: light.toggle
+ entity_id: light.led_push_button_10
+
```
diff --git a/source/_integrations/velux.markdown b/source/_integrations/velux.markdown
index 7d23943bda46..5456babc746c 100644
--- a/source/_integrations/velux.markdown
+++ b/source/_integrations/velux.markdown
@@ -48,13 +48,13 @@ As a workaround, you can use an automation to force a restart of the KLF 200 bef
```yaml
automation:
- alias: KLF reboot on hass stop event
- description: Reboots the KLF200 in order to avoid SSL Handshake issue
- trigger:
- - platform: homeassistant
- event: shutdown
- action:
- - action: velux.reboot_gateway
+ - alias: "KLF reboot on hass stop event"
+ description: "Reboots the KLF200 in order to avoid SSL Handshake issue"
+ triggers:
+ - trigger: homeassistant
+ event: shutdown
+ actions:
+ - action: velux.reboot_gateway
```
## Velux Active (KIX 300)
diff --git a/source/_integrations/verisure.markdown b/source/_integrations/verisure.markdown
index a186b42f9de1..ee8ce9abe152 100644
--- a/source/_integrations/verisure.markdown
+++ b/source/_integrations/verisure.markdown
@@ -53,10 +53,10 @@ The `changed_by` attribute enables one to be able to take different actions depe
```yaml
automation:
- alias: "Alarm status changed"
- trigger:
- - platform: state
+ triggers:
+ - trigger: state
entity_id: alarm_control_panel.alarm_1
- action:
+ actions:
- action: notify.notify
data:
message: >
diff --git a/source/_integrations/vivotek.markdown b/source/_integrations/vivotek.markdown
index 115f8c1e2bbf..95ff695e8162 100644
--- a/source/_integrations/vivotek.markdown
+++ b/source/_integrations/vivotek.markdown
@@ -121,12 +121,12 @@ Play a live stream from a camera to selected media player(s). Requires [`stream`
For example, the following action in an automation would send an `hls` live stream to your chromecast.
```yaml
-action:
- action: camera.play_stream
- target:
- entity_id: camera.yourcamera
- data:
- media_player: media_player.chromecast
+actions:
+ - action: camera.play_stream
+ target:
+ entity_id: camera.yourcamera
+ data:
+ media_player: media_player.chromecast
```
#### Action `enable_motion_detection`
@@ -161,12 +161,12 @@ For example, the following action is an automation that would take a snapshot fr
{% raw %}
```yaml
-action:
- action: camera.snapshot
- target:
- entity_id: camera.front_door_camera
- data:
- filename: '/tmp/yourcamera_{{ now().strftime("%Y%m%d-%H%M%S") }}.jpg'
+actions:
+ - action: camera.snapshot
+ target:
+ entity_id: camera.front_door_camera
+ data:
+ filename: '/tmp/yourcamera_{{ now().strftime("%Y%m%d-%H%M%S") }}.jpg'
```
{% endraw %}
diff --git a/source/_integrations/wake_on_lan.markdown b/source/_integrations/wake_on_lan.markdown
index c32d6d4b1d21..697864cdc546 100644
--- a/source/_integrations/wake_on_lan.markdown
+++ b/source/_integrations/wake_on_lan.markdown
@@ -173,7 +173,7 @@ A switch defined with the `wake_on_lan` platform will render in the UI with both
- Continuing your example, the trigger YAML will look like this:
```yaml
- platform: state
+ trigger: state
entity_id:
- input_button.wake_pc
```
diff --git a/source/_integrations/wallbox.markdown b/source/_integrations/wallbox.markdown
index 592d21c333c5..0e12fa7f4464 100644
--- a/source/_integrations/wallbox.markdown
+++ b/source/_integrations/wallbox.markdown
@@ -25,26 +25,28 @@ The **Wallbox** {% term integration %} pulls data from the [MyWallbox Portal](ht
The {% term integration %} adds the following sensors:
-- Added energy
-- Added range
-- Charging power
+- Added energy (kWh)
+- Added range (km)
+- Charging power (kW)
- Charging speed
- Charging time
-- Cost
+- Cost ([default currency])
- Current mode
-- Depot price
-- Energy price
-- Max available power
-- State of charge
+- Depot price ([default currency]/kWh)
+- Energy price ([default currency]/kWh)
+- Max available power (A)
+- State of charge (%)
- Status description
-- Max charging current
+- Max charging current (A)
+- Max ICP current (A)
## Number
The {% term integration %} adds the following number entities:
-- Max charging current
-- Energy price
+- Max charging current (A)
+- Max ICP current; this is the maximum current available for load balancing (A)
+- Energy price ([default currency]/kWh)
The number {% term entity %} is only loaded if the supplied username has sufficient rights to change the Max. Charging Current.
diff --git a/source/_integrations/water_heater.markdown b/source/_integrations/water_heater.markdown
index 05e7dbb153aa..b7af270d6c83 100644
--- a/source/_integrations/water_heater.markdown
+++ b/source/_integrations/water_heater.markdown
@@ -58,10 +58,10 @@ Sets target temperature of water heater device.
```yaml
automation:
- trigger:
- platform: time
- at: "07:15:00"
- action:
+ triggers:
+ - trigger: time
+ at: "07:15:00"
+ actions:
- action: water_heater.set_temperature
target:
entity_id: water_heater.demo
@@ -83,10 +83,10 @@ Set operation mode for water heater device
```yaml
automation:
- trigger:
- platform: time
- at: "07:15:00"
- action:
+ triggers:
+ - trigger: time
+ at: "07:15:00"
+ actions:
- action: water_heater.set_operation_mode
target:
entity_id: water_heater.demo
@@ -107,10 +107,10 @@ Turn away mode on or off for water heater device
```yaml
automation:
- trigger:
- platform: time
- at: "07:15:00"
- action:
+ triggers:
+ - trigger: time
+ at: "07:15:00"
+ actions:
- action: water_heater.set_away_mode
target:
entity_id: water_heater.demo
diff --git a/source/_integrations/watttime.markdown b/source/_integrations/watttime.markdown
index 630f02429337..2776de783f6e 100644
--- a/source/_integrations/watttime.markdown
+++ b/source/_integrations/watttime.markdown
@@ -2,9 +2,9 @@
title: WattTime
description: Instructions on how to set up the WattTime integration within Home Assistant.
ha_category:
- - Sensor
- Energy
- Environment
+ - Sensor
ha_release: '2021.10'
ha_iot_class: Cloud Polling
ha_domain: watttime
diff --git a/source/_integrations/weather.markdown b/source/_integrations/weather.markdown
index 6b7810e539b5..6d138a869134 100644
--- a/source/_integrations/weather.markdown
+++ b/source/_integrations/weather.markdown
@@ -122,7 +122,7 @@ Example template sensor that contains the hourly forecast
```yaml
template:
- trigger:
- - platform: time_pattern
+ - trigger: time_pattern
hours: /1
action:
- action: weather.get_forecasts
diff --git a/source/_integrations/webhook.markdown b/source/_integrations/webhook.markdown
index 23f283bc1cd0..be06d5635da6 100644
--- a/source/_integrations/webhook.markdown
+++ b/source/_integrations/webhook.markdown
@@ -8,7 +8,7 @@ ha_quality_scale: internal
ha_codeowners:
- '@home-assistant/core'
ha_domain: webhook
-ha_integration_type: integration
+ha_integration_type: system
---
diff --git a/source/_integrations/webostv.markdown b/source/_integrations/webostv.markdown
index a0183080940b..f5cd57c02ca2 100644
--- a/source/_integrations/webostv.markdown
+++ b/source/_integrations/webostv.markdown
@@ -51,10 +51,10 @@ wake_on_lan: # enables `wake_on_lan` integration
automation:
- alias: "Turn On Living Room TV with WakeOnLan"
- trigger:
- - platform: webostv.turn_on
+ triggers:
+ - trigger: webostv.turn_on
entity_id: media_player.lg_webos_smart_tv
- action:
+ actions:
- action: wake_on_lan.send_magic_packet
data:
mac: aa:bb:cc:dd:ee:ff
@@ -162,16 +162,16 @@ The icon can be overridden for individual notifications by providing a path to a
```yaml
automation:
- alias: "Front door motion"
- trigger:
- platform: state
- entity_id: binary_sensor.front_door_motion
- to: "on"
- action:
- action: notify.livingroom_tv
- data:
- message: "Movement detected: Front Door"
+ triggers:
+ - trigger: state
+ entity_id: binary_sensor.front_door_motion
+ to: "on"
+ actions:
+ - action: notify.livingroom_tv
data:
- icon: "/home/homeassistant/images/doorbell.png"
+ message: "Movement detected: Front Door"
+ data:
+ icon: "/home/homeassistant/images/doorbell.png"
```
## Notes
diff --git a/source/_integrations/weheat.markdown b/source/_integrations/weheat.markdown
new file mode 100644
index 000000000000..bbbf2e897edb
--- /dev/null
+++ b/source/_integrations/weheat.markdown
@@ -0,0 +1,47 @@
+---
+title: Weheat
+description: Instructions on setting up Weheat within Home Assistant.
+ha_category:
+ - Climate
+ - Energy
+ - Sensor
+ha_iot_class: Cloud Polling
+ha_release: '2024.10'
+ha_config_flow: true
+ha_codeowners:
+ - '@jesperraemaekers'
+ha_domain: weheat
+ha_platforms:
+ - sensor
+ha_integration_type: integration
+---
+
+The **Weheat** {% term integration %} allows you to display your [Weheat](https://www.weheat.nl/) devices through Home Assistant.
+
+## Prerequisites
+
+- You need a Weheat account, **username**, and **password**
+- When adding the integration in Home Assistant, you will be prompted to enter a **Name**, **Client ID**, and **Client Secret**.
+ - The name is arbitrary, the ID and secret are provided in the [knowledge base](https://support.weheat.nl/s/article/Is-er-een-offici%C3%ABle-Home-Assistant-integratie).
+- During setup of the integration in Home Assistant, you will be redirected to the Weheat login provider. Log in using your **username** and **password**.
+ - After login, select **link account** to link your account.
+
+{% include integrations/config_flow.md %}
+
+## Entities
+
+### Sensors
+
+The Weheat integration provides the following sensors:
+
+- **Output power**: Thermal power added to the water in Watts
+- **Input power**: Electrical power in Watts
+- **COP**: The Coefficient of performance between the above two power measurements
+- **Water inlet temperature**: The heat pump water inlet temperature in °C
+- **Water outlet temperature**: The heat pump water outlet temperature in °C
+- **Central heating inlet temperature**: The central heating inlet temperature in °C
+- **Outside temperature**: Outside temperature in °C
+- **Electricity used**: Total electricity used in kWh
+- **State**: The current heat pump state
+- **DHW top temperature**: The domestic hot water temperature in the top of the vessel in °C (optional)
+- **DHW bottom temperature"**: The domestic hot water temperature in the bottom of the vessel in °C (optional)
diff --git a/source/_integrations/wemo.markdown b/source/_integrations/wemo.markdown
index daa960d97a9d..8700f9f8a153 100644
--- a/source/_integrations/wemo.markdown
+++ b/source/_integrations/wemo.markdown
@@ -147,13 +147,13 @@ The following is an example implementation of an automation:
# Example automation
- id: long_press_living_room
alias: "Toggle amplifier power"
- trigger:
- - platform: event
+ triggers:
+ - trigger: event
event_type: wemo_subscription_event
event_data:
type: LongPress
name: Living Room
- action:
+ actions:
- action: media_player.toggle
target:
entity_id: media_player.amplifier
diff --git a/source/_integrations/wled.markdown b/source/_integrations/wled.markdown
index 6d858121c657..6026c089fd3a 100644
--- a/source/_integrations/wled.markdown
+++ b/source/_integrations/wled.markdown
@@ -202,11 +202,11 @@ Here is an example of all of these put together into an automation:
```yaml
- alias: "Turn on WLED rain effect when weather changes to rainy"
- trigger:
- - platform: state
+ triggers:
+ - trigger: state
entity_id: sensor.weather_condition
to: "rainy"
- action:
+ actions:
- action: light.turn_on
target:
entity_id: light.wled
diff --git a/source/_integrations/wmspro.markdown b/source/_integrations/wmspro.markdown
new file mode 100644
index 000000000000..8ee79c811916
--- /dev/null
+++ b/source/_integrations/wmspro.markdown
@@ -0,0 +1,38 @@
+---
+title: WMS WebControl pro
+description: Instructions on how to integrate WAREMA devices via WMS WebControl pro within Home Assistant.
+ha_category:
+ - Cover
+ - Hub
+ha_release: '2024.10'
+ha_iot_class: Local Polling
+ha_codeowners:
+ - '@mback2k'
+ha_domain: wmspro
+ha_config_flow: true
+ha_platforms:
+ - cover
+ - diagnostics
+ha_integration_type: hub
+related:
+ - url: https://www.warema.com/en/smart-home/wms-webcontrol-pro/
+ title: Consumer information about WMS WebControl pro
+ - url: https://smartbuildings.warema.com/en/control-systems/radio-systems/wms/wms-webcontrol-pro/
+ title: Technical documentation for WMS WebControl pro
+ha_dhcp: true
+---
+
+The **WMS WebControl pro** {% term integration %} allows you to integrate WAREMA devices into Home Assistant.
+
+This integration uses a local API which is available with firmware container version 11H.
+
+See device section for support information: [covers](#covers).
+
+{% include integrations/config_flow.md %}
+
+The WMS WebControl pro *may* also be discovered on your local network via DHCP.
+
+## Covers
+
+- *Patio awnings* can be opened, closed, set to a certain position and their movement stopped.
+- The integration and library *may* already support other types of awnings with a single motor.
diff --git a/source/_integrations/workday.markdown b/source/_integrations/workday.markdown
index 8878df4608d8..067f3ac54b4f 100644
--- a/source/_integrations/workday.markdown
+++ b/source/_integrations/workday.markdown
@@ -14,6 +14,7 @@ ha_codeowners:
ha_domain: workday
ha_platforms:
- binary_sensor
+ - diagnostics
ha_integration_type: integration
---
@@ -83,15 +84,15 @@ Example usage for automation:
```yaml
automation:
alias: "Turn on heater on workdays"
- trigger:
- platform: time
- at: "08:00:00"
- condition:
- condition: state
- entity_id: binary_sensor.workday_sensor
- state: "on"
- action:
- action: switch.turn_on
- target:
- entity_id: switch.heater
+ triggers:
+ - trigger: time
+ at: "08:00:00"
+ conditions:
+ - condition: state
+ entity_id: binary_sensor.workday_sensor
+ state: "on"
+ actions:
+ - action: switch.turn_on
+ target:
+ entity_id: switch.heater
```
diff --git a/source/_integrations/xiaomi_aqara.markdown b/source/_integrations/xiaomi_aqara.markdown
index bee0a1f5774a..74ee9f7ac0be 100644
--- a/source/_integrations/xiaomi_aqara.markdown
+++ b/source/_integrations/xiaomi_aqara.markdown
@@ -84,19 +84,31 @@ name:
type: string
{% endconfiguration %}
-### Actions
+## Entities
+
+The Xiaomi Gateway (Aqara) integration supports the following entities.
+
+### Locks
+
+An Aqara lock cannot be controlled by Home Assistant. However, the lock entity allows you to view the following data:
+
+- The property `changed_by` provides the user/key ID of the last successful unlock.
+
+- If someone tries to unlock the device but fails more than 3 times, the `verified_wrong_times` attribute will be incremented. The counter resets on a successful unlock.
+
+## Actions
The gateway provides the following actions:
-#### Action `xiaomi_aqara.play_ringtone`
+### Action `xiaomi_aqara.play_ringtone`
Play a specific ringtone. The version of the gateway firmware must be `1.4.1_145` at least. Take a look at the examples below.
-| Data attribute | Optional | Description |
-|---------------------------|----------|-------------------------------------------------------|
-| `gw_mac` | no | MAC address of the Xiaomi Aqara Gateway |
-| `ringtone_id` | no | One of the allowed ringtone ids |
-| `ringtone_vol` | yes | The volume in percent |
+| Data attribute | Optional | Description |
+| -------------- | -------- | --------------------------------------- |
+| `gw_mac` | no | MAC address of the Xiaomi Aqara Gateway |
+| `ringtone_id` | no | One of the allowed ringtone ids |
+| `ringtone_vol` | yes | The volume in percent |
Allowed values of the `ringtone_id` are:
@@ -128,30 +140,30 @@ Allowed values of the `ringtone_id` are:
- 29 - Thinker
- Custom ringtones (uploaded by the Mi Home app) starting from 10001
-#### Action `xiaomi_aqara.stop_ringtone`
+### Action `xiaomi_aqara.stop_ringtone`
Stops a playing ringtone immediately.
-| Data attribute | Optional | Description |
-|---------------------------|----------|-------------------------------------------------------|
-| `gw_mac` | no | MAC address of the Xiaomi Aqara Gateway |
+| Data attribute | Optional | Description |
+| -------------- | -------- | --------------------------------------- |
+| `gw_mac` | no | MAC address of the Xiaomi Aqara Gateway |
-#### Action `xiaomi_aqara.add_device`
+### Action `xiaomi_aqara.add_device`
Enables the join permission of the Xiaomi Aqara Gateway for 30 seconds. A new device can be added afterwards by pressing the pairing button once.
-| Data attribute | Optional | Description |
-|---------------------------|----------|-------------------------------------------------------|
-| `gw_mac` | no | MAC address of the Xiaomi Aqara Gateway |
+| Data attribute | Optional | Description |
+| -------------- | -------- | --------------------------------------- |
+| `gw_mac` | no | MAC address of the Xiaomi Aqara Gateway |
-#### Action `xiaomi_aqara.remove_device`
+### Action `xiaomi_aqara.remove_device`
Removes a specific device. The removal is required if a device shall be paired with another gateway.
-| Data attribute | Optional | Description |
-|---------------------------|----------|-------------------------------------------------------|
-| `gw_mac` | no | MAC address of the Xiaomi Aqara Gateway |
-| `device_id` | no | Hardware address of the device to remove |
+| Data attribute | Optional | Description |
+| -------------- | -------- | ---------------------------------------- |
+| `gw_mac` | no | MAC address of the Xiaomi Aqara Gateway |
+| `device_id` | no | Hardware address of the device to remove |
## Examples
@@ -163,30 +175,30 @@ This example plays the sound of a dog barking when the button is held down and s
```yaml
- alias: "Let a dog bark on long press"
- trigger:
- platform: event
- event_type: xiaomi_aqara.click
- event_data:
- entity_id: binary_sensor.switch_158d000xxxxxc2
- click_type: long_click_press
- action:
- action: xiaomi_aqara.play_ringtone
- data:
- gw_mac: xxxxxxxxxxxx
- ringtone_id: 8
- ringtone_vol: 8
+ triggers:
+ - trigger: event
+ event_type: xiaomi_aqara.click
+ event_data:
+ entity_id: binary_sensor.switch_158d000xxxxxc2
+ click_type: long_click_press
+ actions:
+ - action: xiaomi_aqara.play_ringtone
+ data:
+ gw_mac: xxxxxxxxxxxx
+ ringtone_id: 8
+ ringtone_vol: 8
- alias: "Stop barking immediately on single click"
- trigger:
- platform: event
- event_type: xiaomi_aqara.click
- event_data:
- entity_id: binary_sensor.switch_158d000xxxxxc2
- click_type: single
- action:
- action: xiaomi_aqara.stop_ringtone
- data:
- gw_mac: xxxxxxxxxxxx
+ triggers:
+ - trigger: event
+ event_type: xiaomi_aqara.click
+ event_data:
+ entity_id: binary_sensor.switch_158d000xxxxxc2
+ click_type: single
+ actions:
+ - action: xiaomi_aqara.stop_ringtone
+ data:
+ gw_mac: xxxxxxxxxxxx
```
### Double click on smart button
@@ -195,16 +207,16 @@ This example toggles the living room lamp on a double click of the button.
```yaml
- alias: "Double Click to toggle living room lamp"
- trigger:
- platform: event
- event_type: xiaomi_aqara.click
- event_data:
- entity_id: binary_sensor.switch_158d000xxxxxc2
- click_type: double
- action:
- action: light.toggle
- target:
- entity_id: light.living_room_lamp
+ triggers:
+ - trigger: event
+ event_type: xiaomi_aqara.click
+ event_data:
+ entity_id: binary_sensor.switch_158d000xxxxxc2
+ click_type: double
+ actions:
+ - action: light.toggle
+ target:
+ entity_id: light.living_room_lamp
```
## Troubleshooting
diff --git a/source/_integrations/xiaomi_miio.markdown b/source/_integrations/xiaomi_miio.markdown
index 1c2312391216..52e4dd3963cc 100644
--- a/source/_integrations/xiaomi_miio.markdown
+++ b/source/_integrations/xiaomi_miio.markdown
@@ -223,6 +223,7 @@ Supported devices:
| Air Purifier Pro H | zhimi.airpurifier.va1 | |
| Air Purifier Pro H EU | zhimi.airpurifier.vb2 | |
| Air Purifier 3C | zhimi.airpurifier.mb4 | |
+| Air Purifier 3C | zhimi.airp.mb4a | |
| Air Purifier ZA1 | zhimi.airpurifier.za1 | |
| Air Purifier 4 | zhimi.airp.mb5 | AC-M16-SC |
| Air Purifier 4 PRO | zhimi.airp.vb4 | AC-M15-SC |
@@ -531,7 +532,7 @@ This model uses newer MiOT communication protocol.
| Buzzer | Turn on/off the buzzer |
| Child Lock | Turn on/off the child lock |
-### Air Purifier 3C (zhimi.airpurifier.mb4)
+### Air Purifier 3C (zhimi.airpurifier.mb4/zhimi.airp.mb4a)
- Power (on, off)
- Operation modes (Auto, Silent, Favorite)
@@ -1499,11 +1500,10 @@ Inline array:
```yaml
automation:
- alias: "Test vacuum zone3"
- trigger:
- - event: start
- platform: homeassistant
- condition: []
- action:
+ triggers:
+ - trigger: homeassistant
+ event: start
+ actions:
- action: xiaomi_miio.vacuum_clean_zone
target:
entity_id: vacuum.xiaomi_vacuum
@@ -1520,11 +1520,10 @@ Array with inline zone:
```yaml
automation:
- alias: "Test vacuum zone3"
- trigger:
- - event: start
- platform: homeassistant
- condition: []
- action:
+ triggers:
+ - trigger: homeassistant
+ event: start
+ actions:
- action: xiaomi_miio.vacuum_clean_zone
target:
entity_id: vacuum.xiaomi_vacuum
@@ -1542,11 +1541,10 @@ Array mode:
```yaml
automation:
- alias: "Test vacuum zone3"
- trigger:
- - event: start
- platform: homeassistant
- condition: []
- action:
+ triggers:
+ - trigger: homeassistant
+ event: start
+ actions:
- action: xiaomi_miio.vacuum_clean_zone
target:
entity_id: vacuum.xiaomi_vacuum
@@ -1579,11 +1577,10 @@ Multiple segments:
```yaml
automation:
- alias: "Vacuum kitchen and living room"
- trigger:
- - event: start
- platform: homeassistant
- condition: []
- action:
+ triggers:
+ - trigger: homeassistant
+ event: start
+ actions:
- action: xiaomi_miio.vacuum_clean_segment
target:
entity_id: vacuum.xiaomi_vacuum
@@ -1596,11 +1593,10 @@ Single segment:
```yaml
automation:
- alias: "Vacuum kitchen"
- trigger:
- - event: start
- platform: homeassistant
- condition: []
- action:
+ triggers:
+ - trigger: homeassistant
+ event: start
+ actions:
- action: xiaomi_miio.vacuum_clean_segment
target:
entity_id: vacuum.xiaomi_vacuum
@@ -1613,10 +1609,10 @@ The original app for Xiaomi vacuum has a nice feature of room cleaning with repe
```yaml
automation:
- alias: "Vacuum kitchen"
- trigger:
- - event: start
- platform: homeassistant
- action:
+ triggers:
+ - trigger: homeassistant
+ event: start
+ actions:
- action: xiaomi_miio.vacuum_clean_segment
target:
entity_id: vacuum.xiaomi_vacuum
diff --git a/source/_integrations/yale.markdown b/source/_integrations/yale.markdown
index 6c09750c19f7..bc696f45b404 100644
--- a/source/_integrations/yale.markdown
+++ b/source/_integrations/yale.markdown
@@ -137,20 +137,17 @@ Using the lock operation sensors, you can detect when a user operates a lock and
{% raw %}
```yaml
-- id: "1583706446906"
- alias: "joe_doe_front_door_operate"
- description: John Doe locks or unlocks the Front Door
- trigger:
- - entity_id: sensor.front_door_operator
- platform: state
- to: John Doe
- condition:
- - condition: template
- value_template: "{{ not state_attr('sensor.front_door_operator', 'remote') }}"
- action:
- - data: {}
- entity_id: camera.inside
- service: camera.turn_off
+- alias: "John Doe locks or unlocks the Front Door"
+ triggers:
+ - trigger: state
+ entity_id: sensor.front_door_operator
+ to: "John Doe"
+ conditions:
+ - condition: template
+ value_template: "{{ not state_attr('sensor.front_door_operator', 'remote') }}"
+ actions:
+ - action: camera.turn_off
+ entity_id: camera.inside
```
{% endraw %}
diff --git a/source/_integrations/yale_home.markdown b/source/_integrations/yale_home.markdown
index b874c85a4013..b6b7b1301b57 100644
--- a/source/_integrations/yale_home.markdown
+++ b/source/_integrations/yale_home.markdown
@@ -9,7 +9,7 @@ ha_category:
- Event
- Lock
- Sensor
-ha_release: 0.64
+ha_release: 2024.9
ha_domain: yale_home
ha_integration_type: virtual
ha_supporting_domain: yale
diff --git a/source/_integrations/yale_smart_alarm.markdown b/source/_integrations/yale_smart_alarm.markdown
index 5529cb6603e4..21297782e3d3 100644
--- a/source/_integrations/yale_smart_alarm.markdown
+++ b/source/_integrations/yale_smart_alarm.markdown
@@ -7,6 +7,7 @@ ha_category:
- Button
- Lock
- Sensor
+ - Switch
ha_release: 0.78
ha_iot_class: Cloud Polling
ha_config_flow: true
@@ -20,6 +21,7 @@ ha_platforms:
- diagnostics
- lock
- sensor
+ - switch
ha_integration_type: integration
---
@@ -32,6 +34,7 @@ There is currently support for the following device types within Home Assistant:
- Button
- Lock
- Sensor
+- Switch
{% include integrations/config_flow.md %}
@@ -57,4 +60,8 @@ The lock platform requires a code for unlocking but no code for locking.
Provides support for smoke detector temperature sensors.
+## Switch
+
+Provides support for enable/disable autolock on locks. Entity is only available for supported door locks.
+
The {% term integration %} can be configured to provide a default code that is used if no code is supplied and the number of digits required.
diff --git a/source/_integrations/yolink.markdown b/source/_integrations/yolink.markdown
index 16589ffdc1e9..cd149290fb03 100644
--- a/source/_integrations/yolink.markdown
+++ b/source/_integrations/yolink.markdown
@@ -99,6 +99,7 @@ The integration is tested and verified for the following devices from YoLink:
- YS5007-UC (FlowSmart Meter)
- YS5008-UC (FlowSmart All-in-One)
- YS8017-UC (Thermometer)
+- YS8008-UC (Float Thermometer)
## Actions
diff --git a/source/_integrations/youtube.markdown b/source/_integrations/youtube.markdown
index 5e6ab93aba33..27498314ad3a 100644
--- a/source/_integrations/youtube.markdown
+++ b/source/_integrations/youtube.markdown
@@ -20,6 +20,7 @@ api_link: https://console.cloud.google.com/apis/library/youtube.googleapis.com?p
The **YouTube** {% term integration %} allows you to connect YouTube channels to Home Assistant.
For every channel you add, it will create sensors for:
+- Views count
- Subscriber count
- The latest uploaded video
diff --git a/source/_integrations/zoneminder.markdown b/source/_integrations/zoneminder.markdown
index ee5d39a38e94..71e97fd596f1 100644
--- a/source/_integrations/zoneminder.markdown
+++ b/source/_integrations/zoneminder.markdown
@@ -105,7 +105,7 @@ Once loaded, the `zoneminder` platform will expose an action (`set_run_state`) t
For example, if your ZoneMinder instance was configured with a run state called "Home", you could write an [automation](/getting-started/automation/) that changes ZoneMinder to the "Home" run state by including the following [action](/getting-started/automation-action/):
```yaml
-action:
+actions:
action: zoneminder.set_run_state
data:
id: ZM_HOST
diff --git a/source/_integrations/zwave_js.markdown b/source/_integrations/zwave_js.markdown
index 8fa865ec96ec..9853c8710bb1 100644
--- a/source/_integrations/zwave_js.markdown
+++ b/source/_integrations/zwave_js.markdown
@@ -500,8 +500,8 @@ Notification event data can be used to trigger automations, both in the automati
```yaml
# Fires whenever the lock is unlocked by the keypad.
-trigger:
- - platform: event
+triggers:
+ - trigger: event
event_type: zwave_js_notification
event_data:
node_id: 14
@@ -646,12 +646,12 @@ Value Updated example:
This event can be used to trigger a refresh of values when the new state needs to be retrieved. Here's an example automation:
```yaml
-trigger:
- - platform: event
+triggers:
+ - trigger: event
event_type: zwave_js_value_updated
event_data:
entity_id: switch.in_wall_dual_relay_switch
-action:
+actions:
- action: zwave_js.refresh_value
data:
entity_id:
@@ -671,24 +671,24 @@ This trigger platform can be used to trigger automations on any Z-Wave JS value
```yaml
# Fires whenever the `latchStatus` value changes from `closed` to `opened` on the three devices (devices will be derived from an entity ID).
-trigger:
- platform: zwave_js.value_updated
- # At least one `device_id` or `entity_id` must be provided
- device_id: 45d7d3230dbb7441473ec883dab294d4 # Garage Door Lock device ID
- entity_id:
- - lock.front_lock
- - lock.back_door
- # `property` and `command_class` are required
- command_class: 98 # Door Lock CC
- property: "latchStatus"
- # `property_key` and `endpoint` are optional
- property_key: null
- endpoint: 0
- # `from` and `to` will both accept lists of values and the trigger will fire if the value update matches any of the listed values
- from:
- - "closed"
- - "jammed"
- to: "opened"
+triggers:
+ - trigger: zwave_js.value_updated
+ # At least one `device_id` or `entity_id` must be provided
+ device_id: 45d7d3230dbb7441473ec883dab294d4 # Garage Door Lock device ID
+ entity_id:
+ - lock.front_lock
+ - lock.back_door
+ # `property` and `command_class` are required
+ command_class: 98 # Door Lock CC
+ property: "latchStatus"
+ # `property_key` and `endpoint` are optional
+ property_key: null
+ endpoint: 0
+ # `from` and `to` will both accept lists of values and the trigger will fire if the value update matches any of the listed values
+ from:
+ - "closed"
+ - "jammed"
+ to: "opened"
```
#### Available trigger data
@@ -721,22 +721,22 @@ There is strict validation in place based on all known event types, so if you co
```yaml
# Fires whenever the `interview failed` event is fired on the three devices (devices will be derived from device and entity IDs).
-trigger:
- platform: zwave_js.event
- # At least one `device_id` or `entity_id` must be provided for `node` events. For any other events, a `config_entry_id` needs to be provided.
- device_id: 45d7d3230dbb7441473ec883dab294d4 # Garage Door Lock device ID
- entity_id:
- - lock.front_lock
- - lock.back_door
- config_entry_id:
- # `event_source` and `event` are required
- event_source: node # options are node, controller, and driver
- event: "interview failed" # event names can be retrieved from the Z-Wave JS docs (see links above)
- # `event_data` and `partial_dict_match` are optional. If `event_data` isn't included, all events of a given type for the given context will trigger the automation. When the `interview failed` event is fired, all argument live in a dictionary within the `event_data` dictionary under the `args` key. The default behavior is to require a full match of the event_data dictionary below and the dictionary that is passed to the event. By setting `partial_dict_match` to true, Home Assistant will check if the isFinal argument is true and ignore any other values in the dictionary. If this setting was false, this trigger would never fire because the dictionary always contains more keys than `isFinal` so the comparison check would never evaluate to true.
- event_data:
- args:
- isFinal: true
- partial_dict_match: true # defaults to false
+triggers:
+ - trigger: zwave_js.event
+ # At least one `device_id` or `entity_id` must be provided for `node` events. For any other events, a `config_entry_id` needs to be provided.
+ device_id: 45d7d3230dbb7441473ec883dab294d4 # Garage Door Lock device ID
+ entity_id:
+ - lock.front_lock
+ - lock.back_door
+ config_entry_id:
+ # `event_source` and `event` are required
+ event_source: node # options are node, controller, and driver
+ event: "interview failed" # event names can be retrieved from the Z-Wave JS docs (see links above)
+ # `event_data` and `partial_dict_match` are optional. If `event_data` isn't included, all events of a given type for the given context will trigger the automation. When the `interview failed` event is fired, all argument live in a dictionary within the `event_data` dictionary under the `args` key. The default behavior is to require a full match of the event_data dictionary below and the dictionary that is passed to the event. By setting `partial_dict_match` to true, Home Assistant will check if the isFinal argument is true and ignore any other values in the dictionary. If this setting was false, this trigger would never fire because the dictionary always contains more keys than `isFinal` so the comparison check would never evaluate to true.
+ event_data:
+ args:
+ isFinal: true
+ partial_dict_match: true # defaults to false
```
#### Available trigger data
@@ -841,11 +841,13 @@ Additional devices may be discoverable, however only devices that have been conf
Zwavejs2Mqtt was renamed Z-Wave JS UI in September 2022. They are synonymous with no difference between their capabilities.
-### Can I switch between the official Z-Wave JS add-on and the Z-Wave JS UI add-on?
+### Can I switch between Z-Wave JS and Z-Wave JS UI?
+
+You can switch between the official Z-Wave JS add-on and the Z-Wave JS UI add-on. However, but you cannot run them both at the same time. Only one of them can be active at the same time.
-You can, but you cannot run them both at the same time. Only one of them can be active at the same time.
+### How to switch between Z-Wave JS and Z-Wave JS UI?
-### How do I switch between the official Z-Wave JS add-on and the Z-Wave JS UI add-on?
+To switch between the official Z-Wave JS add-on and the Z-Wave JS UI add-on, follow these steps:
Switching does not require renaming your devices.
@@ -863,13 +865,14 @@ Switching does not require renaming your devices.
7. Enable the Z-Wave integration.
-### What's the benefit of using Z-Wave JS UI add-on over the official add-on?
+### What's the benefit of using Z-Wave JS UI add-on?
+You might wonder what the benefit is of using the Z-Wave JS UI add-on instead of the official add-on.
The official add-on provides the Z-Wave Server in its bare minimum variant, just enough to serve the Home Assistant integration.
The Z-Wave JS UI project includes the Z-Wave JS Server for convenience but also provides a Z-Wave control panel and the ability to serve your Z-Wave network to MQTT. This allows you to use the control panel, and if you so choose, to also use MQTT at the same time. For example, some users may use MQTT to interact with Z-Wave from other devices, while the Home Assistant integration still works (as long as you keep the WS Server enabled in Z-Wave JS UI).
-### Z-Wave JS UI seems to provide discovery of Home Assistant devices on its own too, now I'm confused
+### Z-Wave JS UI provides discovery of HA devices on its own too, now I'm confused
Correct, the Z-Wave JS UI project existed before Home Assistant had plans to move to the Z-Wave JS Driver. You should use the integration for device discovery and _not_ the MQTT discovery provided by Z-Wave JS UI.
@@ -919,7 +922,7 @@ Entities will be created only after the node is ready (the interview is complete
If you are certain that your device should have entities and you do not see them (even after a restart of Home Assistant Core), create an issue about your problem on the GitHub issue tracker.
-### My device does not automatically update its status in HA if I control it manually
+### My device doesn't automatically update its status in HA if I control it manually
Your device might not send automatic status updates to the controller. While the best advice would be to update to recent Z-Wave Plus devices, there is a workaround with active polling (request the status).
diff --git a/source/_posts/2024-10-02-connect-zbt1-issue-and-replacement.markdown b/source/_posts/2024-10-02-connect-zbt1-issue-and-replacement.markdown
new file mode 100644
index 000000000000..5a611cd0fe9d
--- /dev/null
+++ b/source/_posts/2024-10-02-connect-zbt1-issue-and-replacement.markdown
@@ -0,0 +1,56 @@
+---
+layout: post
+title: "Home Assistant Connect ZBT-1 issue and replacement"
+description: "Through extensive testing, we’ve found a fault, but we’re setting up a replacement program."
+date: 2024-10-02 00:01:01
+date_formatted: "October 2, 2024"
+author: Andy Gill
+comments: true
+categories: Public-Service-Announcement
+og_image: /images/blog/2024-10-zbt1-issue/art.jpg
+---
+
+
+We've found an issue in Home Assistant Connect ZBT-1 that has affected a small number of customers, which appears to be the result of a faulty part incorporated in the most recent batch of ZBT-1 devices. We want to make sure everyone can get a replacement ZBT-1 and ensure they are covered far into the future.
+
+Though Home Assistant SkyConnect is identical to the ZBT-1 under the hood, it is not affected. The design is not what's at fault, but instead, a defective voltage regulator that was used in this specific batch that is causing the issue. When a ZBT-1 is inserted into certain USB-A ports, the voltage regulator can fail, fully bricking the device. We used high-quality manufacturing and quality control in this and previous batches. We are undertaking an investigation to find out how this could happen and most importantly, to avoid a repeat of anything remotely similar in the future.
+
+We're sorry for any inconvenience this may cause you. Below are details on our investigation, how devices are affected, and the replacement program.
+- [Background](#background)
+- [Pausing sales](#pausing-sales)
+- [Replacement Program](#replacement-program)
+- [Conclusion](#conclusion)
+
+
+
+## Background
+
+Around a month ago, we were contacted about one of our latest (and [recently rebranded](/blog/2024/06/13/zbt1-annoucement/)) Home Assistant Connect ZBT-1s not being detected and showing a small mark on the housing. A couple more similar issues were reported, and we began a dialogue with the small number of people who were affected, having them send us the devices to test.
+
+
Circled in red the deformation on the case and the board showing the failed chip
+
+When we opened them, we found a dead voltage regulator. The mark in the outer casing is a sign that it overheated and failed. All of our devices are certified by CE and ROHS, and the plastic shell has been designed not to combust. This is a real-life demonstration of just how important this certification is and why we take that step.
+
+We replaced the voltage regulator on the devices we tested, and the devices sprang back to life. We found our culprit, but why was it failing? As mentioned, the SkyConnect internal design and the manufacturing were effectively identical to the ZBT-1, and we received no reports of any such failures in the literally tens of thousands of them in the wild. In manufacturing runs there is always a little variance, and in this run, something went wrong with the voltage regulator that was sourced - again, we're looking into this.
+
+It took us a couple of weeks to replicate the problem with our own units. We went down some wrong paths, but eventually found it was triggered only by certain devices, specifically certain desktop PCs (internally, we have only found one desktop that causes this failure). We have not observed the failure occur when the device has only been connected to a Home Assistant Green, Raspberry Pi, or even a Mac. If you have plugged your ZBT-1 into a different device, specifically a desktop PC, and it is not recognized by that system, inspect it for this deformation pictured above. Obviously, we want you to be able to use the device with any hardware, and even if only a small number of devices from this batch have reported issues, it is still unacceptable to us.
+
+## Pausing sales
+
+We have asked our distributors to pause sales and return all stock. For the next month, you will see "Out of Stock" banners, and if you are attempting to get a replacement device for a failed unit, this will not be possible until production is resumed.
+
+We are working to have replacement ZBT-1s shipped by early November.
+
+## Replacement Program
+
+If you have purchased Home Assistant Connect ZBT-1, we are working on a replacement program. This program will see Nabu Casa provide a replacement device free of charge for a period of 60 months (5 years) for verified purchases. Regardless of whether the device has failed, we will provide a replacement upon request.
+
+It is a core value of ours to do things as sustainably as possible, and that's why we've provided such a long coverage period. We want to give owners with working ZBT-1s, who do not expect to use the device in a different system for the foreseeable future, the ability to keep it operating with peace of mind.
+
+If it's working, keep it plugged into the device it's working with, and don't worry about a replacement until you need it. If you need or want a replacement, please contact the seller where you purchased your device, and they will arrange the return process and replacement. Replacement devices are expected by early November, and we will be prioritizing people with non-functioning devices.
+
+## Conclusion
+
+We're sorry for the inconvenience and any disruption to your smart home. As someone who uses Zigbee in their home, which many smart devices rely on, I would hate to have it out of commission.
+
+Worse things can happen, but this has been a gut punch. All our work at Nabu Casa is to fund the development of Home Assistant and support the Open Home. Issues like this eat into our time, and rob our users of new and great things. Ultimately, we're going to take this setback as a chance to prove we stand by our values and do the right thing.
diff --git a/source/_posts/2024-10-02-release-202410.markdown b/source/_posts/2024-10-02-release-202410.markdown
new file mode 100644
index 000000000000..3222a7f8fd85
--- /dev/null
+++ b/source/_posts/2024-10-02-release-202410.markdown
@@ -0,0 +1,757 @@
+---
+layout: post
+title: "2024.10: Heading in the right direction"
+description: "A brand new heading card, improved YAML syntax for automations, long-term stats repairs, faster upgrades, and more!"
+date: 2024-10-02 00:00:00
+date_formatted: "October 2, 2024"
+author: Franck Nijhof
+author_twitter: frenck
+comments: true
+categories:
+ - Release-Notes
+ - Core
+og_image: /images/blog/2024-10/social.jpg
+---
+
+
+
+Boo! 👻
+
+Please don’t be scared; it is October, Halloween is coming, and so is the next
+Home Assistant release: 2024.10! 🎃
+
+The release we bring you today is a perfect mix of new UI features, advanced
+features, improvements, and lots of bug fixes while not being too overwhelming.
+There is something for everyone in this release.
+
+Most notably, we have a brand new heading card. It allows you to add titles or
+subtitles to your dashboards, make them clickable, and even add cute little
+entities to them. The new section dashboard gets better and better with every
+release, which is super exciting!
+
+We also introduce some small YAML automation syntax changes. If you are still
+a sucker for writing your automations in {% term YAML %} (like me), I’m sure you’ll love
+these little tweaks that make it all feel more natural.
+
+Enjoy the release!
+
+../Frenck
+
+
+
+- [Heading in the right direction](#heading-in-the-right-direction)
+ - [Another headline feature](#another-headline-feature)
+- [Repairs for long-term statistics](#repairs-for-long-term-statistics)
+- [Improved YAML syntax for automations](#improved-yaml-syntax-for-automations)
+- [Faster upgrades when using custom integrations](#faster-upgrades-when-using-custom-integrations)
+- [Integrations](#integrations)
+ - [New integrations](#new-integrations)
+ - [Noteworthy improvements to existing integrations](#noteworthy-improvements-to-existing-integrations)
+ - [Now available to set up from the UI](#now-available-to-set-up-from-the-ui)
+- [Matter](#matter)
+- [Other noteworthy changes](#other-noteworthy-changes)
+ - [The source of a repair](#the-source-of-a-repair)
+ - [YAML-editor improvements](#yaml-editor-improvements)
+- [Patch releases](#patch-releases)
+ - [2024.10.1 - October 4](#2024101---october-4)
+- [Need help? Join the community!](#need-help-join-the-community)
+- [Backward-incompatible changes](#backward-incompatible-changes)
+- [All changes](#all-changes)
+
+## Heading in the right direction
+
+Update after update, [Sections] continues to become a customization powerhouse,
+and this month is no exception. Section titles are replaced with their own card,
+called the [heading card]. Making them a card rather than an inline title gives
+you a lot more flexibility, allowing you to put them nearly anywhere.
+
+The heading card can be used to make titles, but also subtitles, which are half
+the height and have smaller, lighter text. So, if you have ever had a section
+that needs to be subdivided, slap a subtitle in there.
+
+![Screenshot showing a dashboard using heading cards with titles and subtitles](/images/blog/2024-10/headings.png)
+
+Titles and subtitles can be made clickable, displaying a chevron
+{% icon "mdi:chevron-right" %} when you can interact with them. This can
+perform an action or navigate to a subpage, like having an energy section title
+navigate to the full energy dashboard.
+
+Best of all, if you've already added titles to your sections, they will be
+migrated automatically to the new card. 😎
+
+[Sections]: /dashboards/sections/
+[heading card]: /dashboards/heading/
+
+### Another headline feature
+
+We had such a fantastic reaction when we released our [renewed badges],
+and this new heading card has something very similar and equally as visually
+appealing. It can show multiple entity states to the right of the title or
+subtitle.
+
+![Screenshot showing a dashboard with additional entities shown on card headings](/images/blog/2024-10/heading-with-entities.png)
+
+Either in a subtle "no color" default or add a splash of color when the entity
+is in an active state. Other customization options for these entities include
+changing the icon, visibility, and what happens when you select it.
+
+[renewed badges]: /dashboards/badges/
+
+## Repairs for long-term statistics
+
+[Long-term statistics] are great; they downsample and store the data produced
+by your {% term sensors %}, allowing Home Assistant to store data indefinitely
+in a fraction of the space the original readings took up. Take a look back at
+[your energy usage] from two years ago, or see if your living room really is
+colder this year compared to last.
+
+![Screenshot showing a long-term statistic repair showing up in the settings menu](/images/blog/2024-10/statistics-repair.jpg)
+
+In the past, if a statistic encountered an issue, it might be quietly broken
+until you dig into the statistics page. Now, Home Assistant will raise a repair
+notification when it detects issues with a long-term statistic and give
+you options for fixing the issue.
+
+[your energy usage]: /docs/energy/
+[Long-term statistics]: https://data.home-assistant.io/docs/statistics/
+
+## Improved YAML syntax for automations
+
+Recently, we renamed `service` to `action` in the [Home Assistant UI and YAML].
+This was done with the goal of making the syntax more natural, allowing it
+to be easier to grasp and read. We want to continue this work to improve the
+{% term YAML %} syntax, this time focusing on {% term automations %}, and we've made the
+following changes,
+
+- The top-level `trigger` key is now `triggers` (plural)
+- The top-level `condition` key is now `conditions` (plural)
+- The top-level `action` key is now `actions` (plural)
+- The `platform` key of a trigger definition is now `trigger`
+
+The result of all this is that YAML automation syntax now has `triggers` with
+multiple `trigger` definitions, `conditions` with multiple `condition`
+definitions, and `actions` with multiple `action` definitions.
+
+Here is a small example of an automation highlighting these changes.
+
+
+
+The 2024.9 release on the left and this 2024.10 release on the right.
+
+
+As with the other syntax changes we've done recently, this is
+**not a breaking change**, and there will be no deprecation. The previous syntax
+will continue to work, and there are no plans to remove the old syntax. The new
+syntax is recommended, and all documentation and examples have been updated.
+Automations managed by the automation editor will automatically be migrated to
+the new syntax when saving an automation.
+
+This is not the only change to our syntax, thanks to [@karwosts] we now support
+[merging a list of triggers], which is mostly useful for
+{% term blueprint %} authors.
+
+[merging a list of triggers]: /docs/automation/trigger/#merging-lists-of-triggers
+[Home Assistant UI and YAML]: /blog/2024/08/07/release-20248/#goodbye-service-calls-hello-actions-
+
+## Faster upgrades when using custom integrations
+
+We want Home Assistant to continue to work on a wide range of hardware. If you
+look at our [opt-in analytics] you'll see a sizable amount of homes running it
+on single-board computers from the mid-2010s. A lot of effort has been put into
+keeping Home Assistant lean, and this release has some good improvements. This
+is specially for users of custom integrations, and this follows HACS getting a
+great [speed boost for downloads].
+
+On each upgrade, all dependencies needed for {% term "custom integrations" %}
+are now downloaded and installed. We are now using `uv` internally to download
+and install dependencies, which is a faster and more efficient way to download
+and install dependencies. If you're not aware, `uv` is what makes our release
+process so fast nowadays, and [@edenhaus] has done an interesting
+[developer backstory] on our move from `pip` to `uv` (saving us 200+ hours
+of execution time a month). [@edenhaus] has also implemented `uv` at runtime
+as well.
+
+This speeds up the upgrade process, especially for custom integrations with many
+dependencies, or installations with many custom integrations. This change is
+fully transparent to the user, and no action is required. Just sit down, relax,
+and enjoy the faster upgrade process!
+
+[@edenhaus]: https://github.com/edenhaus
+[developer backstory]: https://developers.home-assistant.io/blog/2024/04/03/build-images-with-uv/
+[opt-in analytics]: https://analytics.home-assistant.io/
+[speed boost for downloads]: /blog/2024/08/21/hacs-the-best-way-to-share-community-made-projects/#faster-downloads
+
+## Integrations
+
+Thanks to our community for keeping pace with the new {% term integrations %}
+and improvements to existing ones! You’re all awesome 🥰
+
+### New integrations
+
+We welcome the following new integrations in this release:
+
+- **[Cambridge Audio]**, added by [@noahhusby]
+ Control all receivers and streamers that support the [StreamMagic app].
+- **[Deako Smart Lighting]**, added by [@Balake]
+ Control and automate your [Deako] devices.
+- **[Duke Energy]**, added by [@hunterjm]
+ Import your energy usage data from Duke Energy into the Home Assistant energy
+ dashboard.
+- **[Google Photos]**, added by [@allenporter]
+ Upload photos to your [Google Photos library] and use as a [media source].
+ Note that only images uploaded by the integration can be viewed and used.
+- **[Iskra]**, added by [@iskrakranj]
+ Monitor your energy and power usage from an Iskra energy meter.
+- **[Lektrico Charging Station]**, added by [@Lektrico]
+ Get in control of your [Lektrico EV charger] from Home Assistant and optimize
+ your energy usage.
+- **[Monarch Money]**, added by [@jeeftor]
+ Monitor your account balance using the [Monarch Money personal finance service].
+- **[NYT Games]**, added by [@joostlek]
+ Keep track of your [New York Times games] progress, like Spelling Bee and Wordle.
+- **[Sensoterra]**, added by [@markruys]
+ Monitor your soil moisture and temperature using [Sensoterra sensors].
+- **[TRIGGERcmd]**, added by [@rvmey]
+ Execute commands on your computer(s) using the [TRIGGERcmd cloud service].
+- **[Weheat]**, added by [@jesperraemaekers]
+ Manage and monitor your [Weheat heatpump], keeping your home warm and cozy.
+- **[WMS WebControl pro]**, added by [@mback2k]
+ Control your [WAREMA] sun shading covers entirely locally.
+
+[@allenporter]: https://github.com/allenporter
+[@Balake]: https://github.com/Balake
+[@hunterjm]: https://github.com/hunterjm
+[@iskrakranj]: https://github.com/iskrakranj
+[@jeeftor]: https://github.com/jeeftor
+[@jesperraemaekers]: https://github.com/jesperraemaekers
+[@joostlek]: https://github.com/joostlek
+[@Lektrico]: https://github.com/Lektrico
+[@markruys]: https://github.com/markruys
+[@mback2k]: https://github.com/mback2k
+[@noahhusby]: https://github.com/noahhusby
+[@rvmey]: https://github.com/rvmey
+[Cambridge Audio]: /integrations/cambridge_audio
+[Deako Smart Lighting]: /integrations/deako
+[Deako]: https://www.deako.com/
+[Duke Energy]: /integrations/duke_energy
+[Google Photos library]: https://photos.google.com/
+[Google Photos]: /integrations/google_photos
+[Iskra]: /integrations/iskra
+[Lektrico Charging Station]: /integrations/lektrico
+[Lektrico EV charger]: https://lektri.co/
+[media source]: /integrations/media_source
+[Monarch Money personal finance service]: https://www.monarchmoney.com/
+[Monarch Money]: /integrations/monarch_money
+[New York Times games]: https://www.nytimes.com/games
+[NYT Games]: /integrations/nyt_games
+[Sensoterra sensors]: https://www.sensoterra.com/sensors/
+[Sensoterra]: /integrations/sensoterra
+[StreamMagic app]: https://www.cambridgeaudio.com/usa/en/products/streammagic
+[TRIGGERcmd cloud service]: https://triggercmd.com
+[TRIGGERcmd]: /integrations/triggercmd
+[WAREMA]: https://www.warema.com/
+[Weheat heatpump]: https://www.weheat.nl/
+[Weheat]: /integrations/weheat
+[WMS WebControl pro]: /integrations/wmspro
+
+This release also has a new virtual integration. Virtual integrations
+are stubs that are handled by other (existing) integrations to help with
+findability. This one is new:
+
+- **[Arizona Public Service (APS)]**, provided by [Opower], added by [@seferino-fernandez]
+
+[@seferino-fernandez]: https://github.com/seferino-fernandez
+[Arizona Public Service (APS)]: /integrations/aps
+[Opower]: /integrations/opower
+
+### Noteworthy improvements to existing integrations
+
+It is not just new {% term integrations %} that have been added; existing
+integrations are also being constantly improved. Here are some of the noteworthy
+changes to existing integrations:
+
+- [@Bre77] has been busy with the [Tesla Fleet] integration, adding a bunch of
+ new features and entities to control your Tesla vehicle. It now supports
+ climate, media player, cover, number, select, button, and lock entities.
+- You can now control the volume, ringtone, and status light of your [Reolink]
+ Hub! Cool, [@starkillerOG]!
+- [@daniel-k] added support for controlling the volume and [@sdb9696] added a
+ switch for controlling motion detection on [Ring] devices; Nice work team!
+- The [Switchbot Cloud] integration now supports the [K10+ Mini Robot Vacuum].
+ Thanks, [@Gigatrappeur]!
+- [@sorgfresser] extended the [ElevenLabs] integration with integration options
+ to control the voice settings. Nice!
+- The [Squeezebox (Lyrion Music Server)] integration now has new service sensors,
+ and support for your favorites straight from the media browser.
+ Thanks, [@pssc] and [@rajlaud]!
+- [@tronikos] added [Google Cloud] speech-to-text (STT) to Home Assistant. This
+ allows you to use Google's Cloud speech-to-text with [Assist]! Awesome!
+- If you are using the [Husqvarna Automower], you can now view the calendar
+ it provides, thanks to [@Thomas55555]!
+- [@klaasnicolaas] added support for home batteries to the [Autarco]
+ integration so you can use them in your energy dashboard. Great!
+
+[@Bre77]: https://github.com/Bre77
+[@daniel-k]: https://github.com/daniel-k
+[@Gigatrappeur]: https://github.com/Gigatrappeur
+[@klaasnicolaas]: https://github.com/klaasnicolaas
+[@pssc]: https://github.com/pssc
+[@rajlaud]: https://github.com/rajlaud
+[@sdb9696]: https://github.com/sdb9696
+[@sorgfresser]: https://github.com/sorgfresser
+[@starkillerOG]: https://github.com/starkillerOG
+[@Thomas55555]: https://github.com/Thomas55555
+[@tronikos]: https://github.com/tronikos
+[Assist]: /voice_control
+[Autarco]: /integrations/autarco
+[ElevenLabs]: /integrations/elevenlabs
+[Google Cloud]: /integrations/google_cloud
+[Husqvarna Automower]: /integrations/husqvarna_automower
+[K10+ Mini Robot Vacuum]: https://eu.switch-bot.com/products/switchbot-mini-robot-vacuum-k10
+[Reolink]: /integrations/reolink
+[Ring]: /integrations/ring
+[Squeezebox (Lyrion Music Server)]: /integrations/squeezebox
+[Switchbot Cloud]: /integrations/switchbot_cloud
+[Tesla Fleet]: /integrations/tesla_fleet
+
+### Now available to set up from the UI
+
+While most {% term integrations %} can be set up directly from the Home Assistant
+user interface, some were only available using YAML configuration. We keep moving
+more integrations to the UI, making them more accessible for everyone
+to set up and use.
+
+The following integrations are now available via the Home Assistant UI:
+
+- **[Emoncms]**, done by [@alexandrecuer]
+- **[Google Cloud Platform]**, done by [@tronikos]
+- **[HTML5 Push Notifications]**, done by [@alexyao2015]
+- **[Mold Indicator]**, done by [@gjohansson-ST]
+
+[@alexandrecuer]: https://github.com/alexandrecuer
+[@alexyao2015]: https://github.com/alexyao2015
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[@tronikos]: https://github.com/tronikos
+[Emoncms]: /integrations/emoncms
+[Google Cloud Platform]: /integrations/google_cloud
+[HTML5 Push Notifications]: /integrations/html5
+[Mold Indicator]: /integrations/mold_indicator
+
+## Matter
+
+At this point, our [Matter integration] is almost becoming a monthly recurring
+topic in our release notes. For a good reason! The development is moving forward
+at a strong pace; running toward the certification finish line!
+
+![Matter logo](/images/supported_brands/matter.png)
+
+In terms of stability, we have improved the robustness of the integration to
+ensure it sets up correctly every time, even if an issue with one
+of your devices occurs. Besides the usual bugfixes and improvements, this
+release has some cool new features and additions:
+
+- **Button entities**
+ New button entities that allow you to perform an action on a device. For
+ example, to identify a device or reset the filter state.
+- **Valve entities**
+ Support for water valves, allowing you to control the flow of fluids or gases.
+- **Support for operation states**
+ Control and monitor the operation state of, for example, dishwashers
+ and other household equipment.
+- **Support for smoke and CO sensors**
+ Monitor the air quality in your home with smoke and CO sensors.
+- **Add support for Matter 1.3 power/energy sensors**
+ Especially the energy sensors are great to use with the energy dashboard.
+
+[Matter integration]: /integrations/matter
+
+## Other noteworthy changes
+
+There are many more improvements in this release; here are some of the other
+noteworthy changes this release:
+
+- In June, we added support for adding [Model IDs to devices]. This release
+ has lots of integrations that add them, including [Matter], [Plugwise],
+ [Wallbox], and [Govee]. We are calling for contributions to add model IDs to
+ more integrations! Maybe a cool suggestion for an [Hacktoberfest] contribution!
+- [@bmesuere] improved the accessibility of all graphs by adjusting all the
+ default colors used in those graphs! You are a hero!
+- When you unignore an integration or device on the integrations page,
+ Home Assistant will instantly try to rediscover it again! Nice! Thanks,
+ [@emontnemery]!
+- We now have a new unit of measurement for energy entities: calories. Useful,
+ for devices like a treadmill or an exercise bike. Thanks, [@dudanov]!
+- [@TrevorSchirmer] did something similar, and added a new unit of speed:
+ mm/s and in/s. Thank you!
+- When you rename a device, you will now see more details about the rename
+ operation. Including a preview of the new entity IDs. Nice, [@karwosts]!
+- [@gjohansson-ST] added a new template function [`merge_response`] that
+ allows you to merge multiple responses of a single action or multiple actions
+ into a single response. Nice!
+- [Trigger-based templates] now have support for adding conditions! Just like
+ automations, you can now add conditions to these entities to control when
+ they are rendered. Thanks, [@chammp]!
+- More template fun! You can now set up your templated alarm control panel
+ straight from the UI. Thanks, [@gjohansson-ST]!
+- The statistics developer tools have been improved. They now have the new-style
+ data tables and the ability to bulk select items to action. Awesome [@karwosts]!
+- There is a new entity in town, the [`assist satellite` entity](/integrations/assist_satellite/).
+ It is a building block for remote satellites devices that use [Assist]. This
+ is in preparation for our upcoming satellite hardware. Stay tuned!
+
+[@bmesuere]: https://github.com/bmesuere
+[@chammp]: https://github.com/chammp
+[@dudanov]: https://github.com/dudanov
+[@emontnemery]: https://github.com/emontnemery
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[@karwosts]: https://github.com/karwosts
+[@TrevorSchirmer]: https://github.com/TrevorSchirmer
+[`merge_response`]: /docs/configuration/templating/#merge-action-responses
+[Assist]: /voice_control
+[Govee]: /integrations/govee_light_local
+[Hacktoberfest]: https://hacktoberfest.digitalocean.com/
+[Matter]: /integrations/matter
+[Model IDs to devices]: https://developers.home-assistant.io/blog/2024/07/16/device-info-model-id
+[Plugwise]: /integrations/plugwise
+[Trigger-based templates]: /integrations/template/#trigger-based-template-binary-sensors-buttons-images-numbers-selects-and-sensors
+[Wallbox]: /integrations/wallbox
+
+### The source of a repair
+
+{% term Integrations %} can raise issues in your repairs dashboard, they can
+raise issues for themselves, but also for other integrations. An example of
+such an issue is an integration that connects to your device that raises an
+issue on an {% term automation %} that controls it.
+
+The result is an automation issue in your repair center. This is cool, but
+you might want to know which integration raised the issue in the first place.
+
+Thanks to [@wendevlin], we now show the source integration of the repair issue
+in the issue dialog.
+
+
+
+[@wendevlin]: https://github.com/wendevlin
+
+### YAML-editor improvements
+
+[@naps62] has been busy improving the YAML editor found in the Home Assistant
+user interface.
+
+We now have a vertical line based on indentation, which makes it easier to see
+the indentation of your YAML configuration and allows you to spot and prevent
+indentation errors.
+
+
+
+But he didn’t stop there. You can now collapse and expand sections of your
+YAML configuration based on the indentation level; which is also demonstrated
+in the screenshot above.
+
+Nice work [@naps62]!
+
+
+[@naps62]: https://github.com/naps62
+
+## Patch releases
+
+We will also release patch releases for Home Assistant 2024.10 in October. These
+patch releases only contain bug fixes. Our goal is to release a patch release
+every Friday.
+
+### 2024.10.1 - October 4
+
+- Fix device id support for alarm control panel template ([@piitaya] - [#127340])
+- Bump pysmlight 0.1.2 ([@tl-sl] - [#127376])
+- Remove assumption in ConfigEntryItems about unique unique_id ([@emontnemery] - [#127399])
+- Add missing number platform to init of Tesla Fleet ([@Bre77] - [#127406])
+- Bump aiomealie to 0.9.3 ([@andrew-codechimp] - [#127454])
+- Fix int value in unique_id for Tellduslive ([@robinostlund] - [#127526])
+- Bump matrix-nio to 0.25.2 ([@PaarthShah] - [#127535])
+- Adjust polling rate of Rituals Perfume Genie ([@frenck] - [#127544])
+- Create new clientsession for NYT Games ([@joostlek] - [#127547])
+- Strip the NYT Games token ([@joostlek] - [#127548])
+- Revert "Bump pychromecast to 14.0.2 (#127333)" ([@joostlek] - [#127555])
+
+[#126782]: https://github.com/home-assistant/core/pull/126782
+[#127340]: https://github.com/home-assistant/core/pull/127340
+[#127376]: https://github.com/home-assistant/core/pull/127376
+[#127399]: https://github.com/home-assistant/core/pull/127399
+[#127406]: https://github.com/home-assistant/core/pull/127406
+[#127454]: https://github.com/home-assistant/core/pull/127454
+[#127526]: https://github.com/home-assistant/core/pull/127526
+[#127535]: https://github.com/home-assistant/core/pull/127535
+[#127544]: https://github.com/home-assistant/core/pull/127544
+[#127547]: https://github.com/home-assistant/core/pull/127547
+[#127548]: https://github.com/home-assistant/core/pull/127548
+[#127555]: https://github.com/home-assistant/core/pull/127555
+[@Bre77]: https://github.com/Bre77
+[@PaarthShah]: https://github.com/PaarthShah
+[@andrew-codechimp]: https://github.com/andrew-codechimp
+[@emontnemery]: https://github.com/emontnemery
+[@frenck]: https://github.com/frenck
+[@joostlek]: https://github.com/joostlek
+[@piitaya]: https://github.com/piitaya
+[@robinostlund]: https://github.com/robinostlund
+[@tl-sl]: https://github.com/tl-sl
+
+## 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.
+
+## Backward-incompatible changes
+
+We do our best to avoid making changes to existing functionality that might
+unexpectedly impact your Home Assistant installation. Unfortunately, sometimes,
+it is inevitable.
+
+We always make sure to document these changes to make the transition as easy as
+possible for you. This release has the following backward-incompatible changes:
+
+{% details "Climate" %}
+
+We have added more validation to the `climate.set_humidity` action, which
+enforces that the set target humidity is within the targeted entity's minimum
+and maximum humidity levels.
+
+You should adjust automations and scripts to use valid values if you are using
+this action.
+
+([@gjohansson-ST] - [#125242]) ([documentation](/integrations/climate))
+
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[#125242]: https://github.com/home-assistant/core/pull/125242
+
+{% enddetails %}
+
+{% details "ecobee" %}
+
+The previously deprecated `aux_heat` attribute has been removed from the
+provided climate entity.
+
+([@gjohansson-ST] - [#125246]) ([documentation](/integrations/ecobee))
+
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[#125246]: https://github.com/home-assistant/core/pull/125246
+
+{% enddetails %}
+
+{% details "Honeywell Total Connect Comfort (US)" %}
+
+The previously deprecated `aux_heat` attribute has been removed from the
+provided climate entity.
+
+([@gjohansson-ST] - [#125248]) ([documentation](/integrations/honeywell))
+
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[#125248]: https://github.com/home-assistant/core/pull/125248
+
+{% enddetails %}
+
+{% details "Humidifier" %}
+
+We have added more validation to the `humidifier.set_humidity` action, which
+enforces that the target humidity is within the targeted entity's minimum
+and maximum humidity levels.
+
+You might need to adjust automations and scripts to use valid values if you
+are using this action.
+
+([@gjohansson-ST] - [#125863]) ([documentation](/integrations/humidifier))
+
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[#125863]: https://github.com/home-assistant/core/pull/125863
+
+{% enddetails %}
+
+{% details "Nuki" %}
+
+The previously deprecated `nuki_id` and `battery_critical` attributes have
+been removed from the Nuki entities. If you are using these attributes in
+automations or scripts, you need to update those.
+
+([@steffenrapp] - [#125348]) ([documentation](/integrations/nuki))
+
+[@steffenrapp]: https://github.com/steffenrapp
+[#125348]: https://github.com/home-assistant/core/pull/125348
+
+{% enddetails %}
+
+{% details "OpenTherm Gateway" %}
+
+To modernize the OpenTherm Gateway integration, all entities have been split
+into different devices. As a result, the OpenTherm Gateway climate entity
+has been moved to a new OpenTherm Thermostat device.
+
+Configurations that look for the climate entity by device must be adjusted
+accordingly.
+
+In the process, all entities were reviewed and some were found to be irrelevant
+or superfluous. These entities have been removed. All removed entities were
+previously disabled by default, so anyone who has never manually enabled an
+entity in the OpenTherm Gateway integration is not affected by this.
+
+All other users should review their configuration for using OpenTherm Gateway
+entities that no longer exist or have been assigned to another device.
+
+([@mvn23] - [#124869]) ([documentation](/integrations/opentherm_gw))
+
+[@mvn23]: https://github.com/mvn23
+[#124869]: https://github.com/home-assistant/core/pull/124869
+
+{% enddetails %}
+
+{% details "Pentair ScreenLogic" %}
+
+Support for use of an area, device, or entity as a target for ScreenLogic
+actions has been removed. Instead, use `config_entry` with the
+`entry_id` of the desired ScreenLogic
+
+Support for using an area, device, or entity as a target for ScreenLogic
+actions has been removed. Instead, use `config_entry` with the `entry_id` of
+the desired ScreenLogic.
+
+([@dieselrabbit] - [#123432]) ([documentation](/integrations/screenlogic))
+
+[@dieselrabbit]: https://github.com/dieselrabbit
+[#123432]: https://github.com/home-assistant/core/pull/123432
+
+{% enddetails %}
+
+{% details "Ping" %}
+
+The binary sensor attributes this integration provided have been
+replaced with sensor entities in Home Assistant 2024.4. These deprecated
+attributes have now been removed.
+
+([@jpbede] - [#125760]) ([documentation](/integrations/ping))
+
+[@jpbede]: https://github.com/jpbede
+[#125760]: https://github.com/home-assistant/core/pull/125760
+
+{% enddetails %}
+
+{% details "Ring" %}
+
+The `ring.update` action was deprecated in the 2024.4 release and has now
+been removed. Please use `homeassistant.update_entity` if you need
+a replacement.
+
+([@jpbede] - [#125762]) ([documentation](/integrations/ring))
+
+[@jpbede]: https://github.com/jpbede
+[#125762]: https://github.com/home-assistant/core/pull/125762
+
+{% enddetails %}
+
+{% details "Squeezebox (Lyrion Music Server)" %}
+
+We previously noticed that the squeezebox platform had deprecated
+the `squeezebox_sync` and `squeezebox_unsync` actions and the `sync_group`
+entity attribute in favor of the newer "join" framework common to all
+media players.
+
+These deprecated actions and entity attributes have now been removed.
+
+([@rajlaud] - [#125271]) ([documentation](/integrations/squeezebox))
+
+[@rajlaud]: https://github.com/rajlaud
+[#125271]: https://github.com/home-assistant/core/pull/125271
+
+{% enddetails %}
+
+{% details "Templates" %}
+
+Limit maximum template render output to 256KiB to ensure template renders
+do not inject unreasonable data into the system and cause a crash.
+
+256KiB is likely to still block Home Assistant’s event loop for an unreasonable
+amount of time, but it's likely someone is using the template engine for large
+blocks of data, so we want a limit that still allows that but has a reasonable
+safety margin to prevent the system from crashing down.
+
+([@bdraco] - [#124946])
+
+[@bdraco]: https://github.com/bdraco
+[#124946]: https://github.com/home-assistant/core/pull/124946
+
+{% enddetails %}
+
+{% details "ThermoWorks Smoke" %}
+
+The ThermoWorks Smoke integration is disabled because it creates
+an unresolvable dependency conflict.
+
+Contributions to fixing this conflict are greatly appreciated.
+
+([@edenhaus] - [#125661]) ([documentation](/integrations/thermoworks_smoke))
+
+[@edenhaus]: https://github.com/edenhaus
+[#125661]: https://github.com/home-assistant/core/pull/125661
+
+{% enddetails %}
+
+{% details "Tfiac" %}
+
+The Tfiac integration is disabled because we cannot create valid Python wheels
+for its dependencies.
+
+Contributions to fixing this issue are greatly appreciated.
+
+([@edenhaus] - [#125692]) ([documentation](/integrations/tfiac))
+
+[@edenhaus]: https://github.com/edenhaus
+[#125692]: https://github.com/home-assistant/core/pull/125692
+
+{% enddetails %}
+
+{% details "Z-Wave" %}
+
+With this release, you will need to update your `zwave-js-server` instance.
+You must use `zwave-js-server` 1.37.0 or greater (schema 37).
+
+- If you use the Z-Wave JS add-on, you need at least version `0.7.0`.
+- If you use the Z-Wave JS UI add-on, you need at least version [`3.9.0`](https://github.com/hassio-addons/addon-zwave-js-ui/releases/tag/v3.9.0).
+- If you use the Z-Wave JS UI Docker container, you need at least version [`9.16.0`](https://github.com/zwave-js/zwave-js-ui/releases/tag/v9.16.0).
+- 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.37.0`.
+
+([@MartinHjelmare] - [#125666]) ([documentation](/integrations/zwave_js))
+
+[@MartinHjelmare]: https://github.com/MartinHjelmare
+[#125666]: https://github.com/home-assistant/core/pull/125666
+
+{% enddetails %}
+
+If you are a custom integration developer and want to learn about 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:
+
+- [Additional validation in Climate set temperature](https://developers.home-assistant.io/blog/2024/09/24/climate-set-temp-validation)
+- [Calories added to energy class sensors](https://developers.home-assistant.io/blog/2024/09/10/calories-units)
+- [Deprecating constants for Media Player](https://developers.home-assistant.io/blog/2024/09/23/constants-media-player-deprecation)
+- [Deprecating feature flag constants for Vacuum](https://developers.home-assistant.io/blog/2024/09/23/feature-flag-constants-vacuum-deprecation)
+- [Deprecating state constants for camera](https://developers.home-assistant.io/blog/2024/09/23/state-constants-camera-deprecation)
+- [Deprecating state constants for lock](https://developers.home-assistant.io/blog/2024/09/23/state-constants-lock-deprecation)
+- [Enforce SourceType and add shorthand attributes and EntityDescription to device_tracker](https://developers.home-assistant.io/blog/20240924-device-tracker-entity-description)
+- [Extend deprecation period of @bind_hass and hass.components](https://developers.home-assistant.io/blog/2024/09/11/extending-deprecation-hass-components)
+- [Introducing the Assist satellite entity](https://developers.home-assistant.io/blog/2024/10/01/assist-satellite-entity/)
+- [Version compare for Update platform can now be overwritten](https://developers.home-assistant.io/blog/2024/09/28/update-version-compare)
+
+[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 2024.10](/changelogs/core-2024.10)
diff --git a/source/_redirects b/source/_redirects
index 0d93fefc6b9f..1382529d9e5d 100644
--- a/source/_redirects
+++ b/source/_redirects
@@ -174,6 +174,7 @@ layout: null
/integrations/light.knx /integrations/knx#light
/integrations/light.mysensors /integrations/mysensors#light
/integrations/light.xiaomi_miio /integrations/xiaomi_miio/#xiaomi-philips-light
+/integrations/lock.xiaomi_aqara/ /integrations/xiaomi_aqara/#locks
/integrations/media_player.group /integrations/group
/integrations/notify.command_line /integrations/command_line#Notify
/integrations/notify.group /integrations/group#notify-groups
diff --git a/source/changelogs/core-2024.10.markdown b/source/changelogs/core-2024.10.markdown
new file mode 100644
index 000000000000..5cd7257901e7
--- /dev/null
+++ b/source/changelogs/core-2024.10.markdown
@@ -0,0 +1,2517 @@
+---
+title: Full changelog for Home Assistant Core 2024.10
+description: Detailed changelog for the Home Assistant Core 2024.10 release
+replace_regex: \s\(\[?[a-z0-9\-\s_]+\]?\)$
+---
+
+These are all the changes included in the Home Assistant Core 2024.10 release.
+
+For a summary in a more readable format:
+[Release notes blog for this release](/blog/2024/10/02/release-202410/).
+
+- Bump version to 2024.10.0dev0 ([@edenhaus] - [#124808])
+- Add Deako integration ([@Balake] - [#121132])
+- Use reauth_confirm in discovergy ([@epenet] - [#124782])
+- Use reauth_confirm in co2signal ([@epenet] - [#124781])
+- Bump tellduslive to 0.10.12 ([@fredrike] - [#124816])
+- Add evohome test for setup ([@zxdavb] - [#123129])
+- Support Z-Wave JS dimming lights using color intensity ([@AlCalzone] - [#122639])
+- Fix evohome test by setting datetime to match snapshot ([@zxdavb] - [#124824])
+- Set GoogleEntity entity_id in constructor ([@bdraco] - [#124830])
+- SmartThings edge driver for heatit thermostats does not require cooling setpoint ([@jm-cook] - [#123188])
+- Cleanup unused `hass_storage` mocks in mqtt tests ([@jbouwh] - [#124846])
+- Tweak exception message in yaml loader ([@emontnemery] - [#124841])
+- Avoid unnecessary copying of variables when setting up automations ([@emontnemery] - [#124844])
+- Improve config flow type hints (a-f) ([@epenet] - [#124859])
+- Deduplicate warning messages in recorder DB migration ([@emontnemery] - [#124845])
+- Bump github/codeql-action from 3.26.5 to 3.26.6 (@dependabot - [#124898])
+- Remove update call from init in ViCare integration ([@CFenner] - [#124905])
+- Bump actions/setup-python from 5.1.1 to 5.2.0 (@dependabot - [#124899])
+- Improve config flow type hints (n-p) ([@epenet] - [#124909])
+- Improve config flow type hints (g-m) ([@epenet] - [#124907])
+- Improve type hints in nina config flow ([@epenet] - [#124910])
+- Improve type hints in plex config flow ([@epenet] - [#124914])
+- Add hot water target temp number entity in ViCare integration ([@CFenner] - [#123633])
+- Improve type hints in konnected config flow ([@epenet] - [#124904])
+- Improve type hints in mobile_app config flow ([@epenet] - [#124906])
+- Improve type hints in hvv_departures config flow ([@epenet] - [#124902])
+- Improve type hints in growatt_server config flow ([@epenet] - [#124901])
+- Improve type hints in icloud config flow ([@epenet] - [#124900])
+- Speed up ssdp domain matching ([@bdraco] - [#124842])
+- Bump pysqueezebox to v0.8.1 ([@rajlaud] - [#124856])
+- Add returning activity to Husqvarna lawn mower ([@mikey0000] - [#124511])
+- Add lektrico integration ([@Lektrico] - [#102371])
+- Add shapournemati to iotty codeowners ([@shapournemati-iotty] - [#123649])
+- Clean up Weatherflow Cloud ([@jeeftor] - [#124643])
+- Alphabetize keys list for nut sensor icons ([@tdfountain] - [#124188])
+- Add 100% coverage of Reolink sensor platform ([@starkillerOG] - [#124472])
+- Add 100% coverage of Reolink light platform ([@starkillerOG] - [#124382])
+- Add 100% coverage of Reolink camera platform ([@starkillerOG] - [#124381])
+- Add 100% coverage of Reolink switch platform ([@starkillerOG] - [#124482])
+- Use snapshot in Axis camera tests ([@Kane610] - [#122677])
+- Add LG ThinQ Integration ([@LG-ThinQ-Integration] - [#123860])
+- Add 100% coverage of Reolink host.py ([@starkillerOG] - [#124577])
+- Ensure smilight fixtures select correct platform for tests ([@tl-sl] - [#124305])
+- Add Google Photos integration ([@allenporter] - [#124835])
+- Add work items per type and state counter sensors to Azure DevOps ([@timmo001] - [#119737])
+- Add inverter-devices to solarlog ([@dontinelli] - [#123205])
+- Add option to login with username/email and password in Habitica integration ([@tr4nt0r] - [#117622])
+- Add Google Photos reauth support ([@allenporter] - [#124933])
+- Enable strict typing checking for bluesound integration ([@LouisChrist] - [#123821])
+- Bump google-cloud-texttospeech to 2.17.2 ([@bdraco] - [#124938])
+- Bump google-cloud-pubsub to 2.23.0 ([@bdraco] - [#124937])
+- Bump google-generativeai to 0.7.2 ([@bdraco] - [#124940])
+- Limit maximum template render output to 256KiB ([@bdraco] - [#124946])
+- Rename lg_thinq domain name ([@joostlek] - [#124926])
+- Enable config flow for html5 ([@alexyao2015] - [#112806])
+- Add missing translation for Google Photos reauth ([@allenporter] - [#124959])
+- Fix Google Photos get media calls ([@allenporter] - [#124958])
+- Address additional Google Photos integration feedback ([@allenporter] - [#124957])
+- Send entity name or original name to LCN frontend ([@alengwenus] - [#124518])
+- Remove HVAC Modes when no scopes in Teslemetry ([@Bre77] - [#124612])
+- Improve config flow type hints in cast ([@epenet] - [#124861])
+- Merge coordinators in Airgradient ([@joostlek] - [#124714])
+- Small code quality fix in Teslemetry ([@Bre77] - [#124603])
+- Clean up Google Photos media source ([@allenporter] - [#124977])
+- Update aioairzone-cloud to v0.6.3 ([@Noltari] - [#124978])
+- Update mypy-dev to 1.12.0a3 ([@cdce8p] - [#124939])
+- Add loggers for Google Photos integration ([@allenporter] - [#124986])
+- Add Google Photos service for uploading content ([@allenporter] - [#124956])
+- Add Google Photos media source support for albums and favorites ([@allenporter] - [#124985])
+- Use constant for default medium type in Mopeka ([@cayossarian] - [#125002])
+- Update aioairzone-cloud to v0.6.4 ([@Noltari] - [#125007])
+- Bump solarlog_cli to 0.2.2 ([@dontinelli] - [#124948])
+- Split opentherm_gw entities between different devices ([@mvn23] - [#124869])
+- Migrate opentherm_gw climate entity unique_id ([@mvn23] - [#125024])
+- Bump aio-georss-gdacs to 0.10 ([@exxamalte] - [#125021])
+- Extend hjjcy device category in Tuya integration ([@krasnoukhov] - [#124854])
+- Update aioairzone-cloud to v0.6.5 ([@Noltari] - [#125030])
+- Clarify comment in google photos upload service ([@allenporter] - [#125042])
+- New template merge_response ([@gjohansson-ST] - [#114204])
+- Improve renault tests ([@epenet] - [#125064])
+- Update Matter light transition blocklist to include YNDX LightStrip ([@Nidre] - [#124657])
+- Add strict typing in Google Cloud ([@tronikos] - [#125068])
+- Setup Google Cloud from the UI ([@tronikos] - [#121502])
+- Remove unused event from recorder ([@emontnemery] - [#125067])
+- Do not LG thinq retry entry setup, when a single coordinator failed ([@LG-ThinQ-Integration] - [#125052])
+- Remove lying comment from service.async_register_entity_service ([@emontnemery] - [#125079])
+- Deprecate template.attach ([@emontnemery] - [#124843])
+- Bump ring-doorbell to 0.9.3 ([@sdb9696] - [#125087])
+- Correct start version in recorder schema migration tests ([@emontnemery] - [#125090])
+- Remove roundig in Solarlog and add suggested_display_precision ([@dontinelli] - [#125094])
+- Add diagnostics to solarlog ([@dontinelli] - [#125072])
+- Cleanup removed options for mqtt climate ([@jbouwh] - [#125083])
+- Add separate entities for temperature, humidity and pressure in AccuWeather integration ([@bieniu] - [#125041])
+- Add test of statistics timestamp migration ([@emontnemery] - [#125100])
+- Add coverage for late unifiprotect person detection events ([@bdraco] - [#125103])
+- Test string timestamps are wiped after migration to schema version 32 ([@emontnemery] - [#125091])
+- Add Airzone Cloud Aidoo HVAC indoor/outdoor sensors ([@Noltari] - [#125013])
+- Bump flipr api to 1.6.1 ([@cnico] - [#125106])
+- Replace _host_in_configuration_exists with async_abort_entries_match in solarlog ([@dontinelli] - [#125099])
+- Remove `is_on` function from `homeassistant.components` ([@jbouwh] - [#125104])
+- Remove recorder PostSchemaMigrationTask ([@emontnemery] - [#125076])
+- Add binary_sensor platform to LG Thinq ([@LG-ThinQ-Integration] - [#125054])
+- Convert ring integration to use entry.runtime_data ([@sdb9696] - [#125127])
+- Add dependency on google-photos-library-api: Change the Google Photos client library to a new external package ([@allenporter] - [#125040])
+- Bump hadolint to 2.12.0 and use matrix for all Dockerfiles ([@edenhaus] - [#125131])
+- Add climate platform to Tesla Fleet ([@Bre77] - [#123169])
+- Improve hassfest docker image ([@edenhaus] - [#125133])
+- Abort ring config_flow if account is already configured ([@sdb9696] - [#125120])
+- Add Google Cloud Speech-to-Text (STT) ([@tronikos] - [#120854])
+- Add Onkyo Receiver class to improve typing ([@arturpragacz] - [#124190])
+- Speed up hassio send_command url check ([@bdraco] - [#125122])
+- Add explaining comments in cv.template tests ([@emontnemery] - [#125081])
+- Support setting Amazon Polly engine in service call ([@jschlyter] - [#120226])
+- Bump actions/upload-artifact from 4.3.6 to 4.4.0 (@dependabot - [#125056])
+- Extended epson projector integration to include serial connections ([@s0129] - [#121630])
+- Clean up Z-wave error log when raising in service handlers ([@MartinHjelmare] - [#125138])
+- End deprecation setting attributes directly on config entry ([@gjohansson-ST] - [#123729])
+- Remove opentherm_gw options migration ([@mvn23] - [#125046])
+- Use SnapshotAssertion in more AVM Fritz!Box Tools tests ([@mib1185] - [#125037])
+- Add favorites support to Media Browser for Squeezebox integration ([@rajlaud] - [#124732])
+- Bump PyMetno to 0.13.0 ([@hanskroner] - [#125151])
+- Make optional arguments to frame.report kwarg only ([@emontnemery] - [#125062])
+- Improve some comments in recorder tests ([@emontnemery] - [#125118])
+- Add sensors for AsusWRT using http(s) library ([@ollo69] - [#124337])
+- Migrate emoncms to config flow ([@alexandrecuer] - [#121336])
+- Add support for total YouTube views ([@Alexwijn] - [#123144])
+- Enable strict typing for the Squeezebox integration ([@rajlaud] - [#125161])
+- Update opentherm_gw tests to avoid patching internals ([@mvn23] - [#125152])
+- Enhance error handling when changing a timer's duration ([@N3rdix] - [#121786])
+- Fix type errors in squeezebox ([@rajlaud] - [#125166])
+- Expose UV Index in Met.no ([@hanskroner] - [#124992])
+- Update opentherm_gw tests to prepare for new platforms ([@mvn23] - [#125172])
+- Add include-hidden-files to upload env_file artifact ([@ludeeus] - [#125179])
+- Refactor recorder EventIDPostMigration data migrator ([@emontnemery] - [#125126])
+- Add re-auth flow to NextDNS integration ([@bieniu] - [#125101])
+- Add 100% coverage of Reolink update platform ([@starkillerOG] - [#124521])
+- Improve recorder tests to check indices are removed ([@emontnemery] - [#125164])
+- Add myself as codeowner for BTHome ([@thecode] - [#125184])
+- Bump xiaomi-ble to 0.31.1 to add support for human presence sensor XMOSB01XS ([@ldfandian] - [#124751])
+- Get zwave_js statistics data from model ([@raman325] - [#120281])
+- Fix missing patch in nextdns tests ([@emontnemery] - [#125195])
+- Move recorder EntityIDPostMigrationTask to migration ([@emontnemery] - [#125136])
+- Teach recorder data migrator base class to remove index ([@emontnemery] - [#125168])
+- Bump yarl to 1.9.8 ([@bdraco] - [#125193])
+- Add Motionblinds Bluetooth diagnostics ([@LennP] - [#121899])
+- Add 100% coverage of Reolink button platform ([@starkillerOG] - [#124380])
+- Add new number component for setting the wallbox ICP current ([@hesselonline] - [#125209])
+- Bump aioesphomeapi to 25.3.2 ([@bdraco] - [#125188])
+- Allow Switchbot users to force nightlatch ([@Michal4K] - [#124326])
+- Fix enum lookup ([@cdce8p] - [#125220])
+- Add Iskra integration ([@iskrakranj] - [#121488])
+- Bump thinqconnect to 0.9.6 ([@LG-ThinQ-Integration] - [#125155])
+- Fix Path.__enter__ DeprecationWarning in tests ([@cdce8p] - [#125227])
+- Reenable Smarty integration ([@martinssipenko] - [#124148])
+- Remove ExternalDevice migration in HomeWizard ([@DCSBL] - [#125197])
+- Improve config flow type hints in starline ([@epenet] - [#125202])
+- Improve config flow type hints (q-s) ([@epenet] - [#125198])
+- Fix device identifier in ViCare integration ([@CFenner] - [#124483])
+- Improve config flow type hints in screenlogic ([@epenet] - [#125199])
+- Add Button platform for Smlight integration ([@tl-sl] - [#124970])
+- Add Onkyo to strict typing ([@arturpragacz] - [#124617])
+- Add button platform to opentherm_gw ([@mvn23] - [#125185])
+- Add support for sample bytes in preferred TTS format ([@synesthesiam] - [#125235])
+- Add Sonos tests and update error handling for unknown media ([@PeteRager] - [#124578])
+- Revert "Disable IPv6 in the opower integration to fix AEP utilities" ([@bdraco] - [#125208])
+- Remove deprecated aux_heat from honeywell ([@gjohansson-ST] - [#125248])
+- Add Custom Drink Entities Tami4 Edge ([@taltaub22] - [#124506])
+- Add debug logging in get_cost_reads in opower ([@tronikos] - [#124473])
+- Add uptime sensors for Smlight ([@tl-sl] - [#124408])
+- Add hysteresis entity for heat pumps via ViCare ([@CFenner] - [#124294])
+- Add service to 17track to archive package ([@shaiu] - [#123493])
+- Add madvr diagnostics ([@iloveicedgreentea] - [#125109])
+- Address BTHome review comment ([@thecode] - [#125259])
+- Squeezebox remove deprecated sync and unsync services ([@rajlaud] - [#125271])
+- Fix yarl binary wheel builds for armv7l and armhf ([@bdraco] - [#125270])
+- Bump yarl to 1.9.9 ([@bdraco] - [#125264])
+- Use TypeVar defaults for Generator ([@cdce8p] - [#125228])
+- Switch hassio to use with_path where possible ([@bdraco] - [#125268])
+- Teach recorder data migrator base class to update MigrationChanges ([@emontnemery] - [#125214])
+- Improve config flow type hints in ukraine_alarm ([@epenet] - [#125302])
+- Simplify generic decorators in recorder ([@emontnemery] - [#125301])
+- Add diagnostics to GDACS integration ([@exxamalte] - [#125296])
+- Add reauth flow for Smlight ([@tl-sl] - [#124418])
+- Add diagnostics to GeoNet NZ Quakes integration ([@exxamalte] - [#125320])
+- Add new data types to ADS integration ([@mrpasztoradam] - [#125201])
+- Split opentherm_gw entity base class ([@mvn23] - [#125330])
+- Refactor recorder retryable_database_job decorator ([@emontnemery] - [#125306])
+- Add Squeezebox server service binary sensors ([@pssc] - [#122473])
+- Fix typo in squeezebox ([@peteS-UK] - [#125352])
+- Bump plugwise to v1.0.0 ([@bouwew] - [#125354])
+- Home Connect add FridgeFreezer switch entities ([@beastie29a] - [#122881])
+- Bump aioswitcher to 4.0.3 ([@YogevBokobza] - [#125355])
+- Remove deprecated aux_heat from zha ([@gjohansson-ST] - [#125247])
+- Add Sensoterra integration ([@markruys] - [#119642])
+- Extend deprecation of aux_heat in ClimateEntity ([@gjohansson-ST] - [#125360])
+- Add model ID to Sonos ([@balloob] - [#125364])
+- Add model ID to roborock ([@balloob] - [#125366])
+- Add model ID to samsungtv ([@balloob] - [#125369])
+- Add model ID to Wemo ([@balloob] - [#125368])
+- Add model ID to awair ([@balloob] - [#125373])
+- Add model ID to unifiprotect ([@balloob] - [#125376])
+- Add assist satellite entity component ([@synesthesiam] - [#125351])
+- Correct check for removed index in recorder test ([@emontnemery] - [#125323])
+- Bump ruff to 0.6.4 ([@autinerd] - [#125385])
+- Add binary_sensor platform for Smlight integration ([@tl-sl] - [#125284])
+- Add tests for LCN actions / services ([@alengwenus] - [#125391])
+- Add model ID to linkplay ([@balloob] - [#125370])
+- Enable Ruff PTH for the script directory ([@autinerd] - [#124441])
+- Replace SW version by model ID in renault device info ([@epenet] - [#125399])
+- Use smlight discovery hostname as device name ([@thecode] - [#125359])
+- Add weheat core integration ([@jesperraemaekers] - [#123057])
+- Small Assist Satellite fixes ([@balloob] - [#125384])
+- Add Switch platform to Smlight integration ([@tl-sl] - [#125292])
+- Add YoLink temperature sensor YS8008 support ([@matrixd2] - [#125408])
+- Rename "Ruckus Unleashed" integration to "Ruckus" ([@ms264556] - [#125392])
+- Remove attributes from Nuki entities ([@steffenrapp] - [#125348])
+- Improve config flow type hints in volumio ([@epenet] - [#125318])
+- Add translations to Xiaomi Miio ([@jrieger] - [#123822])
+- Improve config flow type hints (t-z) ([@epenet] - [#125315])
+- Add Habitica up/down attributes for tasks ([@shedokan] - [#125356])
+- Improve config flow type hints in xiaomi_aqara ([@epenet] - [#125316])
+- Improve config flow type hints in vulcan ([@epenet] - [#125308])
+- Improve geniushub test coverage ([@GeoffAtHome] - [#124157])
+- Add binary sensors for motion detection Comelit simple home ([@fiste788] - [#125200])
+- Fix location_id datatype in totalconnect tests ([@epenet] - [#125298])
+- Improve config flow type hints in totalconnect ([@epenet] - [#125300])
+- Improve config flow type hints in tellduslive ([@epenet] - [#125299])
+- Bump yarl to 1.9.11 ([@bdraco] - [#125287])
+- Remove unneeded wrapping of URL in URL in network helper ([@bdraco] - [#125265])
+- Code quality improvement on local_file ([@gjohansson-ST] - [#125165])
+- Add filter run time for deCONZ air purifiers ([@Kane610] - [#123306])
+- Migrate VoIP to use assist satellite ([@balloob] - [#125381])
+- Remove deprecated aux_heat from ecobee ([@gjohansson-ST] - [#125246])
+- Remove support for area, device, or entity targets for screenlogic actions ([@dieselrabbit] - [#123432])
+- Bump blebox_uniapi to v2.5.0 ([@swistakm] - [#124298])
+- Migrate ESPHome to assist satellite ([@balloob] - [#125383])
+- Add model ID to sfr_box ([@epenet] - [#125400])
+- Use PEP 695 for decorator typing with type aliases in zha ([@emontnemery] - [#124235])
+- Improve consistency of sensor strings to reduce confusion in NUT ([@tdfountain] - [#124184])
+- Move ambient sensors (temperature and humidity) to diagnostic in NUT ([@tdfountain] - [#124180])
+- Provide same entities for all Enphase_envoy CT types ([@catsmanac] - [#124531])
+- Fix UnboundLocalError in recorder ([@emontnemery] - [#125419])
+- Improve coordinator test coverage for enphase_envoy ([@catsmanac] - [#122375])
+- Add tests for LCN climate and scene platform ([@alengwenus] - [#124466])
+- Use first media player announcement format for TTS ([@synesthesiam] - [#125237])
+- Replace strings with constants in Bang & Olufsen testing ([@mj23000] - [#125423])
+- Nice G.O. code quality improvements ([@IceBotYT] - [#124319])
+- Add switch platform to opentherm_gw ([@mvn23] - [#125410])
+- Add model ID to WallboxEntity ([@hesselonline] - [#125434])
+- Bump yarl to 1.10.0 ([@bdraco] - [#125446])
+- Add discovery schemas for Matter 1.3 power/energy sensors ([@marcelveldt] - [#125403])
+- Request one data point in statistics_during_period in Opower ([@tronikos] - [#124480])
+- Fix docstrings in opentherm_gw ([@mvn23] - [#125456])
+- Clean up test for Wallbox integration ([@hesselonline] - [#125433])
+- Add model ID to Matter DeviceInfo ([@marcelveldt] - [#125341])
+- Bump xiaomi-ble to 0.32.0 ([@ldfandian] - [#125461])
+- Update aioairzone to v0.9.0 ([@Noltari] - [#125476])
+- Replace linear search in unit_system with dict lookup ([@bdraco] - [#125485])
+- Bump zeroconf to 0.134.0 ([@bdraco] - [#125491])
+- Clean up tests for LCN ([@alengwenus] - [#125493])
+- Add tests for BSBLAN climate component ([@liudger] - [#124524])
+- Change of acmeda element unique_id ([@atmurray] - [#124963])
+- Bump pymslight to 0.0.15 ([@tl-sl] - [#125455])
+- Fix after review comments for Acmeda ([@joostlek] - [#125501])
+- Fix solarlog test RuntimeWarning ([@cdce8p] - [#125504])
+- Include all enphase_envoy devices in async_remove_config_entry_device ([@catsmanac] - [#124533])
+- Add missing previous and next commands in LinkPlay ([@silamon] - [#125450])
+- Reorder openweathermap modes according to recommendation in documentation ([@N3rdix] - [#125395])
+- Add reconfigure for lamarzocco ([@zweckj] - [#122160])
+- Add balanced grid import/export to enphase_envoy ([@catsmanac] - [#123154])
+- Fix Bang & Olufsen testing typing ([@mj23000] - [#125427])
+- Add various assertions to Bang & Olufsen testing ([@mj23000] - [#125429])
+- Add text-selector autocomplete in Bring config flow ([@tr4nt0r] - [#124063])
+- Allow waze_travel_time multiple excl/incl filter ([@eifinger] - [#117252])
+- Use json data instead of timedelta for tests in generic hygrostat ([@elupus] - [#124111])
+- Adjust generic hygrostat to detect reported events for stale tracking ([@elupus] - [#124109])
+- Add voice settings to ElevenLabs options flow ([@sorgfresser] - [#123265])
+- Clean up Mold indicator ([@gjohansson-ST] - [#123080])
+- Add DeviceInfo to Bring integration ([@tr4nt0r] - [#122419])
+- Add last restart sensor to devolo_home_network ([@Shutgun] - [#122190])
+- Add sleep to map select for Roborock ([@Lash-L] - [#122625])
+- Fix UI config validation for button and switch actions in Template ([@dougiteixeira] - [#121810])
+- Add translation to Jellyfin ([@jrieger] - [#123857])
+- Deprecate aux_heat in elkm1 ([@gjohansson-ST] - [#125372])
+- Deprecate aux_heat from Nexia climate entity, implement switch ([@gjohansson-ST] - [#125250])
+- Add validation to climate hvac mode ([@gjohansson-ST] - [#125178])
+- Deprecate aux_heat in econet ([@gjohansson-ST] - [#125365])
+- Deprecate opentherm_gw configuration through configuration.yaml ([@mvn23] - [#125045])
+- Add set_profile service for Vallox integration ([@treetip] - [#120225])
+- Add config flow to Mold indicator ([@gjohansson-ST] - [#122600])
+- Correct Mastodon IOT class ([@andrew-codechimp] - [#125511])
+- Add ability to play plex media as the non-primary user ([@ViViDboarder] - [#122039])
+- Set required attribute when using Todoist Sync API reminder_add command ([@proxi] - [#122644])
+- Change Knocki integration type to hub ([@joostlek] - [#124863])
+- Remove notify support for templates ([@wbyoung] - [#122820])
+- Ensure Linkplay model_id is always defined ([@balloob] - [#125488])
+- Fix ring notifications ([@sdb9696] - [#124879])
+- Update bring todo entity snapshots ([@jpbede] - [#125518])
+- Add event platform to ring ([@sdb9696] - [#125506])
+- Migrate smappee to use runtime_data ([@epenet] - [#125529])
+- Migrate amberelectric to use runtime_data ([@epenet] - [#125533])
+- Fix failing template config flow tests ([@hunterjm] - [#125534])
+- Migrate airvisual to use runtime_data ([@epenet] - [#125532])
+- Fix failing blebox climate tests ([@jpbede] - [#125522])
+- Migrate anthemav to use runtime_data ([@epenet] - [#125537])
+- Migrate aosmith to use runtime_data ([@epenet] - [#125538])
+- Migrate apcupsd to use runtime_data ([@epenet] - [#125539])
+- Migrate anova to use runtime_data ([@epenet] - [#125536])
+- Migrate ambient_network to use runtime_data ([@epenet] - [#125535])
+- Update aioairzone to v0.9.1 ([@Noltari] - [#125547])
+- Fix building multidict binary wheels on armv7 and armhf ([@bdraco] - [#125550])
+- Bump yarl to 1.11.0 ([@bdraco] - [#125549])
+- LLM Tool parameters check ([@Shulyaka] - [#123621])
+- ESPHome media proxy ([@synesthesiam] - [#123254])
+- Bump aioesphomeapi to 25.4.0 ([@jesserockz] - [#125554])
+- Separate recorder test fixtures disabling context id migration ([@emontnemery] - [#125324])
+- Fix support for Heat meters to DSMR integration ([@cbrouwer] - [#125523])
+- Remove KNX yaml config from `hass.data` ([@farmio] - [#124050])
+- Add alias to DOMAIN import in group ([@epenet] - [#125569])
+- Add a syntax for merging lists of triggers ([@karwosts] - [#117698])
+- Add announce support to ESPHome Assist Satellite platform ([@synesthesiam] - [#125157])
+- Do not directy import platform DOMAIN const in MQTT platform tests ([@jbouwh] - [#125589])
+- Document plant integration development state ([@MartinHjelmare] - [#125590])
+- Add Matter BatVoltage attribute from PowerSource cluster ([@lboue] - [#125503])
+- Sort and remove duplicates from template/const.py ([@emontnemery] - [#125591])
+- Add alias to DOMAIN import in tests [n-z] ([@epenet] - [#125581])
+- Add alias to DOMAIN import in homekit ([@epenet] - [#125572])
+- Add alias to DOMAIN import in tests [e-g] ([@epenet] - [#125575])
+- Add alias to DOMAIN import in tests [a-d] ([@epenet] - [#125573])
+- Add alias to DOMAIN import in tests [h-m] ([@epenet] - [#125577])
+- Enable hadolint for hassfest docker image and adjust hadolint job ([@edenhaus] - [#125146])
+- Bump aioopenexchangerates to 0.6.2 ([@MartinHjelmare] - [#125593])
+- Add alias to DOMAIN import in deconz ([@epenet] - [#125568])
+- Simplify cv._base_trigger_list_flatten ([@emontnemery] - [#125613])
+- Add alias to DOMAIN import (part 4) ([@epenet] - [#125563])
+- Add alias to DOMAIN import (part 1) ([@epenet] - [#125560])
+- Catch Forecast.solar ConnectionError when API down ([@klaasnicolaas] - [#125621])
+- Bump yarl to 1.1.11 ([@bdraco] - [#125633])
+- Bump actions/attest-build-provenance from 1.4.2 to 1.4.3 (@dependabot - [#125390])
+- Set responding state in assist satellite announcements ([@synesthesiam] - [#125632])
+- Make auth safe params a frozenset ([@bdraco] - [#125640])
+- Add alias to DOMAIN import (part 3) ([@epenet] - [#125562])
+- Add alias to DOMAIN import (part 2) ([@epenet] - [#125561])
+- Remove myself from codeowner from lutron_caseta ([@bdraco] - [#125609])
+- Rename HassEnforceCoordinatorModule ([@epenet] - [#125592])
+- Add alias to DOMAIN import in config and demo ([@epenet] - [#125570])
+- Link mold_indicator entity to device from humidity sensor ([@gjohansson-ST] - [#125528])
+- Bump thinqconnect to 0.9.7 ([@LG-ThinQ-Integration] - [#125587])
+- Create property_ids with ActiveMode in LG ThinQ integration ([@LG-ThinQ-Integration] - [#125638])
+- Improve config flow type hints in yeelight ([@epenet] - [#125319])
+- Add model_id to MotionMount integration ([@RJPoelstra] - [#125650])
+- Add calories to energy sensor device class ([@dudanov] - [#122796])
+- Remove recorder history queries for database schemas < 25 ([@emontnemery] - [#125649])
+- Disable fail-fast on publish container jobs ([@edenhaus] - [#125245])
+- Disable ThermoWorks Smoke due incompatible dependencies ([@edenhaus] - [#125661])
+- Move Hub and Entity to separate module in ADS ([@epenet] - [#125665])
+- Migrate wolflink config_entry unique_id to string ([@epenet] - [#125653])
+- Bump uv to 0.4.8 ([@edenhaus] - [#124867])
+- Warn on non-string config entry unique IDs ([@epenet] - [#125662])
+- Add coordinator to Daikin ([@joostlek] - [#124394])
+- Rename Entity module in tellduslive ([@epenet] - [#125668])
+- Fix malformed response in Bang & Olufsen testing ([@mj23000] - [#125658])
+- Bump aioautomower to 2024.9.0 ([@Thomas55555] - [#125647])
+- Add Human Shape Detect to ONVIF ([@renehonig] - [#125335])
+- Add new functions to ADS sensor integration ([@mrpasztoradam] - [#125331])
+- Bump python-MotionMount to 2.1.0 ([@RJPoelstra] - [#125660])
+- Deprecate Daikin YAML platform setup ([@joostlek] - [#125158])
+- Add state_class to OHM sensors ([@silentguy256] - [#125567])
+- Parameterize many of the threshold tests ([@agoode] - [#125521])
+- Replace Throttle in bluesound integration ([@LouisChrist] - [#124943])
+- Disable sfr_box diagnostic test ([@emontnemery] - [#125678])
+- Bump weatherflow4py to 0.3.3 ([@jeeftor] - [#125676])
+- Add Roomba last mission sensor ([@krzysdabro] - [#123048])
+- Add squeezebox service sensors ([@pssc] - [#125349])
+- Bump matrix-nio to 0.25.1 ([@PaarthShah] - [#125555])
+- Move constants in Threshold ([@agoode] - [#125683])
+- Bump weatherflow4py to 0.3.4 ([@jeeftor] - [#125681])
+- Update aioairzone to v0.9.2 ([@Noltari] - [#125682])
+- Add velbus HVAC options ([@RZomermanMS] - [#106570])
+- Add Cambridge Audio integration ([@noahhusby] - [#125642])
+- Remove recorder history queries for database schemas < 31 ([@emontnemery] - [#125652])
+- Refactor LcnEntity signature ([@alengwenus] - [#124411])
+- Extend deprecation period for hass.components by 6 months ([@emontnemery] - [#125659])
+- End deprecation setting disabled_by as string ([@epenet] - [#125646])
+- Add pylint check for DOMAIN alias ([@epenet] - [#125559])
+- Simplify recorder statistics_meta_manager ([@emontnemery] - [#125648])
+- Bump nextdns to version 3.3.0 ([@bieniu] - [#125688])
+- Disbale Tfiac integration due invalid wheel ([@edenhaus] - [#125692])
+- Mark UVC as strict typed ([@joostlek] - [#123239])
+- Bump aiostreammagic to 2.1.0 ([@noahhusby] - [#125696])
+- Add pre-amp support for Cambridge Audio ([@noahhusby] - [#125699])
+- Fix failing elevenlabs tts test ([@jpbede] - [#125698])
+- Add select platform to opentherm_gw ([@mvn23] - [#125585])
+- Add URL description for Sabnzbd integration ([@shaiu] - [#125414])
+- Add LED mode select entities to opentherm_gw ([@mvn23] - [#125702])
+- Unload assist satellite platform on disconnect ([@synesthesiam] - [#125697])
+- Cancel running pipeline on new pipeline or announcement ([@synesthesiam] - [#125687])
+- Add unit_of_measurement to template numbers ([@chammp] - [#122862])
+- Add condition to trigger template entities ([@chammp] - [#119689])
+- Use uv at runtime too ([@edenhaus] - [#125110])
+- Improve yolink code readability ([@matrixd2] - [#125724])
+- Bump uv to 0.4.9 ([@edenhaus] - [#125726])
+- Upgrade iottycloud to 0.2.1 ([@shapournemati-iotty] - [#125731])
+- Add EntityDescription classes to pylint plugin ([@epenet] - [#125596])
+- Add common apis to base entity class of LG ThinQ integration ([@LG-ThinQ-Integration] - [#125713])
+- Bump aiostreammagic to 2.2.3 ([@noahhusby] - [#125704])
+- Add server side events to Smlight integration ([@tl-sl] - [#125553])
+- Allow to play a LinkPlay preset ([@silamon] - [#125204])
+- Take a list of values for testing Threshold ([@agoode] - [#125705])
+- Add ADS valve integration ([@mrpasztoradam] - [#125619])
+- Improve test code coverage for enphase_envoy ([@catsmanac] - [#125582])
+- Duke Energy Integration ([@hunterjm] - [#125489])
+- Add storage settings for enphase_envoy batteries without enpower device ([@catsmanac] - [#125527])
+- Update worldclock component config_flow labels to match pre-defined format output ([@yyolk] - [#125707])
+- Simplify imports in remote_rpi_gpio ([@epenet] - [#125745])
+- Use HassKey in trace ([@epenet] - [#125751])
+- Add flexibility to HassEnforceClassModule ([@epenet] - [#125739])
+- Simplify imports in mysensors ([@epenet] - [#125746])
+- Add TRIGGERcmd integration ([@rvmey] - [#121268])
+- Use HassKey in ads ([@epenet] - [#125735])
+- Move shared constant in ios ([@epenet] - [#125748])
+- Simplify imports in pilight ([@epenet] - [#125747])
+- Move shared constant in zabbix ([@epenet] - [#125744])
+- Add seek, shuffle, and repeat controls to Cambridge Audio ([@noahhusby] - [#125758])
+- Remove deprecated attributes from ping binary sensor ([@jpbede] - [#125760])
+- Remove commented out code from weatherflow cloud ([@joostlek] - [#125759])
+- Remove deprecated `ring.update` action ([@jpbede] - [#125762])
+- Add Monarch Money Integration ([@jeeftor] - [#124014])
+- Simplify imports in mqtt ([@epenet] - [#125749])
+- Move overkiz cover definitions ([@epenet] - [#125757])
+- Move overkiz water heater definitions ([@epenet] - [#125756])
+- Move overkiz climate definitions ([@epenet] - [#125741])
+- Add TotalConnect option to require alarm code ([@austinmroczek] - [#122270])
+- Small improvements to linkplay from reviews ([@silamon] - [#125766])
+- Implement time triggers with offset for timestamp sensors ([@tsvi] - [#120858])
+- Reload enphase_envoy integration upon envoy firmware change detection ([@catsmanac] - [#124650])
+- Add test snapshots to ring switch and siren platforms ([@sdb9696] - [#125771])
+- Allow attaching additional data to schedule helper blocks ([@Klikini] - [#116585])
+- Bump jaraco.abode to 6.2.0 ([@joostlek] - [#125512])
+- Add media player test to Cambridge Audio ([@noahhusby] - [#125780])
+- Bump pyblu to 1.0.2 ([@LouisChrist] - [#125784])
+- Remove call to removed function in bluesound integration ([@LouisChrist] - [#125779])
+- Refactoring flipr integration to prepare Hub device addition ([@cnico] - [#125262])
+- Bump aiostreammagic to 2.2.5 ([@noahhusby] - [#125792])
+- Add binary_sensor platform to LG ThinQ integration ([@LG-ThinQ-Integration] - [#125664])
+- Fix audio format for VoIP ([@synesthesiam] - [#125785])
+- Move growatt_server sensor definitions ([@epenet] - [#125755])
+- Move sunweg sensor definitions ([@epenet] - [#125754])
+- Disable ESPHome assist_in_progress binary sensor ([@emontnemery] - [#125802])
+- Add support for cover tilt for Shelly 2PM Gen3 ([@bieniu] - [#125717])
+- Validate target temp features in Climate Entity ([@gjohansson-ST] - [#125180])
+- Accept more than 1 state for numeric entities in Bayesian ([@HarvsG] - [#119281])
+- Finish cleanup of deprecated ring update service ([@sdb9696] - [#125810])
+- Remove manufacturer name from Wake on LAN device_info ([@mvdwetering] - [#123836])
+- Use root import for media_player and media_source in tests ([@epenet] - [#125829])
+- Improve type hints in ads ([@epenet] - [#125825])
+- Use root import for media_player and media_source ([@epenet] - [#125828])
+- Add entity available attribute to Cambridge Audio ([@noahhusby] - [#125831])
+- Use root import for device_automation ([@epenet] - [#125836])
+- Use root import for websocket_api ([@epenet] - [#125834])
+- Remove deprecated YAML import from rova ([@jpbede] - [#125849])
+- Disable Wyoming assist_in_progress binary sensor ([@emontnemery] - [#125806])
+- Disable voip call_in_progress binary sensor ([@emontnemery] - [#125812])
+- Use root import for async_redact_data in diagnostics ([@epenet] - [#125821])
+- Improve logging message for validation in climate ([@gjohansson-ST] - [#125837])
+- Use root import in components ([@epenet] - [#125858])
+- Fix incorrect import in androidtv tests ([@epenet] - [#125860])
+- Use root import in tests ([@epenet] - [#125862])
+- Fix failing nextdns coordinator test ([@jpbede] - [#125859])
+- Move ADS supported types to a StrEnum ([@epenet] - [#125824])
+- Fix incorrect import in lcn tests ([@epenet] - [#125877])
+- Add codeowner to ADS integration. ([@mrpasztoradam] - [#125893])
+- Use start/stop level change to open/close Z-Wave JS Window Covering CC covers ([@AlCalzone] - [#125827])
+- Expose component constants for llm helper ([@epenet] - [#125891])
+- Bump autarco lib to v3.0.0 ([@klaasnicolaas] - [#125867])
+- Bump aiotankerkoenig to 0.4.2 ([@jpbede] - [#125855])
+- Remove deprecated YAML import from seventeentrack ([@jpbede] - [#125852])
+- Bump pydiscovergy to 3.0.2 ([@jpbede] - [#125853])
+- Add reauth flow to Nice G.O. ([@IceBotYT] - [#125516])
+- Bump zwave-js-server-python to 0.58.0 ([@MartinHjelmare] - [#125666])
+- Bump aiogithubapi from 23.11.0 to 24.6.0 ([@ludeeus] - [#125819])
+- Add info based sensors to Smlight integration ([@tl-sl] - [#125482])
+- Add platform sensor to BSBLAN integration ([@liudger] - [#125474])
+- Add select platform to ADS integration ([@mrpasztoradam] - [#125892])
+- Add switch platform to Tesla Fleet ([@Bre77] - [#125798])
+- Add on_key to ONE_TOUCH_FILTER property in LG ThinQ integration ([@LG-ThinQ-Integration] - [#125797])
+- Migrate ring siren and switch platforms to entity descriptions ([@sdb9696] - [#125775])
+- Add Cover platform to Iotty ([@shapournemati-iotty] - [#125422])
+- Add button platform to the Lektrico integration ([@Lektrico] - [#125897])
+- Automatically add and remove Schlage devices ([@dknowles2] - [#125520])
+- Add tests to the media_player platform of the Squeezebox integration ([@rajlaud] - [#125378])
+- Migrate ring cam siren from switch to siren platform ([@sdb9696] - [#125761])
+- Improve config flow type hints in wolflink ([@epenet] - [#125313])
+- Bump aiostreammagic to 2.3.0 ([@noahhusby] - [#125903])
+- Add RestoreEntity to template alarm_control_panel ([@gjohansson-ST] - [#125844])
+- Add logs on disconnect/reconnect for Cambridge Audio ([@noahhusby] - [#125904])
+- Improve integration tests for Cambridge Audio ([@noahhusby] - [#125906])
+- Add Home Connect sensors for fridge door states and alarms ([@beastie29a] - [#125490])
+- Add diagnostics platform to Cambridge Audio ([@noahhusby] - [#125910])
+- Bump aioesphomeapi and adjust handle_stop ([@synesthesiam] - [#125907])
+- Add config flow to template alarm_control_panel ([@gjohansson-ST] - [#125861])
+- Remove own defined SOURCE_USER from sensoterra tests ([@gjohansson-ST] - [#125919])
+- Handle announcement finished for ESPHome TTS response ([@synesthesiam] - [#125625])
+- Add helper functions for repair tests ([@epenet] - [#125886])
+- Fix Assist Satellite making up conversation IDs ([@balloob] - [#125933])
+- Bump Weheat to 2024.09.10 ([@jesperraemaekers] - [#125936])
+- Bump pysmlight to 0.0.16 ([@tl-sl] - [#125935])
+- Make acknowledge requests from LCN modules optional ([@alengwenus] - [#125765])
+- Use debug instead of info log level in linode ([@jpbede] - [#125941])
+- Use debug instead of info log level in google_maps ([@jpbede] - [#125942])
+- Use warning instead of info log level in roborock ([@jpbede] - [#125940])
+- Add Smlight integration to strict-typing ([@tl-sl] - [#125946])
+- Additional sensor for Weheat integration ([@jesperraemaekers] - [#125524])
+- Use debug instead of info log level in components [a] ([@jpbede] - [#125944])
+- Bump solarlog_cli to 0.3.0 ([@dontinelli] - [#125951])
+- Use debug instead of info log level in components [c] ([@jpbede] - [#125955])
+- Use debug/warning instead of info log level in components [b] ([@jpbede] - [#125954])
+- Add k10+ vacuum in switchbot cloud integration ([@Gigatrappeur] - [#125457])
+- Update aioairzone to v0.9.3 ([@Noltari] - [#125977])
+- Use debug/warning instead of info log level in components [e] ([@jpbede] - [#125970])
+- Use debug/warning instead of info log level in components [d] ([@jpbede] - [#125969])
+- Use Freezer for tests in TotalConnect ([@austinmroczek] - [#125960])
+- Use debug/warning instead of info log level in components [f] ([@jpbede] - [#125971])
+- Bump opower to 0.8.0 ([@tronikos] - [#125981])
+- Remember Reolink config flow input ([@starkillerOG] - [#125962])
+- Update pil util font height ([@Window-Hero] - [#123512])
+- Improve Shelly RPC entity naming ([@bieniu] - [#125415])
+- Bump ruff to 0.6.5 ([@autinerd] - [#125923])
+- Fix uv installing in user site packages ([@edenhaus] - [#125808])
+- Switch Reolink from hass.data to runtime_data ([@starkillerOG] - [#126002])
+- Bump plugwise to v1.4.0 ([@bouwew] - [#125998])
+- Add calendar to Husqvarna Automower ([@Thomas55555] - [#120775])
+- Added virtual integration for Arizona Public Service supported by opower ([@seferino-fernandez] - [#126014])
+- Implement Reolink reconfiguration flow ([@starkillerOG] - [#126004])
+- Bump github/codeql-action from 3.26.6 to 3.26.7 (@dependabot - [#126021])
+- Use root import in assist_satellite imports ([@epenet] - [#126025])
+- Validate set_humidity in ClimateEntity ([@gjohansson-ST] - [#125242])
+- Use sample bytes in ESPHome media format ([@synesthesiam] - [#126016])
+- Add platform Entity classes to pylint plugin ([@epenet] - [#125737])
+- Improve type hints in numato ([@epenet] - [#126022])
+- Add missing type hint in monarch_money ([@epenet] - [#126019])
+- Remove yaml import from downloader ([@gjohansson-ST] - [#125921])
+- Cleanup zwave_js fixture definitions ([@AlCalzone] - [#125896])
+- Ignore negative derivative when the input is total_increasing ([@Smankusors] - [#119141])
+- Implement battery state binary sensor in Plugwise ([@bouwew] - [#126020])
+- Use shorthand attributes in numato ([@epenet] - [#126023])
+- Move apple_tv base entity to separate module ([@epenet] - [#126029])
+- Move blebox base entity to separate module ([@epenet] - [#126027])
+- Force root import of references from other components ([@epenet] - [#125816])
+- Move and rename acmeda base entity to separate module ([@epenet] - [#126028])
+- Use debug/warning instead of info log level in components [g] ([@jpbede] - [#126032])
+- Use debug/warning instead of info log level in components [h] ([@jpbede] - [#126033])
+- Use Home Assistant aiohttp session for Reolink ([@starkillerOG] - [#125948])
+- Disable pylint ignore_missing_annotations in config flow ([@epenet] - [#125322])
+- Add reconnect logic and proper reporting to MotionMount integration ([@RJPoelstra] - [#125670])
+- Bump weatherflow cloud to 1.0.6 ([@jeeftor] - [#125966])
+- Bump aiostreammagic to 2.3.1 ([@noahhusby] - [#126017])
+- Add Reolink chime package ringtone ([@starkillerOG] - [#125786])
+- Add Bang & Olufsen media_player grouping ([@mj23000] - [#123020])
+- Improve TotalConnect translations ([@austinmroczek] - [#125978])
+- Add select platform to Tesla Fleet ([@Bre77] - [#125931])
+- Use debug instead of info log level in components [L] ([@jpbede] - [#126039])
+- Use debug/warning instead of info log level in components [k] ([@jpbede] - [#126038])
+- Use debug instead of info log level in components [j] ([@jpbede] - [#126037])
+- Use debug/warning instead of info log level in components [i] ([@jpbede] - [#126036])
+- Set Smlight integration to local_push class ([@tl-sl] - [#125983])
+- Exclude uv from wheels building ([@edenhaus] - [#126035])
+- Add number platform to Tesla Fleet ([@Bre77] - [#125985])
+- Add internet binary sensor to Smlight integration ([@tl-sl] - [#125982])
+- Add update platform for Smlight integration ([@tl-sl] - [#125943])
+- Add Matter tests for BatVoltage attribute from PowerSource cluster ([@lboue] - [#125645])
+- Move devolo home control base entity to separate module ([@epenet] - [#126042])
+- Move and rename crownstone base entity to separate module ([@epenet] - [#126034])
+- Add translation to communication exceptions in MotionMount ([@RJPoelstra] - [#126043])
+- Change wake word interception to a subscription ([@synesthesiam] - [#125629])
+- Bump pyiskra to 0.1.11 ([@iskrakranj] - [#126048])
+- Introduce Reolink base entity description ([@joostlek] - [#126050])
+- Move elkm1 base entity to separate module ([@epenet] - [#126052])
+- Move enocean base entity to separate module ([@epenet] - [#126053])
+- Move and rename envisalink base entity to separate module ([@epenet] - [#126054])
+- Move efergy base entity to separate module ([@epenet] - [#126051])
+- Move econet base entity to separate module ([@epenet] - [#126049])
+- Move and rename fibaro base entity to separate module ([@epenet] - [#126055])
+- Move freebox base entity to separate module ([@epenet] - [#126056])
+- Move hdmi_cec base entity to separate module ([@epenet] - [#126057])
+- Add new integration for WMS WebControl pro using local API ([@mback2k] - [#124176])
+- Add sensor platform to laundrify integration ([@xLarry] - [#121378])
+- Implement model_id's in Plugwise ([@bouwew] - [#126069])
+- Move and rename alert base entity to separate module ([@epenet] - [#126030])
+- Remove callback decorators in Cambridge Audio ([@noahhusby] - [#126082])
+- Add media player stop support to Cambridge Audio ([@noahhusby] - [#126066])
+- Add Assist satellite configuration ([@synesthesiam] - [#126063])
+- Add ESPHome Assist satellite configuration ([@synesthesiam] - [#126085])
+- Move knx base entity to separate module ([@epenet] - [#126102])
+- Adding reauth support to Weheat ([@jesperraemaekers] - [#126108])
+- Bump pysmlight to 0.1.0 ([@tl-sl] - [#126111])
+- Add number platform to the Lektrico integration ([@Lektrico] - [#126119])
+- Move nissan_leaf base entity to separate module ([@epenet] - [#126106])
+- Move mysensors base entity to separate module ([@epenet] - [#126105])
+- Move modbus base entity to separate module ([@epenet] - [#126104])
+- Move and rename lutron caseta base entity to separate module ([@epenet] - [#126103])
+- Move and rename ihc base entity to separate module ([@epenet] - [#126101])
+- Move iaqualink base entity to separate module ([@epenet] - [#126100])
+- Move insteon base entity to separate module ([@epenet] - [#126099])
+- Move huawei_lte base entity to separate module ([@epenet] - [#126098])
+- Allow setting volume on Ring devices ([@daniel-k] - [#125773])
+- Move and rename hlk_sw16 base entity to separate module ([@epenet] - [#126096])
+- Move hive base entity to separate module ([@epenet] - [#126095])
+- Move homematicip_cloud base entity to separate module ([@epenet] - [#126094])
+- Addition of Flipr hub with switch platform ([@cnico] - [#125866])
+- Add Home Connect light entity for cooling appliances ([@beastie29a] - [#126090])
+- Improve negative TTS test ([@emontnemery] - [#126126])
+- Add sync clock button for Husqvarna Automower ([@Thomas55555] - [#125689])
+- Move homeworks base entity to separate module ([@epenet] - [#126097])
+- Use debug/warning instead of info log level in components [m] ([@jpbede] - [#126074])
+- Move qwikswitch base entity to separate module ([@epenet] - [#126130])
+- Order train station names in Israel rail API ([@sh0oki] - [#126121])
+- Move roborock base entity to separate module ([@epenet] - [#126135])
+- Use debug/warning/error instead of info log level in components [n] ([@jpbede] - [#126137])
+- Use debug/warning instead of info log level in components [o] ([@jpbede] - [#126138])
+- Use debug/warning instead of info log level in components [p] ([@jpbede] - [#126139])
+- Use debug/warning instead of info log level in components [r] ([@jpbede] - [#126140])
+- Add diagnostics support for WMS WebControl pro ([@mback2k] - [#126077])
+- Use aiohasupervisor for addon info calls ([@mdegat01] - [#125926])
+- Cleanup unnecessary F401 ignores ([@epenet] - [#126188])
+- Move vesync base entity to separate module ([@epenet] - [#126187])
+- Move vera base entity to separate module ([@epenet] - [#126186])
+- Move velux base entity to separate module ([@epenet] - [#126185])
+- Move wirelesstag shared constants to separate module ([@epenet] - [#126192])
+- Move wilight base entity to separate module ([@epenet] - [#126193])
+- Move wiffi base entity to separate module ([@epenet] - [#126194])
+- Avoid constant re-export in fujitsu_fglair ([@epenet] - [#126190])
+- Move xiaomi_aqara base entity to separate module ([@epenet] - [#126197])
+- Move xiaomi_miio base entity to separate module ([@epenet] - [#126198])
+- Move zwave_me base entity to separate module ([@epenet] - [#126200])
+- Move xs1 base entity to separate module ([@epenet] - [#126199])
+- Rename tasmota base entity module ([@epenet] - [#126182])
+- Move tcp base entity to separate module ([@epenet] - [#126181])
+- Rename tuya base entity module ([@epenet] - [#126180])
+- Move tellstick shared constants to separate module ([@epenet] - [#126179])
+- Move soma base entity to separate module ([@epenet] - [#126177])
+- Move smartthings base entity to separate module ([@epenet] - [#126176])
+- Move slack base entity to separate module ([@epenet] - [#126175])
+- Move raincloud shared constants to separate module ([@epenet] - [#126174])
+- Move shared rflink constants to separate module ([@epenet] - [#126173])
+- Move and rename remember_the_milk base entity to separate module ([@epenet] - [#126171])
+- Use debug/warning instead of info log level in components [u] ([@jpbede] - [#126148])
+- Move wirelesstag base entity to separate module ([@epenet] - [#126203])
+- Move raincloud base entity to separate module ([@epenet] - [#126170])
+- Move upb base entity to separate module ([@epenet] - [#126184])
+- Move onvif base entity to separate module ([@epenet] - [#126128])
+- Remove default mastodon instance in config flow ([@andrew-codechimp] - [#126204])
+- Move tellstick base entity to separate module ([@epenet] - [#126205])
+- Prefer __all__ over F401 ignore ([@epenet] - [#126189])
+- Add VPN sensor and switch for Smlight integration ([@tl-sl] - [#126201])
+- Move rflink base entity to separate module ([@epenet] - [#126206])
+- Rename onewire base entity module ([@epenet] - [#126129])
+- Rename roomba base entity module ([@epenet] - [#126134])
+- Use debug/warning instead of info log level in components [t] ([@jpbede] - [#126147])
+- Move input current from diagnostic to regular sensor in NUT ([@tdfountain] - [#124183])
+- Fix device cleanup in plugwise ([@emontnemery] - [#126212])
+- Add ThirdReality Matter NightLight to transition exception list ([@marcelveldt] - [#126216])
+- Bump tesla-fleet-api to 0.7.8 ([@Bre77] - [#126164])
+- Remove LG Thinq ([@joostlek] - [#125900])
+- Fix Fujitsu fglair authentication error and other issues ([@crevetor] - [#125439])
+- Improve FlowManager.async_finish_flow docstring ([@emontnemery] - [#126178])
+- Add base Entity class to enforce-class-module pylint plugin ([@epenet] - [#126026])
+- Use debug/warning instead of info log level in components [w] ([@jpbede] - [#126231])
+- Use debug/warning instead of info log level in components [v] ([@jpbede] - [#126228])
+- Remove default transition in Matter light platform ([@marcelveldt] - [#126220])
+- Use debug/warning instead of info log level in components [s] ([@jpbede] - [#126141])
+- Use debug/warning/error instead of info log level in components [x] ([@jpbede] - [#126232])
+- Use debug instead of info log level in components [y] ([@jpbede] - [#126233])
+- Use debug/warning/error instead of info log level in components [z] ([@jpbede] - [#126234])
+- Set model id on Govee lights ([@joostlek] - [#126211])
+- Bump nextbus to 2.0.5 ([@ViViDboarder] - [#126230])
+- Addition of select platform for flipr hub ([@cnico] - [#126237])
+- Allow one reusable proxy URL per ESPHome device ([@synesthesiam] - [#125845])
+- Add validation to set_humidity action in humidifier ([@gjohansson-ST] - [#125863])
+- Pass default value in Z-Wave websocket handler for configuration values ([@marcelveldt] - [#125343])
+- Update repairs for Smlight integration to allow firmware updates where possible ([@tl-sl] - [#126113])
+- Update string formatting to use f-string on tests ([@albertomontesg] - [#125986])
+- Add counters to iskra integration ([@iskrakranj] - [#126046])
+- Revert "Fix missing id in Habitica completed todos API response" ([@tr4nt0r] - [#126142])
+- Add new method version_is_newer to Update platform ([@chemelli74] - [#124797])
+- Fix set temperature action in AVM FRITZ!SmartHome ([@mib1185] - [#126072])
+- Fix serial handling in ViCare integration ([@CFenner] - [#125495])
+- Add has_entity_name to entity display dict and fix name ([@piitaya] - [#125832])
+- Update string formatting to use f-string on components ([@albertomontesg] - [#125987])
+- Sort values in Platform enum ([@epenet] - [#126259])
+- Mark tag as entity component in pylint plugin ([@epenet] - [#126183])
+- Bump uv to 0.4.12 ([@edenhaus] - [#126257])
+- Use mock_config_flow helper in config_entries tests ([@emontnemery] - [#126251])
+- Update string formatting to use f-string on core codebase ([@albertomontesg] - [#125988])
+- Add aiohasupervisor to core requirements ([@mdegat01] - [#126225])
+- Make combined rmvtransport filters work ([@claui] - [#126255])
+- Bump reolink_aio to 0.9.9 ([@starkillerOG] - [#126267])
+- Bump ring-doorbell to 0.9.5 ([@sdb9696] - [#126264])
+- Rename mqtt mixins module to `entity.py` ([@jbouwh] - [#126279])
+- Cleanup unused protocol class for mqtt entity setup ([@jbouwh] - [#126276])
+- Update tooling configuration to enforce f-string formatting ([@albertomontesg] - [#125989])
+- Allow github requirements specs in hassfest for non-core integrations ([@mpw96] - [#124925])
+- Simplify imports in recorder ([@epenet] - [#126248])
+- Bump github/codeql-action from 3.26.7 to 3.26.8 (@dependabot - [#126302])
+- Make NextBus coordinator more resilient and efficient ([@ViViDboarder] - [#126161])
+- Add service to set the AC schedule of renault vehicles ([@vhkristof] - [#125006])
+- Bump pysmlight to 0.1.1 ([@tl-sl] - [#126301])
+- Add in-home chime switch to ring ([@sdb9696] - [#126305])
+- Improve readability in hass_imports pylint plugin ([@epenet] - [#126252])
+- Bump aiohasupervisor to 0.1.0b1 ([@mdegat01] - [#126282])
+- Add motion detection switch entity to ring ([@sdb9696] - [#126278])
+- Add additional mower to Husqvarna Autmower tests ([@Thomas55555] - [#126313])
+- Add support for native oauth2 in Point ([@fredrike] - [#118243])
+- Clean ondilo ico logging ([@MartinHjelmare] - [#126310])
+- Add device class for UPNP uptime sensor ([@tathamoddie] - [#126306])
+- Bump python-MotionMount to 2.2.0 ([@RJPoelstra] - [#126309])
+- Fix duplicate power sensors for Matter 1.3 powerplugs ([@marcelveldt] - [#126269])
+- Use HassKey in core components (a-c) ([@epenet] - [#126258])
+- Mark current position sensor for Matter switch as default disabled ([@marcelveldt] - [#126254])
+- Add broken link and missing device lists to insteon configuration panel ([@teharris1] - [#119715])
+- Enable all TID ruff rules ([@epenet] - [#126312])
+- Bump aioautomower to 2024.9.1 ([@Thomas55555] - [#126315])
+- Refactor smlight event_function to common function ([@tl-sl] - [#126260])
+- Add battery data to Autarco integration ([@klaasnicolaas] - [#125924])
+- Add login and rewrite access to extended data for solarlog ([@dontinelli] - [#126024])
+- Change assist satellite announce method signature ([@balloob] - [#126299])
+- Bump pyduotecno to 2024.9.0 ([@Cereal2nd] - [#126328])
+- Fix update platform for Shelly gen1 devices ([@chemelli74] - [#124798])
+- Add siren platform for tplink ([@rytilahti] - [#124934])
+- Make geniushub platforms a list ([@joostlek] - [#126320])
+- Add trace to core files ([@epenet] - [#126314])
+- Update pylint to 3.3.0 ([@cdce8p] - [#126330])
+- Bump ruff to 0.6.6 ([@autinerd] - [#126343])
+- Route non-TTS media through ESPHome ffmpeg proxy ([@synesthesiam] - [#126287])
+- Add YogevBokobza to switcher_kis codeowners ([@YogevBokobza] - [#126359])
+- Add Switcher Runner S11 support ([@YogevBokobza] - [#123578])
+- Improve lock handling in Yale Smart Living ([@gjohansson-ST] - [#124245])
+- Rename deconz base entity module ([@epenet] - [#126041])
+- Offboard myself as prusalink codeowner ([@Skaronator] - [#126361])
+- Get supervisor client in analytics only on systems with supervisor ([@mib1185] - [#126375])
+- Use HassKey in stt ([@epenet] - [#126335])
+- Use HassKey in sensor ([@epenet] - [#126336])
+- Use HassKey in device_tracker ([@epenet] - [#126339])
+- Bump aiovlc to 0.5.1 ([@mib1185] - [#126365])
+- Use HassKey in core components (d-z) ([@epenet] - [#126324])
+- Use HassKey in group ([@epenet] - [#126321])
+- Use HassKey in image ([@epenet] - [#126322])
+- Use HassKey in tts ([@epenet] - [#126327])
+- Use HassKey in weather ([@epenet] - [#126329])
+- Use HassKey in camera ([@epenet] - [#126331])
+- Use HassKey in notify ([@epenet] - [#126338])
+- Use HassKey in todo ([@epenet] - [#126325])
+- Correct / tidy up entity doc strings for evohome ([@zxdavb] - [#126380])
+- Fix tplink number platform to use intended BOX mode ([@sdb9696] - [#126397])
+- Update the Google Photos integration to limit scope to Home Assistant created content ([@allenporter] - [#126398])
+- Set connection and command timeout in VLC Telnet ([@mib1185] - [#126401])
+- Add issue asking users to disable ESPHome assist_in_progress sensor ([@emontnemery] - [#125805])
+- Rename some evohome constants for clarity / readability ([@zxdavb] - [#126394])
+- Bump uiprotect to 6.1.0 ([@bdraco] - [#126345])
+- Switch genexp to listcomp in async_progress_by_init_data_type ([@bdraco] - [#126405])
+- Disconnect telnet when `denonavr` media player entity is unloaded ([@ol-iver] - [#126406])
+- Fix insteon test ([@gjohansson-ST] - [#126404])
+- Bump reolink-aio to 0.9.10 ([@starkillerOG] - [#126387])
+- Remove superfluous type hints from evohome ([@zxdavb] - [#126383])
+- Add media player to Tesla Fleet ([@Bre77] - [#126416])
+- Use HassKey in light ([@epenet] - [#126333])
+- Remove invalid callback decorator from Bang & Olfusen coroutine functions ([@mj23000] - [#126420])
+- Add cover platform to Tesla Fleet ([@Bre77] - [#126411])
+- Add Reolink Home Hub ringtone control ([@starkillerOG] - [#126390])
+- Add Reolink hub status light ([@starkillerOG] - [#126388])
+- Parse AirNow observation timezone correctly ([@kamiyo] - [#122006])
+- Bump nice-go to 0.3.9 ([@IceBotYT] - [#126399])
+- Correct a docstring typo for evohome ([@zxdavb] - [#126426])
+- Add Reolink CPU usage sensor ([@starkillerOG] - [#126386])
+- Add Reolink hub volume number entities ([@starkillerOG] - [#126389])
+- Prevent leading and trailing spaces in translation values ([@epenet] - [#126427])
+- Add mm/s and in/s As Unit Of Speed ([@TrevorSchirmer] - [#125044])
+- Improve plugwise device cleanup ([@bouwew] - [#126419])
+- Add diagnostics platform to Smlight ([@tl-sl] - [#126423])
+- Automatic device cleanup for Husqvarna Automower ([@Thomas55555] - [#126384])
+- Bump pysqueezebox version to 0.9.2 ([@rajlaud] - [#126347])
+- Add switch to Yale Smart Living ([@gjohansson-ST] - [#126366])
+- Bump wolf-comm to 0.0.10 ([@alexdev03] - [#126342])
+- Fix error in squeezebox media browser album art ([@rajlaud] - [#126346])
+- Add new values for sensor for Lektrico integration ([@Lektrico] - [#126210])
+- Bump google-photos-library-api to 0.11.1 ([@allenporter] - [#126430])
+- Rename an evohome test fixture ([@zxdavb] - [#126425])
+- Add connection test feature to assist_satellite ([@emontnemery] - [#126256])
+- Automatically remove unregistered TP-Link Omada devices at start up ([@MarkGodwin] - [#124153])
+- Fix error if light status is missing in Nice G.O. ([@IceBotYT] - [#126432])
+- Use HassKey in conversation ([@epenet] - [#126332])
+- Bump google-photos-library-api to 0.12.0 ([@allenporter] - [#126433])
+- Enforce a Google Photos upload action file size limit ([@allenporter] - [#126437])
+- Prevent callback decorator on coroutine functions ([@epenet] - [#126429])
+- OpenAI to not speak out whole errors ([@balloob] - [#126409])
+- Use identity check for zeroconf enum compare ([@bdraco] - [#126444])
+- Move atag base entity to separate module ([@epenet] - [#126475])
+- Move airvisual base entity to separate module ([@epenet] - [#126474])
+- Bump Weheat to 2024.09.23 ([@jesperraemaekers] - [#126471])
+- Move cert_expiry base entity to separate module ([@epenet] - [#126478])
+- Move control4 base entity to separate module ([@epenet] - [#126477])
+- Move deluge base entity to separate module ([@epenet] - [#126479])
+- Move evil_genius_labs base entity to separate module ([@epenet] - [#126480])
+- Move elmax base entity to separate module ([@epenet] - [#126481])
+- Move gogogate2 base entity to separate module ([@epenet] - [#126485])
+- Add router reconnect button for Smlight integration ([@tl-sl] - [#126408])
+- Move iqvia base entity to separate module ([@epenet] - [#126489])
+- Fix Matter Model ID for bridged devices ([@marcelveldt] - [#126059])
+- Move nuki base entity to separate module ([@epenet] - [#126500])
+- Move nibe_heatpump base entity to separate module ([@epenet] - [#126498])
+- Move radarr base entity to separate module ([@epenet] - [#126514])
+- Move rainmachine base entity to separate module ([@epenet] - [#126513])
+- Move purpleair base entity to separate module ([@epenet] - [#126511])
+- Move pi_hole base entity to separate module ([@epenet] - [#126509])
+- Move ovo_energy base entity to separate module ([@epenet] - [#126507])
+- Move openuv base entity to separate module ([@epenet] - [#126506])
+- Move omnilogic base entity to separate module ([@epenet] - [#126505])
+- Move nzbget base entity to separate module ([@epenet] - [#126502])
+- Move notion base entity to separate module ([@epenet] - [#126499])
+- Bump `pysnmp` and `brother` ([@bieniu] - [#126488])
+- Move modern_forms base entity to separate module ([@epenet] - [#126497])
+- Move lyric base entity to separate module ([@epenet] - [#126493])
+- Move lidarr base entity to separate module ([@epenet] - [#126492])
+- Move motioneye base entity to separate module ([@epenet] - [#126495])
+- Rename melnor base entity module ([@epenet] - [#126496])
+- Move guardian base entity to separate module ([@epenet] - [#126486])
+- Speedup Reolink tests by using scope="module" ([@starkillerOG] - [#125215])
+- Move fritzbox base entity to separate module ([@epenet] - [#126482])
+- Add additional test cases to Threshold ([@agoode] - [#126469])
+- Add lock platform to Tesla Fleet ([@Bre77] - [#126412])
+- Prevent trailing line feeds in translation values ([@epenet] - [#126446])
+- Move gardena_bluetooth base entity to separate module ([@epenet] - [#126484])
+- Move prusalink base entity to separate module ([@epenet] - [#126510])
+- Code quality improvements at Home Connect ([@Diegorro98] - [#126323])
+- Move rfxtrx base entity to separate module ([@epenet] - [#126521])
+- Add button platform to Tesla Fleet ([@Bre77] - [#126410])
+- Bump pyiskra to 0.1.14 ([@iskrakranj] - [#126518])
+- Move sia base entity to separate module ([@epenet] - [#126524])
+- Rename toon base entity module ([@epenet] - [#126525])
+- Move tailscale base entity to separate module ([@epenet] - [#126527])
+- Move tesla_wall_connector base entity to separate module ([@epenet] - [#126529])
+- Rename tradfri base entity module ([@epenet] - [#126526])
+- Move tolo base entity to separate module ([@epenet] - [#126530])
+- Remove unused i386 code in Dockerfile ([@edenhaus] - [#126520])
+- Move tautulli base entity to separate module ([@epenet] - [#126528])
+- Use Bravia TV MAC address in `DeviceInfo.connections` ([@bieniu] - [#126519])
+- Fix Shelly update entity names ([@bieniu] - [#126512])
+- Fix a couple of stale ESPHome docstrings ([@emontnemery] - [#126508])
+- Move tomorrowio base entity to separate module ([@epenet] - [#126531])
+- Change valve state to an enum ([@gjohansson-ST] - [#126428])
+- Move simplisafe base entity to separate module ([@epenet] - [#126523])
+- Remove uneeded isoformat calls in registry as_storage_fragment properties ([@bdraco] - [#126440])
+- Merge unifiprotect entity and models modules ([@epenet] - [#126532])
+- Fix Auto mode for TCC devices like the Lyric Round ([@nprez83] - [#126091])
+- Fix image content-type validation case sensitivity ([@npike] - [#125236])
+- Add config to ZHA to allow disabling polling of mains powered devices when the network is started ([@dmulcahey] - [#125473])
+- Rename dynalite base entity module ([@epenet] - [#126536])
+- Move upcloud base entity to separate module ([@epenet] - [#126533])
+- Rename pilight base entity module ([@epenet] - [#126538])
+- Rename xbox base entity module ([@epenet] - [#126540])
+- Move vallox base entity to separate module ([@epenet] - [#126541])
+- Move venstar base entity to separate module ([@epenet] - [#126542])
+- Move volvooncall base entity to separate module ([@epenet] - [#126543])
+- Move yamaha_musiccast base entity to separate module ([@epenet] - [#126544])
+- Move tolo coordinator to separate module ([@epenet] - [#126550])
+- Move yamaha_musiccast coordinator to separate module ([@epenet] - [#126546])
+- Move volvooncall coordinator to separate module ([@epenet] - [#126548])
+- Move ukraine_alarm coordinator to separate module ([@epenet] - [#126549])
+- Move point base entity to separate module ([@epenet] - [#126551])
+- Reinitialize zeroconf discovery flow on unignore ([@emontnemery] - [#125753])
+- Bump intents to 2024.9.23 ([@synesthesiam] - [#126553])
+- Add Model and Manufacturer details for Squeezebox devices ([@peteS-UK] - [#126435])
+- Change lawn_mower state to an enum ([@gjohansson-ST] - [#126458])
+- Add NYT Games integration ([@joostlek] - [#126449])
+- Add more Wordle sensors ([@joostlek] - [#126561])
+- Remove trekky12 from pilight codeowners ([@Trekky12] - [#126559])
+- Remove deprecated forecast key from template weather ([@gjohansson-ST] - [#126132])
+- Use Xiaomi Aqara gateway MAC address in `DeviceInfo.connections` ([@bieniu] - [#126562])
+- Remove deprecated YAML import from traccar ([@jpbede] - [#125763])
+- Bump nyt_games to 0.4.0 ([@joostlek] - [#126564])
+- Add entity components to hass-enforce-class-module pylint plugin ([@epenet] - [#126545])
+- Fix point calls config entry to a platform multiple times ([@fredrike] - [#126535])
+- Add derived Entity classes in hass-enforce-class-module pylint plugin ([@epenet] - [#126494])
+- Index config entry discovery_keys by discovery domain ([@emontnemery] - [#126563])
+- Bump cached-ipaddress to 0.6.0 ([@bdraco] - [#126571])
+- Bump yarl to 1.12.0 ([@bdraco] - [#126576])
+- Bump yarl to 1.12.1 ([@bdraco] - [#126580])
+- Get updated Assist satellite config after setting it in ESPHome ([@synesthesiam] - [#126552])
+- Reduce scope of JSON/XML test fixtures ([@emontnemery] - [#126590])
+- Fix ecobee test helper ([@emontnemery] - [#126587])
+- Remove unnecessary unique_id suffix from Google Cloud entities ([@tronikos] - [#126585])
+- Fix truncating password issue ([@SteveEasley] - [#126581])
+- Fix zeroconf rediscovery test ([@emontnemery] - [#126593])
+- Set autouse flag on session scope bluetooth fixture ([@emontnemery] - [#126589])
+- Simplify signal_discovered_config_entry_removed job ([@emontnemery] - [#126591])
+- Update xknx to 3.2.0 ([@farmio] - [#126569])
+- Bump aiohttp to 3.10.6rc2 ([@bdraco] - [#126468])
+- Add base Entity classes to enforce-class-module pylint plugin ([@epenet] - [#126473])
+- Cleanup source_type type hints in device tracker components ([@epenet] - [#126592])
+- Change dhcp internal index to use mac address ([@bdraco] - [#126573])
+- Make tts options of type list (such as profiles in google_cloud) work ([@tronikos] - [#121582])
+- Add energy history coordinator and sensors to Teslemetry ([@Bre77] - [#126166])
+- Add snapshots to all ring platform tests ([@sdb9696] - [#126560])
+- Bump deprecation of ESPHome assist in progress binary sensor ([@emontnemery] - [#126604])
+- Add issue asking users to disable VoIP call_in_progress binary sensor ([@emontnemery] - [#126504])
+- Prevent KeyError in Matter select entity ([@marcelveldt] - [#126605])
+- Add select platform to the Lektrico integration ([@Lektrico] - [#126490])
+- Change camera state to an enum ([@gjohansson-ST] - [#126558])
+- Adjust _ENTITY_COMPONENTS in hass-enforce-class-module ([@epenet] - [#126603])
+- Change lock state to an enum ([@gjohansson-ST] - [#126379])
+- Start deprecation for media_player constants ([@gjohansson-ST] - [#126351])
+- Start deprecation vacuum constants for feature flags ([@gjohansson-ST] - [#126354])
+- Fix lamarzocco ParamSpec typing ([@cdce8p] - [#126616])
+- Reinitialize zeroconf discovery flow on config entry removal ([@emontnemery] - [#126595])
+- Make NYT Games a service ([@joostlek] - [#126613])
+- Update pre-commit to 3.8.0 ([@cdce8p] - [#126617])
+- Update coverage to 7.6.1 ([@cdce8p] - [#126615])
+- Make Matter select entity values translatable ([@joostlek] - [#126608])
+- Bump version of recorder context ID data migrators ([@emontnemery] - [#125293])
+- Update pipdeptree to 2.23.4 ([@cdce8p] - [#126619])
+- Update pytest-asyncio to 0.24.0 ([@cdce8p] - [#126621])
+- Update pytest to 8.3.3 ([@cdce8p] - [#126623])
+- Update syrupy to 4.7.1 ([@cdce8p] - [#126625])
+- Update pylint to 3.3.1 ([@cdce8p] - [#126614])
+- Reinitialize bluetooth discovery flow on config entry removal ([@emontnemery] - [#126555])
+- Reinitialize dhcp discovery flow on config entry removal ([@emontnemery] - [#126556])
+- Remove unnecessary lambda in Matter ([@joostlek] - [#126633])
+- Fix tesla_fleet climate temp high/low test ([@gjohansson-ST] - [#126631])
+- Update tqdm to 4.66.5 ([@cdce8p] - [#126626])
+- Update pip-licenses to 5.0.0 ([@cdce8p] - [#126620])
+- Update uv to 0.4.15 ([@cdce8p] - [#126627])
+- Update cryptography to 43.0.1 ([@cdce8p] - [#126628])
+- Update bcrypt to 4.2.0 ([@cdce8p] - [#126629])
+- Fix motionblinds_ble sensor tests ([@LennP] - [#126635])
+- Use icon translations in Matter ([@joostlek] - [#126634])
+- Add shorthand attributes to device_tracker entities ([@epenet] - [#126599])
+- Map unknown air quality to None in Matter ([@joostlek] - [#126639])
+- Bump Python Matter Server to 6.5.2 ([@marcelveldt] - [#126636])
+- Raise issue if SSL is set but no external URL configured ([@joostlek] - [#121768])
+- Replace more addon management with aiohasupervisor ([@mdegat01] - [#126236])
+- Climate check target min lower than target high ([@gjohansson-ST] - [#124488])
+- Update types packages ([@cdce8p] - [#126632])
+- Add EveCluster ValvePosition Attribute ([@lboue] - [#125809])
+- Update Google Photos to have a DataUpdateCoordinator for loading albums ([@allenporter] - [#126443])
+- Update httpx to 0.27.2 ([@cdce8p] - [#126630])
+- Remove unignore flow from dlna_dmr ([@emontnemery] - [#126647])
+- Remove unignore flow from homekit controller ([@emontnemery] - [#126637])
+- Limit Google Photos media source to Home Assistant created albums ([@allenporter] - [#126653])
+- Require Google Photos uploads to target an album ([@allenporter] - [#126651])
+- Remove unused string in dlna_dmr ([@epenet] - [#126652])
+- Reinitialize ssdp discovery flow on unignore ([@emontnemery] - [#126557])
+- Update pyoverkiz to 1.14.1 ([@cdce8p] - [#126657])
+- Add Pressure and Altitude discovery schemas for Matter Eve Weather device ([@lboue] - [#125690])
+- Plugwise test maintenance ([@bouwew] - [#126421])
+- Bump aioautomower to 2024.9.2 ([@Thomas55555] - [#126659])
+- Ensure that HomeKit names start and end with alphanumeric character ([@indrajitr] - [#126413])
+- Bump bring-api to 0.9.0 ([@tr4nt0r] - [#126650])
+- Update numpy to 1.26.4 ([@cdce8p] - [#126660])
+- Add discovery schemas for Matter Smoke and CO Alarm Cluster ([@marcelveldt] - [#126622])
+- Only raise missing integration issue for config entry integrations ([@joostlek] - [#126654])
+- Simplify cleanup in Husqvarna Automower ([@Thomas55555] - [#126666])
+- Add work area switch for Husqvarna Automower ([@Thomas55555] - [#126376])
+- Use vol.Coerce for SourceType in mqtt device_tracker ([@epenet] - [#126594])
+- Extend the lists of Matter climate devices that need special treatment ([@marcelveldt] - [#126644])
+- Prevent KeyError when Matter device has invalid value for ModeSelect ([@marcelveldt] - [#126672])
+- Update RestrictedPython to 7.2 ([@cdce8p] - [#126662])
+- Adjust automation to plural triggers/conditions/actions keys ([@frenck] - [#123823])
+- Set default source_type on TrackerEntity and ScannerEntity ([@epenet] - [#126648])
+- Rename an evohome test fixture ([@zxdavb] - [#126680])
+- Bump aiorussound to 3.1.5 ([@noahhusby] - [#126664])
+- Fix pipeline restart in VoIP ([@synesthesiam] - [#126668])
+- Add support for OperationalState Attribute from Matter OperationalState cluster ([@lboue] - [#125627])
+- Add SSL Cipher option to aiohttp async_get_clientsession ([@starkillerOG] - [#126317])
+- Add fan support for KNX climate entities ([@somdoron] - [#126368])
+- Use insecure SSL cipher for Reolink aiohttp clientsession ([@starkillerOG] - [#126687])
+- Add button platform to Matter integration ([@jvmahon] - [#123665])
+- Update strings in tailscale ([@civita] - [#124143])
+- Add coordinator to Spotify ([@joostlek] - [#123548])
+- Improve typing in Yamaha ([@joostlek] - [#123982])
+- Add diagnostics to Workday ([@gjohansson-ST] - [#126691])
+- Bump aiohttp to 3.10.6 ([@bdraco] - [#126690])
+- Improve Roborock error handling ([@allenporter] - [#124267])
+- Remove leftover wrong icon from Reolink ([@starkillerOG] - [#126698])
+- Add sensor platform to Bring integration ([@tr4nt0r] - [#126642])
+- Add tests which directly test the recorder job wrappers ([@emontnemery] - [#125338])
+- Add diagnostics platform to Bring integration ([@tr4nt0r] - [#126695])
+- Avoid raw string in device_tracker source_type ([@epenet] - [#126601])
+- Add Spelling Bee and connections support to NYT Games ([@joostlek] - [#126567])
+- Add Aqara brand ([@joostlek] - [#126658])
+- Bump google-generativeai to 0.8.2 ([@bdraco] - [#126696])
+- Update snapshot for Bring tests ([@tr4nt0r] - [#126699])
+- Add specific EntityDescription to describe device tracker entities ([@epenet] - [#126586])
+- Bump python-google-photos-library-api to 0.12.1 ([@allenporter] - [#126709])
+- Update Tuya integration with target distance ([@tal] - [#126700])
+- Remove redundant source_type property from TrackerEntities ([@epenet] - [#126717])
+- Remove redundant source_type property from ScannerEntities ([@epenet] - [#126716])
+- Update `denonavr` to `v1.0.0` ([@ol-iver] - [#126703])
+- Bump github/codeql-action from 3.26.8 to 3.26.9 (@dependabot - [#126715])
+- Bump zeroconf to 0.135.0 ([@bdraco] - [#126706])
+- Add Storm watch active to Tesla integrations ([@Bre77] - [#126704])
+- Fix pytest-asyncio DeprecationWarning ([@cdce8p] - [#126718])
+- Add workaround to avoid blocking imports by dnspython ([@elmurato] - [#121702])
+- Move pylint decorator plugin and add tests ([@epenet] - [#126719])
+- Introduce snapshot testing to matter ([@joostlek] - [#126693])
+- Add an entity description for Google Calendar ([@allenporter] - [#125469])
+- Make statistics validation create issue registry issues ([@emontnemery] - [#122595])
+- Enable Zwave notification sensors by default ([@joostlek] - [#125326])
+- Add specific EntityDescription to describe calendar entities ([@epenet] - [#126726])
+- Use entity selector in Homekit bridge config flow ([@piitaya] - [#126340])
+- Don't crash entire Matter integration setup when one node is failing ([@marcelveldt] - [#126491])
+- Update isal to 1.7.1 ([@cdce8p] - [#126742])
+- Use 'select' instead of 'click' or 'press' when guiding users in flows ([@emontnemery] - [#126731])
+- Update lxml to 5.3.0 ([@cdce8p] - [#126725])
+- Change trigger platform key to trigger ([@joostlek] - [#124357])
+- Use shorthand attributes in tesla_fleet device tracker ([@epenet] - [#126736])
+- Make Matter snapshot logic a shared function ([@joostlek] - [#126744])
+- Use shorthand attributes in mysensors device tracker ([@epenet] - [#126738])
+- Add pylint checks for fixture scope ([@epenet] - [#126723])
+- Use snake case in matter fixture nodes ([@joostlek] - [#126743])
+- Update trigger validation message ([@joostlek] - [#126749])
+- Use bold to markup UI strings ([@c0ffeeca7] - [#126748])
+- Rename DOMAIN_DATA HassKey constants to DATA_COMPONENT ([@epenet] - [#126746])
+- Add sound modes to Bang & Olufsen devices ([@mj23000] - [#121209])
+- Fix license check for new aiocache ([@bdraco] - [#126753])
+- Improve trigger schema validation to ask for `trigger` instead of `platform` ([@joostlek] - [#126750])
+- Update frontend to 20240925.0 ([@bramkragten] - [#126763])
+- Update const.py to add new Australian Server URL ([@euandekock] - [#126714])
+- Remove unnecessary dict .keys() calls from Bang & Olufsen ([@mj23000] - [#126762])
+- Use shorthand attributes in locative device tracker ([@epenet] - [#126740])
+- Bump ZHA to 0.0.34 ([@puddly] - [#126766])
+- Add Valve platform to Matter integration ([@lboue] - [#123311])
+- Bump aioautomower to 2024.9.3 ([@Thomas55555] - [#126769])
+- Remove unignore flow ([@emontnemery] - [#126765])
+- Fix ESPHome and VoIP Assist satellite entity names ([@synesthesiam] - [#126229])
+- Deprecate tplink alarm button entities ([@sdb9696] - [#126349])
+- Change Climate set temp action for incorrect feature will raise ([@gjohansson-ST] - [#126692])
+- Remove Reolink Home Hub main level switches ([@starkillerOG] - [#126697])
+- Bump aiorussound to 4.0.5 ([@noahhusby] - [#126774])
+- Bump reolink-aio to 0.9.11 ([@starkillerOG] - [#126778])
+- Fix missing template alarm control panel menu string ([@MartinHjelmare] - [#126791])
+- Bump ring-doorbell to 0.9.6 ([@sdb9696] - [#126817])
+- Bump jaraco.abode to 6.2.1 ([@joostlek] - [#126823])
+- Fix typo in Mealie integration ([@tr4nt0r] - [#126824])
+- Bump knocki to 0.3.5 ([@joostlek] - [#126826])
+- Add logging to NYT Games setup failures ([@joostlek] - [#126832])
+- Bump nyt_games to 0.4.2 ([@joostlek] - [#126834])
+- Fix last played icon in NYT Games ([@joostlek] - [#126837])
+- Fix Withings reauth title ([@joostlek] - [#126838])
+- Bump aiohasupervisor to 0.1.0 ([@mdegat01] - [#126841])
+- Update frontend to 20240926.0 ([@bramkragten] - [#126843])
+- Update the Selected Pipeline entity name ([@balloob] - [#126845])
+- Update overkiz Atlantic Water Heater away mode switching ([@ALERTua] - [#121801])
+- Fix Abode integration needing to reauthenticate after core update ([@krx] - [#123035])
+- Monarch Money cashflow sensor bugfix ([@jeeftor] - [#125774])
+- Bump wolf-comm to 0.0.15 ([@mtielen] - [#126857])
+- Fix restoring state class in mobile app ([@joostlek] - [#126868])
+- Bump yarl to 1.13.0 ([@bdraco] - [#126872])
+- Fix getting the host for the current request ([@bdraco] - [#126882])
+- Mark custom panel integration as system type ([@frenck] - [#126883])
+- Add diagnostics platform to airgradient ([@joostlek] - [#126886])
+- Fix getting the current host for IPv6 urls ([@bdraco] - [#126889])
+- Use hass httpx client for ElevenLabs component ([@sorgfresser] - [#126793])
+- Bump python-linkplay to 0.0.12 ([@silamon] - [#126850])
+- Improve statistics issue title ([@emontnemery] - [#126851])
+- Add support for variant of Xiaomi Mi Air Purifier 3C (zhimi.airp.mb4a) ([@tr4nt0r] - [#126867])
+- Fix blocking call in Xiaomi Miio integration ([@tr4nt0r] - [#126871])
+- Revert "Add support for Xiaomi airpurifier and humidifier (#117791)" ([@tr4nt0r] - [#126873])
+- Update airgradient device sw_version when changed ([@joostlek] - [#126902])
+- Use icon translations in unifi ([@jrieger] - [#126903])
+- Do not unsubscribe mqtt integration discovery if entry is already configured ([@jbouwh] - [#126907])
+- Fix Tado unloading ([@joostlek] - [#126910])
+- Migrate Nexia unique id to str ([@joostlek] - [#126911])
+- Update `pytouchlinesl` to 0.1.6 ([@jnsgruk] - [#126912])
+- Bump pyotgw to 2.2.1 ([@mvn23] - [#126918])
+- Bump `pytouchlinesl` to `0.1.7` ([@jnsgruk] - [#126923])
+- Change Assist satellite state names ([@synesthesiam] - [#126926])
+- Adjust "Assist in progress" sensor in ESPHome ([@synesthesiam] - [#126928])
+- Squeezebox - bump pysqueezebox dependency to 0.9.3 to restore favorites support ([@rajlaud] - [#126929])
+- Update frontend to 20240927.0 ([@bramkragten] - [#126933])
+- Add missing icons to unifi ([@jrieger] - [#126934])
+- Bump nessclient to 1.1.2 ([@ozadr1an] - [#125604])
+- Bump python-kasa library to 0.7.4 ([@sdb9696] - [#126944])
+- Bump yarl to 1.13.1 ([@bdraco] - [#126962])
+- Bump aiohttp to 3.10.7 ([@bdraco] - [#126970])
+- Add unique id to mold_indicator ([@gjohansson-ST] - [#126990])
+- Workday raise issues only to next year ([@gjohansson-ST] - [#126997])
+- Exclude Text-to-Speech cache from backups ([@balloob] - [#127001])
+- Bump aiohttp to 3.10.8 ([@bdraco] - [#127009])
+- Don't log voice assistant config timeout error ([@synesthesiam] - [#127010])
+- Bump anyio to 4.6.0 ([@bdraco] - [#127013])
+- Allow `null` / `None` value for non numeric mqtt sensor without warnings ([@jbouwh] - [#127032])
+- Bump py-synologydsm-api to 2.5.3 ([@mib1185] - [#127035])
+- Update local_calendar/todo to avoid blocking in the event loop ([@allenporter] - [#127048])
+- Update ical to 8.2.0 ([@frenck] - [#126954])
+- Bump gcal_sync to 6.1.5 ([@allenporter] - [#127049])
+- Fix repair when integration does not exist ([@shaiu] - [#127050])
+- Fix timestamp isoformat in seventeentrack ([@shaiu] - [#127052])
+- Fix removing nulls when encoding events for PostgreSQL ([@bdraco] - [#127053])
+- Clarify excl/incl filter functionality for waze_travel_time ([@eifinger] - [#127056])
+- Bump pylitejet to 0.6.3 ([@joncar] - [#127063])
+- Add missing OUI to august ([@bdraco] - [#127064])
+- Fix Roomba help URL ([@LucaDiba] - [#127065])
+- Update xknxproject to 3.8.0 ([@farmio] - [#127072])
+- Check "status" is present before access during device update ([@drsgoodall] - [#127091])
+- Make Laundrify unique id a string ([@joostlek] - [#127092])
+- Bump yt-dlp to 2024.09.27 ([@joostlek] - [#127096])
+- Bump zwave-js-server-python to 0.58.1 ([@MartinHjelmare] - [#127114])
+- Update frontend to 20240930.0 ([@bramkragten] - [#127125])
+- Mark Reolink camera entities as unavailable when camera is offline ([@starkillerOG] - [#127127])
+- Update RestrictedPython to 7.3 ([@frenck] - [#127130])
+- Allow negative calibration factor in mold_indicator ([@gjohansson-ST] - [#127133])
+- Roborock fix "selected map" when first map in list is selected ([@N3rdix] - [#127126])
+- Add config flow validation that calibration factor is not zero ([@gjohansson-ST] - [#127136])
+- Allows unload when unsupported devices vesync ([@cdnninja] - [#127153])
+- Update assist_satellite connection test sound ([@emontnemery] - [#127183])
+- Fix Z-Wave rediscovery ([@MartinHjelmare] - [#127213])
+- Use reconfigure_confirm in vallox config flow ([@epenet] - [#127214])
+- Use reconfigure_confirm in solarlog config flow ([@epenet] - [#127215])
+- Fix reconfigure_confirm logic in madvr config flow ([@epenet] - [#127216])
+- Use reconfigure_confirm in lcn config flow ([@epenet] - [#127217])
+- Use reconfigure_confirm in google_travel_time config flow ([@epenet] - [#127220])
+- Fix Tailwind cover exception when door is already in the requested state ([@cayossarian] - [#124543])
+- Update prometheus-client to 0.21.0 ([@rcloran] - [#126965])
+- Update gotailwind to 0.2.4 ([@frenck] - [#127129])
+- Use reconfigure_confirm in homeworks config flow ([@epenet] - [#127218])
+- Use reconfigure_confirm in enphase_envoy config flow ([@epenet] - [#127221])
+- Use reconfigure_confirm in bryant_evolution config flow ([@epenet] - [#127222])
+- Don't create statistics issues when sensor is unavailable or unknown ([@emontnemery] - [#127226])
+- Update log error message for Samsung TV ([@epenet] - [#127231])
+- Fix Tibber get_prices when called with aware datetime ([@functionpointer] - [#123289])
+- Run unsubscribe callbacks when Assist satellite entity is removed from HA ([@synesthesiam] - [#127234])
+- Remove codefences from issue titles ([@rytilahti] - [#127254])
+- Revert "Support Z-Wave JS dimming lights using color intensity (#122639)" ([@MartinHjelmare] - [#127256])
+- Make recorder WS command recorder/update_statistics_metadata wait ([@emontnemery] - [#127179])
+- Update frontend to 20241002.0 ([@bramkragten] - [#127264])
+- Make recorder WS command recorder/clear_statistics wait ([@emontnemery] - [#127120])
+- Fix climate entity in ViCare integration ([@CFenner] - [#127128])
+- Update frontend to 20241002.1 ([@bramkragten] - [#127292])
+- Update frontend to 20241002.2 ([@bramkragten] - [#127331])
+- Bump pychromecast to 14.0.2 ([@emontnemery] - [#127333])
+- Bump intents to 2024.10.2 ([@synesthesiam] - [#127338])
+
+## Release 2024.10.1 - October 4
+
+- Fix device id support for alarm control panel template ([@piitaya] - [#127340])
+- Bump pysmlight 0.1.2 ([@tl-sl] - [#127376])
+- Remove assumption in ConfigEntryItems about unique unique_id ([@emontnemery] - [#127399])
+- Add missing number platform to init of Tesla Fleet ([@Bre77] - [#127406])
+- Bump aiomealie to 0.9.3 ([@andrew-codechimp] - [#127454])
+- Fix int value in unique_id for Tellduslive ([@robinostlund] - [#127526])
+- Bump matrix-nio to 0.25.2 ([@PaarthShah] - [#127535])
+- Adjust polling rate of Rituals Perfume Genie ([@frenck] - [#127544])
+- Create new clientsession for NYT Games ([@joostlek] - [#127547])
+- Strip the NYT Games token ([@joostlek] - [#127548])
+- Revert "Bump pychromecast to 14.0.2 (#127333)" ([@joostlek] - [#127555])
+
+[#126782]: https://github.com/home-assistant/core/pull/126782
+[#127340]: https://github.com/home-assistant/core/pull/127340
+[#127376]: https://github.com/home-assistant/core/pull/127376
+[#127399]: https://github.com/home-assistant/core/pull/127399
+[#127406]: https://github.com/home-assistant/core/pull/127406
+[#127454]: https://github.com/home-assistant/core/pull/127454
+[#127526]: https://github.com/home-assistant/core/pull/127526
+[#127535]: https://github.com/home-assistant/core/pull/127535
+[#127544]: https://github.com/home-assistant/core/pull/127544
+[#127547]: https://github.com/home-assistant/core/pull/127547
+[#127548]: https://github.com/home-assistant/core/pull/127548
+[#127555]: https://github.com/home-assistant/core/pull/127555
+[@Bre77]: https://github.com/Bre77
+[@PaarthShah]: https://github.com/PaarthShah
+[@andrew-codechimp]: https://github.com/andrew-codechimp
+[@emontnemery]: https://github.com/emontnemery
+[@frenck]: https://github.com/frenck
+[@joostlek]: https://github.com/joostlek
+[@piitaya]: https://github.com/piitaya
+[@robinostlund]: https://github.com/robinostlund
+[@tl-sl]: https://github.com/tl-sl
+
+[#102371]: https://github.com/home-assistant/core/pull/102371
+[#106570]: https://github.com/home-assistant/core/pull/106570
+[#112806]: https://github.com/home-assistant/core/pull/112806
+[#114204]: https://github.com/home-assistant/core/pull/114204
+[#116585]: https://github.com/home-assistant/core/pull/116585
+[#117252]: https://github.com/home-assistant/core/pull/117252
+[#117622]: https://github.com/home-assistant/core/pull/117622
+[#117698]: https://github.com/home-assistant/core/pull/117698
+[#118243]: https://github.com/home-assistant/core/pull/118243
+[#119141]: https://github.com/home-assistant/core/pull/119141
+[#119281]: https://github.com/home-assistant/core/pull/119281
+[#119642]: https://github.com/home-assistant/core/pull/119642
+[#119689]: https://github.com/home-assistant/core/pull/119689
+[#119715]: https://github.com/home-assistant/core/pull/119715
+[#119737]: https://github.com/home-assistant/core/pull/119737
+[#120225]: https://github.com/home-assistant/core/pull/120225
+[#120226]: https://github.com/home-assistant/core/pull/120226
+[#120281]: https://github.com/home-assistant/core/pull/120281
+[#120775]: https://github.com/home-assistant/core/pull/120775
+[#120854]: https://github.com/home-assistant/core/pull/120854
+[#120858]: https://github.com/home-assistant/core/pull/120858
+[#121132]: https://github.com/home-assistant/core/pull/121132
+[#121209]: https://github.com/home-assistant/core/pull/121209
+[#121268]: https://github.com/home-assistant/core/pull/121268
+[#121336]: https://github.com/home-assistant/core/pull/121336
+[#121378]: https://github.com/home-assistant/core/pull/121378
+[#121488]: https://github.com/home-assistant/core/pull/121488
+[#121502]: https://github.com/home-assistant/core/pull/121502
+[#121582]: https://github.com/home-assistant/core/pull/121582
+[#121630]: https://github.com/home-assistant/core/pull/121630
+[#121702]: https://github.com/home-assistant/core/pull/121702
+[#121768]: https://github.com/home-assistant/core/pull/121768
+[#121786]: https://github.com/home-assistant/core/pull/121786
+[#121801]: https://github.com/home-assistant/core/pull/121801
+[#121810]: https://github.com/home-assistant/core/pull/121810
+[#121899]: https://github.com/home-assistant/core/pull/121899
+[#122006]: https://github.com/home-assistant/core/pull/122006
+[#122039]: https://github.com/home-assistant/core/pull/122039
+[#122160]: https://github.com/home-assistant/core/pull/122160
+[#122190]: https://github.com/home-assistant/core/pull/122190
+[#122270]: https://github.com/home-assistant/core/pull/122270
+[#122375]: https://github.com/home-assistant/core/pull/122375
+[#122419]: https://github.com/home-assistant/core/pull/122419
+[#122473]: https://github.com/home-assistant/core/pull/122473
+[#122595]: https://github.com/home-assistant/core/pull/122595
+[#122600]: https://github.com/home-assistant/core/pull/122600
+[#122625]: https://github.com/home-assistant/core/pull/122625
+[#122639]: https://github.com/home-assistant/core/pull/122639
+[#122644]: https://github.com/home-assistant/core/pull/122644
+[#122677]: https://github.com/home-assistant/core/pull/122677
+[#122796]: https://github.com/home-assistant/core/pull/122796
+[#122820]: https://github.com/home-assistant/core/pull/122820
+[#122862]: https://github.com/home-assistant/core/pull/122862
+[#122881]: https://github.com/home-assistant/core/pull/122881
+[#123020]: https://github.com/home-assistant/core/pull/123020
+[#123035]: https://github.com/home-assistant/core/pull/123035
+[#123048]: https://github.com/home-assistant/core/pull/123048
+[#123057]: https://github.com/home-assistant/core/pull/123057
+[#123080]: https://github.com/home-assistant/core/pull/123080
+[#123129]: https://github.com/home-assistant/core/pull/123129
+[#123144]: https://github.com/home-assistant/core/pull/123144
+[#123154]: https://github.com/home-assistant/core/pull/123154
+[#123169]: https://github.com/home-assistant/core/pull/123169
+[#123188]: https://github.com/home-assistant/core/pull/123188
+[#123205]: https://github.com/home-assistant/core/pull/123205
+[#123239]: https://github.com/home-assistant/core/pull/123239
+[#123254]: https://github.com/home-assistant/core/pull/123254
+[#123265]: https://github.com/home-assistant/core/pull/123265
+[#123289]: https://github.com/home-assistant/core/pull/123289
+[#123306]: https://github.com/home-assistant/core/pull/123306
+[#123311]: https://github.com/home-assistant/core/pull/123311
+[#123432]: https://github.com/home-assistant/core/pull/123432
+[#123493]: https://github.com/home-assistant/core/pull/123493
+[#123512]: https://github.com/home-assistant/core/pull/123512
+[#123548]: https://github.com/home-assistant/core/pull/123548
+[#123578]: https://github.com/home-assistant/core/pull/123578
+[#123621]: https://github.com/home-assistant/core/pull/123621
+[#123633]: https://github.com/home-assistant/core/pull/123633
+[#123649]: https://github.com/home-assistant/core/pull/123649
+[#123665]: https://github.com/home-assistant/core/pull/123665
+[#123729]: https://github.com/home-assistant/core/pull/123729
+[#123821]: https://github.com/home-assistant/core/pull/123821
+[#123822]: https://github.com/home-assistant/core/pull/123822
+[#123823]: https://github.com/home-assistant/core/pull/123823
+[#123836]: https://github.com/home-assistant/core/pull/123836
+[#123857]: https://github.com/home-assistant/core/pull/123857
+[#123860]: https://github.com/home-assistant/core/pull/123860
+[#123982]: https://github.com/home-assistant/core/pull/123982
+[#124014]: https://github.com/home-assistant/core/pull/124014
+[#124050]: https://github.com/home-assistant/core/pull/124050
+[#124063]: https://github.com/home-assistant/core/pull/124063
+[#124109]: https://github.com/home-assistant/core/pull/124109
+[#124111]: https://github.com/home-assistant/core/pull/124111
+[#124143]: https://github.com/home-assistant/core/pull/124143
+[#124148]: https://github.com/home-assistant/core/pull/124148
+[#124153]: https://github.com/home-assistant/core/pull/124153
+[#124157]: https://github.com/home-assistant/core/pull/124157
+[#124176]: https://github.com/home-assistant/core/pull/124176
+[#124180]: https://github.com/home-assistant/core/pull/124180
+[#124183]: https://github.com/home-assistant/core/pull/124183
+[#124184]: https://github.com/home-assistant/core/pull/124184
+[#124188]: https://github.com/home-assistant/core/pull/124188
+[#124190]: https://github.com/home-assistant/core/pull/124190
+[#124235]: https://github.com/home-assistant/core/pull/124235
+[#124245]: https://github.com/home-assistant/core/pull/124245
+[#124267]: https://github.com/home-assistant/core/pull/124267
+[#124294]: https://github.com/home-assistant/core/pull/124294
+[#124298]: https://github.com/home-assistant/core/pull/124298
+[#124305]: https://github.com/home-assistant/core/pull/124305
+[#124319]: https://github.com/home-assistant/core/pull/124319
+[#124326]: https://github.com/home-assistant/core/pull/124326
+[#124337]: https://github.com/home-assistant/core/pull/124337
+[#124357]: https://github.com/home-assistant/core/pull/124357
+[#124380]: https://github.com/home-assistant/core/pull/124380
+[#124381]: https://github.com/home-assistant/core/pull/124381
+[#124382]: https://github.com/home-assistant/core/pull/124382
+[#124394]: https://github.com/home-assistant/core/pull/124394
+[#124408]: https://github.com/home-assistant/core/pull/124408
+[#124411]: https://github.com/home-assistant/core/pull/124411
+[#124418]: https://github.com/home-assistant/core/pull/124418
+[#124441]: https://github.com/home-assistant/core/pull/124441
+[#124466]: https://github.com/home-assistant/core/pull/124466
+[#124472]: https://github.com/home-assistant/core/pull/124472
+[#124473]: https://github.com/home-assistant/core/pull/124473
+[#124480]: https://github.com/home-assistant/core/pull/124480
+[#124482]: https://github.com/home-assistant/core/pull/124482
+[#124483]: https://github.com/home-assistant/core/pull/124483
+[#124488]: https://github.com/home-assistant/core/pull/124488
+[#124506]: https://github.com/home-assistant/core/pull/124506
+[#124511]: https://github.com/home-assistant/core/pull/124511
+[#124518]: https://github.com/home-assistant/core/pull/124518
+[#124521]: https://github.com/home-assistant/core/pull/124521
+[#124524]: https://github.com/home-assistant/core/pull/124524
+[#124531]: https://github.com/home-assistant/core/pull/124531
+[#124533]: https://github.com/home-assistant/core/pull/124533
+[#124543]: https://github.com/home-assistant/core/pull/124543
+[#124577]: https://github.com/home-assistant/core/pull/124577
+[#124578]: https://github.com/home-assistant/core/pull/124578
+[#124603]: https://github.com/home-assistant/core/pull/124603
+[#124612]: https://github.com/home-assistant/core/pull/124612
+[#124617]: https://github.com/home-assistant/core/pull/124617
+[#124643]: https://github.com/home-assistant/core/pull/124643
+[#124650]: https://github.com/home-assistant/core/pull/124650
+[#124657]: https://github.com/home-assistant/core/pull/124657
+[#124714]: https://github.com/home-assistant/core/pull/124714
+[#124732]: https://github.com/home-assistant/core/pull/124732
+[#124751]: https://github.com/home-assistant/core/pull/124751
+[#124781]: https://github.com/home-assistant/core/pull/124781
+[#124782]: https://github.com/home-assistant/core/pull/124782
+[#124797]: https://github.com/home-assistant/core/pull/124797
+[#124798]: https://github.com/home-assistant/core/pull/124798
+[#124808]: https://github.com/home-assistant/core/pull/124808
+[#124816]: https://github.com/home-assistant/core/pull/124816
+[#124824]: https://github.com/home-assistant/core/pull/124824
+[#124830]: https://github.com/home-assistant/core/pull/124830
+[#124835]: https://github.com/home-assistant/core/pull/124835
+[#124841]: https://github.com/home-assistant/core/pull/124841
+[#124842]: https://github.com/home-assistant/core/pull/124842
+[#124843]: https://github.com/home-assistant/core/pull/124843
+[#124844]: https://github.com/home-assistant/core/pull/124844
+[#124845]: https://github.com/home-assistant/core/pull/124845
+[#124846]: https://github.com/home-assistant/core/pull/124846
+[#124854]: https://github.com/home-assistant/core/pull/124854
+[#124856]: https://github.com/home-assistant/core/pull/124856
+[#124859]: https://github.com/home-assistant/core/pull/124859
+[#124861]: https://github.com/home-assistant/core/pull/124861
+[#124863]: https://github.com/home-assistant/core/pull/124863
+[#124867]: https://github.com/home-assistant/core/pull/124867
+[#124869]: https://github.com/home-assistant/core/pull/124869
+[#124879]: https://github.com/home-assistant/core/pull/124879
+[#124898]: https://github.com/home-assistant/core/pull/124898
+[#124899]: https://github.com/home-assistant/core/pull/124899
+[#124900]: https://github.com/home-assistant/core/pull/124900
+[#124901]: https://github.com/home-assistant/core/pull/124901
+[#124902]: https://github.com/home-assistant/core/pull/124902
+[#124904]: https://github.com/home-assistant/core/pull/124904
+[#124905]: https://github.com/home-assistant/core/pull/124905
+[#124906]: https://github.com/home-assistant/core/pull/124906
+[#124907]: https://github.com/home-assistant/core/pull/124907
+[#124909]: https://github.com/home-assistant/core/pull/124909
+[#124910]: https://github.com/home-assistant/core/pull/124910
+[#124914]: https://github.com/home-assistant/core/pull/124914
+[#124925]: https://github.com/home-assistant/core/pull/124925
+[#124926]: https://github.com/home-assistant/core/pull/124926
+[#124933]: https://github.com/home-assistant/core/pull/124933
+[#124934]: https://github.com/home-assistant/core/pull/124934
+[#124937]: https://github.com/home-assistant/core/pull/124937
+[#124938]: https://github.com/home-assistant/core/pull/124938
+[#124939]: https://github.com/home-assistant/core/pull/124939
+[#124940]: https://github.com/home-assistant/core/pull/124940
+[#124943]: https://github.com/home-assistant/core/pull/124943
+[#124946]: https://github.com/home-assistant/core/pull/124946
+[#124948]: https://github.com/home-assistant/core/pull/124948
+[#124956]: https://github.com/home-assistant/core/pull/124956
+[#124957]: https://github.com/home-assistant/core/pull/124957
+[#124958]: https://github.com/home-assistant/core/pull/124958
+[#124959]: https://github.com/home-assistant/core/pull/124959
+[#124963]: https://github.com/home-assistant/core/pull/124963
+[#124970]: https://github.com/home-assistant/core/pull/124970
+[#124977]: https://github.com/home-assistant/core/pull/124977
+[#124978]: https://github.com/home-assistant/core/pull/124978
+[#124985]: https://github.com/home-assistant/core/pull/124985
+[#124986]: https://github.com/home-assistant/core/pull/124986
+[#124992]: https://github.com/home-assistant/core/pull/124992
+[#125002]: https://github.com/home-assistant/core/pull/125002
+[#125006]: https://github.com/home-assistant/core/pull/125006
+[#125007]: https://github.com/home-assistant/core/pull/125007
+[#125013]: https://github.com/home-assistant/core/pull/125013
+[#125021]: https://github.com/home-assistant/core/pull/125021
+[#125024]: https://github.com/home-assistant/core/pull/125024
+[#125030]: https://github.com/home-assistant/core/pull/125030
+[#125037]: https://github.com/home-assistant/core/pull/125037
+[#125040]: https://github.com/home-assistant/core/pull/125040
+[#125041]: https://github.com/home-assistant/core/pull/125041
+[#125042]: https://github.com/home-assistant/core/pull/125042
+[#125044]: https://github.com/home-assistant/core/pull/125044
+[#125045]: https://github.com/home-assistant/core/pull/125045
+[#125046]: https://github.com/home-assistant/core/pull/125046
+[#125052]: https://github.com/home-assistant/core/pull/125052
+[#125054]: https://github.com/home-assistant/core/pull/125054
+[#125056]: https://github.com/home-assistant/core/pull/125056
+[#125062]: https://github.com/home-assistant/core/pull/125062
+[#125064]: https://github.com/home-assistant/core/pull/125064
+[#125067]: https://github.com/home-assistant/core/pull/125067
+[#125068]: https://github.com/home-assistant/core/pull/125068
+[#125072]: https://github.com/home-assistant/core/pull/125072
+[#125076]: https://github.com/home-assistant/core/pull/125076
+[#125079]: https://github.com/home-assistant/core/pull/125079
+[#125081]: https://github.com/home-assistant/core/pull/125081
+[#125083]: https://github.com/home-assistant/core/pull/125083
+[#125087]: https://github.com/home-assistant/core/pull/125087
+[#125090]: https://github.com/home-assistant/core/pull/125090
+[#125091]: https://github.com/home-assistant/core/pull/125091
+[#125094]: https://github.com/home-assistant/core/pull/125094
+[#125099]: https://github.com/home-assistant/core/pull/125099
+[#125100]: https://github.com/home-assistant/core/pull/125100
+[#125101]: https://github.com/home-assistant/core/pull/125101
+[#125103]: https://github.com/home-assistant/core/pull/125103
+[#125104]: https://github.com/home-assistant/core/pull/125104
+[#125106]: https://github.com/home-assistant/core/pull/125106
+[#125109]: https://github.com/home-assistant/core/pull/125109
+[#125110]: https://github.com/home-assistant/core/pull/125110
+[#125118]: https://github.com/home-assistant/core/pull/125118
+[#125120]: https://github.com/home-assistant/core/pull/125120
+[#125122]: https://github.com/home-assistant/core/pull/125122
+[#125126]: https://github.com/home-assistant/core/pull/125126
+[#125127]: https://github.com/home-assistant/core/pull/125127
+[#125131]: https://github.com/home-assistant/core/pull/125131
+[#125133]: https://github.com/home-assistant/core/pull/125133
+[#125136]: https://github.com/home-assistant/core/pull/125136
+[#125138]: https://github.com/home-assistant/core/pull/125138
+[#125146]: https://github.com/home-assistant/core/pull/125146
+[#125151]: https://github.com/home-assistant/core/pull/125151
+[#125152]: https://github.com/home-assistant/core/pull/125152
+[#125155]: https://github.com/home-assistant/core/pull/125155
+[#125157]: https://github.com/home-assistant/core/pull/125157
+[#125158]: https://github.com/home-assistant/core/pull/125158
+[#125161]: https://github.com/home-assistant/core/pull/125161
+[#125164]: https://github.com/home-assistant/core/pull/125164
+[#125165]: https://github.com/home-assistant/core/pull/125165
+[#125166]: https://github.com/home-assistant/core/pull/125166
+[#125168]: https://github.com/home-assistant/core/pull/125168
+[#125172]: https://github.com/home-assistant/core/pull/125172
+[#125178]: https://github.com/home-assistant/core/pull/125178
+[#125179]: https://github.com/home-assistant/core/pull/125179
+[#125180]: https://github.com/home-assistant/core/pull/125180
+[#125184]: https://github.com/home-assistant/core/pull/125184
+[#125185]: https://github.com/home-assistant/core/pull/125185
+[#125188]: https://github.com/home-assistant/core/pull/125188
+[#125193]: https://github.com/home-assistant/core/pull/125193
+[#125195]: https://github.com/home-assistant/core/pull/125195
+[#125197]: https://github.com/home-assistant/core/pull/125197
+[#125198]: https://github.com/home-assistant/core/pull/125198
+[#125199]: https://github.com/home-assistant/core/pull/125199
+[#125200]: https://github.com/home-assistant/core/pull/125200
+[#125201]: https://github.com/home-assistant/core/pull/125201
+[#125202]: https://github.com/home-assistant/core/pull/125202
+[#125204]: https://github.com/home-assistant/core/pull/125204
+[#125208]: https://github.com/home-assistant/core/pull/125208
+[#125209]: https://github.com/home-assistant/core/pull/125209
+[#125214]: https://github.com/home-assistant/core/pull/125214
+[#125215]: https://github.com/home-assistant/core/pull/125215
+[#125220]: https://github.com/home-assistant/core/pull/125220
+[#125227]: https://github.com/home-assistant/core/pull/125227
+[#125228]: https://github.com/home-assistant/core/pull/125228
+[#125235]: https://github.com/home-assistant/core/pull/125235
+[#125236]: https://github.com/home-assistant/core/pull/125236
+[#125237]: https://github.com/home-assistant/core/pull/125237
+[#125242]: https://github.com/home-assistant/core/pull/125242
+[#125245]: https://github.com/home-assistant/core/pull/125245
+[#125246]: https://github.com/home-assistant/core/pull/125246
+[#125247]: https://github.com/home-assistant/core/pull/125247
+[#125248]: https://github.com/home-assistant/core/pull/125248
+[#125250]: https://github.com/home-assistant/core/pull/125250
+[#125259]: https://github.com/home-assistant/core/pull/125259
+[#125262]: https://github.com/home-assistant/core/pull/125262
+[#125264]: https://github.com/home-assistant/core/pull/125264
+[#125265]: https://github.com/home-assistant/core/pull/125265
+[#125268]: https://github.com/home-assistant/core/pull/125268
+[#125270]: https://github.com/home-assistant/core/pull/125270
+[#125271]: https://github.com/home-assistant/core/pull/125271
+[#125284]: https://github.com/home-assistant/core/pull/125284
+[#125287]: https://github.com/home-assistant/core/pull/125287
+[#125292]: https://github.com/home-assistant/core/pull/125292
+[#125293]: https://github.com/home-assistant/core/pull/125293
+[#125296]: https://github.com/home-assistant/core/pull/125296
+[#125298]: https://github.com/home-assistant/core/pull/125298
+[#125299]: https://github.com/home-assistant/core/pull/125299
+[#125300]: https://github.com/home-assistant/core/pull/125300
+[#125301]: https://github.com/home-assistant/core/pull/125301
+[#125302]: https://github.com/home-assistant/core/pull/125302
+[#125306]: https://github.com/home-assistant/core/pull/125306
+[#125308]: https://github.com/home-assistant/core/pull/125308
+[#125313]: https://github.com/home-assistant/core/pull/125313
+[#125315]: https://github.com/home-assistant/core/pull/125315
+[#125316]: https://github.com/home-assistant/core/pull/125316
+[#125318]: https://github.com/home-assistant/core/pull/125318
+[#125319]: https://github.com/home-assistant/core/pull/125319
+[#125320]: https://github.com/home-assistant/core/pull/125320
+[#125322]: https://github.com/home-assistant/core/pull/125322
+[#125323]: https://github.com/home-assistant/core/pull/125323
+[#125324]: https://github.com/home-assistant/core/pull/125324
+[#125326]: https://github.com/home-assistant/core/pull/125326
+[#125330]: https://github.com/home-assistant/core/pull/125330
+[#125331]: https://github.com/home-assistant/core/pull/125331
+[#125335]: https://github.com/home-assistant/core/pull/125335
+[#125338]: https://github.com/home-assistant/core/pull/125338
+[#125341]: https://github.com/home-assistant/core/pull/125341
+[#125343]: https://github.com/home-assistant/core/pull/125343
+[#125348]: https://github.com/home-assistant/core/pull/125348
+[#125349]: https://github.com/home-assistant/core/pull/125349
+[#125351]: https://github.com/home-assistant/core/pull/125351
+[#125352]: https://github.com/home-assistant/core/pull/125352
+[#125354]: https://github.com/home-assistant/core/pull/125354
+[#125355]: https://github.com/home-assistant/core/pull/125355
+[#125356]: https://github.com/home-assistant/core/pull/125356
+[#125359]: https://github.com/home-assistant/core/pull/125359
+[#125360]: https://github.com/home-assistant/core/pull/125360
+[#125364]: https://github.com/home-assistant/core/pull/125364
+[#125365]: https://github.com/home-assistant/core/pull/125365
+[#125366]: https://github.com/home-assistant/core/pull/125366
+[#125368]: https://github.com/home-assistant/core/pull/125368
+[#125369]: https://github.com/home-assistant/core/pull/125369
+[#125370]: https://github.com/home-assistant/core/pull/125370
+[#125372]: https://github.com/home-assistant/core/pull/125372
+[#125373]: https://github.com/home-assistant/core/pull/125373
+[#125376]: https://github.com/home-assistant/core/pull/125376
+[#125378]: https://github.com/home-assistant/core/pull/125378
+[#125381]: https://github.com/home-assistant/core/pull/125381
+[#125383]: https://github.com/home-assistant/core/pull/125383
+[#125384]: https://github.com/home-assistant/core/pull/125384
+[#125385]: https://github.com/home-assistant/core/pull/125385
+[#125390]: https://github.com/home-assistant/core/pull/125390
+[#125391]: https://github.com/home-assistant/core/pull/125391
+[#125392]: https://github.com/home-assistant/core/pull/125392
+[#125395]: https://github.com/home-assistant/core/pull/125395
+[#125399]: https://github.com/home-assistant/core/pull/125399
+[#125400]: https://github.com/home-assistant/core/pull/125400
+[#125403]: https://github.com/home-assistant/core/pull/125403
+[#125408]: https://github.com/home-assistant/core/pull/125408
+[#125410]: https://github.com/home-assistant/core/pull/125410
+[#125414]: https://github.com/home-assistant/core/pull/125414
+[#125415]: https://github.com/home-assistant/core/pull/125415
+[#125419]: https://github.com/home-assistant/core/pull/125419
+[#125422]: https://github.com/home-assistant/core/pull/125422
+[#125423]: https://github.com/home-assistant/core/pull/125423
+[#125427]: https://github.com/home-assistant/core/pull/125427
+[#125429]: https://github.com/home-assistant/core/pull/125429
+[#125433]: https://github.com/home-assistant/core/pull/125433
+[#125434]: https://github.com/home-assistant/core/pull/125434
+[#125439]: https://github.com/home-assistant/core/pull/125439
+[#125446]: https://github.com/home-assistant/core/pull/125446
+[#125450]: https://github.com/home-assistant/core/pull/125450
+[#125455]: https://github.com/home-assistant/core/pull/125455
+[#125456]: https://github.com/home-assistant/core/pull/125456
+[#125457]: https://github.com/home-assistant/core/pull/125457
+[#125461]: https://github.com/home-assistant/core/pull/125461
+[#125469]: https://github.com/home-assistant/core/pull/125469
+[#125473]: https://github.com/home-assistant/core/pull/125473
+[#125474]: https://github.com/home-assistant/core/pull/125474
+[#125476]: https://github.com/home-assistant/core/pull/125476
+[#125482]: https://github.com/home-assistant/core/pull/125482
+[#125485]: https://github.com/home-assistant/core/pull/125485
+[#125488]: https://github.com/home-assistant/core/pull/125488
+[#125489]: https://github.com/home-assistant/core/pull/125489
+[#125490]: https://github.com/home-assistant/core/pull/125490
+[#125491]: https://github.com/home-assistant/core/pull/125491
+[#125493]: https://github.com/home-assistant/core/pull/125493
+[#125495]: https://github.com/home-assistant/core/pull/125495
+[#125501]: https://github.com/home-assistant/core/pull/125501
+[#125503]: https://github.com/home-assistant/core/pull/125503
+[#125504]: https://github.com/home-assistant/core/pull/125504
+[#125506]: https://github.com/home-assistant/core/pull/125506
+[#125511]: https://github.com/home-assistant/core/pull/125511
+[#125512]: https://github.com/home-assistant/core/pull/125512
+[#125516]: https://github.com/home-assistant/core/pull/125516
+[#125518]: https://github.com/home-assistant/core/pull/125518
+[#125520]: https://github.com/home-assistant/core/pull/125520
+[#125521]: https://github.com/home-assistant/core/pull/125521
+[#125522]: https://github.com/home-assistant/core/pull/125522
+[#125523]: https://github.com/home-assistant/core/pull/125523
+[#125524]: https://github.com/home-assistant/core/pull/125524
+[#125527]: https://github.com/home-assistant/core/pull/125527
+[#125528]: https://github.com/home-assistant/core/pull/125528
+[#125529]: https://github.com/home-assistant/core/pull/125529
+[#125532]: https://github.com/home-assistant/core/pull/125532
+[#125533]: https://github.com/home-assistant/core/pull/125533
+[#125534]: https://github.com/home-assistant/core/pull/125534
+[#125535]: https://github.com/home-assistant/core/pull/125535
+[#125536]: https://github.com/home-assistant/core/pull/125536
+[#125537]: https://github.com/home-assistant/core/pull/125537
+[#125538]: https://github.com/home-assistant/core/pull/125538
+[#125539]: https://github.com/home-assistant/core/pull/125539
+[#125547]: https://github.com/home-assistant/core/pull/125547
+[#125549]: https://github.com/home-assistant/core/pull/125549
+[#125550]: https://github.com/home-assistant/core/pull/125550
+[#125553]: https://github.com/home-assistant/core/pull/125553
+[#125554]: https://github.com/home-assistant/core/pull/125554
+[#125555]: https://github.com/home-assistant/core/pull/125555
+[#125559]: https://github.com/home-assistant/core/pull/125559
+[#125560]: https://github.com/home-assistant/core/pull/125560
+[#125561]: https://github.com/home-assistant/core/pull/125561
+[#125562]: https://github.com/home-assistant/core/pull/125562
+[#125563]: https://github.com/home-assistant/core/pull/125563
+[#125567]: https://github.com/home-assistant/core/pull/125567
+[#125568]: https://github.com/home-assistant/core/pull/125568
+[#125569]: https://github.com/home-assistant/core/pull/125569
+[#125570]: https://github.com/home-assistant/core/pull/125570
+[#125572]: https://github.com/home-assistant/core/pull/125572
+[#125573]: https://github.com/home-assistant/core/pull/125573
+[#125575]: https://github.com/home-assistant/core/pull/125575
+[#125577]: https://github.com/home-assistant/core/pull/125577
+[#125581]: https://github.com/home-assistant/core/pull/125581
+[#125582]: https://github.com/home-assistant/core/pull/125582
+[#125585]: https://github.com/home-assistant/core/pull/125585
+[#125587]: https://github.com/home-assistant/core/pull/125587
+[#125589]: https://github.com/home-assistant/core/pull/125589
+[#125590]: https://github.com/home-assistant/core/pull/125590
+[#125591]: https://github.com/home-assistant/core/pull/125591
+[#125592]: https://github.com/home-assistant/core/pull/125592
+[#125593]: https://github.com/home-assistant/core/pull/125593
+[#125596]: https://github.com/home-assistant/core/pull/125596
+[#125604]: https://github.com/home-assistant/core/pull/125604
+[#125609]: https://github.com/home-assistant/core/pull/125609
+[#125613]: https://github.com/home-assistant/core/pull/125613
+[#125619]: https://github.com/home-assistant/core/pull/125619
+[#125621]: https://github.com/home-assistant/core/pull/125621
+[#125625]: https://github.com/home-assistant/core/pull/125625
+[#125627]: https://github.com/home-assistant/core/pull/125627
+[#125629]: https://github.com/home-assistant/core/pull/125629
+[#125632]: https://github.com/home-assistant/core/pull/125632
+[#125633]: https://github.com/home-assistant/core/pull/125633
+[#125638]: https://github.com/home-assistant/core/pull/125638
+[#125640]: https://github.com/home-assistant/core/pull/125640
+[#125642]: https://github.com/home-assistant/core/pull/125642
+[#125645]: https://github.com/home-assistant/core/pull/125645
+[#125646]: https://github.com/home-assistant/core/pull/125646
+[#125647]: https://github.com/home-assistant/core/pull/125647
+[#125648]: https://github.com/home-assistant/core/pull/125648
+[#125649]: https://github.com/home-assistant/core/pull/125649
+[#125650]: https://github.com/home-assistant/core/pull/125650
+[#125652]: https://github.com/home-assistant/core/pull/125652
+[#125653]: https://github.com/home-assistant/core/pull/125653
+[#125658]: https://github.com/home-assistant/core/pull/125658
+[#125659]: https://github.com/home-assistant/core/pull/125659
+[#125660]: https://github.com/home-assistant/core/pull/125660
+[#125661]: https://github.com/home-assistant/core/pull/125661
+[#125662]: https://github.com/home-assistant/core/pull/125662
+[#125664]: https://github.com/home-assistant/core/pull/125664
+[#125665]: https://github.com/home-assistant/core/pull/125665
+[#125666]: https://github.com/home-assistant/core/pull/125666
+[#125668]: https://github.com/home-assistant/core/pull/125668
+[#125670]: https://github.com/home-assistant/core/pull/125670
+[#125676]: https://github.com/home-assistant/core/pull/125676
+[#125678]: https://github.com/home-assistant/core/pull/125678
+[#125681]: https://github.com/home-assistant/core/pull/125681
+[#125682]: https://github.com/home-assistant/core/pull/125682
+[#125683]: https://github.com/home-assistant/core/pull/125683
+[#125687]: https://github.com/home-assistant/core/pull/125687
+[#125688]: https://github.com/home-assistant/core/pull/125688
+[#125689]: https://github.com/home-assistant/core/pull/125689
+[#125690]: https://github.com/home-assistant/core/pull/125690
+[#125692]: https://github.com/home-assistant/core/pull/125692
+[#125696]: https://github.com/home-assistant/core/pull/125696
+[#125697]: https://github.com/home-assistant/core/pull/125697
+[#125698]: https://github.com/home-assistant/core/pull/125698
+[#125699]: https://github.com/home-assistant/core/pull/125699
+[#125702]: https://github.com/home-assistant/core/pull/125702
+[#125704]: https://github.com/home-assistant/core/pull/125704
+[#125705]: https://github.com/home-assistant/core/pull/125705
+[#125707]: https://github.com/home-assistant/core/pull/125707
+[#125713]: https://github.com/home-assistant/core/pull/125713
+[#125717]: https://github.com/home-assistant/core/pull/125717
+[#125724]: https://github.com/home-assistant/core/pull/125724
+[#125726]: https://github.com/home-assistant/core/pull/125726
+[#125731]: https://github.com/home-assistant/core/pull/125731
+[#125735]: https://github.com/home-assistant/core/pull/125735
+[#125737]: https://github.com/home-assistant/core/pull/125737
+[#125739]: https://github.com/home-assistant/core/pull/125739
+[#125741]: https://github.com/home-assistant/core/pull/125741
+[#125744]: https://github.com/home-assistant/core/pull/125744
+[#125745]: https://github.com/home-assistant/core/pull/125745
+[#125746]: https://github.com/home-assistant/core/pull/125746
+[#125747]: https://github.com/home-assistant/core/pull/125747
+[#125748]: https://github.com/home-assistant/core/pull/125748
+[#125749]: https://github.com/home-assistant/core/pull/125749
+[#125751]: https://github.com/home-assistant/core/pull/125751
+[#125753]: https://github.com/home-assistant/core/pull/125753
+[#125754]: https://github.com/home-assistant/core/pull/125754
+[#125755]: https://github.com/home-assistant/core/pull/125755
+[#125756]: https://github.com/home-assistant/core/pull/125756
+[#125757]: https://github.com/home-assistant/core/pull/125757
+[#125758]: https://github.com/home-assistant/core/pull/125758
+[#125759]: https://github.com/home-assistant/core/pull/125759
+[#125760]: https://github.com/home-assistant/core/pull/125760
+[#125761]: https://github.com/home-assistant/core/pull/125761
+[#125762]: https://github.com/home-assistant/core/pull/125762
+[#125763]: https://github.com/home-assistant/core/pull/125763
+[#125765]: https://github.com/home-assistant/core/pull/125765
+[#125766]: https://github.com/home-assistant/core/pull/125766
+[#125771]: https://github.com/home-assistant/core/pull/125771
+[#125773]: https://github.com/home-assistant/core/pull/125773
+[#125774]: https://github.com/home-assistant/core/pull/125774
+[#125775]: https://github.com/home-assistant/core/pull/125775
+[#125779]: https://github.com/home-assistant/core/pull/125779
+[#125780]: https://github.com/home-assistant/core/pull/125780
+[#125784]: https://github.com/home-assistant/core/pull/125784
+[#125785]: https://github.com/home-assistant/core/pull/125785
+[#125786]: https://github.com/home-assistant/core/pull/125786
+[#125792]: https://github.com/home-assistant/core/pull/125792
+[#125797]: https://github.com/home-assistant/core/pull/125797
+[#125798]: https://github.com/home-assistant/core/pull/125798
+[#125802]: https://github.com/home-assistant/core/pull/125802
+[#125805]: https://github.com/home-assistant/core/pull/125805
+[#125806]: https://github.com/home-assistant/core/pull/125806
+[#125808]: https://github.com/home-assistant/core/pull/125808
+[#125809]: https://github.com/home-assistant/core/pull/125809
+[#125810]: https://github.com/home-assistant/core/pull/125810
+[#125812]: https://github.com/home-assistant/core/pull/125812
+[#125816]: https://github.com/home-assistant/core/pull/125816
+[#125819]: https://github.com/home-assistant/core/pull/125819
+[#125821]: https://github.com/home-assistant/core/pull/125821
+[#125824]: https://github.com/home-assistant/core/pull/125824
+[#125825]: https://github.com/home-assistant/core/pull/125825
+[#125827]: https://github.com/home-assistant/core/pull/125827
+[#125828]: https://github.com/home-assistant/core/pull/125828
+[#125829]: https://github.com/home-assistant/core/pull/125829
+[#125831]: https://github.com/home-assistant/core/pull/125831
+[#125832]: https://github.com/home-assistant/core/pull/125832
+[#125834]: https://github.com/home-assistant/core/pull/125834
+[#125836]: https://github.com/home-assistant/core/pull/125836
+[#125837]: https://github.com/home-assistant/core/pull/125837
+[#125844]: https://github.com/home-assistant/core/pull/125844
+[#125845]: https://github.com/home-assistant/core/pull/125845
+[#125849]: https://github.com/home-assistant/core/pull/125849
+[#125852]: https://github.com/home-assistant/core/pull/125852
+[#125853]: https://github.com/home-assistant/core/pull/125853
+[#125855]: https://github.com/home-assistant/core/pull/125855
+[#125858]: https://github.com/home-assistant/core/pull/125858
+[#125859]: https://github.com/home-assistant/core/pull/125859
+[#125860]: https://github.com/home-assistant/core/pull/125860
+[#125861]: https://github.com/home-assistant/core/pull/125861
+[#125862]: https://github.com/home-assistant/core/pull/125862
+[#125863]: https://github.com/home-assistant/core/pull/125863
+[#125866]: https://github.com/home-assistant/core/pull/125866
+[#125867]: https://github.com/home-assistant/core/pull/125867
+[#125877]: https://github.com/home-assistant/core/pull/125877
+[#125886]: https://github.com/home-assistant/core/pull/125886
+[#125891]: https://github.com/home-assistant/core/pull/125891
+[#125892]: https://github.com/home-assistant/core/pull/125892
+[#125893]: https://github.com/home-assistant/core/pull/125893
+[#125896]: https://github.com/home-assistant/core/pull/125896
+[#125897]: https://github.com/home-assistant/core/pull/125897
+[#125900]: https://github.com/home-assistant/core/pull/125900
+[#125903]: https://github.com/home-assistant/core/pull/125903
+[#125904]: https://github.com/home-assistant/core/pull/125904
+[#125906]: https://github.com/home-assistant/core/pull/125906
+[#125907]: https://github.com/home-assistant/core/pull/125907
+[#125910]: https://github.com/home-assistant/core/pull/125910
+[#125919]: https://github.com/home-assistant/core/pull/125919
+[#125921]: https://github.com/home-assistant/core/pull/125921
+[#125923]: https://github.com/home-assistant/core/pull/125923
+[#125924]: https://github.com/home-assistant/core/pull/125924
+[#125926]: https://github.com/home-assistant/core/pull/125926
+[#125931]: https://github.com/home-assistant/core/pull/125931
+[#125933]: https://github.com/home-assistant/core/pull/125933
+[#125935]: https://github.com/home-assistant/core/pull/125935
+[#125936]: https://github.com/home-assistant/core/pull/125936
+[#125940]: https://github.com/home-assistant/core/pull/125940
+[#125941]: https://github.com/home-assistant/core/pull/125941
+[#125942]: https://github.com/home-assistant/core/pull/125942
+[#125943]: https://github.com/home-assistant/core/pull/125943
+[#125944]: https://github.com/home-assistant/core/pull/125944
+[#125946]: https://github.com/home-assistant/core/pull/125946
+[#125948]: https://github.com/home-assistant/core/pull/125948
+[#125951]: https://github.com/home-assistant/core/pull/125951
+[#125954]: https://github.com/home-assistant/core/pull/125954
+[#125955]: https://github.com/home-assistant/core/pull/125955
+[#125960]: https://github.com/home-assistant/core/pull/125960
+[#125962]: https://github.com/home-assistant/core/pull/125962
+[#125966]: https://github.com/home-assistant/core/pull/125966
+[#125969]: https://github.com/home-assistant/core/pull/125969
+[#125970]: https://github.com/home-assistant/core/pull/125970
+[#125971]: https://github.com/home-assistant/core/pull/125971
+[#125977]: https://github.com/home-assistant/core/pull/125977
+[#125978]: https://github.com/home-assistant/core/pull/125978
+[#125981]: https://github.com/home-assistant/core/pull/125981
+[#125982]: https://github.com/home-assistant/core/pull/125982
+[#125983]: https://github.com/home-assistant/core/pull/125983
+[#125985]: https://github.com/home-assistant/core/pull/125985
+[#125986]: https://github.com/home-assistant/core/pull/125986
+[#125987]: https://github.com/home-assistant/core/pull/125987
+[#125988]: https://github.com/home-assistant/core/pull/125988
+[#125989]: https://github.com/home-assistant/core/pull/125989
+[#125998]: https://github.com/home-assistant/core/pull/125998
+[#126002]: https://github.com/home-assistant/core/pull/126002
+[#126004]: https://github.com/home-assistant/core/pull/126004
+[#126014]: https://github.com/home-assistant/core/pull/126014
+[#126016]: https://github.com/home-assistant/core/pull/126016
+[#126017]: https://github.com/home-assistant/core/pull/126017
+[#126019]: https://github.com/home-assistant/core/pull/126019
+[#126020]: https://github.com/home-assistant/core/pull/126020
+[#126021]: https://github.com/home-assistant/core/pull/126021
+[#126022]: https://github.com/home-assistant/core/pull/126022
+[#126023]: https://github.com/home-assistant/core/pull/126023
+[#126024]: https://github.com/home-assistant/core/pull/126024
+[#126025]: https://github.com/home-assistant/core/pull/126025
+[#126026]: https://github.com/home-assistant/core/pull/126026
+[#126027]: https://github.com/home-assistant/core/pull/126027
+[#126028]: https://github.com/home-assistant/core/pull/126028
+[#126029]: https://github.com/home-assistant/core/pull/126029
+[#126030]: https://github.com/home-assistant/core/pull/126030
+[#126032]: https://github.com/home-assistant/core/pull/126032
+[#126033]: https://github.com/home-assistant/core/pull/126033
+[#126034]: https://github.com/home-assistant/core/pull/126034
+[#126035]: https://github.com/home-assistant/core/pull/126035
+[#126036]: https://github.com/home-assistant/core/pull/126036
+[#126037]: https://github.com/home-assistant/core/pull/126037
+[#126038]: https://github.com/home-assistant/core/pull/126038
+[#126039]: https://github.com/home-assistant/core/pull/126039
+[#126041]: https://github.com/home-assistant/core/pull/126041
+[#126042]: https://github.com/home-assistant/core/pull/126042
+[#126043]: https://github.com/home-assistant/core/pull/126043
+[#126046]: https://github.com/home-assistant/core/pull/126046
+[#126048]: https://github.com/home-assistant/core/pull/126048
+[#126049]: https://github.com/home-assistant/core/pull/126049
+[#126050]: https://github.com/home-assistant/core/pull/126050
+[#126051]: https://github.com/home-assistant/core/pull/126051
+[#126052]: https://github.com/home-assistant/core/pull/126052
+[#126053]: https://github.com/home-assistant/core/pull/126053
+[#126054]: https://github.com/home-assistant/core/pull/126054
+[#126055]: https://github.com/home-assistant/core/pull/126055
+[#126056]: https://github.com/home-assistant/core/pull/126056
+[#126057]: https://github.com/home-assistant/core/pull/126057
+[#126059]: https://github.com/home-assistant/core/pull/126059
+[#126063]: https://github.com/home-assistant/core/pull/126063
+[#126066]: https://github.com/home-assistant/core/pull/126066
+[#126069]: https://github.com/home-assistant/core/pull/126069
+[#126072]: https://github.com/home-assistant/core/pull/126072
+[#126074]: https://github.com/home-assistant/core/pull/126074
+[#126077]: https://github.com/home-assistant/core/pull/126077
+[#126082]: https://github.com/home-assistant/core/pull/126082
+[#126085]: https://github.com/home-assistant/core/pull/126085
+[#126090]: https://github.com/home-assistant/core/pull/126090
+[#126091]: https://github.com/home-assistant/core/pull/126091
+[#126094]: https://github.com/home-assistant/core/pull/126094
+[#126095]: https://github.com/home-assistant/core/pull/126095
+[#126096]: https://github.com/home-assistant/core/pull/126096
+[#126097]: https://github.com/home-assistant/core/pull/126097
+[#126098]: https://github.com/home-assistant/core/pull/126098
+[#126099]: https://github.com/home-assistant/core/pull/126099
+[#126100]: https://github.com/home-assistant/core/pull/126100
+[#126101]: https://github.com/home-assistant/core/pull/126101
+[#126102]: https://github.com/home-assistant/core/pull/126102
+[#126103]: https://github.com/home-assistant/core/pull/126103
+[#126104]: https://github.com/home-assistant/core/pull/126104
+[#126105]: https://github.com/home-assistant/core/pull/126105
+[#126106]: https://github.com/home-assistant/core/pull/126106
+[#126108]: https://github.com/home-assistant/core/pull/126108
+[#126111]: https://github.com/home-assistant/core/pull/126111
+[#126113]: https://github.com/home-assistant/core/pull/126113
+[#126119]: https://github.com/home-assistant/core/pull/126119
+[#126121]: https://github.com/home-assistant/core/pull/126121
+[#126126]: https://github.com/home-assistant/core/pull/126126
+[#126128]: https://github.com/home-assistant/core/pull/126128
+[#126129]: https://github.com/home-assistant/core/pull/126129
+[#126130]: https://github.com/home-assistant/core/pull/126130
+[#126132]: https://github.com/home-assistant/core/pull/126132
+[#126134]: https://github.com/home-assistant/core/pull/126134
+[#126135]: https://github.com/home-assistant/core/pull/126135
+[#126137]: https://github.com/home-assistant/core/pull/126137
+[#126138]: https://github.com/home-assistant/core/pull/126138
+[#126139]: https://github.com/home-assistant/core/pull/126139
+[#126140]: https://github.com/home-assistant/core/pull/126140
+[#126141]: https://github.com/home-assistant/core/pull/126141
+[#126142]: https://github.com/home-assistant/core/pull/126142
+[#126147]: https://github.com/home-assistant/core/pull/126147
+[#126148]: https://github.com/home-assistant/core/pull/126148
+[#126161]: https://github.com/home-assistant/core/pull/126161
+[#126164]: https://github.com/home-assistant/core/pull/126164
+[#126166]: https://github.com/home-assistant/core/pull/126166
+[#126170]: https://github.com/home-assistant/core/pull/126170
+[#126171]: https://github.com/home-assistant/core/pull/126171
+[#126173]: https://github.com/home-assistant/core/pull/126173
+[#126174]: https://github.com/home-assistant/core/pull/126174
+[#126175]: https://github.com/home-assistant/core/pull/126175
+[#126176]: https://github.com/home-assistant/core/pull/126176
+[#126177]: https://github.com/home-assistant/core/pull/126177
+[#126178]: https://github.com/home-assistant/core/pull/126178
+[#126179]: https://github.com/home-assistant/core/pull/126179
+[#126180]: https://github.com/home-assistant/core/pull/126180
+[#126181]: https://github.com/home-assistant/core/pull/126181
+[#126182]: https://github.com/home-assistant/core/pull/126182
+[#126183]: https://github.com/home-assistant/core/pull/126183
+[#126184]: https://github.com/home-assistant/core/pull/126184
+[#126185]: https://github.com/home-assistant/core/pull/126185
+[#126186]: https://github.com/home-assistant/core/pull/126186
+[#126187]: https://github.com/home-assistant/core/pull/126187
+[#126188]: https://github.com/home-assistant/core/pull/126188
+[#126189]: https://github.com/home-assistant/core/pull/126189
+[#126190]: https://github.com/home-assistant/core/pull/126190
+[#126192]: https://github.com/home-assistant/core/pull/126192
+[#126193]: https://github.com/home-assistant/core/pull/126193
+[#126194]: https://github.com/home-assistant/core/pull/126194
+[#126197]: https://github.com/home-assistant/core/pull/126197
+[#126198]: https://github.com/home-assistant/core/pull/126198
+[#126199]: https://github.com/home-assistant/core/pull/126199
+[#126200]: https://github.com/home-assistant/core/pull/126200
+[#126201]: https://github.com/home-assistant/core/pull/126201
+[#126203]: https://github.com/home-assistant/core/pull/126203
+[#126204]: https://github.com/home-assistant/core/pull/126204
+[#126205]: https://github.com/home-assistant/core/pull/126205
+[#126206]: https://github.com/home-assistant/core/pull/126206
+[#126210]: https://github.com/home-assistant/core/pull/126210
+[#126211]: https://github.com/home-assistant/core/pull/126211
+[#126212]: https://github.com/home-assistant/core/pull/126212
+[#126216]: https://github.com/home-assistant/core/pull/126216
+[#126220]: https://github.com/home-assistant/core/pull/126220
+[#126225]: https://github.com/home-assistant/core/pull/126225
+[#126228]: https://github.com/home-assistant/core/pull/126228
+[#126229]: https://github.com/home-assistant/core/pull/126229
+[#126230]: https://github.com/home-assistant/core/pull/126230
+[#126231]: https://github.com/home-assistant/core/pull/126231
+[#126232]: https://github.com/home-assistant/core/pull/126232
+[#126233]: https://github.com/home-assistant/core/pull/126233
+[#126234]: https://github.com/home-assistant/core/pull/126234
+[#126236]: https://github.com/home-assistant/core/pull/126236
+[#126237]: https://github.com/home-assistant/core/pull/126237
+[#126248]: https://github.com/home-assistant/core/pull/126248
+[#126251]: https://github.com/home-assistant/core/pull/126251
+[#126252]: https://github.com/home-assistant/core/pull/126252
+[#126254]: https://github.com/home-assistant/core/pull/126254
+[#126255]: https://github.com/home-assistant/core/pull/126255
+[#126256]: https://github.com/home-assistant/core/pull/126256
+[#126257]: https://github.com/home-assistant/core/pull/126257
+[#126258]: https://github.com/home-assistant/core/pull/126258
+[#126259]: https://github.com/home-assistant/core/pull/126259
+[#126260]: https://github.com/home-assistant/core/pull/126260
+[#126264]: https://github.com/home-assistant/core/pull/126264
+[#126267]: https://github.com/home-assistant/core/pull/126267
+[#126269]: https://github.com/home-assistant/core/pull/126269
+[#126276]: https://github.com/home-assistant/core/pull/126276
+[#126278]: https://github.com/home-assistant/core/pull/126278
+[#126279]: https://github.com/home-assistant/core/pull/126279
+[#126282]: https://github.com/home-assistant/core/pull/126282
+[#126287]: https://github.com/home-assistant/core/pull/126287
+[#126299]: https://github.com/home-assistant/core/pull/126299
+[#126301]: https://github.com/home-assistant/core/pull/126301
+[#126302]: https://github.com/home-assistant/core/pull/126302
+[#126305]: https://github.com/home-assistant/core/pull/126305
+[#126306]: https://github.com/home-assistant/core/pull/126306
+[#126309]: https://github.com/home-assistant/core/pull/126309
+[#126310]: https://github.com/home-assistant/core/pull/126310
+[#126312]: https://github.com/home-assistant/core/pull/126312
+[#126313]: https://github.com/home-assistant/core/pull/126313
+[#126314]: https://github.com/home-assistant/core/pull/126314
+[#126315]: https://github.com/home-assistant/core/pull/126315
+[#126317]: https://github.com/home-assistant/core/pull/126317
+[#126320]: https://github.com/home-assistant/core/pull/126320
+[#126321]: https://github.com/home-assistant/core/pull/126321
+[#126322]: https://github.com/home-assistant/core/pull/126322
+[#126323]: https://github.com/home-assistant/core/pull/126323
+[#126324]: https://github.com/home-assistant/core/pull/126324
+[#126325]: https://github.com/home-assistant/core/pull/126325
+[#126327]: https://github.com/home-assistant/core/pull/126327
+[#126328]: https://github.com/home-assistant/core/pull/126328
+[#126329]: https://github.com/home-assistant/core/pull/126329
+[#126330]: https://github.com/home-assistant/core/pull/126330
+[#126331]: https://github.com/home-assistant/core/pull/126331
+[#126332]: https://github.com/home-assistant/core/pull/126332
+[#126333]: https://github.com/home-assistant/core/pull/126333
+[#126335]: https://github.com/home-assistant/core/pull/126335
+[#126336]: https://github.com/home-assistant/core/pull/126336
+[#126338]: https://github.com/home-assistant/core/pull/126338
+[#126339]: https://github.com/home-assistant/core/pull/126339
+[#126340]: https://github.com/home-assistant/core/pull/126340
+[#126342]: https://github.com/home-assistant/core/pull/126342
+[#126343]: https://github.com/home-assistant/core/pull/126343
+[#126345]: https://github.com/home-assistant/core/pull/126345
+[#126346]: https://github.com/home-assistant/core/pull/126346
+[#126347]: https://github.com/home-assistant/core/pull/126347
+[#126349]: https://github.com/home-assistant/core/pull/126349
+[#126351]: https://github.com/home-assistant/core/pull/126351
+[#126354]: https://github.com/home-assistant/core/pull/126354
+[#126359]: https://github.com/home-assistant/core/pull/126359
+[#126361]: https://github.com/home-assistant/core/pull/126361
+[#126365]: https://github.com/home-assistant/core/pull/126365
+[#126366]: https://github.com/home-assistant/core/pull/126366
+[#126368]: https://github.com/home-assistant/core/pull/126368
+[#126375]: https://github.com/home-assistant/core/pull/126375
+[#126376]: https://github.com/home-assistant/core/pull/126376
+[#126379]: https://github.com/home-assistant/core/pull/126379
+[#126380]: https://github.com/home-assistant/core/pull/126380
+[#126383]: https://github.com/home-assistant/core/pull/126383
+[#126384]: https://github.com/home-assistant/core/pull/126384
+[#126386]: https://github.com/home-assistant/core/pull/126386
+[#126387]: https://github.com/home-assistant/core/pull/126387
+[#126388]: https://github.com/home-assistant/core/pull/126388
+[#126389]: https://github.com/home-assistant/core/pull/126389
+[#126390]: https://github.com/home-assistant/core/pull/126390
+[#126394]: https://github.com/home-assistant/core/pull/126394
+[#126397]: https://github.com/home-assistant/core/pull/126397
+[#126398]: https://github.com/home-assistant/core/pull/126398
+[#126399]: https://github.com/home-assistant/core/pull/126399
+[#126401]: https://github.com/home-assistant/core/pull/126401
+[#126404]: https://github.com/home-assistant/core/pull/126404
+[#126405]: https://github.com/home-assistant/core/pull/126405
+[#126406]: https://github.com/home-assistant/core/pull/126406
+[#126408]: https://github.com/home-assistant/core/pull/126408
+[#126409]: https://github.com/home-assistant/core/pull/126409
+[#126410]: https://github.com/home-assistant/core/pull/126410
+[#126411]: https://github.com/home-assistant/core/pull/126411
+[#126412]: https://github.com/home-assistant/core/pull/126412
+[#126413]: https://github.com/home-assistant/core/pull/126413
+[#126416]: https://github.com/home-assistant/core/pull/126416
+[#126419]: https://github.com/home-assistant/core/pull/126419
+[#126420]: https://github.com/home-assistant/core/pull/126420
+[#126421]: https://github.com/home-assistant/core/pull/126421
+[#126423]: https://github.com/home-assistant/core/pull/126423
+[#126425]: https://github.com/home-assistant/core/pull/126425
+[#126426]: https://github.com/home-assistant/core/pull/126426
+[#126427]: https://github.com/home-assistant/core/pull/126427
+[#126428]: https://github.com/home-assistant/core/pull/126428
+[#126429]: https://github.com/home-assistant/core/pull/126429
+[#126430]: https://github.com/home-assistant/core/pull/126430
+[#126432]: https://github.com/home-assistant/core/pull/126432
+[#126433]: https://github.com/home-assistant/core/pull/126433
+[#126435]: https://github.com/home-assistant/core/pull/126435
+[#126437]: https://github.com/home-assistant/core/pull/126437
+[#126440]: https://github.com/home-assistant/core/pull/126440
+[#126443]: https://github.com/home-assistant/core/pull/126443
+[#126444]: https://github.com/home-assistant/core/pull/126444
+[#126446]: https://github.com/home-assistant/core/pull/126446
+[#126449]: https://github.com/home-assistant/core/pull/126449
+[#126458]: https://github.com/home-assistant/core/pull/126458
+[#126468]: https://github.com/home-assistant/core/pull/126468
+[#126469]: https://github.com/home-assistant/core/pull/126469
+[#126471]: https://github.com/home-assistant/core/pull/126471
+[#126473]: https://github.com/home-assistant/core/pull/126473
+[#126474]: https://github.com/home-assistant/core/pull/126474
+[#126475]: https://github.com/home-assistant/core/pull/126475
+[#126477]: https://github.com/home-assistant/core/pull/126477
+[#126478]: https://github.com/home-assistant/core/pull/126478
+[#126479]: https://github.com/home-assistant/core/pull/126479
+[#126480]: https://github.com/home-assistant/core/pull/126480
+[#126481]: https://github.com/home-assistant/core/pull/126481
+[#126482]: https://github.com/home-assistant/core/pull/126482
+[#126484]: https://github.com/home-assistant/core/pull/126484
+[#126485]: https://github.com/home-assistant/core/pull/126485
+[#126486]: https://github.com/home-assistant/core/pull/126486
+[#126488]: https://github.com/home-assistant/core/pull/126488
+[#126489]: https://github.com/home-assistant/core/pull/126489
+[#126490]: https://github.com/home-assistant/core/pull/126490
+[#126491]: https://github.com/home-assistant/core/pull/126491
+[#126492]: https://github.com/home-assistant/core/pull/126492
+[#126493]: https://github.com/home-assistant/core/pull/126493
+[#126494]: https://github.com/home-assistant/core/pull/126494
+[#126495]: https://github.com/home-assistant/core/pull/126495
+[#126496]: https://github.com/home-assistant/core/pull/126496
+[#126497]: https://github.com/home-assistant/core/pull/126497
+[#126498]: https://github.com/home-assistant/core/pull/126498
+[#126499]: https://github.com/home-assistant/core/pull/126499
+[#126500]: https://github.com/home-assistant/core/pull/126500
+[#126502]: https://github.com/home-assistant/core/pull/126502
+[#126504]: https://github.com/home-assistant/core/pull/126504
+[#126505]: https://github.com/home-assistant/core/pull/126505
+[#126506]: https://github.com/home-assistant/core/pull/126506
+[#126507]: https://github.com/home-assistant/core/pull/126507
+[#126508]: https://github.com/home-assistant/core/pull/126508
+[#126509]: https://github.com/home-assistant/core/pull/126509
+[#126510]: https://github.com/home-assistant/core/pull/126510
+[#126511]: https://github.com/home-assistant/core/pull/126511
+[#126512]: https://github.com/home-assistant/core/pull/126512
+[#126513]: https://github.com/home-assistant/core/pull/126513
+[#126514]: https://github.com/home-assistant/core/pull/126514
+[#126518]: https://github.com/home-assistant/core/pull/126518
+[#126519]: https://github.com/home-assistant/core/pull/126519
+[#126520]: https://github.com/home-assistant/core/pull/126520
+[#126521]: https://github.com/home-assistant/core/pull/126521
+[#126523]: https://github.com/home-assistant/core/pull/126523
+[#126524]: https://github.com/home-assistant/core/pull/126524
+[#126525]: https://github.com/home-assistant/core/pull/126525
+[#126526]: https://github.com/home-assistant/core/pull/126526
+[#126527]: https://github.com/home-assistant/core/pull/126527
+[#126528]: https://github.com/home-assistant/core/pull/126528
+[#126529]: https://github.com/home-assistant/core/pull/126529
+[#126530]: https://github.com/home-assistant/core/pull/126530
+[#126531]: https://github.com/home-assistant/core/pull/126531
+[#126532]: https://github.com/home-assistant/core/pull/126532
+[#126533]: https://github.com/home-assistant/core/pull/126533
+[#126535]: https://github.com/home-assistant/core/pull/126535
+[#126536]: https://github.com/home-assistant/core/pull/126536
+[#126538]: https://github.com/home-assistant/core/pull/126538
+[#126540]: https://github.com/home-assistant/core/pull/126540
+[#126541]: https://github.com/home-assistant/core/pull/126541
+[#126542]: https://github.com/home-assistant/core/pull/126542
+[#126543]: https://github.com/home-assistant/core/pull/126543
+[#126544]: https://github.com/home-assistant/core/pull/126544
+[#126545]: https://github.com/home-assistant/core/pull/126545
+[#126546]: https://github.com/home-assistant/core/pull/126546
+[#126548]: https://github.com/home-assistant/core/pull/126548
+[#126549]: https://github.com/home-assistant/core/pull/126549
+[#126550]: https://github.com/home-assistant/core/pull/126550
+[#126551]: https://github.com/home-assistant/core/pull/126551
+[#126552]: https://github.com/home-assistant/core/pull/126552
+[#126553]: https://github.com/home-assistant/core/pull/126553
+[#126555]: https://github.com/home-assistant/core/pull/126555
+[#126556]: https://github.com/home-assistant/core/pull/126556
+[#126557]: https://github.com/home-assistant/core/pull/126557
+[#126558]: https://github.com/home-assistant/core/pull/126558
+[#126559]: https://github.com/home-assistant/core/pull/126559
+[#126560]: https://github.com/home-assistant/core/pull/126560
+[#126561]: https://github.com/home-assistant/core/pull/126561
+[#126562]: https://github.com/home-assistant/core/pull/126562
+[#126563]: https://github.com/home-assistant/core/pull/126563
+[#126564]: https://github.com/home-assistant/core/pull/126564
+[#126567]: https://github.com/home-assistant/core/pull/126567
+[#126569]: https://github.com/home-assistant/core/pull/126569
+[#126571]: https://github.com/home-assistant/core/pull/126571
+[#126573]: https://github.com/home-assistant/core/pull/126573
+[#126576]: https://github.com/home-assistant/core/pull/126576
+[#126580]: https://github.com/home-assistant/core/pull/126580
+[#126581]: https://github.com/home-assistant/core/pull/126581
+[#126585]: https://github.com/home-assistant/core/pull/126585
+[#126586]: https://github.com/home-assistant/core/pull/126586
+[#126587]: https://github.com/home-assistant/core/pull/126587
+[#126589]: https://github.com/home-assistant/core/pull/126589
+[#126590]: https://github.com/home-assistant/core/pull/126590
+[#126591]: https://github.com/home-assistant/core/pull/126591
+[#126592]: https://github.com/home-assistant/core/pull/126592
+[#126593]: https://github.com/home-assistant/core/pull/126593
+[#126594]: https://github.com/home-assistant/core/pull/126594
+[#126595]: https://github.com/home-assistant/core/pull/126595
+[#126599]: https://github.com/home-assistant/core/pull/126599
+[#126601]: https://github.com/home-assistant/core/pull/126601
+[#126603]: https://github.com/home-assistant/core/pull/126603
+[#126604]: https://github.com/home-assistant/core/pull/126604
+[#126605]: https://github.com/home-assistant/core/pull/126605
+[#126608]: https://github.com/home-assistant/core/pull/126608
+[#126613]: https://github.com/home-assistant/core/pull/126613
+[#126614]: https://github.com/home-assistant/core/pull/126614
+[#126615]: https://github.com/home-assistant/core/pull/126615
+[#126616]: https://github.com/home-assistant/core/pull/126616
+[#126617]: https://github.com/home-assistant/core/pull/126617
+[#126619]: https://github.com/home-assistant/core/pull/126619
+[#126620]: https://github.com/home-assistant/core/pull/126620
+[#126621]: https://github.com/home-assistant/core/pull/126621
+[#126622]: https://github.com/home-assistant/core/pull/126622
+[#126623]: https://github.com/home-assistant/core/pull/126623
+[#126625]: https://github.com/home-assistant/core/pull/126625
+[#126626]: https://github.com/home-assistant/core/pull/126626
+[#126627]: https://github.com/home-assistant/core/pull/126627
+[#126628]: https://github.com/home-assistant/core/pull/126628
+[#126629]: https://github.com/home-assistant/core/pull/126629
+[#126630]: https://github.com/home-assistant/core/pull/126630
+[#126631]: https://github.com/home-assistant/core/pull/126631
+[#126632]: https://github.com/home-assistant/core/pull/126632
+[#126633]: https://github.com/home-assistant/core/pull/126633
+[#126634]: https://github.com/home-assistant/core/pull/126634
+[#126635]: https://github.com/home-assistant/core/pull/126635
+[#126636]: https://github.com/home-assistant/core/pull/126636
+[#126637]: https://github.com/home-assistant/core/pull/126637
+[#126639]: https://github.com/home-assistant/core/pull/126639
+[#126642]: https://github.com/home-assistant/core/pull/126642
+[#126644]: https://github.com/home-assistant/core/pull/126644
+[#126647]: https://github.com/home-assistant/core/pull/126647
+[#126648]: https://github.com/home-assistant/core/pull/126648
+[#126650]: https://github.com/home-assistant/core/pull/126650
+[#126651]: https://github.com/home-assistant/core/pull/126651
+[#126652]: https://github.com/home-assistant/core/pull/126652
+[#126653]: https://github.com/home-assistant/core/pull/126653
+[#126654]: https://github.com/home-assistant/core/pull/126654
+[#126657]: https://github.com/home-assistant/core/pull/126657
+[#126658]: https://github.com/home-assistant/core/pull/126658
+[#126659]: https://github.com/home-assistant/core/pull/126659
+[#126660]: https://github.com/home-assistant/core/pull/126660
+[#126662]: https://github.com/home-assistant/core/pull/126662
+[#126664]: https://github.com/home-assistant/core/pull/126664
+[#126666]: https://github.com/home-assistant/core/pull/126666
+[#126668]: https://github.com/home-assistant/core/pull/126668
+[#126672]: https://github.com/home-assistant/core/pull/126672
+[#126680]: https://github.com/home-assistant/core/pull/126680
+[#126687]: https://github.com/home-assistant/core/pull/126687
+[#126690]: https://github.com/home-assistant/core/pull/126690
+[#126691]: https://github.com/home-assistant/core/pull/126691
+[#126692]: https://github.com/home-assistant/core/pull/126692
+[#126693]: https://github.com/home-assistant/core/pull/126693
+[#126695]: https://github.com/home-assistant/core/pull/126695
+[#126696]: https://github.com/home-assistant/core/pull/126696
+[#126697]: https://github.com/home-assistant/core/pull/126697
+[#126698]: https://github.com/home-assistant/core/pull/126698
+[#126699]: https://github.com/home-assistant/core/pull/126699
+[#126700]: https://github.com/home-assistant/core/pull/126700
+[#126703]: https://github.com/home-assistant/core/pull/126703
+[#126704]: https://github.com/home-assistant/core/pull/126704
+[#126706]: https://github.com/home-assistant/core/pull/126706
+[#126709]: https://github.com/home-assistant/core/pull/126709
+[#126714]: https://github.com/home-assistant/core/pull/126714
+[#126715]: https://github.com/home-assistant/core/pull/126715
+[#126716]: https://github.com/home-assistant/core/pull/126716
+[#126717]: https://github.com/home-assistant/core/pull/126717
+[#126718]: https://github.com/home-assistant/core/pull/126718
+[#126719]: https://github.com/home-assistant/core/pull/126719
+[#126723]: https://github.com/home-assistant/core/pull/126723
+[#126725]: https://github.com/home-assistant/core/pull/126725
+[#126726]: https://github.com/home-assistant/core/pull/126726
+[#126731]: https://github.com/home-assistant/core/pull/126731
+[#126736]: https://github.com/home-assistant/core/pull/126736
+[#126738]: https://github.com/home-assistant/core/pull/126738
+[#126740]: https://github.com/home-assistant/core/pull/126740
+[#126742]: https://github.com/home-assistant/core/pull/126742
+[#126743]: https://github.com/home-assistant/core/pull/126743
+[#126744]: https://github.com/home-assistant/core/pull/126744
+[#126746]: https://github.com/home-assistant/core/pull/126746
+[#126748]: https://github.com/home-assistant/core/pull/126748
+[#126749]: https://github.com/home-assistant/core/pull/126749
+[#126750]: https://github.com/home-assistant/core/pull/126750
+[#126753]: https://github.com/home-assistant/core/pull/126753
+[#126762]: https://github.com/home-assistant/core/pull/126762
+[#126763]: https://github.com/home-assistant/core/pull/126763
+[#126765]: https://github.com/home-assistant/core/pull/126765
+[#126766]: https://github.com/home-assistant/core/pull/126766
+[#126769]: https://github.com/home-assistant/core/pull/126769
+[#126774]: https://github.com/home-assistant/core/pull/126774
+[#126778]: https://github.com/home-assistant/core/pull/126778
+[#126791]: https://github.com/home-assistant/core/pull/126791
+[#126793]: https://github.com/home-assistant/core/pull/126793
+[#126817]: https://github.com/home-assistant/core/pull/126817
+[#126823]: https://github.com/home-assistant/core/pull/126823
+[#126824]: https://github.com/home-assistant/core/pull/126824
+[#126826]: https://github.com/home-assistant/core/pull/126826
+[#126832]: https://github.com/home-assistant/core/pull/126832
+[#126834]: https://github.com/home-assistant/core/pull/126834
+[#126837]: https://github.com/home-assistant/core/pull/126837
+[#126838]: https://github.com/home-assistant/core/pull/126838
+[#126841]: https://github.com/home-assistant/core/pull/126841
+[#126843]: https://github.com/home-assistant/core/pull/126843
+[#126845]: https://github.com/home-assistant/core/pull/126845
+[#126850]: https://github.com/home-assistant/core/pull/126850
+[#126851]: https://github.com/home-assistant/core/pull/126851
+[#126857]: https://github.com/home-assistant/core/pull/126857
+[#126867]: https://github.com/home-assistant/core/pull/126867
+[#126868]: https://github.com/home-assistant/core/pull/126868
+[#126871]: https://github.com/home-assistant/core/pull/126871
+[#126872]: https://github.com/home-assistant/core/pull/126872
+[#126873]: https://github.com/home-assistant/core/pull/126873
+[#126882]: https://github.com/home-assistant/core/pull/126882
+[#126883]: https://github.com/home-assistant/core/pull/126883
+[#126886]: https://github.com/home-assistant/core/pull/126886
+[#126889]: https://github.com/home-assistant/core/pull/126889
+[#126902]: https://github.com/home-assistant/core/pull/126902
+[#126903]: https://github.com/home-assistant/core/pull/126903
+[#126907]: https://github.com/home-assistant/core/pull/126907
+[#126910]: https://github.com/home-assistant/core/pull/126910
+[#126911]: https://github.com/home-assistant/core/pull/126911
+[#126912]: https://github.com/home-assistant/core/pull/126912
+[#126918]: https://github.com/home-assistant/core/pull/126918
+[#126923]: https://github.com/home-assistant/core/pull/126923
+[#126926]: https://github.com/home-assistant/core/pull/126926
+[#126928]: https://github.com/home-assistant/core/pull/126928
+[#126929]: https://github.com/home-assistant/core/pull/126929
+[#126933]: https://github.com/home-assistant/core/pull/126933
+[#126934]: https://github.com/home-assistant/core/pull/126934
+[#126944]: https://github.com/home-assistant/core/pull/126944
+[#126954]: https://github.com/home-assistant/core/pull/126954
+[#126962]: https://github.com/home-assistant/core/pull/126962
+[#126965]: https://github.com/home-assistant/core/pull/126965
+[#126970]: https://github.com/home-assistant/core/pull/126970
+[#126990]: https://github.com/home-assistant/core/pull/126990
+[#126997]: https://github.com/home-assistant/core/pull/126997
+[#127001]: https://github.com/home-assistant/core/pull/127001
+[#127009]: https://github.com/home-assistant/core/pull/127009
+[#127010]: https://github.com/home-assistant/core/pull/127010
+[#127013]: https://github.com/home-assistant/core/pull/127013
+[#127032]: https://github.com/home-assistant/core/pull/127032
+[#127035]: https://github.com/home-assistant/core/pull/127035
+[#127048]: https://github.com/home-assistant/core/pull/127048
+[#127049]: https://github.com/home-assistant/core/pull/127049
+[#127050]: https://github.com/home-assistant/core/pull/127050
+[#127052]: https://github.com/home-assistant/core/pull/127052
+[#127053]: https://github.com/home-assistant/core/pull/127053
+[#127056]: https://github.com/home-assistant/core/pull/127056
+[#127063]: https://github.com/home-assistant/core/pull/127063
+[#127064]: https://github.com/home-assistant/core/pull/127064
+[#127065]: https://github.com/home-assistant/core/pull/127065
+[#127072]: https://github.com/home-assistant/core/pull/127072
+[#127091]: https://github.com/home-assistant/core/pull/127091
+[#127092]: https://github.com/home-assistant/core/pull/127092
+[#127096]: https://github.com/home-assistant/core/pull/127096
+[#127114]: https://github.com/home-assistant/core/pull/127114
+[#127120]: https://github.com/home-assistant/core/pull/127120
+[#127125]: https://github.com/home-assistant/core/pull/127125
+[#127126]: https://github.com/home-assistant/core/pull/127126
+[#127127]: https://github.com/home-assistant/core/pull/127127
+[#127128]: https://github.com/home-assistant/core/pull/127128
+[#127129]: https://github.com/home-assistant/core/pull/127129
+[#127130]: https://github.com/home-assistant/core/pull/127130
+[#127133]: https://github.com/home-assistant/core/pull/127133
+[#127136]: https://github.com/home-assistant/core/pull/127136
+[#127153]: https://github.com/home-assistant/core/pull/127153
+[#127179]: https://github.com/home-assistant/core/pull/127179
+[#127183]: https://github.com/home-assistant/core/pull/127183
+[#127213]: https://github.com/home-assistant/core/pull/127213
+[#127214]: https://github.com/home-assistant/core/pull/127214
+[#127215]: https://github.com/home-assistant/core/pull/127215
+[#127216]: https://github.com/home-assistant/core/pull/127216
+[#127217]: https://github.com/home-assistant/core/pull/127217
+[#127218]: https://github.com/home-assistant/core/pull/127218
+[#127220]: https://github.com/home-assistant/core/pull/127220
+[#127221]: https://github.com/home-assistant/core/pull/127221
+[#127222]: https://github.com/home-assistant/core/pull/127222
+[#127226]: https://github.com/home-assistant/core/pull/127226
+[#127231]: https://github.com/home-assistant/core/pull/127231
+[#127234]: https://github.com/home-assistant/core/pull/127234
+[#127254]: https://github.com/home-assistant/core/pull/127254
+[#127256]: https://github.com/home-assistant/core/pull/127256
+[#127264]: https://github.com/home-assistant/core/pull/127264
+[#127292]: https://github.com/home-assistant/core/pull/127292
+[#127331]: https://github.com/home-assistant/core/pull/127331
+[#127333]: https://github.com/home-assistant/core/pull/127333
+[#127338]: https://github.com/home-assistant/core/pull/127338
+[@ALERTua]: https://github.com/ALERTua
+[@AlCalzone]: https://github.com/AlCalzone
+[@Alexwijn]: https://github.com/Alexwijn
+[@Balake]: https://github.com/Balake
+[@Bre77]: https://github.com/Bre77
+[@CFenner]: https://github.com/CFenner
+[@Cereal2nd]: https://github.com/Cereal2nd
+[@DCSBL]: https://github.com/DCSBL
+[@Diegorro98]: https://github.com/Diegorro98
+[@GeoffAtHome]: https://github.com/GeoffAtHome
+[@Gigatrappeur]: https://github.com/Gigatrappeur
+[@HarvsG]: https://github.com/HarvsG
+[@IceBotYT]: https://github.com/IceBotYT
+[@Kane610]: https://github.com/Kane610
+[@Klikini]: https://github.com/Klikini
+[@LG-ThinQ-Integration]: https://github.com/LG-ThinQ-Integration
+[@Lash-L]: https://github.com/Lash-L
+[@Lektrico]: https://github.com/Lektrico
+[@LennP]: https://github.com/LennP
+[@LouisChrist]: https://github.com/LouisChrist
+[@LucaDiba]: https://github.com/LucaDiba
+[@MarkGodwin]: https://github.com/MarkGodwin
+[@MartinHjelmare]: https://github.com/MartinHjelmare
+[@Michal4K]: https://github.com/Michal4K
+[@N3rdix]: https://github.com/N3rdix
+[@Nidre]: https://github.com/Nidre
+[@Noltari]: https://github.com/Noltari
+[@PaarthShah]: https://github.com/PaarthShah
+[@PeteRager]: https://github.com/PeteRager
+[@RJPoelstra]: https://github.com/RJPoelstra
+[@RZomermanMS]: https://github.com/RZomermanMS
+[@Shulyaka]: https://github.com/Shulyaka
+[@Shutgun]: https://github.com/Shutgun
+[@Skaronator]: https://github.com/Skaronator
+[@Smankusors]: https://github.com/Smankusors
+[@SteveEasley]: https://github.com/SteveEasley
+[@Thomas55555]: https://github.com/Thomas55555
+[@Trekky12]: https://github.com/Trekky12
+[@TrevorSchirmer]: https://github.com/TrevorSchirmer
+[@ViViDboarder]: https://github.com/ViViDboarder
+[@Window-Hero]: https://github.com/Window-Hero
+[@YogevBokobza]: https://github.com/YogevBokobza
+[@agoode]: https://github.com/agoode
+[@albertomontesg]: https://github.com/albertomontesg
+[@alengwenus]: https://github.com/alengwenus
+[@alexandrecuer]: https://github.com/alexandrecuer
+[@alexdev03]: https://github.com/alexdev03
+[@alexyao2015]: https://github.com/alexyao2015
+[@allenporter]: https://github.com/allenporter
+[@andrew-codechimp]: https://github.com/andrew-codechimp
+[@arturpragacz]: https://github.com/arturpragacz
+[@atmurray]: https://github.com/atmurray
+[@austinmroczek]: https://github.com/austinmroczek
+[@autinerd]: https://github.com/autinerd
+[@balloob]: https://github.com/balloob
+[@bdraco]: https://github.com/bdraco
+[@beastie29a]: https://github.com/beastie29a
+[@bieniu]: https://github.com/bieniu
+[@bouwew]: https://github.com/bouwew
+[@bramkragten]: https://github.com/bramkragten
+[@c0ffeeca7]: https://github.com/c0ffeeca7
+[@catsmanac]: https://github.com/catsmanac
+[@cayossarian]: https://github.com/cayossarian
+[@cbrouwer]: https://github.com/cbrouwer
+[@cdce8p]: https://github.com/cdce8p
+[@cdnninja]: https://github.com/cdnninja
+[@chammp]: https://github.com/chammp
+[@chemelli74]: https://github.com/chemelli74
+[@civita]: https://github.com/civita
+[@claui]: https://github.com/claui
+[@cnico]: https://github.com/cnico
+[@crevetor]: https://github.com/crevetor
+[@daniel-k]: https://github.com/daniel-k
+[@dieselrabbit]: https://github.com/dieselrabbit
+[@dknowles2]: https://github.com/dknowles2
+[@dmulcahey]: https://github.com/dmulcahey
+[@dontinelli]: https://github.com/dontinelli
+[@dougiteixeira]: https://github.com/dougiteixeira
+[@drsgoodall]: https://github.com/drsgoodall
+[@dudanov]: https://github.com/dudanov
+[@edenhaus]: https://github.com/edenhaus
+[@eifinger]: https://github.com/eifinger
+[@elmurato]: https://github.com/elmurato
+[@elupus]: https://github.com/elupus
+[@emontnemery]: https://github.com/emontnemery
+[@epenet]: https://github.com/epenet
+[@euandekock]: https://github.com/euandekock
+[@exxamalte]: https://github.com/exxamalte
+[@farmio]: https://github.com/farmio
+[@fiste788]: https://github.com/fiste788
+[@fredrike]: https://github.com/fredrike
+[@frenck]: https://github.com/frenck
+[@functionpointer]: https://github.com/functionpointer
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[@hanskroner]: https://github.com/hanskroner
+[@hesselonline]: https://github.com/hesselonline
+[@hunterjm]: https://github.com/hunterjm
+[@iloveicedgreentea]: https://github.com/iloveicedgreentea
+[@indrajitr]: https://github.com/indrajitr
+[@iskrakranj]: https://github.com/iskrakranj
+[@jbouwh]: https://github.com/jbouwh
+[@jeeftor]: https://github.com/jeeftor
+[@jesperraemaekers]: https://github.com/jesperraemaekers
+[@jesserockz]: https://github.com/jesserockz
+[@jm-cook]: https://github.com/jm-cook
+[@jnsgruk]: https://github.com/jnsgruk
+[@joncar]: https://github.com/joncar
+[@joostlek]: https://github.com/joostlek
+[@jpbede]: https://github.com/jpbede
+[@jrieger]: https://github.com/jrieger
+[@jschlyter]: https://github.com/jschlyter
+[@jvmahon]: https://github.com/jvmahon
+[@kamiyo]: https://github.com/kamiyo
+[@karwosts]: https://github.com/karwosts
+[@klaasnicolaas]: https://github.com/klaasnicolaas
+[@krasnoukhov]: https://github.com/krasnoukhov
+[@krx]: https://github.com/krx
+[@krzysdabro]: https://github.com/krzysdabro
+[@lboue]: https://github.com/lboue
+[@ldfandian]: https://github.com/ldfandian
+[@liudger]: https://github.com/liudger
+[@ludeeus]: https://github.com/ludeeus
+[@marcelveldt]: https://github.com/marcelveldt
+[@markruys]: https://github.com/markruys
+[@martinssipenko]: https://github.com/martinssipenko
+[@matrixd2]: https://github.com/matrixd2
+[@mback2k]: https://github.com/mback2k
+[@mdegat01]: https://github.com/mdegat01
+[@mib1185]: https://github.com/mib1185
+[@mikey0000]: https://github.com/mikey0000
+[@mj23000]: https://github.com/mj23000
+[@mpw96]: https://github.com/mpw96
+[@mrpasztoradam]: https://github.com/mrpasztoradam
+[@ms264556]: https://github.com/ms264556
+[@mtielen]: https://github.com/mtielen
+[@mvdwetering]: https://github.com/mvdwetering
+[@mvn23]: https://github.com/mvn23
+[@noahhusby]: https://github.com/noahhusby
+[@npike]: https://github.com/npike
+[@nprez83]: https://github.com/nprez83
+[@ol-iver]: https://github.com/ol-iver
+[@ollo69]: https://github.com/ollo69
+[@ozadr1an]: https://github.com/ozadr1an
+[@peteS-UK]: https://github.com/peteS-UK
+[@piitaya]: https://github.com/piitaya
+[@proxi]: https://github.com/proxi
+[@pssc]: https://github.com/pssc
+[@puddly]: https://github.com/puddly
+[@rajlaud]: https://github.com/rajlaud
+[@raman325]: https://github.com/raman325
+[@rcloran]: https://github.com/rcloran
+[@renehonig]: https://github.com/renehonig
+[@rvmey]: https://github.com/rvmey
+[@rytilahti]: https://github.com/rytilahti
+[@s0129]: https://github.com/s0129
+[@sdb9696]: https://github.com/sdb9696
+[@seferino-fernandez]: https://github.com/seferino-fernandez
+[@sh0oki]: https://github.com/sh0oki
+[@shaiu]: https://github.com/shaiu
+[@shapournemati-iotty]: https://github.com/shapournemati-iotty
+[@shedokan]: https://github.com/shedokan
+[@silamon]: https://github.com/silamon
+[@silentguy256]: https://github.com/silentguy256
+[@somdoron]: https://github.com/somdoron
+[@sorgfresser]: https://github.com/sorgfresser
+[@starkillerOG]: https://github.com/starkillerOG
+[@steffenrapp]: https://github.com/steffenrapp
+[@swistakm]: https://github.com/swistakm
+[@synesthesiam]: https://github.com/synesthesiam
+[@tal]: https://github.com/tal
+[@taltaub22]: https://github.com/taltaub22
+[@tathamoddie]: https://github.com/tathamoddie
+[@tdfountain]: https://github.com/tdfountain
+[@teharris1]: https://github.com/teharris1
+[@thecode]: https://github.com/thecode
+[@timmo001]: https://github.com/timmo001
+[@tl-sl]: https://github.com/tl-sl
+[@tr4nt0r]: https://github.com/tr4nt0r
+[@treetip]: https://github.com/treetip
+[@tronikos]: https://github.com/tronikos
+[@tsvi]: https://github.com/tsvi
+[@vhkristof]: https://github.com/vhkristof
+[@wbyoung]: https://github.com/wbyoung
+[@xLarry]: https://github.com/xLarry
+[@yyolk]: https://github.com/yyolk
+[@zweckj]: https://github.com/zweckj
+[@zxdavb]: https://github.com/zxdavb
diff --git a/source/connectzbt1/index.html b/source/connectzbt1/index.html
index 790d2f529a9f..ff6514fd40d7 100644
--- a/source/connectzbt1/index.html
+++ b/source/connectzbt1/index.html
@@ -79,7 +79,7 @@
-
+
Home Assistant Connect ZBT-1 (previously known as Home Assistant SkyConnect) is the easiest way to add Zigbee support
to your Home Assistant instance.
@@ -201,7 +201,14 @@
FAQs
This experimental firmware has been available since December 2022. Through extensive testing, we have found that although it works in some circumstances, it has technical limitations that lead to a worse user experience. We now do not recommend using this firmware, and it will be experimental for the foreseeable future. Instead, we will focus on making sure the dedicated Zigbee and Thread firmwares for Home Assistant Connect ZBT-1 deliver the best experience to users.
If you currently have the multiprotocol firmware installed but don't actively use it to connect to Thread devices, we recommend that you
disable multiprotocol.
- Nothing changes for current users of the multiprotocol firmware who are happy with their experience. The experimental multiprotocol firmware will remain available, but we will not recommend it to new users.{% enddetails %}
+ Nothing changes for current users of the multiprotocol firmware who are happy with their experience. The experimental multiprotocol firmware will remain available, but we will not recommend it to new users.
+ {% enddetails %}
+
+ {% details "What is the Home Assistant Connect ZBT-1 replacement program?" %}
+ We’ve found an issue in Home Assistant Connect ZBT-1 that is the result of a faulty part incorporated in the first batch of ZBT-1 devices (sold between June and October of 2024). These devices can fail if plugged into certain USB-A ports, but can operate without issue if plugged into most devices.
+ We have instituted a program to provide a replacement device free of charge for a period of 60 months (effective October 2, 2024) for verified purchases. If it’s working, keep it plugged into the device it’s working with. The long coverage period means you don’t need to worry about a replacement until you require one. Regardless of whether the device has failed, we will provide a replacement upon request. SkyConnect branded devices are unaffected by this issue and do not require replacement.
+ Please contact the seller where you purchased your device, and they will arrange the return process and replacement. For more information on the program,
read our blog
+ {% enddetails %}
diff --git a/source/images/blog/2024-10-zbt1-issue/art.jpg b/source/images/blog/2024-10-zbt1-issue/art.jpg
new file mode 100644
index 000000000000..37f81026ce05
Binary files /dev/null and b/source/images/blog/2024-10-zbt1-issue/art.jpg differ
diff --git a/source/images/blog/2024-10-zbt1-issue/zbt1-issue.jpg b/source/images/blog/2024-10-zbt1-issue/zbt1-issue.jpg
new file mode 100644
index 000000000000..1f9a2e877424
Binary files /dev/null and b/source/images/blog/2024-10-zbt1-issue/zbt1-issue.jpg differ
diff --git a/source/images/blog/2024-10/YAML-automation-syntax-changes.png b/source/images/blog/2024-10/YAML-automation-syntax-changes.png
new file mode 100644
index 000000000000..8e4e435854e2
Binary files /dev/null and b/source/images/blog/2024-10/YAML-automation-syntax-changes.png differ
diff --git a/source/images/blog/2024-10/YAML-editor-improvements.png b/source/images/blog/2024-10/YAML-editor-improvements.png
new file mode 100644
index 000000000000..45ad5d8ea4d8
Binary files /dev/null and b/source/images/blog/2024-10/YAML-editor-improvements.png differ
diff --git a/source/images/blog/2024-10/heading-with-entities.png b/source/images/blog/2024-10/heading-with-entities.png
new file mode 100644
index 000000000000..6485999d6525
Binary files /dev/null and b/source/images/blog/2024-10/heading-with-entities.png differ
diff --git a/source/images/blog/2024-10/headings.png b/source/images/blog/2024-10/headings.png
new file mode 100644
index 000000000000..75ea2711379b
Binary files /dev/null and b/source/images/blog/2024-10/headings.png differ
diff --git a/source/images/blog/2024-10/repair-issue-reported-by.png b/source/images/blog/2024-10/repair-issue-reported-by.png
new file mode 100644
index 000000000000..63124fbbc7bf
Binary files /dev/null and b/source/images/blog/2024-10/repair-issue-reported-by.png differ
diff --git a/source/images/blog/2024-10/social.jpg b/source/images/blog/2024-10/social.jpg
new file mode 100644
index 000000000000..ea7b7c402d6a
Binary files /dev/null and b/source/images/blog/2024-10/social.jpg differ
diff --git a/source/images/blog/2024-10/statistics-repair.jpg b/source/images/blog/2024-10/statistics-repair.jpg
new file mode 100644
index 000000000000..a4919a80b57d
Binary files /dev/null and b/source/images/blog/2024-10/statistics-repair.jpg differ
diff --git a/source/images/dashboards/heading_card.png b/source/images/dashboards/heading_card.png
new file mode 100644
index 000000000000..196195223a09
Binary files /dev/null and b/source/images/dashboards/heading_card.png differ
diff --git a/source/images/dashboards/map_card_config.png b/source/images/dashboards/map_card_config.png
new file mode 100644
index 000000000000..8fd38382cc24
Binary files /dev/null and b/source/images/dashboards/map_card_config.png differ
diff --git a/source/images/dashboards/section_view.png b/source/images/dashboards/section_view.png
new file mode 100644
index 000000000000..313bc6954e70
Binary files /dev/null and b/source/images/dashboards/section_view.png differ
diff --git a/source/images/dashboards/section_view_rearrange_cards.gif b/source/images/dashboards/section_view_rearrange_cards.gif
new file mode 100644
index 000000000000..dc1678e394a0
Binary files /dev/null and b/source/images/dashboards/section_view_rearrange_cards.gif differ
diff --git a/source/images/dashboards/section_view_rearrange_sections.gif b/source/images/dashboards/section_view_rearrange_sections.gif
new file mode 100644
index 000000000000..e7b2a8de8c20
Binary files /dev/null and b/source/images/dashboards/section_view_rearrange_sections.gif differ
diff --git a/source/images/dashboards/sections_view_add-card-or-section.png b/source/images/dashboards/sections_view_add-card-or-section.png
index 3f5ac636fd48..e483ed749f2e 100644
Binary files a/source/images/dashboards/sections_view_add-card-or-section.png and b/source/images/dashboards/sections_view_add-card-or-section.png differ
diff --git a/source/images/dashboards/sidebar_view_move_card.png b/source/images/dashboards/sidebar_view_move_card.png
index 1905c727c263..7cc83c631ab5 100644
Binary files a/source/images/dashboards/sidebar_view_move_card.png and b/source/images/dashboards/sidebar_view_move_card.png differ
diff --git a/source/images/dashboards/view_edit_config.png b/source/images/dashboards/view_edit_config.png
new file mode 100644
index 000000000000..6109d7016d9e
Binary files /dev/null and b/source/images/dashboards/view_edit_config.png differ
diff --git a/source/voice_control/custom_sentences.markdown b/source/voice_control/custom_sentences.markdown
index 7924dc94905c..04ef2dc08f1f 100644
--- a/source/voice_control/custom_sentences.markdown
+++ b/source/voice_control/custom_sentences.markdown
@@ -148,7 +148,7 @@ As mentioned above, you can then use the `intent_script` integration to implemen
# Example configuration.yaml
intent_script:
SetVolume:
- action:
+ actions:
service: "media_player.volume_set"
data:
entity_id: "{{ media_player }}"