UNPKG

homebridge-soundtouch-platform

Version:
158 lines (137 loc) 5.5 kB
# homebridge-soundtouch-platform [![npm version](https://badge.fury.io/js/homebridge-soundtouch-platform.svg)](https://badge.fury.io/js/homebridge-soundtouch-platform) [![npm downloads](https://badgen.net/npm/dt/homebridge-soundtouch-platform)](https://badgen.net/npm/dt/homebridge-soundtouch-platform) [Bose SoundTouch](https://www.bose.com/soundtouch-systems.html) plugin for [Homebridge](https://github.com/nfarina/homebridge) This allows you to control your SoundTouch devices with HomeKit and Siri. ## Installation 1. Install homebridge using: npm install -g homebridge 2. Install this plugin using: npm install -g homebridge-soundtouch-platform 3. Update your configuration file. See the sample below. ## Configuration Example `config.json` to discover all SoundTouch accessories ```json { "platform": "SoundTouchPlatform", "name": "SoundTouch", "discoverAllAccessories": true, "global": { "pollingInterval": 2000 } } ``` Example `config.json` to register 1 SoundTouch accessory ```json { "platform": "SoundTouchPlatform", "name": "SoundTouch", "accessories": [ { "name": "Speaker Bathroom", "room": "Bathroom", "volume": { "unmuteValue": 40, "maxValue": 80 } } ] } ``` Example `config.json` for multiple speakers and presets: ```json { "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 } ] } } ``` ### Platform element *Required fields* * `platform`: Must always be **SoundTouchPlatform** * `name`: The name you want to use to control the SoundTouch for the platform. *Optional fields* * `discoverAllAccessories`: Discover all accessories on the local network __default__: **false** * `accessories`: Array of **Accessory element** * `global`: Default configuration for all accessories. see **Global element** ### 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 element** * `presets`: 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 element** * `sources`: 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** ### Volume 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** ### VolumeMode enum * `none`: Disable the volume of the accessory * `lightbulb`: 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). ### Preset element *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 ### Source element *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 ### Global element *Optional fields* * `verbose`: Log all device information * `pollingInterval`: If set, poll the device each interval * `volume`: see **Volume element** * `presets`: 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 element** * `sources`: 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**