Merge branch 'current' into rc

This commit is contained in:
Franck Nijhof 2025-02-05 12:32:11 +00:00
commit ffedd178a7
No known key found for this signature in database
GPG Key ID: D62583BA8AB11CA3
32 changed files with 218 additions and 48 deletions

View File

@ -4,15 +4,15 @@ ruby '> 2.5.0'
group :development do
gem 'rake', '13.2.1'
gem 'jekyll', '4.4.0'
gem 'jekyll', '4.4.1'
gem 'compass', '1.0.3'
gem 'sass-globbing', '1.1.5'
gem 'stringex', '2.8.6'
# > 2.1.0 causes slowdowns https://github.com/sass/sassc-ruby/issues/189
gem 'sassc', '2.1.0'
gem 'sass-embedded', '1.83.4'
gem 'rubocop', '1.71.0'
gem 'ruby-lsp', '0.23.7'
gem 'rubocop', '1.71.2'
gem 'ruby-lsp', '0.23.8'
gem 'rackup', '2.2.1'
end

View File

@ -39,7 +39,7 @@ GEM
http_parser.rb (0.8.0)
i18n (1.14.7)
concurrent-ruby (~> 1.0)
jekyll (4.4.0)
jekyll (4.4.1)
addressable (~> 2.4)
base64 (~> 0.2)
colorator (~> 1.0)
@ -61,8 +61,8 @@ GEM
jekyll-commonmark (1.4.0)
commonmarker (~> 0.22)
jekyll-paginate (1.1.0)
jekyll-sass-converter (3.0.0)
sass-embedded (~> 1.54)
jekyll-sass-converter (3.1.0)
sass-embedded (~> 1.75)
jekyll-sitemap (1.4.0)
jekyll (>= 3.7, < 5.0)
jekyll-toc (0.19.0)
@ -98,7 +98,7 @@ GEM
prism (1.3.0)
public_suffix (6.0.1)
racc (1.8.1)
rack (3.1.8)
rack (3.1.9)
rack-protection (4.1.1)
base64 (>= 0.1.0)
logger (>= 1.6.0)
@ -118,19 +118,19 @@ GEM
regexp_parser (2.10.0)
rexml (3.4.0)
rouge (4.5.1)
rubocop (1.71.0)
rubocop (1.71.2)
json (~> 2.3)
language_server-protocol (>= 3.17.0)
parallel (~> 1.10)
parser (>= 3.3.0.2)
rainbow (>= 2.2.2, < 4.0)
regexp_parser (>= 2.9.3, < 3.0)
rubocop-ast (>= 1.36.2, < 2.0)
rubocop-ast (>= 1.38.0, < 2.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 2.4.0, < 4.0)
rubocop-ast (1.38.0)
parser (>= 3.3.1.0)
ruby-lsp (0.23.7)
ruby-lsp (0.23.8)
language_server-protocol (~> 3.17.0)
prism (>= 1.2, < 2.0)
rbs (>= 3, < 4)
@ -156,7 +156,7 @@ GEM
rack-protection (= 4.1.1)
rack-session (>= 2.0.0, < 3)
tilt (~> 2.0)
sorbet-runtime (0.5.11787)
sorbet-runtime (0.5.11801)
stringex (2.8.6)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
@ -174,7 +174,7 @@ PLATFORMS
DEPENDENCIES
compass (= 1.0.3)
jekyll (= 4.4.0)
jekyll (= 4.4.1)
jekyll-commonmark (= 1.4.0)
jekyll-paginate (= 1.1.0)
jekyll-sitemap (= 1.4.0)
@ -182,8 +182,8 @@ DEPENDENCIES
nokogiri (= 1.18.2)
rackup (= 2.2.1)
rake (= 13.2.1)
rubocop (= 1.71.0)
ruby-lsp (= 0.23.7)
rubocop (= 1.71.2)
ruby-lsp (= 0.23.8)
sass-embedded (= 1.83.4)
sass-globbing (= 1.1.5)
sassc (= 2.1.0)

