-
Devices
+ {% icon "mdi:comment-processing-outline" %} {% active_link /voice_control/ Assist up and running %}
+
+
+
{% icon "mdi:comment-processing-outline" %} {% active_link /voice_control/best_practices Best Practices %}
+
+
+
+
{% icon "mdi:comment-processing-outline" %} {% active_link /voice_control/expanding_assist Expanding Assist %}
+
-
-
{% icon "mdi:comment-processing-outline" %} {% active_link /voice_control/ Voice assistants %}
-
-
-
-
-
{% icon "mdi:checkbox-marked" %} Projects
+ {% icon "mdi:checkbox-marked" %} Experiment with Assist setups
@@ -40,6 +43,7 @@
diff --git a/source/voice_control/about_wake_word.markdown b/source/voice_control/about_wake_word.markdown
index 687faacc6f4..7ca6bfd3e40 100644
--- a/source/voice_control/about_wake_word.markdown
+++ b/source/voice_control/about_wake_word.markdown
@@ -1,28 +1,25 @@
---
-title: "About wake words"
+title: "The Home Assistant approach to wake words "
related:
- docs: /voice_control/thirteen-usd-voice-remote/
title: Create a $13 voice assistant
- - docs: /voice_control/install_wake_word_add_on/
- title: Enable wake words
- docs: /voice_control/create_wake_word/
title: Create your own wake words
- docs: /voice_control/voice_remote_cloud_assistant/)
title: Create a cloud assistant
+ - docs: /voice_control/voice_remote_local_assistant/)
+ title: Create a local assistant
+ - docs: /voice_control/best_practices/)
+ title: Best practices with Assist
---
-
-Wake words are special words or phrases that tell a voice assistant that a command is about to be spoken. The device then switches from passive to active listening. Examples are: *Hey Google*, *Hey Siri*, or *Alexa*. Home Assistant supports its own wake words, such as *Hey Nabu*.
-
-## The Home Assistant approach to wake words
-
-### The challenge
+## The challenge
- The wake words have to be processed extremely fast: You can’t have a voice assistant start listening 5 seconds after a wake word is spoken.
- There is little room for false positives.
- Wake word processing is based on compute-intensive AI models.
- Voice satellite hardware generally does not have a lot of computing power, so wake word engines need hardware experts to optimize the models to run smoothly.
-### The approach
+## The approach
To avoid being limited to specific hardware, the wake word detection is done inside Home Assistant. Voice satellite devices constantly sample current audio in your room for voice. When it detects voice, the satellite sends audio to Home Assistant where it checks if the wake word was said and handle the command that followed it.
diff --git a/source/voice_control/aliases.markdown b/source/voice_control/aliases.markdown
index 813f430e281..143ecfa26a7 100644
--- a/source/voice_control/aliases.markdown
+++ b/source/voice_control/aliases.markdown
@@ -1,5 +1,5 @@
---
-title: "Assist - entity, area, and floor aliases"
+title: "Aliases - entity, area, and floor"
related:
- docs: /docs/organizing/areas/
title: Areas
@@ -36,3 +36,10 @@ There are multliple ways to add an alias of an entity:
2. Next to the floor of interest, select the three-dot menu, then select **Edit floor**.
3. Select **Add alias** and enter the alias you want to use for that floor.
4. **Save** your changes.
+
+
+### Area-less aliases for entities with an assigned area
+
+It’s good practice to add areas to entity canonical names, such as Living room lamp. However, since Assist can both infer the area and explicitly extract it from sentences, it’s a very good idea to add simplified aliases to all your exposed entities. In this case, having the Lamp alias set for the Living room lamp would allow you to turn on the lamp in the living room or simply turn on the lamp, when asking a satellite in the living room.
+
+Don’t worry if you also have a Bedroom lamp. You can alias that one Lamp as well, as it would get matched only when in conjunction with the area name (Living room or Bedroom).
\ No newline at end of file
diff --git a/source/voice_control/android.markdown b/source/voice_control/android.markdown
index 00eee5d328c..dfc8b3699dd 100644
--- a/source/voice_control/android.markdown
+++ b/source/voice_control/android.markdown
@@ -3,8 +3,8 @@ title: "Assist on Android"
related:
- docs: /voice_control/voice_remote_expose_devices/
title: Exposing devices to Assist
- - docs: /voice_control/start_assist_from_dashboard/
- title: Starting Assist from your dashboard
+ - docs: /voice_control/best_practices/
+ title: Best practices with Assist
- url: https://companion.home-assistant.io/docs/getting_started/
title: Home Assistant Companion App
---
@@ -17,7 +17,7 @@ Assist can be used on Android phones and tablets using the [Home Assistant Compa
- [Home Assistant Companion App](https://companion.home-assistant.io/docs/getting_started/) installed
- Have an Assistant set up: either [cloud](/voice_control/voice_remote_cloud_assistant/) (recommended, more performant) or [local](/voice_control/voice_remote_local_assistant/).
-- The devices you want to control with Assist are [exposed to Assist](/voice_control/voice_remote_expose_devices/)
+- The devices you want to control with Assist are [exposed to Assist](/voice_control/voice_remote_expose_devices/) and you have checked most of the [best practices](/voice_control/best_practices/)
### Starting Assist in Home Assistant
diff --git a/source/voice_control/apple.markdown b/source/voice_control/apple.markdown
index c74231435d0..65fbe00da53 100644
--- a/source/voice_control/apple.markdown
+++ b/source/voice_control/apple.markdown
@@ -1,9 +1,14 @@
---
title: "Assist on Apple devices"
+related:
+ - docs: /voice_control/voice_remote_expose_devices/
+ title: Exposing devices to Assist
+ - docs: /voice_control/best_practices/
+ title: Best practices with Assist
+ - url: https://companion.home-assistant.io/docs/getting_started/
+ title: Home Assistant Companion App
---
-Assist can be used on Apple devices via [Home Assistant Companion App](https://apps.apple.com/us/app/home-assistant/id1099568401).
-
## Assist on iPhones
Assist is available on iPhones, iPads, and Macbooks.
@@ -15,8 +20,8 @@ Demo showing Assist being triggered from the iPhone 15 Pro action button and fro
### Prerequisites
- [Home Assistant Companion App](https://companion.home-assistant.io/docs/getting_started/) installed
-- Have an Assistant set up: either [cloud](https://www.home-assistant.io/voice_control/voice_remote_cloud_assistant/) (recommended, more performant) or [local](https://www.home-assistant.io/voice_control/voice_remote_local_assistant/).
-- The devices you want to control with Assist are [exposed to Assist](/voice_control/voice_remote_expose_devices/)
+- Have an Assistant set up: either [cloud](/voice_control/voice_remote_cloud_assistant/) (recommended, more performant) or [local](/voice_control/voice_remote_local_assistant/).
+- The devices you want to control with Assist are [exposed to Assist](/voice_control/voice_remote_expose_devices/) and you have checked most of the [best practices](/voice_control/best_practices/)
### Starting Assist in Home Assistant
diff --git a/source/voice_control/assign_areas_floors.markdown b/source/voice_control/assign_areas_floors.markdown
new file mode 100644
index 00000000000..bb3b967b764
--- /dev/null
+++ b/source/voice_control/assign_areas_floors.markdown
@@ -0,0 +1,40 @@
+---
+title: "Assigning devices to areas and areas to floors"
+related:
+ - docs: /docs/organizing/areas/
+ title: Areas
+ - docs: /docs/organizing/floors/
+ title: Floors
+ - docs: /voice_control/custom_sentences/
+ title: Assist - custom sentences
+ - docs: /voice_control/best_practices/
+ title: Best practices with Assist
+---
+
+Another best practice with Assist is to create an architecture of areas and floors in your home, since it will make it consistent and easy to understand for Assist.
+
+### To create missing areas
+
+1. Go to {% my zones title="**Settings** > **Areas, labels & zones**" %}.
+2. Select **Create area**.
+
+### To create missing floors
+
+1. Go to {% my zones title="**Settings** > **Areas, labels & zones**" %}.
+2. Select **Create floor**.
+3. In the floor creation dialog, assign the related areas.
+
+### To assign areas to existing floors
+
+1. Go to {% my zones title="**Settings** > **Areas, labels & zones**" %}.
+2. Next to the floor name, select the three dots {% icon "mdi:dots-vertical" %} menu.
+3. Select **Edit floor**.
+4. Assign your areas to this floor.
+
+### To assign a device to an area
+
+1. Go to {% my devices title="**Settings** > **Devices & services** > **Devices**" %}.
+2. Select the device.
+3. In the top bar of the device page, select the pencil {% icon "mdi:pencil" %} icon.
+4. Assign it to an area.
+
diff --git a/source/voice_control/best_practices.markdown b/source/voice_control/best_practices.markdown
new file mode 100644
index 00000000000..88ea016fb2c
--- /dev/null
+++ b/source/voice_control/best_practices.markdown
@@ -0,0 +1,84 @@
+---
+title: Best practices with Assist
+related:
+ - docs: /voice_control/android
+ title: Assist on Android devices
+ - docs: /voice_control/apple
+ title: Assist on Apple devices
+ - docs: /voice_control/thirteen-usd-voice-remote/
+ title: Build a 13$ voice remote using an ESPHome device
+ - docs: /voice_control/builtin_sentences
+ title: Sentences starter kit
+ - url: https://www.nabucasa.com/config/
+ title: Home Assistant Cloud
+---
+There are a few things you should do to get the most out of the voice assistant experience.
+
+Using Assist consists of saying supported commands while targeting exposed devices and entities. So essentially:
+
+- You control what data Assist has access to, and what it can control.
+- Every entity in Home Assistant can be exposed or not to Assist.
+
+Some best practices we recommend to have an efficient setup are:
+
+### Expose (the minimum) entities
+
+Learn how in [Exposing your entities to Assist](/voice_control/voice_remote_expose_devices/).
+
+It might be tempting to expose all entities to Assist, but doing so will come with a performance penalty. The more entity names and aliases the parser will have to go through, the more time it will spend matching. And if you’re using a LLM-based conversation agent, it will incur a higher cost per request, due to the larger context size. Only expose the bare minimum you know you are going to use with voice assistants.
+
+
+### Check names and create aliases
+
+Assist relies heavily on entity names, domains, and areas. Below you will find tips for tweaking these things to ensure the best experience. On top of exposing the needed data, it is worth noting that you will most likely target entities through areas and floors, like:
+
+- *Turn off the office lights*
+
+So make sure your devices and entities are correctly assigned to areas, and your areas are correctly assigned to floors.
+Learn how [here](/voice_control/assign_areas_floors/).
+
+Not having good ways to address entities in common speech will greatly hinder your voice experience with Assist. You can expect to have a hard time asking Assist to “turn on Tuya Light Controller 0E54B1 Light 1”. You should therefore name your devices and entities logically, using a schema such as `