Skip to main content

Sonos command line utility, based on SoCo

Project description

SoCo CLI: Control Sonos Systems from the Command Line

Please consider this utility to be experimental at the moment. The command line structure and return values are not yet fully finalised. Feedback welcome.

Overview

Soco CLI is a command line wrapper for the popular Python SoCo library [1] for controlling Sonos systems. Soco CLI is written entirely in Python and is portable across platforms.

A simple sonos command is provided which allows easy control of speaker playback, volume, groups, EQ settings, sleep timers, etc. Multiple commands can be run in sequence, including the ability to insert delays between commands.

Sonos CLI aims for an orderly command structure and consistent return values, making it suitable for use in scripted automation scenarios, cron jobs, etc.

Supported Environments

  • Requires Python 3.5 or greater.
  • Should run on all platforms supported by Python. Tested on various versions of Linux, macOS and Windows.

Installation

Install from PyPi [2] using pip install soco-cli.

User Guide

The installer adds the sonos command to the PATH. All commands have the form:

sonos SPEAKER ACTION <parameters>
  • SPEAKER identifies the speaker, and can be the speaker's Sonos Room name or its IPv4 address in dotted decimal format. Note that the speaker name is case sensitive (unless using alternative discovery, discussed below).
  • ACTION is the operation to perform on the speaker. It can take zero or more parameters depending on the operation.

Actions that make changes to speakers do not generally provide return values. Instead, the program exit code can be inspected to test for successful operation (exit code 0). If an error is encountered, an error message will be printed to stderr, and the program will return a non-zero exit code.

Simple Usage Examples:

  • sonos "Living Room" volume Returns the current volume setting of the Living Room speaker.
  • sonos Study volume 25 Sets the volume of the Study speaker to 25.
  • sonos Study group Kitchen Groups the Study speaker with the Kitchen speaker.
  • sonos 192.168.0.10 mute Returns the mute state ('on' or 'off') of the speaker at the given IP address.
  • sonos 192.168.0.10 mute on Mutes the speaker at the given IP address.
  • sonos Kitchen play_favourite Jazz24 : wait 30m : Kitchen stop Plays 'Jazz24' for 30 minutes, then stops playback.

Please see https://github.com/avantrec/soco-cli for full documentation.

Links

[1] https://github.com/SoCo/SoCo

Acknowledgments

All trademarks acknowledged. Avantrec Ltd has no connection with Sonos Inc.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

soco-cli-0.1.18.tar.gz (23.2 kB view hashes)

Uploaded Source

Built Distribution

soco_cli-0.1.18-py3-none-any.whl (22.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page