View File

@ -1,5 +1,3 @@
# Flags rendered via https://flagpedia.net/
# ship_from accepts ISO 3166 country code
green:
name: "<strong>Home Assistant Green</strong>"
distributors:
@ -447,3 +445,8 @@ voice-pe:
ship_to: Europe
url: https://shop.everythingsmart.io/products/home-assistant-voice-preview-edition
logo: /images/distributors/est.webp
- name: Pimoroni
ship_from: UK
ship_to: Europe
url: https://shop.pimoroni.com/products/home-assistant-voice
logo: /images/distributors/pimoroni.webp

View File

@ -30,7 +30,7 @@ Airthings API setup (needed to acquire the required ID and Secret for the Home A
1. Login [here](https://dashboard.airthings.com/integrations/api-integration) to find your credentials.
2. Select [Integrations](https://dashboard.airthings.com/integrations/api-integration) from the left side-bar.
3. Click on "Request API Client" in order to set up an API connection.
4. Name your API connection ie. "Home Assistant Integration".
4. Name your API connection (e.g., "Home Assistant"). Note: The name field has a character limit and longer names will be truncated.
5. Give the connection an accurate description.
6. Select a Resource Scope.
7. Select an access Type, i.e., Confidential.

View File

@ -40,6 +40,7 @@ This integration uses the last 6 digits of the serial number.
- Wave Radon
- Wave Mini
- Wave Plus
- Wave Enhance
## Sensors

View File

@ -293,7 +293,13 @@ Bluetooth advertisement bundling reduces traffic between Home Assistant and the
### Improving connection times
The connection time and performance vary greatly based on the Bluetooth adapter and interference. The below adapters are listed from best-performing to worst-performing:
Connection time and performance vary greatly depending on the Bluetooth adapter and interference.
{% warning %}
When switching to an adapter with better performance, disable the old, less performant adapters. The best signal and available connection slots are considered when making connections, and performance will be limited to the worst-performing adapter with the best signal to reach the remote device.
{% endwarning %}
The below adapters are listed from best-performing to worst-performing:
- [Ethernet-connected Bluetooth proxies](#remote-adapters-bluetooth-proxies) running ESPHome 2023.6.0 or later with [passive scanning](https://esphome.io/components/esp32_ble_tracker.html#configuration-variables)
- [USB High performance adapter](#known-working-high-performance-adapters) with [passive scanning](#passive-scanning)

View File

@ -5,6 +5,8 @@ ha_release: '0.60'
ha_category:
- Text-to-speech
- Voice
- Backup
- Speech-to-text
ha_iot_class: Cloud Push
ha_codeowners:
- '@home-assistant/cloud'
@ -16,7 +18,7 @@ ha_platforms:
ha_integration_type: system
---
The Home Assistant Cloud allows you to quickly integrate your local Home Assistant with various cloud services like Amazon Alexa and Google Assistant. [Learn more.](/cloud)
The Home Assistant Cloud allows you to quickly integrate your local Home Assistant with various cloud services like Amazon Alexa and Google Assistant. It also enables a secure remote connection, speech-to-text, text-to-speech, an offsite backup location, Webhooks support, and better WebRTC. [Learn more.](/cloud)
## Configuration
@ -29,7 +31,7 @@ cloud:
Documentation of further configuration possibilities are located at [NabuCasa](https://www.nabucasa.com/config/)
Once activated, go to the configuration panel in Home Assistant and create an account and log in. If you are not seeing the **Settings** panel, make sure you have the following option enabled in your {% term "`configuration.yaml`" %} file.
Once activated, go to the configuration panel in Home Assistant, create an account, and log in. If you are not seeing the **Settings** panel, make sure you have the following option enabled in your {% term "`configuration.yaml`" %} file.
```yaml
config:

View File

@ -41,7 +41,7 @@ The Google Generative AI API key is used to authenticate requests to the Google
- Visit the [API Keys page](https://aistudio.google.com/app/apikey) to retrieve the API key you'll use to configure the integration.
On the same page, you can see your plan: *free of charge* if the associated Google Cloud project doesn't have billing, or *pay-as-you-go* if the associated Google Cloud project has billing enabled.
Comparison of the plans is available [at this pricing page](https://ai.google.dev/pricing). The major differences include: the free of charge plan is rate limited, free prompts/responses are used for product improvement, and the free plan is not available in all [regions](https://ai.google.dev/gemini-api/docs/available-regions).
Comparison of the plans is available [at this pricing page](https://ai.google.dev/pricing). The major differences include: the free of charge plan is rate limited, and free prompts/responses are used for product improvement.
{% include integrations/option_flow.md %}
@ -73,7 +73,7 @@ Safety settings:
## Talking to Super Mario
You can use an OpenAI Conversation integration to [talk to Super Mario and, if you want, have him control devices in your home](/voice_control/assist_create_open_ai_personality/).
You can use this integration to [talk to Super Mario and, if you want, have him control devices in your home](/voice_control/assist_create_open_ai_personality/).
The tutorial is using OpenAI, but this could also be done with the Google Generative AI integration.

View File

@ -22,8 +22,13 @@ ha_integration_type: integration
The `juicenet` platform pulls data from a [JuiceNet](https://evcharging.enelx.com/products/juicebox) charging station equipped with a Wi-Fi connection. It will access and make available all of the devices attached to your account. It also exposes a switch allowing you to charge your car now instead of waiting for the pre-set schedule.
{% important %}
This integration can no longer be set up as the required API token cannot be obtained. However, if you have it working, it may remain functional.
{% endimportant %}
{% include integrations/config_flow.md %}
## Sensor
The `juicenet` sensor platform allows you to get data from your [JuiceNet](https://evcharging.enelx.com/products/juicebox) charger.

View File

@ -19,9 +19,10 @@ ha_integration_type: integration
[Minecraft](https://www.minecraft.net/en-us) is a sandbox video game developed by Mojang Studios. Minecraft servers allow players to play the game online or via a local area network with other players. The **Minecraft Server** integration lets you retrieve information from a Minecraft server within Home Assistant. Both **Java Edition** and **Bedrock Edition** servers are supported.
{% important %}
Minecraft Java Edition servers must be version 1.7 or newer, since older versions don't expose any information.
{% endimportant %}
## Prerequisites
- Minecraft Java Edition servers must be version 1.7 or newer, since older versions don't expose any information.
- The `enable-status` and `enable-query` must be set to `true` in the Minecraft `server.properties`.
{% include integrations/config_flow.md %}

View File

@ -17,12 +17,96 @@ ha_platforms:
ha_codeowners:
- '@RJPoelstra'
ha_domain: motionmount
ha_zeroconf: true
---
The Vogel's MotionMount integration allows you to control the position of your [TVM 7675 Pro](https://www.vogels.com/p/tvm-7675-pro-motorized-tv-wall-mount-black) Signature MotionMount.
The `motionmount` {% term integration %} allows you to control the position of your [TVM 7675 Pro](https://www.vogels.com/p/tvm-7675-pro-motorized-tv-wall-mount-black) SIGNATURE MotionMount from Vogel's.
This integration uses the Ethernet (IP) connection of your MotionMount. It's not possible to connect using the RS-232 connection.
It provides information about the current position of the mount and allows setting a new position.
A use case would be to position the TV based on whether anyone is actively watching. The MotionMount provides an HDMI connection to monitor whether the TV is turned on and in response move it to a preset position or the last known position. However, if you also use the TV for background music, you probably don't want the MotionMount to extend. By using a presence sensor to check whether anyone is actually in front of the TV, you can ensure the MotionMount only extends when the TV is actively being watched.
{% include integrations/config_flow.md %}
{% configuration_basic %}
Host:
description: Hostname or IP address of the device, for example:`192.168.1.2`.
Port:
description: The TCP port of the device. Defaults to 23. Only change this when you're absolutely certain that it shouldn't be 23.
PIN:
description: The user level pincode, if configured on the device.
{% endconfiguration_basic %}
## Removing the integration
This integration follows standard integration removal. No extra steps are required.
{% include integrations/remove_device_service.md %}
## Data updates
The MotionMount pushes new data to the integration.
The only exception is the presets. Changes to the presets are {% term polling polled %}, by default every 60 seconds.
## Known limitations
The integration does not provide the ability to configure the MotionMount.
All settings, including configuring presets, should be done via the MotionMount app.
Only IP connections are supported. Connection via RS-232 or Bluetooth Low Energy is not supported.
## Supported devices
The following devices are supported:
- TVM 7675 Pro (SIGNATURE MotionMount with Pro extension)
## Unsupported devices
The following devices are *not* supported:
- TVM 7675 (SIGNATURE MotionMount without Pro extension)
- TVM 7355 (NEXT MotionMount)
## Supported functionality
### Entities
#### Sensors
- **Moving**
- **Description**: Indicates whether the MotionMount is moving.
- **Error Status**
- **Description**: The error status of the MotionMount.
- None: There is no error.
- Motor: There is a problem communicating with the motor.
- Internal: There is an internal error. Refer to the MotionMount app for support.
#### Numbers
- **Extension**
- **Description**: The current extension of the MotionMount from the wall.
- **Turn**
- **Description**: The current rotation of the MotionMount.
#### Selects
- **Presets**
- **Description**: If the MotionMount is at a preset location, this shows the corresponding preset.
Any preset can be selected to move the MotionMount to this preset position.
## Troubleshooting
### Can't connect to device
1. Make sure the device is powered on.
2. Make sure the device is connected to the same network as Home Assistant.
3. Make sure the IP address of the MotionMount is configured correctly.
- In case of doubt, perform a network reset by holding the reset button for approx. 5 seconds.
- **Result**: The LED will start to blink slowly. This indicates that the network configuration is being reset to use DHCP.
- **Important**: Don't hold the reset button for too long (approx. 10 s). Holding the button for 10 s or longer starts a factory reset. A factory reset is indicated by the LED blinking fast.

View File

@ -793,7 +793,7 @@ support_url:
'osc_cmd_tpl': 'oscillation_command_template',
'osc_stat_t': 'oscillation_state_topic',
'osc_val_tpl': 'oscillation_value_template',
'platform': 'p',
'p': 'platform',
'pct_cmd_t': 'percentage_command_topic',
'pct_cmd_tpl': 'percentage_command_template',
'pct_stat_t': 'percentage_state_topic',

View File

@ -591,7 +591,7 @@ Prerequisites:
![Choose entity button](/images/integrations/reolink/rich_notification__chose_entity.png)
![Select Fluent camera](/images/integrations/reolink/rich_notification__select_fluent_camera.png)
Under **Filename**, fill in `/config/www/reolink_snapshot/last_snapshot_doorbell.jpg`. The first part `/config/www/` is absolutely necessary to allow your phone to access the saved image when it receives the notification. The reset of the folder and filename can be changed at will as long as you fill in the same filename under step 6.
Under **Filename**, fill in `/media/reolink_snapshot/last_snapshot_doorbell.jpg`. The first part `/media/` is absolutely necessary to allow your phone to access the saved image when it receives the notification. The reset of the folder and filename can be changed at will as long as you fill in the same filename under step 6.
<p class='img'>
<img src='/images/integrations/reolink/rich_notification__screenshot_take_snapshot.png' alt='Screenshot: take snapshot'>
@ -605,7 +605,7 @@ Prerequisites:
Under **message**, type the text you want to receive in the notification. For instance, “Someone rang the doorbell”.
If you want to give the notification a title, select the **title** option. For instance, if you have multiple cameras that send you notifications, select the camera name: `Doorbell`.
Select the **data** option and fill in `image: /local/reolink_snapshot/last_snapshot_doorbell.jpg`. Note that `/config/www/` of the filename of step 5 now needs to be changed to `/local/`. The rest of the filename needs to be the same as in step 5.
Select the **data** option and fill in `image: /media/local/reolink_snapshot/last_snapshot_doorbell.jpg`. Note that `/media/` of the filename of step 5 now needs to be changed to `/media/local/`. The rest of the filename needs to be the same as in step 5.
<p class='img'>
<img src='/images/integrations/reolink/rich_notification__send_to_mobile.png' alt='Screenshot: send notification'>
@ -625,6 +625,81 @@ Prerequisites:
- Turn on (outdoor) lights near the camera to improve image clarity at night once the camera detects a person, vehicle, or animal.
- Turn off notifications and recording when you get home (based on, e.g., geofencing) and turn it back on when you leave home.
- Auto-pause rich notifications for x time
{% details "Auto-pause rich notifications tutorial" icon="mdi:cursor-hand" %}
**Goal**: At the end of this tutorial, you will have a drop-down on your dashboard with different time choices to pause your notifications. When the time is up, the notifications will become active again. It will look like this:
![Overview of end result](/images/integrations/reolink/auto_pause__overview.png)
1. First, create the dropdown from **Settings** > **Devices & services** > **Helpers** > **+ Create Helper** > **Dropdown**.
- Decide how many time delay choices you want.
- Add them all to the dropdown like below.
- Your first entry needs to be "Notifications active" (or simular phrasing) for when the notifications are turned on.
- You can define as many time options as you want. And you can define any time interval you like, for example, 22 minutes, 2 hours.
![Dropdown](/images/integrations/reolink/auto_pause__dropdown.png)
2. Next, also from the **Helpers** menu create a **Timer**.
- Leave the time duration all zeros. Select the **Restore state and time** box.
![Timer](/images/integrations/reolink/auto_pause__timer.png)
3. Now you will create a new automation script.
- For the **When** select **+ Add Trigger** > **Entity** > **State** and choose your dropdown box for the entity and in the **From** choose your "Notifications active" or whatever you chose for the top item.
![Automation When dropdown](/images/integrations/reolink/auto_pause__automation_when.png)
4. Add another trigger using **+ Add Trigger** > **Entity** > **State** and choose your timer for the entity and in the **To** choose "Idle".
- Now select the three dots {% icon "mdi:dots-vertical" %} menu of this trigger and press **Edit ID**. In the **Trigger ID** type "TIMER DONE".
![Automation When timer](/images/integrations/reolink/auto_pause__automation_when_timer.png)
5. There is nothing in the **And if** section. For the **Then do** section choose **add building block** and use **Choose**.
- You will have as many options as you have times in your dropdown box plus one to reset the dropdown box.
- First, we make the option to reset the dropdown box. This needs to be the first option.
- Under **Option 1**, select **+ Add Condition** > **Other conditions** > **Triggered by**.
- Now check the box in front of "TIMER DONE".
![Automation Triggered by](/images/integrations/reolink/auto_pause__automation_triggered_by.png)
6. Add an action under this **Option 1**, choose **Select** as your action and then choose **First**.
- Then enter your dropdown box as the entity.
- This will change your dropdown box back to the first item when the timer is done.
- This will allow your notification automation to run again.
![Automation Select first](/images/integrations/reolink/auto_pause__automation_select_first.png)
7. Lets code the first option to pause the notifications now.
- Under **Option 2**, select **+ Add Condition** > **Entity** > **State**.
- Your dropdown box goes in the **Entity** and for **State** choose your first time delay.
![Automation Choose](/images/integrations/reolink/auto_pause__automation_choose.png)
8. For **+ Add Action**, choose **Helpers** > **Timer** > **Start** and enter your timer entity.
- Check the duration box and enter the time delay you used for your first time delay. Format is HH:MM:SS
![Automation Start timer](/images/integrations/reolink/auto_pause__automation_start_timer.png)
9. The only thing left here is to duplicate Option 2 as many items as you have in your dropdown box.
- The only changes you will need to make for each new option is to choose the correct state (time amount) for the dropdown box and then change the amount of time in the timer.
- You can easliy duplicate by clicking the three dots {% icon "mdi:dots-vertical" %} menu at the far right of the option.
10. Lastly, you need to apply this new feature.
- Go into your rich notifications automation, or for that matter any automation that you would like to have pause control over, and add a condition.
- Below is an example. In the **And if** press **+ Add condition** > **Entity** > **State** add select the dropdown box as the entity and "Notifications Active", the first item, as the state.
![Condition](/images/integrations/reolink/auto_pause__condition.png)
11. Add the dropdown box and the timer onto your dashboard and you are all set.
- Here is what it looks like when it is running (holding notifications).
- You can end it early by just selecting the timer, then selecting finish. That ends the timer, it goes to idle, and the automation resets the dropdown box to active.
![Result when running](/images/integrations/reolink/auto_pause__result_when_running.png)
{% enddetails %}
- When someone presses the doorbell, play ringtones on speakers (Echo Dot/Google Home/smart hubs) throughout the house.
- Pause a TV and show a notification badge on the TV when the doorbell is pressed (only when the TV is already on).
- Play the quick replay messages of a Reolink doorbell only when not home (geofencing)

View File

@ -156,7 +156,7 @@ variables:
sensor:
description: List of sensors
required: true
type: map
type: list
keys:
state:
description: "Defines a template to get the state of the sensor. If the sensor is numeric, i.e. it has a `state_class` or a `unit_of_measurement`, the state template must render to a number or to `none`. The state template must not render to a string, including `unknown` or `unavailable`. An `availability` template may be defined to suppress rendering of the state template."
@ -180,7 +180,7 @@ sensor:
binary_sensor:
description: List of binary sensors
required: true
type: map
type: list
keys:
state:
description: The sensor is `on` if the template evaluates as `True`, `yes`, `on`, `enable` or a positive number. Any other value will render it as `off`. The actual appearance in the frontend (`Open`/`Closed`, `Detected`/`Clear` etc) depends on the sensors device_class value

View File

@ -238,10 +238,6 @@ These are the entities available in the Teslemetry integration. Not all entities
|Sensor|State|Yes|
|Sensor|Vehicle|Yes|
## Vehicle sleep
Constant API polling will prevent most Model S and Model X vehicles manufactured before 2021 from sleeping, so the Teslemetry integration will stop polling these vehicles for 15 minutes, after 15 minutes of inactivity. You can call the `homeassistant.update_entity` action to force polling the API, which will reset the timer.
## Actions
Teslemetry provides various custom actions to interact with the Tesla Fleet API directly.

View File

@ -36,7 +36,7 @@ If you see an "Unable to connect" message, restart the gateway and try again. Do
{% note %}
There is currently no dedicated core integration for the Dirigera hub released in October 2022.
The Dirigera hub can, however, be integrated directly via the [HomeKit device](/integrations/homekit_controller/) integration. This configuration even provides events for motion sensors and buttons, which the original integration lacks.
The Dirigera hub can, however, be integrated directly via the [HomeKit device](/integrations/homekit_controller/) integration or the [Matter](/integrations/matter/#using-a-matter-bridge) integration. As of Hub version 2.615.8 (September 2024), there is support for the following device types via Matter Bridge: lights (including drivers), smart plugs/outlets, connected blinds, remotes, motion sensors, open/close sensors, air purifiers, and air quality sensors.
{% endnote %}

View File

@ -15,7 +15,7 @@ related:
ha_quality_scale: legacy
---
This is a presence detection scanner for [OpenWrt](https://openwrt.org/) using [ubus](https://wiki.openwrt.org/doc/techref/ubus). It scans for changes in `hostapd.*`, which will detect and report changes in devices connected to the access point on the router.
This is a presence detection scanner for [OpenWrt](https://openwrt.org/) using [ubus](https://openwrt.org/docs/techref/ubus). It scans for changes in `hostapd.*`, which will detect and report changes in devices connected to the access point on the router.
Before this scanner can be used, you have to install the ubus RPC packages on OpenWrt (versions older than 18.06.x do not require the `uhttpd-mod-ubus` package):

View File

@ -1010,7 +1010,6 @@ dark_header: true
</h3>
<p>
You can add Home Assistant Connect ZBT-1 to control Zigbee and Thread* devices, set up Home Assistant Cloud for voice assistants, and integrate third-party USB accessories to support other smart standards, such as Z-Wave or Bluetooth.
<br>*Thread support is currently under development.
</p>
<a
href="/connectzbt1"

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

View File

@ -45,13 +45,11 @@ There are cloud agents provided by [Open AI](/integrations/openai_conversation/)
1. Go to {% my integrations title="**Settings** > **Devices & Services**" %} **Add Integration**, find your LLM provider and set it up with your API key.
- In case of a provider of local agents like Ollama, you need to configure the local URL where the agent is installed. Follow the specific [integration recommendations](/integrations/ollama) in this case.
2. Go to **Settings > Voice Assistants > Add Assistant**. Give it a name and pick a conversation agent from your AI's option. In this example we are using Antropic and the agent picked is Claude.
![Add Claude agent to Assist](/images/assist/add-claude-to-assist.png)
3. Be mindful of your Text-to-speech and Speech-to-text configurations. These are not handled by the IA and should stay as you want them configured for Assist.
3. Be mindful of your Text-to-speech and Speech-to-text configurations. These are not handled by the AI and should stay as you want them configured for Assist.
4. Configure the agent (gear icon next to the agent's name).
- In the **Prompt template** field, enter a text that will prompt the AI to become the character. For example::
@ -65,14 +63,12 @@ There are cloud agents provided by [Open AI](/integrations/openai_conversation/)
- Once your Assist agent has been created, you can go to **Voice assistants** and the three dots menu of your personality, and define if you want Home Assistant's model to be the priority response, and therefore Assist would prefer to handling commands locally .
![Fallback toggle](/images/assist/fallback-assist-toggle.png)
- If you keep this option selected, if the intent can be answered by Home Assistant it will. It will not have the personality, but the response will be fast and efficient (since it doesn't require to go through the LLM). This is recommended in cases where you can accept not having the IA character reply sometimes and would rather your lights are turned on faster.
- If you keep this option selected, if the intent can be answered by Home Assistant it will. It will not have the personality, but the response will be fast and efficient (since it doesn't require to go through the LLM). This is recommended in cases where you can accept not having the AI character reply sometimes and would rather your lights are turned on faster.
- If you deselect the option, all the intents will go through the agent. This is recommended when efficiency is not an issue and you need the agent never to break character (for example if your Assist personality is Santa Claus).
5. You can uncheck Recommended model settings, hit Submit and it will unblock extra customization. In the specific example of OpenAI, [here](/integrations/openai_conversation/#model) a brief summary of the other settings.
6. You can test the agent directly from the Voice assistants panel, selecting Start a conversation from the agent's menu. It will control your Home Assistant and reply exactly as it will do with any voice hardware.
7. In case you need troubleshooting with your LLM provider, check any specifics from your IA in our [integrations documentation](/integrations)
7. In case you need troubleshooting with your LLM provider, check any specifics from your AI in our [integrations documentation](/integrations)
## Tutorial: Setting up Assist with OpenAI

View File

@ -9,11 +9,13 @@ related:
title: Sentence triggers
- docs: /docs/automation/trigger/#sentence-wildcards
title: Sentence wildcards
- docs: voice_control/custom_sentences_yaml
title: Customize responses
- url: https://developers.home-assistant.io/docs/intent_builtin/
title: View existing intents
---
You may add your own sentences to the intent recognizer by either extending an [existing intent](https://developers.home-assistant.io/docs/intent_builtin/) or creating a new one. You may also [customize responses](#customizing-responses) for existing intents.
You may add your own sentences to the intent recognizer by either extending an [existing intent](https://developers.home-assistant.io/docs/intent_builtin/) or creating a new one. You may also [customize responses](/voice_control/custom_sentences_yaml#customizing-responses) for existing intents.
## Prerequisites