Skip to content

bbriatte/homebridge-soundtouch-platform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

homebridge-soundtouch-platform

npm version npm downloads

Bose SoundTouch plugin for 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

{
    "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
            }
        ]
    }
}

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

About

Homebridge & SoundTouch using Lightbulb to change the volume

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published