TTS with Denon home 350 speaker

I have a Denon 350 speaker that is connected to home assistant via the Heos integration. I can control it via home assistant without any problems, I can however not get it to work with tts.

When I try this, I get no error, but nothing happens at all:

When the speaker is playing music, the music stops. In home assistant I see that the currently playing song changes to “Url Stream”

I found this issues which seems pretty simmiliar:

In that issue they mention that you should configure the internal and external url of home assistant properly, but I’m not sure how to do that.

I have a domain, something like https://home.somedomain.com with certificates. I can reach my home assistant instance both when I’m on my network and from the internet on that url. When I set that url as external and internal URL, I get no error, but also no sound from the speaker. When I try to set the internal address to the ip address of HA, I immediately get a error that reads like this:

“Invalid local network URL
You have configured an HTTPS certificate in Home Assistant. This means that your internal URL must be set to a domain that falls under the certificate.”

Any idea what I should do to get the Denon speaker to work?

Update: I just noticed that when testing the tts service, mp3 files are placed in the tts directory of home assistant, for instance in a file called tts/f585384562f1c9c0c7711b1cc8c5ae3c0ac8141d_nl_-_google_translate.mp3
so now the question seems to be how to send these to the Denon speaker. I already noticed that you cant just acces them on https://home.somedomain.com/tts/f585384562f1c9c0c7711b1cc8c5ae3c0ac8141d_nl_-_google_translate.mp3, that just returns a 404

Update 2: The file is accessible on https://home.somedomain.com/api/tts_proxy/f585384562f1c9c0c7711b1cc8c5ae3c0ac8141d_nl_-_google_translate.mp3, both when I’m on my network and from the internet

Made a bit more progress today.

I started to try to get the tts file playing on the speaker by using this:

action: media_player.play_media
target:
  entity_id: media_player.keuken
data:
  media_content_id: https://home.somedomain.com/api/tts_proxy/f585384562f1c9c0c7711b1cc8c5ae3c0ac8141d_nl_-_google_translate.mp3
  media_content_type: music

that did not work, eventhough I can play that mp3 file when using a browser. I then tried the same thing with the internal HA url: https://192.168.2.177:8123/api/tts_proxy/f585384562f1c9c0c7711b1cc8c5ae3c0ac8141d_nl_-_google_translate.mp3
That didn’t work either (I can visit that URL in my browser, but with a certificate warning)

I then searched for a mp3 I could use for testing somewhere on the web, and found one that I then used in this config:

action: media_player.play_media
target:
  entity_id: media_player.keuken
data:
  media_content_id: https://file-examples.com/storage/fe36b23e6a66fc0679c1f86/2017/11/file_example_MP3_700KB.mp3
  media_content_type: music

That does work, so the problem seems to be that the Denon speaker can’t properly access the tts files on the HA url, not quite sure what the problem is there :thinking:

At least I now know 2 things:

  • HA can access the TTS service and gets a mp3 file
  • The Denon speaker can play mp3 files from a url