Home Assistant Voice PE - "The voice assistant is unable to connect to Home Assistant"

My Home Assistant Voice PE has just arrived, but I’m unfortunately falling at a relatively early hurdle.

It is found as a new device in HA and added. It’s on the WiFi, and I think it has done its update, then I get “hello” quickly followed by “The voice assistant is unable to connect to Home Assistant” dialog. The “Help Me” link takes me to Troubleshooting Assist - Home Assistant but everything on that page assumes it is already added as a voice assistant, but that’s not the case for me.

To sum up, it is setup as a device in the ESPHome integration, but not as a Voice Assistant. It will wake on “OK Nabu”, but doesn’t respond to any questions, not even with any sort of “I can’t contact Home Assistant” etc.

Things I’ve tried so far in various combinations:

  • Reloading the device from ESPHome and setting it up again
  • Deleting device from ESPHome and trying again from mobile
  • Deleting device from ESPHome and trying again from PC browser
  • ESPHome “configure”, “Allow the device to perform Home Assistant actions”
  • Factory reset by long hold on button then trying again
  • Updated to beta firmware (from 24.12.8 to 25.1.0)
  • Restart Home Assistant

When I delete the device, the hardware shows pulsing red LEDs, so it is actually aware of the connection/disconnection at some level.

I am running Home Assistant full OS install, as a VM, with its own IP.

  • Core 2024.12.5
  • Supervisor 2024.12.0
  • Operating System 14.1
  • Frontend 20241127.8

My network is Unifi.

Phone attempting onboarding (iPhone) is on same WiFi network to one adding device to. I don’t have access to an Android to try at the moment.

Screenshot 2025-01-03 105416

Any suggestions gratefully received!

I’ve got the exact same problem and tried the same things to no avail :frowning:
I was thinking it was related to running it in docker on my homelab, but seeing as you have the hassio install I guess that might not be the issue for me then.

The link “help me” link in the error message leads to a section indicating the issue might be the local url for home assistant. This was set incorrectly for me (auto doesn’t work for docker install) but setting it to a valid url where homeassistant can be reached on the local network didn’t fix it for me.

Other threads here indicate possible issues with TLS, but if the local url is used it’s http, not https so that shouldn’t be the case either.

I have also today received Voice Assistant
During the weekend I’am going to test it, will back here with the results
Also, have HAOS, but on RPi5

Local network config was actually it for me - thank you very much Dan - hope you get yours sussed.

I had left the previous IP address for Home Assistant bare metal before I virtualised it. Corrected that, removed it from ESPHome, restarted Home Assistant and factory reset the device (don’t know if all those steps were necessary) and it added OK now!

Do you have multiple VLANs in your network?
I have separate IoT VLAN with 2,4GHz WiFi, where my Voice Assistant PE is connected.
HA server listening for the users (mobile apps) in another VLAN.
So my local URL for mobile app is NOT the same that should be used by HAVAPE.

Does anyone know how to specify the HA local URL for Voice Assistant only?
I’ve “took control” by connecting it directly to ESP Home, but there was no URL in the (default) config file.

Kind Regards,
Kacper

I do have other VLANs but, these were not involved for this.

As mentioned, mine is fixed now but updating server IP address.

I do have multiple VLANs, but the voice assistant is (currently) on the same VLAN as the machine hosting HA.

And now I may have (temporarily?) bricked my device.
Updating the device firmware – Home Assistant Voice Preview Edition links to Ready-Made Projects — ESPHome for “recompiling” the device. So I tried flashing the ESP32-S3-BOX-3, but that seems to have been a mistake as that doesn’t boot. So… Don’t try that.

I fixed mine by going to settings->network->home assistant url and making sure local is set to automatic. My Voice PE is on a different VLAN

Managed to find the correct installer for the Voice PE here: Home Assistant Voice PE so I’ve unbricked the device and i’m back to where I started, but now with logs:

