diff --git a/source/_docs/configuration/securing.markdown b/source/_docs/configuration/securing.markdown
index db6c9729a5a..5b73326e0be 100644
--- a/source/_docs/configuration/securing.markdown
+++ b/source/_docs/configuration/securing.markdown
@@ -9,7 +9,8 @@ One major advantage of Home Assistant is that it is not dependent on cloud servi
Here's the summary of what you *must* do to secure your Home Assistant system:
-- Configure [secrets](/docs/configuration/secrets/) (but do remember to back them up)
+- Centralize sensitive data in [secrets](/docs/configuration/secrets/) (but do remember to back them up)
+ - **Note**: Storing secrets in `secrets.yaml` does not encrypt them.
- Regularly keep the system up to date
## Remote Access
diff --git a/source/_docs/configuration/troubleshooting.markdown b/source/_docs/configuration/troubleshooting.markdown
index 9d84665e681..566ffc1eb59 100644
--- a/source/_docs/configuration/troubleshooting.markdown
+++ b/source/_docs/configuration/troubleshooting.markdown
@@ -104,22 +104,22 @@ The first thing you will need before reporting an issue online is debug logs and
### Enabling Debug Logging
-To enable debug logging for an integration, go to **Settings** > **Devices & Services** and select the integration. Select the triple dots for the integration giving you trouble and select **Enable Debug Logging**.
+To enable debug logging for an integration, go to **Settings** > **Devices & Services** > **Integrations** and go to the detail page of the integration. Select the **Enable Debug Logging** button on the left side of the integration detail page.
+
+
+
+ Example of Enable debug logging.
+
### Disable Debug Logging and Download Logs
-Once you enable debug logging, you ideally need to make the error happen. Run your automation, change up your device or whatever was giving you an error and then come back and disable Debug Logging. Disabling debug logging is the same as enabling, but now you will see **Disable Debug Logging**. After you disable debug logging, it will automatically prompt you to download your log file. Save this to a safe location to upload later.
-
-
-
- Example of Disable Debug Logging.
-
+Once you enable debug logging, you ideally need to make the error happen. Run your automation, change up your device or whatever was giving you an error and then come back and disable the debug logging. Disabling the debug logging is the same as enabling, but now the button says **Disable Debug Logging**. After you disable it, you will be automatically prompted you to download your log file. Save this to a safe location to upload later.
### Download Diagnostics
-After you download logs, you will also want to download the diagnostics for the integration giving you trouble. If the integration provides diagnostics, it will appear in the same menu that the Debug Logging toggle appeared.
+After you download logs, you will also want to download the diagnostics for the integration giving you trouble. If the integration provides diagnostics, it will appear in the three dot menu next to the integration configuration.
-
+
Example of Download Diagnostics.
diff --git a/source/_docs/z-wave/controllers.markdown b/source/_docs/z-wave/controllers.markdown
index 9ffbc80feba..e4600ba7b75 100644
--- a/source/_docs/z-wave/controllers.markdown
+++ b/source/_docs/z-wave/controllers.markdown
@@ -27,6 +27,8 @@ Users should upgrade the firmware on all 700 series controllers to version 7.17.
- Aeotec Z-Stick 7 USB stick (ZWA010) (the EU version is not recommended due to RF performance issues)
- Silicon Labs UZB-7 USB Stick (Silabs SLUSB7000A / SLUSB001A)
- Zooz S2 Stick 700 (ZST10 700)
+ - HomeSeer SmartStick+ G3
+ - HomeSeer Z-NET G3
- 500 series controllers
- Aeotec Z-Stick Gen5 (see note below)
@@ -35,6 +37,8 @@ Users should upgrade the firmware on all 700 series controllers to version 7.17.
- Sigma Designs UZB stick
- Vision USB stick - Gen5
- Z-Wave.Me UZB1 stick
+ - HomeSeer SmartStick+ G2
+ - HomeSeer Z-NET G2
- Raspberry Pi modules
- Aeotec Z-Pi 7 Raspberry Pi HAT/Shield (ZWA025, 700 series)
diff --git a/source/_includes/common-tasks/backups.md b/source/_includes/common-tasks/backups.md
index 18f71e269b7..2d714e8f7b0 100644
--- a/source/_includes/common-tasks/backups.md
+++ b/source/_includes/common-tasks/backups.md
@@ -1,6 +1,6 @@
## Backups
-Backup of your Home Assistant and add-on data and configuration. They are stored in a compressed archive file (.tar). Backups are made from the Supervisor Backups panel. There is also a service available that allows you to trigger the creation of a backup from an automation. Backups are stored in the `/backup` directory.
+Backup of your Home Assistant and add-on data and configuration. They are stored in a compressed archive file (.tar). Backups are made from the backups panel under {% my supervisor_backups title="**Settings** > **System** > **Backups**" %}. There is also a service available that allows you to trigger the creation of a backup from an automation. By default, backups are stored locally in the `/backup` directory.
A full backup includes the following directories:
@@ -12,16 +12,50 @@ A full backup includes the following directories:
A partial backup consists of any number of the above default directories and installed add-ons.
-### Making a Backup from the UI
+### Making a backup from the UI
-1. Go to {% my supervisor_backups title="Settings > System > Backups" %} in the UI.
-2. Click the **Create backup** button in the lower right.
+1. Go to {% my supervisor_backups title="**Settings** > **System** > **Backups**" %} in the UI.
+2. Select the **Create backup** button in the lower right.
3. Provide a name for the backup.
4. Choose full or partial.
-5. Choose to password protect or not. Password-protected backups cannot easily be browsed outside of Home Assistant OS.
-6. Click "Create" to begin the backup.
+5. Optionally, enable password protection.
+6. Select **Create** to begin the backup.
-### Restoring a Backup on a new install
+### Alternative: Creating a backup using the Home Assistant Command Line Interface
+
+1. `ha backups list` - lists backups and their slugnames
+2. `ha backups restore slugname` - restores a specific backup
+3. `ha backups new --name nameofbackup` - create a backup
+
+Use `ha help` to get more information about the command line usage.
+
+### Copying your backups to another location
+
+You might need a backup in case your system has crashed. If you only store them on the device itself, you won't be able to access them easily. We recommend that you copy them from `/backup` to another machine on occasion.
+
+There are multiple ways to store the backup on another device:
+
+- **Option 1**: Under {% my supervisor_backups title="**Settings** > **System** > **Backups**" %}, select the backup from the list.
+ - In the dialog, select the three dots menu and select **Download backup**.
+ - **Result**: The selected backup is stored in the **Downloads** folder of your computer.
+- **Option 2**: If you haven't already done so, [configure access to files on Home Assistant](/common-tasks/{{page.installation}}/#configuring-access-to-files), using one of the methods listed there.
+ - For example, [use the samba add-on](/common-tasks/{{page.installation}}/#installing-and-using-the-samba-add-on).
+ - In your file explorer, access Home Assistant, open the `backup` folder and copy the file to your computer.
+- **Option 3**: You can also change the default location for backups:
+ - [Add a network storage location](/common-tasks/{{page.installation}}/#network-storage) for backups.
+ - [Change the default location](/common-tasks/{{page.installation}}/#change-default-backup-location) for backups.
+
+- **Option 4**: Or even better, create an automation to handle that.
+- **Option 5**: Make use of a third-party add-on:
+ - [Google Drive Backup](https://github.com/sabeechen/hassio-google-drive-backup)
+ - [Dropbox Sync](https://github.com/danielwelch/hassio-dropbox-sync)
+ - [OneDrive Backup](https://github.com/lavinir/hassio-onedrive-backup)
+ - [Nextcloud Backup](https://github.com/Sebclem/hassio-nextcloud-backup)
+ - [Remote Backup (scp/rsync/rclone)](https://github.com/ikifar2012/remote-backup-addon)
+ - [Samba backup](https://github.com/thomasmauerer/hassio-addons/tree/master/samba-backup)
+ - [Syncthing](https://github.com/Poeschl/Hassio-Addons/tree/main/syncthing)
+
+### Restoring a backup
You can make use of backup which you have copied off of a previous install to restore to a new installation during the onboarding process. Follow the link at the bottom of the account creation page to upload your backup from the previous installation.
@@ -39,24 +73,3 @@ The length of time it takes to create or restore backup will depend on how much
If you're looking to slim down your backup, check if your configuration directory contains a large database file (`home-assistant_v2.db`). See the [`recorder`](/integrations/recorder/) integration page for options to keep your database data down to a size that won't cause issues. Note the keep days, purge interval, and include/exclude options.
When the restore is complete, Home Assistant will restart to apply the new settings. You will lose the connection to the UI and it will return once the restart is completed.
-
-### Creating backup using the Home Assistant Command Line Interface
-
-1. `ha backups list` - lists backups and their slugnames
-2. `ha backups restore slugname` - restores a specific backup
-3. `ha backups new --name nameofbackup` - create a backup
-
-Use `ha help` to get more information about the command line usage.
-
-
-### Copying your backups to another location
-
-You often need a backup in case your system has crashed. If you only store them on the crashed device, you won't be able to access them easily. We recommend that you manually copy them from `/backup` to another machine on occasion. Or even better, create an automation to handle that, or make use of one of the following add-ons:
-
-- [Google Drive Backup](https://github.com/sabeechen/hassio-google-drive-backup)
-- [Dropbox Sync](https://github.com/danielwelch/hassio-dropbox-sync)
-- [OneDrive Backup](https://github.com/lavinir/hassio-onedrive-backup)
-- [Nextcloud Backup](https://github.com/Sebclem/hassio-nextcloud-backup)
-- [Remote Backup (scp/rsync/rclone)](https://github.com/ikifar2012/remote-backup-addon)
-- [Samba backup](https://github.com/thomasmauerer/hassio-addons/tree/master/samba-backup)
-- [Syncthing](https://github.com/Poeschl/Hassio-Addons/tree/main/syncthing)
diff --git a/source/_integrations/adax.markdown b/source/_integrations/adax.markdown
index f8deed350ef..3d688bb5229 100644
--- a/source/_integrations/adax.markdown
+++ b/source/_integrations/adax.markdown
@@ -22,9 +22,10 @@ The local integrations only works with newer Adax heaters with both Bluetooth an
For the cloud integration, you'll need the Account ID (which can be found in the Adax Wifi app, pressing 'Account'). You will also need a credential, which you can create in the Adax app:
-1. Navigate to Account Tab,
-2. Select “Remote user client API”
-3. Select “Add Credential”
-4. Give some name to the created credential and copy the generated password.
+1. Navigate to the Account tab.
+2. Go to **Third party integrations**.
+3. Select **Remote API**.
+4. Select **Add Credential**.
+5. Give some name to the created credential (e.g. 'Home Assistant') and copy the generated password.
{% include integrations/config_flow.md %}
diff --git a/source/_integrations/alert.markdown b/source/_integrations/alert.markdown
index 203d7c4b7a2..c3671c4a0f8 100644
--- a/source/_integrations/alert.markdown
+++ b/source/_integrations/alert.markdown
@@ -292,4 +292,23 @@ but you will still receive the done message.
entity_id: alert.garage_door
```
+Notifications sent to Home Assistant Companion apps support [replacing](https://companion.home-assistant.io/docs/notifications/notifications-basic/#replacing) and [clearing](https://companion.home-assistant.io/docs/notifications/notifications-basic/#replacing) notifications. To use these functions with alerts, set a `tag` in the message data, send `clear_notification` as the `done_message`, and use `mobile_app_*` as the notifier:
+
+```yaml
+alert:
+ garage_door:
+ name: Garage is open
+ done_message: clear_notification
+ entity_id: input_boolean.garage_door
+ state: "on"
+ repeat: 30
+ can_acknowledge: true
+ skip_first: true
+ notifiers:
+ - mobile_app_ryan
+ - mobile_app_kristen
+ data:
+ tag: garage-door
+```
+
[template]: /docs/configuration/templating/
diff --git a/source/_integrations/androidtv_remote.markdown b/source/_integrations/androidtv_remote.markdown
index d85192c60a9..2acdbd4de4e 100644
--- a/source/_integrations/androidtv_remote.markdown
+++ b/source/_integrations/androidtv_remote.markdown
@@ -30,9 +30,9 @@ For a quick introduction on how to get started with Android TV Remote, check out
## Media player
-This integration adds a `media_player` with basic playback and volume controls. The media player provides volume information and display name of current active app on the Android TV. Due to API limitations, the integration will not display the playback status. It is recommended to use this integration together with [Google Cast integration](https://www.home-assistant.io/integrations/cast/). Two media players can be combined into one using the [Universal Media Player](https://www.home-assistant.io/integrations/universal/) integration.
+This integration adds a `media_player` with basic playback and volume controls. The media player provides volume information and display name of current active app on the Android TV. Due to API limitations, the integration will not display the playback status. It is recommended to use this integration together with [Google Cast integration](/integrations/cast/). Two media players can be combined into one using the [Universal Media Player](/integrations/universal/) integration. See [Using with Google Cast](#using-with-google-cast) section for more details.
-Using the `media_player.play_media` service, you can launch applications via `Deep Links` and switch channels.
+Using the `media_player.play_media` service, you can launch applications via `Deep Links` and switch channels. Only `url` and `channel` media types are supported.
### Launching apps
@@ -72,7 +72,7 @@ target:
### Switch channels
-You can pass the channel number to switch the channel. The channel number must be an integer.
+You can pass the channel number to switch channels. The channel number must be an integer.
Example:
@@ -86,6 +86,46 @@ target:
entity_id: media_player.living_room_tv
```
+### Using with Google Cast
+
+Android TV Remote integration provides information about the power status of the device and gives you the ability to control playback. However, it does not provide information about the currently playing content (media title, duration, play/pause state, etc.). In turn, [Google Cast](/integrations/cast/) integration does not provide reliable information about the power status of the device (e.g. on Android TV Home Screen) and does not allow to control playback in Android apps without [MediaSession](https://developer.android.com/reference/android/media/session/MediaSession) support. However, it can display full information about the content being played in supported apps. For convenience, you can combine two media players into one using [Universal Media Player](/integrations/universal/) integration. Universal Media Player will automatically select the appropriate active media player entity.
+
+{% details "Example YAML configuration" %}
+
+Replace `media_player.living_room_tv_remote` with your Android TV Remote media player entity ID.
+Replace `media_player.living_room_tv_cast` with your Google Cast media player entity ID.
+
+```yaml
+media_player:
+ - platform: universal
+ name: living_room_tv
+ unique_id: living_room_tv
+ device_class: tv
+ children:
+ - media_player.living_room_tv_remote
+ - media_player.living_room_tv_cast
+ browse_media_entity: media_player.living_room_tv_cast
+ commands:
+ turn_off:
+ service: media_player.turn_off
+ data:
+ entity_id: media_player.living_room_tv_remote
+ turn_on:
+ service: media_player.turn_on
+ data:
+ entity_id: media_player.living_room_tv_remote
+ volume_up:
+ service: media_player.volume_up
+ data:
+ entity_id: media_player.living_room_tv_remote
+ volume_down:
+ service: media_player.volume_down
+ data:
+ entity_id: media_player.living_room_tv_remote
+```
+
+{% enddetails %}
+
## Remote
The remote allows you to send key commands to your Android TV device with the `remote.send_command` service.
diff --git a/source/_integrations/devolo_home_network.markdown b/source/_integrations/devolo_home_network.markdown
index 90e6fc14f01..10826a4e1a2 100755
--- a/source/_integrations/devolo_home_network.markdown
+++ b/source/_integrations/devolo_home_network.markdown
@@ -60,13 +60,13 @@ Currently the following device types within Home Assistant are supported.
### Presence Detection
- Detect presence of devices connected to the main or the guest wifi
- - Updates every 10 seconds
+ - Updates every 15 seconds
- Automatically adds new devices as disabled entities unless disabled via system option
### Sensors
- Number of connected wifi clients
- - Updates every 10 seconds
+ - Updates every 15 seconds
- Is enabled by default
- Number of neighbored wifi networks
- Updates every 5 minutes
diff --git a/source/_integrations/event.mqtt.markdown b/source/_integrations/event.mqtt.markdown
index ab01e916815..d1c62b8d286 100644
--- a/source/_integrations/event.mqtt.markdown
+++ b/source/_integrations/event.mqtt.markdown
@@ -2,7 +2,7 @@
title: "MQTT Event"
description: "Instructions on how to integrate MQTT events into Home Assistant."
ha_category:
- - Event
+ - Events
ha_release: 2023.8
ha_iot_class: Configurable
ha_domain: mqtt
@@ -221,3 +221,33 @@ The example below demonstrates how event attributes can be added to the event da
```bash
mosquitto_pub -h 127.0.0.1 -t home/doorbell/state -m '{"event_type": "press", "duration": 0.1}'
```
+
+### Example: processing event data using a value template
+
+In many cases, translation of an existing published payload is needed.
+The example config below translates the payload `{"Button1": {"Action": "SINGLE"}}` of
+the device `Button1` with event type `single` to the required format.
+An extra attribute `button` will be set to `Button1` and be added to the entity,
+but only if the `Action` property is set. Empty dictionaries will be ignored.
+
+{% raw %}
+
+```yaml
+mqtt:
+ - event:
+ name: "Desk button"
+ state_topic: "desk/button/state"
+ event_types:
+ - single
+ - double
+ device_class: "button"
+ value_template: |
+ { {% for key in value_json %}
+ {% if value_json[key].get("Action") %}
+ "button": "{{ key }}",
+ "event_type": "{{ value_json[key].Action | lower }}"
+ {% endif %}
+ {% endfor %} }
+```
+
+{% endraw %}
diff --git a/source/_integrations/google.markdown b/source/_integrations/google.markdown
index c0cfd25fadb..a8066ae58a6 100644
--- a/source/_integrations/google.markdown
+++ b/source/_integrations/google.markdown
@@ -85,6 +85,11 @@ If the setup process fails and you see an error message such as *Authentication
If you have an error with your credentials, you can delete them in the [Application Credentials](/integrations/application_credentials/) user interface.
+### Video Tutorial
+This video tutorial explains how to set up Google Calendar in Home Assistant and how you can trigger an automation based on a calendar event.
+
+
+
## Calendar Entities
Each Google Calendar from *My Calendars* ([more info](https://support.google.com/calendar/answer/37095)) is represented as a [calendar](/integrations/calendar) entity in Home Assistant.
diff --git a/source/_integrations/google_cloud.markdown b/source/_integrations/google_cloud.markdown
index 884158516f5..0a08a611fc8 100644
--- a/source/_integrations/google_cloud.markdown
+++ b/source/_integrations/google_cloud.markdown
@@ -49,14 +49,19 @@ Basic instruction for all APIs:
6. Set up authentication:
1. Visit [this link](https://console.cloud.google.com/apis/credentials/serviceaccountkey)
- 2. From the `Service account` list, select `New service account`.
+ 2. From the toolbar above the `Service account` list, select `Create service account`.
3. In the `Service account name` field, enter any name.
If you are requesting a text-to-speech API key:
4. Don't select a value from the Role list. **No role is required to access this service**.
- 5. Click `Create`. A note appears, warning that this service account has no role.
- 6. Click `Create without role`. A JSON file that contains your `API key` downloads to your computer.
+ 5. Click `Create`. If a note appears, warning that this service account has no role, you may ignore that.
+ 6. Return to the `Service account` list page and click on the service account you created in step 5 to see the details for this service account.
+ 7. Choose the `Keys` tab within the details view for this service account.
+ 8. In the `Add Key` dropdown, select `Create New Key`.
+ 9. Specify a `JSON` key type and click `Create`.
+ 10. A `[serviceaccountname].json` file will download to your browser.
+
## Google Cloud text-to-speech
@@ -66,10 +71,13 @@ Basic instruction for all APIs:
The Cloud text-to-speech API is priced monthly based on the amount of characters to synthesize into audio sent to the service.
-| Feature | Monthly free tier | Paid usage |
+| Voice | Monthly free tier | Paid usage |
| ----------------------------- | ------------------------- | --------------------------------- |
-| Standard (non-WaveNet) voices | 0 to 4 million characters | $4.00 USD / 1 million characters |
-| WaveNet voices | 0 to 1 million characters | $16.00 USD / 1 million characters |
+| Neural2 | 0 to 1 million bytes | $16.00 USD / 1 million bytes |
+| Polyglot (Preview) | 0 to 1 million bytes | $16.00 USD / 1 million bytes |
+| Studio (Preview) | 0 to 100 thousand bytes | $160.00 USD / 1 million bytes |
+| Standard | 0 to 4 million characters | $4.00 USD / 1 million characters |
+| WaveNet | 0 to 1 million characters | $16.00 USD / 1 million characters |
### Text-to-speech configuration
diff --git a/source/_integrations/home_plus_control.markdown b/source/_integrations/home_plus_control.markdown
index c76c8cd972d..25e0bec1062 100644
--- a/source/_integrations/home_plus_control.markdown
+++ b/source/_integrations/home_plus_control.markdown
@@ -14,6 +14,12 @@ ha_platforms:
ha_integration_type: integration
---
+
+
+The Legrand Home+ Control cloud is shutting down in December. Use [the Netatmo integration](/integrations/netatmo/) to integrate your Legrand Home+ Control devices.
+
+
+
The Home+ Control integration platform allows you to control a range of Legrand in-wall switches and power outlets that have smart home functionality thanks to their "with Netatmo" capabilities.
This integration works against the Home+ Control API, which is one of the many APIs offered through the [*Works with Legrand*](https://developer.legrand.com/) program. The API is capable of managing "Legrand/Btcino with Netatmo" devices, such as light switches, power outlets and rolling shutters.
diff --git a/source/_integrations/homeassistant_sky_connect.markdown b/source/_integrations/homeassistant_sky_connect.markdown
new file mode 100644
index 00000000000..ed2dbdcca34
--- /dev/null
+++ b/source/_integrations/homeassistant_sky_connect.markdown
@@ -0,0 +1,20 @@
+---
+title: Home Assistant SkyConnect
+description: Home Assistant SkyConnect provides hardware information for the hardware configuration page.
+ha_release: 2022.9
+ha_category:
+ - Other
+ha_codeowners:
+ - '@home-assistant/core'
+ha_domain: homeassistant_sky_connect
+ha_integration_type: hardware
+---
+
+The Home Assistant SkyConnect integration provides hardware information for the hardware configuration page.
+
+For documentation on the Home Assistant SkyConnect, please visit the [documentation page](https://skyconnect.home-assistant.io/documentation/).
+If you are looking to buy one, please visit the [product page](https://home-assistant.io/skyconnect)
+
+## Configuration
+
+This integration is not user configurable.
diff --git a/source/_integrations/homeassistant_yellow.markdown b/source/_integrations/homeassistant_yellow.markdown
new file mode 100644
index 00000000000..3e3b9ce1ccf
--- /dev/null
+++ b/source/_integrations/homeassistant_yellow.markdown
@@ -0,0 +1,20 @@
+---
+title: Home Assistant Yellow
+description: Home Assistant Yellow provides hardware information for the hardware configuration page.
+ha_release: 2022.7
+ha_category:
+ - Other
+ha_codeowners:
+ - '@home-assistant/core'
+ha_domain: homeassistant_yellow
+ha_integration_type: hardware
+---
+
+The Home Assistant Yellow integration provides hardware information for the hardware configuration page.
+
+For documentation on the Home Assistant Yellow, please visit the [documentation](https://yellow.home-assistant.io/documentation/).
+If you are looking to buy one, please visit the [product page](https://home-assistant.io/yellow).
+
+## Configuration
+
+This integration is not user configurable.
diff --git a/source/_integrations/life360.markdown b/source/_integrations/life360.markdown
index 90ac1b46d07..a8f78006dba 100644
--- a/source/_integrations/life360.markdown
+++ b/source/_integrations/life360.markdown
@@ -21,6 +21,8 @@ The `life360` integration allows you to detect presence using the [unofficial AP
You must first [create a Life360 account](https://app.life360.com/sign-up).
Individual Members must enable Location Sharing in their Life360 app to show up as a tracked entity in Home Assistant.
+> When adding your Life360 account to Home Assistant, you must use the email address associated with your Life360 account, not the phone number.
+
{% include integrations/config_flow.md %}
### Account options
diff --git a/source/_integrations/reolink.markdown b/source/_integrations/reolink.markdown
index 628ccc21e68..46e1a0a8246 100644
--- a/source/_integrations/reolink.markdown
+++ b/source/_integrations/reolink.markdown
@@ -272,6 +272,7 @@ Then power up the camera while pointing it at the QR code. It takes about a minu
- On some camera models, the RTMP port needs to be enabled in order for the HTTP(S) port to function properly. Make sure this port is also enabled if you get a `Cannot connect to host` error while one of the HTTP/HTTPS ports is already enabled.
- Setting a static IP address for Reolink cameras/NVRs in your router is advisable to prevent (temporal) connectivity issues when the IP address changes.
- Do not set a static IP in the Reolink device itself, but leave the **Connection Type** on **DHCP** under **Settings** > **Network** > **Network Information** > **Set Up**. If you set it to **static** on the Reolink device itself, this is known to cause incorrect DHCP requests on the network. The incorrect DHCP request causes Home Assistant to use the wrong IP address for the camera, resulting in connection issues. The issue originates from the Reolink firmware, which keeps sending DCHP requests even when you set a static IP address in the Reolink device.
+- Reolink cameras can support a limited amount of simultaneous connections. Therefore using third-party software like Frigate, Blue Iris, or Scrypted, or using the ONVIF integration at the same time can cause the camera to drop connections. This results in short unavailabilities of the Reolink entities in Home Assistant. Especially when the connections are coming from the same device (IP) where Home Assistant is running, the Reolink cameras can get confused, dropping one connection in favor of the other originating from the same host IP. If you experience disconnections/unavailabilities of the entities, please first temporarily shut down the other connections (like Frigate) to diagnose if that is the problem. If that is indeed the problem, you could try moving the third-party software to a different host (IP address) since that is known to solve the problem most of the time. You could also try switching the protocol to FLV on Home Assistant and/or the third-party software, as that is known to be less resource-intensive on the camera.
### Reducing latency of motion events
diff --git a/source/_integrations/sensor.markdown b/source/_integrations/sensor.markdown
index 7253851a8b9..5a34766fe85 100644
--- a/source/_integrations/sensor.markdown
+++ b/source/_integrations/sensor.markdown
@@ -22,7 +22,7 @@ The type of data a sensor returns impacts how it is displayed in the frontend. T
- **None**: Generic sensor. This is the default and doesn't need to be set.
- **apparent_power**: Apparent power in VA.
- **aqi**: Air Quality Index (unitless).
-- **atmospheric_pressure**: Atmospheric pressure in cbar, bar, hPa, inHg, kPa, mbar, Pa or psi
+- **atmospheric_pressure**: Atmospheric pressure in cbar, bar, hPa, mmHg, inHg, kPa, mbar, Pa or psi
- **battery**: Percentage of battery that is left in %
- **carbon_dioxide**: Carbon Dioxide in CO2 (Smoke) in ppm
- **carbon_monoxide**: Carbon Monoxide in CO (Gas CNG/LPG) in ppm
diff --git a/source/_integrations/switch.mqtt.markdown b/source/_integrations/switch.mqtt.markdown
index c95f73169b3..77b7c13d181 100644
--- a/source/_integrations/switch.mqtt.markdown
+++ b/source/_integrations/switch.mqtt.markdown
@@ -68,7 +68,7 @@ availability_topic:
type: string
command_topic:
description: The MQTT topic to publish commands to change the switch state.
- required: false
+ required: true
type: string
device:
description: "Information about the device this switch is a part of to tie it into the [device registry](https://developers.home-assistant.io/docs/en/device_registry_index.html). Only works when [`unique_id`](#unique_id) is set. At least one of identifiers or connections must be present to identify the device."
diff --git a/source/_integrations/ultraloq.markdown b/source/_integrations/ultraloq.markdown
new file mode 100644
index 00000000000..11c2a37a5cb
--- /dev/null
+++ b/source/_integrations/ultraloq.markdown
@@ -0,0 +1,22 @@
+---
+title: Ultraloq
+description: Connect and control your Ultraloq Z-Wave series devices using the Z-Wave integration
+ha_release: '2022.11'
+ha_category:
+ - Lock
+ha_domain: ultraloq
+ha_integration_type: virtual
+works_with:
+ - zwave
+ha_iot_standard: zwave
+---
+
+Ultraloq smart locks allow users to enter their homes without a key. The lock can be controlled remotely using the Ultraloq app or by using Home Assistant. U-tec, their parent company, is a member of the Works with Home Assistant partner program. This means they are committed to making sure the Ultraloq Z-Wave products are up-to-date and ready to use with Home Assistant.
+
+Ultraloq Z-Wave Series smart locks work locally and integrate seamlessly with the Z-Wave integration in Home Assistant (Z-Wave stick required).
+
+To add Ultraloq Z-Wave products, pair them as Z-Wave devices:
+
+{% my add_zwave_device badge domain=page.ha_domain %}
+
+[Learn more about Z-Wave in Home Assistant.](/integrations/zwave_js/)
diff --git a/source/_integrations/withings.markdown b/source/_integrations/withings.markdown
index 9e1458cf537..f58de13d921 100644
--- a/source/_integrations/withings.markdown
+++ b/source/_integrations/withings.markdown
@@ -82,60 +82,3 @@ use_webhook:
type: boolean
{% endconfiguration %}
-## Bonus: Template Sensors to Convert Kilograms to Pounds
-
-In a text editor, replace ```USER_PROFILE_NAME``` in the template sensors below with your Withings User Profile Name defined in the Withings integration configuration.
-
-{% raw %}
-
-```yaml
-# Example configuration.yaml entry
-template:
- - sensor:
- - name: Withings weight lbs USER_PROFILE_NAME
- unit_of_measurement: "lbs"
- state: >-
- {{
- (states('sensor.withings_weight_kg_USER_PROFILE_NAME') | float(0) * 2.20462262185)
- | round(2, default=0)
- }}
- icon: "mdi:weight-pound"
-
- - name: Withings bone mass lbs USER_PROFILE_NAME
- unit_of_measurement: "lbs"
- state: >-
- {{
- (states('sensor.withings_bone_mass_kg_USER_PROFILE_NAME') | float(0) * 2.20462262185)
- | round(2, default=0)
- }}
- icon: "mdi:weight-pound"
-
- - name: Withings fat free mass lbs USER_PROFILE_NAME
- unit_of_measurement: "lbs"
- state: >-
- {{
- (states('sensor.withings_fat_free_mass_kg_USER_PROFILE_NAME') | float(0) * 2.20462262185)
- | round(2, default=0)
- }}
- icon: "mdi:weight-pound"
-
- - name: Withings fat mass lbs USER_PROFILE_NAME
- unit_of_measurement: "lbs"
- state: >-
- {{
- (states('sensor.withings_fat_mass_kg_USER_PROFILE_NAME') | float(0) * 2.20462262185)
- | round(2, default=0)
- }}
- icon: "mdi:weight-pound"
-
- - name: Withings muscle mass lbs USER_PROFILE_NAME
- unit_of_measurement: "lbs"
- state: >-
- {{
- (states('sensor.withings_muscle_mass_kg_USER_PROFILE_NAME') | float(0) * 2.20462262185)
- | round(2, default=0)
- }}
- icon: "mdi:weight-pound"
-```
-
-{% endraw %}
diff --git a/source/_posts/2022-10-25-ultraloq-partner.markdown b/source/_posts/2022-10-25-ultraloq-partner.markdown
index d0abb44c5e9..13774b28d93 100644
--- a/source/_posts/2022-10-25-ultraloq-partner.markdown
+++ b/source/_posts/2022-10-25-ultraloq-partner.markdown
@@ -12,10 +12,6 @@ categories:
og_image: /images/blog/2022-10-25-ultraloq-partner/social.png
---
-
-On July 11th, 2023, due to fundamentally different perceptions of best Home Assistant user experience, Ultraloq by U-tec was removed from
Works With Home Assistant partner program.
-
-
Today we are excited to announce that [Ultraloq by U-tec](https://u-tec.com) has joined the Works with Home Assistant program as a Z-Wave partner.
diff --git a/source/_redirects b/source/_redirects
index b805dece7ef..72a31657ff3 100644
--- a/source/_redirects
+++ b/source/_redirects
@@ -544,7 +544,6 @@ layout: null
/integrations/trackr /more-info/removed-integration 301
/integrations/ubee /more-info/removed-integration 301
/integrations/uber /more-info/removed-integration 301
-/integrations/ultraloq /more-info/removed-integration 301
/integrations/updater /more-info/removed-integration 301
/integrations/ups /more-info/removed-integration 301
/integrations/uscis /more-info/removed-integration 301
diff --git a/source/images/docs/configuration/disable-debug-logging.gif b/source/images/docs/configuration/disable-debug-logging.gif
deleted file mode 100644
index add1b28e3b8..00000000000
Binary files a/source/images/docs/configuration/disable-debug-logging.gif and /dev/null differ
diff --git a/source/images/docs/configuration/download-diagnostics.gif b/source/images/docs/configuration/download-diagnostics.gif
deleted file mode 100644
index ef003051434..00000000000
Binary files a/source/images/docs/configuration/download-diagnostics.gif and /dev/null differ
diff --git a/source/images/docs/configuration/download-diagnostics.png b/source/images/docs/configuration/download-diagnostics.png
new file mode 100644
index 00000000000..3bff602f0ff
Binary files /dev/null and b/source/images/docs/configuration/download-diagnostics.png differ
diff --git a/source/images/docs/configuration/enable-debug-logging.png b/source/images/docs/configuration/enable-debug-logging.png
new file mode 100644
index 00000000000..68cf50eae8f
Binary files /dev/null and b/source/images/docs/configuration/enable-debug-logging.png differ
diff --git a/source/yellow/index.html b/source/yellow/index.html
index 7a288f242be..b82adf634ea 100644
--- a/source/yellow/index.html
+++ b/source/yellow/index.html
@@ -180,7 +180,7 @@ frontpage_image: /images/frontpage/yellow-frontpage.jpg
-
+
Yellow Kit with Power-over-Ethernet
Some assembly required! This kit supports Power-over-Ethernet (PoE) but is otherwise almost the same as the flagship version.
Without the Raspberry Pi Compute Module 4.
@@ -189,7 +189,7 @@ frontpage_image: /images/frontpage/yellow-frontpage.jpg
-
+
Yellow Kit with power supply
Some assembly required! This kit is almost the same as the flagship version.
Without the Raspberry Pi Compute Module 4.