tetele / onju-voice-satellite

An ESPHome config for the Onju Voice which makes it a Home Assistant voice satellite
MIT License
105 stars 19 forks source link

Errors resolving hostname when trying to play response #44

Closed benklop closed 3 months ago

benklop commented 6 months ago

Flavor

MicroWakeWord

Checklist

Describe the issue

When I say the wakeword, (hey nabu), the speaker's lights respond, and home assistant performs the command. However, I do not hear a response. there are errors in the log that indicate a failure to resolve the hostname of my home assistant.

[18:14:58][D][esp-idf:000]: E (683339) esp-tls: couldn't get hostname for :hass.klopnet.com: getaddrinfo() returns 202, addrinfo=0x0

Reproduction steps

  1. Use a wakeword and command
  2. observe the correct response
  3. observe no reply message is uttered
  4. Find errors in log along with text of what the reply should have been ...

Debug logs

[18:14:51][D][light:036]: 'top_led' Setting:
[18:14:51][D][light:051]:   Brightness: 70%
[18:14:51][D][light:059]:   Red: 0%, Green: 20%, Blue: 100%
[18:14:51][D][light:109]:   Effect: 'processing'
[18:14:51][D][voice_assistant:439]: State changed from STOPPING_MICROPHONE to AWAITING_RESPONSE
[18:14:51][D][voice_assistant:563]: Event Type: 4
[18:14:51][D][voice_assistant:591]: Speech recognised as: "Turn off the lights."
[18:14:51][D][voice_assistant:563]: Event Type: 5
[18:14:51][D][voice_assistant:596]: Intent started
[18:14:51][D][voice_assistant:563]: Event Type: 6
[18:14:51][D][voice_assistant:563]: Event Type: 7
[18:14:51][D][voice_assistant:619]: Response: "Turned off the lights"
[18:14:51][D][voice_assistant:563]: Event Type: 8
[18:14:51][D][voice_assistant:639]: Response URL: "https://hass.klopnet.com/api/tts_proxy/85d43b448ab715eae17c0361864a34ff749eb14a_en-gb_29e3de9935_cloud.mp3"
[18:14:51][D][voice_assistant:439]: State changed from AWAITING_RESPONSE to STREAMING_RESPONSE
[18:14:51][D][voice_assistant:445]: Desired state set to STREAMING_RESPONSE
[18:14:51][D][media_player:059]: 'Onju Voice Satellite 548058' - Setting
[18:14:51][D][media_player:066]:   Media URL: https://hass.klopnet.com/api/tts_proxy/85d43b448ab715eae17c0361864a34ff749eb14a_en-gb_29e3de9935_cloud.mp3
[18:14:51][D][adf_media_player:030]: Got control call in state 1
[18:14:51][D][esp_adf_pipeline:050]: Starting request, current state STOPPED
[18:14:51][D][esp_adf_pipeline:302]: State changed from STOPPED to PREPARING
[18:14:51][I][adf_media_player:135]: got new pipeline state: 1
[18:14:51][D][adf_i2s_out:127]: Set final i2s settings: 16000
[18:14:51][D][esp_audio_processors:079]: New settings: SRC: rate: 16000, ch: 2 DST: rate: 16000, ch: 2 
[18:14:51][D][light:036]: 'top_led' Setting:
[18:14:51][D][light:059]:   Red: 20%, Green: 100%, Blue: 0%
[18:14:51][D][light:109]:   Effect: 'speaking'
[18:14:51][D][voice_assistant:563]: Event Type: 2
[18:14:51][D][voice_assistant:653]: Assist Pipeline ended
[18:14:51][D][esp-idf:000]: I (676331) AUDIO_ELEMENT: [http] AEL_MSG_CMD_RESUME,state:1

[18:14:51][D][esp-idf:000]: I (676333) AUDIO_ELEMENT: [decoder] AEL_MSG_CMD_RESUME,state:1