[13:40:22][D][micro_wake_word:379]: Starting wake word detection
[13:40:22][D][light:036]: 'voice_assistant_leds' Setting:
[13:40:22][D][light:047]:   State: OFF
[13:40:22][D][light:109]:   Effect: 'None'
[13:40:22][D][i2s_audio.microphone:377]: Starting I2S Audio Microphne
[13:40:22][D][i2s_audio.microphone:381]: Started I2S Audio Microphone
[13:40:22][D][micro_wake_word:417]: State changed from IDLE to DETECTING_WAKE_WORD
[13:40:25][D][light:036]: 'voice_assistant_leds' Setting:
[13:40:25][D][light:047]:   State: ON
[13:40:25][D][light:051]:   Brightness: 66%
[13:40:25][D][light:109]:   Effect: 'Replying'
[13:40:25][D][media_player:080]: 'Media Player' - Setting
[13:40:25][D][media_player:087]:   Media URL: http://192.168.1.67:8123/api/esphome/ffmpeg_proxy/a444e7685385ea130f4b9516893f4876/DkLnEZjm6-KPrg6XM2R-nQ.flac
[13:40:25][D][media_player:093]:  Announcement: yes
[13:40:25][D][voice_assistant:515]: State changed from IDLE to STREAMING_RESPONSE
[13:40:25][D][voice_assistant:522]: Desired state set to STREAMING_RESPONSE
[13:40:25][D][ring_buffer:034]: Created ring buffer with size 48000
[13:40:25][D][ring_buffer:034]: Created ring buffer with size 48000
[13:40:25][D][ring_buffer:034]: Created ring buffer with size 65536
[13:40:25][D][ring_buffer:034]: Created ring buffer with size 65536
[13:40:25][D][power_supply:033]: Enabling power supply.
[13:40:25][D][nabu_media_player.pipeline:173]: Reading FLAC file type
[13:40:30][E][nabu_media_player:305]: The announcement pipeline's file reader encountered an error.
[13:40:30][D][voice_assistant:515]: State changed from STREAMING_RESPONSE to IDLE
[13:40:30][D][voice_assistant:522]: Desired state set to IDLE
[13:40:30][D][light:036]: 'voice_assistant_leds' Setting:
[13:40:30][D][light:047]:   State: OFF
[13:40:30][D][light:109]:   Effect: 'None'
[13:40:40][D][power_supply:048]: Disabling power supply.

Nothing indicating an actual connection issue there… But trying to download the requested URL manually gives a 200 response code with a 0 byte response body. Feels like some timeout somewhere casue the 200 response code is returned immediately but then the it takes pretty much exactly 5 seconds before the connection is closed with 0 bytes body.

