-Many devices that (will) hit the market will use Thread for radio communication and Matter as a control protocol, but this is not guaranteed. For example, Thread-based devices are available that only support Apple HomeKit or some vendor-specific communication protocol. There are also a few cases where you need to apply for a (beta) firmware update on the device to enable Matter as a communication protocol. Therefore, do not assume Matter support when you see a Thread logo when looking for devices. Please be sure to look for the *Matter* logo itself (on either Wi-Fi/Ethernet-based devices or Thread) or any other confirmation by the manufacturer that the device supports Matter.
+Many devices that (will) hit the market will use {% term Thread %} for radio communication and Matter as a control protocol, but this is not guaranteed. For example, Thread-based devices are available that only support Apple HomeKit or some vendor-specific communication protocol. There are also a few cases where you need to apply for a (beta) firmware update on the device to enable Matter as a communication protocol. Therefore, do not assume Matter support when you see a Thread logo when looking for devices. Please be sure to look for the *Matter* logo itself (on either Wi-Fi/Ethernet-based devices or {% term Thread %}) or any other confirmation by the manufacturer that the device supports Matter.
-## Bluetooth
+## Bluetooth used during commissioning
-Most (if not all) Matter-compliant devices will also have a Bluetooth chip onboard, this is to ease commissioning (a somewhat technical term for adding a device to your controller). Bluetooth will not be used to control a device but only to pair it after unboxing or factory resetting. The Home Assistant controller uses the Home Assistant Companion app to do commissioning, so you can bring your phone close to the device you want to commission. The controller will then send your network credentials to your device over Bluetooth in the commissioning process. If that succeeds, the device will communicate over its native interface, meaning Wi-Fi, Ethernet, or Thread.
+Most (if not all) Matter-compliant devices have a Bluetooth chip onboard to ease {% term commissioning %}. Bluetooth is not used to control but to pair a device after unboxing or after factory resetting. The Home Assistant controller uses the Home Assistant Companion app for {% term commissioning %}. During commissioning, you need to bring your phone close to the device. The controller then sends your network credentials to your device over Bluetooth. Once that is done, the device communicates over its native interface: Wi-Fi or Thread.
-Although your Home Assistant server might have a Bluetooth adapter on board that the controller can use to commission devices, we choose not to utilize that adapter. Mainly to prevent issues with the built-in Bluetooth integration but also because it makes more sense to bring your mobile devices close to the Matter device you'd like to commission.
+Although your Home Assistant server might have a Bluetooth adapter on board that the controller can use to {% term commission %} devices, Home Assistant does not utilize that adapter. Mainly to prevent issues with the built-in Bluetooth integration but also because it is easier to bring your mobile devices close to the Matter device than bringing the device near your server.
## Multi fabric: join to multiple controllers
@@ -84,7 +70,7 @@ For devices where Home Assistant provides a native integration (with local API),

