Link Search Menu Expand Document

ZoneGroupTopology service

Zone config stuff, eg getting all the configured sonos zones

The ZoneGroupTopology service is available on these models: v2-S1 / v2-S13 / v2-S14 / v2-S18 / v2-S21 / v2-S27 / v2-S3 / v2-S33 / v2-S38 / v2-S6 / v2-S9 / v2-Sub.

const SonosDevice = require('@svrooij/sonos').SonosDevice
const sonos = new SonosDevice('192.168.x.x')
sonos.ZoneGroupTopologyService.OneOfTheMethodsBelow({...})

All actions that require input expect an object with the specified parameters, even if it only requires one parameter.

  1. BeginSoftwareUpdate
  2. CheckForUpdate
  3. GetZoneGroupAttributes
  4. GetZoneGroupState
  5. RegisterMobileDevice
  6. ReportAlarmStartedRunning
  7. ReportUnresponsiveDevice
  8. SubmitDiagnostics
  9. ZoneGroupTopologyService event

BeginSoftwareUpdate

const result = await sonos.ZoneGroupTopologyService.BeginSoftwareUpdate({ UpdateURL:..., Flags:..., ExtraOptions:... });

Input object:

property type description
UpdateURL string  
Flags number  
ExtraOptions string  

This actions returns a boolean whether or not the requests succeeded.

CheckForUpdate

const result = await sonos.ZoneGroupTopologyService.CheckForUpdate({ UpdateType:..., CachedOnly:..., Version:... });

Input object:

property type description
UpdateType string Allowed values: All / Software
CachedOnly boolean  
Version string  

Output object:

property type description
UpdateItem string  

GetZoneGroupAttributes

Get information about the current Zone

const result = await sonos.ZoneGroupTopologyService.GetZoneGroupAttributes();

Output object:

property type description
CurrentZoneGroupName string  
CurrentZoneGroupID string  
CurrentZonePlayerUUIDsInGroup string  
CurrentMuseHouseholdId string  

GetZoneGroupState

Get all the Sonos groups, (as XML)

const result = await sonos.ZoneGroupTopologyService.GetZoneGroupState();

Output object:

property type description
ZoneGroupState Array<ZoneGroup> | string xml string, see remarks

Remarks Some libraries also support GetParsedZoneGroupState that parses the xml for you.

RegisterMobileDevice

const result = await sonos.ZoneGroupTopologyService.RegisterMobileDevice({ MobileDeviceName:..., MobileDeviceUDN:..., MobileIPAndPort:... });

Input object:

property type description
MobileDeviceName string  
MobileDeviceUDN string  
MobileIPAndPort string  

This actions returns a boolean whether or not the requests succeeded.

ReportAlarmStartedRunning

const result = await sonos.ZoneGroupTopologyService.ReportAlarmStartedRunning();

This actions returns a boolean whether or not the requests succeeded.

ReportUnresponsiveDevice

const result = await sonos.ZoneGroupTopologyService.ReportUnresponsiveDevice({ DeviceUUID:..., DesiredAction:... });

Input object:

property type description
DeviceUUID string  
DesiredAction string Allowed values: Remove / TopologyMonitorProbe / VerifyThenRemoveSystemwide

This actions returns a boolean whether or not the requests succeeded.

SubmitDiagnostics

const result = await sonos.ZoneGroupTopologyService.SubmitDiagnostics({ IncludeControllers:..., Type:... });

Input object:

property type description
IncludeControllers boolean  
Type string  

Output object:

property type description
DiagnosticID number  

ZoneGroupTopologyService event

const SonosDevice = require('@svrooij/sonos').SonosDevice
const sonos = new SonosDevice('192.168.x.x')
sonos.ZoneGroupTopologyService.Events('serviceEvent', (data) => {
  console.log(data);
});

The ZoneGroupTopologyService emits events with these properties. Not all properties are emitted every time.

parameter type possible values
AlarmRunSequence string  
AreasUpdateID string  
AvailableSoftwareUpdate string  
DiagnosticID number  
MuseHouseholdId string  
NetsettingsUpdateID string  
SourceAreasUpdateID string  
ThirdPartyMediaServersX string  
ZoneGroupID string  
ZoneGroupName string  
ZoneGroupState Array<ZoneGroup> | string  
ZonePlayerUUIDsInGroup string  

This file is automatically generated with @svrooij/sonos-docs, do not edit manually.