Bose integration

  • Updated

Introduction

The Bose adapter allows you to control your Bose speakers from Futurehome. Bose Soundtouch speakers are controlled locally through your own network, and it is therefore important that the smart hub and the speakers are connected to same local network. If you are listening to music from a mobile device through bluetooth, you also need to have bluetooth activated on that device and be within range of the speaker to control it. If you are listening to radio this will not be an issue.

The Futurehome app does currently NOT support automations for music services, and you can therefore not make automations for Bose speakers from the Futurehome app. You can however make automations through Thingsplex flows. This way you can for example have your music start playing when there is motion, and stop playing x minutes after motion is no longer detected, or similar. Please see example flow at the end of this article.

If you make a flow that works well for you, and you want to share it with the rest of the Futurehome community, please do so in forum.futurehome.io.

The adapter supports:

  • Play or pause music/radio
  • Skip to next or previous song
  • Mute speakers
  • Turn on/off shuffle, repeat and repeat one
  • Controll volume
  • Get metadata (song name, artist, album)

Installation

To install the adapter you need to be in the Futurehome app, and follow these steps:

  1. Go to settings settings.svg -> playground -> Bose adapter and click the install button.
  2. Click on the button with three dots and choose which speakers you want to include to Futurehome, and click «save».

If it was successful, all the devices you chose will be included to Futurehome. If you are missing speakers in the list, click on «sync» to search the network again. Initially the adapter scans for 10 seconds. If you have many devices, or a busy network, you can configure the adapter to search for a longer time. Go to the adapter and click the three dots to enter advanced setup. Change the value in the bottom box and click save. Go back into the three dots and click sync to scan the network again. The app will say «loading» until the scan is complete.

Automation example

bose_flow.png

The source code is available at the bottom of this document. To make this flow work with your speakers, follow these steps:

  • Copy the source code at the bottom of this document
  • Click on «import» in flows and paste the source code provided

You will then have to change the addresses of the sensor presence and your Bose speaker.

Start by clicking into the trigger node. Under "Advanced service binding" you can change the address of your presence sensor. You can find the address of your device in the Futurehome app as shown below.

bose_flow_sensor_presence.pngbose_flow_motion_sensor_address.jpg

 

Then you need to do the same for the action node.

 bose_flow_action_node.pngbose_flow_bose_address.jpg

 

When everything is setup remember to click the "Save" button in the lower left corner.

bose_flow_save.png

 

List of supported interfaces:
https://github.com/thingsplex/bose-ad

 

 {
"Id": "GjhFF8sIXyVZge2",
"ClassId": "GjhFF8sIXyVZge2",
"Author": "",
"Version": 0,
"CreatedAt": "2020-08-06T12:40:35.076238012+02:00",
"UpdatedAt": "2020-08-11T12:41:42.290449085+02:00",
"Name": "Bose test flow",
"Group": "bose",
"Description": "Bose test flow",
"Nodes": [
{
"Id": "1",
"Type": "trigger",
"Label": "sensor_presence",
"SuccessTransition": "2",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "pt:j1/mt:evt/rt:dev/rn:zw/ad:1/sv:sensor_contact/ad:7_0",
"Service": "sensor_presence",
"ServiceInterface": "evt.presence.report",
"Config": {
"InputVariableType": "",
"IsValueFilterEnabled": true,
"LookupServiceNameAndLocation": false,
"PropFilterName": "",
"PropFilterValue": "",
"RegisterAsVirtualService": false,
"Timeout": 0,
"ValueFilter": {
"Value": true,
"ValueType": "bool"
},
"ValueJPath": "",
"ValueJPathResultType": "",
"VirtualServiceGroup": "",
"VirtualServiceProps": null
},
"Ui": {
"nodeType": "",
"x": 105,
"y": 267
}
},
{
"Id": "2",
"Type": "action",
"Label": "Play",
"SuccessTransition": "",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "pt:j1/mt:cmd/rt:dev/rn:bose/ad:1/sv:media_player/ad:EC24B8EBB3A5",
"Service": "media_player",
"ServiceInterface": "cmd.playback.set",
"Config": {
"DefaultValue": {
"Value": "play",
"ValueType": "string"
},
"IsVariableGlobal": false,
"Props": {},
"RegisterAsVirtualService": false,
"ResponseToTopic": "",
"VariableName": "",
"VirtualServiceGroup": "",
"VirtualServiceProps": {}
},
"Ui": {
"nodeType": "",
"x": 127,
"y": 449
}
},
{
"Id": "6",
"Type": "action",
"Label": "Pause",
"SuccessTransition": "",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "pt:j1/mt:cmd/rt:dev/rn:bose/ad:1/sv:media_player/ad:EC24B8EBB3A5",
"Service": "media_player",
"ServiceInterface": "cmd.playback.set",
"Config": {
"DefaultValue": {
"Value": "pause",
"ValueType": "string"
},
"IsVariableGlobal": false,
"Props": {},
"RegisterAsVirtualService": false,
"ResponseToTopic": "",
"VariableName": "",
"VirtualServiceGroup": "",
"VirtualServiceProps": {}
},
"Ui": {
"nodeType": "",
"x": 380,
"y": 450
}
},
{
"Id": "7",
"Type": "trigger",
"Label": "sensor_presence",
"SuccessTransition": "6",
"TimeoutTransition": "",
"ErrorTransition": "",
"Address": "pt:j1/mt:evt/rt:dev/rn:zw/ad:1/sv:sensor_contact/ad:7_0",
"Service": "sensor_presence",
"ServiceInterface": "evt.presence.report",
"Config": {
"InputVariableType": "",
"IsValueFilterEnabled": true,
"LookupServiceNameAndLocation": false,
"PropFilterName": "",
"PropFilterValue": "",
"RegisterAsVirtualService": false,
"Timeout": 0,
"ValueFilter": {
"Value": false,
"ValueType": "bool"
},
"ValueJPath": "",
"ValueJPathResultType": "",
"VirtualServiceGroup": "",
"VirtualServiceProps": null
},
"Ui": {
"nodeType": "",
"x": 357,
"y": 264
}
}
],
"Settings": null,
"IsDisabled": false,
"IsDefault": false,
"ParallelExecution": "parallel"
}

Was this article helpful?

0 out of 0 found this helpful

Have more questions? Submit a request

Comments

0 comments

Article is closed for comments.