From 5caa8052db98bb1614f716c2cb7e154f1667f739 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Fri, 20 Jan 2023 08:25:23 -0500 Subject: [PATCH] Revert "Conversation custom sentences (#25844)" (#25867) --- source/_integrations/conversation.markdown | 163 ++++++------------- source/images/screenshots/voice-commands.png | Bin 14584 -> 14828 bytes 2 files changed, 48 insertions(+), 115 deletions(-) diff --git a/source/_integrations/conversation.markdown b/source/_integrations/conversation.markdown index 111a0cb45cb..f1038151e18 100644 --- a/source/_integrations/conversation.markdown +++ b/source/_integrations/conversation.markdown @@ -24,146 +24,79 @@ The conversation integration allows you to converse with Home Assistant. You can conversation: ``` -## Default sentences - -By default, a collection of [community contributed sentences](https://github.com/home-assistant/intents/) are supported in a growing [list of languages](https://developers.home-assistant.io/docs/voice/intent-recognition/supported-languages). - -In English, you can say things like "turn on kitchen lights" or "turn off lights in the bedroom" if you have an area named "bedroom". +{% configuration %} +intents: + description: Intents that the conversation integration should understand. + required: false + type: map + keys: + '``': + description: Sentences that should trigger this intent. + required: true + type: list +{% endconfiguration %} ## Adding custom sentences -You can add your own [sentence templates](https://developers.home-assistant.io/docs/voice/intent-recognition/template-sentence-syntax) to teach Home Assistant about new sentences. These sentences can work with the [built-in intents](https://developers.home-assistant.io/docs/intent_builtin/) or trigger a custom action by defining custom intents with the [intent script integration](/integrations/intent_script/). +By default, it will support turning devices on and off. You can say things like "turn on kitchen lights" or "turn the living room lights off". You can also configure your own sentences to be processed. This works by mapping sentences to intents and then configure the [intent script integration](/integrations/intent_script/) to handle these intents. -To get started, create a `custom_sentences/` directory in your Home Assistant `config` directory where `` is the [language code](https://developers.home-assistant.io/docs/voice/intent-recognition/supported-languages) of your language, such as `en` for English. These YAML files are automatically merged, and may contain intents, lists, or expansion rules. - -For an English example, create the file `config/custom_sentences/en/temperature.yaml` and add: - -{% raw %} - -```yaml -# Example temperature.yaml entry -language: "en" -intents: - CustomOutsideHumidity: - data: - - sentences: - - "What is the humidity outside" -``` - -{% endraw %} - -To teach Home Assistant how to handle the custom `CustomOutsideHumidity` intent, create an `intent_script` entry in your `configuration.yaml` file: +Here is a simple example to be able to ask what the temperature in the living room is. {% raw %} ```yaml # Example configuration.yaml entry +conversation: + intents: + LivingRoomTemperature: + - What is the temperature in the living room + intent_script: - CustomOutsideHumidity: + LivingRoomTemperature: speech: - text: "It is currently {{ states("sensor.outside_humidity") }} percent humidity outside." + text: It is currently {{ states.sensor.temperature }} degrees in the living room. ``` {% endraw %} -More complex [actions](/docs/scripts/) can be done in `intent_script`, such as calling services and firing events. +## Adding advanced custom sentences +Sentences can contain slots (marked with curly braces: `{name}`) and optional words (marked with square brackets: `[the]`). The values of slots will be passed on to the intent and are available inside the templates. -## Extending built-in intents +The following configuration can handle the following sentences: -Extending the built-in intents, such as `HassTurnOn` and `HassTurnOff`, can be done as well. - -For example, create the file `config/custom_sentences/en/on_off.yaml` and add: +- Change the lights to red +- Change the lights to green +- Change the lights to blue +- Change the lights to the color red +- Change the lights to the color green +- Change the lights to the color blue {% raw %} ```yaml -# Example on_off.yaml entry -language: "en" -intents: - HassTurnOn: - data: - - sentences: - - "engage [the] kitchen lights" - slots: - name: "kitchen lights" - HassTurnOff: - data: - - sentences: - - "disengage [the] kitchen lights" - slots: - name: "kitchen lights" +# Example configuration.yaml entry +conversation: + intents: + ColorLight: + - Change the lights to [the color] {color} +intent_script: + ColorLight: + speech: + text: Changed the lights to {{ color }}. + action: + service: light.turn_on + data: + rgb_color: + - "{% if color == 'red' %}255{% else %}0{% endif %}" + - "{% if color == 'green' %}255{% else %}0{% endif %}" + - "{% if color == 'blue' %}255{% else %}0{% endif %}" ``` {% endraw %} -Now when you say "engage the kitchen lights", it will turn on a light named "kitchen lights". Saying "disengage kitchen lights" will turn it off. - -Let's generalize this to other entities. The built-in `{name}` and `{area}` lists contain the names of your Home Assistant entities and areas. - -Adding `{name}` to `config/custom_sentences/en/on_off.yaml`: - -{% raw %} - -```yaml -# Example on_off.yaml entry -language: "en" -intents: - HassTurnOn: - data: - - sentences: - - "engage [the] {name}" - HassTurnOff: - data: - - sentences: - - "disengage [the] {name}" -``` - -{% endraw %} - -You can now "engage" or "disengage" any entity. - -Lastly, let's add sentences for turning lights on and off in specific areas: - -{% raw %} - -```yaml -# Example on_off.yaml entry -language: "en" -intents: - HassTurnOn: - data: - - sentences: - - "engage [the] {name}" - - sentences: - - "engage [all] lights in [the] {area}" - slots: - name: "all" - domain: "light" - HassTurnOff: - data: - - sentences: - - "disengage [the] {name}" - - sentences: - - "disengage [all] lights in [the] {area}" - slots: - name: "all" - domain: "light" -``` - -{% endraw %} - -It's now possible to say "engage all lights in the bedroom", which will turn on every light in the area named "bedroom". - - ## Service `conversation.process` -| Service data attribute | Optional | Description | -|------------------------|----------|------------------| -| `text` | yes | Transcribed text | - -## Service `conversation.reload` - -| Service data attribute | Optional | Description | -|------------------------|----------|--------------------------------------------------------------------------| -| `language` | yes | Language to clear intent cache for. Defaults to Home Assistant language. | +| Service data attribute | Optional | Description | +|------------------------|----------|--------------------------------------------------| +| `text` | yes | Transcribed text | diff --git a/source/images/screenshots/voice-commands.png b/source/images/screenshots/voice-commands.png index cfed4415f2d1d269d09acbc6c4a371795c145fe6..39a98deef7ed7b3a44e3cb197fc628bfb7377183 100644 GIT binary patch literal 14828 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 eJ32Z(2st=tq{MXQAk1OE#r4h9YY