This is an adaption of the MagicMirror-SonosModule by Vaggan. It was modified to fit the new module system and got some enhancements in visualisation an configuration.
In order to limit RPI load and reduce network request, this module is not updated when the MMM-Sonos is not displayed on the mirror (hidden by MMM-Remote-Control or any Carousel module for example). It is also not updated in case the notification "USER_PRESENCE=false" is received. This notification can be send by the use of a PIR sensor and the module MMM-PIR-Sensor.
Prerequisites
- requires MagicMirror v2.0.0
- install and run node-sonos-http-api
Navigate into your MagicMirror's modules folder:
cd ~/MagicMirror/modules
Clone this repository:
git clone https://github.com/CFenner/MMM-Sonos
Navigate to the new MMM-Sonos folder and install the node dependencies.
cd MMM-Sonos/ && npm install --production
Configure the module in your config.js file.
To run the module properly, you need to add the following data to your config.js file.
{
module: 'MMM-Sonos',
position: 'top_right', // you may choose any location
config: {}
}
You also can set some options to hide different parts of the module.
Option | Description | Default |
---|---|---|
showStoppedRoom |
Trigger the visualization of stopped rooms. | true |
showAlbumArt |
Trigger the visualization of the album art. | true |
showRoomName |
Trigger the visualization of the room name. | true |
The module may not be able to access the data of the sonos API due to a Cross-Origin Resource Sharing (CORS) issue. This could be solved by adding the following lines to the sonos-http-api.js
just before res.write(new Buffer(jsonResponse));
in the sonos api. Remember to restart the service after the change.
res.setHeader("Access-Control-Allow-Origin", "http://localhost");
res.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
To install the Sonos-API just clone the repository to your PI.
git clone https://github.com/jishi/node-sonos-http-api.git
Navigate to the new node-sonos-http-api folder and install the node dependencies.
cd node-sonos-http-api && npm install --production
Now you can run the service with:
npm start
I really recommend to use PM2 like it is described on the MagicMirror Wiki page.
cd ~/Sonos
npm start