Bose SoundTouch plugin for Homebridge
This allows you to control your SoundTouch devices with HomeKit and Siri.
- Install homebridge using: npm install -g homebridge
- Install this plugin using: npm install -g homebridge-soundtouch-platform
- Update your configuration file. See the sample below.
Example config.json
to discover all SoundTouch accessories
{
"platform": "SoundTouchPlatform",
"name": "SoundTouch",
"discoverAllAccessories": true,
"global": {
"pollingInterval": 2000
}
}
Example config.json
to register 1 SoundTouch accessory
{
"platform": "SoundTouchPlatform",
"name": "SoundTouch",
"accessories": [
{
"name": "Speaker Bathroom",
"room": "Bathroom",
"volume": {
"unmuteValue": 40,
"maxValue": 80
}
}
]
}
Example config.json
for multiple speakers and presets:
{
"platform": "SoundTouchPlatform",
"name": "SoundTouch",
"accessories": [
{
"name": "Speaker Bathroom",
"ip": "<ip>",
"volume": {
"unmuteValue": 40,
"maxValue": 80,
"mode": "lightbulb"
},
"presets": [
{
"name": "Radio 3",
"index": 3
}
]
},
{
"name": "Speaker Kitchen",
"room": "Kitchen",
"pollingInterval": 2000,
"verbose": true,
"volume": {
"mode": "speaker"
},
"presets": [
{
"name": "Radio 1",
"index": 1
},
{
"name": "Radio 2",
"index": 2
}
]
}
],
"global": {
"sources": [
{
"source": "QPLAY",
"enabled": false
}
]
}
}
Required fields
platform
: Must always be SoundTouchPlatformname
: The name you want to use to control the SoundTouch for the platform.
Optional fields
discoverAllAccessories
: Discover all accessories on the local network default: falseaccessories
: Array of Accessory elementglobal
: Default configuration for all accessories. see Global element
Optional fields
name
: The name you want to use to control the SoundTouch.room
: Should match exactly with the name of the SoundTouch device.ip
: The ip address of your device on your network.volume
: see Volume elementpresets
: Contains all presets action that you want to trigger using HomeKit on your device. Adds a switch for each preset with the given name. Preset index start from 1 to 6 included. see Preset elementsources
: Contains all sources action that you want to trigger using HomeKit on your device. Adds a switch for each source with the given name. see Source element
Optional fields
onValue
: The expected volume that you want when the device is turning on.unmuteValue
: The expected volume that you want back to mute mode with 0 volume. default: onValue if sets otherwise 35%maxValue
: The maximum volume of the device. default: 100%mode
: The volume accessory mode. Choose one item from the enum. see VolumeMode enum. default: lightbulb
none
: Disable the volume of the accessorylightbulb
: Control the accessory using a light (with this value you can control the volume from the Home.app & Siri).speaker
: Control the accessory with a speaker slider (with this value you cannot controller the volume from the Home.app & Siri).
Required fields
index
: The preset index starting from 1 to 6
Optional fields
name
: If set, the specific name of the preset`otherwise the name on your SoundTouch product will be used.enabled
: false will disable this preset to HomeKit
Required fields
source
: The source such as PRODUCT, BLUETOOTH, ...
Optional fields
account
: The product account such as TV, HDMI_1, ...name
: If set, the specific name of the preset otherwise the name on your SoundTouch product will be used.enabled
: false will disable this product to HomeKit
Optional fields
verbose
: Log all device informationpollingInterval
: If set, poll the device each intervalvolume
: see Volume elementpresets
: Contains all presets action that you want to trigger or not using HomeKit on all devices. Adds a switch for each preset with the given name. Preset index start from 1 to 6 included. see Preset elementsources
: Contains all sources action that you want to trigger or not using HomeKit on all devices. Adds a switch for each source with the given name. see Source element