diff --git a/source/_includes/asides/docs_navigation.html b/source/_includes/asides/docs_navigation.html index 391090e3f7a..9ce209ba901 100644 --- a/source/_includes/asides/docs_navigation.html +++ b/source/_includes/asides/docs_navigation.html @@ -46,7 +46,9 @@
  • {% active_link /docs/assist/apple/ Assist for Apple devices %}
  • {% active_link /docs/assist/builtin_sentences/ Built-in sentences %}
  • {% active_link /docs/assist/custom_sentences/ Custom sentences %}
  • +
  • {% active_link /docs/assist/troubleshooting/ Troubleshooting Assist %}
  • {% active_link /docs/assist/voice_remote_local_assistant/ Configuring a local assistant %}
  • +
  • {% active_link /projects/worlds-most-private-voice-assistant/ Tutorial: World's most private voice assistant %}
  • {% active_link /projects/thirteen-usd-voice-remote/ Tutorial: $13 voice remote %}
  • diff --git a/source/_integrations/voip.markdown b/source/_integrations/voip.markdown index ddcb467caf1..6054c162ac5 100644 --- a/source/_integrations/voip.markdown +++ b/source/_integrations/voip.markdown @@ -12,7 +12,7 @@ ha_domain: voip ha_integration_type: integration --- -The VoIP integration enables users to talk to [Assist](/docs/assist) using an analog phone and a VoIP adapter such as the [Grandstream HT801](https://amzn.to/40k7mRa). See [the tutorial](/projects/private-voice-assistant/voice_remote_classic_phone/) for detailed instructions. +The VoIP integration enables users to talk to [Assist](/docs/assist) using an analog phone and a VoIP adapter such as the [Grandstream HT801](https://amzn.to/40k7mRa). See [the tutorial](/projects/worlds-most-private-voice-assistant/voice_remote_classic_phone/) for detailed instructions.

    diff --git a/source/images/assist/assistant-debug-02.png b/source/images/assist/assistant-debug-02.png new file mode 100644 index 00000000000..7b73bcc8b51 Binary files /dev/null and b/source/images/assist/assistant-debug-02.png differ diff --git a/source/images/assist/assistant-debug-03.png b/source/images/assist/assistant-debug-03.png new file mode 100644 index 00000000000..786de10c534 Binary files /dev/null and b/source/images/assist/assistant-debug-03.png differ diff --git a/source/images/assist/assistant-debug-04.png b/source/images/assist/assistant-debug-04.png new file mode 100644 index 00000000000..f4d0c894725 Binary files /dev/null and b/source/images/assist/assistant-debug-04.png differ diff --git a/source/images/assist/assistant-debug-pipeline-01.png b/source/images/assist/assistant-debug-pipeline-01.png new file mode 100644 index 00000000000..80df8db88d4 Binary files /dev/null and b/source/images/assist/assistant-debug-pipeline-01.png differ diff --git a/source/images/assist/assistant-debug-pipeline-02.png b/source/images/assist/assistant-debug-pipeline-02.png new file mode 100644 index 00000000000..65aab32ff9b Binary files /dev/null and b/source/images/assist/assistant-debug-pipeline-02.png differ diff --git a/source/images/assist/assistant-debug-pipeline-03.png b/source/images/assist/assistant-debug-pipeline-03.png new file mode 100644 index 00000000000..3f7bf927aa5 Binary files /dev/null and b/source/images/assist/assistant-debug-pipeline-03.png differ diff --git a/source/images/assist/assistant-give-name-01.png b/source/images/assist/assistant-give-name-01.png new file mode 100644 index 00000000000..1335d09ad96 Binary files /dev/null and b/source/images/assist/assistant-give-name-01.png differ diff --git a/source/images/assist/assistant-select.png b/source/images/assist/assistant-select.png new file mode 100644 index 00000000000..ce2a3d9cdd1 Binary files /dev/null and b/source/images/assist/assistant-select.png differ diff --git a/source/images/assist/assistant-stt-tts-define.png b/source/images/assist/assistant-stt-tts-define.png new file mode 100644 index 00000000000..eea83eda055 Binary files /dev/null and b/source/images/assist/assistant-stt-tts-define.png differ diff --git a/source/images/assist/autophon-mod-29.jpg b/source/images/assist/autophon-mod-29.jpg new file mode 100644 index 00000000000..f6d9f869a21 Binary files /dev/null and b/source/images/assist/autophon-mod-29.jpg differ diff --git a/source/images/assist/conversation-service-01.png b/source/images/assist/conversation-service-01.png new file mode 100644 index 00000000000..8a296a09c44 Binary files /dev/null and b/source/images/assist/conversation-service-01.png differ diff --git a/source/images/assist/grandstream-ht801-interfaces.png b/source/images/assist/grandstream-ht801-interfaces.png new file mode 100644 index 00000000000..2d283657369 Binary files /dev/null and b/source/images/assist/grandstream-ht801-interfaces.png differ diff --git a/source/images/assist/grandstream_apply.png b/source/images/assist/grandstream_apply.png new file mode 100644 index 00000000000..1fa75588691 Binary files /dev/null and b/source/images/assist/grandstream_apply.png differ diff --git a/source/images/assist/grandstream_autodial.png b/source/images/assist/grandstream_autodial.png new file mode 100644 index 00000000000..6112c7a4d39 Binary files /dev/null and b/source/images/assist/grandstream_autodial.png differ diff --git a/source/images/assist/grandstream_login.png b/source/images/assist/grandstream_login.png new file mode 100644 index 00000000000..0752743a0e5 Binary files /dev/null and b/source/images/assist/grandstream_login.png differ diff --git a/source/images/assist/grandstream_opus_payload.png b/source/images/assist/grandstream_opus_payload.png new file mode 100644 index 00000000000..e4dff1bac8b Binary files /dev/null and b/source/images/assist/grandstream_opus_payload.png differ diff --git a/source/images/assist/grandstream_port_config.png b/source/images/assist/grandstream_port_config.png new file mode 100644 index 00000000000..f281434b892 Binary files /dev/null and b/source/images/assist/grandstream_port_config.png differ diff --git a/source/images/assist/grandstream_vocoder.png b/source/images/assist/grandstream_vocoder.png new file mode 100644 index 00000000000..86d785a36fc Binary files /dev/null and b/source/images/assist/grandstream_vocoder.png differ diff --git a/source/images/assist/ha-cloud-tts-01.png b/source/images/assist/ha-cloud-tts-01.png new file mode 100644 index 00000000000..66c2df28e97 Binary files /dev/null and b/source/images/assist/ha-cloud-tts-01.png differ diff --git a/source/images/assist/voip-select-pipline.png b/source/images/assist/voip-select-pipline.png new file mode 100644 index 00000000000..ef2ed12ddad Binary files /dev/null and b/source/images/assist/voip-select-pipline.png differ diff --git a/source/images/assist/voip_configuration.png b/source/images/assist/voip_configuration.png new file mode 100644 index 00000000000..8e874ef7bb3 Binary files /dev/null and b/source/images/assist/voip_configuration.png differ diff --git a/source/images/assist/voip_device_available.png b/source/images/assist/voip_device_available.png new file mode 100644 index 00000000000..f15efc75d8f Binary files /dev/null and b/source/images/assist/voip_device_available.png differ diff --git a/source/images/assist/voip_install.png b/source/images/assist/voip_install.png new file mode 100644 index 00000000000..d4b6ca79334 Binary files /dev/null and b/source/images/assist/voip_install.png differ diff --git a/source/images/frontpage/promo-private-voice-assistant.png b/source/images/frontpage/promo-private-voice-assistant.png new file mode 100644 index 00000000000..a65fe3f8781 Binary files /dev/null and b/source/images/frontpage/promo-private-voice-assistant.png differ diff --git a/source/images/frontpage/voip-tut-frontpage-01.jpg b/source/images/frontpage/voip-tut-frontpage-01.jpg new file mode 100644 index 00000000000..f812529acea Binary files /dev/null and b/source/images/frontpage/voip-tut-frontpage-01.jpg differ diff --git a/source/index.html b/source/index.html index 146a16a7f67..114a58e1192 100644 --- a/source/index.html +++ b/source/index.html @@ -90,7 +90,7 @@ feedback: false

    - + - + + + **Voice assistants**. +1. From the list of assistants, select your assistant. + ![Select your assistant](/images/assist/assistant-select.png) +1. In the dialog, select **Debug**. +![Open the debug dialog](/images/assist/assistant-debug-03.png) +1. At the top of the screen, from the dropdown menu, select the run you are interested in. +![Debug speech-to-text](/images/assist/assistant-debug-02.png) + +## Test if the phrase works without voice + +1. [Open the debug view](#view-debug-information). +1. In the top right corner, select the icon. +![Open the pipeline debug dialog](/images/assist/assistant-debug-04.png) +1. Select **Run text pipeline**. +![Open the pipeline debug dialog](/images/assist/assistant-debug-pipeline-01.png) +1. Enter the phrase you want to test and select **Run**. +![Open the pipeline debug dialog](/images/assist/assistant-debug-pipeline-02.png) +1. Check if it worked. +![Open the pipeline debug dialog](/images/assist/assistant-debug-pipeline-03.png) + * If the phrase does not work, try a variant. For example, if *Turn off the light* doesn't work, try: *Turn off the lights in the kitchen*. + * Check if your phrase is [supported](/docs/assist/builtin_sentences/). + * Make sure you are using the name of the area as it is defined in Home Assistant. If you have a room called *bathroom*, the phrase *Turning on the lights in the bath* won’t work. diff --git a/source/projects/worlds-most-private-voice-assistant.markdown b/source/projects/worlds-most-private-voice-assistant.markdown new file mode 100644 index 00000000000..451f0cf1310 --- /dev/null +++ b/source/projects/worlds-most-private-voice-assistant.markdown @@ -0,0 +1,99 @@ +--- +title: "World's Most Private Voice Assistant" +--- + +This tutorial will guide you to turn your old landline phone into the +world's most private voice assistant. Pick up the phone to talk to +your smart home and issue commands and get responses. + + + +## Required material + +* Home Assistant 2023.5 or later +* An [analog phone](#about-the-analog-phone) with an RJ11 socket +* An analog telephone adapter + [Grandstream HT801](https://amzn.to/40k7mRa) + * includes a 5 V power adapter and an Ethernet cable +* RJ11 phone cable to connect the phone to the Grandstream +* [Home Assistant Cloud](https://www.nabucasa.com) or a manually configured [Assist Pipeline](/integrations/assist_pipeline) + +## Setting up Grandstream + +1. Connect the RJ11 cable from the phone to the green socket on the Grandstream. + ![Grandstream HT801 ports](/images/assist/grandstream-ht801-interfaces.png) +1. Connect the Grandstream to your network: + * Plug the Ethernet cable into the blue socket and connect it to your router. +1. Start up the Grandstream. + * Connect the power supply. + * Once the Grandstream has booted, the two LEDs for power and Ethernet light up solid blue. The phone LED won't light up. +1. Identify the IP address of the Grandstream. + * If your phone has a star * key, you can get your phone to tell you it's IP address: + * Press *** (press the star key three times) and wait until you hear *Enter the menu option*. + * Press 02 and the phone will tell you its IP address. + * If your phone does not have a star * key, log onto your router to find the IP address. +1. Enter the IP address into a browser window and log onto the Grandstream *Device Configuration* software. + * The default credentials are: + * **Username**: `admin` + * **Password**: `admin` + ![Login to Grandstream](/images/assist/grandstream_login.png) +1. Open the **FXS Port** tab and in the **Offhook Auto-Dial** field, enter the Home Assistant IP address in the following format: + * \*47192\*168\*1\*100\*5060 + ![Define IP for autodial](/images/assist/grandstream_autodial.png) + * Note: instead of 192\*168\*1\*100\*, enter the IP address of your Home Assistant instance. + * At the bottom of the page, select **Apply**. + ![Define IP for autodial](/images/assist/grandstream_apply.png) + * *Offhook Auto-Dial* means that when you pick up the phone, it directly calls Home Assistant. No need to dial. + +## Setting up the phone in Home Assistant + +1. In Home Assistant, go to {% my config_flow_start domain="voip" title="**Settings** > **Devices & Services** > **Add integration**" %} and add the **Voice over IP** integration. + ![Voice over IP integration](/images/assist/voip_install.png) +1. Once you see the integration, pick up the phone. + * You should now hear the message *This is your smart home speaking. Your phone is connected, but you must configure it within Home Assistant.* + * The integration should now include a device and entities. + ![Voice over IP integration with device and entities](/images/assist/voip_device_available.png) + * Don't hear the voice? Try these [troubleshooting steps](/projects/worlds-most-private-voice-assistant/#troubleshoot-grandstream). +1. Allow calls. + * Calls from new devices are blocked by default since voice commands could be used to control sensitive devices, such as locks and garage doors. + * In the **Voice over IP** integration, select the **device** link. + * To allow this phone to control your smart home, under **Configuration**, enable **Allow calls**. + ![Voice over IP integration - allow calls](/images/assist/voip_configuration.png) +1. Congratulations! You set up your analog phone to work with Home Assistant. Now pick up the phone and control your device. + * Say a [supported voice command](/docs/assist/builtin_sentences/). For example, *Turn off the light in the kitchen*. + * You can also ask a question, such as + * *Is the front door locked?* + * *Which lights are on in the living room?* + * Make sure you're using the area name as you defined it in Home Assistant. If you have a room called *bathroom*, the phrase *Turn on the lights in the bath* won't work. + * Your command is not supported? [Add your own commands](/integrations/conversation/). + +## Give your voice assistant personality using the OpenAI integration + + + +## Troubleshoot Grandstream + +If you’re unable to call Home Assistant, confirm the following settings in your Grandstream device’s web interface. + +1. On the **FXS Port** tab, check the **Preferred Vocoder** list. + * Make sure that **OPUS** is selected for one of the choices: + ![Vocoder OPUS option](/images/assist/grandstream_vocoder.png) +1. Under **OPUS Payload type**, make sure the value is `123`. It's the default option. + ![Vocoder OPUS payload type](/images/assist/grandstream_opus_payload.png) +1. At the bottom of the page, select **Apply**. +1. Pick up the phone again and check if you hear the voice. + +## Other troubleshooting steps + +Are things still not working as expected? + +* Checkout the [general troubleshooting section for Assist](/projects/troubleshooting). + +## About the analog phone + +You can use any analog landline phone with an RJ11 socket. + +The phone shown in the video by TheFes is a *Heemaf type 1955*, which was used by the Dutch telephone company PTT at the time. + +The phone used during creation of this tutorial is a 1953 [*Tischstation Mod.29 HF-TR* by Autophon AG](https://www.radiomuseum.org/r/autophon_tischstation_mod29_hf_tr.html). +![Analog phone Tischstation Mod.29 by Autophon AG](/images/assist/autophon-mod-29.jpg)