soco 0.1.0 copy "soco: ^0.1.0" to clipboard
soco: ^0.1.0 copied to clipboard

Control Sonos speakers programmatically. Discover devices, manage playback, groups, alarms, and more. Port of Python SoCo library.

Changelog #

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

0.1.0 - 2025-11-30 #

Initial Release #

First public release of the SoCo Dart port. This is a complete port of the Python SoCo library, providing programmatic control of Sonos speakers from Dart applications.

Added #

Core Features

  • SoCo class with 120+ methods for comprehensive speaker control
  • Device discovery via SSDP multicast and network scanning
  • Playback control: play, pause, stop, next, previous, seek, play from queue
  • Volume & audio: volume, mute, bass, treble, loudness, balance
  • Queue management: get, add, remove, clear, reorder queue items
  • Group management: join, unjoin, party mode, zone groups
  • Music library: browse and search local music library
  • Alarms: full CRUD operations for Sonos alarms
  • Snapshot/restore: save and restore speaker state
  • Events: UPnP subscriptions with Dart Streams
  • Sleep timer and battery info support

Advanced Features

  • Home theater: night mode, dialog mode, audio delay
  • Surround speakers: enable/disable, volume control
  • Subwoofer: enable/disable, gain, crossover settings
  • Stereo pairs: create and separate stereo pairs
  • Trueplay and fixed volume support
  • Line-in and TV input switching

Music Services

  • Music service accounts management
  • Token store for service authentication
  • Service-specific data structures
  • Music service browsing and playback

Plugins

  • Plugin system base infrastructure
  • ShareLink plugin: Share music links across services
  • Plex plugin: Plex media server integration
  • Example plugin template

Data Structures

  • DIDL-Lite metadata classes (tracks, albums, artists, playlists)
  • Search results with pagination
  • Zone group and zone member structures
  • Alarm and snapshot data models

Project Statistics #

  • 18 core modules fully ported
  • 5 music service modules
  • 4 plugin modules
  • 21 test modules with 567+ unit tests
  • 80% code coverage (1843/2304 lines)
  • 7 comprehensive examples
  • Zero analyzer warnings

Differences from Python SoCo #

  • All I/O operations are async (Future-based)
  • Events use Dart Streams instead of callbacks
  • Full null-safety support
  • Dart naming conventions (camelCase)
  • Immutable data structures where appropriate

Unreleased #

Planned #

  • Additional music service integrations
  • Performance optimizations
  • More comprehensive documentation
1
likes
0
points
18
downloads

Documentation

Documentation

Publisher

verified publisherhornmicro.com

Weekly Downloads

Control Sonos speakers programmatically. Discover devices, manage playback, groups, alarms, and more. Port of Python SoCo library.

Repository (GitHub)
View/report issues

Topics

#sonos #audio #upnp #iot #smart-home

License

unknown (license)

Dependencies

http, logging, meta, network_info_plus, path, path_provider, xml

More

Packages that depend on soco