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.
I’ve got the exact same problem and tried the same things to no avail
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.
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.
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