Can't send TTS to LMS/Squeezebox

No it worked flawlessly. So it is strange that LMS on the same Pi is not working.

Yes, HS is running as HassOS installation on a Pi 4 and LMS is running on a piCorePlayer installation on a Pi 4.

Also, just to be sure (if using IPv4/v6 dual-stack), in your Fritz!Box, under Heimnetz → Netzwerk → Netzwerkeinstellungen → IPv6-Adressen, you should have checked:

  • Unique Local Addresses (ULA) zuweisen, solange keine IPv6-Internetverbindung besteht (empfohlen)
  • Diese FRITZ!Box stellt den Standard-Internetzugang zur VerfĂŒgung
  • DNSv6-Server auch ĂŒber Router Advertisement bekanntgeben (RFC 5006)
  • DHCPv6-Server in der FRITZ!Box fĂŒr das Heimnetz aktivieren:
    • DNS-Server, PrĂ€fix (IA_PD) und IPv6-Adresse (IA_NA) zuweisen


 if you’re not running a very special configuration.

Seems DuckDNS wouldn’t handle IPv6 anyways: From their FAQ:

Q: why can’t you detect IPv6 addresses?

A: our service is hosted in AWS, they do not support IPv6 on Elastic Load Balancers for the account type we have (VPC), when amazon do support it, we will start detecting it.

I set it to:
Unique Local Addresses (ULA) immer zuweisen

These are set like you wrote.

I don’t think so. The only thing is that I am running AdGuard in my Home Assistant installation and this is set as DNS in the Fritz!Box.

Another set of complications. So another DNS server, who knows what kind of answers that generates 
 Can’t help you there.

On your wget before, what address did it resolve to?

Looks somehow this:

Auflösen des Hostnamen »hassio.xxxxxxxxxxxxxxxx.myfritz.net (hassio.xxxxxxxxxxxxxxxx.myfritz.net)«... xxx.xxx.xx.xxx

You could probably also try this from another machine, like your Mac.

If that ever resolves to an IPv6 (or both an IPv4 and IPv6) address, LMS will most certainly not play your TTS file.

Oh sorry, I forgot to post it:

Connecting to xxxxxxxxxx.duckdns.org:8123 (xx.xxx.210.85:8123)
b0aea2edbe4ddc857176 100% |******************************************************************************************************************************************************************|  424k  0:00:00 ETA

That is my current external IPv4.

I tested the following in developertools:
Bildschirmfoto 2020-06-05 um 13.58.37

This results in this log:

2020-06-05 14:04:08 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection.2918242256] extra keys not allowed @ data['data']
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 130, in handle_call_service
    connection.context(msg),
  File "/usr/src/homeassistant/homeassistant/core.py", line 1215, in async_call
    processed_data = handler.schema(service_data)
  File "/usr/local/lib/python3.7/site-packages/voluptuous/schema_builder.py", line 272, in __call__
    return self._compiled([], data)
  File "/usr/local/lib/python3.7/site-packages/voluptuous/schema_builder.py", line 594, in validate_dict
    return base_validate(path, iteritems(data), out)
  File "/usr/local/lib/python3.7/site-packages/voluptuous/schema_builder.py", line 432, in validate_mapping
    raise er.MultipleInvalid(errors)
voluptuous.error.MultipleInvalid: extra keys not allowed @ data['data']

I don’t really know what it means. That is an example from the tts documentation.

Gonna check mine, give example, moment 


Screenshot_2020-06-05 Home Assistant
This works here (currently using PicoTTS).

I guess you should leave out the data: line since you’re already in the “data” section. And un-indent message:.

The data: (or data_template:) is when you use it in an automation.

Yes, that was correct and results in exactly nothing: No log, no speak, nothing at LMS log.

Ok. Time to go back some steps before we’re trapped in a rathole (or open the next Pandora’s box).

  1. Make a config/www folder with appropriate permissions.
  2. Restart HA (Caution: FULL restart, not “Restart” from “Server Administration”)
  3. Put a small MP3 file into the www folder.
  4. Use “Direct URL” in the LMS Web UI to try playing that from your external URI, like https://xxxxxxxxxx.duckdns.org:8123/local/mytestfile.mp3. (Don’t miss the local, it is used instead of www.)
  5. Use VLC or a browser on another machine and also try playing this file.

