npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

homebridge-soundtouch-platform-jdetle-fork

v1.4.2-beta

Published

Homebridge SoundTouch platform

Downloads

78

Readme

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