nfarina / homebridge-sonos

Sonos plugin for homebridge: https://github.com/nfarina/homebridge
154 stars 52 forks source link

Intermittent error on startup, with paired Play 1's #4

Open thosirl opened 8 years ago

thosirl commented 8 years ago

Only intermittent, cant seem to produce all the time.

'Living Room' is a stereo pair of Play 1's.

[Kitchen Speakers] Found a playable device at 192.168.1.117 for room 'Kitchen'
[Living Room Speakers] Found a playable device at 192.168.1.112 for room 'Living Room'
[Living Room Speakers] Found a playable device at 192.168.1.101 for room 'Living Room'
dgram.js:452
    throw new Error('Not running'); // error message from dgram_legacy.js
          ^
Error: Not running
    at Socket._healthCheck (dgram.js:452:11)
    at Socket.close (dgram.js:353:8)
    at SonosAccessory.<anonymous> (/usr/lib/node_modules/homebridge-sonos/index.js:70:23)
    at /usr/lib/node_modules/homebridge-sonos/node_modules/sonos/lib/sonos.js:614:7
    at Parser.<anonymous> (/usr/lib/node_modules/homebridge-sonos/node_modules/sonos/node_modul                              es/xml2js/lib/xml2js.js:255:20)
    at Parser.emit (events.js:107:17)
    at Object.saxParser.onclosetag (/usr/lib/node_modules/homebridge-sonos/node_modules/sonos/n                              ode_modules/xml2js/lib/xml2js.js:225:24)
    at emit (/usr/lib/node_modules/homebridge-sonos/node_modules/sonos/node_modules/xml2js/node                              _modules/sax/lib/sax.js:615:33)
    at emitNode (/usr/lib/node_modules/homebridge-sonos/node_modules/sonos/node_modules/xml2js/                              node_modules/sax/lib/sax.js:620:3)
    at closeTag (/usr/lib/node_modules/homebridge-sonos/node_modules/sonos/node_modules/xml2js/                              node_modules/sax/lib/sax.js:861:5)

On a successful launch it only finds .101 which is the Right [Living Room Speakers] Found a playable device at 192.168.1.101 for room 'Living Room'

whereas when it fails above, it seems to find .112 which is Left

thosirl commented 8 years ago

Similar here, Sitting Room is Playbar + 2 x Play3

It errors when it finds Left play3 first:

[Sitting Room Speakers] Found a playable device at 192.168.1.111 for room 'Sitting Room'
events.js:85
      throw er; // Unhandled 'error' event
            ^
Error: listen EADDRINUSE
    at exports._errnoException (util.js:746:11)
    at Server._listen2 (net.js:1158:14)
    at listen (net.js:1184:10)
    at Server.listen (net.js:1269:5)
    at new EventedHTTPServerConnection (/usr/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/util/eventedhttp.js:125:20)
    at EventedHTTPServer._onConnection (/usr/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/util/eventedhttp.js:79:20)
    at Server.emit (events.js:107:17)
    at TCP.onconnection (net.js:1332:8)

But it's fine when it finds the Playbar first

[Sitting Room Speakers] Found a playable device at 192.168.1.107 for room 'Sitting Room'
thosirl commented 8 years ago

Both intermittent, only at startup, workaround is just retry and seems ok.

farberm commented 8 years ago

Thosiri

I am having a problem with my configure file. I can only get one accessory sonos to be recognized. Can you post your accessory coding section so I can determine what my issue is. I have five songs devices in 5 different rooms

thosirl commented 8 years ago

It's a JSON config file, so you'll need a comma between seperate accessory entries. If you want to post yours I can review, here's a snapshot of mine:

"accessories": [
{
  "accessory": "Sonos",
  "name": "Kitchen Speakers",
  "room": "Kitchen"
},
{
  "accessory": "Sonos",
  "name": "Living Room Speakers",
  "room": "Living Room"
},
{
  "accessory": "Sonos",
  "name": "Sitting Room Speakers",
  "room": "Sitting Room"
}
]
farberm commented 8 years ago

OK got all the units registered. I can use Siri to turn them on/off

but the Siri set volume on xx speaker to 30 does not work.

I am using the "Home" app. Any suggestions on how to fix this?

Nousemusic commented 8 years ago

Have you found a solution for the errors/ problem wirh paired speakers?

