Install Sonos Node Library

mkdir sonos
cd sonos

npm init

npm install sonos

npm install git://github.com/bencevans/node-sonos.git


Scripts

Discover.js

> vi discover.js

const Sonos = require('sonos')
  
console.log('Searching for Sonos devices for 5 seconds...')

const discovery = new Sonos.AsyncDeviceDiscovery()

discovery.discover().then((device, model) => {
  console.log('Found one sonos device %s getting all groups', device.host)
  return device.getAllGroups().then((groups) => {
    console.log('Groups %s', JSON.stringify(groups, null, 2))
  })
}).catch(e => {
  console.warn(' Error in discovery %j', e)
})


Run it

> node discover.js


PlayRadioParadise.js

vi playRadioParadise.js

const Sonos = require('sonos').Sonos
const sonos = new Sonos(process.env.SONOS_HOST || '192.168.1.26')

// This example demonstrates playing radio staions
// the Sonos built-in support for tunein radio.

// CAUTION: ID is with leading s since version 1.12.1
const stationId = 's13606'
const stationTitle = 'Radio Paradise'

sonos.playTuneinRadio(stationId, stationTitle).then(success => {
  console.log('Yeay')
}).catch(err => { console.log('Error occurred %j', err) })

Run it

> node playRadioParadise.sh


Run It using environment variables

> SONOS_HOST=192.168.1.21 node playRadioParadise.sh



Add Start Script

If you want to add your program to npm, edit the package.json file

{
  "name": "sonosplayer",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "node discover.js",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "sonos": "git://github.com/bencevans/node-sonos.git"
  }
}


Run it

> npm start


References

  • No labels