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-sonos-player

v1.2.5

Published

A plugin for Homebridge for starting mp3 files on Sonos speakers using switches.

Downloads

25

Readme

Homebridge sonos play

I couldn't find a working integration for playing mp3 files via the home app, thus, I created a small plugin that are able to send tracks to Sonos.

I Use this for an alarm - the switch is easily automatable inside the app.

Features:

The plugin allows you to create switches that when toggled on starts playing any mp3(and other formats that sonos supports) files.

You can customize volume, delay and timeout for these tracks, as well as which sonos devices should play the track.

Installing:

Using the homebridge web UI, or:

npm i -g homebridge-sonos-player

Configuration:

Either configure the plugin using the homebridge web ui, or though json:

{
  "platform": "SonosPlayerJub",
  "discoverFrom": "192.168.1.1"
  "switches": [
    {
      "name": "Switch name goes here - this will be seen in the home app",
      "trackUri": "Location of the mp3 file - must be located somewhere the Sonos devices can find it",
      "volume": 10,
      "delay": 100,
      "timeout": 10,
      "sonosSpeakerNames": ["Sonos-1"],
      "notification": true
    },
    {
      "name": "Switch name goes here - this will be seen in the home app",
      "trackUri": "http://(...)",
      "volume": 10,
      "delay": 100,
      "timeout": 10,
      "sonosSpeakerNames": ["Sonos-1", "Sonos-2"],
      "notification": false
    }
  ]
}
  • platform required: must always be "SonosPlayerJub"
  • discoverFrom optional: If you have problems with auto discovery, try setting a sonos ip in here.

Switch object:

  • name required: Name of the switch
  • trackUri required: Url for the audio file location. This could be either on WAN or though the internet.
  • sonosSpeakerNames required: Array for defining which speakers should play when the switch is activated
  • volume optional: Volume (in procentage) the speaker(s) should change to. Reverts back to the volume it was before the switch getting activated. Defaults to 25%.
  • delay optional: Delay (in ms) between the toggle on, and the audio plays. Defaults to 100ms
  • timeout optional: When Sonos should return to the original track (in seconds). I recommend setting this to the audio length in seconds + 2
  • isNotification optional: When playing as a notification, the track and volume will return to what was playing before the plugin triggered a new track

Thanks to:

A big thanks to bencevans for creating a node package to detect and send api calls to Sonos, and to svrooij for creating a typescript port. Without these, this plugin wouldn't have been created!