-Image taken from [this excellent article by The Verge](https://www.theverge.com/23165855/thread-smart-home-protocol-matter-apple-google-interview) about Matter that shows the landscape of Matter, Thread, Border routers and bridges in a nice visualized way.
+Image taken from [this excellent article by The Verge](https://www.theverge.com/23165855/thread-smart-home-protocol-matter-apple-google-interview) about Matter that shows the landscape of Matter, {% term Thread %}, Border routers and bridges in a nice visualized way.
{% include integrations/config_flow.md %}
@@ -98,69 +84,160 @@ If you run Home Assistant in a container, you can run a Docker image of the [Mat
Running Matter on a Home Assistant Core installation is not supported.
-## Adding Matter devices to Home Assistant
+## Adding a Matter device to Home Assistant
-Each Matter network is called a fabric. Each home automation controller that controls Matter devices has its own "fabric". You can add devices directly to the fabric of your Home Assistant instance, or share them from another fabric (ie Google, Apple) to Home Assistant's fabric. We're going to explore all these options below.
+Each Matter network is called a fabric. Each home automation controller that controls Matter devices has its own "fabric". You can add devices directly to the fabric of your Home Assistant instance, or share them from another fabric (for example from Google or Apple) to Home Assistant's fabric. We're going to explore all these options below.
-### Add a device using the iOS Companion app
+Note: The section below mentions third-party Thread border routers such as the Nest Hub v2 or the HomePod Mini. This doesnβt mean you have to add your devices to these ecosystems. Home Assistant only uses them to access the Thread radio network. The communication between the Home Assistant Matter controller and your Matter devices is encrypted. The Thread border router passes the data along. It cannot read its content.
-This will use the Bluetooth connection of your phone to add the device.
+### Prerequisites
+
+- Make sure you have the latest version of Home Assistant installed.
+- On the device packaging, check for both the Matter logo and for either the Wi-Fi or the {% term Thread %} logo.
+- Check if the QR code is only on the packaging or if it is also on the device.
+ - If it is only on the packaging, snap a picture of the QR code and the device and store the image and the numerical code in a save place.
+ - If you lose the QR code and disconnect the device at some point, you won't be able to connect to that device again without the QR code.
+- If you are adding a Wi-Fi-based Matter device: Matter devices often use the 2.4 GHz frequency for Wi-Fi. For this reason, make sure your phone is in the same 2.4 GHz network where you want to operate your devices.
+- In Home Assistant, have the Matter integration installed.
+ - Go to {% my integrations title="**Settings** > **Devices & services**" %}.
+ - Add the **Matter (BETA)** integration.
+ - When prompted to **Select the connection method**:
+ - If you run Home Assistant OS in a regular setup: select **Submit**.
+ - This will install the official Matter server add-on.
+ - If you are already running the Matter server in another add-on, in or a custom container:
+ - Deselect the checkbox, then select **Submit**.
+ - In the next step, provide the URL to your Matter server.
+- Have either an Android or iPhone ready and Bluetooth enabled. For information why Bluetooth is required, refer to the section on [Bluetooth used during commissioning](#bluetooth-used-during-commissioning):
+ - Android:
+ - Have an Android phone (a full Android, not F-Droid).
+ - Have the latest version of the Home Assistant Companion app installed.
+ - Have Google Home app installed on the Android.
+ - We are not going to add the new device to Google Home. The app is needed because Google included the Matter SDK there.
+ - If you are using {% term Thread %}: Make sure there is a Thread border router device (Nest Hub v2 or Nest Wi-Fi Pro) present in your home network.
+ - iPhone
+ - Have the iOS version 16 or higher
+ - Have the latest version of the Home Assistant Companion app installed.
+ - If you are using {% term Thread %}: Make sure there is a Thread border router device (HomePod Mini or V2, Apple TV 4K) present in your home network.
+- Make sure the device is in close range of the border router and your phone.
+
+### To add a new device using the iOS Companion app
+
+This guide describes how to add a new device. This will use the Bluetooth connection of your phone to add the device.
1. Open The Home Assistant app on your phone.
-2. Go to {% my integrations title="**Settings** > **Devices & Services**" %}.
-3. On the **Devices** tab, press the **Add device** button.
-4. Choose **Add Matter device** at the top of the list.
-5. Scan the QR-code of the Matter device with your phone camera or press **More options...** to manually enter the Commission code.
-6. Select the **Add to Home Assistant** button which will start the commissioning process which may take up to a few minutes.
-7. If you're adding a test board or beta device, you might get a prompt about an "Uncertified Accessory". In this dialog, select **Add Anyway**.
-8. Once prompted, you can enter a custom **Accessory Name**, this is just an internal reference and not visible in Home Assistant. You can type whatever you like here.
-9. Once the process is complete and you pressed the **Done** button, you are redirected to the device within Home Assistant. It is ready for use.
+2. Go to {% my integrations title="**Settings** > **Devices & services**" %}.
+3. On the **Devices** tab, select the **Add device** button.
+4. Select **Add Matter device**.
+5. Scan the QR-code of the Matter device with your phone camera or select **More options...** to manually enter the Commission code.
+6. Select **Add to Home Assistant**.
+ - This starts the commissioning process which may take a few minutes.
+7. If you're adding a test board or beta device, you might get a prompt about an **Uncertified Accessory**. In this dialog, select **Add Anyway**.
+8. If prompted, enter a custom **Accessory Name**.
+ - You can type whatever you like here.
+ - This is an internal reference for iOS. It won't be visible in Home Assistant.
+ - After entering a name, select **Continue**.
+9. Once the process is complete, select **Done**.
+ - You are now redirected to the device page within Home Assistant. It is ready for use.
-
If you experience an error message like `Failed to connect due to exception: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed`, then turn on `Advanced options` and set [Broker certificate validation](/integrations/mqtt/#broker-certificate-validation) to `Auto`.
-
### Advanced broker configuration
@@ -298,16 +296,16 @@ support_url:
'act_tpl': 'action_template',
'atype': 'automation_type',
'aux_cmd_t': 'aux_command_topic',
- 'aux_stat_tpl': 'aux_state_template',
'aux_stat_t': 'aux_state_topic',
+ 'aux_stat_tpl': 'aux_state_template',
'av_tones': 'available_tones',
'avty': 'availability',
'avty_mode': 'availability_mode',
'avty_t': 'availability_topic',
'avty_tpl': 'availability_template',
'away_mode_cmd_t': 'away_mode_command_topic',
- 'away_mode_stat_tpl': 'away_mode_state_template',
'away_mode_stat_t': 'away_mode_state_topic',
+ 'away_mode_stat_tpl': 'away_mode_state_template',
'b_tpl': 'blue_template',
'bri_cmd_t': 'brightness_command_topic',
'bri_cmd_tpl': 'brightness_command_template',
@@ -344,6 +342,7 @@ support_url:
'ent_cat': 'entity_category',
'ent_pic': 'entity_picture',
'evt_typ': 'event_types',
+ 'exp_aft': 'expire_after',
'fanspd_lst': 'fan_speed_list',
'flsh_tlng': 'flash_time_long',
'flsh_tsht': 'flash_time_short',
@@ -353,11 +352,10 @@ support_url:
'fx_stat_t': 'effect_state_topic',
'fx_tpl': 'effect_template',
'fx_val_tpl': 'effect_value_template',
- 'exp_aft': 'expire_after',
- 'fan_mode_cmd_tpl': 'fan_mode_command_template',
'fan_mode_cmd_t': 'fan_mode_command_topic',
- 'fan_mode_stat_tpl': 'fan_mode_state_template',
+ 'fan_mode_cmd_tpl': 'fan_mode_command_template',
'fan_mode_stat_t': 'fan_mode_state_topic',
+ 'fan_mode_stat_tpl': 'fan_mode_state_template',
'frc_upd': 'force_update',
'g_tpl': 'green_template',
'hs_cmd_t': 'hs_command_topic',
@@ -380,18 +378,18 @@ support_url:
'lrst_t': 'last_reset_topic',
'lrst_val_tpl': 'last_reset_value_template',
'max': 'max',
- 'min': 'min',
- 'max_mirs': 'max_mireds',
- 'min_mirs': 'min_mireds',
- 'max_temp': 'max_temp',
- 'min_temp': 'min_temp',
'max_hum': 'max_humidity',
+ 'max_mirs': 'max_mireds',
+ 'max_temp': 'max_temp',
+ 'min': 'min',
'min_hum': 'min_humidity',
+ 'min_mirs': 'min_mireds',
+ 'min_temp': 'min_temp',
'mode': 'mode',
- 'mode_cmd_tpl': 'mode_command_template',
'mode_cmd_t': 'mode_command_topic',
- 'mode_stat_tpl': 'mode_state_template',
+ 'mode_cmd_tpl': 'mode_command_template',
'mode_stat_t': 'mode_state_topic',
+ 'mode_stat_tpl': 'mode_state_template',
'modes': 'modes',
'name': 'name',
'o': 'origin',
@@ -408,25 +406,22 @@ support_url:
'pct_cmd_tpl': 'percentage_command_template',
'pct_stat_t': 'percentage_state_topic',
'pct_val_tpl': 'percentage_value_template',
- 'ptrn': 'pattern',
'pl': 'payload',
'pl_arm_away': 'payload_arm_away',
- 'pl_arm_home': 'payload_arm_home',
'pl_arm_custom_b': 'payload_arm_custom_bypass',
+ 'pl_arm_home': 'payload_arm_home',
'pl_arm_nite': 'payload_arm_night',
'pl_arm_vacation': 'payload_arm_vacation',
- 'pl_prs': 'payload_press',
- 'pl_rst': 'payload_reset',
'pl_avail': 'payload_available',
'pl_cln_sp': 'payload_clean_spot',
'pl_cls': 'payload_close',
- 'pl_disarm': 'payload_disarm',
'pl_dir_fwd': 'payload_direction_forward',
'pl_dir_rev': 'payload_direction_reverse',
+ 'pl_disarm': 'payload_disarm',
'pl_home': 'payload_home',
'pl_inst': 'payload_install',
- 'pl_lock': 'payload_lock',
'pl_loc': 'payload_locate',
+ 'pl_lock': 'payload_lock',
'pl_not_avail': 'payload_not_available',
'pl_not_home': 'payload_not_home',
'pl_off': 'payload_off',
@@ -437,11 +432,16 @@ support_url:
'pl_paus': 'payload_pause',
'pl_stop': 'payload_stop',
'pl_strt': 'payload_start',
+ 'pl_prs': 'payload_press',
'pl_ret': 'payload_return_to_base',
+ 'pl_rst': 'payload_reset',
'pl_rst_hum': 'payload_reset_humidity',
'pl_rst_mode': 'payload_reset_mode',
'pl_rst_pct': 'payload_reset_percentage',
'pl_rst_pr_mode': 'payload_reset_preset_mode',
+ 'pl_stop': 'payload_stop',
+ 'pl_stpa': 'payload_start_pause',
+ 'pl_strt': 'payload_start',
'pl_toff': 'payload_turn_off',
'pl_ton': 'payload_turn_on',
'pl_trig': 'payload_trigger',
@@ -454,6 +454,7 @@ support_url:
'pr_mode_stat_t': 'preset_mode_state_topic',
'pr_mode_val_tpl': 'preset_mode_value_template',
'pr_modes': 'preset_modes',
+ 'ptrn': 'pattern',
'r_tpl': 'red_template',
'rel_s': 'release_summary',
'rel_u': 'release_url',
@@ -473,26 +474,26 @@ support_url:
'send_cmd_t': 'send_command_topic',
'send_if_off': 'send_if_off',
'set_fan_spd_t': 'set_fan_speed_topic',
- 'set_pos_tpl': 'set_position_template',
'set_pos_t': 'set_position_topic',
+ 'set_pos_tpl': 'set_position_template',
'pos_t': 'position_topic',
'pos_tpl': 'position_template',
'spd_rng_min': 'speed_range_min',
'spd_rng_max': 'speed_range_max',
'src_type': 'source_type',
'stat_cla': 'state_class',
- 'stat_clsd': 'state_closed',
'stat_closing': 'state_closing',
+ 'stat_clsd': 'state_closed',
'stat_jam': 'state_jammed',
+ 'stat_locked': 'state_locked',
+ 'stat_locking': 'state_locking',
'stat_off': 'state_off',
'stat_on': 'state_on',
'stat_open': 'state_open',
'stat_opening': 'state_opening',
'stat_stopped': 'state_stopped',
- 'stat_locked': 'state_locked',
- 'stat_locking': 'state_locking',
'stat_unlocked': 'state_unlocked',
- 'stat_unlocking': 'state_unlocking',
+ 'stat_unlocking': 'state_unlocking',
'stat_t': 'state_topic',
'stat_tpl': 'state_template',
'stat_val_tpl': 'state_value_template',
@@ -503,22 +504,23 @@ support_url:
'sup_dur': 'support_duration',
'sup_vol': 'support_volume_set',
'sup_feat': 'supported_features',
- 'swing_mode_cmd_tpl': 'swing_mode_command_template',
'swing_mode_cmd_t': 'swing_mode_command_topic',
- 'swing_mode_stat_tpl': 'swing_mode_state_template',
+ 'swing_mode_cmd_tpl': 'swing_mode_command_template',
'swing_mode_stat_t': 'swing_mode_state_topic',
- 'temp_cmd_tpl': 'temperature_command_template',
+ 'swing_mode_stat_tpl': 'swing_mode_state_template',
+ 't': 'topic',
'temp_cmd_t': 'temperature_command_topic',
- 'temp_hi_cmd_tpl': 'temperature_high_command_template',
+ 'temp_cmd_tpl': 'temperature_command_template',
'temp_hi_cmd_t': 'temperature_high_command_topic',
- 'temp_hi_stat_tpl': 'temperature_high_state_template',
+ 'temp_hi_cmd_tpl': 'temperature_high_command_template',
'temp_hi_stat_t': 'temperature_high_state_topic',
- 'temp_lo_cmd_tpl': 'temperature_low_command_template',
+ 'temp_hi_stat_tpl': 'temperature_high_state_template',
'temp_lo_cmd_t': 'temperature_low_command_topic',
- 'temp_lo_stat_tpl': 'temperature_low_state_template',
+ 'temp_lo_cmd_tpl': 'temperature_low_command_template',
'temp_lo_stat_t': 'temperature_low_state_topic',
- 'temp_stat_tpl': 'temperature_state_template',
+ 'temp_lo_stat_tpl': 'temperature_low_state_template',
'temp_stat_t': 'temperature_state_topic',
+ 'temp_stat_tpl': 'temperature_state_template',
'temp_unit': 'temperature_unit',
'tilt_clsd_val': 'tilt_closed_value',
'tilt_cmd_t': 'tilt_command_topic',
@@ -530,7 +532,6 @@ support_url:
'tilt_status_t': 'tilt_status_topic',
'tilt_status_tpl': 'tilt_status_template',
'tit': 'title',
- 't': 'topic',
'uniq_id': 'unique_id',
'unit_of_meas': 'unit_of_measurement',
'url_t': 'url_topic',
@@ -682,7 +683,7 @@ The following software has built-in support for MQTT discovery:
- [HASS.Agent](https://github.com/LAB02-Research/HASS.Agent)
- [IOTLink](https://iotlink.gitlab.io) (starting with 2.0.0)
- [MiFlora MQTT Daemon](https://github.com/ThomDietrich/miflora-mqtt-daemon)
-- [MyElectricalData](https://github.com/MyElectricalData/myelectricaldata#english)
+- [MyElectricalData](https://github.com/MyElectricalData/myelectricaldata_import#english)
- [Nuki Hub](https://github.com/technyon/nuki_hub)
- [Nuki Smart Lock 3.0 Pro](https://support.nuki.io/hc/articles/12947926779409-MQTT-support), [more info](https://developer.nuki.io/t/mqtt-api-specification-v1-3/17626)
- [OpenMQTTGateway](https://github.com/1technophile/OpenMQTTGateway)
@@ -708,7 +709,8 @@ A motion detection device which can be represented by a [binary sensor](/integra
- Configuration topic: `homeassistant/binary_sensor/garden/config`
- State topic: `homeassistant/binary_sensor/garden/state`
-- Configuration payload with derived device name:
+- Configuration payload with derived device name:
+
```json
{
"name":null,
@@ -723,11 +725,13 @@ A motion detection device which can be represented by a [binary sensor](/integra
}
}
```
+
- Retain: The -r switch is added to retain the configuration topic in the broker. Without this, the sensor will not be available after Home Assistant restarts.
It is also a good idea to add a `unique_id` to allow changes to the entity and a `device` mapping so we can group all sensors of a device together. We can set "name" to `null` if we want to inherit the device name for the entity. If we set an entity name, the `friendly_name` will be a combination of the device and entity name. If `name` is left away and a `device_class` is set, the entity name part will be derived from the `device_class`.
- Example configuration payload with no name set and derived `device_class` name:
+
```json
{
"name":null,
@@ -770,7 +774,8 @@ For more details please refer to the [MQTT testing section](/integrations/mqtt/#
Setting up a sensor with multiple measurement values requires multiple consecutive configuration topic submissions.
- Configuration topic no1: `homeassistant/sensor/sensorBedroomT/config`
-- Configuration payload no1:
+- Configuration payload no1:
+
```json
{
"device_class":"temperature",
@@ -780,14 +785,23 @@ Setting up a sensor with multiple measurement values requires multiple consecuti
"unique_id":"temp01ae",
"device":{
"identifiers":[
- "bedroom01ae"
+ "bedroom01ae"
],
- "name":"Bedroom"
+ "name":"Bedroom",
+ "manufacturer": "Example sensors Ltd.",
+ "model": "K9",
+ "serial_number": "12AE3010545",
+ "hw_version": "1.01a",
+ "sw_version": "2024.1.0",
+ "configuration_url": "https://example.com/sensor_portal/config"
}
}
+
```
+
- Configuration topic no2: `homeassistant/sensor/sensorBedroomH/config`
-- Configuration payload no2:
+- Configuration payload no2:
+
```json
{
"device_class":"humidity",
@@ -798,12 +812,19 @@ Setting up a sensor with multiple measurement values requires multiple consecuti
"device":{
"identifiers":[
"bedroom01ae"
- ],
- "name":"Bedroom"
+ ]
}
}
```
-- Common state payload:
+
+The sensor [`identifiers` or `connections`](/integrations/sensor.mqtt/#device) option allows to set up multiple entities that share the same device.
+
+
+If a device configuration is shared, then it is not needed to add all device details to the other entity configs. It is enough to add shared identifiers or connections to the device mapping for the other entity config payloads.
+
+
+A common state payload that can be parsed with the `value_template` in the sensor configs:
+
```json
{
"temperature":23.20,
@@ -819,6 +840,7 @@ Setting up a light, switch etc. is similar but requires a `command_topic` as men
- State topic: `homeassistant/switch/irrigation/state`
- Command topic: `homeassistant/switch/irrigation/set`
- Payload:
+
```json
{
"name":"Irrigation",
@@ -833,6 +855,7 @@ Setting up a light, switch etc. is similar but requires a `command_topic` as men
}
}
```
+
- Retain: The -r switch is added to retain the configuration topic in the broker. Without this, the sensor will not be available after Home Assistant restarts.
```bash
@@ -853,7 +876,8 @@ Setting up a switch using topic prefix and abbreviated configuration variable na
- Configuration topic: `homeassistant/switch/irrigation/config`
- Command topic: `homeassistant/switch/irrigation/set`
- State topic: `homeassistant/switch/irrigation/state`
-- Configuration payload:
+- Configuration payload:
+
```json
{
"~":"homeassistant/switch/irrigation",
diff --git a/source/_integrations/nest.markdown b/source/_integrations/nest.markdown
index 511ae508cf4..dd3fb8e3072 100644
--- a/source/_integrations/nest.markdown
+++ b/source/_integrations/nest.markdown
@@ -42,6 +42,12 @@ The Nest Smart Device Management (SDM) API **requires a US$5 fee**. Before buyin
+
+
+The Google Nest integration uses a Cloud Pub/Sub subscription with a 15-minute retention period by default. The Google Cloud Pub/Sub billing changes, effective June 30, 2024, do not apply. The billing changes only apply to subscriptions with a 24-hour retention period. See the [Pub/Sub console](https://console.cloud.google.com/cloudpubsub/subscription/list) to view your subscriptions if you previously created one manually.
+
+
+
-
-The Legacy [Works with Nest](https://developers.nest.com/) API is deprecated, and will be shut down by Google in September 2023.
-
-
+- *Not receiving camera motion and person events*: assuming the integration is correctly configured (for example, the oauth and SDM API are set up correctly, you can see camera streams, and permissions are correctly set in [Partner Connections Manager](https://nestservices.google.com/partnerconnections)): If you are then still not seeing events, it's possible you need to adjust the Google Home App settings. Refer to the [Google Home App Notification Settings](#google-home-app-notification-settings) for details.
diff --git a/source/_integrations/nsw_rural_fire_service_feed.markdown b/source/_integrations/nsw_rural_fire_service_feed.markdown
index f8676a0e175..19882a14db0 100644
--- a/source/_integrations/nsw_rural_fire_service_feed.markdown
+++ b/source/_integrations/nsw_rural_fire_service_feed.markdown
@@ -25,7 +25,7 @@ Entities are generated, updated and removed automatically with each update from
diff --git a/source/_integrations/qbittorrent.markdown b/source/_integrations/qbittorrent.markdown
index aa2368dc10a..64cb4547f13 100644
--- a/source/_integrations/qbittorrent.markdown
+++ b/source/_integrations/qbittorrent.markdown
@@ -8,8 +8,8 @@ ha_config_flow: true
ha_iot_class: Local Polling
ha_domain: qbittorrent
ha_codeowners:
- - '@geoffreylagaisse'
- - '@finder39'
+ - "@geoffreylagaisse"
+ - "@finder39"
ha_platforms:
- sensor
ha_integration_type: service
@@ -34,25 +34,3 @@ The qBittorrent integration will add the following sensors:
- `sensor.qbittorrent_active_torrents`: The current active torrents in qBittorrent.
- `sensor.qbittorrent_inactive_torrents`: The current inactive torrents in qBittorrent.
- `sensor.qbittorrent_paused_torrents`: The current paused torrents in qBittorrent.
-
-## Services
-
-### Service `qbittorrent.get_torrents`
-
-This service populates [Response Data](/docs/scripts/service-calls#use-templates-to-handle-response-data)
-with a dictionary of torrents based on the provided filter.
-
-| Service data attribute | Optional | Description | Example |
-| ---------------------- | -------- | ----------- | --------|
-| `filter` | no | The type of torrents you want in the response | all, active, inactive, paused, downloading, seeding
-
-
-
-```yaml
-service: qbittorrent.get_torrents
-data:
- filter: 'all'
-response_variable: torrents
-```
-
-The response data contains the field `torrent_info` which contains a dictionary of torrents. The name of the torrents are the keys.
diff --git a/source/_integrations/rainmachine.markdown b/source/_integrations/rainmachine.markdown
index 0352f24fc38..65b22f72570 100644
--- a/source/_integrations/rainmachine.markdown
+++ b/source/_integrations/rainmachine.markdown
@@ -39,7 +39,7 @@ Note that some entities are disabled by default. If you are missing a sensor or
{% include integrations/config_flow.md %}
-## Configuaration Options
+## Configuration Options
The integration has two configuration options:
diff --git a/source/_integrations/refoss.markdown b/source/_integrations/refoss.markdown
index ba6218585fb..38dd516ed3d 100644
--- a/source/_integrations/refoss.markdown
+++ b/source/_integrations/refoss.markdown
@@ -26,6 +26,10 @@ Integrate Refoss devices into Home Assistant.
- The integration will occupy port: 9989.
{% include integrations/config_flow.md %}
+### Supported device model
+
+- Refoss Smart Wi-Fi Switch, R10
+
### Discover device
- After integrating Refoss, it will start socket broadcast and Home Assistant will automatically discover Refoss devices under the current LAN.
diff --git a/source/_integrations/reolink.markdown b/source/_integrations/reolink.markdown
index 73d38d30225..2075aa46f20 100644
--- a/source/_integrations/reolink.markdown
+++ b/source/_integrations/reolink.markdown
@@ -62,7 +62,7 @@ The latency for receiving the events is the best for ONVIF push and the worst fo
For redundancy, these sensors are polled every 60 seconds together with the update of all other entities.
Not all camera models generate ONVIF push events for all event types, some binary sensors might, therefore, only be polled.
For list of Reolink products that support ONVIF see the [Reolink Support Site](https://support.reolink.com/hc/en-us/articles/900000617826).
-To ensure you have the best latency possible, refer to the [Reducing latency of motion events](#Reducing_latency_of_motion_events) section.
+To ensure you have the best latency possible, refer to the [Reducing latency of motion events](#reducing-latency-of-motion-events) section.
## Asterisk (*) next to entities listed in this documentation
@@ -245,6 +245,7 @@ The following models have been tested and confirmed to work:
- [RLC-810A](https://reolink.com/product/rlc-810a/)
- [RLC-810WA](https://reolink.com/product/rlc-810wa/)
- [RLC-811A](https://reolink.com/product/rlc-811a/)
+- [RLC-81MA](https://reolink.com/product/rlc-81ma/)
- [RLC-81PA](https://reolink.com/product/rlc-81pa/)
- [RLC-820A](https://reolink.com/product/rlc-820a/)
- [RLC-822A](https://reolink.com/product/rlc-822a/)
diff --git a/source/_integrations/roborock.markdown b/source/_integrations/roborock.markdown
index 87900867f6c..2aae2c83906 100644
--- a/source/_integrations/roborock.markdown
+++ b/source/_integrations/roborock.markdown
@@ -34,7 +34,7 @@ ha_integration_type: integration
The Roborock integration allows you to control your [Roborock](https://us.roborock.com/pages/robot-vacuum-cleaner) vacuum while using the Roborock app.
-This integration requires a cloud connection to set up the device, but it communicates with the device entirely over your home network.
+This integration requires a continuous cloud connection while using the device. However, excluding map data, communication between the integration and the device is conducted locally.
Once you log in with your Roborock account, the integration will automatically discover your Roborock devices and get the needed information to communicate locally with them. Please ensure your Home Assistant instance can communicate with the local IP of your device. We recommend setting a static IP for your Roborock Vacuum to help prevent future issues. The device communicates on port 58867. Depending on your firewall, you may need to allow communication from Home Assistant to your vacuum on that port.
diff --git a/source/_integrations/scene.mqtt.markdown b/source/_integrations/scene.mqtt.markdown
index f180f4a07c2..cb15888dfcf 100644
--- a/source/_integrations/scene.mqtt.markdown
+++ b/source/_integrations/scene.mqtt.markdown
@@ -120,7 +120,6 @@ entity_category:
description: The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity.
required: false
type: string
- default: None
encoding:
description: The encoding of the published messages.
required: false
diff --git a/source/_integrations/schedule.markdown b/source/_integrations/schedule.markdown
index 1ad04a09f4b..b4db6426991 100644
--- a/source/_integrations/schedule.markdown
+++ b/source/_integrations/schedule.markdown
@@ -101,6 +101,23 @@ automations and templates.
| Attribute | Description |
| ----- | ----- |
| `next_event` | A datetime object containing the next time the schedule is going to change state. |
+
+### Automation example
+
+A schedule creates an on/off (schedule) sensor within the times set. Using the thermostat schedule example above, you can turn on your thermostat:
+
+```yaml
+trigger:
+ - platform: state
+ entity_id:
+ - schedule.thermostat_schedule
+ to: "on"
+ action:
+ - service: climate.turn_on
+ target:
+ entity_id: climate.thermostat
+```
+
### Services
Available service: `schedule.reload`.
diff --git a/source/_integrations/select.mqtt.markdown b/source/_integrations/select.mqtt.markdown
index fae4c67c4a7..ea7271dbf5e 100644
--- a/source/_integrations/select.mqtt.markdown
+++ b/source/_integrations/select.mqtt.markdown
@@ -133,7 +133,6 @@ entity_category:
description: The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity.
required: false
type: string
- default: None
icon:
description: "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
required: false
diff --git a/source/_integrations/sensor.mqtt.markdown b/source/_integrations/sensor.mqtt.markdown
index a336d7a5bc0..499bb17e3d5 100644
--- a/source/_integrations/sensor.mqtt.markdown
+++ b/source/_integrations/sensor.mqtt.markdown
@@ -110,10 +110,8 @@ device:
type: string
device_class:
description: The [type/class](/integrations/sensor/#device-class) of the sensor to set the icon in the frontend. The `device_class` can be `null`.
- default: None
required: false
type: device_class
- default: None
enabled_by_default:
description: Flag which defines if the entity should be enabled when first added.
required: false
@@ -128,7 +126,6 @@ entity_category:
description: The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity. When set, the entity category must be `diagnostic` for sensors.
required: false
type: string
- default: None
expire_after:
description: If set, it defines the number of seconds after the sensor's state expires, if it's not updated. After expiry, the sensor's state becomes `unavailable`. Default the sensors state never expires.
required: false
@@ -187,10 +184,8 @@ state_class:
description: The [state_class](https://developers.home-assistant.io/docs/core/entity/sensor#available-state-classes) of the sensor.
required: false
type: string
- default: None
state_topic:
description: The MQTT topic subscribed to receive sensor values. If `device_class`, `state_class`, `unit_of_measurement` or `suggested_display_precision` is set, and a numeric value is expected, an empty value `''` will be ignored and will not update the state, a `'null'` value will set the sensor to an `unknown` state. The `device_class` can be `null`.
- default: None
required: true
type: string
unique_id:
@@ -199,7 +194,6 @@ unique_id:
type: string
unit_of_measurement:
description: Defines the units of measurement of the sensor, if any. The `unit_of_measurement` can be `null`.
- default: None
required: false
type: string
value_template:
diff --git a/source/_integrations/sensor.rest.markdown b/source/_integrations/sensor.rest.markdown
index 7a224533802..3e0368918e8 100644
--- a/source/_integrations/sensor.rest.markdown
+++ b/source/_integrations/sensor.rest.markdown
@@ -423,12 +423,12 @@ rest:
sensor:
- name: "Steam Temp"
- value_template: "{{ json_value['response']['temp0'] | regex_findall_index('([0-9]+)XF') }}"
+ value_template: "{{ value_json['response']['temp0'] | regex_findall_index('([0-9]+)XF') }}"
unit_of_measurement: "Β°F"
steam_time_remaining:
- name: "Steam Time Remaining"
- value_template: "{{ json_value['response']['time0'] }}"
+ value_template: "{{ value_json['response']['time0'] }}"
unit_of_measurement: "minutes"
rest_command:
diff --git a/source/_integrations/shelly.markdown b/source/_integrations/shelly.markdown
index 5768905e2b5..967b8ac257f 100644
--- a/source/_integrations/shelly.markdown
+++ b/source/_integrations/shelly.markdown
@@ -51,7 +51,7 @@ There are three generations of devices and all generations are supported by this
Generation 1 devices use the `CoIoT` protocol to communicate with the integration. `CoIoT` must be enabled in the device settings. Navigate to the local IP address of your Shelly device, **Internet & Security** > **ADVANCED - DEVELOPER SETTINGS** and check the box **Enable CoIoT**.
-We recommend using `unicast` for communication. To enable this, enter the local IP address of the Home Assistant server and port `5683` into the **CoIoT peer** field and push **SAVE** button. **This is mandatory for battery operated devices**. After changing the **CoIoT peer**, the Shelly device needs to be manually restarted.
+We recommend using `unicast` for communication. To enable this, enter the local IP address of the Home Assistant server and port `5683` into the **CoIoT peer** field and push **SAVE** button. **This is mandatory for battery operated devices** (even if USB connected). After changing the **CoIoT peer**, the Shelly device needs to be manually restarted.
Home Assistant will display a repair issue for the Shelly device if push updates from this device do not reach the Home Assistant server.
@@ -66,9 +66,10 @@ The list below will help you diagnose and fix the problem:
## Shelly device configuration (generation 2 and 3)
-Generation 2 and 3 devices use the `RPC` protocol to communicate with the integration. **Battery powered devices** need manual outbound WebSocket configuration, Navigate to the local IP address of your Shelly device, **Settings** >> **Connectivity** >> **Outbound WebSocket** and check the box **Enable Outbound WebSocket**, under server enter the following address:
+Generation 2 and 3 devices use the `RPC` protocol to communicate with the integration. **Battery operated devices** (even if USB connected) need manual outbound WebSocket configuration, Navigate to the local IP address of your Shelly device, **Settings** >> **Connectivity** >> **Outbound WebSocket** and check the box **Enable Outbound WebSocket**, under server enter the following address:
`ws://` + `Home_Assistant_local_ip_address:Port` + `/api/shelly/ws` (for example: `ws://192.168.1.100:8123/api/shelly/ws`), click **Apply** to save the settings.
+In case your installation is set up to use SSL encryption (HTTP**S** with certificate), an additional `s` needs to be added to the WebSocket protocol, too, so that it reads `wss://` (for example: `wss://192.168.1.100:8123/api/shelly/ws`).
Integration is communicating directly with the device; cloud connection is not needed.
@@ -309,8 +310,15 @@ Please check from the device Web UI that the configured server is reachable.
## Known issues and limitations
-- Only supports firmware 1.11 and later for generation 1 devices
+- Only supports firmware 1.9 and later for generation 1 devices
- Only supports firmware 1.0 and later for generation 2 devices
+- The following generation 1 devices only support firmware 1.11 and later (due to incompatible API):
+ - Shelly DUO
+ - Shelly Bulb RGBW
+ - Shelly Dimmer
+ - Shelly Dimmer 2
+ - Shelly RGBW2
+ - Shelly Vintage
- Generation 1 "Shelly 4Pro" and "Shelly Sense" are not supported (devices based on old CoAP v1 protocol)
- Before set up, battery-powered devices must be woken up by pressing the button on the device.
- For battery-powered devices, the `update` platform entities only inform about the availability of firmware updates but are not able to trigger the update process.
diff --git a/source/_integrations/siren.mqtt.markdown b/source/_integrations/siren.mqtt.markdown
index 609ed22294e..38a1877ea46 100644
--- a/source/_integrations/siren.mqtt.markdown
+++ b/source/_integrations/siren.mqtt.markdown
@@ -144,7 +144,6 @@ entity_category:
description: The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity.
required: false
type: string
- default: None
icon:
description: "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
required: false
diff --git a/source/_integrations/solax.markdown b/source/_integrations/solax.markdown
index a0ef45d337d..c148a7d2a2d 100644
--- a/source/_integrations/solax.markdown
+++ b/source/_integrations/solax.markdown
@@ -39,6 +39,14 @@ template:
{% endraw %}
+### Configuring the Energy Dashboard
+
+There are generally at least 3 sensors from your inverter that you need to configure in the energy dashboard:
+
+- The consumption sensor (in kWh) for the **Grid Consumption**.
+- The feed-in sensor (in kWh) for the **Return to grid**, for example, the solar panel energy you do not consume and return to the grid instead.
+- The on-grid yield sensor (in kWh) for the **Solar production**.
+
### Note
Inverter models with newer firmware (and also those using devices like PocketWifi) no longer expose an API when connected to your wireless network, they do however continue to expose it on their own broadcasted SSID. To use this sensor in this case it is necessary to set up a reverse proxy with something like NGINX and use a Raspberry Pi (or similar) with two network connections (one being Wi-Fi that connects to the inverters SSID).
diff --git a/source/_integrations/spotify.markdown b/source/_integrations/spotify.markdown
index 06a864c5b16..71f561e9c99 100644
--- a/source/_integrations/spotify.markdown
+++ b/source/_integrations/spotify.markdown
@@ -107,7 +107,7 @@ This integration supports multiple Spotify accounts at once. You don't need to
create another Spotify application in the Spotify Developer Portal.
Multiple Spotify accounts can be linked to a _single_ Spotify application.
-You will have to add those accounts into the **Users and Access** section of
+You will have to add those accounts into the **User Management** section of
your application in the Spotify Developer Portal.
To add an additional Spotify account to Home Assistant, go to the Spotify
@@ -121,7 +121,8 @@ To play media Spotify first needs a device selected for audio output known as th
```yaml
# Example code to select an AV receiver as the output device
service: media_player.select_source
-entity_id: media_player.spotify
+target:
+ entity_id: media_player.spotify
data:
source: "Denon AVR-X2000"
```
diff --git a/source/_integrations/supla.markdown b/source/_integrations/supla.markdown
index 2e5fd22416b..219bf135504 100644
--- a/source/_integrations/supla.markdown
+++ b/source/_integrations/supla.markdown
@@ -23,7 +23,7 @@ Currently, only covers (shutters in SUPLA's terminology), gates, garage doors, a
Right now, it's impossible to add a device -- all of them are discovered from SUPLA-CLOUD's servers or yours.
-Devices disabled on SUPLA-CLOUD will not be loaded into Home Assistant.
+For more complete Home Assistant support based on MQTT autodiscovery, consider switching your Supla devices to MQTT (through the setup interface). Or use the MQTT broker provided by [Supla Cloud] (https://cloud.supla.org/integrations/mqtt-broker).
## Configuration
diff --git a/source/_integrations/swiss_public_transport.markdown b/source/_integrations/swiss_public_transport.markdown
index e336347dad1..34e51932911 100644
--- a/source/_integrations/swiss_public_transport.markdown
+++ b/source/_integrations/swiss_public_transport.markdown
@@ -15,9 +15,9 @@ ha_platforms:
ha_integration_type: integration
---
-The `swiss_public_transport` sensor will give you the next three departure times from a given location to another one in Switzerland.
+The Swiss public transport integration will give you the next three departure times from a given location to another one in Switzerland.
-The [Swiss public transport API](https://transport.opendata.ch/) only allows 1000 requests per 24 hours.
+The [Swiss public transport API](https://transport.opendata.ch/) only allows 1000 requests per 24 hours. The default polling rate is set to `90s`, which is just enough for one connection polling continuously. If more entries are needed, consider [defining a custom polling interval](#defining-a-custom-polling-interval) to reduce the amount of requests.
The [Stationboard](https://transport.opendata.ch/examples/stationboard.html) website can help to determine the exact name of the start and the end station.
@@ -40,3 +40,7 @@ name:
{% endconfiguration %}
The public timetables are coming from [Swiss public transport](https://transport.opendata.ch/).
+
+### Defining a custom polling interval
+
+{% include common-tasks/define_custom_polling.md %}
diff --git a/source/_integrations/switch.mqtt.markdown b/source/_integrations/switch.mqtt.markdown
index 29fdbded48c..09f382a7426 100644
--- a/source/_integrations/switch.mqtt.markdown
+++ b/source/_integrations/switch.mqtt.markdown
@@ -121,7 +121,6 @@ device_class:
description: The [type/class](/integrations/switch/#device-class) of the switch to set the icon in the frontend. The `device_class` can be `null`.
required: false
type: device_class
- default: None
enabled_by_default:
description: Flag which defines if the entity should be enabled when first added.
required: false
@@ -136,7 +135,6 @@ entity_category:
description: The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity.
required: false
type: string
- default: None
icon:
description: "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
required: false
diff --git a/source/_integrations/systemmonitor.markdown b/source/_integrations/systemmonitor.markdown
index 28df2a87e01..f59380b4aa3 100644
--- a/source/_integrations/systemmonitor.markdown
+++ b/source/_integrations/systemmonitor.markdown
@@ -76,4 +76,4 @@ tmpfs 934M 0 934M 0% /dev/shm
- If no hardware sensor data is available (e.g., because the integration runs in a virtualized environment), the sensor entity will not be created.
- The unit of measurement (Celsius vs. Fahrenheit) will be chosen based on the system configuration.
-- Only the very first processor related hardware sensor is read, i.e., no individual core temperatures (even if the hardware sensor could provide that level of detail).
+- Only the very first processor related hardware sensor is read, i.e. no individual core temperatures are available (even if the hardware sensor provides that level of detail).
diff --git a/source/_integrations/tessie.markdown b/source/_integrations/tessie.markdown
index d3632a6b7fd..3ce23a4d394 100644
--- a/source/_integrations/tessie.markdown
+++ b/source/_integrations/tessie.markdown
@@ -44,37 +44,29 @@ You must have a [Tessie](https://my.tessie.com/) account and [access token](http
## Entities
+### Binary sensor
-### Binary Sensor
+The integration will create binary sensor entities for a variety of metrics related to your vehicles:
-The integration will create binary sensor entities for a variety of metrics that relate to your vehicles:
+#### Charge state
-#### Charge State
+- Battery charging
+- Battery heater
+- Preconditioning enabled
+- Scheduled charging enabled
+- Trip charging enabled
-- Battery Heater
-- Battery Charing
-- Charge cable
-- Preconditioning Enabled
-- Scheduled Charging Enabled
-- Trip Charging Enabled
+#### Climate state
-#### Climate State
+- Auto seat climate left
+- Auto seat climate right
+- Auto steering Wheel climate
+- Overheat protection enabled
+- Overheat protection running
-- Auto Seat Climate Left
-- Auto Seat Climate Right
-- Auto Steering Wheel Climate
-- Overheat Protection Enabled
-- Overheat Protection Running
+#### Vehicle state
-#### Vehicle State
-
-- Dashcam Recording
-- User Present
-- Tire Pressure Warning Front Left
-- Tire Pressure Warning Front Right
-- Tire Pressure Warning Rear Left
-- Tire Pressure Warning Rear Right
-- Front driver door
+- Dashcam recording
- Front driver window
- Front passenger door
- Front passenger window
@@ -82,26 +74,30 @@ The integration will create binary sensor entities for a variety of metrics that
- Rear driver window
- Rear passenger door
- Rear passenger window
-
+- Tire pressure warning front left
+- Tire pressure warning front right
+- Tire pressure warning rear left
+- Tire pressure warning rear right
+- User present
### Button
-The integration will create button entities to control various aspects of the vehicle.
+The integration will create button entities to control various aspects of the vehicle:
-- Wake
- Flash lights
-- Honk horn
- Homelink
+- Honk horn
- Keyless driving
- Play fart
+- Wake
### Climate
The integration will create a climate entity to control the vehicle's climate control system. This entity can:
+- Change the driver's set temperature
+- Change to one of the three keep modes: Keep, Dog, and Camp
- Turn on and off
-- Change the drivers set temperature
-- Change to one of the three keep modes: Keep, Dog, and Climate
The passenger set temperature is shown as a sensor but cannot be changed by Tessie.
@@ -109,14 +105,14 @@ The passenger set temperature is shown as a sensor but cannot be changed by Tess
The integration will create a cover entity to control various aspects of your vehicles:
-- Vent/Closing windows
-- Open/Closing charge port
-- Open frunk
- Open/Close trunk
+- Open/Close charge port
+- Open frunk
+- Vent/Closing windows
-### Device Tracker
+### Device tracker
-The integration will create device tracker entities for the vehicles current location, and navigation destination.
+The integration will create device tracker entities for the vehicle's current location and navigation destination.
### Lock
@@ -124,7 +120,7 @@ The integration will create a lock entity for each vehicle and for the charge ca
### Media Player
-The integration will create media player entities to show what each vehicles is currently playing.
+The integration will create media player entities to show what each vehicle is currently playing.
### Number
@@ -138,55 +134,54 @@ The integration will create number entities to control:
The integration will create a select entity to control each of the seat heaters. It allows you to set each seat heater to Off, Low, Medium, or High.
-- Front Left
-- Front Right
-- Rear Left (if installed)
-- Rear Center (if installed)
-- Rear Right (if installed)
-- Third Row Left (if installed)
-- Third Row Right (if installed)
+- Front left
+- Front right
+- Rear center (if installed)
+- Rear left (if installed)
+- Rear right (if installed)
+- Third row left (if installed)
+- Third row right (if installed)
### Sensor
-The integration will create sensor entities for a variety of metrics that relate to your vehicles:
+The integration will create sensor entities for a variety of metrics related to your vehicles:
-#### Vehicle State
+#### Charge state
-- Online
-- Odometer
-- Tire Pressure Front Left
-- Tire Pressure Front Right
-- Tire Pressure Rear Left
-- Tire Pressure Rear Right
+- Battery level
+- Battery range
+- Charge energy added
+- Charge rate
+- Charger current
+- Charger power
+- Charger voltage
-#### Charge State
+#### Climate state
-- Battery Level
-- Change Energy Added
-- Change Power
-- Charge Voltage
-- Charger Current
-- Change Rate
-- Battery Range
-- Time to full charge
+- Driver temperature setting
+- Inside temperature
+- Outside temperature
+- Passenger temperature setting
-#### Drive State
+#### Drive state
-- Speed
-- Power
-- Shift State
-- Traffic delay
-- State of charge at arrival
-- Distance to arrival
-- Time to arrival
- Destination
+- Distance to arrival
+- Power
+- Shift state
+- Speed
+- State of charge at arrival
+- Time to arrival
+- Traffic delay
-#### Climate State
+#### Vehicle state
-- Inside Temperature
-- Outside Temperature
-- Driver Temperature Setting
-- Passenger Temperature Setting
+- Odometer
+- Online
+- Tire pressure front left
+- Tire pressure front right
+- Tire pressure rear left
+- Tire pressure rear right
### Switch
@@ -195,8 +190,8 @@ The integration will create switch entities to control various aspects of your v
- Charge
- Defrost mode
- Sentry mode
-- Valet mode
- Steering wheel heater
+- Valet mode
### Update
diff --git a/source/_integrations/text.mqtt.markdown b/source/_integrations/text.mqtt.markdown
index d60f413acf7..06c8b0a8a20 100644
--- a/source/_integrations/text.mqtt.markdown
+++ b/source/_integrations/text.mqtt.markdown
@@ -129,7 +129,6 @@ entity_category:
description: The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity.
required: false
type: string
- default: None
json_attributes_template:
description: "Defines a [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) to extract the JSON dictionary from messages received on the `json_attributes_topic`."
required: false
diff --git a/source/_integrations/thread.markdown b/source/_integrations/thread.markdown
index 45bd10d434a..052019044cf 100644
--- a/source/_integrations/thread.markdown
+++ b/source/_integrations/thread.markdown
@@ -14,30 +14,165 @@ ha_platforms:
ha_zeroconf: true
---
-The Thread integration helps you track the different Thread networks in your home and helps you manage their credentials. It is currently a work in progress.
+The Thread integration helps you track the different Thread networks in your home and store the Thread network credentials (similar to a Wi-Fi password). The Thread integration in Home Assistant is currently still a work in progress.
-Thread-based consumer devices use one of the two Home Automation standards: Matter or HomeKit. To add a thread-based device to Home Assistant, use the respective Home Assistant integration:
+You do not need to install this integration. The Thread integration shows up automatically when Home Assistant detects a [border router](#about-thread-border-routers).
-| Logo | Home Assistant integration |
-| :-------------------------------------------------------------------------: | :--------------------------------:|
-|

| [Matter](/integrations/Matter/) |
-|

| [HomeKit](/integrations/homekit_controller/) |
+## Logos on Thread-based smart home devices
+If you have a Thread-based consumer device, you will typically see a Thread logo on the packaging.
-## Thread — A communication protocol
+

-Thread is a low-power mesh networking standard that allows users to connect their devices within a home network. Thread allows devices to communicate with each other without the need for a central controller. This makes it ideal for home automation, where a large number of devices may need to be connected. Thread uses the same RF technology as Zigbee but provides IP connectivity similar to Wi-Fi. Unlike Zigbee, Thread does not allow to control devices directly: It is just a communication protocol. A higher-level protocol, such as Matter or HomeKit, is required to control Thread-enabled devices. To see which home automation standard is supported by your device, check the icon on the packaging.
+The "Built on Thread: requires border router" logo means Thread is the only supported network protocol for this device. You cannot use Wi-Fi to communicate with this device.
-## TBRs connect Thread network to Home Assistant
+In addition, you will see a {% term Matter %} or Apple HomeKit logo on the packaging.
-To connect a Thread network to Home Assistant, Thread border routers (TBRs) are used. TBRs are devices that bridge the Thread network to a local Wi-Fi or Ethernet network. To add a TBR to Home Assistant, you can use our [Home Assistant Yellow](/yellow/) hub or the [Home Assistant SkyConnect](/skyconnect/) Zigbee/Thread stick.
+{% term Matter %} and Apple HomeKit are smart home protocols. They are responsible for handling the Thread credentials and connecting your Thread device to the Thread network. A smart home protocol is needed to control your device. Both home automation standards are supported natively by Home Assistant.
-Home Assistant communicates with TBRs over the local network. This means that TBRs do not have to be physically attached to Home Assistant to be used. You might already have a TBR as part of other products in your home, like a Google Nest Hub Gen 2 or Apple HomePod Mini.
+## Adding a Thread-based device to Home Assistant
-### Vendor specific Thread networks
+How a Thread-based device is added to Home Assistant depends on the home automation standard it uses.
-Each vendor forms their own network when you start using their products, so you can end up having a Home Assistant, an Apple, and a Google Thread network in your home. These are all separate networks using different credentials, which prevents devices from roaming between TBRs.
+1. If you see the {% term Matter %} logo on your device packaging, follow the procedure [adding a Matter device to Home Assistant](/integrations/matter/#adding-a-matter-device-to-home-assistant).
-It is possible to align credentials for TBRs from different vendors and have them form a single network together. This allows you to freely move devices between rooms without losing connectivity. To do this, you need to make sure that all TBRs use the same credentials. Currently, this works differently for each TBR vendor.
+

-Home Assistant will sync the Thread credentials with Google when starting to commission a Matter device via the Home Assistant Companion app. For other vendors, if the vendor allows you to see the operational dataset in TLV format, you can import it to Home Assistant from the Thread panel.
+2. If you see the Apple HomeKit logo on your device packaging, follow the procedure [adding a HomeKit device to Home Assistant](/integrations/homekit_controller/#adding-a-homekit-device-through-thread).
+
+

+
+## About Thread
+
+This section introduces the terms *Thread* and *border router* and lists border routers that are supported by Home Assistant.
+
+### A communication protocol for IoT devices
+
+Thread is a low-power mesh networking standard for IoT devices. The low-power aspect is important for battery-powered smart home devices. However, it's also low-bandwidth, making it ideal for applications that don't send a lot of data, like switches or motion sensors.
+
+Thread uses the same
RF technology as Zigbee (IEEE 802.15.4) but provides IP connectivity similar to Wi-Fi. Unlike Zigbee, Thread by itself does not allow controlling devices: It is just a communication protocol. To control the Thread devices, a higher-level protocol is required: {% term Matter %} or Apple HomeKit. Thread devices use the IPv6 standard to communicate both inside and outside the mesh network.
+
+### About Thread border routers
+
+The devices use Thread border routers to communicate outside the mesh with any IPv6-capable device. A Thread border router is connected to your network either via Wi-Fi or Ethernet and uses its
RF radio to communicate with the Thread mesh network. The
TBR routes packets between your local network and the Thread mesh. It does not look at the content of these packets, it just forwards them.
+
+Often, Thread border routing is only an auxiliary functionality of a smart home device. For example, the Nest Hub (2nd gen) is a smart display, a Google Home controller, and a Chromecast target, but also has a Thread border router included.
+
+Unlike other protocols, Thread can use multiple border routers in a single network. This increases wireless coverage and reduces the risk of a single point of failure. Ideal for home automation, with a potentially large number of devices spread over a large area.
+
+OpenThread is an open source implementation of Thread, originally released by Google. Almost all commercially available Thread border routers are based on the open source implementation. However, the configuration of
TBRs is not part of the Thread standard. This means that Google and Apple
TBRs implementation setup and configured by their respective ecosystems.
+
+While Home Assistant can *use* any border router, it can *configure* and *control* only OpenThread border routers built with the REST API available in the open source implementation. The OpenThread Border Router add-on (as well as the OpenThread Border Router bundled in the experimental Silicon Labs Multiprotocol add-on) are built from this open source OpenThread code and have the REST API enabled.
+
+### List of Thread border router devices
+
+Currently, the following
TBR devices are known to work with Home Assistant.
+These border routers may require an iPhone or Android phone for onboarding. What the exact requirements are, depends on the home automation protocol ({% term Matter %} or Apple HomeKit) that your devices are using. Before buying a border router, check the prerequisites in the corresponding procedures:
+
+- [Adding a Matter device to Home Assistant](/integrations/matter/#adding-a-matter-device-to-home-assistant)
+- [Adding an Apple HomeKit device through Thread](/integrations/homekit_controller/#adding-a-homekit-device-through-thread)
+
+#### Home Assistant
+
+The Thread support on these devices is in experimental state. Out of the box, they run Zigbee, not Thread.
+
+- [Home Assistant Yellow](/yellow/). Follow this procedure to [enable Thread on Yellow](https://yellow.home-assistant.io/procedures/enable-thread/).
+- [Home Assistant SkyConnect](/skyconnect/) USB stick. Follow this procedure to [enable Thread on SkyConnect](https://skyconnect.home-assistant.io/procedures/enable-thread/).
+
+#### Google
+
+- **Displays**: Nest Hub (2nd gen), Nest Hub Max
+- **Wi-Fi routers**: Nest Wifi Pro (Wi-Fi 6E), Nest Wifi
+
+#### Apple
+
+- **Speakers**: HomePod (2nd generation), HomePod mini
+- **TVs**: Apple TV 4K (3rd generation) Wi-Fi + Ethernet, Apple TV 4K (2nd generation)
+
+#### Others
+
+There are also other companies that provide devices with border router capability, such as Nanoleaf or Amazon.
+
+## Understanding the Thread configuration page
+
+This section explains why you might see multiple networks on the Thread configuration page and what this means for your network.
+
+### About different Thread networks
+
+Today, each vendor forms their own Thread network when you start using their products. This means you can end up having a Home Assistant, an Apple, and a Google Thread network in your home. The Thread configuration panel lists all Thread border routers and groups them by the Thread network.
+
+
+The Thread configuration page shows three vendor-specific Thread networks.
+
+
+These are all separate networks using different credentials. This means devices can't roam between the Thread networks.
+
+The

icon indicates that Home Assistant has the credentials for that network. In this case, only the credentials of the `home assistant` network are known.
+
+Home Assistant discovers all Thread border routers in your network because they send mDNS/DNS-SD announcements. These local announcements don't contain the network credentials. That's why you see the network there, but not the credentials.
+
+#### About the preferred network
+
+The intention of the **Preferred network** in Home Assistant is that it will be used as the default network when adding Threadβ»based devices.
+
+
+
+The **preferred network** function isn't completely implemented yet. In particular, when adding {% term Matter %} devices through the companion apps, the preferred network of the mobile device is being used.
+
+
+
+#### Making a network your preferred network
+
+You can only set a Thread network as preferred if the credentials are known.
+
+1. To import Thread credentials, you need your Android and iOS companion app.
+2. On your companion app, navigate to the Thread configuration page.
+ - You should see an **Import credentials** button in the lower right corner.
+
+

+
+ - Importing the credentials allows a Google- or Apple-created Thread network to be the preferred network of Home Assistant.
+

+
+#### Using Home Assistant as a
TBR without setting up another vendor's TBR first
+
+This scenario currently only works in one particular case, under the following conditions:
+
+- Make sure there are no other Thread networks set up:
+ - For example: Make sure you do not have any Google
TBRs set up yet (otherwise the Google
TBR will be the preferred Thread network, and Android APIs do not allow to change that currently).
+- You have the OpenThread Border Router add-on installed. If you have the experimental Silicon Labs Multiprotocol add-on installed, we recommend migrating to the pure Thread firmware, as especially Thread traffic appears to cause stability issues. For instructions on how to enable/migrate to a dedicated Thread setup on SkyConnect or Yellow, refer to the following guides:
+ - [Enabling Thread on SkyConnect](https://skyconnect.home-assistant.io/procedures/enable-thread/)
+ - [Enabling Thread on Yellow](https://yellow.home-assistant.io/procedures/enable-thread/)
+- You have an Android phone and the Home Assistant Companion App. (Note: this does not work with the iOS Companion App).
+- The devices you want to add to the network support {% term Matter %}. For instructions on how to add Thread-based {% term Matter %} devices, refer to the section [Adding a Matter device to Home Assistant](/integrations/matter/#adding-a-matter-device-to-home-assistant)
+
+Which TBRs are supported mostly depends on (access to) the Thread credentials. And Thread credentials are required during on-boarding/commissioning, which is part of the smart home protocol.
+
+### Combining Thread networks
+
+In the current implementation, having multiple
TBRs from different vendors results in separate networks using different credentials. This prevents devices from roaming between the Thread networks. In theory, it would be better to join all Thread networks into a single network to increase the size of the mesh network. A dense mesh network should lead to better
RF coverage and better link quality, which lowers transmission latencies, making communication faster.
+
+
+
+Currently, combining Thread networks seems to lead to instabilities. Therefore, we do not recommend combining networks in production just yet. This is especially true for our OpenThread Border Router in combination with Google or Apple Thread networks.
+
+
+
+## Related topics
+
+### Related hardware
+
+- [Home Assistant Yellow](/yellow/) hub
+- [Home Assistant SkyConnect](/skyconnect/) Zigbee/Thread USB stick
+
+### Related integrations for smart home standards
+
+- [Matter](/integrations/matter/)
+- [HomeKit](/integrations/homekit_controller/)
+
+### Related guides
+
+- [Adding a Matter device to Home Assistant](/integrations/matter/#adding-a-matter-device-to-home-assistant)
+- [Adding an Apple HomeKit device through Thread](/integrations/homekit_controller/#adding-a-homekit-device-through-thread)
+- [Enabling Thread on SkyConnect](https://skyconnect.home-assistant.io/procedures/enable-thread/)
+- [Enabling Thread on Yellow](https://yellow.home-assistant.io/procedures/enable-thread/)
\ No newline at end of file
diff --git a/source/_integrations/transmission.markdown b/source/_integrations/transmission.markdown
index 81cfaa1d6ae..71551d120a6 100644
--- a/source/_integrations/transmission.markdown
+++ b/source/_integrations/transmission.markdown
@@ -63,8 +63,8 @@ Example of an automation that notifies on successful download and removes the to
```yaml
- alias: "Notify and remove completed torrent"
trigger:
- platform: event
- event_type: transmission_downloaded_torrent
+ - platform: event
+ event_type: transmission_downloaded_torrent
action:
- service: notify.telegram_notifier
data:
diff --git a/source/_integrations/unifi.markdown b/source/_integrations/unifi.markdown
index ed2c4ba69c8..64bbe58f4a7 100644
--- a/source/_integrations/unifi.markdown
+++ b/source/_integrations/unifi.markdown
@@ -78,7 +78,7 @@ Provides QR Code images that can be scanned to easily join a specific WLAN. Enti
## Presence detection
-This platform allows you to detect presence by looking at devices connected to a [Ubiquiti](https://ui.com/) [UniFi Network](https://ui.com/consoles) application. By default devices are marked as away 300 seconds after they were last seen.
+This platform allows you to detect presence by looking at devices connected to a [Ubiquiti](https://ui.com/) [UniFi Network](https://ui.com/cloud-gateways) application. By default devices are marked as away 300 seconds after they were last seen.
### Troubleshooting and Time Synchronization
diff --git a/source/_integrations/unifiprotect.markdown b/source/_integrations/unifiprotect.markdown
index 63357f48574..664685f6c99 100644
--- a/source/_integrations/unifiprotect.markdown
+++ b/source/_integrations/unifiprotect.markdown
@@ -287,7 +287,7 @@ The default settings on the stream integration will give you a 5-15+ second dela
### Cannot play audio to speakers
-Unlike with many other things, playing audio to your speakers requires your Home Assistant to be able to reach your camera directly. Specifically via port `tcp/7004`. You can [enable debug logging](#enabling-debug-logging) and it will output the full FFmpeg command that will be run and the output from FFmpeg to help you troubleshoot why audio is not playing to the device.
+Unlike with many other things, playing audio to your speakers requires your Home Assistant to be able to reach your camera directly. Specifically via port `tcp/7004`. You can [enable debug logging](/docs/configuration/troubleshooting/#enabling-debug-logging) and it will output the full FFmpeg command that will be run and the output from FFmpeg to help you troubleshoot why audio is not playing to the device.
### Liveview options for viewer missing options or out of date
diff --git a/source/_integrations/upcloud.markdown b/source/_integrations/upcloud.markdown
index a2a6bc91dee..19ea4a6ac88 100644
--- a/source/_integrations/upcloud.markdown
+++ b/source/_integrations/upcloud.markdown
@@ -17,7 +17,7 @@ ha_platforms:
ha_integration_type: integration
---
-The **Upcloud** {% term integration %} allows you to access the information about your [UpCloud](https://upcloud.com/) servers from Home Assistant.
+The **UpCloud** {% term integration %} allows you to access the information about your [UpCloud](https://upcloud.com/) servers from Home Assistant.
There is currently support for the following device types within Home Assistant:
diff --git a/source/_integrations/update.mqtt.markdown b/source/_integrations/update.mqtt.markdown
index d4724ad9743..fbc6b890617 100644
--- a/source/_integrations/update.mqtt.markdown
+++ b/source/_integrations/update.mqtt.markdown
@@ -114,10 +114,8 @@ device:
type: string
device_class:
description: The [type/class](/integrations/update/#device-classes) of the update to set the icon in the frontend. The `device_class` can be `null`.
- default: None
required: false
type: device_class
- default: None
enabled_by_default:
description: Flag which defines if the entity should be enabled when first added.
required: false
@@ -132,7 +130,6 @@ entity_category:
description: The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity.
required: false
type: string
- default: None
entity_picture:
description: "Picture URL for the entity."
required: false
diff --git a/source/_integrations/vacuum.mqtt.markdown b/source/_integrations/vacuum.mqtt.markdown
index 9c209178b13..1a902f5a6f1 100644
--- a/source/_integrations/vacuum.mqtt.markdown
+++ b/source/_integrations/vacuum.mqtt.markdown
@@ -189,7 +189,7 @@ set_fan_speed_topic:
required: false
type: string
state_topic:
- description: "The MQTT topic subscribed to receive state messages from the vacuum. Messages received on the `state_topic` must be a valid JSON dictionary, with a mandatory `state` key and optionally `battery_level` and `fan_speed` keys as shown in the [example](#state-mqtt-protocol)."
+ description: "The MQTT topic subscribed to receive state messages from the vacuum. Messages received on the `state_topic` must be a valid JSON dictionary, with a mandatory `state` key and optionally `battery_level` and `fan_speed` keys as shown in the [example](#configuration-example)."
required: false
type: string
supported_features:
diff --git a/source/_integrations/valve.mqtt.markdown b/source/_integrations/valve.mqtt.markdown
index e6f9e10102a..5c546886b98 100644
--- a/source/_integrations/valve.mqtt.markdown
+++ b/source/_integrations/valve.mqtt.markdown
@@ -152,7 +152,6 @@ device:
type: string
device_class:
description: Sets the [class of the device](/integrations/valve/), changing the device state and icon that is displayed on the frontend. The `device_class` can be `null`.
- default: None
required: false
type: string
enabled_by_default:
@@ -169,7 +168,6 @@ entity_category:
description: "The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity."
required: false
type: string
- default: None
icon:
description: "[Icon](/docs/configuration/customizing-devices/#icon) for the entity."
required: false
diff --git a/source/_integrations/vicare.markdown b/source/_integrations/vicare.markdown
index bdd639d6bbf..43b5a2d53c9 100644
--- a/source/_integrations/vicare.markdown
+++ b/source/_integrations/vicare.markdown
@@ -34,17 +34,16 @@ There is currently support for the following device types within Home Assistant:
{% include integrations/config_flow.md %}
-Set `username`and `password` to your Viessmann Developer Portal login credentials.
-The required Client ID can be obtained as follows:
-1. Register and login in the [Viessmann Developer Portal](https://developer.viessmann.com). Use the same account as the one you registered your device with in ViCare.
-2. In the menu navigate to API Keys.
-3. Create a new OAuth client using the following data:
- ```txt
- Name: PyViCare
- Google reCAPTCHA: Disabled
- Redirect URIs: vicare://oauth-callback/everest
- ```
-4. Copy the Client ID from the Viessmann portal and enter this in the API Key field in Home Assistant.
+Use your ViCare app login credentials for *username* and *password*.
+
+The required *client ID* can be obtained from the [Viessmann Developer Portal](https://app.developer.viessmann.com/):
+1. Log in with **your existing ViCare app username and password**.
+2. On the developer dashboard, select **Add** in the **Clients** section.
+3. Create a new client using the following data:
+ - Name: `HomeAssistant`
+ - Google reCAPTCHA: Disabled
+ - Redirect URIs: `vicare://oauth-callback/everest`
+4. Find the **Client ID** in the **Clients** section on the developer dashboard.
The `heating_type` can either be `auto` to automatically find the most suitable type for your device or one of `gas`, `oil`, `pellets`, `heatpump`, `fuelcell`, `hybrid`.
diff --git a/source/_integrations/water_heater.mqtt.markdown b/source/_integrations/water_heater.mqtt.markdown
index 2ab3f29ac6e..c7d81b811af 100644
--- a/source/_integrations/water_heater.mqtt.markdown
+++ b/source/_integrations/water_heater.mqtt.markdown
@@ -130,7 +130,6 @@ entity_category:
description: The [category](https://developers.home-assistant.io/docs/core/entity#generic-properties) of the entity.
required: false
type: string
- default: None
initial:
description: Set the initial target temperature. The default value depends on the temperature unit, and will be 43.3Β°C or 110Β°F.
required: false
diff --git a/source/_integrations/yalexs_ble.markdown b/source/_integrations/yalexs_ble.markdown
index c4e1702ad36..669b4c4f710 100644
--- a/source/_integrations/yalexs_ble.markdown
+++ b/source/_integrations/yalexs_ble.markdown
@@ -37,6 +37,7 @@ Devices must have a Yale Access module installed to function with this {% term i
- YRD420 (Yale Assure Lock 2)
- YRD450 (Yale Assure Lock 2 Key Free)
- YUR/SSDL/1/SIL (Yale Unity Screen Door Lock - Australia)
+- YUR/DEL/1/SIL (Yale Unity Entrance Lock - Australia)
- IES-D210W-G0 (Yale Smart Safe)
- YRSM-1 (Yale Smart Safe)
- ASL-05 (August WiFi Smart Lock - Gen 4)
diff --git a/source/_integrations/yardian.markdown b/source/_integrations/yardian.markdown
index fd987dff22a..5e227b1fc4f 100644
--- a/source/_integrations/yardian.markdown
+++ b/source/_integrations/yardian.markdown
@@ -19,7 +19,7 @@ The **Yardian** {% term integration %} allows you to control your [Yardian Smart
There is currently support for the following platform within Home Assistant:
-- [Switch](#switch) - Allows you to view the status of zones and control them.
+- Switch - Allows you to view the status of zones and control them.
{% include integrations/config_flow.md %}
diff --git a/source/_integrations/zha.markdown b/source/_integrations/zha.markdown
index 4b3af046294..482339e0f1b 100644
--- a/source/_integrations/zha.markdown
+++ b/source/_integrations/zha.markdown
@@ -423,22 +423,22 @@ In practice, you will likely need to add a lot more Zigbee router devices than i
## Binding and unbinding
-ZHA support for binding and unbinding. Binding is an action in Zigbee which defines relations between two Zigbee devices, specific endpoints, and cluster id. It provides a mechanism for attaching an endpoint on one Zigbee node to one or more endpoints on another Zigbee node or Zigbee group (a group of Zigbee devices).
+ZHA supports binding and unbinding. Binding is an action in Zigbee which defines relations between two Zigbee devices, specific endpoints, and cluster id. It provides a mechanism for attaching an endpoint on one Zigbee node to one or more endpoints on another Zigbee node or Zigbee group (a group of Zigbee devices).
Binding is a "target destination" in form of a device address or group ID, endpoint, and cluster. For example, binding a Zigbee device like a remote to a Zigbee lightbulb, switch or group of lightbulbs allows direct control of the "target" device (light, switch, shade) from the "remote" Zigbee device, bypassing ZHA. This means that the remote can control the lightbulb/group of lightbulbs even when the Zigbee coordinator is not available.
-Binding is only supported between the same cluster, for example, "output cluster id 6" (on/off cluster) of a remote, can be only bound to an "input cluster id 6" on the target device -- light, switch.
+Binding is only supported within the same cluster, for example, "output cluster id 6" (on/off cluster) of a remote, can be only bound to an "input cluster id 6" on the target device -- light, switch.
-Note that not all devices support binding as it depends on the Zigbee implementation of the device itself. Also, by default ZHA bind remotes to the coordinator, so the coordinator could receive ZCL commands from the remotes and originate zha_events. However, some remotes, for example, the Philips RWL021 can only be bound to a single destination and it is not possible to make this switch to bind to other destinations like a device or groups unless you first unbind the remote from the coordinator. After you unbind the remote from the ZHA coordinator you can then bind it directly to any other Zigbee device or a group.
+Note that not all devices support binding as it depends on the Zigbee implementation of the device itself. Also, by default ZHA binds remotes to the coordinator, so the coordinator can receive ZCL commands from the remotes and originate zha_events. However, some remotes, for example, the Philips RWL021 can only be bound to a single destination and it is not possible to make this switch to bind to other destinations like a device or groups unless you first unbind the remote from the coordinator. After you unbind the remote from the ZHA coordinator you can then bind it directly to any other Zigbee device or a group.
Binding a remote directly to a bulb or group has the benefit of faster response time and smoother control. This greatly improves user feedback experience functions like dimming as the remote then directly dims the lightbulb and thus does not have to make the software roundtrip via the ZHA coordinator.
## Zigbee backup and restore in ZHA
-Zigbee Home Automation (ZHA) {% term integration %} now features Zigbee network backup, restore/recovery, and migrating between Zigbee coordinators. Backups are taken automatically however, a single backup to a file for easy download can also be manually created from the configuration page under Network Settings.
+Zigbee Home Automation (ZHA) {% term integration %} now features Zigbee network backup, restore/recovery, and migrating between Zigbee coordinators. Backups are taken automatically. However, a single backup to a file for easy download can also be manually created from the configuration page under Network Settings.
After restoring a Home Assistant backup, you can re-configure ZHA and migrate to a new Zigbee Coordinator adapter without any loss of your settings or devices that were connected. This is helpful if your current radio fails or a new radio adapter type and model comes out that you may want to migrate to.
-Within ZHA is possible to use this backup and restore feature to migrate between some different radio types, if the respective radio library supports it. Currently, ZHA supports migrating the Zigbee network between different Zigbee Coordinator adapters based on chips from Silicon Labs, Texas Instruments, or ConBee/RaspBee if the backup was made from inside ZHA.
+Within ZHA it is possible to use this backup and restore feature to migrate between some different radio types, if the respective radio library supports it. Currently, ZHA supports migrating the Zigbee network between different Zigbee Coordinator adapters based on chips from Silicon Labs, Texas Instruments, or ConBee/RaspBee if the backup was made from inside ZHA.
## Migrating to a new Zigbee coordinator adapter inside ZHA
@@ -614,13 +614,17 @@ LQI (Link Quality Index) values can be hard to interpret for Zigbee. This is bec
### Reporting issues
-When reporting issues, please provide the following information in addition to information requested by issue template:
+For more details on where and how to report issues, please refer to the [Reporting issues page](/help/reporting_issues/).
-1. Debug logs for the issue, see [debug logging](#debug-logging)
-2. Model of Zigbee radio being used
+When reporting potential bugs related to the ZHA integration on the issues trackers, please always provide the following ZHA/Zigbee-specific information in addition to the information requested by the standard issue template:
+
+1. Debug logs for the issue, see [debug logging](#debug-logging).
+2. Exact model and firmware of the Zigbee radio (Zigbee Coordinator adapter) being used.
3. If the issue is related to a specific Zigbee device, provide both the **Zigbee Device Signature** and the **Diagnostics** information.
- Both the **Zigbee Device Signature** and the **Diagnostics** information can be found under {% my integrations title="**Settings** > **Devices & Services**" %}. Select the **Zigbee Home Automation** integration. Then, select **Configure** > **Devices** (pick your device). Select **Zigbee Device Signature** and **Download Diagnostics**, respectively.
+Note: Please also make sure you give it your best effort to follow the recommended best practices for avoiding both [pairing/connection difficulties](#best-practices-to-avoid-pairingconnection-difficulties) and [Zigbee interference](#zigbee-interference-avoidance-and-network-rangecoverage-optimization), (which helps free up time for developers).
+
### Debug logging
To enable debug logging for the ZHA {% term integration %} and radio libraries, add the following [logger](/integrations/logger/) configuration to `configuration.yaml`:
diff --git a/source/_integrations/zwave_js.markdown b/source/_integrations/zwave_js.markdown
index 1c8f82fbc06..9e8e9e6f046 100644
--- a/source/_integrations/zwave_js.markdown
+++ b/source/_integrations/zwave_js.markdown
@@ -845,11 +845,13 @@ Names set in Home Assistant will not import into Z-Wave JS UI.
### Should I use `Secure Inclusion`?
-That depends. There are two generations of Z-Wave security, S0, and S2.
+That depends. There are two generations of Z-Wave encryption, Security S0, and Security S2. Both provide encryption and allow detecting packet corruption.
-S0 security imposes significant additional traffic on your mesh and is recommended only for devices that require security, such as door locks.
+Security S0 imposes significant additional traffic on your mesh and is recommended only for older devices that do not support Security S2 but require encryption to work, such as door locks.
-S2 security does not impose additional network traffic and provides additional benefits, such as detecting packet corruption. By default, Z-Wave attempts S2 security during inclusion if supported, falling back to S0 security only when necessary.
+Security S2 does not impose additional network traffic and provides additional benefits. For example, end devices using S2 require the hub to report whether it has received and understood their reports.
+
+By default, Z-Wave prefers Security S2, if supported. Security S0 is used only when absolutely necessary.
### Where can I see the security keys in the Z-Wave JS add-on?
diff --git a/source/_posts/2022-12-20-year-of-voice.markdown b/source/_posts/2022-12-20-year-of-voice.markdown
index 64504626685..195bf1979a2 100644
--- a/source/_posts/2022-12-20-year-of-voice.markdown
+++ b/source/_posts/2022-12-20-year-of-voice.markdown
@@ -9,6 +9,7 @@ author_twitter: balloob
comments: true
categories:
- Announcements
+- Assist
og_image: /images/blog/2022-12-20-year-of-voice/conversation.png
---
@@ -20,6 +21,7 @@ _**TL;DR**: It is our goal for 2023 to let users control Home Assistant in their
- [Year of the Voice - Chapter 2](/blog/2023/04/27/year-of-the-voice-chapter-2/) (April 27, 2023)
- [Year of the Voice - Chapter 3](/blog/2023/07/20/year-of-the-voice-chapter-3/) (July 20, 2023)
- [Year of the Voice - Chapter 4](/blog/2023/10/12/year-of-the-voice-chapter-4-wakewords/) (October 12, 2023)
+ - [Year of the Voice - Chapter 5](/blog/2023/12/13/year-of-the-voice-chapter-5/) (December 13, 2023)
diff --git a/source/_posts/2023-12-06-release-202312.markdown b/source/_posts/2023-12-06-release-202312.markdown
index f10b96fa52d..750f3a8b547 100644
--- a/source/_posts/2023-12-06-release-202312.markdown
+++ b/source/_posts/2023-12-06-release-202312.markdown
@@ -304,7 +304,7 @@ We welcome the following new integrations in this release:
[Devialet]: /integrations/devialet
[V2C]: /integrations/v2c
[Linear Garage Door]: /integrations/linear_garage_door
-[MyPermobil]: /integrations/mypermobil
+[MyPermobil]: /integrations/permobil
[OurGroceries]: /integrations/ourgroceries
## Integrations now available to set up from the UI
diff --git a/source/_posts/2024-01-03-release-20241.markdown b/source/_posts/2024-01-03-release-20241.markdown
index 46e8c6875e7..13c0cc350f1 100644
--- a/source/_posts/2024-01-03-release-20241.markdown
+++ b/source/_posts/2024-01-03-release-20241.markdown
@@ -51,6 +51,12 @@ Enjoy the release!
- [Other noteworthy changes](#other-noteworthy-changes)
- [New integrations](#new-integrations)
- [Integrations now available to set up from the UI](#integrations-now-available-to-set-up-from-the-ui)
+- [Release 2024.1.1 - January 5](#release-202411---january-5)
+- [Release 2024.1.2 - January 6](#release-202412---january-6)
+- [Release 2024.1.3 - January 12](#release-202413---january-12)
+- [Release 2024.1.4 - January 19](#release-202414---january-19)
+- [Release 2024.1.5 - January 20](#release-202415---january-20)
+- [Release 2024.1.6 - January 30](#release-202416---january-30)
- [Need help? Join the community!](#need-help-join-the-community)
- [Backward-incompatible changes](#backward-incompatible-changes)
- [All changes](#all-changes)
@@ -392,6 +398,396 @@ The following integrations are now available via the Home Assistant UI:
[System Monitor]: /integrations/systemmonitor
[Trend]: /integrations/trend
+## Release 2024.1.1 - January 5
+
+- Enable strict typing for airthings_ble ([@cdce8p] - [#106815])
+- Fix qBittorrent torrent count when empty ([@finder39] - [#106903])
+- Bump dropmqttapi to 1.0.2 ([@pfrazer] - [#106978])
+- bump openwebifpy to 4.0.3 ([@autinerd] - [#106593])
+- Close stale connections (Airthings BLE) ([@LaStrada] - [#106748])
+- Bump openwebifpy to 4.0.4 ([@autinerd] - [#107000])
+- Get Shelly RPC device `gen` from config entry data ([@bieniu] - [#107019])
+- Fix missing backwards compatiblity layer for humidifier supported_features ([@bdraco] - [#107026])
+- Use async_register in streamlabswater ([@joostlek] - [#107060])
+- Fix data access in streamlabs water ([@joostlek] - [#107062])
+- Fix mobile_app cloudhook creation ([@edenhaus] - [#107068])
+- Deduplicate handling of duplicated constants ([@emontnemery] - [#107074])
+- Fix missing backwards compatibility layer for water_heater supported_features ([@bdraco] - [#107091])
+- Bump habluetooth to 2.0.2 ([@bdraco] - [#107097])
+- Include deprecated constants in wildcard imports ([@emontnemery] - [#107114])
+- Update frontend to 20240104.0 ([@bramkragten] - [#107155])
+- Bump Orvibo to 1.1.2 ([@emericklaw] - [#107162])
+- Bump aiohomekit to 3.1.2 ([@bdraco] - [#107177])
+- Bump to PyTado 0.17.3 ([@erwindouna] - [#107181])
+- Fix switch states in AVM FRITZ!Box Tools ([@mib1185] - [#107183])
+- Hotfix cache logic bug in Tessie ([@Bre77] - [#107187])
+- Disable IPv6 in the opower integration to fix AEP utilities ([@tronikos] - [#107203])
+- Fix entity property cache creation arguments ([@ppetru] - [#107221])
+- Use supported_features_compat in update.install service ([@ludeeus] - [#107224])
+- Bump zwave-js-server-python to 0.55.3 ([@raman325] - [#107225])
+
+[#106593]: https://github.com/home-assistant/core/pull/106593
+[#106748]: https://github.com/home-assistant/core/pull/106748
+[#106815]: https://github.com/home-assistant/core/pull/106815
+[#106903]: https://github.com/home-assistant/core/pull/106903
+[#106970]: https://github.com/home-assistant/core/pull/106970
+[#106978]: https://github.com/home-assistant/core/pull/106978
+[#107000]: https://github.com/home-assistant/core/pull/107000
+[#107019]: https://github.com/home-assistant/core/pull/107019
+[#107026]: https://github.com/home-assistant/core/pull/107026
+[#107060]: https://github.com/home-assistant/core/pull/107060
+[#107062]: https://github.com/home-assistant/core/pull/107062
+[#107068]: https://github.com/home-assistant/core/pull/107068
+[#107074]: https://github.com/home-assistant/core/pull/107074
+[#107091]: https://github.com/home-assistant/core/pull/107091
+[#107097]: https://github.com/home-assistant/core/pull/107097
+[#107114]: https://github.com/home-assistant/core/pull/107114
+[#107155]: https://github.com/home-assistant/core/pull/107155
+[#107162]: https://github.com/home-assistant/core/pull/107162
+[#107177]: https://github.com/home-assistant/core/pull/107177
+[#107181]: https://github.com/home-assistant/core/pull/107181
+[#107183]: https://github.com/home-assistant/core/pull/107183
+[#107187]: https://github.com/home-assistant/core/pull/107187
+[#107203]: https://github.com/home-assistant/core/pull/107203
+[#107221]: https://github.com/home-assistant/core/pull/107221
+[#107224]: https://github.com/home-assistant/core/pull/107224
+[#107225]: https://github.com/home-assistant/core/pull/107225
+[@Bre77]: https://github.com/Bre77
+[@LaStrada]: https://github.com/LaStrada
+[@autinerd]: https://github.com/autinerd
+[@bdraco]: https://github.com/bdraco
+[@bieniu]: https://github.com/bieniu
+[@bramkragten]: https://github.com/bramkragten
+[@cdce8p]: https://github.com/cdce8p
+[@edenhaus]: https://github.com/edenhaus
+[@emericklaw]: https://github.com/emericklaw
+[@emontnemery]: https://github.com/emontnemery
+[@erwindouna]: https://github.com/erwindouna
+[@finder39]: https://github.com/finder39
+[@frenck]: https://github.com/frenck
+[@joostlek]: https://github.com/joostlek
+[@ludeeus]: https://github.com/ludeeus
+[@mib1185]: https://github.com/mib1185
+[@pfrazer]: https://github.com/pfrazer
+[@ppetru]: https://github.com/ppetru
+[@raman325]: https://github.com/raman325
+[@tronikos]: https://github.com/tronikos
+
+## Release 2024.1.2 - January 6
+
+- Fix support for play/pause functionality in System Bridge ([@timmo001] - [#103423])
+- Fix passing correct location id to streamlabs water ([@joostlek] - [#107291])
+- Fix Shelly missing Gen value for older devices ([@thecode] - [#107294])
+- enigma2: fix exception when device in deep sleep, fix previous track ([@autinerd] - [#107296])
+- Fix assertion error when unloading ZHA with pollable entities ([@dmulcahey] - [#107311])
+
+[#103423]: https://github.com/home-assistant/core/pull/103423
+[#106970]: https://github.com/home-assistant/core/pull/106970
+[#107239]: https://github.com/home-assistant/core/pull/107239
+[#107291]: https://github.com/home-assistant/core/pull/107291
+[#107294]: https://github.com/home-assistant/core/pull/107294
+[#107296]: https://github.com/home-assistant/core/pull/107296
+[#107311]: https://github.com/home-assistant/core/pull/107311
+[@autinerd]: https://github.com/autinerd
+[@dmulcahey]: https://github.com/dmulcahey
+[@frenck]: https://github.com/frenck
+[@joostlek]: https://github.com/joostlek
+[@thecode]: https://github.com/thecode
+[@timmo001]: https://github.com/timmo001
+
+## Release 2024.1.3 - January 12
+
+- Add diagnostics to A. O. Smith integration ([@bdr99] - [#106343])
+- Catch missing inverter in Enphase Envoy ([@catsmanac] - [#106730])
+- Prevent toggle from calling stop on covers which do not support it ([@vexofp] - [#106848])
+- Fix missing unique_id for spt integration ([@miaucl] - [#107087])
+- Add support for the Spotify DJ ([@BTMorton] - [#107268])
+- Fix evohome high_precision temps not retreived consistently ([@zxdavb] - [#107366])
+- Reduce polling rate in Blink ([@mkmer] - [#107386])
+- Fix KNX telegram device trigger not firing after integration reload ([@farmio] - [#107388])
+- Fix language flavors in holiday ([@gjohansson-ST] - [#107392])
+- Handle OSError during setup for System Monitor ([@gjohansson-ST] - [#107396])
+- Remove name from faa_delays ([@joostlek] - [#107418])
+- Fix Swiss public transport initial data for attributes ([@miaucl] - [#107452])
+- Fix reauth flow for Comelit VEDO ([@chemelli74] - [#107461])
+- Fix asyncio.gather call ([@cdce8p] - [#107500])
+- Fix Luftdaten sensor id string ([@mrueg] - [#107506])
+- Bump zm-py version to v0.5.3 for zoneminder ([@nabbi] - [#107331])
+- Retry zoneminder connection setup ([@nabbi] - [#107519])
+- Don't include position in binary valve attributes ([@emontnemery] - [#107531])
+- Bump blinkpy to 0.22.5 ([@mkmer] - [#107537])
+- Bump reolink_aio to 0.8.6 ([@starkillerOG] - [#107541])
+- Bump mcstatus to v11.1.1 ([@elmurato] - [#107546])
+- Bump aioshelly to 7.1.0 ([@thecode] - [#107593])
+- Fix Tado unique mobile device dispatcher ([@erwindouna] - [#107631])
+- Fix tplink_lte setup ([@cdce8p] - [#107642])
+- Prevent overriding cached attribute as property ([@emontnemery] - [#107657])
+- Set max and min temp for flexit_bacnet climate entity ([@lellky] - [#107665])
+- Fix duplicated resource issue in System Monitor ([@gjohansson-ST] - [#107671])
+- Fix invalid alexa climate or water_heater state report with double listed targetSetpoint ([@jbouwh] - [#107673])
+- Redact sensitive data in alexa debug logging ([@jbouwh] - [#107676])
+- Fix `device_class` type for Shelly Gen1 sleeping sensors ([@bieniu] - [#107683])
+- Clamp tplink color temp to valid range ([@bdraco] - [#107695])
+- Fix cloud tts loading ([@MartinHjelmare] - [#107714])
+- Allow configuration of min_gradient from UI to be negative in Trend ([@jpbede] - [#107720])
+- Bump aioswitcher to 3.4.1 ([@YogevBokobza] - [#107730])
+- Fix mqtt text text min max config params can not be equal ([@jbouwh] - [#107738])
+- Fix "not-logged" edge cases for Comelit VEDO ([@chemelli74] - [#107741])
+- Fix Mac address check in kef integration ([@eugenet8k] - [#107746])
+- Fix ld2410_ble not being able to setup because it has a stale connection ([@bdraco] - [#107754])
+- Bump pyunifiprotect to 4.23.1 ([@AngellusMortis] - [#107758])
+- Bump pyunifiprotect to 4.23.2 ([@AngellusMortis] - [#107769])
+- Rework events for UniFi Protect ([@AngellusMortis] - [#107771])
+- Fix switcher kis logging incorrect property for device's name ([@idofl] - [#107775])
+- Bump bluetooth deps ([@bdraco] - [#107816])
+- Fix Tailwind cover stuck in closing state ([@frenck] - [#107827])
+- Fix for exception in screenlogic.set_color_mode ([@dieselrabbit] - [#107850])
+- Bump aio_geojson_generic_client to 0.4 ([@exxamalte] - [#107866])
+
+[#106343]: https://github.com/home-assistant/core/pull/106343
+[#106730]: https://github.com/home-assistant/core/pull/106730
+[#106848]: https://github.com/home-assistant/core/pull/106848
+[#106970]: https://github.com/home-assistant/core/pull/106970
+[#107087]: https://github.com/home-assistant/core/pull/107087
+[#107239]: https://github.com/home-assistant/core/pull/107239
+[#107268]: https://github.com/home-assistant/core/pull/107268
+[#107331]: https://github.com/home-assistant/core/pull/107331
+[#107365]: https://github.com/home-assistant/core/pull/107365
+[#107366]: https://github.com/home-assistant/core/pull/107366
+[#107386]: https://github.com/home-assistant/core/pull/107386
+[#107388]: https://github.com/home-assistant/core/pull/107388
+[#107392]: https://github.com/home-assistant/core/pull/107392
+[#107396]: https://github.com/home-assistant/core/pull/107396
+[#107418]: https://github.com/home-assistant/core/pull/107418
+[#107452]: https://github.com/home-assistant/core/pull/107452
+[#107461]: https://github.com/home-assistant/core/pull/107461
+[#107500]: https://github.com/home-assistant/core/pull/107500
+[#107506]: https://github.com/home-assistant/core/pull/107506
+[#107519]: https://github.com/home-assistant/core/pull/107519
+[#107531]: https://github.com/home-assistant/core/pull/107531
+[#107537]: https://github.com/home-assistant/core/pull/107537
+[#107541]: https://github.com/home-assistant/core/pull/107541
+[#107546]: https://github.com/home-assistant/core/pull/107546
+[#107593]: https://github.com/home-assistant/core/pull/107593
+[#107631]: https://github.com/home-assistant/core/pull/107631
+[#107642]: https://github.com/home-assistant/core/pull/107642
+[#107657]: https://github.com/home-assistant/core/pull/107657
+[#107665]: https://github.com/home-assistant/core/pull/107665
+[#107671]: https://github.com/home-assistant/core/pull/107671
+[#107673]: https://github.com/home-assistant/core/pull/107673
+[#107676]: https://github.com/home-assistant/core/pull/107676
+[#107683]: https://github.com/home-assistant/core/pull/107683
+[#107695]: https://github.com/home-assistant/core/pull/107695
+[#107714]: https://github.com/home-assistant/core/pull/107714
+[#107720]: https://github.com/home-assistant/core/pull/107720
+[#107730]: https://github.com/home-assistant/core/pull/107730
+[#107738]: https://github.com/home-assistant/core/pull/107738
+[#107741]: https://github.com/home-assistant/core/pull/107741
+[#107746]: https://github.com/home-assistant/core/pull/107746
+[#107754]: https://github.com/home-assistant/core/pull/107754
+[#107758]: https://github.com/home-assistant/core/pull/107758
+[#107769]: https://github.com/home-assistant/core/pull/107769
+[#107771]: https://github.com/home-assistant/core/pull/107771
+[#107775]: https://github.com/home-assistant/core/pull/107775
+[#107816]: https://github.com/home-assistant/core/pull/107816
+[#107827]: https://github.com/home-assistant/core/pull/107827
+[#107850]: https://github.com/home-assistant/core/pull/107850
+[#107866]: https://github.com/home-assistant/core/pull/107866
+[@AngellusMortis]: https://github.com/AngellusMortis
+[@BTMorton]: https://github.com/BTMorton
+[@MartinHjelmare]: https://github.com/MartinHjelmare
+[@YogevBokobza]: https://github.com/YogevBokobza
+[@bdr99]: https://github.com/bdr99
+[@bdraco]: https://github.com/bdraco
+[@bieniu]: https://github.com/bieniu
+[@catsmanac]: https://github.com/catsmanac
+[@cdce8p]: https://github.com/cdce8p
+[@chemelli74]: https://github.com/chemelli74
+[@dieselrabbit]: https://github.com/dieselrabbit
+[@elmurato]: https://github.com/elmurato
+[@emontnemery]: https://github.com/emontnemery
+[@erwindouna]: https://github.com/erwindouna
+[@eugenet8k]: https://github.com/eugenet8k
+[@exxamalte]: https://github.com/exxamalte
+[@farmio]: https://github.com/farmio
+[@frenck]: https://github.com/frenck
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[@idofl]: https://github.com/idofl
+[@jbouwh]: https://github.com/jbouwh
+[@joostlek]: https://github.com/joostlek
+[@jpbede]: https://github.com/jpbede
+[@lellky]: https://github.com/lellky
+[@miaucl]: https://github.com/miaucl
+[@mkmer]: https://github.com/mkmer
+[@mrueg]: https://github.com/mrueg
+[@nabbi]: https://github.com/nabbi
+[@starkillerOG]: https://github.com/starkillerOG
+[@thecode]: https://github.com/thecode
+[@vexofp]: https://github.com/vexofp
+[@zxdavb]: https://github.com/zxdavb
+
+## Release 2024.1.4 - January 19
+
+- Fix MatrixBot not resolving room aliases per-command ([@PaarthShah] - [#106347])
+- Bump Pyenphase to 1.16.0 ([@catsmanac] - [#107719])
+- Fix loading empty yaml files with include_dir_named ([@pedrolamas] - [#107853])
+- Bump openwebifpy to 4.2.1 ([@autinerd] - [#107894])
+- Bump aiohomekit to 3.1.3 ([@bdraco] - [#107929])
+- Skip disk types in System Monitor ([@gjohansson-ST] - [#107943])
+- Fix duplicate unique id in System Monitor (again) ([@gjohansson-ST] - [#107947])
+- Bump pyenphase to 1.17.0 ([@catsmanac] - [#107950])
+- Update sleep period for Shelly devices with buggy fw ([@chemelli74] - [#107961])
+- Reload ZHA only a single time when the connection is lost multiple times ([@puddly] - [#107963])
+- Don't load entities for docker virtual ethernet interfaces in System Monitor ([@gjohansson-ST] - [#107966])
+- Improve coordinator logic in Tessie to allow sleep ([@Bre77] - [#107988])
+- Fix Shelly Gen1 entity description restore ([@thecode] - [#108052])
+- Fix malformed user input error on MJPEG config flow ([@codyc1515] - [#108058])
+- Fix turning on the light with a specific color ([@marcelveldt] - [#108080])
+- Bump Jinja2 to 3.1.3 ([@edenhaus] - [#108082])
+- Use compat for supported features in media player ([@joostlek] - [#108102])
+- Speed up ZHA initialization and improve startup responsiveness ([@puddly] - [#108103])
+- Bump `aioridwell` to 2024.01.0 ([@bachya] - [#108126])
+- Bump flipr-api to 1.5.1 ([@cnico] - [#108130])
+- Send target temp to Shelly TRV in F when needed ([@jra3] - [#108188])
+- Use cache update for WIFI blinds ([@starkillerOG] - [#108224])
+- Bump reolink_aio to 0.8.7 ([@starkillerOG] - [#108248])
+- Bump PyTado to 0.17.4 ([@erwindouna] - [#108255])
+- Bump aiounifi to v69 to improve websocket logging ([@Kane610] - [#108265])
+- Bump ZHA dependency zigpy to 0.60.6 ([@puddly] - [#108266])
+
+[#106347]: https://github.com/home-assistant/core/pull/106347
+[#106970]: https://github.com/home-assistant/core/pull/106970
+[#107239]: https://github.com/home-assistant/core/pull/107239
+[#107365]: https://github.com/home-assistant/core/pull/107365
+[#107719]: https://github.com/home-assistant/core/pull/107719
+[#107853]: https://github.com/home-assistant/core/pull/107853
+[#107883]: https://github.com/home-assistant/core/pull/107883
+[#107894]: https://github.com/home-assistant/core/pull/107894
+[#107929]: https://github.com/home-assistant/core/pull/107929
+[#107943]: https://github.com/home-assistant/core/pull/107943
+[#107947]: https://github.com/home-assistant/core/pull/107947
+[#107950]: https://github.com/home-assistant/core/pull/107950
+[#107961]: https://github.com/home-assistant/core/pull/107961
+[#107963]: https://github.com/home-assistant/core/pull/107963
+[#107966]: https://github.com/home-assistant/core/pull/107966
+[#107988]: https://github.com/home-assistant/core/pull/107988
+[#108052]: https://github.com/home-assistant/core/pull/108052
+[#108058]: https://github.com/home-assistant/core/pull/108058
+[#108080]: https://github.com/home-assistant/core/pull/108080
+[#108082]: https://github.com/home-assistant/core/pull/108082
+[#108102]: https://github.com/home-assistant/core/pull/108102
+[#108103]: https://github.com/home-assistant/core/pull/108103
+[#108126]: https://github.com/home-assistant/core/pull/108126
+[#108130]: https://github.com/home-assistant/core/pull/108130
+[#108134]: https://github.com/home-assistant/core/pull/108134
+[#108188]: https://github.com/home-assistant/core/pull/108188
+[#108224]: https://github.com/home-assistant/core/pull/108224
+[#108248]: https://github.com/home-assistant/core/pull/108248
+[#108255]: https://github.com/home-assistant/core/pull/108255
+[#108265]: https://github.com/home-assistant/core/pull/108265
+[#108266]: https://github.com/home-assistant/core/pull/108266
+[@Bre77]: https://github.com/Bre77
+[@Kane610]: https://github.com/Kane610
+[@PaarthShah]: https://github.com/PaarthShah
+[@allenporter]: https://github.com/allenporter
+[@autinerd]: https://github.com/autinerd
+[@bachya]: https://github.com/bachya
+[@bdraco]: https://github.com/bdraco
+[@catsmanac]: https://github.com/catsmanac
+[@chemelli74]: https://github.com/chemelli74
+[@cnico]: https://github.com/cnico
+[@codyc1515]: https://github.com/codyc1515
+[@edenhaus]: https://github.com/edenhaus
+[@erwindouna]: https://github.com/erwindouna
+[@frenck]: https://github.com/frenck
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[@joostlek]: https://github.com/joostlek
+[@jra3]: https://github.com/jra3
+[@marcelveldt]: https://github.com/marcelveldt
+[@pedrolamas]: https://github.com/pedrolamas
+[@puddly]: https://github.com/puddly
+[@starkillerOG]: https://github.com/starkillerOG
+[@thecode]: https://github.com/thecode
+
+## Release 2024.1.5 - January 20
+
+- Bump async-upnp-client to 0.38.1 ([@StevenLooman] - [#108382])
+- Fix empty files included by !include_dir_named ([@emontnemery] - [#108489])
+- Pin pandas to 2.1.4 ([@frenck] - [#108509])
+
+[#108382]: https://github.com/home-assistant/core/pull/108382
+[#108489]: https://github.com/home-assistant/core/pull/108489
+[#108509]: https://github.com/home-assistant/core/pull/108509
+[@StevenLooman]: https://github.com/StevenLooman
+[@emontnemery]: https://github.com/emontnemery
+[@frenck]: https://github.com/frenck
+
+## Release 2024.1.6 - January 30
+
+- Pass default SSLContext instances to Octoprint custom HTTP sessions ([@vexofp] - [#105351])
+- Reduce overhead for google calendar state updates ([@allenporter] - [#108133])
+- Fix SleepIQ setting FootWarmer timer ([@jmwaldrip] - [#108433])
+- Fix zha illuminance measured value mapping ([@floriankisser] - [#108547])
+- Bump yolink-api to 0.3.6 fix aiomqtt breaking changes ([@matrixd2] - [#108555])
+- Update openerz-api to 0.3.0 ([@misialq] - [#108575])
+- Bump aiovodafone to 0.5.4 ([@chemelli74] - [#108592])
+- Bump airthings-ble to 0.6.0 ([@LaStrada] - [#108612])
+- Fix alexa fails reporting the state in specific cases ([@jbouwh] - [#108743])
+- Reduce log level of ZHA endpoint handler init ([@puddly] - [#108749])
+- Fix google_assistant climate modes might be None ([@jbouwh] - [#108793])
+- Fix unhandled exception on humidifier intent when available_modes is None ([@jbouwh] - [#108802])
+- Fix processing supported color modes for emulated_hue ([@jbouwh] - [#108803])
+- Reduce log level for creating ZHA cluster handler ([@TheJulianJES] - [#108809])
+- Fix stalls in config flow of APCUPSD ([@yuxincs] - [#108931])
+- Add strings to Sensirion BLE ([@joostlek] - [#109001])
+- Fix entity naming for heatpump heatings in ViCare ([@CFenner] - [#109013])
+- Bump aiohttp to 3.9.3 ([@bdraco] - [#109025])
+- Bump ZHA dependency zigpy to 0.60.7 ([@puddly] - [#109082])
+- Add missing abort message for Spotify ([@joostlek] - [#109102])
+
+[#105351]: https://github.com/home-assistant/core/pull/105351
+[#106970]: https://github.com/home-assistant/core/pull/106970
+[#107239]: https://github.com/home-assistant/core/pull/107239
+[#107365]: https://github.com/home-assistant/core/pull/107365
+[#107883]: https://github.com/home-assistant/core/pull/107883
+[#108133]: https://github.com/home-assistant/core/pull/108133
+[#108379]: https://github.com/home-assistant/core/pull/108379
+[#108433]: https://github.com/home-assistant/core/pull/108433
+[#108502]: https://github.com/home-assistant/core/pull/108502
+[#108547]: https://github.com/home-assistant/core/pull/108547
+[#108555]: https://github.com/home-assistant/core/pull/108555
+[#108575]: https://github.com/home-assistant/core/pull/108575
+[#108592]: https://github.com/home-assistant/core/pull/108592
+[#108612]: https://github.com/home-assistant/core/pull/108612
+[#108743]: https://github.com/home-assistant/core/pull/108743
+[#108749]: https://github.com/home-assistant/core/pull/108749
+[#108793]: https://github.com/home-assistant/core/pull/108793
+[#108802]: https://github.com/home-assistant/core/pull/108802
+[#108803]: https://github.com/home-assistant/core/pull/108803
+[#108809]: https://github.com/home-assistant/core/pull/108809
+[#108931]: https://github.com/home-assistant/core/pull/108931
+[#109001]: https://github.com/home-assistant/core/pull/109001
+[#109013]: https://github.com/home-assistant/core/pull/109013
+[#109025]: https://github.com/home-assistant/core/pull/109025
+[#109082]: https://github.com/home-assistant/core/pull/109082
+[#109102]: https://github.com/home-assistant/core/pull/109102
+[@CFenner]: https://github.com/CFenner
+[@LaStrada]: https://github.com/LaStrada
+[@TheJulianJES]: https://github.com/TheJulianJES
+[@allenporter]: https://github.com/allenporter
+[@bdraco]: https://github.com/bdraco
+[@chemelli74]: https://github.com/chemelli74
+[@floriankisser]: https://github.com/floriankisser
+[@frenck]: https://github.com/frenck
+[@jbouwh]: https://github.com/jbouwh
+[@jmwaldrip]: https://github.com/jmwaldrip
+[@joostlek]: https://github.com/joostlek
+[@matrixd2]: https://github.com/matrixd2
+[@misialq]: https://github.com/misialq
+[@puddly]: https://github.com/puddly
+[@vexofp]: https://github.com/vexofp
+[@yuxincs]: https://github.com/yuxincs
+
## Need help? Join the community!
Home Assistant has a great community of users who are all more than willing
diff --git a/source/_posts/2024-01-05-matter-livestream.markdown b/source/_posts/2024-01-05-matter-livestream.markdown
new file mode 100644
index 00000000000..d45a843a30a
--- /dev/null
+++ b/source/_posts/2024-01-05-matter-livestream.markdown
@@ -0,0 +1,25 @@
+---
+layout: post
+title: "The State of Matter livestream"
+description: "Weβre having a Matter livestream on Wednesday, January 10. Ask all your questions about Matter and Home Assistant in the comment section!"
+date: 2024-01-05 00:00:01
+date_formatted: "January 5, 2024"
+author: Marcel van der Veldt
+comments: true
+categories: Matter
+og_image: /images/blog/2024-01-matter/matter.png
+---
+
+TL;DR: We'll have a Matter livestream on Wednesday, January 10. Post all your questions about Matter and Home Assistant in the comment section, and we'll try to answer them during the stream!
+
+In late 2022, Matter was first released to the public. It promised to be the new local home automation standard that would unify various manufacturers' ecosystems and smart devices. We [joined the CSA](/blog/2023/12/04/nabu-casa-at-the-matter-member-meeting/), the alliance developing Matter, to have a front-row seat and make our implementation of Matter the best we can. Now, one year later, did Matter live up to its promise, and what's the state of Matter within Home Assistant?
+
+We ask this question because lately, articles about Matter in the media have turned a bit sour. Compared to older standards like Zigbee and Z-Wave, they say, Matter is not yet in good shape. But this is not an entirely fair comparison: Zigbee and Z-Wave have had many years to develop into what they are now, while Matter was released just over a year ago. A new standard will always need some time to settle in and mature.
+
+Our view on Matter is both more optimistic and still realistic. We think Matter completely fits [our Open Home vision](/blog/2021/12/23/the-open-home/). In the future, Matter will give us all fast, reliable, and local control of our smart home devices. At the same time, we're realistic; this perfect vision of Matter has yet to arrive, and not everything we hoped for is possible today. Still, significant companies and organizations around the globe have committed to Matter, and they are improving it every month. We believe Matter is here to stay.
+
+So, instead of discussing what isn't currently working in Matter, we want to explain what Matter *can* offer you today. We want to show you the potential Matter has for the future and how your first steps with Matter today prepare you for that. Talk about what Thread is, how it relates to Matter - it is not the same! - and how to build your Thread network. And much more.
+
+On Wednesday, January 10, at 12:00 PST / 21:00 CET, we'll be hosting a State of Matter livestream to discuss this and address your questions and concerns about Matter and Home Assistant. We'll make sure it's an excellent watch for both beginners and more technically-oriented viewers - our Matter developers will be there to give you a technical deep-dive into Matter, too. Please save the date in your calendar and post all your questions and concerns in our comments section!
+
+
diff --git a/source/_posts/2024-01-17-voice-assistant-contest.markdown b/source/_posts/2024-01-17-voice-assistant-contest.markdown
new file mode 100644
index 00000000000..c2a8c0ae71e
--- /dev/null
+++ b/source/_posts/2024-01-17-voice-assistant-contest.markdown
@@ -0,0 +1,110 @@
+---
+layout: post
+title: "Voice Assistant Contest - Let's build and win some prizes!"
+description: "We are organizing a voice assistant contest between the 17th of January and the 10th of March. You can win some Home Assistant Green, some Home Assistant SkyConnect, and a chance to be on a livestream with us to talk about your creation."
+date: 2024-01-17 00:00:01
+date_formatted: "January 17, 2024"
+author: Jean-LoΓ―c Pouffier
+comments: true
+categories: Assist
+og_image: /images/blog/2024-01-11-voice-assistant-contest/banner.png
+---
+
+

+
+TL;DR: We are organizing a voice assistant contest between the 17th of January and the 10th of March. You can win some [Home Assistant Green](/green/), [Home Assistant SkyConnect](/skyconnect/), and a chance to be on a livestream with us to talk about your work.
+
+
+
+2023 was the [Year of the Voice](/blog/2022/12/20/year-of-voice/). It was a yearly goal to **let users control Home Assistant in their own language**.
+We built some amazing things throughout the year, from a very powerful intent recognizer specifically optimized to run on a small computer like a Raspberry Pi 4, all the way to custom wake words created by our community.
+
+In fact, we believe that what we built during the Year of the Voice allows almost anyone to build a voice assistant that embodies our Open Home values perfectly: Personalized, Private, and Sustainable.
+Every component of our voice assistants can be heavily customized to fit your language, your style and your needs, fully local options exist for each of them, and finally you can retrofit voice assistant into anything, even a [1970s Walkie Talkie](https://www.youtube.com/shorts/HqYbhk6vq9E) found in a flea market
+
+This is why, after spending a year building great things, we want to celebrate what our voice assistants can enable with the community: Weβre launching a voice assistant contest, with great prizes to win!
+
+
+## Contest specifics
+
+The contest will be held between Today (the **17th of January**) and the **10th of March**.
+
+We tried to be as inclusive as possible. The contest is not only about building voice assistant hardware, it is also about building voice experiences that can be used with any voice assistant (For example, [a blueprint that you can use to generate images from voice and cast them on your TV](https://my.home-assistant.io/redirect/blueprint_import?blueprint_url=https%3A%2F%2Fwww.home-assistant.io%2Fblueprints%2Fblog%2F2023-08%2Fcast_dall_e.yaml): βShow me a picture of an astronaut riding a unicorn!β)
+
+An entry in the contest can take any form: A video, a blog post, a website, an event, etc.
+
+The only requirement is for you to post on [this forum category](https://community.home-assistant.io/c/voice-assistant-contest/60), this is how you officially participate in the contest.
+
+Winners will be announced on the **15th of March**.
+
+A closing ceremony will take place on the **10th of April** in the form of a livestream. Winners will be invited!
+
+

+
+## Contest categories
+
+You can participate in the contest in four different categories.
+
+### Most creative satellite ideas
+
+We have all the ingredients to unleash creativity: Custom sentences, custom wake words, custom voices. This category is here to showcase your smartest ideas.
+We will be judging the creativity, uniqueness, and coherency of the whole package.
+
+Example: [Piitayaβs](https://github.com/piitaya) moving and talking droid.
+
+
+
+### Best starting guides
+
+Because our voice assistant can be heavily customized, starting can be daunting. This category showcases the easiest ways to create a voice assistant for a novice. From ordering parts, flashing the firmware, integrating it into Home Assistant, and using it.
+We will judge how easy the guide is to follow and how usable the final product is.
+
+Example: The amazingly complete guide to build a Wyoming Voice Assistant Satellite by YouTuber [FutureProofHome](https://www.youtube.com/@FutureProofHomes).
+
+
+
+### Best events organized, best group effort
+
+Building privacy-focused technology only makes sense if we can get people to use it. Go to a hackerspace, invite some people, and build some voice assistants together!
+We will be judging the impact of the event (Size, outcome, topics discussed, etc)
+
+### Best voice experiences
+
+This category is here for people who want to participate in the contest but not necessarily build a hardware product. This is all about creating the best experience using a voice assistant on Home Assistant.
+We support custom sentences, custom responses, and custom actions.
+Go crazy, be creative, and show us how to unlock the potential of our voice assistants.
+We will be judging how useful the experience is, how easy it is to integrate it, and of course, of fun it is.
+
+Example: [Play any music on any speaker in your home from a blueprint.](https://blog.jlpouffier.fr/chatgpt-powered-music-search-engine-on-a-local-voice-assistant/)
+
+## Contest prizes
+
+For each category, the winner will receive:
+
+- A [Home Assistant Green](/green/)
+- A [Home Assistant SkyConnect](/skyconnect/)
+- A spot on the closing ceremony livestream to present his/her work on the 10th of April
+
+Runners-up will receive a [Home Assistant SkyConnect](/skyconnect/).
+
+The community will also get a chance to vote for a favorite entry. The choice of the community will also receive the same prizes as a category winner (A [Home Assistant Green](/green/), A [Home Assistant SkyConnect](/skyconnect/), a spot on the livestream on the 10th of April).
+
+## How to get started
+
+- Watch the Voice Assistant Contest [launch live stream](https://www.youtube.com/watch?v=99lGuB4J-4o&ab_channel=HomeAssistant), we did a recap of Year of the Voice and created a few voice assistants live with you.
+- Learn more about the different chapters of Year of the Voice [here](https://www.home-assistant.io/blog/2022/12/20/year-of-voice/).
+- Learn more about Wyoming Satellite in the [launch live stream](https://www.youtube.com/watch?v=99lGuB4J-4o&ab_channel=HomeAssistant) and [here](https://github.com/rhasspy/wyoming-satellite).
+- Learn how to create a basic voice assistant within minutes for $13 [here](https://www.home-assistant.io/voice_control/thirteen-usd-voice-remote/).
+- Learn more about ESPHome-based voice assistant in the [launch live stream](https://www.youtube.com/watch?v=99lGuB4J-4o&ab_channel=HomeAssistant) and [here](https://github.com/jlpouffier/voice-assistant-esphome-tutorial/tree/main).
+- Learn how to create custom wake words [here](https://www.home-assistant.io/voice_control/create_wake_word/).
+- Learn how to create custom sentences [here](https://www.home-assistant.io/voice_control/custom_sentences/).
+
+## Thank you
+
+Thank you to the Home Assistant community for subscribing to Home Assistant Cloud to support Year of the Voice and the development of Home Assistant, ESPHome, and other projects in general.
+
+We are looking forward to seeing what you will build and we are looking forward to having you on the livestream with us on the 10th of April.
+
+Head over to the [forum category](https://community.home-assistant.io/c/voice-assistant-contest/60) to see the progress of the contest.
+
+Have fun building, learning, and sharing.
diff --git a/source/_posts/2024-01-25-matter-livestream-blog.markdown b/source/_posts/2024-01-25-matter-livestream-blog.markdown
new file mode 100644
index 00000000000..a4fb1e09a31
--- /dev/null
+++ b/source/_posts/2024-01-25-matter-livestream-blog.markdown
@@ -0,0 +1,138 @@
+---
+layout: post
+title: "The State of Matter"
+description: "Catch up on all of the highlights of the State of Matter livestream that we streamed on Wednesday, January 10, 2024."
+date: 2024-01-25 00:00:01
+date_formatted: "January 25, 2024"
+author: Marcel van der Veldt
+comments: true
+categories: Matter
+og_image: /images/blog/2024-01-matter/matter.png
+---
+During our State of Matter live stream two weeks ago, we explained what Matter is, how it relates to Thread, and how you can compare it with existing protocols you may already know, like Zigbee or Z-Wave.
+
+In this blog post, weβve extracted the highlights of the stream for you. We also link to our updated [Matter](/integrations/matter/) and [Thread](/integrations/thread/) documentation where relevant.
+
+You can watch the entire live stream here:
+
+
+
+Weβll also highlight each segment of the live stream in this blog under each corresponding heading, so you can start watching the specific parts that interest you!
+
+
+
+## Why we believe in Matter
+
+
+
+We believe in Matter: itβs open source, and most importantly, itβs fully local by default. Matter will allow us to control devices ranging from lights, to robot vacuums, to TVs, and to many other IP-connected devices, all through a standardized protocol. It is a huge step forward towards having more sustainable and worry-free smart home products. For this reason, Nabu Casa uses the revenue we get from the subscribers to Home Assistant Cloud (thank you all!) to employ developers who are dedicated to implementing Matter. And we have even joined the Connectivity Standards Alliance (CSA) - the organization behind the Matter standard - as a participant to have a front-row seat and to defend the [Open Home values](/blog/2021/12/23/the-open-home/) during the development of the standard.
+
+Matter launched only one year ago, compared to twenty years for a standard like Zigbee, so itβs important to account for that in your expectations. If youβve already invested heavily in an existing local standard, like Zigbee or Z-Wave, Matter is probably not your best choice at this point. We think there is no reason to throw these current smart home devices out, especially when they still work fine - after all, sustainability is one of our [Open Home values](/blog/2021/12/23/the-open-home/). But if you are new to the smart home scene and looking for devices with local, cloud-free standards that will still work even many years from now, keep an eye on Matter. The standard is rapidly evolving, with major updates twice a year where new device types and enhancements to existing ones are released.
+
+After this first year, the current selection of Matter devices is still a bit limited, but a lot of companies have been using this time to develop them, and we expect more to be released soon. More and more companies are [joining the CSA](https://csa-iot.org/members/) and taking up the standard every month. We think Matter is here to stay and is going to be widely adopted.
+
+## Demystifying Matter
+
+
+
+To really understand what weβre talking about when it comes to Matter, we recommend you read our [updated Matter documentation](/integrations/matter/) or watch this chapter from our live stream.
+
+

+
+In this segment, our product manager JLo explains Matter in an easy-to-understand, visual manner, using the diagram you see above. Youβll no longer have to wonder about Thread, Border routers, Bridges, or other Matter terminology after youβve watched this video.
+
+## The current state of Matter in Home Assistant
+
+For the past year, we have been working on getting the foundation ready to support Matter devices in Home Assistant. Our implementation is based on the official Matter SDK, and we plan for it to become officially certified by the CSA to show that it will work problem-free with all products that carry the Matter logo. But we are not there yet; that is why we still label Matter as Beta in the integrations list. This will not change until our implementation has been certified.
+
+We are still ironing out bugs, writing documentation, adding missing features, and doing a lot of troubleshooting. We are not alone on this, as many manufacturers needed this first year to get comfortable with the new standard as well, resulting in some unstable early devices coming to the market. Weβve also had to tweak our Home Assistant Operating System to work well with Matter, Thread, and its IPv6 requirement.
+
+It has been a bumpy - sometimes even frustrating - ride, but everything is slowly getting into good shape. Vendors have ironed out bugs in their Matter device firmware, all kinds of new devices are popping up in stores, and the Matter 1.1 and 1.2 updates brought tons of stability fixes to the standard.
+
+From our perspective, itβs amazing that Matter is already in this state after being started only a couple of years ago. You can clearly see the enormous power of so many companies, from small to big, believing in Matter and working together to improve it.
+
+### Get started with Matter in Home Assistant
+
+
+
+If you want to get started with Matter in Home Assistant, it is really important that you read the [documentation](/integrations/matter/) or watch this chapter of our live stream, which covers it all.
+
+Matter has a few gotchaβs you should know about, and because we are still in the Beta stage, not everything is as polished as we want it to be.
+
+If you follow the requirements/recommendations in the documentation, you will see that there are four scenarios that are stable and work well in Home Assistant today:
+
+- Using WiFi-based Matter devices, like TP-Link (Matter) power plugs.
+- Using Matter bridges, like the Aqara M2 or SwitchBot Hub 2.
+- Using Thread-based Matter devices; if you have an Apple iPhone and one or more Apple devices that can be utilized by Home Assistant as a Thread Border router: HomePod gen2, HomePod Mini, Apple TV 4K (with ethernet).
+- Using Thread-based Matter devices; if you have an Android phone and one or more Google devices that can be utilized by Home Assistant as a Thread Border router:
+Google Nest Hub v2, Google Nest Hub Max, Google Nest WiFi Pro
+
+Itβs *very* important to note here that for Thread-based devices, the current recommended setup utilizes border routers from Apple or Google that match the type of phone you have. Please donβt worry - this doesnβt mean you have to add your devices to their ecosystems. Home Assistant will just use them to get access to the Thread radio network. The communication between the Home Assistant Matter controller and your Matter devices is completely encrypted and secure.
+
+Using Home Assistant itself as a Thread border router (for example, by using the Thread radio in the Home Assistant Yellow or Home Assistant SkyConnect) is still under development at this point and is only recommended for the more technically experienced users. Currently, due to a bug, it can only be set up if you use an Android phone. Setting the Home Assistant SkyConnect or Home Assistant Yellow up as a Thread border router is not yet possible for users in the iOS/Apple ecosystem. We recommend that iOS users place, for example, a HomePod Mini or other Apple border router near their Thread devices to get the required Thread coverage. Alternatively, you can stay with WiFi-based Matter devices.
+
+### Important
+
+You do *not* need any additional hardware or radios to work with Matter devices. Any device that is running Home Assistant Operating System, be it a Home Assistant Green, a Raspberry Pi, or any other installation, is already a fully functional Matter Controller. You can connect to WiFi-based Matter devices straight out of the box. Only if you plan to use Thread-based Matter devices do you need additional hardware in the form of a Thread border router.
+
+### Our tips for a frustration-free Matter experience:
+
+- Read the [documentation](/integrations/matter/) for Matter.
+- The easiest devices to get started with are WiFi-based Matter devices and Matter bridges. Do note that many brands with Matter bridges also have excellent native integrations in Home Assistant, and these integrations may offer features not yet available in the Matter standard.
+- You need to run the Home Assistant Operating System. Other installation types are not supported.
+- You need a standard (flat) network. Enterprise-like network setups with VLANs, mDNS responders, etc., break the expectations that Matter has about the network and are not supported. Keep it simple, and it will just work.
+- Enable IPv6 on your home router and Home Assistant Operating System. You donβt need to get IPv6 from your internet provider, as the Matter devices operate locally. But you do need to make sure itβs enabled on your home network.
+- If you are planning on using Thread-based Matter devices, you will need one or more [Thread border routers](/integrations/thread/) in your home. Home Assistant can work with third-party Thread border routers from Google or Apple as well, without having to add your devices to their ecosystem.
+- Always check the device packaging to make sure it has a Matter badge. Thread is also used for other standards, so a device with a Thread badge on the packaging does not have to be a Matter device.
+- Note that Matter is still in an early stage, so not every advanced feature you are used to may currently be implemented in this standard.
+
+- Use the latest version of both Home Assistant and the Home Assistant Companion apps, as we are improving Matter support and fixing bugs continuously. Using the latest version can make the difference in being able to add a device to Home Assistant or not.
+
+### Support
+
+If you run into problems, please join our [Discord server](/join-chat/), where we have a dedicated Matter channel. Both our developers and many very experienced members of our community are active there to help you out with your Matter setup. Please only open an issue on our GitHub issue tracker if you encounter an actual bug.
+
+## The Future of Matter in Home Assistant
+
+
+
+In the near future, we are focusing on improving the user experience to onboard and manage Matter devices. Especially adding new Matter devices to Home Assistant should be as stress-free as possible.
+
+

+
+This is what we are focusing on now:
+- Functionality to 'share' a device from Home Assistant to another Matter controller.
+- Showing basic device information and diagnostics about a device in the Home Assistant interface, as well as adding some troubleshooting options such as forcing a full interview.
+
+This is what we will be focusing on next:
+- A simpler flow to add Matter devices (a process called commissioning), where we guide our users step-by-step all the way from unboxing a device to being able to control it in Home Assistant. For now, we are focusing on the stable scenarios we mentioned previously. This means that we are improving the commissioning flow in our companion apps, relying on the Matter functionality built into your phone, and using (if necessary) Thread networks managed by the vendor of your phone (Google or Apple).
+- A better handling of sharing of devices between controllers (a functionality called multi-admin). Adding a brand new Matter device (commissioning) and sharing a device that is already controlled by a Matter controller (multi-admin) are not part of the same flow. This difference is dictated by the Matter standard and its security features; a current controller (admin) has to allow a device to join another controller. This is often misunderstood today, and we are trying to create a better flow that guides our users toward the right path for their devices.
+- We want to implement some missing features in the current platforms, such as light transitions and scenes.
+
+This is what we want to achieve in the long run:
+- The ability to use the Home Assistant SkyConnect or Home Assistant Yellow as a Thread border router to connect to Thread-based Matter devices instead of using Apple or Google Border routers.
+
+On top of this, we will continuously focus on extending the support for new devices as new device types are added to the specification or existing ones are extended. In some cases, manufacturers even contribute to Home Assistant themselves to ensure a new device type is supported.
+
+We are also continuously keeping the quality of our Matter integration up to the standard of Home Assistant and fixing the most impactful issues our users are facing. For example, right now, we are making sure Matter devices that lose power are handled better in Home Assistant.
+
+## Using Home Assistant Yellow or Home Assistant SkyConnect
+
+
+
+As we mentioned while talking about the recommended scenarios earlier, using the Home Assistant Yellow or Home Assistant SkyConnect for Thread is still in development and only recommended for technically experienced users.
+
+Thatβs why our current recommendation for Home Assistant Yellow and Home Assistant SkyConnect is to use the Zigbee firmware to power your Zigbee network. This is a stable solution that has worked reliably since the introduction of these products and offers a great experience.
+
+As we continue to work on Matter in Home Assistant, weβre now focused on ensuring that the Thread experience will catch up and become a first-class citizen, making it easy to connect to your Thread-based devices in Home Assistant without a third-party Thread border router. The Thread firmware is already fully functional under the hood, but we still have some work to do to make the experience of using Thread-based devices in Home Assistant feel good. As we mentioned in our chapter on the future of Matter in Home Assistant, we expect great strides in this area within the following months. Once the experience has improved, we will recommend using this Thread firmware to power your Thread network as an alternative to using third-party Thread border routers from Apple or Google.
+
+There is a third, experimental, firmware option that supports multiprotocol, which allows the Silicon Labs chip in these products to connect to both Zigbee and Thread networks with one radio. We announced our intent to release a firmware supporting multiprotocol when we launched Home Assistant Yellow and Home Assistant SkyConnect, and this firmware has been available since December 2022. It integrates the Silicon Labs SDK, which adds this support for multiprotocol. During the further development and testing of the multiprotocol firmware, we have concluded that while Silicon Labsβ multiprotocol works, it comes with technical limitations. These limitations mean users will not have the best experience compared to using dedicated Zigbee and Thread radios. That is why we do not recommend using this firmware, and it will remain an experimental feature of Home Assistant Yellow and Home Assistant SkyConnect. 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](https://skyconnect.home-assistant.io/procedures/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. Instead, we will focus on making sure the dedicated Zigbee and Thread firmwares deliver the best experience to users.
+
+## Thank you
+
+After our first year of implementing Matter, weβre very happy that the technical foundation is in good shape. We can now take the next steps to ensure the entire Matter experience is as good as it can possibly be! Thank you to all of the users who have been on this journey with us, have provided us with valuable feedback and bug reports, and have shared their experiences so we know how we can make Matter in Home Assistant even better. And thank you to all of the viewers of the live stream and everyone who sent in questions beforehand and during the stream; your input helps us make these streams the best they can be. And if you made it all the way down here - thank you for reading!
+
+If you have any more questions or experience problems with Matter in Home Assistant, please join our [Discord server](/join-chat/)! We have a dedicated Matter channel there, and our developers and many experienced members of our community can help you out.
+
\ No newline at end of file
diff --git a/source/_posts/2024-01-29-companion-app-for-ios-20241-carplay.markdown b/source/_posts/2024-01-29-companion-app-for-ios-20241-carplay.markdown
new file mode 100644
index 00000000000..282d57d72c2
--- /dev/null
+++ b/source/_posts/2024-01-29-companion-app-for-ios-20241-carplay.markdown
@@ -0,0 +1,86 @@
+---
+layout: post
+title: "Companion app for iOS 2024.1: CarPlay is here!"
+description: "Home Assistant arrives in CarPlay; open your garage with a simple tap!"
+date: 2024-01-29 00:00:02
+date_formatted: "January 29, 2024"
+author: Bruno PantaleΓ£o
+comments: true
+categories: iOS Release-Notes
+og_image: /images/blog/2024-01-ios-carplay/ios-og.png
+---
+
+Hey, this is Bruno. I have recently joined Nabu Casa to work full-time on the Home Assistant iOS app (thanks Home Assistant Cloud subscribers!). Today I have big news: Home Assistant is now available on Apple CarPlay! The release is rolling out and should be hitting your iOS devices soon (version 2024.1).
+
+CarPlay support now gives Home Assistant users easy access to their devices and areas and the ability to create custom actions. Custom actions allow users to create advanced action sequences like unlocking the front door and turning on the porch lights. And all of this works across the multiple Home Assistant servers that you have configured in the app.
+
+
+
+

Big thanks to DXspark for helping us make the foundation of CarPlay and kicking off the project.
+
+
+
+## CarPlay features
+
+The app is divided into four tabs to easily access the different functionality. Weβve followed Appleβs guidelines to give the user a familiar experience that they know from other CarPlay apps.
+
+You donβt have to configure the CarPlay app separately. It will automatically pick up your Home Assistant servers as configured in your app.
+
+## Actions
+
+Actions are a concept in the Home Assistant iOS app that allows you to execute automation in Home Assistant. This means that you can execute any automation you want, such as:
+
+- βOpen the garage and start heating my home to 22 degrees Celsiusβ
+- βClose the garage and announce in the kitchen that I arrivedβ
+- βTurn the front yard lights on and unlock the front doorβ
+
+These actions have been available in the Home Assistant for Apple Watch app and can be called from the Home Assistant widgets. With todayβs release, you can also easily trigger them from your CarPlay dashboard. This is the feature that has already become part of my daily routine.
+
+If you havenβt created an Action yet, the CarPlay App can send a notification to your phone to guide you to get started.
+
+
+
+
+## Controls
+
+The controls tab will group your devices and entities by their domain. We have started small and included the most useful domains first:
+
+- Button
+- Cover
+- Input boolean
+- Input button
+- Light
+- Lock
+- Scene
+- Script
+- Switch
+
+For these domains, you can toggle lights and switches, activate buttons, script, scene actions, and of course, toggle your garage door or gate.
+
+
+
+
+## Areas
+
+The areas tab allows you to find your devices and entities based on their area. Quickly scroll through an area to see the current states and toggle devices.
+
+
+
+## Servers
+
+When youβre driving to your parents, you might want to be able to notify them or open their garage door as you arrive. With the βServersβ tab, you will be able to quickly change and control a different Home Assistant server.
+
+This feature builds upon the multiple server support that has been part of the Home Assistant iOS app for a couple of years now.
+
+
+
+I hope you will enjoy using Home Assistant on CarPlay. Please let us know what else you would like to see available for CarPlay!
+
+## Release notes
+
+- The app is now available for iOS 15+
+- CarPlay support was added for iOS 16+
+- The Bulgarian language was added
+- Improvements for iOS Actions so theyβre easier to use
+- In macOS, the window size will be restored when you open the app again
+
diff --git a/source/_redirects b/source/_redirects
index a0b1b45ea1e..5399beda7cf 100644
--- a/source/_redirects
+++ b/source/_redirects
@@ -470,6 +470,7 @@ layout: null
/blog/2019/05/29/release-94 /blog/2019/06/05/release-94
/state-of-the-union /blog/2019/11/22/state-of-the-union
/blog/2022/03/30/release-20224 /blog/2022/04/06/release-20224/
+/blog/2024/01/11/voice-assistant-contest /blog/2024/01/17/voice-assistant-contest
# Removed integrations
/integrations/alarmdotcom /more-info/removed-integration 301
diff --git a/source/changelogs/core-2024.1.markdown b/source/changelogs/core-2024.1.markdown
index a8c7ce3c9d8..5372553cfa9 100644
--- a/source/changelogs/core-2024.1.markdown
+++ b/source/changelogs/core-2024.1.markdown
@@ -730,6 +730,396 @@ For a summary in a more readable format:
- Change Tado deprecation version to 2024.7.0 ([@erwindouna] - [#106938])
- Update frontend to 20240103.0 ([@bramkragten] - [#106942])
+## Release 2024.1.1 - January 5
+
+- Enable strict typing for airthings_ble ([@cdce8p] - [#106815])
+- Fix qBittorrent torrent count when empty ([@finder39] - [#106903])
+- Bump dropmqttapi to 1.0.2 ([@pfrazer] - [#106978])
+- bump openwebifpy to 4.0.3 ([@autinerd] - [#106593])
+- Close stale connections (Airthings BLE) ([@LaStrada] - [#106748])
+- Bump openwebifpy to 4.0.4 ([@autinerd] - [#107000])
+- Get Shelly RPC device `gen` from config entry data ([@bieniu] - [#107019])
+- Fix missing backwards compatiblity layer for humidifier supported_features ([@bdraco] - [#107026])
+- Use async_register in streamlabswater ([@joostlek] - [#107060])
+- Fix data access in streamlabs water ([@joostlek] - [#107062])
+- Fix mobile_app cloudhook creation ([@edenhaus] - [#107068])
+- Deduplicate handling of duplicated constants ([@emontnemery] - [#107074])
+- Fix missing backwards compatibility layer for water_heater supported_features ([@bdraco] - [#107091])
+- Bump habluetooth to 2.0.2 ([@bdraco] - [#107097])
+- Include deprecated constants in wildcard imports ([@emontnemery] - [#107114])
+- Update frontend to 20240104.0 ([@bramkragten] - [#107155])
+- Bump Orvibo to 1.1.2 ([@emericklaw] - [#107162])
+- Bump aiohomekit to 3.1.2 ([@bdraco] - [#107177])
+- Bump to PyTado 0.17.3 ([@erwindouna] - [#107181])
+- Fix switch states in AVM FRITZ!Box Tools ([@mib1185] - [#107183])
+- Hotfix cache logic bug in Tessie ([@Bre77] - [#107187])
+- Disable IPv6 in the opower integration to fix AEP utilities ([@tronikos] - [#107203])
+- Fix entity property cache creation arguments ([@ppetru] - [#107221])
+- Use supported_features_compat in update.install service ([@ludeeus] - [#107224])
+- Bump zwave-js-server-python to 0.55.3 ([@raman325] - [#107225])
+
+[#106593]: https://github.com/home-assistant/core/pull/106593
+[#106748]: https://github.com/home-assistant/core/pull/106748
+[#106815]: https://github.com/home-assistant/core/pull/106815
+[#106903]: https://github.com/home-assistant/core/pull/106903
+[#106970]: https://github.com/home-assistant/core/pull/106970
+[#106978]: https://github.com/home-assistant/core/pull/106978
+[#107000]: https://github.com/home-assistant/core/pull/107000
+[#107019]: https://github.com/home-assistant/core/pull/107019
+[#107026]: https://github.com/home-assistant/core/pull/107026
+[#107060]: https://github.com/home-assistant/core/pull/107060
+[#107062]: https://github.com/home-assistant/core/pull/107062
+[#107068]: https://github.com/home-assistant/core/pull/107068
+[#107074]: https://github.com/home-assistant/core/pull/107074
+[#107091]: https://github.com/home-assistant/core/pull/107091
+[#107097]: https://github.com/home-assistant/core/pull/107097
+[#107114]: https://github.com/home-assistant/core/pull/107114
+[#107155]: https://github.com/home-assistant/core/pull/107155
+[#107162]: https://github.com/home-assistant/core/pull/107162
+[#107177]: https://github.com/home-assistant/core/pull/107177
+[#107181]: https://github.com/home-assistant/core/pull/107181
+[#107183]: https://github.com/home-assistant/core/pull/107183
+[#107187]: https://github.com/home-assistant/core/pull/107187
+[#107203]: https://github.com/home-assistant/core/pull/107203
+[#107221]: https://github.com/home-assistant/core/pull/107221
+[#107224]: https://github.com/home-assistant/core/pull/107224
+[#107225]: https://github.com/home-assistant/core/pull/107225
+[@Bre77]: https://github.com/Bre77
+[@LaStrada]: https://github.com/LaStrada
+[@autinerd]: https://github.com/autinerd
+[@bdraco]: https://github.com/bdraco
+[@bieniu]: https://github.com/bieniu
+[@bramkragten]: https://github.com/bramkragten
+[@cdce8p]: https://github.com/cdce8p
+[@edenhaus]: https://github.com/edenhaus
+[@emericklaw]: https://github.com/emericklaw
+[@emontnemery]: https://github.com/emontnemery
+[@erwindouna]: https://github.com/erwindouna
+[@finder39]: https://github.com/finder39
+[@frenck]: https://github.com/frenck
+[@joostlek]: https://github.com/joostlek
+[@ludeeus]: https://github.com/ludeeus
+[@mib1185]: https://github.com/mib1185
+[@pfrazer]: https://github.com/pfrazer
+[@ppetru]: https://github.com/ppetru
+[@raman325]: https://github.com/raman325
+[@tronikos]: https://github.com/tronikos
+
+## Release 2024.1.2 - January 6
+
+- Fix support for play/pause functionality in System Bridge ([@timmo001] - [#103423])
+- Fix passing correct location id to streamlabs water ([@joostlek] - [#107291])
+- Fix Shelly missing Gen value for older devices ([@thecode] - [#107294])
+- enigma2: fix exception when device in deep sleep, fix previous track ([@autinerd] - [#107296])
+- Fix assertion error when unloading ZHA with pollable entities ([@dmulcahey] - [#107311])
+
+[#103423]: https://github.com/home-assistant/core/pull/103423
+[#106970]: https://github.com/home-assistant/core/pull/106970
+[#107239]: https://github.com/home-assistant/core/pull/107239
+[#107291]: https://github.com/home-assistant/core/pull/107291
+[#107294]: https://github.com/home-assistant/core/pull/107294
+[#107296]: https://github.com/home-assistant/core/pull/107296
+[#107311]: https://github.com/home-assistant/core/pull/107311
+[@autinerd]: https://github.com/autinerd
+[@dmulcahey]: https://github.com/dmulcahey
+[@frenck]: https://github.com/frenck
+[@joostlek]: https://github.com/joostlek
+[@thecode]: https://github.com/thecode
+[@timmo001]: https://github.com/timmo001
+
+## Release 2024.1.3 - January 12
+
+- Add diagnostics to A. O. Smith integration ([@bdr99] - [#106343])
+- Catch missing inverter in Enphase Envoy ([@catsmanac] - [#106730])
+- Prevent toggle from calling stop on covers which do not support it ([@vexofp] - [#106848])
+- Fix missing unique_id for spt integration ([@miaucl] - [#107087])
+- Add support for the Spotify DJ ([@BTMorton] - [#107268])
+- Fix evohome high_precision temps not retreived consistently ([@zxdavb] - [#107366])
+- Reduce polling rate in Blink ([@mkmer] - [#107386])
+- Fix KNX telegram device trigger not firing after integration reload ([@farmio] - [#107388])
+- Fix language flavors in holiday ([@gjohansson-ST] - [#107392])
+- Handle OSError during setup for System Monitor ([@gjohansson-ST] - [#107396])
+- Remove name from faa_delays ([@joostlek] - [#107418])
+- Fix Swiss public transport initial data for attributes ([@miaucl] - [#107452])
+- Fix reauth flow for Comelit VEDO ([@chemelli74] - [#107461])
+- Fix asyncio.gather call ([@cdce8p] - [#107500])
+- Fix Luftdaten sensor id string ([@mrueg] - [#107506])
+- Bump zm-py version to v0.5.3 for zoneminder ([@nabbi] - [#107331])
+- Retry zoneminder connection setup ([@nabbi] - [#107519])
+- Don't include position in binary valve attributes ([@emontnemery] - [#107531])
+- Bump blinkpy to 0.22.5 ([@mkmer] - [#107537])
+- Bump reolink_aio to 0.8.6 ([@starkillerOG] - [#107541])
+- Bump mcstatus to v11.1.1 ([@elmurato] - [#107546])
+- Bump aioshelly to 7.1.0 ([@thecode] - [#107593])
+- Fix Tado unique mobile device dispatcher ([@erwindouna] - [#107631])
+- Fix tplink_lte setup ([@cdce8p] - [#107642])
+- Prevent overriding cached attribute as property ([@emontnemery] - [#107657])
+- Set max and min temp for flexit_bacnet climate entity ([@lellky] - [#107665])
+- Fix duplicated resource issue in System Monitor ([@gjohansson-ST] - [#107671])
+- Fix invalid alexa climate or water_heater state report with double listed targetSetpoint ([@jbouwh] - [#107673])
+- Redact sensitive data in alexa debug logging ([@jbouwh] - [#107676])
+- Fix `device_class` type for Shelly Gen1 sleeping sensors ([@bieniu] - [#107683])
+- Clamp tplink color temp to valid range ([@bdraco] - [#107695])
+- Fix cloud tts loading ([@MartinHjelmare] - [#107714])
+- Allow configuration of min_gradient from UI to be negative in Trend ([@jpbede] - [#107720])
+- Bump aioswitcher to 3.4.1 ([@YogevBokobza] - [#107730])
+- Fix mqtt text text min max config params can not be equal ([@jbouwh] - [#107738])
+- Fix "not-logged" edge cases for Comelit VEDO ([@chemelli74] - [#107741])
+- Fix Mac address check in kef integration ([@eugenet8k] - [#107746])
+- Fix ld2410_ble not being able to setup because it has a stale connection ([@bdraco] - [#107754])
+- Bump pyunifiprotect to 4.23.1 ([@AngellusMortis] - [#107758])
+- Bump pyunifiprotect to 4.23.2 ([@AngellusMortis] - [#107769])
+- Rework events for UniFi Protect ([@AngellusMortis] - [#107771])
+- Fix switcher kis logging incorrect property for device's name ([@idofl] - [#107775])
+- Bump bluetooth deps ([@bdraco] - [#107816])
+- Fix Tailwind cover stuck in closing state ([@frenck] - [#107827])
+- Fix for exception in screenlogic.set_color_mode ([@dieselrabbit] - [#107850])
+- Bump aio_geojson_generic_client to 0.4 ([@exxamalte] - [#107866])
+
+[#106343]: https://github.com/home-assistant/core/pull/106343
+[#106730]: https://github.com/home-assistant/core/pull/106730
+[#106848]: https://github.com/home-assistant/core/pull/106848
+[#106970]: https://github.com/home-assistant/core/pull/106970
+[#107087]: https://github.com/home-assistant/core/pull/107087
+[#107239]: https://github.com/home-assistant/core/pull/107239
+[#107268]: https://github.com/home-assistant/core/pull/107268
+[#107331]: https://github.com/home-assistant/core/pull/107331
+[#107365]: https://github.com/home-assistant/core/pull/107365
+[#107366]: https://github.com/home-assistant/core/pull/107366
+[#107386]: https://github.com/home-assistant/core/pull/107386
+[#107388]: https://github.com/home-assistant/core/pull/107388
+[#107392]: https://github.com/home-assistant/core/pull/107392
+[#107396]: https://github.com/home-assistant/core/pull/107396
+[#107418]: https://github.com/home-assistant/core/pull/107418
+[#107452]: https://github.com/home-assistant/core/pull/107452
+[#107461]: https://github.com/home-assistant/core/pull/107461
+[#107500]: https://github.com/home-assistant/core/pull/107500
+[#107506]: https://github.com/home-assistant/core/pull/107506
+[#107519]: https://github.com/home-assistant/core/pull/107519
+[#107531]: https://github.com/home-assistant/core/pull/107531
+[#107537]: https://github.com/home-assistant/core/pull/107537
+[#107541]: https://github.com/home-assistant/core/pull/107541
+[#107546]: https://github.com/home-assistant/core/pull/107546
+[#107593]: https://github.com/home-assistant/core/pull/107593
+[#107631]: https://github.com/home-assistant/core/pull/107631
+[#107642]: https://github.com/home-assistant/core/pull/107642
+[#107657]: https://github.com/home-assistant/core/pull/107657
+[#107665]: https://github.com/home-assistant/core/pull/107665
+[#107671]: https://github.com/home-assistant/core/pull/107671
+[#107673]: https://github.com/home-assistant/core/pull/107673
+[#107676]: https://github.com/home-assistant/core/pull/107676
+[#107683]: https://github.com/home-assistant/core/pull/107683
+[#107695]: https://github.com/home-assistant/core/pull/107695
+[#107714]: https://github.com/home-assistant/core/pull/107714
+[#107720]: https://github.com/home-assistant/core/pull/107720
+[#107730]: https://github.com/home-assistant/core/pull/107730
+[#107738]: https://github.com/home-assistant/core/pull/107738
+[#107741]: https://github.com/home-assistant/core/pull/107741
+[#107746]: https://github.com/home-assistant/core/pull/107746
+[#107754]: https://github.com/home-assistant/core/pull/107754
+[#107758]: https://github.com/home-assistant/core/pull/107758
+[#107769]: https://github.com/home-assistant/core/pull/107769
+[#107771]: https://github.com/home-assistant/core/pull/107771
+[#107775]: https://github.com/home-assistant/core/pull/107775
+[#107816]: https://github.com/home-assistant/core/pull/107816
+[#107827]: https://github.com/home-assistant/core/pull/107827
+[#107850]: https://github.com/home-assistant/core/pull/107850
+[#107866]: https://github.com/home-assistant/core/pull/107866
+[@AngellusMortis]: https://github.com/AngellusMortis
+[@BTMorton]: https://github.com/BTMorton
+[@MartinHjelmare]: https://github.com/MartinHjelmare
+[@YogevBokobza]: https://github.com/YogevBokobza
+[@bdr99]: https://github.com/bdr99
+[@bdraco]: https://github.com/bdraco
+[@bieniu]: https://github.com/bieniu
+[@catsmanac]: https://github.com/catsmanac
+[@cdce8p]: https://github.com/cdce8p
+[@chemelli74]: https://github.com/chemelli74
+[@dieselrabbit]: https://github.com/dieselrabbit
+[@elmurato]: https://github.com/elmurato
+[@emontnemery]: https://github.com/emontnemery
+[@erwindouna]: https://github.com/erwindouna
+[@eugenet8k]: https://github.com/eugenet8k
+[@exxamalte]: https://github.com/exxamalte
+[@farmio]: https://github.com/farmio
+[@frenck]: https://github.com/frenck
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[@idofl]: https://github.com/idofl
+[@jbouwh]: https://github.com/jbouwh
+[@joostlek]: https://github.com/joostlek
+[@jpbede]: https://github.com/jpbede
+[@lellky]: https://github.com/lellky
+[@miaucl]: https://github.com/miaucl
+[@mkmer]: https://github.com/mkmer
+[@mrueg]: https://github.com/mrueg
+[@nabbi]: https://github.com/nabbi
+[@starkillerOG]: https://github.com/starkillerOG
+[@thecode]: https://github.com/thecode
+[@vexofp]: https://github.com/vexofp
+[@zxdavb]: https://github.com/zxdavb
+
+## Release 2024.1.4 - January 19
+
+- Fix MatrixBot not resolving room aliases per-command ([@PaarthShah] - [#106347])
+- Bump Pyenphase to 1.16.0 ([@catsmanac] - [#107719])
+- Fix loading empty yaml files with include_dir_named ([@pedrolamas] - [#107853])
+- Bump openwebifpy to 4.2.1 ([@autinerd] - [#107894])
+- Bump aiohomekit to 3.1.3 ([@bdraco] - [#107929])
+- Skip disk types in System Monitor ([@gjohansson-ST] - [#107943])
+- Fix duplicate unique id in System Monitor (again) ([@gjohansson-ST] - [#107947])
+- Bump pyenphase to 1.17.0 ([@catsmanac] - [#107950])
+- Update sleep period for Shelly devices with buggy fw ([@chemelli74] - [#107961])
+- Reload ZHA only a single time when the connection is lost multiple times ([@puddly] - [#107963])
+- Don't load entities for docker virtual ethernet interfaces in System Monitor ([@gjohansson-ST] - [#107966])
+- Improve coordinator logic in Tessie to allow sleep ([@Bre77] - [#107988])
+- Fix Shelly Gen1 entity description restore ([@thecode] - [#108052])
+- Fix malformed user input error on MJPEG config flow ([@codyc1515] - [#108058])
+- Fix turning on the light with a specific color ([@marcelveldt] - [#108080])
+- Bump Jinja2 to 3.1.3 ([@edenhaus] - [#108082])
+- Use compat for supported features in media player ([@joostlek] - [#108102])
+- Speed up ZHA initialization and improve startup responsiveness ([@puddly] - [#108103])
+- Bump `aioridwell` to 2024.01.0 ([@bachya] - [#108126])
+- Bump flipr-api to 1.5.1 ([@cnico] - [#108130])
+- Send target temp to Shelly TRV in F when needed ([@jra3] - [#108188])
+- Use cache update for WIFI blinds ([@starkillerOG] - [#108224])
+- Bump reolink_aio to 0.8.7 ([@starkillerOG] - [#108248])
+- Bump PyTado to 0.17.4 ([@erwindouna] - [#108255])
+- Bump aiounifi to v69 to improve websocket logging ([@Kane610] - [#108265])
+- Bump ZHA dependency zigpy to 0.60.6 ([@puddly] - [#108266])
+
+[#106347]: https://github.com/home-assistant/core/pull/106347
+[#106970]: https://github.com/home-assistant/core/pull/106970
+[#107239]: https://github.com/home-assistant/core/pull/107239
+[#107365]: https://github.com/home-assistant/core/pull/107365
+[#107719]: https://github.com/home-assistant/core/pull/107719
+[#107853]: https://github.com/home-assistant/core/pull/107853
+[#107883]: https://github.com/home-assistant/core/pull/107883
+[#107894]: https://github.com/home-assistant/core/pull/107894
+[#107929]: https://github.com/home-assistant/core/pull/107929
+[#107943]: https://github.com/home-assistant/core/pull/107943
+[#107947]: https://github.com/home-assistant/core/pull/107947
+[#107950]: https://github.com/home-assistant/core/pull/107950
+[#107961]: https://github.com/home-assistant/core/pull/107961
+[#107963]: https://github.com/home-assistant/core/pull/107963
+[#107966]: https://github.com/home-assistant/core/pull/107966
+[#107988]: https://github.com/home-assistant/core/pull/107988
+[#108052]: https://github.com/home-assistant/core/pull/108052
+[#108058]: https://github.com/home-assistant/core/pull/108058
+[#108080]: https://github.com/home-assistant/core/pull/108080
+[#108082]: https://github.com/home-assistant/core/pull/108082
+[#108102]: https://github.com/home-assistant/core/pull/108102
+[#108103]: https://github.com/home-assistant/core/pull/108103
+[#108126]: https://github.com/home-assistant/core/pull/108126
+[#108130]: https://github.com/home-assistant/core/pull/108130
+[#108134]: https://github.com/home-assistant/core/pull/108134
+[#108188]: https://github.com/home-assistant/core/pull/108188
+[#108224]: https://github.com/home-assistant/core/pull/108224
+[#108248]: https://github.com/home-assistant/core/pull/108248
+[#108255]: https://github.com/home-assistant/core/pull/108255
+[#108265]: https://github.com/home-assistant/core/pull/108265
+[#108266]: https://github.com/home-assistant/core/pull/108266
+[@Bre77]: https://github.com/Bre77
+[@Kane610]: https://github.com/Kane610
+[@PaarthShah]: https://github.com/PaarthShah
+[@allenporter]: https://github.com/allenporter
+[@autinerd]: https://github.com/autinerd
+[@bachya]: https://github.com/bachya
+[@bdraco]: https://github.com/bdraco
+[@catsmanac]: https://github.com/catsmanac
+[@chemelli74]: https://github.com/chemelli74
+[@cnico]: https://github.com/cnico
+[@codyc1515]: https://github.com/codyc1515
+[@edenhaus]: https://github.com/edenhaus
+[@erwindouna]: https://github.com/erwindouna
+[@frenck]: https://github.com/frenck
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[@joostlek]: https://github.com/joostlek
+[@jra3]: https://github.com/jra3
+[@marcelveldt]: https://github.com/marcelveldt
+[@pedrolamas]: https://github.com/pedrolamas
+[@puddly]: https://github.com/puddly
+[@starkillerOG]: https://github.com/starkillerOG
+[@thecode]: https://github.com/thecode
+
+## Release 2024.1.5 - January 20
+
+- Bump async-upnp-client to 0.38.1 ([@StevenLooman] - [#108382])
+- Fix empty files included by !include_dir_named ([@emontnemery] - [#108489])
+- Pin pandas to 2.1.4 ([@frenck] - [#108509])
+
+[#108382]: https://github.com/home-assistant/core/pull/108382
+[#108489]: https://github.com/home-assistant/core/pull/108489
+[#108509]: https://github.com/home-assistant/core/pull/108509
+[@StevenLooman]: https://github.com/StevenLooman
+[@emontnemery]: https://github.com/emontnemery
+[@frenck]: https://github.com/frenck
+
+## Release 2024.1.6 - January 30
+
+- Pass default SSLContext instances to Octoprint custom HTTP sessions ([@vexofp] - [#105351])
+- Reduce overhead for google calendar state updates ([@allenporter] - [#108133])
+- Fix SleepIQ setting FootWarmer timer ([@jmwaldrip] - [#108433])
+- Fix zha illuminance measured value mapping ([@floriankisser] - [#108547])
+- Bump yolink-api to 0.3.6 fix aiomqtt breaking changes ([@matrixd2] - [#108555])
+- Update openerz-api to 0.3.0 ([@misialq] - [#108575])
+- Bump aiovodafone to 0.5.4 ([@chemelli74] - [#108592])
+- Bump airthings-ble to 0.6.0 ([@LaStrada] - [#108612])
+- Fix alexa fails reporting the state in specific cases ([@jbouwh] - [#108743])
+- Reduce log level of ZHA endpoint handler init ([@puddly] - [#108749])
+- Fix google_assistant climate modes might be None ([@jbouwh] - [#108793])
+- Fix unhandled exception on humidifier intent when available_modes is None ([@jbouwh] - [#108802])
+- Fix processing supported color modes for emulated_hue ([@jbouwh] - [#108803])
+- Reduce log level for creating ZHA cluster handler ([@TheJulianJES] - [#108809])
+- Fix stalls in config flow of APCUPSD ([@yuxincs] - [#108931])
+- Add strings to Sensirion BLE ([@joostlek] - [#109001])
+- Fix entity naming for heatpump heatings in ViCare ([@CFenner] - [#109013])
+- Bump aiohttp to 3.9.3 ([@bdraco] - [#109025])
+- Bump ZHA dependency zigpy to 0.60.7 ([@puddly] - [#109082])
+- Add missing abort message for Spotify ([@joostlek] - [#109102])
+
+[#105351]: https://github.com/home-assistant/core/pull/105351
+[#106970]: https://github.com/home-assistant/core/pull/106970
+[#107239]: https://github.com/home-assistant/core/pull/107239
+[#107365]: https://github.com/home-assistant/core/pull/107365
+[#107883]: https://github.com/home-assistant/core/pull/107883
+[#108133]: https://github.com/home-assistant/core/pull/108133
+[#108379]: https://github.com/home-assistant/core/pull/108379
+[#108433]: https://github.com/home-assistant/core/pull/108433
+[#108502]: https://github.com/home-assistant/core/pull/108502
+[#108547]: https://github.com/home-assistant/core/pull/108547
+[#108555]: https://github.com/home-assistant/core/pull/108555
+[#108575]: https://github.com/home-assistant/core/pull/108575
+[#108592]: https://github.com/home-assistant/core/pull/108592
+[#108612]: https://github.com/home-assistant/core/pull/108612
+[#108743]: https://github.com/home-assistant/core/pull/108743
+[#108749]: https://github.com/home-assistant/core/pull/108749
+[#108793]: https://github.com/home-assistant/core/pull/108793
+[#108802]: https://github.com/home-assistant/core/pull/108802
+[#108803]: https://github.com/home-assistant/core/pull/108803
+[#108809]: https://github.com/home-assistant/core/pull/108809
+[#108931]: https://github.com/home-assistant/core/pull/108931
+[#109001]: https://github.com/home-assistant/core/pull/109001
+[#109013]: https://github.com/home-assistant/core/pull/109013
+[#109025]: https://github.com/home-assistant/core/pull/109025
+[#109082]: https://github.com/home-assistant/core/pull/109082
+[#109102]: https://github.com/home-assistant/core/pull/109102
+[@CFenner]: https://github.com/CFenner
+[@LaStrada]: https://github.com/LaStrada
+[@TheJulianJES]: https://github.com/TheJulianJES
+[@allenporter]: https://github.com/allenporter
+[@bdraco]: https://github.com/bdraco
+[@chemelli74]: https://github.com/chemelli74
+[@floriankisser]: https://github.com/floriankisser
+[@frenck]: https://github.com/frenck
+[@jbouwh]: https://github.com/jbouwh
+[@jmwaldrip]: https://github.com/jmwaldrip
+[@joostlek]: https://github.com/joostlek
+[@matrixd2]: https://github.com/matrixd2
+[@misialq]: https://github.com/misialq
+[@puddly]: https://github.com/puddly
+[@vexofp]: https://github.com/vexofp
+[@yuxincs]: https://github.com/yuxincs
+
[#100573]: https://github.com/home-assistant/core/pull/100573
[#100601]: https://github.com/home-assistant/core/pull/100601
[#101102]: https://github.com/home-assistant/core/pull/101102
diff --git a/source/getting-started/automation.markdown b/source/getting-started/automation.markdown
index 57932a8c383..024912d4b0d 100644
--- a/source/getting-started/automation.markdown
+++ b/source/getting-started/automation.markdown
@@ -3,33 +3,38 @@ title: "Automating Home Assistant"
description: "A quick intro on getting your first automation going."
---
-Once your {% term devices %} are set up, it's time to put the cherry on the pie: {% term automation %}. In this guide we're going to create a simple automation rule to turn on the lights when the sun sets. Of course, this assumes that you have set up an integration that provides a light at this point.
+Once your {% term devices %} are set up, it's time to put the cherry on the pie: {% term automation %}. We're going to create a simple automation to turn on the lights when the sun sets. Of course, this assumes that you have set up an integration that provides a light at this point.
-In the user interface in the sidebar, click **{% my automations title="Settings > Automations & Scenes" %}**. You will now see the automation screen from which you can manage all the automations in Home Assistant.
+## Automatically turn on the lights before sunset
-
+1. Go to {% my automations title="**Settings** > **Automations & scenes**" %} and in the lower right corner, select the **Create Automation** button.
-Click the blue button at the bottom right to create a new automation. A dialog will appear. Choose **Create new automation**. You are presented with a blank automation screen.
+ 
-
+ - You are presented with a blank automation screen.
-The first thing we will do is set a name. Enter "Turn Lights On at Sunset".
+ 
-The second step is defining what should {% term trigger %} our automation to run. In this case, we want to use the event of the sun setting to trigger our automation. However, if we would turn on the lights when the sun actually sets, it would be too late as it already gets quite dark while it's setting. So we're going to add an offset.
+2. The first step is defining what should {% term trigger %} the automation to run.
+ - In this case, we want to use the event of the sun setting to trigger our automation.
+ - Select **Add trigger**, type `Sun` and select it.
+ 
+3. Select **Sunset**.
+ - We want the automation to be triggered a little before that, so let's add `-00:30` as the offset. This indicates that the automation will be triggered 30 minutes before sunset. Neat!
-In the trigger section, click on the dropdown menu and change the trigger type to **Sun**. It allows us to choose sunrise or sunset, so go ahead and pick **Sunset**. As we discussed, we want our automation to be triggered a little before the sun actually sets, so let's add `-00:30` as the offset. This indicates that the automation will be triggered 30 minutes before the sun actually sets. Neat!
+ 
-
+4. Once we have defined our trigger, we need to define what should happen.
+ - Select **Add action**.
+ - Type `Ser` and select **Call service**
+5. Select **Light** > **Turn on** or directly enter `light.turn_on`.
+ - For this automation, we're going to turn on all lights in the living room, so let's select the **Area**.
+ - This only works if your lights are assigned to an {% term area %}.
-Once we have defined our trigger, scroll down to the action section. Make sure the action type is set to **Call service** and change the service to `light.turn_on`. For this automation we're going to turn on all lights, so let's change the service data to:
+ 
-```yaml
-entity_id: all
-```
-
-
-
-Click the orange button to save the automation. Now wait till it's 30 minutes until the sun sets and see your automation magic!
+6. To save the automation, select **Save**, give the automation a name and **Save** again.
+ - Now wait till it's 30 minutes until the sun sets and see your automation magic!
{% include getting-started/next_step.html step="Presence detection" link="/getting-started/presence-detection/" %}
diff --git a/source/getting-started/concepts-terminology.markdown b/source/getting-started/concepts-terminology.markdown
index cb5e3508a2a..32aab1db043 100644
--- a/source/getting-started/concepts-terminology.markdown
+++ b/source/getting-started/concepts-terminology.markdown
@@ -26,7 +26,7 @@ Devices are a logical grouping for one or more {% term entities %}. A {% term de
Devices and entities are used throughout Home Assistant. To name a few examples:
-- [Dashboards](#dashboards) can show a state of an {% term entity %}. For example, if a light is on or off.
+- [Dashboards](/getting-started/onboarding_dashboard/) can show a state of an {% term entity %}. For example, if a light is on or off.
- An [automation](#automations) can be triggered from a state change on an {% term entity %}. For example, a motion sensor entity detects motion and triggers a light to turn on.
- A predefined color and brightness setting for a light saved as a [scene](#scenes).
diff --git a/source/getting-started/onboarding_dashboard.markdown b/source/getting-started/onboarding_dashboard.markdown
index 37fbff83251..43909dae459 100644
--- a/source/getting-started/onboarding_dashboard.markdown
+++ b/source/getting-started/onboarding_dashboard.markdown
@@ -32,8 +32,10 @@ The procedure below is optional. The idea is to learn some basics on changing th
- Once you are done, select **Update**.

-4. To change the type of dashboard card, select the three-dots, then **Device info**.
- - You may be asked to *Take control of your dashboard*. Read and accept this before continuing.
+4. To change the type of dashboard card, in the top right corner, select the three-dots, then, in the **Edit dashboard** dialog, select the three dots again and select **Take control**.
+ 
+ - Read and accept this before continuing.
+ - On the dashboard, select the weather card, select the three dots, then **Device info**.
- Under **Sensors**, select **Add to dashboard**, then **Pick different card**.

diff --git a/source/green/index.html b/source/green/index.html
index 9f69711502d..6f64fb6f618 100644
--- a/source/green/index.html
+++ b/source/green/index.html
@@ -2339,11 +2339,29 @@ frontpage_image: /images/frontpage/green-frontpage.png
+