# Bose SoundTouch Binding
This binding supports the Bose SoundTouch multiroom system.
# Supported Things
The following Bose devices are supported:
Name | Thing Type |
---|---|
Bose SoundTouch 10 | 10 |
Bose SoundTouch 20 | 20 |
Bose SoundTouch 30 | 30 |
Bose SoundTouch 300 | 300 |
Bose Wave SoundTouch Music System IV | waveSoundTouchMusicSystemIV |
Bose SoundTouch Wireless Link Adapter | wirelessLinkAdapter |
Bose SoundTouch SA-5 Amplifier | sa5Amplifier |
Any other Bose SoundTouch device | device |
# 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 Name | Type | Required | Description |
---|---|---|---|
host | String | Yes | The host name or IP address of the device |
macAddress | String | Yes | The MAC address of the used interface (format "123456789ABC") |
appKey | String | No | An 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 ID | Item Type | Description |
---|---|---|
keyCode | String | Simulates pushing a remote control button |
mute | Switch | Mutes the sound |
notificationsound | String | Play a notification sound by a given URI |
nowPlayingAlbum | String | Current playing album name |
nowPlayingArtist | String | Current playing artist name |
nowPlayingArtwork | Image | Artwork for the current playing song |
nowPlayingDescription | String | Description to current playing song |
nowPlayingGenre | String | Genre of current playing song |
nowPlayingItemName | String | Visible description shown in display |
nowPlayingStationLocation | String | Location of current playing radio station |
nowPlayingStationName | String | Name of current playing radio station |
nowPlayingTrack | String | Track currently playing |
operationMode | String | Current Operation Mode |
playerControl | Player | Control the Player |
power | Switch | SoundTouch power state |
preset | Number | 1-6 Preset of Soundtouch, >7 Binding Presets |
rateEnabled | Switch | Current source allows rating |
saveAsPreset | Number | A selected presetable item is saved as preset with number >6 |
skipEnabled | Switch | Current source allows skipping to next track |
skipPreviousEnabled | Switch | Current source allows scrolling through tracks |
volume | Dimmer | Set or get the volume |
bass | Number | Bass (-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
Text item=Bose1_Bass
Switch item=Bose1_Mute
Text item=Bose1_OperationMode
Text item=Bose1_PlayerControl
Text item=Bose1_Preset
Text 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
}
}