No matter your experience, there are plenty of ways to get involved and contribute to Home Assistant! If you’ve got the dev skills (whether you're a beginner or expert), start here, which shows you how to craft a PR, and then check out our extensive Core documentation to help familiarize yourself with our architecture. There you will find instructions on how to join the Developers category in our Discord server, which allows you to chat directly with other developers.
If you're knowledgeable about how to use Home Assistant, don't be afraid to hop onto one (or more) of our community platforms to share this knowledge. This is a great way to contribute if you’re not a developer. Additionally, suppose you're a designer and are passionate about Home Assistant. In that case, we'd love for you to check out our Developers category in Discord (Follow the steps to join the development server, and choose I want to contribute design skills!).
If you’re not able to give your time, you can also financially support the foundation, which pays passionate people to work on Home Assistant full-time. Subscribing to Home Assistant Cloud or purchasing our officially licensed Home Assistant hardware supports the development of this project and many others. In the near future, we hope to relaunch our merch store where community members can purchase swag to support the foundation.
+ - question: Where can I find regional communities?
+ answer:
This is not an exhaustive list of regional communities, but the ones that we are aware of. Is yours missing? Let us know!
+ - question: Can community hosts be reimbursed for fees related to their meetups?
+ answer: Yes! Community is the foundation of Home Assistant, and we want to help make sure that meeting with other smart home enthusiasts is a stress-free experience. The Open Home Foundation will reimburse hosts for certain fees related to hosting a meetup. Check out our Expense Guidelines for Hosts for more information.
+ - question: I have a suggestion for this page!
+ answer: Excellent! Let Missy know by emailing community@openhomefoundation.org, and we'll put it under consideration.
\ No newline at end of file
diff --git a/source/_data/glossary.yml b/source/_data/glossary.yml
index f60b457e083..d493ca42616 100644
--- a/source/_data/glossary.yml
+++ b/source/_data/glossary.yml
@@ -79,7 +79,7 @@
Home Assistant has built-in functionality to create files containing a copy
of your configuration. This can be used to restore your Home Assistant as
well as migrate to a new system. The backup feature is available for all
- [installation types](/installation/#about-installation-methods).
+ [installation types](/installation/#about-installation-types).
link: /common-tasks/general/#backups
aliases:
- backups
@@ -307,23 +307,23 @@
Home Assistant Container is a standalone container-based installation of
Home Assistant Core. Any [OCI](https://opencontainers.org/) compatible
runtime can be used, but the documentation focus is on Docker.
- link: /installation/#about-installation-methods
+ link: /installation/#about-installation-types
- term: Home Assistant Core
definition: >-
Home Assistant Core is the Python program at the heart of Home Assistant. It
is part of all installation types. It can be installed standalone (without Home Assistant
Supervisor) as a container using Docker (this is typically referred to as the Home Assistant
- Container installation method). For development, Core can also be run using a Virtual
- Environment (previously referred as the Home Assistant Core installation method.
- For production setup, the [Home Assistant Core installation method is deprecated](https://www.home-assistant.io/blog/2025/05/22/deprecating-core-and-supervised-installation-methods-and-32-bit-systems/).
+ Container installation type). For development, Core can also be run using a Virtual
+ Environment (previously referred as the Home Assistant Core installation type.
+ For production setup, the [Home Assistant Core installation type is deprecated](https://www.home-assistant.io/blog/2025/05/22/deprecating-core-and-supervised-installation-methods-and-32-bit-systems/).
- term: Home Assistant Supervised
definition: >-
- The Home Assistant Supervised installation method is a full UI managed home automation ecosystem
+ The Home Assistant Supervised installation type is a full UI managed home automation ecosystem
that runs the Home Assistant Core program, the Home Assistant Supervisor and
add-ons. It comes pre-installed on Home Assistant OS, but can be installed
standalone on Debian Linux systems. It leverages Docker, which is managed by
the Home Assistant Supervisor. The
- [Home Assistant Supervised installation method is deprecated](https://www.home-assistant.io/blog/2025/05/22/deprecating-core-and-supervised-installation-methods-and-32-bit-systems/).
+ [Home Assistant Supervised installation type is deprecated](https://www.home-assistant.io/blog/2025/05/22/deprecating-core-and-supervised-installation-methods-and-32-bit-systems/).
- term: Home Assistant Supervisor
definition: >-
The Home Assistant Supervisor is a program that manages a Home Assistant
@@ -337,7 +337,7 @@
includes Home Assistant Core, the Home Assistant Supervisor, and supports
add-ons. Home Assistant Supervisor keeps it up to date, removing the need
for you to manage an operating system. Home Assistant Operating System is
- the recommended installation method for most users.
+ the recommended installation type for most users.
- term: Host
definition: >-
A device that can communicate with other devices on a network. During setup
diff --git a/source/_docs/automation/templating.markdown b/source/_docs/automation/templating.markdown
index 0b6d054283e..95ab1ce678a 100644
--- a/source/_docs/automation/templating.markdown
+++ b/source/_docs/automation/templating.markdown
@@ -7,10 +7,10 @@ Automations support the advanced features of [templating](/docs/configuration/te
Example of variables used in templates:
-```jinja
- {{ this.name }} is the name of the automation executing from this trigger
- {{ trigger.platform }} is the type of trigger object, like `calendar`
- ```
+{% raw %}
+- `{{ this.name }}` is the name of the automation executing from this trigger
+- `{{ trigger.platform }}` is the type of trigger object, like `calendar`
+{% endraw %}
## Available state data
diff --git a/source/_docs/automation/using_blueprints.markdown b/source/_docs/automation/using_blueprints.markdown
index ce6834b1262..994ed35caee 100644
--- a/source/_docs/automation/using_blueprints.markdown
+++ b/source/_docs/automation/using_blueprints.markdown
@@ -86,7 +86,7 @@ If you do not want to [re-import the blueprint](/docs/automation/using_blueprint
its {% term YAML %} content to keep it up to date:
1. Navigate to the blueprints directory (`blueprints/automation/`).
- The location of this directory depends on the installation method. It's
+ The location of this directory depends on the installation type. It's
similar to how you find [`configuration.yaml`](/docs/configuration/#editing-configurationyaml).
2. Next, you must find the blueprint to update. The path name of a blueprint consists of:
- The username of the user that created it. The name depends on the source of the blueprint:
diff --git a/source/_docs/blueprint/selectors.markdown b/source/_docs/blueprint/selectors.markdown
index 691f7b5afc7..b459f2e1f96 100644
--- a/source/_docs/blueprint/selectors.markdown
+++ b/source/_docs/blueprint/selectors.markdown
@@ -1197,7 +1197,7 @@ When used without options, the selector will accept a free form object.
object:
```
-When used with a `schema`, the selector will force the object to be in this format by displaying a form.
+When used with `fields` specified, the selector will force the object to be in this format by displaying a form.

@@ -1220,7 +1220,7 @@ object:
The output of this selector is a YAML object.
-{% configuration qr_code %}
+{% configuration object %}
fields:
description: >
List of fields of the object.
@@ -1231,6 +1231,11 @@ fields:
description: The label of the field
required: false
type: string
+ required:
+ description: If set to true, the field must be present.
+ required: false
+ default: false
+ type: boolean
selector:
description: The selector to use for this field. It can be any available selector.
required: true
@@ -1256,7 +1261,7 @@ translation_key:
required: false
multiple:
description: >
- Allows selecting multiple options. If set to `true`, the resulting value of this selector will be a list instead of a single string value. This option is only used if `fields` option set.
+ Allows adding multiple objects. If set to `true`, the resulting value of this selector will be a list instead of a single YAML object. This option is only used if `fields` option set.
type: boolean
required: false
default: false
diff --git a/source/_docs/configuration.markdown b/source/_docs/configuration.markdown
index b7e7d543460..2ab9ddbd0bb 100644
--- a/source/_docs/configuration.markdown
+++ b/source/_docs/configuration.markdown
@@ -27,7 +27,7 @@ Example of a configuration.yaml file, accessed using the File editor add-on on a
## Editing `configuration.yaml`
-How you edit your `configuration.yaml` file depends on your editor preferences and the [installation method](/installation/#about-installation-methods) you used to set up Home Assistant. Follow these steps:
+How you edit your `configuration.yaml` file depends on your editor preferences and the [installation type](/installation/#about-installation-types) you used to set up Home Assistant. Follow these steps:
1. [Set up file access](#to-set-up-access-to-the-files-and-prepare-an-editor).
2. [Locate the config directory](#to-find-the-configuration-directory).
@@ -37,7 +37,7 @@ How you edit your `configuration.yaml` file depends on your editor preferences a
### To set up access to the files and prepare an editor
Before you can edit a file, you need to know how to access files in Home Assistant and setup an editor.
-File access depends on your [installation method](/installation/#about-installation-methods). If you use {% term "Home Assistant Operating System" %}, you can use editor add-ons, for example. If you use {% term "Home Assistant Container" %}, add-ons are not available.
+File access depends on your [installation type](/installation/#about-installation-types). If you use {% term "Home Assistant Operating System" %}, you can use editor add-ons, for example. If you use {% term "Home Assistant Container" %}, add-ons are not available.
To set up file access on the Home Assistant Operating System, follow these steps:
@@ -70,7 +70,7 @@ If you have watched any videos about setting up Home Assistant using `configurat
After changing configuration or automation files, you can check if the configuration is valid. A configuration check is also applied automatically when you reload the configuration or when you restart Home Assistant.
-The method for running a configuration check depends on your [installation type](/installation/#about-installation-methods). Check the common tasks for your installation type:
+The method for running a configuration check depends on your [installation type](/installation/#about-installation-types). Check the common tasks for your installation type:
- [Configuration check on Operating System](/common-tasks/os/#configuration-check)
- [Configuration check on Container](/common-tasks/container/#configuration-check)
diff --git a/source/_docs/tools/hass.markdown b/source/_docs/tools/hass.markdown
index d3517c577e3..26dcd7be8c3 100644
--- a/source/_docs/tools/hass.markdown
+++ b/source/_docs/tools/hass.markdown
@@ -5,7 +5,7 @@ description: "Description of hass."
The command-line part of Home Assistant is `hass`.
-This tool is only available to users of the Home Assistant Core installation method. It is started from the command line on the computer running Home Assistant Core (accessed perhaps via SSH).
+This tool is only available to users of the Home Assistant Core installation type. It is started from the command line on the computer running Home Assistant Core (accessed perhaps via SSH).
```text
$ hass -h
diff --git a/source/_faq/ha-vs-hassio.markdown b/source/_faq/ha-vs-hassio.markdown
index 1cd8f365421..ce150c9cba1 100644
--- a/source/_faq/ha-vs-hassio.markdown
+++ b/source/_faq/ha-vs-hassio.markdown
@@ -5,7 +5,7 @@ ha_category: Installation
---
Home Assistant Core is a Python program, in simple words. It can be run on various operating systems and provide the ability to track, control and automate your devices.
-When people talking about Home Assistant Core they usually refer to a standalone [installation method](/docs/installation/).
+When people talking about Home Assistant Core they usually refer to a standalone [installation type](/docs/installation/).
[Home Assistant](/hassio/) is a combination of Home Assistant Core and tools which allows one to run it easily on a Raspberry Pi and other platforms without setting up an operating system first.
Home Assistant is an all-in one-solution and has a management user interface that can be used from the Home Assistant frontend. This interface is not present in a Home Assistant Core setup.
diff --git a/source/_includes/custom/news.html b/source/_includes/custom/news.html
index 47bf98b3cbc..3f92dd924e9 100644
--- a/source/_includes/custom/news.html
+++ b/source/_includes/custom/news.html
@@ -80,11 +80,11 @@
-
-
+ " aria-label="Join the Home Assistant community">
diff --git a/source/_includes/installation/container.md b/source/_includes/installation/container.md
index fff3c8d248f..35083187877 100644
--- a/source/_includes/installation/container.md
+++ b/source/_includes/installation/container.md
@@ -4,7 +4,7 @@
These below instructions are for an installation of {% term "Home Assistant Container" %} running in your own container environment, which you manage yourself. Any [OCI](https://opencontainers.org/) compatible runtime can be used, however this guide will focus on installing it with Docker.
{% note %}
-This installation method **does not have access to add-ons**. If you want to use add-ons, you need to use another installation method. The recommended method is {% term "Home Assistant Operating System" %}. Checkout the [overview table of installation types](https://www.home-assistant.io/installation/#about-installation-methods) to see the differences.
+This installation type **does not have access to add-ons**. If you want to use add-ons, you need to use another installation type. The recommended type is {% term "Home Assistant Operating System" %}. Checkout the [overview table of installation types](https://www.home-assistant.io/installation/#about-installation-types) to see the differences.
{% endnote %}
{% important %}
diff --git a/source/_includes/integrations/google_client_secret.md b/source/_includes/integrations/google_client_secret.md
index 51e16721a67..b716b738478 100644
--- a/source/_includes/integrations/google_client_secret.md
+++ b/source/_includes/integrations/google_client_secret.md
@@ -43,12 +43,7 @@ This section explains how to generate a client ID and client secret on
- For Application type, choose **Web Application** and give this client ID a name (like "Home Assistant Client").
- Add `https://my.home-assistant.io/redirect/oauth` to **Authorized redirect URIs** then select **Create**.
> **Note**: This is not a placeholder. It is the URI that must be used.
- - Click **Create**.
-9. Find the client you just created. Under the Actions column, choose **Download OAuth client** (download icon), which will show you the **Client ID** and **Client Secret**.
- - Make a note of these (for example, copy and paste them into a text editor), as you will need them shortly.
+9. From the resulting dialog take a note of **Client ID** and **Client Secret** you **can not retrieve it again** after closing the dialog.
- Once you have noted these strings, select **Close**.
- Congratulations! You are now the keeper of a client secret. Guard it in your treasure box. In most cases, your new credentials will be active within a few minutes. However, Google states that activation may take up to five hours in some circumstances.
- > If you need to find these credentials again at any point, then navigate to **APIs & Services** > **Credentials**, and you will see **Home Assistant Credentials** (or whatever you named them in the previous step) under **OAuth 2.0 Client IDs**.
- >
- > To view the **Client ID** and **Client Secret**, click the **Download OAuth client** (download icon) under the Actions column.
{% enddetails %}
diff --git a/source/_includes/site/footer.html b/source/_includes/site/footer.html
index ed9c23e63ad..3867b1c48d3 100644
--- a/source/_includes/site/footer.html
+++ b/source/_includes/site/footer.html
@@ -31,6 +31,7 @@
diff --git a/source/_integrations/_integration_docs_template.markdown b/source/_integrations/_integration_docs_template.markdown
index 6b49608f02d..7812f98c3f9 100644
--- a/source/_integrations/_integration_docs_template.markdown
+++ b/source/_integrations/_integration_docs_template.markdown
@@ -87,24 +87,22 @@ Timeframe:
## Supported functionality
-### Entities
-
The **My integration** integration provides the following entities.
-#### Buttons
+### Buttons
- **Start backflush**
- **Description**: Starts the backflush process on your machine. You got 15 seconds to turn the paddle after activation.
- **Available for machines**: all
-#### Numbers
+### Numbers
- **Dose**
- **Description**: Dosage (in ticks) for each key
- **Available for machines**: GS3 AV, Linea Mini.
- **Remarks**: GS3 has this multiple times, one for each physical key (1-4), and the entities are disabled by default.
-#### Sensors
+### Sensors
- **Current coffee temperature**
- **Description**: Current temperature of the coffee boiler.
@@ -116,7 +114,7 @@ The **My integration** integration provides the following entities.
- **Available for machines**: Linea Micra, GS3 AV, GS3 MP.
- **Remarks**: -
-#### Selects
+### Selects
- **Prebrew/-infusion mode**
- **Description**: Whether to use prebrew, preinfusion, or neither.
@@ -128,7 +126,7 @@ The **My integration** integration provides the following entities.
- **Options**: 1, 2, 3
- **Available for machines**: Linea Micra
-#### Updates
+### Updates
- **Gateway firmware**
- **Description**: Firmware status of the gateway.
@@ -174,11 +172,11 @@ The integration does not provide the ability to reboot, which can instead be don
When trying to set up the integration, the form shows the message “This device can’t be reached”.
-##### Description
+#### Description
This means the settings on the device are incorrect, since the device needs to be enabled for local communication.
-##### Resolution
+#### Resolution
To resolve this issue, try the following steps:
diff --git a/source/_integrations/alexa_devices.markdown b/source/_integrations/alexa_devices.markdown
index 44a4b879aa3..73b49d18bfb 100644
--- a/source/_integrations/alexa_devices.markdown
+++ b/source/_integrations/alexa_devices.markdown
@@ -74,10 +74,24 @@ Available actions: `notify.send_message`, `alexa_devices.send_sound`, `alexa_dev
Devices with appropriate functionality will have speak and announce notify entities created. These can be used as the target for the `notify.send_message` action.
+| Data attribute | Optional | Description |
+| -------------- | -------- | ----------------------------------------- |
+| `message` | no | Text to be output (see below for advanced markup) |
+
{% tip %}
When sending notifications to multiple devices, you may experience delays due to rate limiting by Amazon. You can avoid this by sending notifications to speaker groups created in Alexa.
{% endtip %}
+{% details "Advanced Message Markup" %}
+
+Amazon provide markup to control not only what is said but how it is said and to add additional option such as pausing and playing certain audio clips. Details of this are covered in [Amazon's documentation](https://developer.amazon.com/en-US/docs/alexa/custom-skills/speech-synthesis-markup-language-ssml-reference.html) where there are lots of examples (just pass everything between the `` and `` elements into the `message` parameter of the action).
+
+Audio files must meet certain criteria on size, bit and sample rates and must be served over HTTPS (see [documentation](https://developer.amazon.com/en-US/docs/alexa/custom-skills/speech-synthesis-markup-language-ssml-reference.html#audio) for full details). These restrictions make them fine for text and sound effects but you will not be able to play music this way.
+
+Amazon provide a set of [sounds you can use](https://developer.amazon.com/en-US/docs/alexa/custom-skills/ask-soundlibrary.html) which contains the markup you will need for that clip.
+
+{% enddetails %}
+
#### Action `alexa_devices.send_text_command`
This action essentially allows you to control Alexa using text commands rather than speech. You should be able to request anything you would via speech using this action.
@@ -89,12 +103,11 @@ This action essentially allows you to control Alexa using text commands rather t
#### Action `alexa_devices.send_sound`
-This action allows you to play one of the built-in Alexa sounds. The full list of sounds and their variants is available in [Amazon's documentation](https://developer.amazon.com/en-US/docs/alexa/custom-skills/ask-soundlibrary.html)
+This action allows you to play one of the built-in Alexa sounds. The full list of sounds is available in [Amazon's documentation (needs authentication)](https://alexa.amazon.com/api/behaviors/entities?skillId=amzn1.ask.1p.sound)
| Data attribute | Optional | Description |
| -------------- | -------- | ----------------------------------------- |
| `device_id` | no | Device on which you want to play sound |
-| `sound_variant` | no | The variant you want to play (generally 1) |
| `sound` | no | The name of the sound to play |
## Examples
@@ -140,19 +153,37 @@ data:
```yaml
action: alexa_devices.send_sound
data:
- sound_variant: 1
- sound: amzn_sfx_doorbell_chime
+ sound: amzn_sfx_doorbell_chime_01
device_id: 037d79c1af96c67ba57ebcae560fb18e
```
-### Play alternative doorbell sound
+### Using advanced markup in a notification
```yaml
-action: alexa_devices.send_sound
+action: notify.send_message
data:
- sound_variant: 2
- sound: amzn_sfx_doorbell_chime
- device_id: 037d79c1af96c67ba57ebcae560fb18e
+ message: >
+ Hello, lets have some examples.
+ This is me being mildly excited!
+ The farmer's dog was called bingo.
+ I can sing high and I can sing low
+target:
+ entity_id: notify.study_dot_speak
+```
+
+```yaml
+action: notify.send_message
+data:
+ message: >
+ Stop! Hammer Time. Watch out
+
+ Shields up!
+
+ Enough now
+
+target:
+ entity_id: notify.study_dot_speak
+
```
## Data updates
diff --git a/source/_integrations/androidtv_remote.markdown b/source/_integrations/androidtv_remote.markdown
index 1271c00c478..fc258b161d4 100644
--- a/source/_integrations/androidtv_remote.markdown
+++ b/source/_integrations/androidtv_remote.markdown
@@ -586,6 +586,11 @@ cards:
- If you can't turn on your Nvidia Shield device, go to **Settings** > **Remotes & accessories** > **Simplified wake buttons** and disable the following options: **SHIELD 2019 Remote: Wake on power and Netflix buttons only** and **Controllers: Wake on NVIDIA or logo buttons only**.
+## Data updates
+
+Android TV devices push data directly to Home Assistant, enabling immediate updates for device state changes such as power state, volume, and current active app. But the media player entity has assumed playback state since the Android TV Remote API doesn't provide playback status.
+
+
## Removing the integration
{% include integrations/remove_device_service.md %}
diff --git a/source/_integrations/bluetooth.markdown b/source/_integrations/bluetooth.markdown
index 20de2169e5c..6702cdf8002 100644
--- a/source/_integrations/bluetooth.markdown
+++ b/source/_integrations/bluetooth.markdown
@@ -53,22 +53,50 @@ For Bluetooth to function on Linux systems:
### Additional requirements by install method
-- Home Assistant Operating System: Upgrade to Home Assistant OS version 9.0 or later.
-- Home Assistant Container: The host system must run BlueZ, and the D-Bus socket must be accessible to Home Assistant **inside** the container.
+- Home Assistant Operating System: Upgrade to Home Assistant OS version 9.0 or later. All Bluetooth requirements are automatically configured.
+- Home Assistant Container: The host system must run BlueZ, and the D-Bus socket must be accessible to Home Assistant **inside** the container. Additional configuration is required (see below).
### Additional details for Container
-{% details "Making the DBus socket available in the Docker container" %}
+{% details "Container configuration for Bluetooth" %}
-For most systems, the Dbus socket is in `/run/dbus`. The socket must be available in the container for Home Assistant to be able to connect to Dbus and access the Bluetooth adapter. When starting with `docker run`, this can be accomplished by adding `-v /run/dbus:/run/dbus:ro` to the command. If the Dbus socket is in `/var/run/dbus` on the host system, use `-v /var/run/dbus:/run/dbus:ro` instead.
+{% note %}
+You only need these configuration steps for Home Assistant Container installations. Home Assistant Operating System automatically handles all Bluetooth configuration.
+{% endnote %}
-If you are using Docker Compose, add something like the following (adjust as necessary) to your `volumes` section:
+Home Assistant Container requires specific configuration to access Bluetooth adapters.
-```dockerfile
+**Required capabilities:**
+
+Add the following Linux capabilities to your container configuration to enable full Bluetooth management:
+
+**Docker Compose:**
+```yaml
+cap_add:
+ - NET_ADMIN
+ - NET_RAW
volumes:
- /run/dbus:/run/dbus:ro
```
+**Docker run:**
+```bash
+docker run --cap-add=NET_ADMIN --cap-add=NET_RAW -v /run/dbus:/run/dbus:ro ...
+```
+
+**D-Bus socket:**
+
+For most systems, the D-Bus socket is in `/run/dbus`. You need to make the socket available in the container for Home Assistant to connect to D-Bus and access the Bluetooth adapter. If the D-Bus socket is in `/var/run/dbus` on your host system, use `-v /var/run/dbus:/run/dbus:ro` instead.
+
+**What happens without these capabilities:**
+
+If `NET_ADMIN` and `NET_RAW` capabilities are missing:
+- Your Bluetooth will operate in a degraded mode with limited functionality
+- Automatic adapter recovery is unavailable - your adapters cannot be reset when they stop responding
+- Connection parameters and management API commands will fail
+- Raw advertising data will be missing, causing unreliable updates for your devices
+- An error will appear in your logs: "Missing required permissions for Bluetooth management"
+
{% enddetails %}
{% details "Switching from dbus-daemon to dbus-broker" %}
diff --git a/source/_integrations/cambridge_audio.markdown b/source/_integrations/cambridge_audio.markdown
index 3f153d385d6..437be502602 100644
--- a/source/_integrations/cambridge_audio.markdown
+++ b/source/_integrations/cambridge_audio.markdown
@@ -28,10 +28,12 @@ The integration automatically discovers all enabled zones and sources. Each zone
This integration allows you to connect the following devices:
+- Cambridge Audio Evo One
- Cambridge Audio Evo 75
- Cambridge Audio Evo 150
- Cambridge Audio CXN
- Cambridge Audio CXN (v2)
+- Cambridge Audio CXN100
- Cambridge Audio CXR120
- Cambridge Audio CXR200
- Cambridge Audio 851N
diff --git a/source/_integrations/denonavr.markdown b/source/_integrations/denonavr.markdown
index 3358698ca3e..5ea28659e2f 100644
--- a/source/_integrations/denonavr.markdown
+++ b/source/_integrations/denonavr.markdown
@@ -112,6 +112,7 @@ Known supported devices:
- Marantz NR1604
- Marantz NR1606
- Marantz NR1607
+- Marantz NR1609
- Marantz NR1710
- Marantz NR1711
- Other Denon AVR receivers (untested)
diff --git a/source/_integrations/enphase_envoy.markdown b/source/_integrations/enphase_envoy.markdown
index b643b642961..97371c9e780 100644
--- a/source/_integrations/enphase_envoy.markdown
+++ b/source/_integrations/enphase_envoy.markdown
@@ -28,6 +28,8 @@ The **Enphase Envoy** {% term integration %} is used to integrate with the [Enph
## Supported devices
+The actual model and installed components will determine the available [capabilities](#capabilities) and which data can be provided to the [Energy dashboard](#energy-dashboard). The Envoy firmware has [known issues](#known-issues-and-limitations) that may come and go as versions change.
+
This integration works with:
- Older and newer Envoy models that only have production metrics (such as Envoy-R (LCD), Envoy-S (not metered))
@@ -236,7 +238,7 @@ For storage CT energy entities refer to [battery sensor](#aggregated-iq-battery-
### Grid sensor entities
-When the Envoy Metered is equipped with a [net-consumption CT](#current-transformers), entities for Grid import and export are available.
+When the Envoy Metered is equipped with a [net-consumption CT](#current-transformers), entities for Grid import and export are available. See Limitations, [Grid Import/Export values incorrect](#grid-importexport-values-incorrect) when using these.
- **Envoy SN Current net power consumption**: Current power exchange from (positive) / to (negative) the grid in W, default display in kW.
- **Envoy SN Lifetime net energy consumption**: Lifetime energy consumed / imported from the grid in Wh, default display in MWh.
@@ -478,11 +480,11 @@ For **Solar production**, use the **Envoy SN
### Electricity grid
-Whether there is data available to use with the electricity grid depends on the installed CT, if any. Also, see Limitations, [Balancing grid meter](#balancing-grid-meter).
+Whether there is data available to use with the electricity grid depends on the installed CT, if any. Also, see Limitations, [Grid Import/Export values incorrect](#grid-importexport-values-incorrect) and [Balancing grid meter](#balancing-grid-meter).
#### Electricity grid with net-consumption CT
-With a [net-consumption CT](#grid-sensor-entities) installed, both grid consumption and return to grid data is available.
+With a [net-consumption CT](#grid-sensor-entities) installed, both grid consumption and return to grid data is available. (Also, see [Limitations](#grid-importexport-values-incorrect))
- For **Grid consumption**, use the **Envoy SN Lifetime net energy consumption** entity.
- For **Return to grid**, use the **Envoy SN Lifetime net energy production** entity.
@@ -706,7 +708,7 @@ data:
Technically `select.first`, `select.last`, `select.previous`, `select.next` are available as well, but as there's no logical sequence in the values to select, their use is not advocated.
{% endnote %}
-## Know issues and limitations
+## Known issues and limitations
### Firmware changes
@@ -724,17 +726,15 @@ Until a resolution is found, you must use the Enphase App to control these featu
### Late reset
-When using Envoy Metered with CT, not all firmware versions reset 'Energy production today' at midnight. Delays of up to 15 minutes have been reported. In this case, best use a utility meter with the `Lifetime energy production` entity for daily reporting.
+Not all firmware versions reset `Energy production today` or `Energy consumption today`, `Energy production last seven days` and `Energy consumption last seven days` at midnight. A 1 hour delay is reported. In this case, best use a utility meter with the 'Lifetime' entity for daily reporting. This seems to be daylight savings time change related and surfaced in recent firmware versions. Some older firmware versions would reset up to 15 minutes late, even outside daylight saving periods.
### Energy incorrect
When using Envoy Metered with CT
-- not all firmware versions report `Energy production today` and/or `Energy consumption today` correctly. Zero data and unexpected spikes have been reported. In this case, best use a utility meter with the `Lifetime energy production` or `Lifetime energy consumption` entity for daily reporting.
-- not all firmware versions report `Energy production last seven days` and/or `Energy consumption last seven days` correctly. Zero and unexpected values have been reported.
-- `Energy production today` and `Energy consumption today` have been reported not to reset to zero at the start of the day. Instead, it resets to a non-zero value that seems to gradually increase over time, although other values have been reported as well. This issue has also been reported as starting suddenly overnight. For daily reporting, it is recommended to use a utility meter with the `Lifetime energy production` or `Lifetime energy consumption` entity.
-
-- `Energy production today`, `Energy consumption today`, `Energy production last seven days` and `Energy consumption last seven days` have been reported not to reset to zero at the start of the day. Instead, it resets to zero at a later time, often 1 am. This seems to be daylight savings time change related.
+- not all firmware versions report `Energy production today` and/or `Energy consumption today` correctly. Zero data, changes to a lower value and unexpected spikes have been reported. Enphase reportedly indicated it is an issue in summing phase values to aggregated data. In this case, either use individual phase data or a utility meter with the `Lifetime energy production` or `Lifetime energy consumption` entity for daily reporting.
+- not all firmware versions report `Energy production last seven days` and/or `Energy consumption last seven days` correctly. Zero and unexpected values have been reported. Enphase reportedly indicated it is an issue in summing phase values to aggregated data. In this case, use the individual phase data.
+- `Energy production today` and `Energy consumption today` have been reported not to reset to zero. Instead, it resets to a non-zero value that seems to gradually increase over time, although other values have been reported as well. This issue has also been reported as starting suddenly overnight. For daily reporting, it is recommended to use a utility meter with the `Lifetime energy production` or `Lifetime energy consumption` entity.
{% details "History examples for Today's energy production value not resetting to zero" %}
@@ -749,6 +749,14 @@ When using Envoy Metered with CT
{% enddetails %}
+These issues may result in log entries like:
+
+```txt
+Entity sensor.envoy_123456789012_energy_consumption_today from integration enphase_envoy has state class total_increasing, but its state is not strictly increasing. Triggered by state 12.345 (12.543) with last_updated set to 2025-09-05T18:00:23.432536+00:00. Please create a bug report at ...
+```
+
+If these entries occur frequently and are a nuisance then disable the entity. It's data is at best doubtful.
+
### Lifetime reset
Envoy Metered without installed CT, running older firmware versions, reportedly resets **Lifetime energy production** to 0 when reaching 1.2 MWh. For use with the energy dashboard, the reset is not an issue. In a recent firmware version 8.x.x the reset is solved, but results in a one-time step change to the full lifetime value. This has impact on the energy dashboard, it can be solved by setting the statistics value for that moment to 0 in [Developer Tools: Statistics](/docs/tools/dev-tools/#statistics-tab)
@@ -788,6 +796,10 @@ If you are not seeing [inverters](#sensor-entities) detail data, verify if you h
The Envoy Metered in multiphase setup, sums the voltages of the phases measured on the CT for the aggregated data. This may be valid for split-phase, but for 3-phase systems, use the individual phases rather than the summed value.
+### Grid Import/Export values incorrect
+
+Envoy Metered with a net-consumption CT measures current and energy exchange between switchboard and grid. Mismatches with other grid-meters and/or the Enphase web-site have been reported. It's not clear if this is related to a recent firmware version or longer existing. When using these values best validate if they are correct in your specific case.
+
### Balancing grid meter
In multiphase installations with batteries, in countries with phase-balancing grid meters, the battery will export to the grid on one phase the amount it lacks on another phase. This other phase pulls the missing amount from the grid, as if it is using the grid as a 'transport' between phases. Since the grid meter will balance the amount imported and exported on the two phases, the net result is zero. The Envoy multiphase net-consumption CTs, however, will report the amounts on both phases, resulting in too high export on one and too high import on the other. One may consider using the `lifetime balanced net energy consumption` which is the sum of grid import and export to eliminate this effect. This would require some templating to split these values into import and export values. Alternatively, use the `current net power consumption` or `balanced net power consumption` with a Riemann integral sum helper.
@@ -802,6 +814,14 @@ If you experience periodic connection issues, ensure the Envoy is connected to o
The **CT active flag count** value shows the number of CT status flags that are raised. In a normal state, the value of **CT active flag count** is zero. If the value is non-zero, consult the [diagnostic](#diagnostics) report of the Envoy and look for `raw_data` - `/ivp/meters` - `statusFlags` for set flags, one or more from (`production-imbalance` | `negative-production` | `power-on-unused-phase` | `negative-total-consumption`). Their somewhat descriptive names may be an indication of installation issues.
+### Log entry for state is not strictly increasing
+
+The log shows an entry like below for energy consumption today or energy production today. See the [energy incorrect](#energy-incorrect) topic for a description of this issue.
+
+```txt
+Entity sensor.envoy_123456789012_energy_consumption_today from integration enphase_envoy has state class total_increasing, but its state is not strictly increasing. Triggered by state 12.345 (12.543) with last_updated set to 2025-09-05T18:00:23.432536+00:00. Please create a bug report at ...
+```
+
### Debug logs and diagnostics
This integration provides debug log and {% term diagnostics %} report as described in the [Home Assistant troubleshooting pages](/docs/configuration/troubleshooting/#debug-logs-and-diagnostics).
diff --git a/source/_integrations/github.markdown b/source/_integrations/github.markdown
index d71970070b5..254398cda21 100644
--- a/source/_integrations/github.markdown
+++ b/source/_integrations/github.markdown
@@ -16,7 +16,7 @@ ha_codeowners:
ha_integration_type: integration
---
-The GitHub integration allows you to monitor your favorite [GitHub](https://github.com/) repositories.
+The GitHub integration allows you to monitor your favorite [GitHub](https://github.com/) public repositories.
{% include integrations/config_flow.md %}
diff --git a/source/_integrations/go2rtc.markdown b/source/_integrations/go2rtc.markdown
index 63eb269eb75..a6e4693d3f9 100644
--- a/source/_integrations/go2rtc.markdown
+++ b/source/_integrations/go2rtc.markdown
@@ -17,7 +17,7 @@ ha_quality_scale: internal
go2rtc is an open source project providing a camera streaming application that supports formats such as RTSP, WebRTC, HomeKit, FFmpeg, RTMP. The **go2rtc** {% term integration %} connects to a go2rtc instance and provides a WebRTC proxy for all your cameras. To learn more about go2rtc, refer to the [project's GitHub page](https://github.com/AlexxIT/go2rtc/).
-If you are using the [`default_config`](/integrations/default_config/) and run Home Assistant using one of the following installation methods, the go2rtc integration will be set up automatically and you don't need to do anything:
+If you are using the [`default_config`](/integrations/default_config/) and run Home Assistant using one of the following installation types, the go2rtc integration will be set up automatically and you don't need to do anything:
- {% term "Home Assistant Operating System" %}
- {% term "Home Assistant Supervised" %}
diff --git a/source/_integrations/google_assistant.markdown b/source/_integrations/google_assistant.markdown
index 605d8ccd503..2533dccb394 100644
--- a/source/_integrations/google_assistant.markdown
+++ b/source/_integrations/google_assistant.markdown
@@ -256,14 +256,14 @@ Currently, the following domains are available to be used with Google Assistant,
- group (on/off)
- humidifier (humidity setting/on/off/mode)
- input_boolean (on/off)
-- input_button
+- input_button (scene)
- input_select (option/setting/mode/value)
- light (on/off/brightness/rgb color/color temp)
- lawn_mower (dock/start/pause)
- lock
- media_player (on/off/set volume (via set volume)/source (via set input source)/control playback)
-- scene (on)
-- script (on)
+- scene
+- script (scene)
- select
- sensor (temperature setting for temperature sensors and humidity setting for humidity sensors)
- switch (on/off)
diff --git a/source/_integrations/google_generative_ai_conversation.markdown b/source/_integrations/google_generative_ai_conversation.markdown
index 79838cefcea..b55b644e16e 100644
--- a/source/_integrations/google_generative_ai_conversation.markdown
+++ b/source/_integrations/google_generative_ai_conversation.markdown
@@ -2,6 +2,7 @@
title: Google Gemini
description: Instructions on how to integrate Google Gemini as a conversation agent
ha_category:
+ - AI
- Speech-to-text
- Text-to-speech
- Voice
diff --git a/source/_integrations/group.markdown b/source/_integrations/group.markdown
index f5bbc6936f4..92230c6ea9d 100644
--- a/source/_integrations/group.markdown
+++ b/source/_integrations/group.markdown
@@ -145,8 +145,15 @@ In short, when any group member entity is `unlocked`, the group will also be `un
- The group state is combined / calculated based on `type` selected to determine the minimum, maximum, latest (last), mean, median, range, product, standard deviation, or sum of the collected states.
- Members can be any `sensor`, `number` or `input_number` holding numeric states.
-- The group state is `unavailable` if all group members are `unavailable`.
-- If `ignore_non_numeric` is `false` then group state will be `unavailable` if one member is `unavailable` or does not have a numeric state.
+- States which are missing from the state machine do not make the state `unavailable` or `unknown`.
+- The group state is `unavailable` if no group member has a numeric state.
+- The configuration variable `ignore_non_numeric` controls the behavior of the group when the group is not `unavailable`:
+ - When set to `false` (the default), the group state is calculated as follows:
+ - if all members have a numeric state: calculated according to the `type`
+ - otherwise: set to `unknown`
+ - When set to `true`, the group state is calculated as follows:
+ - if at least one member has a numeric state: calculated according to the `type`
+ - otherwise: and set to `unknown`
## Managing groups
@@ -321,7 +328,7 @@ type:
type: string
required: true
ignore_non_numeric:
- description: Only available for `sensor` group. Set this to `true` if the group state should ignore sensors with non numeric values.
+ description: Only available for `sensor` group. Controls how the [state is calculated when group members have non-numeric state](#sensor-number-and-input_number-groups).
type: boolean
required: false
default: false
diff --git a/source/_integrations/html5.markdown b/source/_integrations/html5.markdown
index 1dd12fb130c..539598fd606 100644
--- a/source/_integrations/html5.markdown
+++ b/source/_integrations/html5.markdown
@@ -28,6 +28,7 @@ HTML5 push notifications **do not** work on iOS versions below 16.4.
The `html5` platform can only function if all of the following requirements are met:
- You are using Chrome and/or Firefox on any desktop platform, ChromeOS or Android. Or you added your Home Assistant instance to your home screen on iOS 16.4 or higher.
+- On Brave desktop, you have gone into Brave Privacy Settings by going to `brave://settings/privacy` in your address bar or **Settings > Privacy and Security** and made sure the **Use Google services for push messaging** option is turned on.
- Your Home Assistant instance is accessible from outside your network over HTTPS or can perform an alternative [Domain Name Verification Method](https://support.google.com/webmasters/answer/9008080#domain_name_verification) on the domain used by Home Assistant.
- If using a proxy, HTTP basic authentication must be disabled to register or deregister push notifications. It can be re-enabled afterwards.
- You have configured SSL/TLS for your Home Assistant. It doesn't need to be configured in Home Assistant though, e.g., you can be running NGINX in front of Home Assistant and this will still work. The certificate must be trustworthy (i.e., not self-signed).
@@ -191,13 +192,13 @@ During the lifespan of a single push notification, Home Assistant will emit a fe
Common event payload parameters are:
-| Parameter | Description |
-| --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `action` | The `action` key that you set when sending the notification of the action clicked. Only appears in the `clicked` event. |
+| Parameter | Description |
+| --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| `action` | The `action` key that you set when sending the notification of the action clicked. Only appears in the `clicked` event. |
| `data` | The data dictionary you originally passed in the notify payload, minus any parameters that were added to the HTML5 notification (`actions`, `badge`, `body`, `dir`, `icon`, `image`, `lang`, `renotify`, `requireInteraction`, `tag`, `timestamp`, `vibrate`, `silent`). |
-| `tag` | The unique identifier of the notification. Can be overridden when sending a notification to allow for replacing existing notifications. |
-| `target` | The target that this notification callback describes. |
-| `type` | The type of event callback received. Can be `received`, `clicked` or `closed`. |
+| `tag` | The unique identifier of the notification. Can be overridden when sending a notification to allow for replacing existing notifications. |
+| `target` | The target that this notification callback describes. |
+| `type` | The type of event callback received. Can be `received`, `clicked` or `closed`. |
You can use the `target` parameter to write automations against a single `target`. For more granularity, use `action` and `target` together to write automations which will do specific things based on what target clicked an action.
diff --git a/source/_integrations/lacrosse.markdown b/source/_integrations/lacrosse.markdown
index 035e3e8abf8..ed41835874b 100644
--- a/source/_integrations/lacrosse.markdown
+++ b/source/_integrations/lacrosse.markdown
@@ -37,7 +37,7 @@ Or, when using Docker containers:
docker exec -it pylacrosse -d /dev/ttyUSB0 scan
```
-If you are using the Home Assistant OS or Supervised installation method, these
+If you are using the Home Assistant OS or Supervised installation types, these
methods are not available for you. The use of an additional computer to figure
out the ID is advised.
diff --git a/source/_integrations/nanoleaf.markdown b/source/_integrations/nanoleaf.markdown
index 3842aac7912..fd674abd30d 100644
--- a/source/_integrations/nanoleaf.markdown
+++ b/source/_integrations/nanoleaf.markdown
@@ -23,7 +23,7 @@ ha_ssdp: true
ha_integration_type: integration
---
-The Nanoleaf integration allows you to control and monitor Nanoleaf Light Panels, Canvas, Shapes, Elements, and Lines.
+The **Nanoleaf** {% term integration %} allows you to control and monitor Nanoleaf Light Panels, Canvas, Shapes, Elements, and Lines.
This integration does not support the Nanoleaf Remote and Essentials lights. Controlling Nanoleaf Essentials lights is possible over Thread and Bluetooth through the HomeKit Controller integration.
@@ -32,3 +32,9 @@ This integration does not support the Nanoleaf Remote and Essentials lights. Con
# Transition and brightness
When using a transition in an action (such as `light.turn_on`), the transition is only applied to brightness and does not apply to color. When an action has a transition set, but no brightness is included, the light will automatically transition to 100% brightness.
+
+## Removing the integration
+
+This integration follows standard integration removal, no extra steps are required.
+
+{% include integrations/remove_device_service.md %}
diff --git a/source/_integrations/ntfy.markdown b/source/_integrations/ntfy.markdown
index fd41b36d85a..a1f81ca386c 100644
--- a/source/_integrations/ntfy.markdown
+++ b/source/_integrations/ntfy.markdown
@@ -226,6 +226,10 @@ The **ntfy** integration adds a device representing the service, along with vari
- **Subscription tier**: The subscription plan currently assigned to the ntfy account.
+## Data updates
+
+The integration retrieves data from **ntfy.sh** (or your own ntfy instance) every 15 minutes to update the usage statistics sensors.
+
## Known limitations
**ntfy** imposes various rate and usage limits. The official [ntfy.sh](https://ntfy.sh/) service allows up to **60 messages in a burst**, with a **replenishment rate of one message every 5 seconds** (i.e., the full 60-message capacity refills in 5 minutes).
diff --git a/source/_integrations/ollama.markdown b/source/_integrations/ollama.markdown
index 7b355a24a43..43c64ec8250 100644
--- a/source/_integrations/ollama.markdown
+++ b/source/_integrations/ollama.markdown
@@ -2,6 +2,7 @@
title: Ollama
description: Instructions on how to integrate Ollama
ha_category:
+ - AI
- Voice
ha_release: 2024.4
ha_iot_class: Local Polling
diff --git a/source/_integrations/open_router.markdown b/source/_integrations/open_router.markdown
index db59ab26ad9..2e9f12cae34 100644
--- a/source/_integrations/open_router.markdown
+++ b/source/_integrations/open_router.markdown
@@ -2,6 +2,7 @@
title: OpenRouter
description: Instructions on how to integrate OpenRouter as a conversation agent
ha_category:
+ - AI
- Voice
ha_release: 2025.8
ha_iot_class: Cloud Polling
diff --git a/source/_integrations/openai_conversation.markdown b/source/_integrations/openai_conversation.markdown
index cc7d4079be9..263f54c02bd 100644
--- a/source/_integrations/openai_conversation.markdown
+++ b/source/_integrations/openai_conversation.markdown
@@ -2,6 +2,7 @@
title: OpenAI
description: Instructions on how to integrate OpenAI as a conversation agent
ha_category:
+ - AI
- Voice
ha_release: 2023.2
ha_iot_class: Cloud Polling
@@ -166,7 +167,7 @@ with the response from OpenAI.
- **Service data attribute**: `config_entry`
- **Description**: Integration entry ID to use.
- - **Example**:
+ - **Example**:
- **Optional**: no
- **Service data attribute**: `prompt`
@@ -189,7 +190,7 @@ data:
Very briefly describe what you see in this image from my doorbell camera.
Your message needs to be short to fit in a phone notification. Don't
describe stationary objects or buildings.
- image_filename:
+ image_filename:
- /tmp/doorbell_snapshot.jpg
response_variable: generated_content
```
diff --git a/source/_integrations/opnsense.markdown b/source/_integrations/opnsense.markdown
index 2160ed84605..72d324b0358 100644
--- a/source/_integrations/opnsense.markdown
+++ b/source/_integrations/opnsense.markdown
@@ -42,6 +42,10 @@ User with API Key requires privileges for Type:
- GUI Name: Diagnostics: ARP Table
- GUI Name: Diagnostics: Network Insight
+{% important %}
+OPNSense versions 25.7 and later require All Pages privilege to be granted to the API user account.
+{% endimportant %}
+
{% configuration %}
url:
description: The URL for the OPNsense API endpoint of your router.
diff --git a/source/_integrations/profiler.markdown b/source/_integrations/profiler.markdown
index 8ebdf81d1df..ac135ef0bd9 100644
--- a/source/_integrations/profiler.markdown
+++ b/source/_integrations/profiler.markdown
@@ -182,7 +182,9 @@ Log what is scheduled in the event loop. This can be helpful in tracking down in
Each upcoming scheduled item is logged similar to the below example:
-`[homeassistant.components.profiler] Scheduled: .run_action(>>) at /usr/src/homeassistant/homeassistant/helpers/event.py:1175>`
+```txt
+[homeassistant.components.profiler] Scheduled: .run_action(>>) at /usr/src/homeassistant/homeassistant/helpers/event.py:1175>`
+```
### Action profiler.lru_stats
diff --git a/source/_integrations/reolink.markdown b/source/_integrations/reolink.markdown
index 943b6c9f729..3d7cff93174 100644
--- a/source/_integrations/reolink.markdown
+++ b/source/_integrations/reolink.markdown
@@ -38,6 +38,8 @@ works_with:
The integration allows you to control [Reolink](https://reolink.com/) NVRs or cameras. Reolink cameras are known for their local storage, without the need for a cloud subscription or account. Reolink cameras can operate fully locally on your network, putting privacy first. When blocking internet access for the Reolink devices, the Home Assistant integration, as well as the Reolink app/client, will continue to work as usual. Reolink cameras provide excellent day- and nighttime video clarity at an affordable price. An SD card in the camera offers local recording, while an optional Reolink NVR/Hub can offer a large recording capacity indoors. As evident by the list of entities in this documentation, Reolink cameras are highly configurable and tightly integrated into Home Assistant.
+This integration is officially authorized by Reolink, with @StarkillerOG as the main developer, and it is built with the support of Reolink's official resources.
+
## Prerequisites
A brand new Reolink camera needs to be connected to the network and initialized. During initialization, the camera's credentials need to be set. Refer to the [Initial setup](#initial-setup) section for detailed instructions.
@@ -368,12 +370,12 @@ The following models have been tested and confirmed to work with a direct link t
- C2 Pro*
- [CX410](https://reolink.com/product/cx410/)
- [CX810](https://reolink.com/product/cx810/)
-- [E1 Pro](https://reolink.com/product/e1-pro/) (only hardware version IPC_NT1NA45MP)
+- [E1 Pro](https://reolink.com/product/e1-pro/) (5MP models - hardware version IPC_NT1NA45MP - or newer†)
- [E1 Zoom](https://reolink.com/product/e1-zoom/)
- [E1 Outdoor](https://reolink.com/product/e1-outdoor/)
- [E1 Outdoor PoE](https://reolink.com/product/e1-outdoor-poe/)
- [E1 Outdoor Pro](https://reolink.com/product/e1-outdoor-pro/)
-- [Elite Floodlight WiFi](https://reolink.com/product/elite-floodlight-wifi/)
+- [Elite Floodlight WiFi](https://reolink.com/product/elite-floodlight-wifi/) (needs mains power, cannot be integrated when powered through USB)
- [FE-P](https://reolink.com/product/fe-p/) (only "fisheye" or "5-in-1" view for the streams, not "dual panoramic", "quad", "cylindrical", "defished", or "hemispheric" view)
- [FE-W](https://reolink.com/product/fe-w/) (only "fisheye" or "5-in-1" view for the streams, not "dual panoramic", "quad", "cylindrical", "defished", or "hemispheric" view)
- [Lumus Pro](https://reolink.com/product/lumus-pro/)
@@ -385,7 +387,7 @@ The following models have been tested and confirmed to work with a direct link t
- [RLC-510A](https://reolink.com/product/rlc-510a/)
- RLC-511*
- RLC-511W*
-- [RLC-511WA](https://reolink.com/product/rlc-511wa/)
+- [RLC-511WA](https://reolink.com/product/rlc-511wa/)*
- RLC-520*
- [RLC-520A](https://reolink.com/product/rlc-520a/)
- RLC-522*
@@ -426,6 +428,8 @@ The following models have been tested and confirmed to work with a direct link t
*These models are discontinued and not sold anymore, they will continue to work with Home Assistant.
+†Requires a [camera hardware version](https://support.reolink.com/hc/en-us/articles/900000638583-Introduction-to-the-Hardware-Version-of-Reolink-Cameras/) that supports remote access. All 5MP or newer E1 Pro models (where the hardware version includes "5MP") meet this requirement. Most sellers (including ReoLink) do not explicitly state the hardware version, so verify the resolution is 5MP or greater to ensure compatibility.
+
### Tested battery-powered models
Battery-powered Reolink cameras can be used with Home Assistant with the help of a [Reolink Home Hub](https://reolink.com/product/reolink-home-hub/) or NVR. The Home Hub/NVR will act as a bridge between the battery-powered cameras and Home Assistant, conserving the battery life. All features of the battery-powered cameras will be available just like regular-powered cameras. Viewing the camera stream in Home Assistant will keep the battery camera awake during viewing, consuming battery life. Therefore, ensure you do not use the camera stream on a dashboard that is constantly being viewed, like a wall panel dashboard. You can check proper operation by ensuring that the "Sleep status" entity will go to "Sleeping" if the battery camera is not being actively used.
@@ -779,6 +783,7 @@ Prerequisites:
- Wake up and start recording on other battery cameras nearby if one camera/motion sensor detects an event.
- Turn on the spotlights or sirens of other cameras nearby when one camera detects a person, vehicle, or animal.
- If a camera detects a person/vehicle/animal, then point other PTZ cameras in that direction using PTZ presets.
+- Make a timelapse in different directions using PTZ presets and the snapshot service.
- Switch day night mode (Color/IR Black&White) based on sunset/sunrise times or the status of (outdoor) lights instead of relying on the internal light sensor.
- Change the camera volume based on the time and/or when you are home or not (geofencing)
- Increase the framerate and maximum bitrate of a camera when a person/vehicle/animal is detected and lower them again after 1 minute of no detection. This saves storage space, so you can record longer when recording 24/7 without compromising image clarity during events.
diff --git a/source/_integrations/sesame.markdown b/source/_integrations/sesame.markdown
index 761b35bf2cd..d97a7555a19 100644
--- a/source/_integrations/sesame.markdown
+++ b/source/_integrations/sesame.markdown
@@ -17,6 +17,12 @@ ha_quality_scale: legacy
The `sesame` {% term integration %} allows you to control your [Sesame](https://candyhouse.co/) smart locks made by CANDY HOUSE, Inc.
+## Sesame Smart Lock Versions
+
+The integration documented here should only be used with the original Sesame Lock.
+
+Sesame Smart Lock version 5 and Hub version 3 were released in 2025 and can be integrated with Home Assistant via the Matter integration instead.
+
## Configuration
Your Sesame needs to be paired with a standalone [Wi-Fi Access Point](https://candyhouse.co/collections/frontpage/products/wi-fi-access-point) purchased separately.
diff --git a/source/_integrations/shell_command.markdown b/source/_integrations/shell_command.markdown
index c19c8da114c..54ea7aac0d6 100644
--- a/source/_integrations/shell_command.markdown
+++ b/source/_integrations/shell_command.markdown
@@ -36,12 +36,16 @@ alias:
type: string
{% endconfiguration %}
-The commands can be dynamic, using templates to insert values for arguments. When using templates, shell_command runs in a more secure environment which doesn't allow any shell helpers like automatically expanding the home dir `~` or using pipe symbols to run multiple commands. Similarly, only content after the first space can be generated by a template. This means the command name itself cannot be generated by a template, but it must be literally provided.
+The commands can be dynamic, using templates to insert values for arguments. When using templates, shell_command runs in a more secure environment which doesn't allow any shell helpers like automatically expanding the home directory character (`~`), using pipe symbols (`|`) to run multiple commands, or operators redirecting output (such as `>` and `>>`). Similarly, only content after the first space can be generated by a template. This means the command name itself cannot be generated by a template, but it must be literally provided.
Any action data passed into the action to activate the shell command will be available as a variable within the template.
`stdout` and `stderr` output from the command are both captured and will be logged by setting the [log level](/integrations/logger/) to debug.
+{% note %}
+After you add or edit a command, restart Home Assistant. New commands won’t work until you restart, and changes to existing commands won’t take effect until after a restart.
+{% endnote %}
+
## Execution
The `command` is executed within the [configuration directory](/docs/configuration/).
diff --git a/source/_integrations/shelly.markdown b/source/_integrations/shelly.markdown
index d9811839ac4..46d2feb7618 100644
--- a/source/_integrations/shelly.markdown
+++ b/source/_integrations/shelly.markdown
@@ -208,13 +208,15 @@ Depending on how a device's button type is configured, the integration will crea
### Binary input sensors (generation 2+)
-For generation 2+ hardware, it's possible to select if a device's input is connected to a button or a switch. Binary sensors are created only if the input mode is set to `switch`. When the input is of type `button` you need to use events for your automations.
+For generation 2+ hardware, it's possible to select if a device's input is connected to a button or a switch. Binary sensors are created only if the **Input Mode** is set to `Switch`. When the **Input Mode** is set to `Button` you need to use events for your automations.
-## Event entities (generation 1)
+## Event entities
-If the **BUTTON TYPE** of the switch connected to the device is set to `momentary` or `detached switch`, the integration creates an event entity for this switch. You can use this entity in your automations.
+### Event entities (generation 1)
-## Event entities (generation 2+)
+If the **BUTTON TYPE** of the switch connected to the device is set to `Momentary` or `Detached Switch`, the integration creates an event entity for this switch. You can use this entity in your automations.
+
+### Event entities (generation 2+)
If the **Input Mode** of the switch connected to the device is set to `Button`, the integration creates an event entity for this switch. You can use this entity in your automations.
@@ -242,7 +244,11 @@ Shelly.addEventHandler(eventHandler);
## Events
-If the **BUTTON TYPE** of the switch connected to the device is set to `momentary` or `detached switch`, integration fires events under the type `shelly.click` when the switch is used. You can use these events in your automations.
+The integration fires events under the type `shelly.click` when the switch is used if:
+- The **BUTTON TYPE** of the switch connected to the device is set to `Momentary` or `Detached Switch` – for generation 1 devices.
+- The **Input Mode** of the switch connected to the device is set to `Button` – for generation 2+ devices.
+
+You can use these events in your automations.
Also, some devices do not add an entity for the button/switch. For example, the Shelly Button1 has only one entity for the battery level. It does not have an entity for the button itself. To trigger automations based on button presses, use the `shelly.click` event.
diff --git a/source/_integrations/sleep_as_android.markdown b/source/_integrations/sleep_as_android.markdown
index 62335854e3d..e2c3b127c4b 100644
--- a/source/_integrations/sleep_as_android.markdown
+++ b/source/_integrations/sleep_as_android.markdown
@@ -187,6 +187,21 @@ mode: single
{% endraw %}
+## Control Sleep as Android via Home Assistant
+
+The **Sleep as Android** app can be automated through its [Intent API](https://sleep.urbandroid.org/docs/devs/intent_api.html), allowing you to perform actions such as:
+
+- Enable or disable alarms
+- Snooze or dismiss alarms
+- Start, stop, or pause sleep tracking
+- Stop lullaby playback
+
+Thanks to the **Home Assistant Companion App for Android**, which supports [broadcasting intents](/docs/notifications/notification-commands#broadcast-intent), you can trigger these actions directly from Home Assistant.
+
+To make this even easier, you can import the following blueprint. It supports nearly all Sleep as Android actions, so you can automate your sleep routine without writing any custom scripts:
+
+{% my blueprint_import badge blueprint_url="https://community.home-assistant.io/t/sleep-as-android-trigger-app-actions/920845" %}
+
## Data updates
This integration receives push updates from the Sleep as Android app whenever an event is triggered. If no events occur, the displayed data may become outdated.
diff --git a/source/_integrations/spotify.markdown b/source/_integrations/spotify.markdown
index 789b321c16e..569fa2913f1 100644
--- a/source/_integrations/spotify.markdown
+++ b/source/_integrations/spotify.markdown
@@ -16,7 +16,7 @@ ha_platforms:
ha_integration_type: service
---
-The Spotify media player integration lets you control your Spotify
+The **Spotify** {% term integration %} lets you control your Spotify
account playback and browse the [Spotify](https://www.spotify.com/) media
library from Home Assistant.
@@ -156,3 +156,9 @@ The `media_content_id` value can be obtained from the Spotify desktop app by cli
## Unsupported devices
- **Sonos**: Although Sonos is a Spotify Connect device, it is not supported by the official Spotify API. One workaround to use Sonos players with Spotify is through [Music Assistant](https://www.music-assistant.io/) using the action `music_assistant.play_media`. Music Assistant creates another media_player entity named after the original media_player, which you can use to play from Spotify.
+
+## Removing the integration
+
+This integration follows standard integration removal, no extra steps are required.
+
+{% include integrations/remove_device_service.md %}
\ No newline at end of file
diff --git a/source/_integrations/squeezebox.markdown b/source/_integrations/squeezebox.markdown
index 96f0902bb0f..bc9f0966115 100644
--- a/source/_integrations/squeezebox.markdown
+++ b/source/_integrations/squeezebox.markdown
@@ -229,8 +229,10 @@ The integration provides the following entities.
### Updates
--- **Lyrion Music Server**: Update of the server software is available.
--- **Updated plugins**: Named Plugins will be updated on the next restart. For some installation types, the service will be restarted automatically after the **Install** button has been selected. Allow enough time for the service to restart. It will become briefly unavailable.
+This integration will notify you when updates are available on the LMS for the LMS version or for plugins installed on the LMS
+
+ - **Lyrion Music Server**: Update of the server software is available.
+ - **Updated plugins**: Plugin updates are available. The list of updates can be viewed by selecting the "Read release announcement" link. On the LMS, an option is available on the Manage Plugins settings page to "Update plugins automatically". If this option is selected, plugins will be downloaded automatically by the LMS and then installed on the next restart of the LMS. For some installation types of LMS, the LMS can be restarted by selecting the **Update** button. Allow enough time for the LMS to restart as it will become briefly unavailable.
### Actions
diff --git a/source/_integrations/switchbot.markdown b/source/_integrations/switchbot.markdown
index 7832ff2563a..ebc794d06c8 100644
--- a/source/_integrations/switchbot.markdown
+++ b/source/_integrations/switchbot.markdown
@@ -626,7 +626,7 @@ Features:
### Fans
-Fan entities are added for Battery Circulator Fan/Circulator Fan, Air Purifier, and Air Purifier Table
+Fan entities are added for Battery Circulator Fan/Circulator Fan
#### Battery Circulator Fan/Circulator Fan
@@ -638,7 +638,11 @@ Features:
- oscillate left and right
- get battery level (Battery Circulator Fan only)
-#### Air Purifier
+### Air Purifiers
+
+Fan entities are added for Air Purifier, and Air Purifier Table.
+
+Air purifier currently supports three speed levels, which you can adjust by setting the mode.
This is an encrypted device.
diff --git a/source/_integrations/tesla_fleet.markdown b/source/_integrations/tesla_fleet.markdown
index 60f1c9fe3b3..2fc431e268d 100644
--- a/source/_integrations/tesla_fleet.markdown
+++ b/source/_integrations/tesla_fleet.markdown
@@ -45,7 +45,7 @@ You need to configure developer credentials and host a public key file to allow
- A [Tesla](https://tesla.com) account with verified email
- A web domain to host your public key file:
- [NGINX Home Assistant SSL proxy Add-on](https://github.com/home-assistant/addons/blob/master/nginx_proxy/DOCS.md) (recommended)
- - External hosting service ([FleetKey.cc](https://fleetkey.cc), [MyTeslamate.com](https://app.myteslamate.com/fleet), etc.)
+ - External hosting service ([FleetKey.net](https://fleetkey.net), [MyTeslamate.com](https://app.myteslamate.com/fleet), etc.)
{% warning %}
The China region is currently not supported by this {% term integration %}.
diff --git a/source/_integrations/twitch.markdown b/source/_integrations/twitch.markdown
index f6dcd84459b..8a94ac0f4cd 100644
--- a/source/_integrations/twitch.markdown
+++ b/source/_integrations/twitch.markdown
@@ -14,7 +14,7 @@ ha_codeowners:
ha_config_flow: true
---
-The Twitch integration will allow you to monitor [Twitch](https://www.twitch.tv/) channel status from within Home Assistant and setup automation based on the information.
+The **Twitch** {% term integration %} allows you to monitor [Twitch](https://www.twitch.tv/) channel status from within Home Assistant and set up automation based on the information.
## Get Twitch application credentials
@@ -25,3 +25,9 @@ Create a new app at **Register Your Application** in the [Twitch developer porta
- Get the **Client ID** and **Client secret** from the new application, you need them to complete the integration setup in Home Assistant.
{% include integrations/config_flow.md %}
+
+## Removing the integration
+
+This integration follows standard integration removal, no extra steps are required.
+
+{% include integrations/remove_device_service.md %}
diff --git a/source/_integrations/velux.markdown b/source/_integrations/velux.markdown
index af533543cbf..86a0a32db74 100644
--- a/source/_integrations/velux.markdown
+++ b/source/_integrations/velux.markdown
@@ -1,6 +1,6 @@
---
title: Velux
-description: Instructions on how to integrate Velux KLF 200 integration with Home Assistant.
+description: Instructions on how to integrate the Velux KLF 200 with Home Assistant.
ha_category:
- Cover
- Scene
@@ -23,7 +23,7 @@ ha_dhcp: true
[Velux](https://www.velux.com/) {% term integration %} for Home Assistant allows you to connect to a Velux KLF 200 interface, to control [io-homecontrol](http://www.io-homecontrol.com) devices like windows and blinds. The module allows you to start scenes configured within KLF 200.
-At least firmware version > 2.0.0.0 is required on the KLF 200 device. The firmware images may be obtained [here](https://www.velux.com/klf200) and may be imported via the webinterface of your KLF 200.
+At least firmware version > 2.0.0.0 is required on the KLF 200 device. The firmware images may be obtained from the [vendor's website](https://www.velux.com/klf200) and may be imported via the web interface of your KLF 200.
There is currently support for the following device types within Home Assistant:
@@ -47,21 +47,9 @@ You must complete the configuration within 5 minutes of rebooting the KLF 200 ga
### Action `velux.reboot_gateway`
-Reboots the configured KLF 200 Gateway.
+Reboots the configured KLF 200 gateway.
-There is a problem with the KLF 200 gateway where the connection cannot be established after a restart of Home Assistant, only a manual power off and on fixes this.
-As a workaround, you can use an automation to force a restart of the KLF 200 before exiting Home Assistant, like this:
-
-```yaml
-automation:
- - alias: "KLF reboot on hass stop event"
- description: "Reboots the KLF200 in order to avoid SSL Handshake issue"
- triggers:
- - trigger: homeassistant
- event: shutdown
- actions:
- - action: velux.reboot_gateway
-```
+In Home Assistant versions up to 2024.12.x, it was recommended to create an automation to reboot the KLF 200 gateway before shutting down or restarting Home Assistant. This automated reboot is now built into the integration, so you no longer need to create a separate automation.
## Velux Active (KIX 300)
diff --git a/source/_integrations/whirlpool.markdown b/source/_integrations/whirlpool.markdown
index 6d3d79cbcbb..547922eb3af 100644
--- a/source/_integrations/whirlpool.markdown
+++ b/source/_integrations/whirlpool.markdown
@@ -44,11 +44,22 @@ Dryers:
## Prerequisites
-- Valid Whirlpool/Maytag account credentials.
-- Registered appliances in the official Whirlpool/Maytag app.
+- Valid Whirlpool (or related brand) account credentials.
+- Registered appliances in the official Whirlpool (or related brand) mobile app.
{% include integrations/config_flow.md %}
+{% configuration_basic %}
+Username:
+ description: "The username of your Whirlpool (or related brand) account."
+Password:
+ description: "The password of your Whirlpool (or related brand) account."
+Region:
+ description: "The region in which your account is registered."
+Brand:
+ description: "The brand of the mobile app. It may not be the same brand as the appliances."
+{% endconfiguration_basic %}
+
## Supported functionality
This {% term integration %} maps appliances to entities in Home Assistant. A single appliance may be represented by one or more entities.
diff --git a/source/_integrations/withings.markdown b/source/_integrations/withings.markdown
index f585dbe67dc..8da3050dfeb 100644
--- a/source/_integrations/withings.markdown
+++ b/source/_integrations/withings.markdown
@@ -86,3 +86,9 @@ For example, measurement sensors like weight only work when data has been regist
Sleep sensors are only created if the {% term integration %} can find sleep data for you within the last day.
Workout calendar and the workout and activity sensors show if the latest available data point is no older than 14 days.
+
+## Removing the integration
+
+This integration follows standard integration removal, no extra steps are required.
+
+{% include integrations/remove_device_service.md %}
\ No newline at end of file
diff --git a/source/_integrations/yeelight.markdown b/source/_integrations/yeelight.markdown
index 1cd0c7baa19..c75bf509615 100644
--- a/source/_integrations/yeelight.markdown
+++ b/source/_integrations/yeelight.markdown
@@ -290,3 +290,21 @@ Enable or disable music_mode.
|---------------------------|----------|---------------------------------------------------------------------------------------------|
| `entity_id` | yes | Only act on specific lights. |
| `music_mode` | no | Use 'true' or 'false' to enable / disable music_mode. |
+
+
+## Troubleshooting
+
+### Device Discovery
+
+The Yeelight devices use non-standard search parameters for SSDP so devices are not visible in **the SSDP/UPnP Browser**.
+
+If you want to check what devices are in your network, you can use [the `async-upnp-client` library](https://pypi.org/project/async-upnp-client/), and then run the following command:
+```bash
+upnp-client search \
+ --target 239.255.255.250 \
+ --target_port 1982 \
+ --bind 0.0.0.0 \
+ --search_target wifi_bulb
+```
+
+You can also look at **the Zeroconf Browser** or **the DHCP Browser**, which correctly detect Yeelight devices.
diff --git a/source/_integrations/youtube.markdown b/source/_integrations/youtube.markdown
index 27498314ad3..0d80b6cd782 100644
--- a/source/_integrations/youtube.markdown
+++ b/source/_integrations/youtube.markdown
@@ -19,7 +19,9 @@ api_link: https://console.cloud.google.com/apis/library/youtube.googleapis.com?p
---
The **YouTube** {% term integration %} allows you to connect YouTube channels to Home Assistant.
+
For every channel you add, it will create sensors for:
+
- Views count
- Subscriber count
- The latest uploaded video
@@ -38,3 +40,9 @@ These are not the same as the one for [Google Calendar](/integrations/google).
{% include integrations/config_flow.md %}
{% include integrations/google_oauth.md %}
+
+## Removing the integration
+
+This integration follows standard integration removal, no extra steps are required.
+
+{% include integrations/remove_device_service.md %}
diff --git a/source/_integrations/zwave_js.markdown b/source/_integrations/zwave_js.markdown
index 5620c8e8ea3..13f8f8668ba 100644
--- a/source/_integrations/zwave_js.markdown
+++ b/source/_integrations/zwave_js.markdown
@@ -53,43 +53,31 @@ related:
The **Z-Wave** {% term integration %} allows you to control a Z-Wave network from Home Assistant via the [Z-Wave JS](https://zwave-js.github.io/node-zwave-js/#/) driver.
-## Device compatibility
-
-You do not need a Z-Wave adapter that is specifically designed for the Z-Wave integration in Home Assistant. The Z-Wave integration in Home Assistant can be operated with any Z-Wave network with other Z-Wave certified devices from other manufacturers. All mains operated nodes within the network will act as repeaters regardless of vendor to increase reliability of the network.
-
## Getting started
-This sections shows you how to set up a Z-Wave JS server and how to add your first Z-Wave device to Home Assistant. It also introduces you to some of the basic terminology.
+This section shows how to set up a Z-Wave network and how to add a Z-Wave end device to that network.
-### Z-Wave terminology and Home Assistant
+A Z-Wave network in Home Assistant includes the following elements:
-Throughout this documentation, Home Assistant terminology is used. For some of the concepts, the terminology does not correspond to the terminology used in Z-Wave documentation. The table below provides equivalents for some of those terms. For more Z-Wave term definitions, refer to the [terminology section](#z-wave-terminology).
+- a Z-Wave adapter (for example, [Home Assistant Connect ZWA-2](/connect/zwa-2))
+- a Z-Wave server (for example, the **Z-Wave JS** add-on)
+- this Z-Wave integration
+- Z-Wave end devices
-| Z-Wave functionality | Home Assistant | Definition |
-| -------------------- | -------------- | ---------- |
-| barrier operator | cover | |
-| controller | adapter, when referring to the hardware device that provides the Z-Wave functionality. The term controller is still used when referring to the network role (such as primary, secondary controller) | |
-| exclusion | remove | The process of removing a node from the Z-Wave network |
-| [inclusion](#classic-inclusion-versus-smartstart) | add | The process of adding a node to the Z-Wave network |
-| multilevel switch | represented by different entity types: light, fan etc. | |
-| replication | copy (not supported in Home Assistant) | The process of copying network information from one adapter to another. Not supported in Home Assistant. |
-| window covering | cover | |
+### Setting up a Z-Wave server in Home Assistant
-### Prerequisites
+This section shows how to set up a Z-Wave server using the **Z-Wave JS** add-on in Home Assistant.
-To run a Z-Wave network, you need the following elements:
+For other ways to set up a Z-Wave server, refer to the [advanced installation instructions](#advanced-installation-instructions).
-- A [supported Z-Wave adapter](/docs/z-wave/controllers/#supported-z-wave-usb-sticks--hardware-modules). First-time user? For recommendations on what to buy, go [here](#which-z-wave-adapter-should-i-buy).
-- A running [Z-Wave JS server](#setting-up-a-z-wave-js-server).
-- An installed Z-Wave integration in Home Assistant.
+Once you have set up the Z-Wave server, you can [add devices to the network](#adding-a-new-device-to-the-z-wave-network).
-### Setting up a Z-Wave JS server
+#### Prerequisites
-If you are running {% term "Home Assistant Operating System" %} or {% term "Home Assistant Supervised" %}, the easiest way to get started is by using the built-in Z-Wave JS add-on in Home Assistant.
+- A [supported Z-Wave adapter](/docs/z-wave/controllers/#supported-z-wave-usb-sticks--hardware-modules).
+ - First-time user? For recommendations, refer to the [what-to-buy-section](#which-z-wave-adapter-should-i-buy).
-For other ways to setup a Z-Wave server, refer to the [advanced installation instructions](#advanced-installation-instructions).
-
-Follow these steps:
+#### To set up a Z-Wave server
1. Open the Home Assistant user interface.
2. Plug the Z-Wave adapter into the device running Home Assistant.
@@ -97,21 +85,7 @@ Follow these steps:
- In the dialog, select **Recommended installation**.
- This will install the Z-Wave JS add-on on the Home Assistant server.
- Add the device to an {% term area %} and select **Finish**.
- - **Troubleshooting**: If your adapter is not recognized, follow these steps:
-
-{% details "Manual setup steps" %}
-Use this My button:
-
-{% my config_flow_start badge domain="zwave_js" %}, or follow these steps:
-
-- Browse to your Home Assistant instance.
-- Go to **{% my integrations title="Settings > Devices & services" %}**.
-- In the bottom right, select the
- **{% my config_flow_start icon domain="zwave_js" %}** button.
-- From the list, select **Z-Wave**.
-- Follow the instructions on screen to complete the setup.
-
-{% enddetails %}
+ - **Troubleshooting**: If your adapter is not recognized, follow [these steps](#my-z-wave-adapter-isnt-recognized-automatically-during-setup).
3. Wait for the installation to complete.
4. Depending on your Home Assistant version, you may be prompted for network security keys.
@@ -121,7 +95,7 @@ Use this My button:
5. Wait for the Z-Wave JS add-on to start up.
6. Once the installation is complete, the **Device info** of the Z-Wave adapter is shown.
- You successfully installed the Z-Wave integration and the Z-Wave JS add-on.
- - You can now [add](/integrations/zwave_js/#adding-a-new-device-to-the-z-wave-network) devices to the Z-Wave network.
+ - You can now [add devices](/integrations/zwave_js/#adding-a-new-device-to-the-z-wave-network) to the Z-Wave network.
{% note %}
While your Z-Wave mesh is permanently stored on your adapter, the additional metadata is not. When the Z-Wave integration starts up the first time, it will interview your entire Z-Wave network. Depending on the number of devices paired with the Z-Wave adapter, this can take a while. You can speed up this process by manually waking up your battery-powered devices. Most of the time, this is a button press on those devices (see their manual). It is not necessary to exclude and re-include devices from the mesh.
@@ -242,7 +216,7 @@ If you are using the Z-Wave JS add-on, Home Assistant automatically changes the
- Administrator rights in Home Assistant
- All your Z-Wave devices must be specified for that region
-- Note: this procedure only applies if your adapter is [set up using the Z-Wave JS add-on](#setting-up-a-z-wave-js-server)
+- Note: this procedure only applies if your adapter is [set up using the Z-Wave JS add-on](#to-set-a-up-a-z-wave-server)
### To override the radio frequency region of your Z-Wave adapter
@@ -1137,6 +1111,19 @@ After ensuring you are using an extension cable, rebuild network routes.
The combination of these two steps corrects a large number of reported difficulties.
+### My Z-Wave adapter isn't recognized automatically during setup
+
+If your Z-Wave adapter doesn't show up in the **Discovered** section automatically, try adding it manually:
+
+1. Check the hardware:
+ - Make sure the adapter is powered on.
+ - Make sure the cable you are using supports data, not power only.
+2. Go to **{% my integrations title="Settings > Devices & services" %}**.
+3. In the bottom right, select the
+ **{% my config_flow_start icon domain="zwave_js" %}** button and select **Z-Wave**.
+4. Follow the instructions on screen to complete the setup.
+5. If it is still not discovered, [check for interference](#im-having-a-problem-what-to-do-first).
+
### I have an Aeotec Gen5 adapter, and it isn't detected on my Raspberry Pi 4?
The first-generation Gen5 adapter has a known bug when plugged into a Pi 4 and possibly other systems. Aeotec released the Gen5+ stick to correct this bug. Gen5 users can plug their adapters into a USB 2.0 hub in order to overcome the issue.
@@ -1291,7 +1278,17 @@ No further action is required and the SmartStart product will be added automatic
### Terminology mapping table
-For some of the concepts, the terminology used in Home Assistant does not correspond to the terminology used in Z-Wave documentation. Refer to the [terminology mapping table](#z-wave-terminology-and-home-assistant) for a list of term equivalents.
+Throughout this documentation, Home Assistant terminology is used. For some of the concepts, the terminology does not correspond to the terminology used in Z-Wave documentation. The table below provides equivalents for some of those terms.
+
+| Z-Wave functionality | Home Assistant | Definition |
+| -------------------- | -------------- | ---------- |
+| barrier operator | cover | |
+| controller | adapter, when referring to the hardware device that provides the Z-Wave functionality. The term controller is still used when referring to the network role (such as primary, secondary controller) | |
+| exclusion | remove | The process of removing a node from the Z-Wave network |
+| [inclusion](#classic-inclusion-versus-smartstart) | add | The process of adding a node to the Z-Wave network |
+| multilevel switch | represented by different entity types: light, fan etc. | |
+| replication | copy (not supported in Home Assistant) | The process of copying network information from one adapter to another. Not supported in Home Assistant. |
+| window covering | cover | |
## Removing Z-Wave JS from Home Assistant
diff --git a/source/_posts/2025-09-03-release-20259.markdown b/source/_posts/2025-09-03-release-20259.markdown
index 7948384ec63..ac7c315b926 100644
--- a/source/_posts/2025-09-03-release-20259.markdown
+++ b/source/_posts/2025-09-03-release-20259.markdown
@@ -56,6 +56,11 @@ Enjoy the release!
- [Other noteworthy changes](#other-noteworthy-changes)
- [Analog clock](#analog-clock)
- [Storage insights](#storage-insights)
+- [Patch releases](#patch-releases)
+ - [2025.9.1 - September 5](#202591---september-5)
+ - [2025.9.2 - September 12](#202592---september-12)
+ - [2025.9.3 - September 13](#202593---september-13)
+ - [2025.9.4 - September 19](#202594---september-19)
- [Need help? Join the community!](#need-help-join-the-community)
- [Backward-incompatible changes](#backward-incompatible-changes)
- [All changes](#all-changes)
@@ -222,7 +227,7 @@ changes to existing integrations:
- Network admins will love [@Tomeroeni] bringing individual (enable/disable) switch port control to [UniFi] switches!
- The [OpenWeatherMap] integration now includes a wind gust sensor, thanks to [@gjohansson-ST]!
- [@kizovinh] added support for battery status and online status sensors to the [EZVIZ] integration, making it easier to monitor your EZVIZ cameras. Nice!
-- If you own a [Russound Rio] device, you can now browse your device's saved presets directly from the media browser! Thanks, [@hanwg]!
+- If you own a [Russound RIO] device, you can now browse your device's saved presets directly from the media browser! Thanks, [@noahhusby]!
- [@mbo18] added an absolute humidity sensor to the [Awair] integration. Nice!
- The [Teslemetry] integration added charging and preconditioning actions for your Tesla vehicle. Thanks, [@Bre77]!
- [@catsmanac] added [IQ Meter Collar] and [C6 Combiner] support to the [Enphase Envoy] integration. Good work!
@@ -230,9 +235,9 @@ changes to existing integrations:
[@Bre77]: https://github.com/Bre77
[@catsmanac]: https://github.com/catsmanac
[@gjohansson-ST]: https://github.com/gjohansson-ST
-[@hanwg]: https://github.com/hanwg
[@kizovinh]: https://github.com/kizovinh
[@mbo18]: https://github.com/mbo18
+[@noahhusby]: https://github.com/noahhusby
[@starkillerOG]: https://github.com/starkillerOG
[@Thomas55555]: https://github.com/Thomas55555
[@Tomeroeni]: https://github.com/Tomeroeni
@@ -246,7 +251,7 @@ changes to existing integrations:
[OpenWeatherMap]: /integrations/openweathermap
[PlayStation Network]: /integrations/playstation_network
[Reolink]: /integrations/reolink
-[Russound Rio]: /integrations/russound_rio
+[Russound RIO]: /integrations/russound_rio
[Teslemetry]: /integrations/teslemetry
[UniFi]: /integrations/unifi
@@ -341,6 +346,254 @@ You can find these metrics by navigating to {% my storage title="**Settings** >
{% my storage badge %}
+## Patch releases
+
+We will also release patch releases for Home Assistant 2025.9 in September.
+These patch releases only contain bug fixes. Our goal is to release a patch
+release once a week, aiming for Friday.
+
+### 2025.9.1 - September 5
+
+- Add support for migrated Hue bridge ([@marcelveldt] - [#151411])
+- Add missing device trigger duration localizations ([@karwosts] - [#151578])
+- Correct capitalization of "FRITZ!Box" in FRITZ!Box Tools integration ([@tr4nt0r] - [#151637])
+- Fix Sonos Dialog Select type conversion ([@PeteRager] - [#151649])
+- Fix WebSocket proxy for add-ons not forwarding ping/pong frame data ([@felipecrs] - [#151654])
+- Fix, entities stay unavailable after timeout error, Imeon inverter integration ([@Imeon-Energy] - [#151671])
+- Bump aiohue to 4.7.5 ([@marcelveldt] - [#151684])
+- Update frontend to 20250903.3 ([@bramkragten] - [#151694])
+- Require OhmeAdvancedSettingsCoordinator to run regardless of entities ([@dan-r] - [#151701])
+- Bump ohmepy version to 1.5.2 ([@dan-r] - [#151707])
+- Update Mill library 0.13.1 ([@Danielhiversen] - [#151712])
+- Handle match failures in intent HTTP API ([@synesthesiam] - [#151726])
+- Bump pyschlage to 2025.9.0 ([@dknowles2] - [#151731])
+- Bump bimmer_connected to 0.17.3 ([@rikroe] - [#151756])
+- Fix recognition of entity names in default agent with interpunction ([@arturpragacz] - [#151759])
+- Fix enable/disable entity in modbus ([@janiversen] - [#151626])
+
+[#151263]: https://github.com/home-assistant/core/pull/151263
+[#151411]: https://github.com/home-assistant/core/pull/151411
+[#151578]: https://github.com/home-assistant/core/pull/151578
+[#151626]: https://github.com/home-assistant/core/pull/151626
+[#151637]: https://github.com/home-assistant/core/pull/151637
+[#151649]: https://github.com/home-assistant/core/pull/151649
+[#151654]: https://github.com/home-assistant/core/pull/151654
+[#151671]: https://github.com/home-assistant/core/pull/151671
+[#151684]: https://github.com/home-assistant/core/pull/151684
+[#151694]: https://github.com/home-assistant/core/pull/151694
+[#151701]: https://github.com/home-assistant/core/pull/151701
+[#151707]: https://github.com/home-assistant/core/pull/151707
+[#151712]: https://github.com/home-assistant/core/pull/151712
+[#151726]: https://github.com/home-assistant/core/pull/151726
+[#151731]: https://github.com/home-assistant/core/pull/151731
+[#151756]: https://github.com/home-assistant/core/pull/151756
+[#151759]: https://github.com/home-assistant/core/pull/151759
+[@Danielhiversen]: https://github.com/Danielhiversen
+[@Imeon-Energy]: https://github.com/Imeon-Energy
+[@PeteRager]: https://github.com/PeteRager
+[@arturpragacz]: https://github.com/arturpragacz
+[@bramkragten]: https://github.com/bramkragten
+[@dan-r]: https://github.com/dan-r
+[@dknowles2]: https://github.com/dknowles2
+[@felipecrs]: https://github.com/felipecrs
+[@frenck]: https://github.com/frenck
+[@janiversen]: https://github.com/janiversen
+[@karwosts]: https://github.com/karwosts
+[@marcelveldt]: https://github.com/marcelveldt
+[@rikroe]: https://github.com/rikroe
+[@synesthesiam]: https://github.com/synesthesiam
+[@tr4nt0r]: https://github.com/tr4nt0r
+
+### 2025.9.2 - September 12
+
+- Fix XMPP not working with non-TLS servers ([@Human] - [#150957])
+- Update SharkIQ authentication method ([@funkybunch] - [#151046])
+- Add event entity on websocket ready in Husqvarna Automower ([@Thomas55555] - [#151428])
+- Fix Aladdin Connect state not updating ([@hbludworth] - [#151652])
+- Fix support for Ecowitt soil moisture sensors ([@blotus] - [#151685])
+- Fix update of the entity ID does not clean up an old restored state ([@jbouwh] - [#151696])
+- Revert "Jewish Calendar add coordinator " ([@tsvi] - [#151780])
+- Remove device class for Matter NitrogenDioxideSensor ([@lboue] - [#151782])
+- Improve config entry migration for edge cases in Alexa Devices ([@chemelli74] - [#151788])
+- Bump habluetooth to 5.3.1 ([@bdraco] - [#151803])
+- Fix KNX BinarySensor config_store data ([@farmio] - [#151808])
+- Fix KNX Light - individual color initialisation from UI config ([@farmio] - [#151815])
+- Mark Tractive switches as unavailable when tacker is in the enegy saving zone ([@bieniu] - [#151817])
+- Allow delay > 1 in modbus. ([@janiversen] - [#151832])
+- max_temp / min_temp in modbus light could only be int, otherwise an assert was provoked. ([@janiversen] - [#151833])
+- removed assert fron entity in modbus. ([@janiversen] - [#151834])
+- Bump pydrawise to 2025.9.0 ([@dknowles2] - [#151842])
+- Bump aioharmony to 0.5.3 ([@bdraco] - [#151853])
+- Update pysmarty2 to 0.10.3 ([@martinssipenko] - [#151855])
+- fix rain sensor for Velux GPU windows ([@wollew] - [#151857])
+- Bump aioecowitt to 2025.9.1 ([@edenhaus] - [#151859])
+- Use `native_visibility` property instead of `visibility` for OpenWeatherMap weather entity ([@bieniu] - [#151867])
+- Bump aiontfy to v0.5.5 ([@tr4nt0r] - [#151869])
+- Bump aiolifx-themes to 1.0.2 to support newer LIFX devices ([@Djelibeybi] - [#151898])
+- Bump aiovodafone to 1.2.1 ([@chemelli74] - [#151901])
+- Avoid cleanup/recreate of device_trackers not linked to a device for Vodafone Station ([@chemelli74] - [#151904])
+- Fix _is_valid_suggested_unit in sensor platform ([@epenet] - [#151912])
+- Bump habluetooth to 5.5.1 ([@bdraco] - [#151921])
+- Bump bleak-esphome to 3.3.0 ([@bdraco] - [#151922])
+- Bump habluetooth to 5.6.0 ([@bdraco] - [#151942])
+- Fix invalid logger in Tuya ([@epenet] - [#151957])
+- Fix for squeezebox track content_type ([@peteS-UK] - [#151963])
+- Fix playlist media_class_filter in search_media for squeezebox ([@peteS-UK] - [#151973])
+- Bump habluetooth to 5.6.2 ([@bdraco] - [#151985])
+- Bump yt-dlp to 2025.09.05 ([@joostlek] - [#152006])
+- Bump `accuweather` to version 4.2.1 ([@bieniu] - [#152029])
+- Fix HomeKit Controller stale values at startup ([@bdraco] - [#152086])
+- Fix duplicated IP port usage in Govee Light Local ([@abmantis] - [#152087])
+- Fix DoorBird being updated with wrong IP addresses during discovery ([@bdraco] - [#152088])
+- Fix supported _color_modes attribute not set for on/off MQTT JSON light ([@jbouwh] - [#152126])
+- Fix reauth for Alexa Devices ([@chemelli74] - [#152128])
+- Bump hass-nabucasa from 1.1.0 to 1.1.1 ([@ludeeus] - [#152147])
+- Update frontend to 20250903.5 ([@bramkragten] - [#152170])
+- Use position percentage for closed status in Velux ([@wollew] - [#151679])
+
+[#150957]: https://github.com/home-assistant/core/pull/150957
+[#151046]: https://github.com/home-assistant/core/pull/151046
+[#151263]: https://github.com/home-assistant/core/pull/151263
+[#151428]: https://github.com/home-assistant/core/pull/151428
+[#151652]: https://github.com/home-assistant/core/pull/151652
+[#151679]: https://github.com/home-assistant/core/pull/151679
+[#151685]: https://github.com/home-assistant/core/pull/151685
+[#151696]: https://github.com/home-assistant/core/pull/151696
+[#151766]: https://github.com/home-assistant/core/pull/151766
+[#151780]: https://github.com/home-assistant/core/pull/151780
+[#151782]: https://github.com/home-assistant/core/pull/151782
+[#151788]: https://github.com/home-assistant/core/pull/151788
+[#151803]: https://github.com/home-assistant/core/pull/151803
+[#151808]: https://github.com/home-assistant/core/pull/151808
+[#151815]: https://github.com/home-assistant/core/pull/151815
+[#151817]: https://github.com/home-assistant/core/pull/151817
+[#151832]: https://github.com/home-assistant/core/pull/151832
+[#151833]: https://github.com/home-assistant/core/pull/151833
+[#151834]: https://github.com/home-assistant/core/pull/151834
+[#151842]: https://github.com/home-assistant/core/pull/151842
+[#151853]: https://github.com/home-assistant/core/pull/151853
+[#151855]: https://github.com/home-assistant/core/pull/151855
+[#151857]: https://github.com/home-assistant/core/pull/151857
+[#151859]: https://github.com/home-assistant/core/pull/151859
+[#151867]: https://github.com/home-assistant/core/pull/151867
+[#151869]: https://github.com/home-assistant/core/pull/151869
+[#151898]: https://github.com/home-assistant/core/pull/151898
+[#151901]: https://github.com/home-assistant/core/pull/151901
+[#151904]: https://github.com/home-assistant/core/pull/151904
+[#151912]: https://github.com/home-assistant/core/pull/151912
+[#151921]: https://github.com/home-assistant/core/pull/151921
+[#151922]: https://github.com/home-assistant/core/pull/151922
+[#151942]: https://github.com/home-assistant/core/pull/151942
+[#151957]: https://github.com/home-assistant/core/pull/151957
+[#151963]: https://github.com/home-assistant/core/pull/151963
+[#151973]: https://github.com/home-assistant/core/pull/151973
+[#151985]: https://github.com/home-assistant/core/pull/151985
+[#152006]: https://github.com/home-assistant/core/pull/152006
+[#152029]: https://github.com/home-assistant/core/pull/152029
+[#152086]: https://github.com/home-assistant/core/pull/152086
+[#152087]: https://github.com/home-assistant/core/pull/152087
+[#152088]: https://github.com/home-assistant/core/pull/152088
+[#152126]: https://github.com/home-assistant/core/pull/152126
+[#152128]: https://github.com/home-assistant/core/pull/152128
+[#152147]: https://github.com/home-assistant/core/pull/152147
+[#152170]: https://github.com/home-assistant/core/pull/152170
+[@Djelibeybi]: https://github.com/Djelibeybi
+[@Human]: https://github.com/Human
+[@Thomas55555]: https://github.com/Thomas55555
+[@abmantis]: https://github.com/abmantis
+[@bdraco]: https://github.com/bdraco
+[@bieniu]: https://github.com/bieniu
+[@blotus]: https://github.com/blotus
+[@bramkragten]: https://github.com/bramkragten
+[@chemelli74]: https://github.com/chemelli74
+[@dknowles2]: https://github.com/dknowles2
+[@edenhaus]: https://github.com/edenhaus
+[@epenet]: https://github.com/epenet
+[@farmio]: https://github.com/farmio
+[@frenck]: https://github.com/frenck
+[@funkybunch]: https://github.com/funkybunch
+[@hbludworth]: https://github.com/hbludworth
+[@janiversen]: https://github.com/janiversen
+[@jbouwh]: https://github.com/jbouwh
+[@joostlek]: https://github.com/joostlek
+[@lboue]: https://github.com/lboue
+[@ludeeus]: https://github.com/ludeeus
+[@martinssipenko]: https://github.com/martinssipenko
+[@peteS-UK]: https://github.com/peteS-UK
+[@tr4nt0r]: https://github.com/tr4nt0r
+[@tsvi]: https://github.com/tsvi
+[@wollew]: https://github.com/wollew
+
+### 2025.9.3 - September 13
+
+- Bump habluetooth to 5.6.4 ([@bdraco] - [#152227])
+
+[#152227]: https://github.com/home-assistant/core/pull/152227
+[@bdraco]: https://github.com/bdraco
+
+### 2025.9.4 - September 19
+
+- Bump habiticalib to v0.4.4 ([@tr4nt0r] - [#151332])
+- Bump habiticalib to v0.4.5 ([@tr4nt0r] - [#151720])
+- Fix bug with the hardcoded configuration_url (asuswrt) ([@Vaskivskyi] - [#151858])
+- Fix HomeKit Controller overwhelming resource-limited devices by batching characteristic polling ([@bdraco] - [#152209])
+- Upgrade waterfurnace to 1.2.0 ([@sdague] - [#152241])
+- Bump aiohomekit to 3.2.16 ([@bdraco] - [#152255])
+- Bump bluetooth-auto-recovery to 1.5.3 ([@bdraco] - [#152256])
+- Add proper error handling for /actions endpoint for miele ([@astrandb] - [#152290])
+- Bump aiohomekit to 3.2.17 ([@bdraco] - [#152297])
+- Update authorization server to prefer absolute urls ([@allenporter] - [#152313])
+- Bump imeon_inverter_api to 0.4.0 ([@Imeon-Energy] - [#152351])
+- Bump pylamarzocco to 2.1.0 ([@zweckj] - [#152364])
+- Add La Marzocco specific client headers ([@zweckj] - [#152419])
+- Fix KNX UI schema missing DPT ([@farmio] - [#152430])
+- Bump pyemoncms to 0.1.3 ([@alexandrecuer] - [#152436])
+- Fix Sonos set_volume float precision issue ([@PeteRager] - [#152493])
+- Bump opower to 0.15.5 ([@tronikos] - [#152531])
+- Bump holidays to 0.80 ([@gjohansson-ST] - [#152306])
+- Bump holidays to 0.81 ([@gjohansson-ST] - [#152569])
+- Bump asusrouter to 1.21.0 ([@Vaskivskyi] - [#151607])
+
+[#151263]: https://github.com/home-assistant/core/pull/151263
+[#151332]: https://github.com/home-assistant/core/pull/151332
+[#151607]: https://github.com/home-assistant/core/pull/151607
+[#151720]: https://github.com/home-assistant/core/pull/151720
+[#151766]: https://github.com/home-assistant/core/pull/151766
+[#151858]: https://github.com/home-assistant/core/pull/151858
+[#152198]: https://github.com/home-assistant/core/pull/152198
+[#152209]: https://github.com/home-assistant/core/pull/152209
+[#152237]: https://github.com/home-assistant/core/pull/152237
+[#152241]: https://github.com/home-assistant/core/pull/152241
+[#152255]: https://github.com/home-assistant/core/pull/152255
+[#152256]: https://github.com/home-assistant/core/pull/152256
+[#152290]: https://github.com/home-assistant/core/pull/152290
+[#152297]: https://github.com/home-assistant/core/pull/152297
+[#152306]: https://github.com/home-assistant/core/pull/152306
+[#152313]: https://github.com/home-assistant/core/pull/152313
+[#152351]: https://github.com/home-assistant/core/pull/152351
+[#152364]: https://github.com/home-assistant/core/pull/152364
+[#152419]: https://github.com/home-assistant/core/pull/152419
+[#152430]: https://github.com/home-assistant/core/pull/152430
+[#152436]: https://github.com/home-assistant/core/pull/152436
+[#152493]: https://github.com/home-assistant/core/pull/152493
+[#152531]: https://github.com/home-assistant/core/pull/152531
+[#152569]: https://github.com/home-assistant/core/pull/152569
+[@Imeon-Energy]: https://github.com/Imeon-Energy
+[@PeteRager]: https://github.com/PeteRager
+[@Vaskivskyi]: https://github.com/Vaskivskyi
+[@alexandrecuer]: https://github.com/alexandrecuer
+[@allenporter]: https://github.com/allenporter
+[@astrandb]: https://github.com/astrandb
+[@balloob]: https://github.com/balloob
+[@bdraco]: https://github.com/bdraco
+[@farmio]: https://github.com/farmio
+[@frenck]: https://github.com/frenck
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[@sdague]: https://github.com/sdague
+[@tr4nt0r]: https://github.com/tr4nt0r
+[@tronikos]: https://github.com/tronikos
+[@zweckj]: https://github.com/zweckj
+
## Need help? Join the community!
Home Assistant has a great community of users who are all more than willing
diff --git a/source/_posts/2025-09-11-ai-in-home-assistant.markdown b/source/_posts/2025-09-11-ai-in-home-assistant.markdown
new file mode 100644
index 00000000000..ef1f130b76a
--- /dev/null
+++ b/source/_posts/2025-09-11-ai-in-home-assistant.markdown
@@ -0,0 +1,159 @@
+---
+layout: post
+title: "Building the AI-powered local smart home"
+description: "In the past year, we’ve made significant progress in making AI a powerful tool in the home"
+date: 2025-09-11 00:00:01
+date_formatted: "September 11, 2025"
+author: Paulus Schoutsen
+comments: true
+categories: Assist AI
+og_image: /images/blog/2025-09-ai/art.webp
+---
+
+
+
+Last year, we laid out [our vision for AI in the smart home](/blog/2024/06/07/ai-agents-for-the-smart-home/), which opened up experimentation with AI in Home Assistant. In that update, we made it easier to integrate all sorts of local and cloud AI tools, and provided ways to use them to control and automate your home. A year has passed, a lot has happened in the AI space, and our community has made sure that Home Assistant has stayed at the frontier.
+
+We beat big tech to the punch; we were the first to make AI useful in the home. We did it by giving our community complete control over how and when they use AI, making AI a powerful _tool_ to use in the home. As opposed to something that takes over your home. Our community is taking advantage of AI’s unique abilities (for instance, its image recognition or summarizing skills), while having the ability to exclude it from mission-critical things they’d prefer it not to handle. Best of all, this can all be run locally, without any data leaving your home!
+
+Moreover, if users don’t want AI in their homes, that’s their choice, and they can choose not to enable any of these features. I hope to see big tech take an approach this measured, but judging by their last couple of keynotes, I’m not holding my breath.
+
+Over the past year, we’ve added many new AI features and made them easy to use directly through Home Assistant’s user interface. We have kept up with all the developments in AI land and are using the latest standard to integrate more models and tools than ever before. We’re also continuing to benchmark local and cloud models to give users an idea of what works best. Keep reading to check out everything new, and maybe you can teach your smart home some cool new tricks.
+
+
+
+ Local AI is making the home very natural to control
+
+
+Big thanks to our AI community contributor team:
+[@AllenPorter](https://github.com/allenporter), [@shulyaka](https://github.com/shulyaka), [@tronikos](https://github.com/tronikos), [@IvanLH](https://github.com/IvanLH), [@Joostlek](https://github.com/Joostlek)!
+
+
+
+## Supercharging voice control with AI
+
+We were doing voice assistants before AI was cool. In 2023, we kicked off our [Year of the Voice](/blog/2022/12/20/year-of-voice/). Since then, we’ve worked towards our goal of building all the parts needed for a local, open, and private voice assistant. When AI became the rage, we were quick to integrate it.
+
+Today, users can chat with any large language model (LLM) that is integrated into Home Assistant, whether that’s in the cloud or run locally via a service like [Ollama](/integrations/ollama/). Where [Assist](/voice_control/), our home-grown (non-AI) voice assistant agent, is focused on a predetermined list of mostly home control commands, AI allows you to ask more open-ended questions. Summarize what’s happening across the smart home sensors you’ve [exposed to Assist](/voice_control/voice_remote_expose_devices/), or get answers to trivia questions. You can even [give your LLM a personality](/voice_control/assist_create_open_ai_personality/)!
+
+Users can also leverage the power of AI to speak the way _they speak_, as LLMs are much better at understanding the intent behind the words. By default, Assist will handle commands first. Only questions or commands it can’t understand will be sent to the AI you’ve set up. For instance, _“Turn on the kitchen light”_ can be handled by Assist, while _“It's dark in the kitchen, can you help?”_ could be processed by an AI. This speeds up response times for simple commands and makes for a more sustainable voice assistant.
+
+Another powerful addition from the past year is context sharing between agents. So your Assist agent can share the most recent commands with your chosen AI agent. This shared context lets you say something like _“Add milk to my shopping list,”_ which Assist will act on, and to add more items, just say _“Add rice.”_ The AI agent understands that these commands are connected and can act accordingly.
+
+
+
+ Here is an excellent walkthrough video of JLo's AI-powered home, showing many of these new features in action
+
+
+Another helpful addition keeps the conversation going; if the LLM asks you a question, your Assist hardware will listen for your reply. If you say something like “It’s dark”, it might ask whether you’d like to turn on some lights, and you could tell it to proceed. We have taken this even further than other voice assistants, as you can now have Home Assistant initiate conversations. For example, you could set up an automation that detects when the garage door is open and asks if you’d like to close it (though this can also be done without AI with a very clever [Blueprint](https://my.home-assistant.io/redirect/blueprint_import?blueprint_url=https%3A%2F%2Fwww.home-assistant.io%2Fblueprints%2Fblog%2F2025-07%2Fask_yes_no_question.yaml)).
+
+AI pushed us to completely revamp our Text-to-Speech (TTS) system to take advantage of streaming responses from LLMs. While local AI models can be slow, we use a simple trick to make the delay almost unnoticeable. Now, both [Piper](https://github.com/OHF-Voice/piper1-gpl) (our local TTS) and [Home Assistant Cloud](/cloud/) TTS can begin generating audio as soon as the LLM produces the first few words, improving the speed of the spoken response by a factor of ten.
+
+**Prompt: "Tell me a long story about a frog"**
+
+| **Setup** | **Time to start speaking** |
+| -------------------- | -------------------------- |
+| Cloud, non-streaming | 6.62 sec |
+| Cloud, streaming | 0.51 sec (13x faster) |
+| Piper, non-streaming | 5.31 sec |
+| Piper, streaming | 0.56 sec (9.5x faster) |
+
+*Ollama gemma3:4b on an RTX 3090, and Piper on an i5*
+
+## Great hardware to work with AI
+
+People built some really cool voice hardware, from landline telephones to little talking robots, but the fact that it was so DIY was always a barrier to entry. To make our voice assistant available to everyone, we released the [Home Assistant Voice Preview Edition](/blog/2024/12/19/voice-preview-edition-the-era-of-open-voice/). This is an easy and affordable way to try Home Assistant Voice. It has some seriously powerful audio processing hardware inside its sleek package. If you were on the fence about trying out voice, it really is [the best way to get started](/voice-pe/).
+
+
+
+ Voice Preview Edition is not only open and powerful, but it looks and feels great too!
+
+
+It’s now easier than ever to set up your Assist hardware to work with LLMs with our [Voice Assistants](https://my.home-assistant.io/redirect/voice_assistants/) settings page, and you can even assign a different LLM to each device. The LLM can recognize the room it’s in and the devices within it, making its responses more relevant. Assist was built to be a great way to control devices in your home, but with AI, it becomes so much more.
+
+## AI-powered suggestions
+
+[Last month](/blog/2025/08/06/release-20258/), Home Assistant launched a new opt-in feature to leverage the power of AI when automating with Home Assistant. The goal is to shorten the journey from a blank slate to your finished idea.
+
+When saving an automation or script, users can now leverage the new Suggest button: When clicked, it will send your automation configuration along with the titles of your existing automations and labels to AI to suggest a name, description, category, and labels for your new automation. Over the coming months, we’re going to explore what other features can benefit from AI suggestions.
+
+
+
+
+
+To opt-in to this feature, you need to take two steps. First, you need to configure an integration that provides an [_AI Tasks_ entity](/integrations/?cat=ai). For local AI, you can configure Ollama, or you can also leverage cloud-based AI like Google, OpenAI, or Anthropic. Once configured, you need to go to the new [AI Task preferences pane](https://my.home-assistant.io/redirect/config_ai_task/) under **_System -> General_** and pick the AI Task entity to power suggestions in the UI. If you don't configure an AI Tasks entity, the Suggest button will not be visible.
+
+
+
+
+
+## AI Tasks gets the job done
+
+Enabling [AI Tasks](/integrations/ai_task/) does more than quickly label and summarize your automations; its true superpower is making AI easy to use in templates, scripts, and automations. AI Tasks allow other code to leverage AI to generate data, including options to attach files and define how you want that data output (for instance, a JSON schema).
+
+We have all seen those incredible community creations, where a user leverages AI image recognition and analysis to [detect available parking spots](https://www.reddit.com/r/homeassistant/comments/1lytyv9/parking_spot_detection/) or [count the number of chickens in the chicken coop](https://houndhillhomestead.com/google-gemini-powered-goose-coop-door/). It’s likely that AI Tasks can now help you easily do this in Home Assistant, without the need for complex scripts, extra add-ons, or HACS integrations.
+
+Below is a template entity that counts chickens in a video feed, all via a short and simple set of instructions.
+
+{% raw %}
+
+```yaml
+template:
+ - triggers:
+ - trigger: homeassistant
+ event: start
+ - trigger: time_pattern
+ minutes: "/5"
+ actions:
+ - action: ai_task.generate_data
+ data:
+ task_name: Count chickens
+ instructions: >-
+ This is the inside of my coop. How many birds (chickens, geese, and
+ ducks) are inside the coop?
+ structure:
+ birds:
+ selector:
+ number:
+ attachments:
+ media_content_id: media-source://camera/camera.chicken_coop
+ media_content_type: image/jpeg
+ response_variable: result
+ sensor:
+ - name: "Chickens"
+ state: "{{ result.data.birds }}"
+ state_class: total
+```
+
+{% endraw %}
+
+This template sends a snapshot of the camera to the AI, asking it to analyze what is going on. It defines that the output should always be a number, since we want to use that information in Home Assistant. All of this is embedded in a template entity that automatically updates every 5 minutes. An AI Task could also be embedded in an automation, a script, or any other place that can execute actions.
+
+
+
+ An automation triggers an AI Task to identify what caused motion on a camera.
+
+
+Lastly, users can set a default AI Task entity. This allows users to skip picking an entity ID when creating AI automations. It also lets you migrate everything that uses AI Tasks to the latest model with a single click. This also makes it easy to share blueprints that leverage AI Tasks, like this blueprint that analyzes a camera snapshot when motion is detected:
+
+{% my blueprint_import badge blueprint_url="https://community.home-assistant.io/t/ai-camera-analysis/911634" %}
+
+## MCP opens a whole new world
+
+[Model Context Protocol](/integrations/mcp/) (MCP) is a thin layer allowing LLMs to integrate _anything_. When the specification was announced, we quickly jumped on it and integrated it into Home Assistant. Effectively, these servers give Home Assistant’s Assist conversation agent access to all sorts of new tools. You could connect MCP servers that give Assist access to the latest news stories, your to-do lists, or a server that catalogues your vinyl collection, allowing you to have richer conversations (_“Okay Nabu, which Replacements albums do I have, and which aren’t on my Vinyl-to-Purchase list?”_).
+
+On the flip side, you can also [turn Home Assistant into an MCP server](/integrations/mcp_server/), allowing an AI system to access information about your home. For instance, you could create a local AI that's great at making Home Assistant automations, and it could include all your entity names or available actions. MCP keeps gaining more support, and there are some great cloud and self-hosted solutions available.
+
+## How to pick a model
+
+There are a lot of models available, it's hard to know where to start. Luckily, Home Assistant’s resident AI guru [@AllenPorter](https://github.com/allenporter) is here to help. He has put together an incredibly useful [Home LLM Leaderboard](https://github.com/allenporter/home-assistant-datasets/tree/main/reports). This dataset includes his extensive tests of cloud and local LLM options, and even has tests that give small local LLMs a fighting chance (see [assist-mini](https://github.com/allenporter/home-assistant-datasets/tree/main/reports#assist-mini)).
+
+Currently, the charts show the big cloud players' most recent models ranking pretty close to each other, while recent local models that use 8GB or more of VRAM are nearly keeping up. In the past, there was a big disparity between most models, but now it's hard to go wrong.
+
+This is especially helpful as the options for LLMs in Home Assistant have just grown exponentially with the addition of [OpenRouter](/integrations/open_router), a unified interface for LLMs. With OpenRouter, users can access over 400 new models in Home Assistant, and it supports AI Tasks right from day one. We really are spoiled for choice.
+
+## The future is Open, and Open Source
+
+Home Assistant is open. We believe that you should be in control of your data, and your smart home. All of it. Local LLMs and the way we have architected Home Assistant extends this choice to the AI space, all while maintaining your privacy.
+
+Most crucially, we’ve made all of this open source. We are community-driven and work on this together with our community. The Open Home Foundation has no investors and is not beholden to anyone but our users. Our work is funded through hardware purchases and [Home Assistant Cloud](/cloud/) subscriptions, allowing us to make all the technology we build free and open.
diff --git a/source/_posts/2025-09-17-home-assistant-turns-12.markdown b/source/_posts/2025-09-17-home-assistant-turns-12.markdown
new file mode 100644
index 00000000000..5728f3d0ef3
--- /dev/null
+++ b/source/_posts/2025-09-17-home-assistant-turns-12.markdown
@@ -0,0 +1,110 @@
+---
+layout: post
+title: "Happy 12th Birthday, Home Assistant!"
+description: "This year we’re sharing some stories from the community and some stats about our growth."
+date: 2025-09-17 00:00:01
+date_formatted: "September 17, 2025"
+author: Missy Quarry
+comments: true
+categories: Announcements
+og_image: /images/blog/2025-09-12th-anniversary/art.webp
+---
+
+
+
+Every September, we celebrate the anniversary of Home Assistant’s first PR in 2013 – for our 12th birthday, we’re going all in on community again. Last month, we asked for submissions on how Home Assistant helps you, and today we will highlight our favorites! We will also take a look at all the cool milestones over the past year in the project, thanks to contributions from you all, and the new things coming up for the community.
+
+## It’s a communal effort
+
+When I (Missy Quarry) joined as the Community & Social Media Manager in February 2024, I was still new to how an open source project the size of Home Assistant manages its community. Over the past 18 months, I’ve seen Home Assistant community members from all walks of life — whether DIY tinkerers or people simply looking to make small improvements at home — contribute in their own ways. By sharing your stories and inspiring others, you’ve helped the project grow. For our 12th birthday, I want to celebrate these contributions, no matter the size or complexity. 😌
+
+Before I jump into celebrating all your amazing contributions and how they shape the projects managed by the Open Home Foundation, I have a couple of birthday presents for you. 🎁
+
+First, I’m thrilled to share our [new Community website](/community)! Right now, it’s a simple hub to find community information with ease, but we expect to evolve this over the coming months (or so). You’ll find links to our official community platforms, information on events, and details on meetups, including how to get reimbursed for certain fees as a host. In the future, I’d like to include links to regional communities we’re aware of and showcase more of the kinds of stories I’ll be sharing today.
+
+*Feel like something’s missing from this new page? [Let me know](mailto:community@openhomefoundation.org)!*
+
+Next, we’ve been working hard to do more of our development in the open. Last September, I redesigned the Discord server and in doing so I gated the *Developer* category behind a role. This has made it more difficult to develop in the open with the channels hidden behind a role, so we’re switching things up.
+
+As of this week, the Developer category is now **read-only** for every member. Want to take a peek into the future of Home Assistant? Head to the [#projects channel](https://discord.com/channels/330944238910963714/1346914401508392980) and see what contributors are talking about! Want to join in and contribute with either your feedback or skills? I’ve created [an info thread](https://discord.com/channels/330944238910963714/1346952081881436331) for the channel that explains how to assign yourself either the Developer or Designer role and unlock the ability to chat in the threads.
+
+Let’s jump into those submitted stories now… 🤩
+
+## Happily ever after
+
+In my opinion, the best thing about Home Assistant is its flexibility - you can integrate such a wide range of devices into it and use their data to build a unique-to-your-home experience. And that’s exactly why I wanted to hear how you, the community, use it in your own home to benefit you. Here are my favorite stories you submitted - I hope one inspires your next project. ✨
+
+- [A coffee automation to improve Home Approval Factor](https://jordan.roher.me/projects/home-automation/). ☕️ Jordan made a morning automation to avoid having the coffee grinder grind his morning mood.
+
+- u/katschung helped their girlfriend fully accept Home Assistant by [creating a dashboard with a retrogame-style floor plan](https://www.reddit.com/r/homeassistant/comments/1hrkku1/pokemon_style_floorplan/). 🕹️
+
+- Sythsaz uses Home Assistant to make sure their pupper is fed. 🐾 “*I've managed to make it so my dog's food auto emails the vet then the response to the email gets put on my calendar so I know how long a bag of food lasts as well as adding the receipts to Google Drive.*”
+
+- Inspired by [PowerDisplayESPHome](https://github.com/johannyren/PowerDisplayESPHome/tree/main), JannickBlmndl [made an LED matrix](https://gitlab.com/JannickBlmndl/ESPHome-Dynamic-Prices-LEDMatrix) that helps their household be more sustainable by being energy flexible. It displays the live energy prices from their energy provider. 📊
+
+- [Tano Spirits](https://www.youtube.com/@TanoSpirits) in Melbourne, Australia, uses Home Assistant to automate their Japanese Shochu distillery, inspired by the brewing automations at [Little Island Brewing Co](https://libc.co/brewing-process/) in Singapore. 🍻
+
+- Several years ago, HillPhantom found that Home Assistant wasn’t quite ready for him. Over the past year, though, he’s now got Ollama set up with his Home Assistant Voice Preview Edition and has been building guides on how to make your own [mmWave radar sensors in Home Assistant](https://www.youtube.com/watch?v=Gb-4l93st8A). 👋🏻
+
+- Over just a few weeks, Pieter van Kampen recently integrated 190 devices that respond to voice control and more than 1200 active entities from his KNX home to create over 30 automations to help with everything from mowing the lawn to controlling shades based on the sun’s location and intensity. 🪟
+
+- MB used Zigbee buttons to help collect data for their son’s doctor after he developed some trouble sleeping. This gave excellent insight for the doctor to start looking into causes, and they even used the system remotely while doing further evaluation. 📈
+
+- Graham Hosking took automations to another level (before we did) with his [AI Automation Suggester](https://github.com/ITSpecialist111/ai_automation_suggester) and [Automation Inspector](https://github.com/ITSpecialist111/Automation-Inspector). It takes the load off your brain by helping come up with new, clever automations! 🤖
+
+- Wessam Lauf fell down the rabbit hole that is Home Assistant once he got his setup running. Inspired by the Graphite theme and after some LLM vibe-coding, he wrote a template for his very own theme, [Frosted Glass](https://github.com/wessamlauf/homeassistant-frosted-glass-themes) - now available in [HACS](https://www.hacs.xyz/). 🎨
+
+- Too many of us anthropomorphize our homes, telling it to chill out when five things break the same day. Biofects took that to heart and created this [Home Assistant avatar](https://streamable.com/hnoc63) for his home (here’s a bonus, nightmare fuel [first version](https://streamable.com/xah2va)). 🫣
+
+## Developers! 👏🏻 Developers! 👏🏻 Developers! 👏🏻
+
+Our community is more than developers, it’s true. But we wouldn’t be the [largest open source project](https://github.blog/news-insights/octoverse/octoverse-2024/) on GitHub if we didn’t have a vibrant and active developer community. This ship sails largely due to their contributions, and we genuinely appreciate all of their efforts.
+
+That’s why we’re eager to interview community members when we open new roles at the foundation. We’ve employed community members like [Joostlek](https://github.com/joostlek) (who designed the new [Integration Quality Scale](https://developers.home-assistant.io/docs/core/integration-quality-scale/) and helps onboard new integrations into Core), [Timo](https://github.com/TimoPtr) (who is our first ever Android developer and has focused on [polishing the Android app](/blog/2025/07/23/companion-app-for-android/)), and [Maxim](https://github.com/maximmaxim345) (a talented developer from the Music Assistant community who works on both Music Assistant and ESPHome and is one of our newest additions to the team). Their contributions have helped shape how things work around here, but it was their contributions as community members that helped pave the way for their joining the foundation. These are just a select few of the *several* new hires at the foundation who were active community members.
+
+(Have you checked our [jobs page](https://jobs.ashbyhq.com/openhomefoundation/) recently to see what roles are open? 👀)
+
+With our community of contributors and working with Nabu Casa on the hardware design, we have successfully launched a few new pieces of hardware. The [Home Assistant Voice Preview Edition](/voice-pe/) brought in language experts from every corner of the world to help ensure our language coverage is the most robust in the industry. Thanks to contributors, we support languages like Greek, Icelandic, and more recently Irish Gaeilge! 😎 We had community contributors help make sure the Home Assistant [Connect ZWA-2](/connect/zwa-2/) was prepared for launch last month. Sincerely, we couldn’t be more grateful for your support and efforts in these spaces.
+
+Here are some fun stats from our GitHub contributors ([commits on our Core repo](https://github.com/home-assistant/core/graphs/contributors?from=9%2F9%2F2023)):
+
+- Last 12 months (Sept - Aug) - 14,385
+- Previous 12 months - 14,503
+
+A SPECIAL CONGRATULATIONS to [bdraco](https://github.com/bdraco), who just last week surpassed [balloob](https://github.com/balloob) (the founder of Home Assistant) as the contributor with the most commits!
+
+
+
+ The top 8 contributors of all time in home-assistant/core👏🏻
+
+
+This is just a small peek into all the hard work that goes into maintaining Home Assistant - we have more repositories than just Core, and every single contribution is valued.
+
+Honorable dev mention from the submitted community stories - I couldn’t leave Joostlek’s (joke) submission out. 🤣
+
+- Our very own Head of Developer Relations (his words), Joost Lekkerkerker, says Home Assistant helps keep him off the street. He’s just launched [his new blog](https://joostlek.dev/what-is-a-smart-home/) that talks about his vision of a smart home, and how he was inspired to not buy Tuya Wi-Fi lights after seeing my experience with some path lights.
+
+## Our humble gratitude
+
+Community is the core of what we do and the heart of Home Assistant. We thrive because you care and contribute your valuable time to support our collective success. Whether you found our platform because you wanted more privacy from big tech, were intrigued by the number of choices implemented into a single app, or needed something to track your sustainability efforts — you support our values every day. Thanks for choosing us, and thank you for all you do to help support the foundation and the projects we maintain.
+
+A very special thanks to all our [Home Assistant Cloud](/cloud/) subscribers and anyone who has purchased our official Home Assistant hardware. These support the full-time development of Home Assistant (along with ESPHome, Music Assistant, and so much more), and are the easiest way to ensure these projects keep getting cool new features!
+
+We have more things coming down the line for you. In the near future, we plan on announcing a new merch store 👕. In the first half of next year, I’ll announce when Home Assistant Community Day 2026 will be. We’re already working with Nabu Casa on the next exciting hardware announcement (no spoilers…for now). And that’s not even touching the industry events we plan on attending, the State of the Open Home, and so much more. I’m excited to take you all on the journey we’re already working on over the next 12 months, and I’m always looking forward to another year of amazing contributions. 😌
+
+
diff --git a/source/_redirects b/source/_redirects
index 9c8a133d581..98adcec62eb 100644
--- a/source/_redirects
+++ b/source/_redirects
@@ -17,7 +17,6 @@ layout: null
/merch https://home-assistant-store.creator-spring.com
/feature-requests https://github.com/orgs/home-assistant/discussions
/issues https://github.com/home-assistant/core/issues
-/community https://community.home-assistant.io/
/voice /voice_control/builtin_sentences/
/latest-security-alert /security/
@@ -345,6 +344,7 @@ layout: null
/ecosystem/notebooks/stats https://data.home-assistant.io
/examples/notify.mqtt /integrations/mqtt/#mqtt-notifications
/ios/whats-new https://companion.home-assistant.io/docs/getting_started/getting-started
+/installation/#about-installation-methods /installation/#about-installation-types
/installation/nuc /installation/generic-x86-64
/integrations/auth /docs/authentication
/integrations/automation /docs/automation
diff --git a/source/blueprints/blog/2025-07/ask_yes_no_question.yaml b/source/blueprints/blog/2025-07/ask_yes_no_question.yaml
index b3ea73717be..3cdd5c5b9cf 100644
--- a/source/blueprints/blog/2025-07/ask_yes_no_question.yaml
+++ b/source/blueprints/blog/2025-07/ask_yes_no_question.yaml
@@ -117,6 +117,8 @@ sequence:
- id: "yes"
sentences:
- "Yes"
+ - Yes please
+ - Yes thank you
- Sure
- Absolutely
- Go ahead
@@ -172,6 +174,7 @@ sequence:
- Nope
- Don't
- Please don't
+ - Please no
- No thank you
- I don't think so
- Not now
diff --git a/source/changelogs/core-2025.9.markdown b/source/changelogs/core-2025.9.markdown
index d38d992035b..02d43e294a0 100644
--- a/source/changelogs/core-2025.9.markdown
+++ b/source/changelogs/core-2025.9.markdown
@@ -599,6 +599,248 @@ For a summary in a more readable format:
- Bump intents ([@synesthesiam] - [#151627])
- Update frontend to 20250903.2 ([@bramkragten] - [#151629])
+## Release 2025.9.1 - September 5
+
+- Add support for migrated Hue bridge ([@marcelveldt] - [#151411])
+- Add missing device trigger duration localizations ([@karwosts] - [#151578])
+- Correct capitalization of "FRITZ!Box" in FRITZ!Box Tools integration ([@tr4nt0r] - [#151637])
+- Fix Sonos Dialog Select type conversion ([@PeteRager] - [#151649])
+- Fix WebSocket proxy for add-ons not forwarding ping/pong frame data ([@felipecrs] - [#151654])
+- Fix, entities stay unavailable after timeout error, Imeon inverter integration ([@Imeon-Energy] - [#151671])
+- Bump aiohue to 4.7.5 ([@marcelveldt] - [#151684])
+- Update frontend to 20250903.3 ([@bramkragten] - [#151694])
+- Require OhmeAdvancedSettingsCoordinator to run regardless of entities ([@dan-r] - [#151701])
+- Bump ohmepy version to 1.5.2 ([@dan-r] - [#151707])
+- Update Mill library 0.13.1 ([@Danielhiversen] - [#151712])
+- Handle match failures in intent HTTP API ([@synesthesiam] - [#151726])
+- Bump pyschlage to 2025.9.0 ([@dknowles2] - [#151731])
+- Bump bimmer_connected to 0.17.3 ([@rikroe] - [#151756])
+- Fix recognition of entity names in default agent with interpunction ([@arturpragacz] - [#151759])
+- Fix enable/disable entity in modbus ([@janiversen] - [#151626])
+
+[#151263]: https://github.com/home-assistant/core/pull/151263
+[#151411]: https://github.com/home-assistant/core/pull/151411
+[#151578]: https://github.com/home-assistant/core/pull/151578
+[#151626]: https://github.com/home-assistant/core/pull/151626
+[#151637]: https://github.com/home-assistant/core/pull/151637
+[#151649]: https://github.com/home-assistant/core/pull/151649
+[#151654]: https://github.com/home-assistant/core/pull/151654
+[#151671]: https://github.com/home-assistant/core/pull/151671
+[#151684]: https://github.com/home-assistant/core/pull/151684
+[#151694]: https://github.com/home-assistant/core/pull/151694
+[#151701]: https://github.com/home-assistant/core/pull/151701
+[#151707]: https://github.com/home-assistant/core/pull/151707
+[#151712]: https://github.com/home-assistant/core/pull/151712
+[#151726]: https://github.com/home-assistant/core/pull/151726
+[#151731]: https://github.com/home-assistant/core/pull/151731
+[#151756]: https://github.com/home-assistant/core/pull/151756
+[#151759]: https://github.com/home-assistant/core/pull/151759
+[@Danielhiversen]: https://github.com/Danielhiversen
+[@Imeon-Energy]: https://github.com/Imeon-Energy
+[@PeteRager]: https://github.com/PeteRager
+[@arturpragacz]: https://github.com/arturpragacz
+[@bramkragten]: https://github.com/bramkragten
+[@dan-r]: https://github.com/dan-r
+[@dknowles2]: https://github.com/dknowles2
+[@felipecrs]: https://github.com/felipecrs
+[@frenck]: https://github.com/frenck
+[@janiversen]: https://github.com/janiversen
+[@karwosts]: https://github.com/karwosts
+[@marcelveldt]: https://github.com/marcelveldt
+[@rikroe]: https://github.com/rikroe
+[@synesthesiam]: https://github.com/synesthesiam
+[@tr4nt0r]: https://github.com/tr4nt0r
+
+## Release 2025.9.2 - September 12
+
+- Fix XMPP not working with non-TLS servers ([@Human] - [#150957])
+- Update SharkIQ authentication method ([@funkybunch] - [#151046])
+- Add event entity on websocket ready in Husqvarna Automower ([@Thomas55555] - [#151428])
+- Fix Aladdin Connect state not updating ([@hbludworth] - [#151652])
+- Fix support for Ecowitt soil moisture sensors ([@blotus] - [#151685])
+- Fix update of the entity ID does not clean up an old restored state ([@jbouwh] - [#151696])
+- Revert "Jewish Calendar add coordinator " ([@tsvi] - [#151780])
+- Remove device class for Matter NitrogenDioxideSensor ([@lboue] - [#151782])
+- Improve config entry migration for edge cases in Alexa Devices ([@chemelli74] - [#151788])
+- Bump habluetooth to 5.3.1 ([@bdraco] - [#151803])
+- Fix KNX BinarySensor config_store data ([@farmio] - [#151808])
+- Fix KNX Light - individual color initialisation from UI config ([@farmio] - [#151815])
+- Mark Tractive switches as unavailable when tacker is in the enegy saving zone ([@bieniu] - [#151817])
+- Allow delay > 1 in modbus. ([@janiversen] - [#151832])
+- max_temp / min_temp in modbus light could only be int, otherwise an assert was provoked. ([@janiversen] - [#151833])
+- removed assert fron entity in modbus. ([@janiversen] - [#151834])
+- Bump pydrawise to 2025.9.0 ([@dknowles2] - [#151842])
+- Bump aioharmony to 0.5.3 ([@bdraco] - [#151853])
+- Update pysmarty2 to 0.10.3 ([@martinssipenko] - [#151855])
+- fix rain sensor for Velux GPU windows ([@wollew] - [#151857])
+- Bump aioecowitt to 2025.9.1 ([@edenhaus] - [#151859])
+- Use `native_visibility` property instead of `visibility` for OpenWeatherMap weather entity ([@bieniu] - [#151867])
+- Bump aiontfy to v0.5.5 ([@tr4nt0r] - [#151869])
+- Bump aiolifx-themes to 1.0.2 to support newer LIFX devices ([@Djelibeybi] - [#151898])
+- Bump aiovodafone to 1.2.1 ([@chemelli74] - [#151901])
+- Avoid cleanup/recreate of device_trackers not linked to a device for Vodafone Station ([@chemelli74] - [#151904])
+- Fix _is_valid_suggested_unit in sensor platform ([@epenet] - [#151912])
+- Bump habluetooth to 5.5.1 ([@bdraco] - [#151921])
+- Bump bleak-esphome to 3.3.0 ([@bdraco] - [#151922])
+- Bump habluetooth to 5.6.0 ([@bdraco] - [#151942])
+- Fix invalid logger in Tuya ([@epenet] - [#151957])
+- Fix for squeezebox track content_type ([@peteS-UK] - [#151963])
+- Fix playlist media_class_filter in search_media for squeezebox ([@peteS-UK] - [#151973])
+- Bump habluetooth to 5.6.2 ([@bdraco] - [#151985])
+- Bump yt-dlp to 2025.09.05 ([@joostlek] - [#152006])
+- Bump `accuweather` to version 4.2.1 ([@bieniu] - [#152029])
+- Fix HomeKit Controller stale values at startup ([@bdraco] - [#152086])
+- Fix duplicated IP port usage in Govee Light Local ([@abmantis] - [#152087])
+- Fix DoorBird being updated with wrong IP addresses during discovery ([@bdraco] - [#152088])
+- Fix supported _color_modes attribute not set for on/off MQTT JSON light ([@jbouwh] - [#152126])
+- Fix reauth for Alexa Devices ([@chemelli74] - [#152128])
+- Bump hass-nabucasa from 1.1.0 to 1.1.1 ([@ludeeus] - [#152147])
+- Update frontend to 20250903.5 ([@bramkragten] - [#152170])
+- Use position percentage for closed status in Velux ([@wollew] - [#151679])
+
+[#150957]: https://github.com/home-assistant/core/pull/150957
+[#151046]: https://github.com/home-assistant/core/pull/151046
+[#151263]: https://github.com/home-assistant/core/pull/151263
+[#151428]: https://github.com/home-assistant/core/pull/151428
+[#151652]: https://github.com/home-assistant/core/pull/151652
+[#151679]: https://github.com/home-assistant/core/pull/151679
+[#151685]: https://github.com/home-assistant/core/pull/151685
+[#151696]: https://github.com/home-assistant/core/pull/151696
+[#151766]: https://github.com/home-assistant/core/pull/151766
+[#151780]: https://github.com/home-assistant/core/pull/151780
+[#151782]: https://github.com/home-assistant/core/pull/151782
+[#151788]: https://github.com/home-assistant/core/pull/151788
+[#151803]: https://github.com/home-assistant/core/pull/151803
+[#151808]: https://github.com/home-assistant/core/pull/151808
+[#151815]: https://github.com/home-assistant/core/pull/151815
+[#151817]: https://github.com/home-assistant/core/pull/151817
+[#151832]: https://github.com/home-assistant/core/pull/151832
+[#151833]: https://github.com/home-assistant/core/pull/151833
+[#151834]: https://github.com/home-assistant/core/pull/151834
+[#151842]: https://github.com/home-assistant/core/pull/151842
+[#151853]: https://github.com/home-assistant/core/pull/151853
+[#151855]: https://github.com/home-assistant/core/pull/151855
+[#151857]: https://github.com/home-assistant/core/pull/151857
+[#151859]: https://github.com/home-assistant/core/pull/151859
+[#151867]: https://github.com/home-assistant/core/pull/151867
+[#151869]: https://github.com/home-assistant/core/pull/151869
+[#151898]: https://github.com/home-assistant/core/pull/151898
+[#151901]: https://github.com/home-assistant/core/pull/151901
+[#151904]: https://github.com/home-assistant/core/pull/151904
+[#151912]: https://github.com/home-assistant/core/pull/151912
+[#151921]: https://github.com/home-assistant/core/pull/151921
+[#151922]: https://github.com/home-assistant/core/pull/151922
+[#151942]: https://github.com/home-assistant/core/pull/151942
+[#151957]: https://github.com/home-assistant/core/pull/151957
+[#151963]: https://github.com/home-assistant/core/pull/151963
+[#151973]: https://github.com/home-assistant/core/pull/151973
+[#151985]: https://github.com/home-assistant/core/pull/151985
+[#152006]: https://github.com/home-assistant/core/pull/152006
+[#152029]: https://github.com/home-assistant/core/pull/152029
+[#152086]: https://github.com/home-assistant/core/pull/152086
+[#152087]: https://github.com/home-assistant/core/pull/152087
+[#152088]: https://github.com/home-assistant/core/pull/152088
+[#152126]: https://github.com/home-assistant/core/pull/152126
+[#152128]: https://github.com/home-assistant/core/pull/152128
+[#152147]: https://github.com/home-assistant/core/pull/152147
+[#152170]: https://github.com/home-assistant/core/pull/152170
+[@Djelibeybi]: https://github.com/Djelibeybi
+[@Human]: https://github.com/Human
+[@Thomas55555]: https://github.com/Thomas55555
+[@abmantis]: https://github.com/abmantis
+[@bdraco]: https://github.com/bdraco
+[@bieniu]: https://github.com/bieniu
+[@blotus]: https://github.com/blotus
+[@bramkragten]: https://github.com/bramkragten
+[@chemelli74]: https://github.com/chemelli74
+[@dknowles2]: https://github.com/dknowles2
+[@edenhaus]: https://github.com/edenhaus
+[@epenet]: https://github.com/epenet
+[@farmio]: https://github.com/farmio
+[@frenck]: https://github.com/frenck
+[@funkybunch]: https://github.com/funkybunch
+[@hbludworth]: https://github.com/hbludworth
+[@janiversen]: https://github.com/janiversen
+[@jbouwh]: https://github.com/jbouwh
+[@joostlek]: https://github.com/joostlek
+[@lboue]: https://github.com/lboue
+[@ludeeus]: https://github.com/ludeeus
+[@martinssipenko]: https://github.com/martinssipenko
+[@peteS-UK]: https://github.com/peteS-UK
+[@tr4nt0r]: https://github.com/tr4nt0r
+[@tsvi]: https://github.com/tsvi
+[@wollew]: https://github.com/wollew
+
+## Release 2025.9.3 - September 13
+
+- Bump habluetooth to 5.6.4 ([@bdraco] - [#152227])
+
+[#152227]: https://github.com/home-assistant/core/pull/152227
+[@bdraco]: https://github.com/bdraco
+
+## Release 2025.9.4 - September 19
+
+- Bump habiticalib to v0.4.4 ([@tr4nt0r] - [#151332])
+- Bump habiticalib to v0.4.5 ([@tr4nt0r] - [#151720])
+- Fix bug with the hardcoded configuration_url (asuswrt) ([@Vaskivskyi] - [#151858])
+- Fix HomeKit Controller overwhelming resource-limited devices by batching characteristic polling ([@bdraco] - [#152209])
+- Upgrade waterfurnace to 1.2.0 ([@sdague] - [#152241])
+- Bump aiohomekit to 3.2.16 ([@bdraco] - [#152255])
+- Bump bluetooth-auto-recovery to 1.5.3 ([@bdraco] - [#152256])
+- Add proper error handling for /actions endpoint for miele ([@astrandb] - [#152290])
+- Bump aiohomekit to 3.2.17 ([@bdraco] - [#152297])
+- Update authorization server to prefer absolute urls ([@allenporter] - [#152313])
+- Bump imeon_inverter_api to 0.4.0 ([@Imeon-Energy] - [#152351])
+- Bump pylamarzocco to 2.1.0 ([@zweckj] - [#152364])
+- Add La Marzocco specific client headers ([@zweckj] - [#152419])
+- Fix KNX UI schema missing DPT ([@farmio] - [#152430])
+- Bump pyemoncms to 0.1.3 ([@alexandrecuer] - [#152436])
+- Fix Sonos set_volume float precision issue ([@PeteRager] - [#152493])
+- Bump opower to 0.15.5 ([@tronikos] - [#152531])
+- Bump holidays to 0.80 ([@gjohansson-ST] - [#152306])
+- Bump holidays to 0.81 ([@gjohansson-ST] - [#152569])
+- Bump asusrouter to 1.21.0 ([@Vaskivskyi] - [#151607])
+
+[#151263]: https://github.com/home-assistant/core/pull/151263
+[#151332]: https://github.com/home-assistant/core/pull/151332
+[#151607]: https://github.com/home-assistant/core/pull/151607
+[#151720]: https://github.com/home-assistant/core/pull/151720
+[#151766]: https://github.com/home-assistant/core/pull/151766
+[#151858]: https://github.com/home-assistant/core/pull/151858
+[#152198]: https://github.com/home-assistant/core/pull/152198
+[#152209]: https://github.com/home-assistant/core/pull/152209
+[#152237]: https://github.com/home-assistant/core/pull/152237
+[#152241]: https://github.com/home-assistant/core/pull/152241
+[#152255]: https://github.com/home-assistant/core/pull/152255
+[#152256]: https://github.com/home-assistant/core/pull/152256
+[#152290]: https://github.com/home-assistant/core/pull/152290
+[#152297]: https://github.com/home-assistant/core/pull/152297
+[#152306]: https://github.com/home-assistant/core/pull/152306
+[#152313]: https://github.com/home-assistant/core/pull/152313
+[#152351]: https://github.com/home-assistant/core/pull/152351
+[#152364]: https://github.com/home-assistant/core/pull/152364
+[#152419]: https://github.com/home-assistant/core/pull/152419
+[#152430]: https://github.com/home-assistant/core/pull/152430
+[#152436]: https://github.com/home-assistant/core/pull/152436
+[#152493]: https://github.com/home-assistant/core/pull/152493
+[#152531]: https://github.com/home-assistant/core/pull/152531
+[#152569]: https://github.com/home-assistant/core/pull/152569
+[@Imeon-Energy]: https://github.com/Imeon-Energy
+[@PeteRager]: https://github.com/PeteRager
+[@Vaskivskyi]: https://github.com/Vaskivskyi
+[@alexandrecuer]: https://github.com/alexandrecuer
+[@allenporter]: https://github.com/allenporter
+[@astrandb]: https://github.com/astrandb
+[@balloob]: https://github.com/balloob
+[@bdraco]: https://github.com/bdraco
+[@farmio]: https://github.com/farmio
+[@frenck]: https://github.com/frenck
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[@sdague]: https://github.com/sdague
+[@tr4nt0r]: https://github.com/tr4nt0r
+[@tronikos]: https://github.com/tronikos
+[@zweckj]: https://github.com/zweckj
+
[#122552]: https://github.com/home-assistant/core/pull/122552
[#128123]: https://github.com/home-assistant/core/pull/128123
[#132628]: https://github.com/home-assistant/core/pull/132628
diff --git a/source/common-tasks/os.markdown b/source/common-tasks/os.markdown
index e49b4b6a7be..72c20d48fef 100644
--- a/source/common-tasks/os.markdown
+++ b/source/common-tasks/os.markdown
@@ -72,7 +72,7 @@ Updates of the {% term "Home Assistant Operating System" %} are independent of o
ha os update
```
- _This updates to the latest version. If you want to update to a specific version instead, use `ha os update --version 12.0`._
+ _This updates to the latest version. If you want to update to a specific version instead, use `ha os update --version 15.2`._
{% endtabbed_block %}
diff --git a/source/community/assets/_icons.html b/source/community/assets/_icons.html
new file mode 100644
index 00000000000..47d8301dfbd
--- /dev/null
+++ b/source/community/assets/_icons.html
@@ -0,0 +1,63 @@
+
\ No newline at end of file
diff --git a/source/community/components/_faq.html b/source/community/components/_faq.html
new file mode 100644
index 00000000000..52adf7d7abe
--- /dev/null
+++ b/source/community/components/_faq.html
@@ -0,0 +1,35 @@
+
+
+
Got some questions?
+
+
+ {% for item in site.data["community-faq"].items %}
+
+
+
+
+
+
+
+
+
+ {{ item.answer }}
+
+
+
+
+
+ {% endfor %}
+
+
+
+
\ No newline at end of file
diff --git a/source/community/components/_global.html b/source/community/components/_global.html
new file mode 100644
index 00000000000..7ba01460134
--- /dev/null
+++ b/source/community/components/_global.html
@@ -0,0 +1,79 @@
+
+
+
+
+
A Global Community, Growing Every Day
+
Wherever you are in the world, the community will be ready to share knowledge and ideas.
+
+
+
+
+ +
+
+
+ Events & Meetups Worldwide
+
+
+
+
+ +
+
+
+ Contributors Every Month
+
+
+
+
+ +
+
+
+ Active Community Members
+
+
+
+
+
+
+
+
+ Community Day 2025 - Utrecht
+
+
+
+ Community Meetup - IFA Berlin 2025
+
+
+
+ Community Day 2025 - Columbus
+
+
+
+
+
+
\ No newline at end of file
diff --git a/source/community/components/_hero.html b/source/community/components/_hero.html
new file mode 100644
index 00000000000..57bd7293645
--- /dev/null
+++ b/source/community/components/_hero.html
@@ -0,0 +1,23 @@
+
+
+
+
The Home Assistant Community
+
Connect with makers, tinkerers, and smart home enthusiasts. Share ideas, ask questions, and discover ways
+ to
+ make your home smarter, more private, and truly yours.
+
+
+
No upcoming events
+
Time to take matters into your own hands, and create your own meetup.
+
\ No newline at end of file
diff --git a/source/community/components/_join.html b/source/community/components/_join.html
new file mode 100644
index 00000000000..ba727b88946
--- /dev/null
+++ b/source/community/components/_join.html
@@ -0,0 +1,106 @@
+
+
+
+ Join the
+ Community
+
+
+ Our vibrant community is very active and super friendly.
+ We love to talk and share our passion for home
+ automation.
+
+
+
+
\ No newline at end of file
diff --git a/source/community/components/_meetups.html b/source/community/components/_meetups.html
new file mode 100644
index 00000000000..1bba7b70e57
--- /dev/null
+++ b/source/community/components/_meetups.html
@@ -0,0 +1,56 @@
+
+
+
+
+
Community Meetups
+
The community will be leading meetups across the globe, so find your nearest event and register now!
+ They’re all free and will be full of smart people with smart homes.
+
+
No upcoming events
+
Time to take matters into your own hands, and create your own meetup.
Time to take matters into your own hands, and create your own meetup.
+
+
Using Luma, create an account, and navigate to our Home Assistant Community Day event
+ page, select Submit Event > Create New Event (the button is above the calendar on the right).
+
Set the invite graphic we created as the event image. When creating your own event,
+ make sure you add the event name, time zone, date, time, event location, capacity and hosts.
+
Click Create Event once you’ve followed the checklist, then come let everyone know in
+ the Home Assistant Community Day meetup thread on Discord or the Social section of the Community
+ forum!
+
\ No newline at end of file
diff --git a/source/community/components/_nav.html b/source/community/components/_nav.html
new file mode 100644
index 00000000000..aef0c9976f6
--- /dev/null
+++ b/source/community/components/_nav.html
@@ -0,0 +1,9 @@
+
+
Open Home is our vision for smart homes that offer privacy, choice and sustainability. The Open Home Foundation newsletter is the latest from the projects making this a reality, including Home Assistant and ESPHome.
+
\ No newline at end of file
diff --git a/source/dashboards/features.markdown b/source/dashboards/features.markdown
index 1bbe1c8ea04..74f25fc0774 100644
--- a/source/dashboards/features.markdown
+++ b/source/dashboards/features.markdown
@@ -775,6 +775,7 @@ Widget that displays the a trend of the history for a numeric [sensor](/integrat
```yaml
features:
- type: "trend-graph"
+ hours_to_show: 24
```
{% configuration features %}
@@ -782,6 +783,11 @@ type:
required: true
description: "`trend-graph`"
type: string
+hours_to_show:
+ required: false
+ description: Hours to show in graph. Minimum is 1 hour. Big values can result in delayed rendering, especially if the selected entities have a lot of state changes.
+ type: integer
+ default: 24
{% endconfiguration %}
## Update actions
diff --git a/source/images/blog/2025-09-12th-anniversary/art.webp b/source/images/blog/2025-09-12th-anniversary/art.webp
new file mode 100644
index 00000000000..60d2d4c73c2
Binary files /dev/null and b/source/images/blog/2025-09-12th-anniversary/art.webp differ
diff --git a/source/images/blog/2025-09-12th-anniversary/contributors.webp b/source/images/blog/2025-09-12th-anniversary/contributors.webp
new file mode 100644
index 00000000000..15aa04172c6
Binary files /dev/null and b/source/images/blog/2025-09-12th-anniversary/contributors.webp differ
diff --git a/source/images/blog/2025-09-ai/activity.webp b/source/images/blog/2025-09-ai/activity.webp
new file mode 100644
index 00000000000..c9f736a1d22
Binary files /dev/null and b/source/images/blog/2025-09-ai/activity.webp differ
diff --git a/source/images/blog/2025-09-ai/ai-suggestions.webp b/source/images/blog/2025-09-ai/ai-suggestions.webp
new file mode 100644
index 00000000000..0076faa953e
Binary files /dev/null and b/source/images/blog/2025-09-ai/ai-suggestions.webp differ
diff --git a/source/images/blog/2025-09-ai/art.webp b/source/images/blog/2025-09-ai/art.webp
new file mode 100644
index 00000000000..c64a905a477
Binary files /dev/null and b/source/images/blog/2025-09-ai/art.webp differ
diff --git a/source/images/blog/2025-09-ai/suggest-button.webp b/source/images/blog/2025-09-ai/suggest-button.webp
new file mode 100644
index 00000000000..e111edb5a94
Binary files /dev/null and b/source/images/blog/2025-09-ai/suggest-button.webp differ
diff --git a/source/images/blog/2025-09-ai/suggest.webp b/source/images/blog/2025-09-ai/suggest.webp
new file mode 100644
index 00000000000..1d60bd6d932
Binary files /dev/null and b/source/images/blog/2025-09-ai/suggest.webp differ
diff --git a/source/images/blog/2025-09-ai/voice-pe.webp b/source/images/blog/2025-09-ai/voice-pe.webp
new file mode 100644
index 00000000000..3da3a37774b
Binary files /dev/null and b/source/images/blog/2025-09-ai/voice-pe.webp differ
diff --git a/source/images/community/berlin.webp b/source/images/community/berlin.webp
new file mode 100644
index 00000000000..6f0ace266db
Binary files /dev/null and b/source/images/community/berlin.webp differ
diff --git a/source/images/community/columbus.webp b/source/images/community/columbus.webp
new file mode 100644
index 00000000000..5e3b5098027
Binary files /dev/null and b/source/images/community/columbus.webp differ
diff --git a/source/images/community/hero-m.svg b/source/images/community/hero-m.svg
new file mode 100644
index 00000000000..44d534063fd
--- /dev/null
+++ b/source/images/community/hero-m.svg
@@ -0,0 +1,438 @@
+
diff --git a/source/images/community/hero.svg b/source/images/community/hero.svg
new file mode 100644
index 00000000000..81bff3a28f7
--- /dev/null
+++ b/source/images/community/hero.svg
@@ -0,0 +1,473 @@
+
diff --git a/source/images/community/og.jpeg b/source/images/community/og.jpeg
new file mode 100644
index 00000000000..f8d4d697e67
Binary files /dev/null and b/source/images/community/og.jpeg differ
diff --git a/source/images/community/utrecht.webp b/source/images/community/utrecht.webp
new file mode 100644
index 00000000000..3e39ad99da1
Binary files /dev/null and b/source/images/community/utrecht.webp differ
diff --git a/source/images/frontpage/community-card.webp b/source/images/frontpage/community-card.webp
new file mode 100644
index 00000000000..fab19710fd2
Binary files /dev/null and b/source/images/frontpage/community-card.webp differ
diff --git a/source/images/frontpage/community-meetup.webp b/source/images/frontpage/community-meetup.webp
deleted file mode 100644
index dd4d039c31c..00000000000
Binary files a/source/images/frontpage/community-meetup.webp and /dev/null differ
diff --git a/source/installation/index.html b/source/installation/index.html
index e57baa69b8e..466d82ee83f 100644
--- a/source/installation/index.html
+++ b/source/installation/index.html
@@ -13,88 +13,14 @@ toc: true
kinds of skill levels.
-
About installation methods
-
- Home Assistant offers two different installation methods. Home Assistant Operating System is the recommended installation method.
-
-
-
Home Assistant Operating System: An embedded,
- minimalistic operating system designed to run the Home Assistant ecosystem
- on single board computers (like the Home Assistant Green or a Raspberry Pi) or Virtual Machines. It
- is the most convenient option in terms of installation and maintenance and it supports
- {% term "add-ons" %}. Home Assistant Operating System is
- the recommended installation method for most users.
-
- Home Assistant Container: Container-based installation of Home Assistant. You need to bring your own system (such as Linux) with container orchestration (like Docker), and manually handle updates. Home Assistant Container installations don’t have access to {% term "add-ons" %}.
-
- 1: Names are abbreviated. The full names of the installation methods are:
-
-
Home Assistant Operating System
-
Home Assistant Container
-
-
Easiest
Plug and play with Home Assistant Green
The affordable Home Assistant Green is the easiest way to start using
- Home Assistant. It's plug-and-play and comes with Home Assistant already
- installed.
+ Home Assistant. It's plug-and-play and comes with [Home Assistant Operating System](/installation/#about-installation-types) already installed.
@@ -186,7 +112,84 @@ toc: true
+
+
+
About installation types
+
+ Home Assistant offers two different installation types. Home Assistant Operating System is the recommended installation type.
+
+
+
Home Assistant Operating System: An embedded,
+ minimalistic operating system designed to run the Home Assistant ecosystem
+ on single board computers (like the Home Assistant Green or a Raspberry Pi) or Virtual Machines. It
+ is the most convenient option in terms of installation and maintenance and it supports
+ {% term "add-ons" %}. Home Assistant Operating System is
+ the recommended installation type for most users.
+
+ Home Assistant Container: Container-based installation of Home Assistant. You need to bring your own system (such as Linux) with container orchestration (like Docker), and manually handle updates. Home Assistant Container installations don’t have access to {% term "add-ons" %}.
+
+
+ 1: Names are abbreviated. The full names of the installation types are:
+
+
Home Assistant Operating System
+
Home Assistant Container
+
+
+
Intermediate
Extend with Home Assistant Yellow
@@ -511,9 +514,9 @@ toc: true
-
Deprecated installation methods
+
Deprecated installation types
- Home Assistant used to offer two additional installation methods for advanced users: {% term "Home Assistant Core" %} and {% term "Home Assistant Supervised" %}. These two methods are now deprecated and no longer recommended for new users.
+ Home Assistant used to offer two additional installation types for advanced users: {% term "Home Assistant Core" %} and {% term "Home Assistant Supervised" %}. These two methods are now deprecated and no longer recommended for new users.
@@ -524,4 +527,3 @@ toc: true
environment.
-
\ No newline at end of file
diff --git a/source/javascripts/dsap.es.js b/source/javascripts/dsap.es.js
new file mode 100644
index 00000000000..a2cec58ada5
--- /dev/null
+++ b/source/javascripts/dsap.es.js
@@ -0,0 +1,35 @@
+var m = Object.defineProperty;
+var p = (a, t, e) => t in a ? m(a, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : a[t] = e;
+var r = (a, t, e) => (p(a, typeof t != "symbol" ? t + "" : t, e), e);
+class g {
+ constructor() {
+ r(this, "elems");
+ r(this, "maxScrollDelta", 1e3);
+ this.init();
+ }
+ init() {
+ this.elems = document.querySelectorAll("[data-dsap]"), this.elems.forEach((t) => {
+ t.dataset.dsap = crypto.getRandomValues(new Uint32Array(1))[0].toString(16);
+ }), this.style = document.createElement("style"), this.style.id = "dsap-style", this.style.innerHTML = `:root{--dsap-max-scroll-delta: ${this.maxScrollDelta}}`, document.head.appendChild(this.style), this.doScroll(), window.addEventListener("scroll", this.debounce(this.doScroll.bind(this)), { passive: !0 });
+ }
+ doScroll() {
+ const t = window.scrollY, e = t + window.innerHeight;
+ let i = [`:root{--dsap-max-scroll-delta: ${this.maxScrollDelta}}`];
+ this.elems.forEach((s) => {
+ const o = s.getBoundingClientRect().top + t, h = o + s.getBoundingClientRect().height, c = s.hasAttribute("data-dsap-scroll");
+ let l = !1, n = !1, d = 0;
+ e < o ? n = !1 : t > h ? n = !0 : l = !0, c && (l ? d = ((e - o) / (s.getBoundingClientRect().height + window.innerHeight) * this.maxScrollDelta).toFixed(0) : n && (d = this.maxScrollDelta)), s.dataset.dsapIs = l ? "in" : n ? "above" : "below", l && (s.dataset.dsapSeen = !0), c && i.push(`[data-dsap="${s.dataset.dsap}"]{--dsap-scroll-delta: ${d}}`);
+ }), this.style.innerHTML !== i.join("") && (this.style.innerHTML = i.join(""));
+ }
+ debounce(t) {
+ let e;
+ return (...i) => {
+ e && cancelAnimationFrame(e), e = requestAnimationFrame(() => {
+ t(...i);
+ });
+ };
+ }
+}
+export {
+ g as DSAP
+};
diff --git a/source/more-info/local-media/setup-media.markdown b/source/more-info/local-media/setup-media.markdown
index aef29a3bf23..42e4113fbbf 100644
--- a/source/more-info/local-media/setup-media.markdown
+++ b/source/more-info/local-media/setup-media.markdown
@@ -5,7 +5,7 @@ description: "More information on how to set up local media sources in Home Assi
Home Assistant has a local media folder. Any audio or video files placed in this folder will be accessible via the media browser.
-The easiest way to manage your local media is using {% my supervisor_addon title="Samba" addon="core_samba" %}.
+The easiest way to manage your local media is using the tools accessible in the toolbar of the media browser when browsing the local media folder.
## Using custom folders
diff --git a/source/more-info/unsupported/os_version.markdown b/source/more-info/unsupported/os_version.markdown
index 32024f3a009..c8f2a36af7c 100644
--- a/source/more-info/unsupported/os_version.markdown
+++ b/source/more-info/unsupported/os_version.markdown
@@ -15,12 +15,15 @@ including Home Assistant Core or Add-on updates.
## The solution
+Since you've not updated your system in a while, we recommend to [create a backup](/common-tasks/general/#backups)
+before updating your system. Make sure to download the backup or store it at
+a remote location.
+
To resolve this issue, update your Home Assistant Operating System version. Go
to {% my updates title="**System** > **Updates**" %} to update the operating
system. If you don't see the update you may have skipped it in the past. To see
previously skipped updates, select the three dots {% icon "mdi:dots-vertical" %}
-menu and select **Show skipped updates**.
+enabling skipped updates no new OS updates appear, you may need to use [the CLI to update to the latest OS version {{site.data.version_data.hassos['ova']}}](/common-tasks/os/#to-update-the-home-assistant-operating-system).
If your system is significantly out of date you may need to update multiple times
-to get to the latest version. The next one will appear in the UI after the prior
-one is complete.
+to get to the latest version.
diff --git a/source/voice_control/install_wake_word_add_on.markdown b/source/voice_control/install_wake_word_add_on.markdown
index 593e0a083c9..5dd5b5470bd 100644
--- a/source/voice_control/install_wake_word_add_on.markdown
+++ b/source/voice_control/install_wake_word_add_on.markdown
@@ -4,7 +4,7 @@ title: "Enabling a wake word"
This tutorial shows how you can *enable* a wake word in Home Assistant. It does not describe how to *use* it.
-To *use* the wake word, you need some extra hardware. A low cost option is the [M5Stack ATOM Echo Development Kit](https://shop.m5stack.com/products/atom-echo-smart-speaker-dev-kit?ref=NabuCasa). To set that up, follow the [$13 voice assistant for Home Assistant](/voice_control/thirteen-usd-voice-remote/).
+To *use* the wake word, you need some extra hardware. A low cost option is the [M5Stack ATOM Echo Development Kit](https://shop.m5stack.com/products/atom-echo-smart-speaker-dev-kit?ref=NabuCasa). To set that up, follow the [$13 voice assistant for Home Assistant](/voice_control/thirteen-usd-voice-remote/). Note that the Home Assistant Voice Preview does not currently support custom wake words.
## To enable a wake word
@@ -62,4 +62,4 @@ Enabling a wake word consists of 2 steps:
- [M5Stack ATOM Echo Development Kit](https://shop.m5stack.com/products/atom-echo-smart-speaker-dev-kit?ref=NabuCasa)
- [Tutorial: $13 voice assistant for Home Assistant](/voice_control/thirteen-usd-voice-remote/)
- [ESP32-S3-BOX-3](https://www.aliexpress.us/item/1005005920207976.html?gatewayAdapt=4itemAdapt)
- - [Tutorial: ESP32-S3-BOX-3 voice assistant](/voice_control/s3_box_voice_assistant/)
\ No newline at end of file
+ - [Tutorial: ESP32-S3-BOX-3 voice assistant](/voice_control/s3_box_voice_assistant/)