squeezeboxSpeak does not speak

Still no luck. It seems the rule is not now executing which it was before. Not quite sure why?

This is not my rules file:

// Squeezebox Speak Test
rule "Squeezebox Speak"
when
Item TiminLounge changed
then
logInfo(“speak”, “before call”)
squeezeboxSpeak(“Kitchen”, “Smart house test”)
logInfo(“speak”, “after call”)
end

This is the squeezebox section in my cfg file:

################################## Squeezebox Binding #################################

Host address of your Logitech Media Server

squeeze:server.host=192.168.1.5
squeeze:server.cliport=9090
squeeze:server.webport=9000

squeeze:ttsurl=http://translate.google.com/translate_tts?tl=en&ie=UTF-8&client=openhab&q=%s
squeeze:ttsmaxsentencelength=100

Id (MAC address) of your first Squeezebox

squeeze:.id=00:04:20:16:16:8d

Id (MAC address) of your nth Squeezebox

squeeze:.id=00:04:20:18:1c:7f

Appreciate your support so far. Any ideas on what I am doing wrong?

I don’t use the binding so I’m not sure, but the wiki page confuses me. I am doubtful that “Kitchen” is correct because I don’t see it defined anywhere. Have you tried “server” instead of “Kitchen”?

In any case, the wiki page and/or the examples in openhab_default.cfg should be reconciled with the actual implementation.

…reading the code, it looks like you would need lines like:

squeeze:Kitchen.id=00:04:20:16:16:8d
squeeze:Bedroom.id=00:04:20:18:1c:7f

It looks like you are not providing the playerId in those config lines?

Here is my proposed fix for openhab_default.cfg:


############################ Squeezebox Action and Binding ############################
#
# Host (IP address) of your Logitech Media Server
#squeeze:server.host=

# Port of CLI interface of your Logitech Media Server (optional, defaults to 9090)
#squeeze:server.cliport=

# Webport interface of the your Logitech Media Server (optional, defaults to 9000)
#squeeze:server.webport=

# TTS URL to use for generating text-to-speech voice announcements
# the URL should contain one '%s' parameter which will be substituted
# with the text to be translated (new as of openHAB 1.8)
# (defaults to Google TTS service using the URL below)
#    http://translate.google.com/translate_tts?tl=en&ie=UTF-8&client=openhab&q=%s)
# (another TTS service is http://www.voicerss.org/api/ which requires an API key)
#    https://api.voicerss.org/?key=YOURAPIKEYHERE&hl=en-gb&src=%s
#squeeze:ttsurl=

# Maximum TTS sentence length - for example the Google TTS service only
# permits up to 100 chars - the Squeezebox speak action will break long
# strings into sentence chunks call the TTS service repeatedly
# (defaults to 100)
#squeeze:ttsmaxsentencelength=

# Id (MAC address) of your first Squeezebox.  MAC addresses of players are case-sensitive. 
# Use small letters (a-f) if the address contains them. Example:
# squeeze:Kitchen.id=de:ad:be:ef:12:34
#squeeze:<boxId1>.id=

# Id (MAC address) of your nth Squeezebox
#squeeze:<boxIdN>.id=

Can you suggest any further improvements?

Maybe I had the wrong syntax in the .id string for the squeeze players. I was using <> around the name. I have now removed these.

Now I have in the cfg:
squeeze:Kitchen.id=00:04:20:16:16:8d
squeeze:Shower.id=00:04:20:18:1c:7f

I have always been receiving messages in the log from both players and server and they continue to be received.

Still can’t see the rule executing though. Which it was before although with error. Now all I can see is the switch status change which is supposed to trigger the rule.

If that is your rule file contents, and you know that an item exactly named TiminLounge (case sensitive) is changing state (as opposed to receiving a command), then it all looks right to me.