| Developer: | Open Source Plugins |
| Category: | A/V and IR Equipment |
| Github: | Github Repo |
| License: | MIT License |
| Assistance: | Get help! |
| Plugin ID: | com.ssi.indigoplugin.Sonos |
| Latest release: | v2025.2.4 released on Aug. 9, 2026 |
| Release downloaded: | 29 times |
| Requires: | Indigo v2023.2.0 or higher |
| (Check the Releases tab below for older releases that may have different requirements) | |
| Download latest release |
Control your entire Sonos system from Indigo — playback, volume, grouping, favourites, streaming services, announcements, soundbar tuning, and native Sonos alarms — as first-class Indigo devices, actions, and triggers.
Current version: 2025.2.4 · Requires Indigo 2025.2+ (API 3.4) · Bundled SoCo 0.30.9 · Python 3
This release overhauls the announcement system end-to-end and fixes several bugs reported against 2025.2.3.
say (the previous NSSpeechSynthesizer API is deprecated and renders silence for modern voices), the voice menu lists only voices that actually work, and output is Sonos-compatible 44.1 kHz WAV (the old AIFF output was an AIFF-C container Sonos rejects).Announcements now snapshot every target zone (SoCo Snapshot/Restore — the same mechanism Home Assistant uses; selectable in Plugin Config, on by default) and afterwards rebuild the exact pre-announcement state: original groups re-form (including group members that weren't part of the announcement), standalone zones return to standalone, volumes/mutes restore, and interrupted music resumes at the same track and position. See the Known Limitation in the version history: cloud-queue sources (Alexa-initiated, Spotify Connect, AirPlay) cannot be programmatically resumed.
Players on a separate VLAN must be able to reach the Indigo Mac on tcp/8889 (announcements), tcp/8888 (album art), and tcp/1400 (event notifications) — a one-way firewall breaks all three silently while normal control keeps working. The plugin now detects players on a different subnet at startup and logs the exact rules needed, and a fetch watchdog reports when a player never pulled the announcement file.
The plugin log file always captures full debug detail (nothing is lost when the Event Log is set to normal), while Event Log noise — album-art fetch retries, per-event state chatter, startup floods — has been sharply reduced. Album-art fetches use longer timeouts, and the last unbounded HTTP calls got timeouts.
This release is a major reliability and completeness overhaul, addressing the failure cascade reported in IndigoDomotics/Sonos#16 and restoring a number of actions that had silently stopped working.
Previously, a single unplugged speaker could freeze the whole plugin — minutes-long startups, a config dialog that would not open, reloads needing a force-kill, and log storms hammering healthy players. All of that is fixed:
offline device state in Indigo, and skipped (with a 30-second back-off) instead of blocking the plugin in serial 10–20 s network timeouts.DeviceProperties fetches against dead players.If your players live on a dedicated subnet (e.g. Sonos on 192.168.30.0/24, Indigo Mac on 192.168.1.0/24):
An automated end-to-end audit (Actions.xml → plugin.py → handler) found 10 actions that were offered in the UI but did nothing (logging "Unknown or unsupported action") or crashed. All are restored and verified:
| Action | Status |
|---|---|
| Play RadioTime Favourite Station | Restored (was breaking alarm/announcement action groups) |
| Bass / Treble (set to level) | Restored — no handler existed at all |
| Night Mode | Restored |
| Play Queue | Restored |
| Sleep Timer | Restored |
| TV Input (soundbars) | Restored |
| Dump URI (diagnostics) | Restored |
| Pandora Thumbs Up / Thumbs Down | Restored — handler method was missing |
| Test SiriusXM Channel | Fixed malformed action definition + missing callback |
| Line-In | Fixed in 2025.2.1 (#15) |
Also fixed in this area:
urllib.unquote) crashed favourites; fixed. Favourite routing also corrected: x-sonosapi-hls: is a generic HLS scheme (Sonos Radio HD, Apple Music radio, …) and is no longer misrouted to the SiriusXM handler — only URIs carrying channel-linear:<guid> are SiriusXM. Generic HLS/HTTP favourites now play via their stored URI + metadata.ZP_SiriusXM missing props, Q_Crossfade arity) fixed.Feature set cross-checked against Home Assistant's Sonos integration; the following were added using the same SoCo/UPnP semantics:
Equalizer / soundbar controls (Actions → Sonos → Equalizer):
Native Sonos alarm management (Actions → Sonos → Alarms):
07:00 — Master Bedroom — DAILY — enabled), with Enable / Disable / Toggle and an optional volume override. Perfect for "disable the wake-up alarm on public holidays" style automations.Sonos.indigoPlugin — Indigo installs and enables it.auto. Used to load favourites/playlists/stations.192.168.30.0/24). If your Mac isn't directly on that subnet, the plugin automatically uses the routed interface — you don't need to change anything.Players that are offline when the plugin starts show an offline device state and are picked up automatically when they reappear.
Each ZonePlayer device exposes rich states usable in triggers and control pages, including transport state, track metadata + album art, volume/mute/bass/treble, grouping (Grouped, GROUP_Coordinator, GROUP_Name, ZonePlayerUUIDsInGroup), queue flags (repeat/shuffle/crossfade), and identity (ZP_LocalUID, model, serial).
Grouped players mirror the coordinator's enriched metadata states, so a control page bound to any group member shows what's actually playing.
offline — the plugin probes it every 60 s and will restore it automatically once reachable. Nothing to do.2025.2.4 — Announcement system overhaul: multi-zone announcements fixed (grouping semantics regression), full group & playback restore after announcements — zones return to their exact pre-announcement groups (including group members that weren't part of the announcement) and music resumes at the same track/position via SoCo Snapshot/Restore (selectable in Plugin Config, on by default, with the legacy flow as fallback). Apple text-to-speech reworked onto macOS say (voice menu now lists only voices that actually render; output is Sonos-compatible 44.1 kHz WAV). Polly/IVONA/Pandora/SiriusXM credentials and Apple voices load at startup again. TTS audio unified onto the announcement HTTP server's folder (TTS previously 404'd; File announcements could probe a stale file's duration). Cross-VLAN diagnostics: startup warning + a fetch watchdog name the exact firewall rules needed (players must reach the Mac on tcp/8889 announcements, tcp/8888 album art, tcp/1400 event notifications). DHCP-moved players self-heal by matching their RINCON id in discovery and updating the device address automatically. Plugin log file now always captures full debug detail; Event Log noise sharply reduced. Album-art fetches use longer timeouts and no longer warn.
Known limitation — announcement playback resume: sources Sonos exposes as cloud queues — Alexa-initiated music, Spotify Connect, and AirPlay streams — cannot be restarted programmatically (Sonos provides no API to resume them; Home Assistant has the same limitation). After an announcement, grouping and volume are still restored for those zones, but that music will not auto-resume. Local queue playback, Sonos favourites, and radio streams all resume normally, at the same track and position.
2025.2.3 — Offline-player resilience (probe gating, UID caching, bounded timeouts, clean shutdown), routed-VLAN support, announcement topology-storm fix, state-list resync, 10 restored actions, favourites routing fixes, new Equalizer/soundbar actions, native Sonos alarm management. See PR #17.
2025.2.1 — Line-In action fix (#15); HTTPStreamer port leak and Polly prefs fixes (#14); dynamic install-path resolution (#13).
1.0.2 — SoCo 0.30.9 upgrade; rewritten subscriptions with fallback; VLAN-aware discovery; corrected volume/bass/treble controls; SiriusXM login + channel processing; Pandora auth ported to Python 3; artwork/metadata server; group metadata mirroring; diagnostic menu dumps.
Originally by Vic Solomon; Python 3 port and ongoing maintenance by the Indigo community (IndigoDomotics), with contributions from forum users and plugin contributors. Uses the SoCo library. Not affiliated with Sonos, Inc.
See LICENSE.
| Released on: | Aug. 9, 2026 |
| Requires: | Indigo v2023.2.0+ |
| Downloaded: | 29 times |
| Download this release | |
Numerous bug fixes. See #18 for details.
| v2025.2.3 | Requires Indigo v2023.2.0+ | Released Aug. 8, 2026 | Fix Startup/Reload Hangs, Restore Lost Actions, Add HA-Parity Feature… |
| Released on: | Aug. 8, 2026 |
| Requires: | Indigo v2023.2.0+ |
| Downloaded: | 13 times |
| Download this release | |
See #17 for a full description of the changes.
| Released on: | Aug. 4, 2026 |
| Requires: | Indigo v2023.2.0+ |
| Downloaded: | 18 times |
| Download this release | |
| Released on: | May 7, 2026 |
| Requires: | Indigo v2023.2.0+ |
| Downloaded: | 89 times |
| Download this release | |
Full Changelog: https://github.com/IndigoDomotics/Sonos/compare/2025.0.1...2025.2.0
| Released on: | April 30, 2026 |
| Requires: | Indigo v2023.2.0+ |
| Downloaded: | 53 times |
| Download this release | |
Full Changelog: https://github.com/IndigoDomotics/Sonos/compare/2024.0.9...2025.0.1
| Released on: | Jan. 26, 2024 |
| Requires: | Indigo v2023.2.0+ |
| Downloaded: | 310 times |
| Download this release | |
The previous required version of lxml (4.9.4) wasn't properly support on versions of macOS prior to Big Sur (11). LXML required version upped to 5.1.0.
| Released on: | Jan. 18, 2024 |
| Requires: | Indigo v2023.2.0+ |
| Downloaded: | 83 times |
| Download this release | |
Requires Indigo 2023.2 - Will not run on earlier versions! Improved python package handling Code improvements
| v2023.1.0 | Requires Indigo v2022.1.2+ | Released Dec. 16, 2023 | Update Plugin to Use latest SoCo Package |
| Released on: | Dec. 16, 2023 |
| Requires: | Indigo v2022.1.2+ |
| Downloaded: | 145 times |
| Download this release | |
The SoCo package was updated to version 0.30.0 on 14th December 2023 and is now included in the plugin - see SoCo 0.30.0 Release
| Released on: | Aug. 7, 2023 |
| Requires: | Indigo v2022.1.2+ |
| Downloaded: | 203 times |
| Download this release | |
Requires Indigo 2022.1 Suppress SSDP Debug/Error Messages
| Released on: | March 28, 2020 |
| Requires: | Indigo v7.0.2 thru v2022.2 |
| Downloaded: | 42 times |
| Download this release | |
Variable substitution for Volume and Group Volume actions.
| Released on: | Oct. 19, 2019 |
| Requires: | Indigo v7.0.2 thru v2022.2 |
| Downloaded: | 41 times |
| Download this release | |
Reduced some error logging Can play Spotify playlists and tracks from Sonos Favorites Library Updates: SoCo v0.18 with customizations requests 2.22.0 *Twisted v19.7.0
Indigo v7
| Released on: | April 7, 2019 |
| Requires: | Indigo v7.0.2 thru v2022.2 |
| Downloaded: | 47 times |
| Download this release | |
Refactored loading Sonos Favorites
Indigo v7 Sonos Firmware v10.1
| Released on: | April 7, 2019 |
| Requires: | Indigo v7.0.2 thru v2022.2 |
| Downloaded: | 43 times |
| Download this release | |
Repackaged with correct Zope library
Indigo v7 Sonos Firmware 10.1
| Released on: | April 7, 2019 |
| Requires: | Indigo v7.0.2 thru v2022.2 |
| Downloaded: | 46 times |
| Download this release | |
Code Fixes for Sonos Firmware v10.1 Library Updates: Twisted v18.9.0 attr v18.1.0 pyOpenSSL 18.0.0 zope.interfaces v4.6.0 gTTS v2.0.0 gTTS-token v1.1.1 mutagen 1.41.1 requests 2.20.1 *urllib3 1.24.1
Indigo v7 Sonos v10.1
| Released on: | March 24, 2018 |
| Requires: | Indigo v7.0.2 thru v2022.2 |
| Downloaded: | 44 times |
| Download this release | |
Indigo v7+
| Released on: | March 13, 2018 |
| Requires: | Indigo v7.0.2 thru v2022.2 |
| Downloaded: | 43 times |
| Download this release | |
Indigo v7+