Bose SoundTouch Binding

Hi marvkis,
I got the same problem as morizm. I downloaded the 2.1.0 file just a minute ago but there ist no ZoneAdd here as well. Also the sha256 sum of the file I’ve downloaded here https://github.com/marvkis/org.openhab.binding.bosesoundtouch-dist is different. It’s 912443F6338F8106C3F511463E9A6481EF20C3A28FFA49FE5C38D013C4BF1B6F. Maybe you can have a look if there is the correct file on github?

Thanks

Hi @sayhelloto,

you are right - in the repository was a wrong file. Cannot tell how it has made it there… Now it should be the correct one. Please try it …

Sorry for that.

Bye,
Chris

Hi marvkis,

thank you for uploading the correct file. ZoneAdd works for me now.

Unfortunately the OperationMode BLUETOOTH does not work for me anymore. It states “OperationMode 'BLUETOOTH ’ is not supported yet.” in the log file. Are you working on this? Just wondering because it worked before.

Hi all,

Bose just launched a new Developer Site (https://developer.bose.com/) ,

Would love to have OpenHab great me with my favorit tune when coming home
:wink:
Mike

Hi guys !

I want to install this binding but i don’t know what to do.
I put the .jar file (from https://github.com/marvkis/org.openhab.binding.bosesoundtouch-dist/blob/master/org.openhab.binding.bosesoundtouch-2.1.0-SNAPSHOT.jar) in /usr/share/openhab2/addons/ directory.
What next ?

EDIT : Finally, i installed the binding with success.
But, i have some errors when adding thing (Soundtouch 300) :

Failure : Cannot append to finished buffer

I have good host and mac address in thing configuration…

Any solutions ?

Thanks a lot !

Is this Binding accessible through the IoT Marketplace?

The new Sound Touch Notification API should give us the possibility to have a working TTS solution playing a MP3 file. Is there a possibility that the say() functions creates a MP3 file instead of using the default audio sink? Thanks.

Hello,
i use a workaround, by using a rule to send notifications to my Soundtouch. I think it would be nice to have an action like playUrl2Bose i.e

Here is my rule

import java.net.URLEncoder;
rule "BoseTest"
when
  Item Bose_Trigger changed
then
  val String AppKey = "MYSecretAppKey"
  val String BoseIP = "172.17.100.21"
  val String BoseMsg = "Hallo dies ist ein Test"  // BoseTTSText.state
  val String TranslateUrl = "http://translate.google.com/translate_tts?ie=UTF-8&tl=DE&client=tw-ob&q=" + URLEncoder.encode(BoseMsg,"UTF-8")
  val String PostData = '<play_info><app_key>' + AppKey + '</app_key><url>' + TranslateUrl + '</url><service>OpenHAB</service><volume>20</volume></play_info>';

  sendHttpPostRequest("http://" + BoseIP + ":8090/speaker","",PostData)

end

You have to register to the Bose developer site to get an AppKey

What is the correct syntax for rules for zone control?

I have three devices. When the first device is turned on, I want to turn on the other two and add them to a zone together.

My rule below is working to turn them on, but isn’t establishing the zone. I have also tried substituting the name with the MAC, but still no success.

rule "Set Bose Zone"
when
Item Bose1_Power changed
then
sendCommand(Bose2_Power, ON)
sendCommand(Bose3_Power, ON)
sendCommand(Bose1_ZoneControl, “add Dining Room”)
sendCommand(Bose1_ZoneControl, “add Living Room”)
end

I figured it out. I had to change ZoneControl to ZoneAdd.

I added this line to the items file:
String Bose1_ZoneAdd “Zone Add: [%s]” { channel=“bosesoundtouch:device:9884E3BAABA8:zoneAdd” }

(Need to substitiute the correct MAC address into the string.)

Then I updated the rule to look like:
sendCommand(Bose2_Power, ON)
sendCommand(Bose3_Power, ON)
sendCommand(Bose1_ZoneAdd, “Dining Room”)
sendCommand(Bose1_ZoneAdd, “Living Room”)

Hey mbibbey,
i am trying the same - connect my living room to my entrance bose. but what does the “Dining Room” mean? Where do I define this? In the item list?

at the moment it looks like this :
Items:

Dimmer  Bose_Flur_Volume                     		"Volume: [%d %%]"      <volume>      { channel="bosesoundtouch:device:8030DC556A38:volume" }
Switch  Bose_Flur_Mute                       		"mute: [%s]"           <volume_mute> { channel="bosesoundtouch:device:8030DC556A38:mute" }
String  Bose_Flur_OperationMode              		"Mode: [%s]"           <text>        { channel="bosesoundtouch:device:8030DC556A38:operationMode" }
String  Bose_Flur_ZoneInfo                   		"Zone: [%s]"           <text>        { channel="bosesoundtouch:device:8030DC556A38:zoneInfo", autoupdate="false" }
String  Bose_Flur_ZoneControl                		"Zone control: [%s]"   <text>        { channel="bosesoundtouch:device:8030DC556A38:zoneControl" }
String  Bose_Flur_ZoneAdd                    		"Zone add: [%s]"       <text>        { channel="bosesoundtouch:device:8030DC556A38:zoneAdd" }
String  Bose_Flur_Preset                     		"Preset: [%s]"         <text>        { channel="bosesoundtouch:device:8030DC556A38:preset" }
String  Bose_Flur_KeyCode                    		"Key Code: [%s]"       <text>        { channel="bosesoundtouch:device:8030DC556A38:keyCode" }
String  Bose_Flur_nowPlayingAlbum            		"Album: [%s]"          <text>        { channel="bosesoundtouch:device:8030DC556A38:nowPlayingAlbum" }
String  Bose_Flur_nowPlayingArtist           		"Artist: [%s]"         <text>        { channel="bosesoundtouch:device:8030DC556A38:nowPlayingArtist" }
String  Bose_Flur_nowPlayingArtwork          		"Art: [%s]"            <text>        { channel="bosesoundtouch:device:8030DC556A38:nowPlayingArtwork" }
String  Bose_Flur_nowPlayingDescription      		"Description: [%s]"    <text>        { channel="bosesoundtouch:device:8030DC556A38:nowPlayingDescription" }
String  Bose_Flur_nowPlayingItemName         		"Playing: [%s]"        <text>        { channel="bosesoundtouch:device:8030DC556A38:nowPlayingItemName" }
String  Bose_Flur_nowPlayingPlayStatus       		"Play state: [%s]"     <text>        { channel="bosesoundtouch:device:8030DC556A38:nowPlayingPlayStatus" }
String  Bose_Flur_nowPlayingStationLocation  		"Radio Location: [%s]" <text>        { channel="bosesoundtouch:device:8030DC556A38:nowPlayingStationLocation" }
String  Bose_Flur_nowPlayingStationName      		"Radio Name: [%s]"     <text>        { channel="bosesoundtouch:device:8030DC556A38:nowPlayingStationName" }
String  Bose_Flur_nowPlayingTrack            		"Track: [%s]"          <text>        { channel="bosesoundtouch:device:8030DC556A38:nowPlayingTrack" }

Switch  Bose_Wohnzimmer_Power                      	"Power: [%s]"          <switch>      { channel="bosesoundtouch:device:F45EAB524721:power" }
Dimmer  Bose_Wohnzimmer_Volume                     	"Volume: [%d %%]"      <volume>      { channel="bosesoundtouch:device:F45EAB524721:volume" }
Switch  Bose_Wohnzimmer_Mute                       	"mute: [%s]"           <volume_mute> { channel="bosesoundtouch:device:F45EAB524721:mute" }
String  Bose_Wohnzimmer_OperationMode              	"Mode: [%s]"           <text>        { channel="bosesoundtouch:device:F45EAB524721:operationMode" }
String  Bose_Wohnzimmer_ZoneInfo                   	"Zone: [%s]"           <text>        { channel="bosesoundtouch:device:F45EAB524721:zoneInfo", autoupdate="false" }
String  Bose_Wohnzimmer_ZoneControl                	"Zone control: [%s]"   <text>        { channel="bosesoundtouch:device:F45EAB524721:zoneControl" }
String  Bose_Wohnzimmer_ZoneAdd                    	"Zone add: [%s]"       <text>        { channel="bosesoundtouch:device:F45EAB524721:zoneAdd" }
String  Bose_Wohnzimmer_Preset                     	"Preset: [%s]"         <text>        { channel="bosesoundtouch:device:F45EAB524721:preset" }
String  Bose_Wohnzimmer_KeyCode                    	"Key Code: [%s]"       <text>        { channel="bosesoundtouch:device:F45EAB524721:keyCode" }
String  Bose_Wohnzimmer_nowPlayingAlbum            	"Album: [%s]"          <text>        { channel="bosesoundtouch:device:F45EAB524721:nowPlayingAlbum" }
String  Bose_Wohnzimmer_nowPlayingArtist           	"Artist: [%s]"         <text>        { channel="bosesoundtouch:device:F45EAB524721:nowPlayingArtist" }
String  Bose_Wohnzimmer_nowPlayingArtwork          	"Art: [%s]"            <text>        { channel="bosesoundtouch:device:F45EAB524721:nowPlayingArtwork" }
String  Bose_Wohnzimmer_nowPlayingDescription      	"Description: [%s]"    <text>        { channel="bosesoundtouch:device:F45EAB524721:nowPlayingDescription" }
String  Bose_Wohnzimmer_nowPlayingItemName         	"Playing: [%s]"        <text>        { channel="bosesoundtouch:device:F45EAB524721:nowPlayingItemName" }
String  Bose_Wohnzimmer_nowPlayingPlayStatus       	"Play state: [%s]"     <text>        { channel="bosesoundtouch:device:F45EAB524721:nowPlayingPlayStatus" }
String  Bose_Wohnzimmer_nowPlayingStationLocation  	"Radio Location: [%s]" <text>        { channel="bosesoundtouch:device:F45EAB524721:nowPlayingStationLocation" }
String  Bose_Wohnzimmer_nowPlayingStationName      	"Radio Name: [%s]"     <text>        { channel="bosesoundtouch:device:F45EAB524721:nowPlayingStationName" }
String  Bose_Wohnzimmer_nowPlayingTrack            	"Track: [%s]"          <text>        { channel="bosesoundtouch:device:F45EAB524721:nowPlayingTrack" }

  
indent preformatted text by 4 spaces

rule:

when
		Item Bose_Flur_power changed
then
		if (Bose_Flur_Power.state == ON) {
			sendCommand(Bose_Flur_ZoneAdd  , "Bose_Wohnzimmer")
		}
end

Thanks a lot in advance

Hi tizaf,

the “name” for the device to add is either the “MAC” address or the “name” of the device as configured in the app (could be obtained in the paper UI from the properties. The name is also used as initial device name when the thing is initially added.

So in your case a

sendCommand(Bose_Flur_ZoneAdd  , "F45EAB524721")

should do the job…

Cheers,
Chris

1 Like

“Dining Room” and “Living Room” are just the names of my devices I defined in the Bose Soundtouch App. You can similarly reference the MAC address of the devices to add them to the zone.

2 Likes

Could anybody give me a hint how am i adding the soundtouch biniding to my openHAB system?

I am trying it for hours unfortunately i haven’t succseed.

i am using a RaspberryPi.

i done the following:

cd /usr/share/openhab2/addons
git clone https://github.com/marvkis/org.openhab.binding.bosesoundtouch-dist
sudo reboot

Now i expect that i can see the binding in the PaperUI. but I don’t.

Thanks for the help!

Hello Chris,

it is possible for you to give me a bit help for beginners?

I have tried to add the binding to my openHAB2 system which it runs on a raspberry Pi.

Can you tell me in which folder i have to copy the files from you?
And what i have to execute? Or could you show me a thread or tutorial what should i done for better understanding?

Thanks

Christoph

don’t clone the repo, just copy the jar file from https://github.com/marvkis/org.openhab.binding.bosesoundtouch-dist/blob/master/org.openhab.binding.bosesoundtouch-2.1.0-SNAPSHOT.jar into your addons directory. Then restart Openhab (don’t need to reboot the whole computer). I just added it last night, and that’s all I had to do. After a few minutes, all my SoundTouch devices appeared in the inbox.

Hy!

how can i define Things for this Binding?

Thank You

Hi @code723,

as long as the openHAB server is on the same network as your speaker the AutoDiscovery should find them automatically and you’ll find them on the inbox…

Is the Bose SoundTouch Binding visible on the bindings list?

Cheers,
Chris

Hy!

The AutoDiscovery find my Devices but i’d like to define my Things in a *.things File

1 Like

Just as a heads-up: The code has now moved to https://github.com/eclipse/smarthome/pull/5397 and I’ll help driving that to get it merged in the not too far future.