Component Customization
Users have the ability to further customize intents to provide a better experience for their individual needs. It can be useful to remove unused intents (especially if they false trigger) or modify slots (like custom shopping list items).
There are plans on having a UI to help with customizations, but currently it is handled with YAML files in /config/customizations/<component_name>.yaml
where component name matches the intent that you are trying to modify. For now, to get the names, you will have to take a look at the source to get all the function names. And for beta functionality we've called them out in the docs.
The Home Assistant component is made up of multiple intents, so they follow a slightly different structure: /config/customizations/home_assistant/<component_name>.yaml
Example customization filenames:
/config/customizations/timer.yaml
/config/customizations/home_assistant/shopping_list.yaml
When loaded correctly, you should see a Loading customization file /config/customizations/home_assistant/shopping_list.yaml
in the logs.
Slots
Adding and removing custom words to slots
Adding new words to the slot list supports all the standard Rhasspy slot features like synonyms.
Removal works by reference or exact match. So, to remove a specific entity from Home Assistant, the best option is to list the entity id (for example light.kitchen
).
slots:
shopping_item:
add:
- fruit: apple
- (banans|naners|bananas): bananas
- baked beans
remove:
- beans
Sentences/Intents
Enabling or disabling specific intents
A couple of intents are disabled by default (if they are in beta) or they cause a lot of issues OOTB, and can be enabled in config.
intents:
change_color_temperature:
enable: true
On the other hand, any intent you don't want can be disabled by setting enable
to false
.
intents:
add_item_to_shopping_list:
enable: false
Enabling or disabling all intents in a component
You can also enable or disable everything at the top level instead of on an individual basis using enable_all
.
enable_all: false # to stop all intents from triggering related to the component
Adding and removing sentences to intents
Similar to slots, intent sentences can be added or removed. Ensure that any tags or slot names needed for the intent are present.
intents:
add_item_to_shopping_list:
sentences:
add:
- "include ($shopping_item) on the shopping list"
remove:
- "add ($shopping_item) to the [shopping] list"
Intent aliasing with slot entities
Entire intent aliases can also be created that are pre-populated with slot items.
intents:
add_item_to_shopping_list:
alias:
- sentences:
- "I want bacon"
slots:
shopping_item: "bacon"
Full Example
This file could be used as /config/customizations/home_assistant/shopping_list.yaml
slots:
shopping_item:
add:
- fruit: apple
- (banans|naners|bananas): bananas
- baked beans
remove:
- beans
intents:
add_item_to_shopping_list:
sentences:
add:
- "add ($shopping_item) to the list"
alias:
- sentence: "I want bacon"
shopping_item: "bacon"