[18:14:51][D][esp_aud:000]: 
ERROR Fatal error: protocol.data_received() call failed.
protocol: <aioesphomeapi._frame_helper.noise.APINoiseFrameHelper object at 0x7f902fe377f0>
transport: <_SelectorSocketTransport fd=6 read=polling write=<idle, bufsize=0>>
Traceback (most recent call last):
  File "/usr/lib/python3.11/asyncio/selector_events.py", line 1009, in _read_ready__data_received
    self._protocol.data_received(data)
  File "aioesphomeapi/_frame_helper/noise.py", line 136, in aioesphomeapi._frame_helper.noise.APINoiseFrameHelper.data_received
  File "aioesphomeapi/_frame_helper/noise.py", line 163, in aioesphomeapi._frame_helper.noise.APINoiseFrameHelper.data_received
  File "aioesphomeapi/_frame_helper/noise.py", line 319, in aioesphomeapi._frame_helper.noise.APINoiseFrameHelper._handle_frame
  File "/usr/local/lib/python3.11/dist-packages/noise/state.py", line 74, in decrypt_with_ad
    plaintext = self.cipher.decrypt(self.k, self.n, ad, ciphertext)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/noise/backends/default/ciphers.py", line 13, in decrypt
    return self.cipher.decrypt(nonce=self.format_nonce(n), data=ciphertext, associated_data=ad)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "src/chacha20poly1305_reuseable/__init__.py", line 127, in chacha20poly1305_reuseable.ChaCha20Poly1305Reusable.decrypt
  File "src/chacha20poly1305_reuseable/__init__.py", line 147, in chacha20poly1305_reuseable.ChaCha20Poly1305Reusable.decrypt
  File "src/chacha20poly1305_reuseable/__init__.py", line 263, in chacha20poly1305_reuseable._decrypt_with_fixed_nonce_len
  File "src/chacha20poly1305_reuseable/__init__.py", line 273, in chacha20poly1305_reuseable._decrypt_data
cryptography.exceptions.InvalidTag
WARNING onju-voice-548058 @ 192.168.4.2: Connection error occurred: onju-voice-548058 @ 192.168.4.2: Invalid encryption key: received_name=onju-voice-548058
INFO Processing unexpected disconnect from ESPHome API for onju-voice-548058 @ 192.168.4.2
WARNING Disconnected from API
INFO Successfully connected to onju-voice-548058 @ 192.168.4.2 in 0.004s
INFO Successful handshake with onju-voice-548058 @ 192.168.4.2 in 0.055s
[18:14:58][D][esp-idf:000]: E (683339) esp-tls: couldn't get hostname for :hass.klopnet.com: getaddrinfo() returns 202, addrinfo=0x0

[18:14:58][D][esp-idf:000]: E (683343) esp-tls: Failed to open new connection

[18:14:58][D][esp-idf:000]: E (683348) TRANSPORT_BASE: Failed to open a new connection

[18:14:58][D][esp-idf:000]: E (683352) HTTP_CLIENT: Connection failed, sock < 0

[18:14:58][D][esp-idf:000]: E (683356) HTTP_STREAM: Failed to open http stream

[18:14:58][D][esp-idf:000]: E (683359) AUDIO_ELEMENT: [http] AEL_STATUS_ERROR_OPEN,28674

[18:14:58][D][esp-idf:000]: W (683363) AUDIO_ELEMENT: [http] audio_element_on_cmd_error,7

[18:14:58][D][esp-idf:000]: W (683368) AUDIO_ELEMENT: IN-[decoder] AEL_IO_ABORT

[18:14:58][D][esp-idf:000]: E (683371) MP3_DECODER: failed to read audio data (line 117)

[18:14:58][D][esp-idf:000]: W (683375) AUDIO_ELEMENT: [decoder] AEL_IO_ABORT, -3

[18:14:58][D][esp-idf:000]: I (683380) MP3_DECODER: Closed

[18:15:01][I][esp_adf_pipeline:185]: Pipeline preparation timeout!
[18:15:01][D][esp-idf:000]: W (686307) AUDIO_PIPELINE: Without stop, st:1

[18:15:01][D][esp_adf_pipeline:302]: State changed from PREPARING to STOPPING
[18:15:01][I][adf_media_player:135]: got new pipeline state: 4
[18:15:01][D][esp_adf_pipeline:302]: State changed from STOPPING to STOPPED
[18:15:01][I][adf_media_player:135]: got new pipeline state: 5
benklop commented 6 months ago

I suspect the issue is the colon preceding the hostname