I've got the same problem, two Play3s (Küche) are crashing homebridge...

[Bad Stereo] Found a playable device at 192.168.2.133 for room 'Bad' [Küche Stereo] Found a playable device at 192.168.2.130 for room 'Küche' [Küche Stereo] Found a playable device at 192.168.2.153 for room 'Küche' dgram.js:461 throw new Error('Not running'); // error message from dgram_legacy.js ^

Error: Not running at Socket._healthCheck (dgram.js:461:11) at Socket.close (dgram.js:354:8) at SonosAccessory. (/usr/local/lib/node_modules/homebridge-sonos/index.js:70:23) at /usr/local/lib/node_modules/homebridge-sonos/node_modules/sonos/lib/sonos.js:614:7 at Parser. (/usr/local/lib/node_modules/homebridge-sonos/node_modules/sonos/node_modules/xml2js/lib/xml2js.js:255:20) at emitOne (events.js:77:13) at Parser.emit (events.js:169:7) at Object.saxParser.onclosetag (/usr/local/lib/node_modules/homebridge-sonos/node_modules/sonos/node_modules/xml2js/lib/xml2js.js:225:24) at emit (/usr/local/lib/node_modules/homebridge-sonos/node_modules/sonos/node_modules/xml2js/node_modules/sax/lib/sax.js:615:33) at emitNode (/usr/local/lib/node_modules/homebridge-sonos/node_modules/sonos/node_modules/xml2js/node_modules/sax/lib/sax.js:620:3)

Thanks in advance.

farberm commented 8 years ago

No solution yet

Sent from my iPad

On Dec 19, 2015, at 7:36 AM, Nousemusic notifications@github.com wrote:

Have you found a solution for the errors/ problem wirh paired speakers?

I've got the same problem, two Play3s (Küche) are crashing homebridge...

[Bad Stereo] Found a playable device at 192.168.2.133 for room 'Bad' [Küche Stereo] Found a playable device at 192.168.2.130 for room 'Küche' [Küche Stereo] Found a playable device at 192.168.2.153 for room 'Küche' dgram.js:461 throw new Error('Not running'); // error message from dgram_legacy.js ^

Error: Not running at Socket._healthCheck (dgram.js:461:11) at Socket.close (dgram.js:354:8) at SonosAccessory. (/usr/local/lib/node_modules/homebridge-sonos/index.js:70:23) at /usr/local/lib/node_modules/homebridge-sonos/node_modules/sonos/lib/sonos.js:614:7 at Parser. (/usr/local/lib/node_modules/homebridge-sonos/node_modules/sonos/node_modules/xml2js/lib/xml2js.js:255:20) at emitOne (events.js:77:13) at Parser.emit (events.js:169:7) at Object.saxParser.onclosetag (/usr/local/lib/node_modules/homebridge-sonos/node_modules/sonos/node_modules/xml2js/lib/xml2js.js:225:24) at emit (/usr/local/lib/node_modules/homebridge-sonos/node_modules/sonos/node_modules/xml2js/node_modules/sax/lib/sax.js:615:33) at emitNode (/usr/local/lib/node_modules/homebridge-sonos/node_modules/sonos/node_modules/xml2js/node_modules/sax/lib/sax.js:620:3)

Thanks in advance.

— Reply to this email directly or view it on GitHub.

Nousemusic commented 8 years ago

Sad to hear. Thank you for your help.

fwboettger commented 8 years ago

Quick solution (need to look into this some more to automate it more):

1) Add a new config value named "udn" into config.json, containing the UDN/uuid of the 'coordinator' player in a paired setup, e.g.

"accessories": [ { "accessory": "Sonos", "name": "Playbar", "udn": "RINCON_xxxxxxxxxxx", "room": "xxx" },

The actual UDN of the coordinator player can be identified by accessing http://sonosplayer_ip:1400/status/topology

2) edit the home bridge-sonos plugin's index.js: a) Add a property into function SonosAccessory:

function SonosAccessory(log, config) { ... this.name = config["name"]; this.udn = config["udn"]; this.room = config["room"];

if (!this.room) throw new Error("You must provide a config value for 'room'."); if (!this.udn) throw new Error("You must provide a config value for 'udn'.");

... }

b) edit the search function to solely consider the configured UDNs:

