Disabling the WiFi Link on a Sonos Music Player
All Sonos players attempt to establish a peer-to-peer wireless mesh network known as SonosNet as soon as they are powered up. While this is convenient, there are several situations in which turning off this WiFi connection makes sense:
- You own a single player that you connected directly to your home router with an Ethernet cable. You don't need the built-in SonosNet, so why not deactivate it to reduce power consumption and electromagnetic radiations.
- You live in a neighborhood where many WiFi networks are already crowding up the spectrum. You've hard-wired all your players to make sure the music streams smoothly, free of glitches and interruptions. You don't want to create new sources of WiFi interference, making an already bad situation even worse.
- SonosNet relies on the spanning tree protocol (aka STP) to function properly, so if your other network equipment doesn't support this functionality your entire network will be overloaded by broadcast storms and frequently crash. Instead of upgrading your network it is much easier and cheaper to eliminate the source of the problem.
- You're worried about WiFi-Jacking. Why leave a backdoor in your network that can't be strongly secured?
It is possible to switch on or off the wireless adapter of each Sonos player individually. Here's how in 3 simple steps.
Step 1: Finding the IP address of the device
From the Sonos controller, click on the "about my sonos system" menu. You should see something like this:
PLAY:5: Bedroom Serial Number: 00-0E-58-2D-B0-C3:3 Version: 4.2 (build 24071060) Hardware Version: 1.16.4.1-1 IP Address: 192.168.1.27 OTP: 1.1.1(1-16-4-zp5s-0.5)
In the example above, the address is 192.168.1.27. We'll refer to it as <sonos_ip> in the rest of this article.
If you feel more technically inclined, you can also retrieve the IP address from your DHCP server. Sonos registers its players under the "SonosZP" client ID.
Step 2: Checking the status of the Wifi link
Sonos provides a little known on the port 1400 of their players that you can access from any web browser at the following URL:
http://<sonos_ip>:1400/status/ifconfig
You should see something like this:
The entrie labeled 'eth0' and 'eth1' correspond to the 2 wired ports. The 'lo' and 'br0' interfaces are virtual networking devices used internally by the Linux kernel. The entry we're interested in is labeled 'ath0', which stands for Atheros device 0. Atheros is the manufacturer of the embedded WiFi chip.
Step 3: Disabling the link
To disable the WiFi link start by issuing the following HTTP request:
http://<sonos_ip>:1400/wifictrl?wifi=off
You should get the following answer:
wifictrl request succeeded HTTP 200 OK
You can also check that the link has indeed been disabled by going back to the status page. The 'ath0' entry should not be present anymore. The setting is not persistent, so if you happen to be unable to connect to your player after disabling the WiFi you can undo the change by power cycling the player.
If you want to disable the WiFi link for good, simply issue the following http request:
http://<sonos_ip>:1400/wifictrl?wifi=persist-off
The change will now be preserved even after an upgrade. If you ever need to connect the player wirelessly in the future you can turn the WiFi back on as follow:
http://<sonos_ip>:1400/wifictrl?wifi=on
Impact on power consumption
I measured the power consumption of several players with a wattmeter which is accurate to +/- 0.5 watt. Turning off the WiFi link reduces the power consumption of the players by about 2 Watts. Here are the results measured when the players are idle:
Player | WiFi ON | WiFi OFF |
---|---|---|
Play:5 | 6.5W | 4.5W |
Connect | 4W | 2W |
Connect:AMP | 6.5W | 4.5W |