core: tts.google_translate_say no longer works with Google Home
The problem
When I call the service “tts.google_translate_say” GH acknowledges it (makes sound) but no message is played.
Environment
- Home Assistant Core release with the issue: 0.113
- Last working Home Assistant Core release (if known): Been happening for a while
- Operating environment (OS/Container/Supervised/Core): Container
- Integration causing this issue: Text-to-Speech (TTS)
- Link to integration documentation on our website: https://www.home-assistant.io/integrations/tts/
Problem-relevant configuration.yaml
Select “Developer Tools” > “Services” tts.google_translate_say
cache: 'false'
message: 'hey there'
entity_id: media_player.bedroom_1_display
Traceback/Error logs
Additional information
About this issue
- Original URL
- State: closed
- Created 4 years ago
- Comments: 37 (22 by maintainers)
OK. Got it, with thanks to @hmmbob. Turns out your original comments about “NAT Hairpin” applied to my recent DNS change that forced all traffic (internal and external) to the external IP address. Once I changed to forcing internal and external http requests to be directed to the external interface additional routing was needed to allow port 8123 from internal sources to be routed. The external ones were already being forwarded through my firewall, but the case of something arriving at the firewall from an internal source that then wanted to get back to an internal destination was not covered at my (externally focused) firewall. Fixed that and everything popped up right away. THANKS ALL.
@hmmbob - Thanks - the explanation and helping to narrow it down to routing or certificates helps quite a bit. And @MyNameIzApple, it’s good to hear a success case. Two follow-on questions. The routing that has to happen is just to get packets from an internal device (Google Mini) directed to FQDN:8123 to resolve that address to the external IP address, and then successfully get those packets to that address:port, right? No port translation, etc… Second, just for the record, a Google Mini accepts Let’s Encrypt certs and cert authority (DST Root), right? It’s this latter point that seems like the highest probability of problem, since everything else on my network is happy with the routing and certs.
So when I suggested to inspect
external_urlandbase_url, I handed you the correct solution? Add port number there and issue can be closed 😃 You’re welcome.It used to work until a few versions ago. I didn’t actually pay much attention to it when it stopped working… so I didn’t take note of the exact version number.
for the %20 issue: a fix has been PR’ed by Frenck: https://github.com/home-assistant/core/issues/38339#issuecomment-667106924 and https://github.com/home-assistant/core/pull/38429
Please provide your actual configuration. Did you set the
external_urlandbase_urlsettings, as directed by the documentation?https://www.home-assistant.io/integrations/tts/