SonosAccessory.prototype.search = function() { var search = sonos.search(function(device) { var host = device.host; this.log.debug("Found sonos device at %s", host);

device.deviceDescription(function (err, description) {

    var zoneType = description["zoneType"];
    var roomName = description["roomName"];
    var udn = description["UDN"];

    if (!SonosAccessory.zoneTypeIsPlayable(zoneType)) {
      this.log.debug("Sonos device %s is not playable (has an unknown zone type of %s); ignoring", host, zoneType);
      return;
    }

    if (roomName != this.room) {
      this.log.debug("Ignoring device %s because the room name '%s' does not match the desired name '%s'.", host, roomName, this.room);
      return;
    }

    if (udn != "uuid:" + this.udn) {
            this.log.debug("Ignoring device %s because the udn '%s' does not match the desired udn '%s'.", host, udn, this.udn);
            return;
    }

    this.log("Found a playable device at %s for room '%s'", host, roomName);
    this.device = device;
    search.socket.close(); // we don't need to continue searching.
}.bind(this));

}.bind(this)); }

Nousemusic commented 8 years ago

Thank you for the quick solution. How do I install the changes?

I add a new config value named "udn" into config.json by hand. Do I have to edit the home bridge-sonos plugin's index.js by hand or can I just reinstall the whole plugin?

Thank you for your help in advance.

fwboettger commented 8 years ago

@Nousemusic - apologies for the belated response, have been away for a vacation... Yes you have to edit the plugin's index.js as well as the config.json locally on your server, and then obviously to restart homebridge. I didn't reflect this workaround with a respective pull request, hence this isn't included in the official plugin package and reinstalling thus would not come with this workaround. Meanwhile i'm working on a more sophisticated solution (see my respective pull request), however this isn't yet fully tested and not yet incorporated as well in the plugin package as well....

Nousemusic commented 8 years ago

@fwboettger I'm sorry, it's not working for me.

I used your index.js: https://raw.githubusercontent.com/fwboettger/homebridge-sonos/33f135b702ee245a7c8a850250138d20d34db0a4/index.js

I got the following error

ERROR LOADING PLUGIN homebridge-sonos: Error: Cannot find module 'underscore' at Function.Module._resolveFilename (module.js:336:15) at Function.Module._load (module.js:286:25) at Module.require (module.js:365:17) at require (module.js:384:17) at Object. (/usr/local/lib/node_modules/homebridge-sonos/index.js:2:9) at Module._compile (module.js:434:26) at Object.Module._extensions..js (module.js:452:10) at Module.load (module.js:355:32) at Function.Module._load (module.js:310:12) at Module.require (module.js:365:17)

Maybe you have a hint for me?

And Do I have to add the new config value named "udn" to every sonos accessory? Or only to the paired/ grouped accessories?

Thanks for your help in advance.

fwboettger commented 8 years ago

@Nousemusic - apologies, see also my comment at issue "Error after running homebridge command #10", seems to be related to the dependency to the underscore package introduced with my index.js (as the message "Error: Cannot find module 'underscore'" indicates).

I manually installed underscore via "npm install -g underscore" while creating this index.js - i thus suppose doing this manually for the time being as a work around would resolve your issue.

No need to use the "udn" stuff anymore with this approach (I didn't include this in the committed index.js at https://raw.githubusercontent.com/fwboettger/homebridge-sonos/33f135b702ee245a7c8a850250138d20d34db0a4/index.js, as i believe this new discovery approach should be superior to manually figuring out the UDNs and maintaining this manually within the config.json files).

Remark: I meanwhile identified that i need to refine the code some more. It's actually covering quite a lot scenarios (as far as i've been able to test in my home setup), however there're unfortunately still some related to dynamic grouping which are not fully being covered yet. As one can dynamically group and ungroup virtually any combination of sonos devices (also accross zones/rooms), one might come across settings where a "coordinator device" cannot be discovered by my current submitted and now merged code in index.js (such special situations aren't discovered as well by the previous code/version 0.0.2 by the way, so 0.0.3 still is an improvement and probably takes care of most typical setups i suppose). I roughly know what to do to refine and cover such scenarios as well, and anyway this needs to be combined with also implementing further functionality (event listeners) to react to Sonos topology change events, but i need to find some time to look into this...

Nousemusic commented 8 years ago

@fwboettger Thank you for your help, your great work on the plugin an the transparent explanation of your work.

