Sunday, July 5, 2015

A Microscope for Sonos

One of my previous annoyances at Sonos has been the lack of any way to find out how well it is working.  It usually works flawlessly, but then a problem may happen out of the blue.  When that happens you begin to suspect that something isn't quite right, perhaps an ethernet cable is loose or something like that, but you have no way of getting more information.  It either works or it doesn't.  Lots of other devices like mobile phones have indicator that show the signal strength, etc., but not Sonos.  In qualification it must be said that Sonos is far more reliable than cellular connections if you are moving about, so it doesn't need a "quality meter" as much as those other things do.  At least in my experience.

(And it is especially reliable when playing back files as compared with line in sources.  It can do that almost flawlessly over wireless.  But when playing line-in sources over wireless, which is my most frequent mode of usage, I sometimes did get dropouts, so I switched to fully wired, which still sometimes may have dropouts, which have virtually disappeared mostly now that I'm using a 24 port gigabit switch that most things are connected to, and may get still better if I actually connect Everything to the switch.)

Though all my Zoneplayers and Connects are wired, I sometimes worry that they may have decided to use wireless mode and once having made that decision sticking with it.  I have read that Sonos nodes that are wirable determine whether to use the wire when powered on.  But I have seen situations where nodes go wireless when after a power failure the ethernet services were temporarily unavailable.  I don't believe the blinking lights on the back of the Connect as definitive as to whether the node is using wired or wireless.  I wish there was some definitive indicator that told you which mode was being used, as well as things like signal quality, error rates, and so on.

But now, I have found the "back door" to Sonosnet which lets you get all the status information it makes available.

Turns out the Sonos has an admin web interface on port 1400. A URL like http://192.168.0.20:1400/support/review brings up a bunch of debug data; substitute the IP address for one of your Sonos devices. It loads slowly. Also appears to be centralized, no need to find the right device first.

This is very interesting.  What I see does seem to suggest the Living Room node, which is connected via Living Room #2, is getting the weakest connection in my system.  I should probably upgrade that to having a direct connection to my switch, which will in turn require me to upgrade the video connection to the living room so it only needs one Cat6a rather than the two it now requires, thereby giving me a spare Cat6a.  Possibly even just unburying the wire from the bottom of the pile of wires it is currently under would even help.  I mean the ethernet wire connecting Living Room and Living Room 2 zone players.

Unfortunately this status interface isn't documented at all.  I am getting the idea that I can also tell that everything is using wired connection however.  Over time I'll figure things out better, I hope, and will hopefully continue being able to use this interface.

I checked out the Python interface to Sonos.  But it doesn't provide anything interesting to me: any new back door information (or control!).

But over here, I found out both how to interpret the Sonos displays, AND, over here, I found out how to shut off the Sonos wifi altogether, which is neat.  With this explanation, I could see that indeed my Turntable and Tape Zoneplayer was communicating with Bedroom Sonos via wifi.  Well I checked the connection, and I had never actually hooked the Cat6a wire between the two!  No wonder I had been getting dropouts, and in retrospect it's also interesting how after awhile the dropouts disappeared even with two-way communication involving the Zoneplayer.  So the "mystery" is now solved.  Also I could see that as soon as I connected the wire, the wifi connection became disused, no need for a reboot.  But it appears there may be some kind of diversity operation involved, which sometimes hits the wifi hard if there is ethernet congestion.  (This also causes ethernet congestion…further retarding the original problem for awhile.)  I have long suspected this, and the discussion seems to confirm this.

I followed the latter instructions and permanently disabled the wifi in all my Zoneplayers with commands like this:

http://192.168.1.118:1400/wifictrl?wifi=persist-off

This removed all the colors from the diagnostic mesh display, which apparently is mostly about the wifi.

But it has always seemed to me that the dropouts for line inputs were a cost of having kept the line input latency fairly low--low enough to be tolerable if barely tolerable when working with TV for example.  That appears to have been a design decision.  Well I don't think low latency is a big issue for me, so I'd love a way to crank up the latency to 1 second or so, giving the ethernet an almost perfect ability to prevent dropouts.  I've looked several times in the control menus for a latency control and failed to see it, but the above command gives hope there may be lots of hidden controls.





No comments:

Post a Comment