gnux@VRRR:~$ time curl -vvv http://192.168.1.67:8123/api/esphome/ffmpeg_proxy/a444e7685385ea130f4b9516893f4876/DkLnEZjm6
-KPrg6XM2R-nQ.flac
*   Trying 192.168.1.67:8123...
* Connected to 192.168.1.67 (192.168.1.67) port 8123 (#0)
> GET /api/esphome/ffmpeg_proxy/a444e7685385ea130f4b9516893f4876/DkLnEZjm6-KPrg6XM2R-nQ.flac HTTP/1.1
> Host: 192.168.1.67:8123
> User-Agent: curl/7.81.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Transfer-Encoding: chunked
< Content-Type: application/octet-stream
< Date: Mon, 06 Jan 2025 12:56:32 GMT
< Server: Python/3.13 aiohttp/3.11.11
<
* Connection #0 to host 192.168.1.67 left intact

real    0m5.052s
user    0m0.003s
sys     0m0.000s

Debug log from esphome seem to support my theory of some sort of timeout (new attempt so URL has changed…)

2025-01-06 14:06:21.171 DEBUG (MainThread) [homeassistant.components.esphome.assist_satellite] Waiting for announcement to finished (message=, media_id=http://192.168.1.67:8123/api/assist_satellite/connection_test/d05390ab3fbefedcb84ae6be4d34ebdd?authSig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiIyNTc0OGZjYjI2NTc0NWViOWJjNmM3YjAwZWYxZWZmMiIsInBhdGgiOiIvYXBpL2Fzc2lzdF9zYXRlbGxpdGUvY29ubmVjdGlvbl90ZXN0L2QwNTM5MGFiM2ZiZWZlZGNiODRhZTZiZTRkMzRlYmRkIiwicGFyYW1zIjpbXSwiaWF0IjoxNzM2MTY4NzgxLCJleHAiOjE3MzYyNTUxODF9.Lg9gwM2AcfMhhaXBTEAhq_O95w6nNRtR2XHclspr3Lk)
2025-01-06 14:06:21.171 DEBUG (MainThread) [homeassistant.components.esphome.ffmpeg_proxy] Media URL allowed by proxy: http://192.168.1.67:8123/api/assist_satellite/connection_test/d05390ab3fbefedcb84ae6be4d34ebdd?authSig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiIyNTc0OGZjYjI2NTc0NWViOWJjNmM3YjAwZWYxZWZmMiIsInBhdGgiOiIvYXBpL2Fzc2lzdF9zYXRlbGxpdGUvY29ubmVjdGlvbl90ZXN0L2QwNTM5MGFiM2ZiZWZlZGNiODRhZTZiZTRkMzRlYmRkIiwicGFyYW1zIjpbXSwiaWF0IjoxNzM2MTY4NzgxLCJleHAiOjE3MzYyNTUxODF9.Lg9gwM2AcfMhhaXBTEAhq_O95w6nNRtR2XHclspr3Lk
2025-01-06 14:06:21.171 DEBUG (MainThread) [aioesphomeapi.connection] home-assistant-voice-096425 @ 192.168.1.153: Sending VoiceAssistantAnnounceRequest: media_id: "http://192.168.1.67:8123/api/esphome/ffmpeg_proxy/a444e7685385ea130f4b9516893f4876/iVOQM5LMGwepmscvP1p1wg.flac"

2025-01-06 14:06:21.171 DEBUG (MainThread) [aioesphomeapi._frame_helper.base] home-assistant-voice-096425 @ 192.168.1.153: Sending frame: [0070770a6e687474703a2f2f3139322e3136382e312e36373a383132332f6170692f657370686f6d652f66666d7065675f70726f78792f61343434653736383533383565613133306634623935313638393366343837362f69564f514d354c4d477765706d7363765031703177672e666c6163]
2025-01-06 14:06:21.252 DEBUG (MainThread) [homeassistant.components.esphome.ffmpeg_proxy] ffmpeg -i http://192.168.1.67:8123/api/assist_satellite/connection_test/d05390ab3fbefedcb84ae6be4d34ebdd?authSig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiIyNTc0OGZjYjI2NTc0NWViOWJjNmM3YjAwZWYxZWZmMiIsInBhdGgiOiIvYXBpL2Fzc2lzdF9zYXRlbGxpdGUvY29ubmVjdGlvbl90ZXN0L2QwNTM5MGFiM2ZiZWZlZGNiODRhZTZiZTRkMzRlYmRkIiwicGFyYW1zIjpbXSwiaWF0IjoxNzM2MTY4NzgxLCJleHAiOjE3MzYyNTUxODF9.Lg9gwM2AcfMhhaXBTEAhq_O95w6nNRtR2XHclspr3Lk -f flac -ar 48000 -ac 1 -sample_fmt s16 -map_metadata -1 -vn -nostats pipe:
2025-01-06 14:06:21.266 DEBUG (MainThread) [aioesphomeapi.connection] home-assistant-voice-096425 @ 192.168.1.153: Got message of type MediaPlayerStateResponse: key: 2232357057
state: MEDIA_PLAYER_STATE_PLAYING
volume: 0.5

2025-01-06 14:06:21.279 DEBUG (MainThread) [homeassistant.components.esphome.ffmpeg_proxy] ffmpeg[170] output: ffmpeg version 6.1.2 Copyright (c) 2000-2024 the FFmpeg developers
2025-01-06 14:06:21.279 DEBUG (MainThread) [homeassistant.components.esphome.ffmpeg_proxy] ffmpeg[170] output:   built with gcc 14.2.0 (Alpine 14.2.0)
2025-01-06 14:06:21.279 DEBUG (MainThread) [homeassistant.components.esphome.ffmpeg_proxy] ffmpeg[170] output:   configuration: --prefix=/usr --disable-librtmp --disable-lzma --disable-static --disable-stripping --enable-avfilter --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libdav1d --enable-libdrm --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-libmp3lame --enable-libopenmpt --enable-libopus --enable-libplacebo --enable-libpulse --enable-librav1e --enable-librist --enable-libsoxr --enable-libsrt --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-lto=auto --enable-lv2 --enable-openssl --enable-pic --enable-postproc --enable-pthreads --enable-shared --enable-vaapi --enable-vdpau --enable-version3 --enable-vulkan --optflags=-O3 --enable-libjxl --enable-libsvtav1 --enable-libvpl
2025-01-06 14:06:21.279 DEBUG (MainThread) [homeassistant.components.esphome.ffmpeg_proxy] ffmpeg[170] output:   libavutil      58. 29.100 / 58. 29.100
2025-01-06 14:06:21.279 DEBUG (MainThread) [homeassistant.components.esphome.ffmpeg_proxy] ffmpeg[170] output:   libavcodec     60. 31.102 / 60. 31.102
2025-01-06 14:06:21.279 DEBUG (MainThread) [homeassistant.components.esphome.ffmpeg_proxy] ffmpeg[170] output:   libavformat    60. 16.100 / 60. 16.100
2025-01-06 14:06:21.279 DEBUG (MainThread) [homeassistant.components.esphome.ffmpeg_proxy] ffmpeg[170] output:   libavdevice    60.  3.100 / 60.  3.100
2025-01-06 14:06:21.279 DEBUG (MainThread) [homeassistant.components.esphome.ffmpeg_proxy] ffmpeg[170] output:   libavfilter     9. 12.100 /  9. 12.100
2025-01-06 14:06:21.279 DEBUG (MainThread) [homeassistant.components.esphome.ffmpeg_proxy] ffmpeg[170] output:   libswscale      7.  5.100 /  7.  5.100
2025-01-06 14:06:21.279 DEBUG (MainThread) [homeassistant.components.esphome.ffmpeg_proxy] ffmpeg[170] output:   libswresample   4. 12.100 /  4. 12.100
2025-01-06 14:06:21.279 DEBUG (MainThread) [homeassistant.components.esphome.ffmpeg_proxy] ffmpeg[170] output:   libpostproc    57.  3.100 / 57.  3.100
2025-01-06 14:06:26.271 DEBUG (MainThread) [homeassistant.components.esphome.ffmpeg_proxy] ffmpeg transcoding cancelled
2025-01-06 14:06:26.284 DEBUG (MainThread) [aioesphomeapi.connection] home-assistant-voice-096425 @ 192.168.1.153: Got message of type MediaPlayerStateResponse: key: 2232357057
state: MEDIA_PLAYER_STATE_IDLE
volume: 0.5
2025-01-06 14:06:26.326 DEBUG (MainThread) [aioesphomeapi.connection] home-assistant-voice-096425 @ 192.168.1.153: Got message of type VoiceAssistantAnnounceFinished: success: true

“ffmpeg transcoding cancelled” after 5 seconds. So some issue with ffmpeg.

I’m having same issue, are my debug log what could be I doing wrong ?

2025-01-07 14:13:17.786 DEBUG (MainThread) [aioesphomeapi.connection] home-assistant-voice-090ee0 @ 192.168.3.23: Sending UpdateCommandRequest: key: 168699454
command: UPDATE_COMMAND_CHECK

2025-01-07 14:13:17.786 DEBUG (MainThread) [aioesphomeapi._frame_helper.base] home-assistant-voice-090ee0 @ 192.168.3.23: Sending frame: [0007760d3e260e0a1002]
2025-01-07 14:13:19.662 DEBUG (MainThread) [aioesphomeapi.connection] home-assistant-voice-090ee0 @ 192.168.3.23: Got message of type UpdateStateResponse: key: 168699454
current_version: "25.1.0"
latest_version: "25.1.0"
title: "Nabu Casa.Home Assistant Voice PE"
release_summary: "## What\'s Changed\r\n* Bugfix: Avoid crashing when started without internet access"
release_url: "https://github.com/esphome/home-assistant-voice-pe/releases/tag/25.1.0"

2025-01-07 14:13:22.803 DEBUG (MainThread) [homeassistant.components.esphome.assist_satellite] Waiting for announcement to finished (message=, media_id=https://homeassistant.local:8123/api/assist_satellite/connection_test/67f8454279f9673d2f7d6bb48ad6875b?authSig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiIwYzU3NzIzOWNjZGY0MDU2YWNkNzc0ZTcxMjllNzFlNSIsInBhdGgiOiIvYXBpL2Fzc2lzdF9zYXRlbGxpdGUvY29ubmVjdGlvbl90ZXN0LzY3Zjg0NTQyNzlmOTY3M2QyZjdkNmJiNDhhZDY4NzViIiwicGFyYW1zIjpbXSwiaWF0IjoxNzM2MjU5MjAyLCJleHAiOjE3MzYzNDU2MDJ9.tbMLyiHRFVtp7-jX72vSRJLU88TJWqvtLE4bJckgWuc)
2025-01-07 14:13:22.803 DEBUG (MainThread) [homeassistant.components.esphome.ffmpeg_proxy] Media URL allowed by proxy: https://homeassistant.local:8123/api/assist_satellite/connection_test/67f8454279f9673d2f7d6bb48ad6875b?authSig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiIwYzU3NzIzOWNjZGY0MDU2YWNkNzc0ZTcxMjllNzFlNSIsInBhdGgiOiIvYXBpL2Fzc2lzdF9zYXRlbGxpdGUvY29ubmVjdGlvbl90ZXN0LzY3Zjg0NTQyNzlmOTY3M2QyZjdkNmJiNDhhZDY4NzViIiwicGFyYW1zIjpbXSwiaWF0IjoxNzM2MjU5MjAyLCJleHAiOjE3MzYzNDU2MDJ9.tbMLyiHRFVtp7-jX72vSRJLU88TJWqvtLE4bJckgWuc
2025-01-07 14:13:22.804 DEBUG (MainThread) [aioesphomeapi.connection] home-assistant-voice-090ee0 @ 192.168.3.23: Sending VoiceAssistantAnnounceRequest: media_id: "https://homeassistant.local:8123/api/esphome/ffmpeg_proxy/c89bf8cec43e1ff9efc41f31daf14e0d/tcSjoNShRvVLih3woqweKw.flac"

2025-01-07 14:13:22.804 DEBUG (MainThread) [aioesphomeapi._frame_helper.base] home-assistant-voice-090ee0 @ 192.168.3.23: Sending frame: [0078770a7668747470733a2f2f686f6d65617373697374616e742e6c6f63616c3a383132332f6170692f657370686f6d652f66666d7065675f70726f78792f63383962663863656334336531666639656663343166333164616631346530642f7463536a6f4e53685276564c696833776f7177654b772e666c6163]
2025-01-07 14:13:22.958 DEBUG (MainThread) [aioesphomeapi.connection] home-assistant-voice-090ee0 @ 192.168.3.23: Got message of type MediaPlayerStateResponse: key: 2232357057
state: MEDIA_PLAYER_STATE_PLAYING
volume: 0.499999881

2025-01-07 14:13:23.395 DEBUG (MainThread) [aioesphomeapi.connection] home-assistant-voice-090ee0 @ 192.168.3.23: Got message of type MediaPlayerStateResponse: key: 2232357057
state: MEDIA_PLAYER_STATE_IDLE
volume: 0.499999881

2025-01-07 14:13:23.441 DEBUG (MainThread) [aioesphomeapi.connection] home-assistant-voice-090ee0 @ 192.168.3.23: Got message of type VoiceAssistantAnnounceFinished: success: true

2025-01-07 14:13:23.448 DEBUG (MainThread) [aioesphomeapi.connection] home-assistant-voice-090ee0 @ 192.168.3.23: Got message of type LightStateResponse: key: 1459351809
state: true
brightness: 0.66
red: 0.099051632
green: 0.772392
blue: 1
white: 1
color_brightness: 1
color_mode: 35
cold_white: 1
warm_white: 1

2025-01-07 14:13:23.458 DEBUG (MainThread) [aioesphomeapi.connection] home-assistant-voice-090ee0 @ 192.168.3.23: Got message of type LightStateResponse: key: 1459351809
state: true
brightness: 0.66
red: 0.099051632
green: 0.772392
blue: 1
white: 1
color_brightness: 1
color_mode: 35
cold_white: 1
warm_white: 1

2025-01-07 14:13:59.880 DEBUG (MainThread) [aioesphomeapi.connection] home-assistant-voice-090ee0 @ 192.168.3.23: Sending PingRequest: 
2025-01-07 14:13:59.880 DEBUG (MainThread) [aioesphomeapi._frame_helper.base] home-assistant-voice-090ee0 @ 192.168.3.23: Sending frame: [000007]
2025-01-07 14:14:00.008 DEBUG (MainThread) [aioesphomeapi.connection] home-assistant-voice-090ee0 @ 192.168.3.23: Got message of type PingResponse: 

it seems VPE does not support HTTPS connections to HA, once I disable HTTPS in HA and reverted to HTTP, VPE setup with no issues.

same problem setting local network to either the local IP address or Automatic.

Anybody else with the same issue that managed to fix it ?

As this topic is flagged as solved I’ve started a new thread for the issues I’m seeing here: Home Assistant Voice PE "The announcement pipeline's file reader encountered an error"