So, what would be the best way to use the homebridge-sonos plugin with your index.js?

  1. install the homebridge-sonos plugin with "npm install -g homebridge-sonos"
  2. install underscore via "npm install -g underscore

That's it? No need to add the new config value named "udn" to the config.json?

Thanks in advance.

fwboettger commented 8 years ago

Dear @Nousemusic, thanks much and you're most welcome. Correct, your steps 1) and 2) should suffice, at least that's what i've got running :-) (and yes, no need to add any UDN value).

fwboettger commented 8 years ago

@Nousemusic - if i'm not mistaken, once you already have homebridge installed, you should also be able to update to the respective latest version simply via "npm update -g homebridge-sonos".

Nousemusic commented 8 years ago

@fwboettger Thanks for your hint. Yes, I already have homebridge installed and will update via "npm update -g homebridge-sonos". Perfect.

Nousemusic commented 8 years ago

@fwboettger Unfortunately it's not working for me, I got the following error:

/usr/local/lib/node_modules/homebridge-sonos/index.js:145 var zoneType = description["zoneType"]; ^ TypeError: Cannot read property 'zoneType' of undefined at SonosAccessory. (/usr/local/lib/node_modules/homebridge-sonos/index.js:145:35) at Request._callback (/usr/local/lib/node_modules/homebridge-sonos/node_modules/sonos/lib/sonos.js:608:21) at self.callback (/usr/local/lib/node_modules/homebridge-sonos/node_modules/sonos/node_modules/request/request.js:129:22) at emitOne (events.js:77:13) at Request.emit (events.js:169:7) at ClientRequest.self.clientErrorHandler (/usr/local/lib/node_modules/homebridge-sonos/node_modules/sonos/node_modules/request/request.js:239:10) at emitOne (events.js:77:13) at ClientRequest.emit (events.js:169:7) at Socket.socketOnEnd (_http_client.js:288:9) at emitNone (events.js:72:20)

My sonos instrallation: I've got two "play3" (Küche) paired and grouped with a "connect" (Wohnzimmer):

Zone Name Coordinator Group

Küche false RINCON_000E5858ADC601400:1 Mobil true RINCON_000E5858ADC601400:2 Bad true RINCON_B8E93753A6F201400:2 Kinderzimmer true RINCON_B8E9375642BA01400:2 Wohnzimmer false RINCON_000E5858ADC601400:1 Küche true RINCON_000E5858ADC601400:1

fwboettger commented 8 years ago

@Nousemusic - thanks much for your topology description, very helpful.

I suspect the error you're experiencing is related to the "connect" possibly not responding with the same properties as a 'regular' sonos loudspeaker, leading to this exception. Could you try and insert a line

console.log("Device description debug: " + description);

directly in front of the "var zoneType = description["zoneType"];" statement in line 145, then restart homebridge, and post me the log output for the part where the exception occurs? I don't have a 'connect' myself and thus i'm not able to test myself i'm afraid....

Nousemusic commented 8 years ago

@fwboettger I did the following, editing the index.js:

