- Device Discovery
- Queue Control
- Volume Control
- Spotify Support
- Change Events
Published versions (reccomended)
$ npm install sonos
From the repo, living on the edge
$ npm install git://github.com/bencevans/node-sonos.git
Controlling Known Devices
const Sonos =
const device = '192.168.1.56';
- DeviceDiscovery([options], [deviceAvailableListener])
- Class: DeviceDiscovery([options])
- Event: 'DeviceAvailable'
- Class: Sonos(host, [port])
- getMusicLibrary(search, options)
- queue(uri, positionInQueue)
- request(endpoint, action, body, responseTag)
- Event: 'CurrentTrack'
- Event: 'NextTrack'
- Event: 'PlayState' and 'PlaybackStopped'
- Event: 'AVTransport'
- Event: 'Volume'
- Event: 'Muted'
- Event: 'RenderingControl'
We tried to add jsdoc info to all functions, and generate documentation from it. /docs
Additional examples can be found in the /examples directory within the repository.
In The Wild
node-sonos in use across the interwebs. Missing yours? Add it and send us a pull request!
- AirSonos - Apple AirPlay (iOS, OS X) support to all Sonos devices on a network.
- sonos-cli - Command Line Interface for Sonos
- sonos2mqtt - Bridge between Sonos and an MQTT server
- homebridge-zp - Homebridge plugin for Sonos ZonePlayer
- ZenMusic - Control Sonos thru #Slack!
- gladys-sonos - Control Sonos with Gladys a Raspberry Pi Home Assistant
- Ben Evans (@bencevans)
- Stephen Wan (@stephen)
- Marshall T. Rose (@mrose17)
- Stephan van Rooij (@svrooij)
And a big thanks to all you other contributors! Pull-requests are beautiful things.
If you got discovered an issue with this library, please check the issue-tracker. And create an issue if your problem isn't discovered by someone else. If you want to contribute something check out these 'help-wanted' issues.
Do you have a question about this library, we are glad to help you Ask Question. You can see all questions here
We try to react to all pull-requests, but if you think we don't respond in time, please don't create a 'sonos-by-xyz' or a 'node-sonos-by-xyz' package on NPM. This might lead to people installing the wrong version.
If you want to publish your own version, please do it as a user-scoped eg.
- Change the top of the readme to state your specific changes.
- Change the
name of the project to
- Publish it to npm
npm publish --access=public
At 30 jan 2018 we released an promisified version of node-sonos. The old version can be found in the v0.x branch. It won't get any new features, but it might get security updates.
MIT © Ben Evans