squeezeboxSpeak does not speak

Hi there,

i just want to use the squeezeboxspeak action, but it does not work as expected. I got no error and the playing squeezebox drop the current stream, goes for a while silent (This should the moment where the box should say something) and then resumes to the playing stream.

I have no idea why there is no output. Someone any ideas?


This was an issue that was discussed in the old Google group forums…

Its to do with the way Google has changed their TTS service. There was someone working on a fix, I guess it will be available in the next release…

See here:

I added a fix, but the pull request hasn’t been merged yet. There is a .jar attached in the above discussion that will work for you until it is added. (https://groups.google.com/group/openhab/attach/41f0e2bdc391/org.openhab.action.squeezebox-1.8.0-SNAPSHOT.jar?part=0.1&authuser=0)


Thanks, now it is working


It used to work on my site after using Greg’s fixed Jar (Thank you Greg!).
Unfortunately the issue has returned and Google is giving me a 503 again. Anyone else has this issue (again)?


Got no 503 Error, but i am back to start. Current stream is on hold some seconds silence and than the stream rsumes.


Exactly my problem (using a Squeezebox receiver)!
And when I looked closer (via the SqueezePlay player on my Mac) I saw a 503 Service unavailable.

I also noticed a problem with the squeezeboxspeak action and it appears the Google TTS services is failing once in a while. When it happens the following output is written to the LMS log file:

[15-11-01 11:02:51.6133] Slim::Utils::Scanner::Remote::__ANON__ (240) Error: Can't connect to remote server to retrieve playlist for, http://translate.google.com/translate_tts?tl=nl&ie=UTF-8&client=openhab&q=tussendeur%20hal%20staat%20nog%20open: 503 Service Unavailable.

This happens with the 1.8 snapshot of the binding.

It would be nice not having to rely on Google’s external text-to-speech service and a alternative, perhaps local text-to-speech can be configured.

I am also getting the 503 error. I agree that it would be better not to rely on google TTS.

I would much prefer if there was a way to supply my own mp3/wav file that contains the announcement I would like to make. Is there any way that could be implemented easily as an alternative to TTS?

Would squeezeboxPlayUrl work for that?

not without the ability to restore the previous playlist, volume, and player state. that is what I really love about the squeezeboxspeak action…

Perhaps you could propose a new action method signature that would restore the previous state, and if it’s possible, someone could make a pull request? Sorry I didn’t search if this is covering old ground or what the limitations are…


any news about this? I have the same problem. Or has anyone another Solution?

Found it here: GoogleTTS responding with 503 error (even after the URL fix)


I have read through the various forum posts and still can not solve this issue. The TTS URL is working ok when checked manually. The binding is v.1.8.1. The action is the same version and referenced in the rules file.

However every time the rule is called I get this error message in the openhab log…

“Error during the execution of rule ‘Test Squeezebox Speak’: The name ‘String’ cannot be resolved to an item or type.”

I am using the command - squeezeboxSpeak(“Kitchen”, “Smart house test”).
I have comms with both server and squeeze boxes with openhab.

Any ideas would be appreciated.


That sounds like a syntax error in your rule. Could you provide your rule file contents here?


My rule is here…

// Squeezebox Speak Test
rule "Squeezebox Speak"
Item TiminLounge changed
squeezeboxSpeak(“Kitchen”, “Smart house test”)

What do you think?

Is there more content in this .rules file than just the rule you provided?

This is the contents of the entire rules file. Admittedly there was more unnecessary rules present and another squeezebox speak command buried at the bottom which may have been causing the issue.

Now there are no errors but I can’t see the rule executing either.

import org.openhab.core.library.types.*
import org.openhab.core.persistence.*
import org.openhab.model.script.actions.*
import org.openhab.action.squeezebox.*
import org.openhab.io.squeezeserver.*
import org.openhab.io.multimedia.tts.googletts.*

// Squeezebox Speak Test
rule "Squeezebox Speak"
Item TiminLounge changed
squeezeboxSpeak(“Kitchen”, “Smart house test”)

If the above is the entirety of your .rules file, then none of your import statements are needed. Imports aren’t needed for invoking Actions. You would only need to import org.openhab.core.library.types.* if you were directly using types like DecimalType, StringType, etc. In openHAB 2, even that import is no longer needed.

If, after stripping your rules file down the bare minimum the action is still not working, then there may be a problem with the squeeze: configuration lines in your .cfg file. You could add logInfo("speak", "before call") and logInfo("speak", "after call") around your squeezeboxSpeak action call to see if the rule is even being invoked.