Bose SoundTouch Binding

This binding supports the Bose SoundTouch multiroom system.

Supported Things

The following Bose devices are supported:

NameThing Type
Bose SoundTouch 1010
Bose SoundTouch 2020
Bose SoundTouch 3030
Bose SoundTouch 300300
Bose Wave SoundTouch Music System IVwaveSoundTouchMusicSystemIV
Bose SoundTouch Wireless Link AdapterwirelessLinkAdapter
Bose SoundTouch SA-5 Amplifiersa5Amplifier
Any other Bose SoundTouch devicedevice

Discovery

Speakers are automatically discovered using mDNS in the local network.

Binding Configuration

The binding has no configuration options, all configuration is done at Thing level.

Thing Configuration

All thing types have the same configuration parameters:

Parameter NameTypeRequiredDescription
hostStringYesThe host name or IP address of the device
macAddressStringYesThe MAC address of the used interface (format "123456789ABC")
appKeyStringNoAn authorization key used to identify the client application

The required properties are set when using discovery. For manual configuration, these values can be found in the Bose smartphone app (Settings -> About -> Device Name). Note that the device might have two MAC addresses, one for ethernet and one for Wifi.

The authorization key is used to identify the client application when using the Notification API. It must be requested from the developer portal.

Channels

All devices share the same set of channels, while some of them might not be available on all devices.

Channel IDItem TypeDescription
keyCodeStringSimulates pushing a remote control button
muteSwitchMutes the sound
notificationsoundStringPlay a notification sound by a given URI
nowPlayingAlbumStringCurrent playing album name
nowPlayingArtistStringCurrent playing artist name
nowPlayingArtworkImageArtwork for the current playing song
nowPlayingDescriptionStringDescription to current playing song
nowPlayingGenreStringGenre of current playing song
nowPlayingItemNameStringVisible description shown in display
nowPlayingStationLocationStringLocation of current playing radio station
nowPlayingStationNameStringName of current playing radio station
nowPlayingTrackStringTrack currently playing
operationModeStringCurrent Operation Mode
playerControlPlayerControl the Player
powerSwitchSoundTouch power state
presetNumber1-6 Preset of Soundtouch, >7 Binding Presets
rateEnabledSwitchCurrent source allows rating
saveAsPresetNumberA selected presetable item is saved as preset with number >6
skipEnabledSwitchCurrent source allows skipping to next track
skipPreviousEnabledSwitchCurrent source allows scrolling through tracks
volumeDimmerSet or get the volume
bassNumberBass (-9 minimum, 0 maximum)

The notificationsound channel has the following optional configuration parameters:

  • notificationVolume - Desired volume level while playing the notification, it must be between 10 and 70 (inclusive). A value outside this range will result in an error and not play the notification.
  • notificationService - The service providing the notification
  • notificationReason - The reason for the notification
  • notificationMessage - Further details about the notification

The texts for the notification service, reason and message appear on the device display (when available) and the SoundTouch application screen. Upon completion of the notification, the speaker volume returns to its original value. If not present, the notification will play at the existing volume level.

Full Example

Things:

bosesoundtouch:device:demo @ "Living"  [ host="192.168.1.2", macAddress="123456789ABC" ]

Items:

Switch  Bose1_Power                      "Power: [%s]"          <switch>      { channel="bosesoundtouch:device:demo:power" }
Dimmer  Bose1_Volume                     "Volume: [%d %%]"      <volume>      { channel="bosesoundtouch:device:demo:volume" }
Number  Bose1_Bass                       "Bass: [%d %%]"        <volume>      { channel="bosesoundtouch:device:demo:bass" }
Switch  Bose1_Mute                       "Mute: [%s]"           <volume_mute> { channel="bosesoundtouch:device:demo:mute" }
String  Bose1_OperationMode              "OperationMode: [%s]"  <text>        { channel="bosesoundtouch:device:demo:operationMode" }
String  Bose1_PlayerControl              "Player Control: [%s]" <text>        { channel="bosesoundtouch:device:demo:playerControl" }
Number  Bose1_Preset                     "Preset: [%d]"         <text>        { channel="bosesoundtouch:device:demo:preset" }
Number  Bose1_SaveAsPreset               "Save as Preset: [%d]" <text>        { channel="bosesoundtouch:device:demo:saveAsPreset" }
String  Bose1_KeyCode                    "Key Code: [%s]"       <text>        { channel="bosesoundtouch:device:demo:keyCode" }
Switch  Bose1_RateEnabled                "Rate: [%s]"           <switch>      { channel="bosesoundtouch:device:demo:rateEnabled" }
Switch  Bose1_SkipEnabled                "Skip: [%s]"           <switch>      { channel="bosesoundtouch:device:demo:skipEnabled" }
Switch  Bose1_SkipPreviousEnabled        "SkipPrevious: [%s]"   <switch>      { channel="bosesoundtouch:device:demo:skipPreviousEnabled" }
String  Bose1_nowPlayingAlbum            "Album: [%s]"          <text>        { channel="bosesoundtouch:device:demo:nowPlayingAlbum" }
String  Bose1_nowPlayingArtist           "Artist: [%s]"         <text>        { channel="bosesoundtouch:device:demo:nowPlayingArtist" }
Image   Bose1_nowPlayingArtwork          "Artwork"              <text>        { channel="bosesoundtouch:device:demo:nowPlayingArtwork" }
String  Bose1_nowPlayingDescription      "Description: [%s]"    <text>        { channel="bosesoundtouch:device:demo:nowPlayingDescription" }
String  Bose1_nowPlayingGenre            "Genre: [%s]"          <text>        { channel="bosesoundtouch:device:demo:nowPlayingGenre" }
String  Bose1_nowPlayingItemName         "Playing: [%s]"        <text>        { channel="bosesoundtouch:device:demo:nowPlayingItemName" }
String  Bose1_nowPlayingStationLocation  "Radio Location: [%s]" <text>        { channel="bosesoundtouch:device:demo:nowPlayingStationLocation" }
String  Bose1_nowPlayingStationName      "Radio Name: [%s]"     <text>        { channel="bosesoundtouch:device:demo:nowPlayingStationName" }
String  Bose1_nowPlayingTrack            "Track: [%s]"          <text>        { channel="bosesoundtouch:device:demo:nowPlayingTrack" }

Sitemap:

sitemap demo label="Bose Test Items"
{
	Frame label="Bose 1" {
        Switch item=Bose1_Power
		Slider item=Bose1_Volume
		Number item=Bose1_Bass
		Switch item=Bose1_Mute
		Text item=Bose1_OperationMode
		Text item=Bose1_PlayerControl
		Number item=Bose1_Preset
		Number item=Bose1_SaveAsPreset
		Text item=Bose1_KeyCode
		Text item=Bose1_nowPlayingAlbum
		Text item=Bose1_nowPlayingArtist
		Text item=Bose1_nowPlayingArtwork
		Text item=Bose1_nowPlayingDescription
		Text item=Bose1_nowPlayingGenre
		Text item=Bose1_nowPlayingItemName
		Text item=Bose1_nowPlayingStationLocation
		Text item=Bose1_nowPlayingTrack
	}
}