... device.deviceDescription(function (err, description) {

    console.log("Device description debug: " + description);

    var zoneType = description["zoneType"];
    var roomName = description["roomName"];

...

Restarting Homebridge, I only got the following screen message:

Device description debug: [object Object] Device description debug: [object Object] Device description debug: [object Object] Device description debug: [object Object] Device description debug:undefined /usr/local/lib/node_modules/homebridge-sonos/index.js:146 var zoneType = description["zoneType"]; ^

TypeError: Cannot read property 'zoneType' of undefined at SonosAccessory. (/usr/local/lib/node_modules/homebridge-sonos/index.js:146:35) at Request._callback (/usr/local/lib/node_modules/homebridge-sonos/node_modules/sonos/lib/sonos.js:608:21) at self.callback (/usr/local/lib/node_modules/homebridge-sonos/node_modules/sonos/node_modules/request/request.js:129:22) at emitOne (events.js:77:13) at Request.emit (events.js:169:7) at ClientRequest.self.clientErrorHandler (/usr/local/lib/node_modules/homebridge-sonos/node_modules/sonos/node_modules/request/request.js:239:10) at emitOne (events.js:77:13) at ClientRequest.emit (events.js:169:7) at Socket.socketOnEnd (_http_cli

What to do?

fwboettger commented 8 years ago

@Nousemusic - believe you unfortunately identified a bug in my code :-( i didn't check on the err object...

Quick workaround attempt for you (will need to submit a pull request for the fix, and @nfarina would need to merge):

Edit your local index.js file and replace the "SonosAccessory.prototype.search" function with the below (

SonosAccessory.prototype.search = function() { var search = sonos.search(function(device) { var host = device.host; this.log.debug("Found sonos device at %s", host);

device.deviceDescription(function (err, description) {

    if (err) {
      this.log.debug("Error retrieving device description for %s", host);
    }
    else {
      if (description != undefined) {
      var zoneType = description["zoneType"];
    var roomName = description["roomName"];
    var udn = description["UDN"];

    if (!SonosAccessory.zoneTypeIsPlayable(zoneType)) {
      this.log.debug("Sonos device %s is not playable (has an unknown zone type of %s); ignoring", host, zoneType);
      return;
    }

    if (roomName != this.room) {
      this.log.debug("Ignoring device %s because the room name '%s' does not match the desired name '%s'.", host, roomName, this.room);
      return;
    }

    var coordinator = getZoneCoordinator(roomName, devices);
    if (coordinator != undefined) {
            if (udn == "uuid:" + coordinator.uuid) {
                    if (registeredSonosZoneCoordinators.get(coordinator.uuid) == undefined) {
                            this.log("Found a playable coordinator device at %s for room '%s'", host, roomName);
                            this.device = device;
                            registeredSonosZoneCoordinators.set(coordinator.uuid, coordinator);
                            search.socket.close(); // we don't need to continue searching.
                    }
            }
    }
      }
    }

}.bind(this));

}.bind(this)); }

let me know please results....

Nousemusic commented 8 years ago

@fwboettger Thank you for your help. I insert the code you gave me:

SonosAccessory.prototype.search = function() { var search = sonos.search(function(device) { var host = device.host; this.log.debug("Found sonos device at %s", host);

device.deviceDescription(function (err, description) {

if (err) {
  this.log.debug("Error retrieving device description for %s", host);
}
else {
  if (description != undefined) {
  var zoneType = description["zoneType"];
var roomName = description["roomName"];
var udn = description["UDN"];

if (!SonosAccessory.zoneTypeIsPlayable(zoneType)) {
  this.log.debug("Sonos device %s is not playable (has an unknown zone type of %s); ignoring", host, zoneType);
  return;
}

if (roomName != this.room) {
  this.log.debug("Ignoring device %s because the room name '%s' does not match the desired name '%s'.", host, roomName, this.room);
  return;
}

var coordinator = getZoneCoordinator(roomName, devices);
if (coordinator != undefined) {
        if (udn == "uuid:" + coordinator.uuid) {
                if (registeredSonosZoneCoordinators.get(coordinator.uuid) == undefined) {
                        this.log("Found a playable coordinator device at %s for room '%s'", host, roomName);
                        this.device = device;
                        registeredSonosZoneCoordinators.set(coordinator.uuid, coordinator);
                        search.socket.close(); // we don't need to continue searching.
                }
        }
}
  }
}

}.bind(this));

}.bind(this)); }

I got the following error message:

events.js:141 throw er; // Unhandled 'error' event ^

Error: listen EADDRINUSE :::51826 at Object.exports._errnoException (util.js:837:11) at exports._exceptionWithHostPort (util.js:860:20) at Server._listen2 (net.js:1231:14) at listen (net.js:1267:10) at Server.listen (net.js:1363:5) at EventedHTTPServer.listen (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/util/eventedhttp.js:58:19) at HAPServer.listen (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/HAPServer.js:132:20) at Bridge.Accessory.publish (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/Accessory.js:347:16) at Server._publish (/usr/local/lib/node_modules/homebridge/lib/server.js:50:16) at Server. (/usr/local/lib/node_modules/homebridge/lib/server.js:220:14)

Seems like the stand alone player are found, the paired "Küche" and the grouped "Wohnzimmer" not because there's no such message: ... [Mobil Stereo] Found a playable coordinator device at 192.168.2.117 for room 'Mobil' [Kinderzimmer Stereo] Found a playable coordinator device at 192.168.2.136 for room 'Kinderzimmer' [Bad Stereo] Found a playable coordinator device at 192.168.2.133 for room 'Bad' ...

fwboettger commented 8 years ago

@Nousemusic - ok. can you now please try the following:

1) ungroup kitchen and living room zones (your paired "Küche" play3's grouped with the "Wohnzimmer" connect 2) remove the "Wohnzimmer" accessory (your connect device) completely from your config.json 3) restart homebridge and test/verify that everything (except the "Wohnzimmer" connect of course) is being discovered and available in homekit as well

Then 4) add your "Wohnzimmer" connect as accessory to your config.json again 5) group again "Küche" and "Wohnzimmer" from the sonos app, but make sure that you first select "Küche" and then create a group by adding "Wohnzimmer" (and NOT the other way around - this ensures that one of your play3's becomes the coordinator device and not the connect). 6) restart homebridge to try - i believe this will probably fail (obviously the connect behaves differently, and i'm not that familiar with the node-sonos library which is being used hereto by the homebridge-sonos plugin...), but believe it's worth one try :-)

Nousemusic commented 8 years ago

@fwboettger Here is what i did. Just to inform you by the beginning: our story has a happy end. :-)

I did step 1 to 3.

Then I did step 5:

Should I do step 4 for you to collect data about the behaviour of the connect?

fwboettger commented 8 years ago

@nousemusic - great to hear that this works for you and suffices your requirements!

Well, with skipping step 4 you outsmarted me. Wanted to misuse you of course for testing purposes :-) Yes would be great if you could give this a try nonetheless; you should anytime of course be able to undo step 4 and have it running to your satisfaction again :-)

