Skip to content
Homebridge TestFlight
Sonos

Sonos Switch

homebridge-sonos · v0.4.0

VerifiedLocal

Adds Sonos speakers to HomeKit as on/off switches.

What it says it supports

Brands

  • Sonos

Devices it names

  • Sonos speakers

Shows up in Apple Home as from its README

What people report

Sonos speakers work, including grouped, paired and multi-device rooms after merged PRs; older discovery issues with Wi-Fi setups and old Raspberry Pis.

  • Works2
  • Not working2
DeviceStatusWhat they saidSource
Sonos group coordinators / paired speakersWorksCoordinator registration for paired and grouped setups merged
Saved copy
@nfarina i'd like to propose this change which i believe does resolve the issue “Intermittent error on startup, with paired Play 1's #4” (https://github.com/nfarina/homebridge-sonos/issues/4). The code changes (based on code samples from node-sones) in index.js now identify the current “coordinator” sonos device for a respective zone (room) and register these as homekit accessories. Tested in my environment at home (playbar with sub and 2 play3 paired to a 5.1 surround setup in the living room, and several non-paired individual devices in other rooms).

Excerpt saved from GitHub on 2026-10-22.

PR #8 · 2016-01
Sonos soundbar with Sub and Play:1 in one roomWorksMulti-device rooms supported after merged fix
Saved copy
I've got a room, where a Soundbar, a Sub and two Play:1 players a connected to one 'device'. As the same room name is assigned to all these devices, the search loop hits several times and crashes, as the search.destroy method is called multiple times. Fixed this.

Excerpt saved from GitHub on 2026-10-22.

PR #66 · 2020-01
Sonos on Raspberry Pi 1/2Not workingHomebridge hit 98% CPU; worked in Ubuntu VM
Saved copy
I have tested on a Raspberry 1 B and on a Raspberry 2 B. After installing homebridge verything looks good, until i install the homebridge-sonos plugin and add any sonos-speoker to the config-json. Atter this change the homebridge does still start without error, but it becomes unresponsive. The new Speaker are also now showing in HomeKit. Looking into TOP i can see that homebridge is constantly using 98 % CPU Also as long as homebridge-sonos is running in homebridge, the whole Sonos System becomes unresponsive. I need to stop hiomebridge in order to be able to start/stop any Sonos player. Any …

Excerpt saved from GitHub on 2026-10-22.

Issue #40 · 2016-10
Sonos speakers connected over Wi-FiNot workingPlugin found router instead of speakers; user patch worked
Saved copy
Hi I have my sonos speakers so they connect over wifi rather than over SonosNet. I think this is causing problems for the search code. The search runs and dumping out the responses shows the devices are found fine by the UDP ping in the sonos lib code (see below). In the main sonos code, it seems to be that the code sees my router (which is probably what is forwarding the UDP packets back). Should the code not read the IP of the devices from the location field rather than the rinfo field? TTP/1.1 200 OK CACHE-CONTROL: max-age = 1800 EXT: LOCATION: …

Excerpt saved from GitHub on 2026-10-22.

Issue #9 · 2016-01

Gathered from the plugin’s GitHub issues, pull requests, discussions, wiki and docs, and from r/homebridge. These are individual reports, so check the linked thread and the date before you buy.

How it connects

Local

Sonos speakers on LAN

Compatibility

Verified by HomebridgeYes
Homebridge versions>=0.2.0
Homebridge 2.0No
Node.js>=0.12.0
Settings in Homebridge UIYes
MatterNo
Platform nameSonos
LicenseISC

Community signals

Downloads a week12
Downloads a month64
GitHub stars162
Open issues39
Closed issues26
Last code push2020-06-23
Latest version0.4.0 (2020-06-23)
First published2015-11-09
Releases15

In ReReHome

Whatever this plugin publishes reaches Apple Home as a normal HomeKit accessory behind your Homebridge bridge, so ReReHome shows and controls it like any other.

Bridges get their own settings page listing the accessories behind them.

HomeKit services in its code

Found by scanning the published npm package. A plugin can register a service only for some devices.

  • Switch