Let’s see the results.

Should look like this. And play.

Ok, I did it.
The www folder exists already, so the files can be uploaded:
Bildschirmfoto 2020-06-05 um 19.39.39

Then I have:

https://xxxxxxx.duckdns.org:8123/local/mymusic.mp3
https://xxxxxxx.duckdns.org:8123/local/mytestfile.mp3

The first is a real music mp3 file and the second is one of the larger tts files created with google translate.
Both are working fine on the Mac and are playing.

On LMS I switched on normal radio play to hear if it still plays something, there is sound.
Then I opened both URL:


and:

For both files the seconds are counting and the bar goes round and round, but there is absolutely no sound. I set the volume to max but nothing can be heard.

There is no error-message inside the LMS log!

So what is the difference to the “api/tts_proxy” folder? And why no sound?
I put the mytestfile.mp3 into config/tts folder, but this can not be played on the Mac.

Hmm. /api/tts_proxy/
 is special. Putting files into the tts folder doesn’t work.

Files from the local (i.e., www folder) should play.
I wonder if this could be a problem with LMS8. I use 7.9.3 here. Or maybe even PiCorePlayer, since you were mentioning you use that.

You don’t by chance use a custom-convert.conf? If so, you might try to disable this by renaming to, say, custom-convert.conf.sav and restarting LMS.

We could now start getting LMS logs, but since this is the HA community, I’d suggest you hop over to either the PiCorePlayer forum or https://forums.slimdevices.com/ and ask there. Hopefully someone more knowledgeable has a good idea how to diagnose this further.

I strongly suspect either a LMS8 or a networking issue, but it’s always difficult if you aren’Ƨ sitting in front of the systems. Sorry I couldn’t help more! Must really get a LMS8 test machine soon 


Are you running LMS8? Basically self signed certs dont work on LMS 7.9 and the patch is in LMS8 already.

Yes I am using 8. And I am using a Let‘s Encrypt certificate.

What are your external and internal URL settings? It should be similar to


Port number should be your externally visible one for both.

External URL
https://null.duckdns.org:2222

Internal URL
http://null.duckdns.org:2222

This is different, because I use the Duckdns Integration. So I can only use https and not http. If I want to go internally to my Home Assistant I have to use https://192.168.178.108:8123, so the certificate will not be valid, as it is only for names and not for IP-addresses.

These are the links that LMS was getting back in May from Home Assistant. I don’t know why. This was from the tts integration.
But now it seems that tts is not working anymore inside Home Assistant, as LMS is getting nothing. It seems that this is since HA 0.110.0.

I am doing this right now.


 a few hours later:

The solution is here:
In the LMS settings set Player/Audio/Streaming Method to “Proxied streaming” (“Streaming ĂŒber Proxy” in German, don’t know if my English translation is correct). and then it works, that’s all. :slight_smile:

I am very happy!

The only problem is a HA problem I think. After a few positive tests, I am only getting this:

2020-06-06 23:25:42 ERROR (MainThread) [homeassistant.components.google_translate.tts] Timeout for google speech
2020-06-06 23:25:42 ERROR (MainThread) [homeassistant.components.tts] Error on init TTS: No TTS from google_translate for 'Hallo'

Hey @carsten_h, happy that all the complicated rest works out for you. Proxied streaming might not always be the best bet, but as long as it works out, great! :+1:

Your new error might be either:
– There was a problem connecting to Google Translate, or
– you used the same file for testing longer than 5 minutes, and have the TTS (file) caching set to off. HA will only keep the TTS file in memory (1st cache, remember?) for a default of 300s, but you can modify this value. See cache and time_memory in the docs here: https://www.home-assistant.io/integrations/tts/

Same issues here
 Still no luck with google_say tts, LMS and pCP.
MP3 file is being generated, it’s accessible and playable via browser, LMS ‘sees’ the file and tries to play it.
But no audio output. It just starts playing ‘nothing’ forever, like a stream with no audio.
Running the latest version of LMS, pCP and squeezelite.
Any idea’s ?

Did some further testing by moving the TTS generated MP3 file to another location (amongst my music MP3’s).
LMS / Squeezelite seems to play this just fine. So there is no issue with the bitrate / encoding / 
 of the file itself.
The only difference is that it’s not played as being a stream (what HA seems to do), but as a file.