TTS to Google Home Mini Stopped Working After Update

I recently updated HA for the first time (to 110.4) in quite a while. After the update, my TTS stopped working. I use Alexa devices for speech commands, but have a couple of Google Home Minis that I use just for TTS (the microphones on the Home Minis are turned off). Whenever I try to use TTS, I hear the beep that normally precedes TTS, but then nothing.

I checked my tts folder in config, and it contains correct the .mp3 files, but they are not playing on the Home Minis.

My config: I run HA on an X86_64 PC running Ubuntu 18.04. HA is in a docker container, which I start with Docker Compose.

After I updated HA, I deleted and reinstalled Google Cast integration, to see if that would solve the problem. But did not help.

I checked prior posts similar to mine, but the solutions did not help. I already have my router forwarding port 8123 to HA port 8123. I have DDNS domain name with a Let’s Encrypt certificate.

My prior version of HA had base_url under the http: section. But when I updated, I saw in the log that this was deprecated, so I removed base_url from the http section.

Relevant portions of my config.yaml:

http:
  ssl_certificate: [**path**]/fullchain.pem
  ssl_key:[**path**]/privkey.pem
  ip_ban_enabled: true
  login_attempts_threshold: 5

# Text to speech
tts:
  - platform: amazon_polly
    aws_access_key_id: [**Key ID**]
    aws_secret_access_key: [**Secret Key**]
    voice: 'Joanna'
    engine: 'neural'
    service_name: amazon_polly_say
    base_url: http://[**Internal_IP_of_PC_Running_HA**]:8123

homeassistant:
  external_url: https://[**external domain name**]:8123

Anyone able to help on this one? I’m stumped.

1 Like

To update, in my TTS config I changed the base_url to an https: (instead of http:). Then, I tried to use TTS again. Nothing. But immediately after trying, I went into Developer Tools, States, and looked at the media_player entity for the Home mini. In the attributes column, this is what it listed:

volume_level: 0.699999988079071
is_volume_muted: false
media_content_id: https://[*internal_ip_of_HA_PC*]:8123/api/tts_proxy/3b2f8a70c7a5d9bb2358d88ec9ce69fbb4a9beeb_en-us_757045486127651831_amazon_polly.mp3
media_position: 0
media_position_updated_at: 2020-06-01T17:45:27.612094+00:00
app_id: CC1AD845
app_name: Default Media Receiver
entity_picture_local: null
friendly_name: Office speaker
supported_features: 21391

Using a laptop (not the HA computer), I copied the media_content_id and pasted it into my browser. When I did so, it played the audio file that was supposed to be played by the Google Home Mini. Thus, Amazon Polly is creating the media file and any pc can play it using the media_content_id.

Not sure at all why the Home Mini devices don’t play it.

Well, I finally solved this. Just thought I would post it in case someone else has the same problem.

What finally worked is, in the TTS section of my config.yaml, I changed base_url to my external domain name (followed by port).

I was surprised that this did the trick, since the HA TSS page says that you should use an internal ip address for Google Cast devices. But I will take the resolution.

1 Like

Hi
Thanks for the solution,
it seems that few of us have this problem.
regards