I tried debugging the setup step of my HA Voice Preview Edition on the homeassistant side and go tno errors (as seen on How to debug Home Assistant Voice setup?).
I have Firmware: 25.12.1 (ESPHome 2025.12.1)
Then, I debugged the HA hardware via serial and got this while setting it up by clicking “Set up voice assistant”:
[D][voice_assistant:478]: State changed from STREAMING_RESPONSE to RESPONSE_FINISHED
[D][voice_assistant:485]: Desired state set to RESPONSE_FINISHED
[D][voice_assistant:478]: State changed from RESPONSE_FINISHED to IDLE
[D][voice_assistant:485]: Desired state set to IDLE
[D][light:090]: 'voice_assistant_leds' Setting:
[D][light:103]: State: OFF
[D][light:164]: Effect: 'None'
[D][light:090]: 'LED Ring' Setting:
[D][esp32.preferences:149]: Writing 1 items: 1 cached, 0 written, 0 failed
[D][esp-idf:000][update_task]: E (826697) esp-tls: [sock=61] select() timeout
[D][esp-idf:000][update_task]: E (826697) esp-tls: Failed to open new connection
[D][esp-idf:000][update_task]: E (826697) transport_base: Failed to open a new connection
[D][esp-idf:000][update_task]: E (826697) HTTP_CLIENT: Connection failed, sock < 0
[E][component:362][update_task]: http_request set Error flag: unspecified
[E][http_request.idf:128][update_task]: HTTP Request failed: ESP_ERR_HTTP_CONNECT
[E][http_request.update:052][update_task]: Failed to fetch manifest from https://firmware.esphome.io/home-assistant-voice-pe/home-assistant-voice/manifest.json
[E][component:379]: http_request cleared Error flag
[D][light:090]: 'voice_assistant_leds' Setting:
[D][light:103]: State: ON
[D][light:078]: Brightness: 66%
[D][light:164]: Effect: 'Replying'
[D][media_player:096]: 'Media Player' - Setting
[D][media_player:100]: Command: ENQUEUE
[D][media_player:103]: Media URL: http://172.18.0.2:8123/api/esphome/ffmpeg_proxy/.../gINih0SLEEG-EqaY91XZew.flac
[D][media_player:109]: Announcement: yes
[D][voice_assistant:478]: State changed from IDLE to STREAMING_RESPONSE
[D][voice_assistant:485]: Desired state set to STREAMING_RESPONSE
[E][http_media_source:111]: Cannot play 'http://172.18.0.2:8123/api/esphome/ffmpeg_proxy/.../gINih0SLEEG-EqaY91XZew.flac' on pipeline 1: pipeline is busy
[E][speaker_source_media_player:437]: Pipeline 1: Failed to play URI: http://172.18.0.2:8123/api/esphome/ffmpeg_proxy/e65d65117ffb3f8514024dbfa0be851a/gINih0SLEEG-EqaY91XZew.flac
[D][voice_assistant:478]: State changed from STREAMING_RESPONSE to RESPONSE_FINISHED
[D][voice_assistant:485]: Desired state set to RESPONSE_FINISHED
[D][voice_assistant:478]: State changed from RESPONSE_FINISHED to IDLE
[D][voice_assistant:485]: Desired state set to IDLE
[D][light:090]: 'voice_assistant_leds' Setting:
[D][light:103]: State: OFF
[D][light:164]: Effect: 'None'
[D][light:090]: 'LED Ring' Setting:
Again, no errors on docker logs -t homeassistant, neither on HA logs page.
The HTTP request for the manifest does not always happen when I click Set up. I’m assuming it can work without this, as it’s a completely local device.
PS: I enabled internet access and and https connection worked, which proves it’s not the problem. Then, the problem with the pipeline still remains
I think the manifest request is it trying to update firmware. The voice assistant is local but by default it still pulls firmware from GitHub. Even provided yaml will grab file from GitHub during compile but in that case it will be server pulling file.
The flac file looks like it’s from docker ip
Check the ha >> settings >> systems >> network >> local network address
The address in HA is 172.18.0.2 which is in the logs. Also, I just spoke something and the device communicated a lot with docker. I saw a lot of hex numbers in docker logs when I spoke, and I also got my phrase back on the serial output of the HA, so communication is working.
Serial from HA PE device with the phrase and then a failure on pipeline:
[D][light:164]: Effect: 'Waiting for Command'
[D][file_media_source:188]: Pipeline 1 stopping
[D][file_media_source:193]: Pipeline 1 stopped
[D][file_media_source:320][FileDecode_1]: Pipeline 1 decoding finished
[D][speaker_source_media_player:367]: State changed to IDLE
[D][speaker_mixer:436]: Stopping speaker mixer
[D][voice_assistant:624]: Event Type: 11
[D][voice_assistant:827]: Starting STT by VAD
[D][light:090]: 'voice_assistant_leds' Setting:
[D][light:078]: Brightness: 66%
[D][light:164]: Effect: 'Listening For Command'
[D][voice_assistant:624]: Event Type: 12
[D][voice_assistant:831]: STT by VAD end
[D][voice_assistant:478]: State changed from STREAMING_MICROPHONE to STOP_MICROPHONE
[D][voice_assistant:485]: Desired state set to AWAITING_RESPONSE
[D][light:090]: 'voice_assistant_leds' Setting:
[D][light:078]: Brightness: 66%
[D][light:164]: Effect: 'Thinking'
[D][voice_assistant:478]: State changed from STOP_MICROPHONE to STOPPING_MICROPHONE
[D][voice_assistant:478]: State changed from STOPPING_MICROPHONE to AWAITING_RESPONSE
[D][voice_assistant:624]: Event Type: 4
[D][voice_assistant:663]: Speech recognised as: "Test turn to test turn do."
[D][voice_assistant:624]: Event Type: 5
[D][voice_assistant:668]: Intent started
[D][voice_assistant:624]: Event Type: 6
[D][voice_assistant:624]: Event Type: 7
[D][voice_assistant:721]: Response: "Sorry, I am not aware of any device called Test turn"
[D][voice_assistant:624]: Event Type: 8
[D][voice_assistant:743]: Response URL: "http://172.18.0.2:8123/api/tts_proxy/iCR4M4kUlde9amiBhM1npw.flac"
[D][voice_assistant:478]: State changed from AWAITING_RESPONSE to STREAMING_RESPONSE
[D][voice_assistant:485]: Desired state set to STREAMING_RESPONSE
[D][voice_assistant:624]: Event Type: 2
[D][voice_assistant:766]: Assist Pipeline ended
[D][light:090]: 'voice_assistant_leds' Setting:
[D][light:078]: Brightness: 66%
[D][light:164]: Effect: 'Replying'
[D][media_player:096]: 'Media Player' - Setting
[D][media_player:103]: Media URL: http://172.18.0.2:8123/api/tts_proxy/iCR4M4kUlde9amiBhM1npw.flac
[D][media_player:109]: Announcement: yes
[E][http_media_source:111]: Cannot play 'http://172.18.0.2:8123/api/tts_proxy/iCR4M4kUlde9amiBhM1npw.flac' on pipeline 1: pipeline is busy
[E][speaker_source_media_player:437]: Pipeline 1: Failed to play URI: http://172.18.0.2:8123/api/tts_proxy/iCR4M4kUlde9amiBhM1npw.flac
[D][voice_assistant:478]: State changed from STREAMING_RESPONSE to RESPONSE_FINISHED
[D][voice_assistant:485]: Desired state set to RESPONSE_FINISHED
[D][voice_assistant:478]: State changed from RESPONSE_FINISHED to IDLE
[D][voice_assistant:485]: Desired state set to IDLE
[D][light:090]: 'voice_assistant_leds' Setting:
[D][light:103]: State: OFF
[D][light:164]: Effect: 'None'
[D][light:090]: 'LED Ring' Setting:
PS: I don’t have piper, wyoming, etc, I don’t even know what these are, neither HAVPE. I’m just following the getting started tutorial
I’ m using a custom setup where the esp is connected to a hotspot and the hotspot has (or should) proper iptables routes to the docker.
Yes, I didn’t hear back on the speaker, but it was able to communicate back and forth. Why would it fail just on the last step, which is downloading the flac file?
For it to send the voice back, and for me to be able to set the led lights form home assistant, bi directional communication should be working.
Because based on what you said I’m guessing it’s your network
Connect your laptop same as HAVPE and download the file using that address. If it works, there may be another issue. If it does not work, it’s the network
You seem to not want to believe me when I say
Everything else does not care about that local network address as they are using esphome api or mdns. It is only the voice response that cares because it wants to download media and media is served from HA using that local network address
Were you gonna keep this little nugget all to yourself?
Didn’t think it relevant.