Nousemusic commented 8 years ago

@fwboettger I'm sorry, I have bad news.

I added the "Wohnzimmer" connect as accessory to the config.json. Homebridge is running but shows the following message: [Wohnzimmer Stereo] Ignoring request; Sonos device has not yet been discovered.

Seems like homebridge is trying to find the "Wohnzimmer" connect and fails without a timeout.

One final question: What ist included in the v0.0.4 of the package? The underscore instance and the changes in the index.js you told me as quick workaround?

Edit: I testet it a few times. It is not running stable. Sometimes the players are all found (except the "Wohnzimmer" connect), sometimes not. And sometimes homebridge ist not starting. Finaly, I removed the "Wohnzimmer" connect as accessory to the config.json. That will work for me.

fwboettger commented 8 years ago

@Nousemusic - thanks much for supporting with the test. Good news it doesn't seem to throw exceptions at least, but "doesn't work" was to be expected, so good to have this confirmed.

Version 0.0.4 - @nfarina has been resolving my mistake with the missing reference to the underscore instance. No, doesn't include yet the "err object check" bugfix (changes in the index.js i sent you as quick workaround). As long as you keep the "Wohnzimmer" connect removed from your config.json, should be fine though to safely update. Will continue to work on improvements as described earlier in the coming days, inclusive of this bugfix, and then create a pull request eventually once i've been successful (and able to test as well).

Nousemusic commented 8 years ago

@fwboettger I got some new results/ informations.

When I use the v0.0.3, the underscore instance, the "err object check" bugfix and delet the "Wohnzimmer" connect, homebridge is running and works correctly but the first device listet in the config.json under "accessories" is not shown in the app and therefor can not be controlled.

I fixed it for me by adding the "Wohnzimmer" connect as fist entry in the config.json under "accessories". Homebridge is runningand works correctly, and all sonos players are shown in the app and can be controlled. "Wohnzimmer" is not shown in the app, but becaus it's a connect couldn't be controlled anyway.

fwboettger commented 8 years ago

@Nousemusic - just finished with my pull request for the earlier described improvements (bugfixes, discovery improvements of paired and grouped scenarios (also cross zone / room groups, even with devices which aren't associated to a "homebridge accessory" as per config.json), as well as detecting dynamic topology / group changes by subscribing to the events and reacting to these. It should also cover your situation actually. Hopefully will result in version 0.0.5 in case @nfarina agrees and has time to merge. Would be great if you then could update and help to confirm that this working (with either "Wohnzimmer" or no "Wohnzimmer" in your config.json)....

Nousemusic commented 8 years ago

@fwboettger Thank you very much for your great and permanent work on the sonos plugin. I really appreciate it!

I will test the new functions and the behaviour in my environment and report it to you as soon as version 0.0.5 is released by @nfarina.

mattnewham commented 8 years ago

Confirmed the above is now working.