Skip to content

A.1 Universal Node

hklages edited this page Feb 22, 2024 · 14 revisions

Overview

Important
In this package standalone player are treated as a group (with size 1)! So you should use the group commands to control standalone player!

There are three major command categories:

Group

The coordinator - there is exactly one per group - leads the group. The content ist played on all players in sync. Most of the commands such as playback (stop/play/ etc) are only allowed on the coordinator and ignored (throw error message) on joiner (aka all non -coordinator in a group).

Note
Thats why in this package group commands are always and automatically being redirected to the coordinator

The coordinators SONOS-Queue act as the group SONOS-Queue. Group mute will mute all player in the group. Group volume is very special see group volume.

Player

Commands are related to specific player, for instance volume, loudness, led, mute state and more. Sometimes it is required to be coordinator or a non-coodinator (= joiner) - therefore also these prefix exist.

Important: For all group and player commands there are 2 options to specify the group/player:

  1. Using the config node (default)

  2. Using msg.playerName with SONOS-Playername such as 'SonosKueche'. This overrules 1.

Household

Commands handle grouping/binding and the SONOS-Playlists (available on all player)

List of Commands

The state (payload) can be given in node dialog field payload or as msg.payload. The command (topic) can be given in node dialog field topic or as msg.topic.

msg.nrcspCmd is being created and holds the used commands (from msg.topic or dialog).

msg.payload gets modified, if you use the dialog or if the command outputs data.

Group

coordinator.delegate

Delegates coordinator role to another player in that group. Both player have to be in the same group and must be different from each other. The delegating player must be a coordinator.

In/Out Property Type Description

in

payload

string

SONOS-Playername

in

playerName

string-optional

SONOS-Playername, overrules config node player

group.adjust.volume

Adjusts the group value based on the current group value see group volume.

In/Out Property Type Description

in

payload

number/string

volume adjustment (delta), range -100 to 100

in

playerName

string-optional

SONOS-Playername, overrules config node player

out

newVolume

string

new volume after adjustment

group.cancel.sleeptimer

Cancels the current sleeptimer - if one exists.

In/Out Property Type Description

in

playerName

string-optional

SONOS-Playername, overrules config node player

group.clear.queue

Removes all entries from the SONOS-Queue. If the SONOS-Queue was activated it stops playing.

In/Out Property Type Description

in

playerName

string-optional

SONOS-Playername, overrules config node player

group.create.snap

Creates a snapshot of the given group. It includes the group playback state and for each group member additional data. That output can be directly used in group.play.snap. The queue state such as "shuffle" and the queue content is not captured.

In/Out Property Type Description

in

playerName

string-optional

SONOS-Playername, overrules config node player

in

snapVolumes

boolean-optional

player volumes are captured

in

snapMutestates

boolean-optional

player mute states are captures

out

payload

object

the saved data (snap)

out

.playbackstate

string

group playback state

out

.wasPlaying

boolean

true or false

out

.CurrentURI

string

URI, content

out

.CurrentURIMetadata

string

URI, meta data

out

.NrTracks

string

number of tracks

out

.Track

number

position in SONOS-Queue

out

.TrackDuration

string

duration of current track in format hh:mm:ss

out

.RelTime

string

position in track in format hh:mm:ss

out

.membersData

array of object

each member data, first member is coordinator in group

out

..[].urlSchemeAuthority

string

such as "http://192.168.178.37:1400"

out

..[].playerName

string

such as 'Küche'

out

..[].volume

string

in range 0 to 100 - only if requested otherwise -1

out

..[].mutestate

string

on or off - only if requested otherwise null

group.create.volumesnap

Creates a new group volume snapshot. That is being used in group.adjust/set.volume see group volume.

In/Out Property Type Description

in

playerName

string-optional

SONOS-Playername, overrules config node player

group.get.actions

Outputs available actions of the currently played content.

In/Out Property Type Description

in

playerName

string-optional

SONOS-Playername, overrules config node player

out

payload

string, csv list

such as Set, Play, .. see values

group.get.crossfade group.get.mutestate

Outputs crossfade / mute state.

In/Out Property Type Description

in

playerName

string-optional

SONOS-Playername, overrules config node player

out

payload

string

on or off

group.get.members

Outputs an array with all members of current group. Coordinator is first in array. Hidden player are not shown!

in

playerName

string-optional

SONOS-Playername, overrules config node player

out

.[].urlObject

string

such as 'http://192.168.178.37:1400'

out

.[].playerName

string

such as 'Küche'

out

.[].uuid

string

UUID such as 'RINCON_5CAAFD00223601400'

out

.[].invisible

boolean

player is hidden, invisible

out

.[].channelMapSet

string

channel Map - indicator for paired

out

.[].groupId

string

group id

group.get.playbackstate

Outputs playback state.

In/Out Property Type Description

in

playerName

string-optional

SONOS-Playername, overrules config node player

out

payload

string

such as playing, stopped, …​ Valid values see chapter values.

group.get.queue

Outputs an array of queue items. Each item is an object.

In/Out Property Type Description

in

playerName

string-optional

SONOS-Playername, overrules config node player

out

payload

array of objects

SONOS-Queue items

out

.[].id

string

id

out

.[].title

string

title

out

.[].artist

string

artist name

out

.[].album

string

album name

out

.[].uri

string

URI, content

out

.[].metadata

string

DIDL-Lite

out

.[].artUri

string

URI, album Art

out

.[].sid

string

Music Service id

out

.[].serviceName

string

Music Service name

out

.[].upnpClass

string

UPnP Class

out

.[].processingType

string

queue

group.get.queue.length

Outputs the current length of the SONOS-Queue.

In/Out Property Type Description

in

playerName

string-optional

SONOS-Playername, overrules config node player

out

payload

integer

SONOS-Queue items

group.get.sleeptimer

Outputs sleeptimer.

In/Out Property Type Description

in

playerName

string-optional

SONOS-Playername, overrules config node player

out

payload

string

the time in format h:mm:ss or if not set 'none'

group.get.state

Outputs several group states and properties.

In/Out Property Type Description

in

playerName

string-optional

SONOS-Playername, overrules config node player

out

payload

object

out

.playbackstate

string

valid values see chapter see values

out

.coordinatorName

string

SONOS-Playername of coordinator

out

.volume

string

group volume

out

.muteState

string

group mute state - on or off

out

.tvActivated

boolean

true if TV is activated

out

.queueActivated

boolean

true if SONOS-Queue is activated

out

.queueMode

string

SONOS-Queue modes - see values

out

.id

string

group id

out

.size

number

amount of members in group

out

.members

array of object

all members in SONOS-Queue, coordinator is first

out

.[].urlObject

string

such as 'http://192.168.178.37:1400'

out

.[].playerName

string

such as 'Küche'

out

.[].uuid

string

UUID such as 'RINCON_5CAAFD00223601400'

out

.[].invisible

boolean

player is hidden, invisible

out

.[].channelMapSet

string

channel Map - indicator for paired

out

.[].groupId

string

group id

group.get.trackplus

Outputs data related to the currently played content.

In/Out Property Type Description

in

playerName

string-optional

SONOS-Playername, overrules config node player

out

payload

object

out

.mediaData

object

data related to media: CurrentURI, CurrentURIMetaData, …​

out

.positionData

object

additional data: TrackURI, TrackDuration, RelTime, …​

out

..trackData

object

data related to the track: title, album, …​

out

.title

string

current title

out

.artist

string

current artist

out

.album

string

current album

out

.serviceId

string

Music Service id

out

.serviceName

string

Music Service name such as Spotify

out

.artUri

string

URI, albumArt

out

.stationArtUri

string

Station art (if available)

out

.queueActivated

boolean

true if SONOS-Queue is activated

group.get.volume

Output the group volume see group volume.

In/Out Property Type Description

in

playerName

string-optional

SONOS-Playername, overrules config node player

out

payload

string

volume in range 0 to 100

group.play

Start playing content. Content must exist/have been set before.

In/Out Property Type Description

in

playerName

string-optional

SONOS-Playername, overrules config node player

in

volume

string/number-optional

if exist: new volume in range 0 to 100 on given player. If string then REGEX check!

in

sameVolume

boolean-optional

if exist and true: set volume on all players

group.play.export

Please consider to use group.play.mysonos or group.play.library.* instead.

Plays the given content. Payload should be exported by node My Sonos.

Caution: If clearQueue = false and the exported item is of type queue it is added at the end of the queue. Queue item 1 starts to play.

In/Out Property Type Description

in

payload

object

content, see node My Sonos, mysonos.export.item

in

playerName

string-optional

SONOS-Playername, overrules config node player

in

volume

string/number-optional

if exist: new volume in range 0 to 100 on given player. If string then REGEX check!

in

sameVolume

boolean-optional

if exist and true: set volume on all players

in

clearQueue

boolean-optional

if true and export.queue = true the queue is cleared. Default is true

group.play.library.album, group.play.library.artist, group.play.library.playlist, group.play.library.track

Plays the given Music Library album, artist, playlist, track (first one matching) on that group.

Caution: If clearQueue = false the item it is added at the end of the queue. Queue item 1 starts to play.

In/Out Property Type Description

in

payload

string

search string to identify the Music Library (album,playlist, track) - field title

in

playerName

string-optional

SONOS-Playername, overrules config node player

in

volume

string/number-optional

if exist: new volume in range 0 to 100 on given player. If string then REGEX check!

in

sameVolume

boolean-optional

if exist and true: set volume on all players

in

clearQueue

boolean-optional

if true and export.queue = true the queue is cleared. Default is true

group.play.mysonos

Plays the given My Sonos title (first one matching) on that group.

Caution: If clearQueue = false the item it is added at the end of the queue. Queue item 1 starts to play.

In/Out Property Type Description

in

payload

string

search string to identify the My Sonos item - field title

in

playerName

string-optional

SONOS-Playername, overrules config node player

in

volume

string/number-optional

if exist: new volume in range 0 to 100 on given player. If string then REGEX check!

in

sameVolume

boolean-optional

if exist and true: set volume on all players

in

clearQueue

boolean-optional

if true and export.queue = true the queue is cleared. Default is true

group.pause group.stop group.next.track group.previous.track

Executes just this action. group.previous.track: An error is thrown in case of queue position 1 (beginning of queue). group.next.track: An error is thrown in case of queue position at end.

In/Out Property Type Description

in

playerName

string-optional

SONOS-Playername, overrules config node player

group.play.notification

Plays the given content (means notification) and then returns to the previous content (stations, track in SONOS-Queue). If volume is given all players uses the new volume for the notification!!!

Depending on the required changes this command may take some seconds to complete. During this time there should not be any other commands as they might interfere (solution: queue commands)

Caution: For msg.duration and msg.volume (if string) a strict REGEX check is used and will throw an error.

Position may fail as it sometimes takes some time to reload the song. Currently the position starts 1 sec after having initiated to reload the song.

In/Out Property Type Description

in

payload

string

URI, content being played as notification

in

volume

string/number-optional

if exist: new volume in range 0 to 100 on given player. If string then REGEX check!

in

sameVolume

boolean-optional

if exist and false: set new volume only on coordinator

in

duration

string-optional

REGEX check. if exist: overrules the internal calculation for the notification. Format hh:mm:ss. Don’t add additional blanks or whitespace.

in

playerName

string-optional

SONOS-Playername, overrules config node player

group.play.queue

Resumes playing tracks from the SONOS-Queue. SONOS-Queue must not be empty. If volume is given, the given player will use that volume.

In/Out Property Type Description

in

playerName

string-optional

SONOS-Playername, overrules config node player

in

volume

string/number-optional

if exist: new volume in range 0 to 100 on given player. If string then REGEX check!

in

sameVolume

boolean-optional

if exist and true: set volume on all players

group.play.snap

Plays the given content which should have been created with command group.create.snap. If volume is given, the given player will use that volume. The queue state (normal, shuffle, …​) and the group topology should not have changed!

In/Out Property Type Description

in

payload

object

content, the saved data - see group.create.snap

in

playerName

string-optional

SONOS-Playername, overrules config node player

group.play.streamhttp

Plays the given http/https stream. If volume is given, the given player will use that volume.

In/Out Property Type Description

in

payload

string

content, must be a valid http stream address for a station/stream/radio such as http://www.fritz.de/live.m3u

in

playerName

string-optional

SONOS-Playername, overrules config node player

in

volume

string/number-optional

if exist: new volume in range 0 to 100 on given player

in

sameVolume

boolean-optional

if exist and true: set volume on all players

group.play.track

Starts playing from SONOS-Queue with the given track. SONOS-Queue must not be empty. If volume is given, the given player will use that volume.

In/Out Property Type Description

in

payload

string

position in SONOS-Queue - 1 to SONOS-Queue length

in

playerName

string-optional

SONOS-Playername, overrules config node player

in

volume

string/number-optional

if exist: new volume in range 0 to 100 on given player. If string then REGEX check!

in

sameVolume

boolean-optional

if exist and true: set volume on all players

group.play.tunein

Starts playing the given Tune| in radio station. If volume is given, the given player will use that volume.

Caution: For the payload a strict REGEX check is used and will throw an error. See the following table for details.

In/Out Property Type Description

in

payload

string

REGEX check. the TuneIn radio station id such as 's97033'. Don’t add additional blanks or whitespace.

in

playerName

string-optional

SONOS-Playername, overrules config node player

in

volume

string/number-optional

if exist: new volume in range 0 to 100 on given player. If string then REGEX check!

in

sameVolume

boolean-optional

if exist and true: set volume on all players

group.queue.library.album, group.queue.library.artist, group.queue.library.playlist, group.queue.library.track

Plays the given Music Library album, artist, playlist, track (first one matching) on that group. If queue is in SHUFFLE mode, the queued song will play next.

Caution: If clearQueue = false the item it is added at the end of the queue.

In/Out Property Type Description

in

payload

string

search string to identify the Music Library (album,playlist, track) - field title

in

playerName

string-optional

SONOS-Playername, overrules config node player

in

clearQueue

boolean-optional

if true and export.queue = true the queue is cleared. Default is true

out

newQueueLength

integer

New SONOS-Queue length

out

firstTrackNumberEnqueued

integer

Position, where new song is inserted

group.queue.uri

Adds the given URI to the end of the SONOS-Queue. If queue is in SHUFFLE mode, the queued song will play next.

In/Out Property Type Description

in

payload

string

URI, content to play

in

playerName

string-optional

SONOS-Playername, overrules config node player

out

newQueueLength

integer

New SONOS-Queue length

out

firstTrackNumberEnqueued

integer

Position, where new song is inserted

group.queue.urispotify

Adds the given valid Spotify URI to the end of the SONOS-Queue. URI can by playlist, album, track and more. If queue is in SHUFFLE mode, the queued song will play next.

To switch to region US (that also works in Australia, New Zealand) put the following line

process.env.SONOS_REGION_SPOTIFY = "3079"

at the top (before module.exports) of your settings.js file in your user node-red directory.

It is recommended to use My Sonos instead.

In/Out Property Type Description

in

payload

string

Spotifiy URI such as spotify:track:5AdoS3gS47x40nBNlNmPQ8, spotify:album:1TSZDcvlPtAnekTaItI3qO, spotify:artistTopTracks:1dfeR4HaWDbWqFHLkxsg1d, spotify:user:spotify:playlist:37i9dQZEVXbMDoHDwVN2tF'

in

playerName

string-optional

SONOS-Playername, overrules config node player

out

newQueueLength

integer

New SONOS-Queue length

out

firstTrackNumberEnqueued

integer

Position, where new song is inserted

group.remove.tracks

Removes the given tracks from the SONOS-Queue.

In/Out Property Type Description

in

payload

string/number

start position of tracks to be removed - 1 to end of SONOS-Queue. If string then REGEX check!

in

numberOfTracks

string/number-optional

number of tracks, default is 1. If string then REGEX check!

in

playerName

string-optional

SONOS-Playername, overrules config node player

group.save.queue

Saves the content of the SONOS-Queue to a SONOS-Playlist.

In/Out Property Type Description

in

payload

string

new SONOS-Playlist name

in

playerName

string-optional

SONOS-Playername, overrules config node player

group.seek

Moves to given absolute position in current song. This is only supported by some content - see group.get.actions.

Caution: For the payload a strict REGEX check is used and will throw an error. See the following table for details.

In/Out Property Type Description

in

payload

string

REGEX check: new position in format hh:mm:ss. Don’t add additional blanks or whitespace.

in

playerName

string-optional

SONOS-Playername, overrules config node player

group.seek.delta

Moves forward/backward to given relative (ot current position) position in current song. This is only supported by some content - see group.get.actions.

Caution: For the payload a strict REGEX check is used and will throw an error. See the following table for details.

In/Out Property Type Description

in

payload

string

REGEX check: new position in format +hh:mm:ss or -hh:mm:ss (back). Don’t add additional blanks or whitespace.

in

playerName

string-optional

SONOS-Playername, overrules config node player

group.set.crossfade

Sets current group parameter crossfade state - must be supported by current playing content.

In/Out Property Type Description

in

payload

string

on or off

in

playerName

string-optional

SONOS-Playername, overrules config node player

group.set.mutestate

Sets current group mute state.

In/Out Property Type Description

in

payload

string

on or off

in

playerName

string-optional

SONOS-Playername, overrules config node player

group.set.queuemode

Sets current SONOS-Queue mode.

Caution: For the payload a strict REGEX check is used and will throw an error. See the following table for details.

In/Out Property Type Description

in

payload

string

REGEX check: queue mode such as SHUFFLE. Mixed case is allowed link::https://github.com/hklages/node-red-contrib-sonos-plus/wiki#values[see values].

in

playerName

string-optional

SONOS-Playername, overrules config node player

group.set.sleeptimer

Sets the new sleeptimer.

Caution: For the payload a strict REGEX check is used and will throw an error. See the following table for details.

In/Out Property Type Description

in

playerName

string

REGEX check. new sleep timer in format hh:mm:ss. Don’t add additional blanks or whitespace.

in

playerName

string-optional

SONOS-Playername, overrules config node player

group.toggle.playback

Toggles the current playback state - stop turns to play and play turns to stop.

In/Out Property Type Description

in

playerName

string-optional

SONOS-Playername, overrules config node player

group.set.volume/

Sets group volume see group volume.

In/Out Property Type Description

in

payload

string

new group volume in range of 0 .. 100 to given player

in

playerName

string/number-optional

SONOS-Playername, overrules config node player. If string then REGEX check!

Household commands

household.add.satellites

Adds two satellites to a SONOS-Player.

Satellites should be of same type. The main SONOS-Player need to support satellites - see SONOS documentation. This command works in combination with household.add.subwoofer and creates a surround system.

This command may take some seconds to complete.

In/Out Property Type Description

in

payload

string

SONOS-Playername of main SONOS-Player

in

playerNameLeftRear

string

SONOS-Playername of left rear SONOS-Player

in

playerNameRightRear

string

SONOS-Playername of right rear SONOS-Player

household.add.subwoofer

Adds a subwoofer to a SONOS-Player.

Some SONOS-Player (Arc, Beam, …​ ) support Home Theater Surround System (HT), some only support an additional subwoofer. Home Theater may have 2 satellites and a subwoofer - see also add.satellites. If your SONOS-Player does not support HT then use the property isHTsystem with boolean value "false".

This command may take some seconds to complete.

In/Out Property Type Description

in

payload

string

SONOS-Playername of main SONOS-Player

in

ipSubwoofer

string

ip of the subwoofer

in

isHTsystem

string-optional

default is true

household.create.group

Creates a new group based on payload.

Caution: For the payload (csv list) a strict REGEX check is used and will throw an error. See the following table for details. The names are SONOS-Playernames and NOT the config names!

Depending on the required changes this command may take some seconds to complete. During this time there should not be any other commands as they might interfere (solution: queue commands)

In case you prefer JSON over csv, please use the Node-RED build in "csv" node to convert from JSON to csv (with default option comma).

In/Out Property Type Description

in

payload

string, csv

REGEX check: comma separated list of SONOS-Playernames. First player will become coordinator in that group. Don’t add any additional blank or whitespace - just the SONOS-Playernames, separated by comma. SONOS-Playernames must start with character or digit followed by blank ",:.-_" character, digit. Only a few international characters are allowed ÄÖÜäöü. Let me know if you have a special _SONOS-Playername_.

household.create.stereopair

Creates a new stereopair of players - one for left, one for right channel. Afterwards both act as one player. Right player gets hidden/invisible. This command only works for specific type of SONOS-Players. > payload and playerNameRight are required! Config node player is always being overruled!

In/Out Property Type Description

in

payload

string

left SONOS-Playername

in

playerNameRight

string

right SONOS-Playername

household.disable, enable.alarm

Enables/disables the given alarm.

In/Out Property Type Description

in

payload

string

alarm ID (see household.get.alarms)

household.get.alarms

Outputs an array of all alarms and the current alarm list identifier.

In/Out Property Type Description

out

payload

object

out

currentAlarmListVersion

string

current alarm list version

out

array of alarm

objects

out

.[].ID

string

such as 21, 40, …​

out

.[].StartTime

string

such as 07:00:00

out

.[].Duration

string

such as 02:00:00

out

.[].Recurrence

string

such as DAILY

out

.[].Enabled

string

0 for disabled, 1 for enabled

out

.[].RoomUUID

string

such as RINCON_B8E9375831C001400

out

.[].ProgramURI

string

x-rincon-buzzer:0

out

.[].ProgramMetaData

string

out

.[].PlayMode

string

such as SHUFFLE

out

.[].Volume

string

0 …​ 100

out

.[].IncludeLinkedZones

string

0 for single, 1 for group

household.get.groups

Outputs an array of all groups in household. Each group is an array of player objects. The coordinator is the first element (index 0). Invisible members are not shown.

In/Out Property Type Description

out

payload

array of array of objects

all groups with all members (object)

out

.[].urlObject

string

such as 'http://192.168.178.37:1400'

out

.[].playerName

string

such as 'Küche'

out

.[].uuid

string

UUID such as 'RINCON_5CAAFD00223601400'

out

.[].invisible

boolean

player is hidden, invisible

out

.[].channelMapSet

string

channel Map - indicator for paired

out

.[].HTSatChanMapSet

string

HTchannel Map - shows satellites and sub if bound

out

.[].groupId

string

group id

household.get.musiclibrary.options

Outputs the Music Library Album Artist display option.

In/Out Property Type Description

out

payload

string

Music Library Album Artist display option - "WMP" "ITUNES" "NONE"

household.get.sonosplaylists

Outputs an array of all available _SONOS-Playlist_s. Each item is an object.

In/Out Property Type Description

out

payload

Object

all groups with all members (object)

out

.[].artUri

string

URI, albumArt

out

.[].title

string

SONOS-Playlist title

out

.[].uri

string

URI

out

.[].upnpClass

string

upnp class

out

.[].Id

string

object id

out

.[].processingType

string

queue or stream

household.remove.satellites

Removes all satellites from given SONOS-Player.

In/Out Property Type Description

in

payload

string

SONOS-Playername of main SONOS-Player

household.remove.sonosplaylist

Removes the given SONOS-Playlist.

In/Out Property Type Description

in

payload

string

SONOS-Playlist name

in

ignoreNotExists

boolean

if not exist: true

household.separate.group

All players in given group (defined by config node or msg.playerName) become standalone players

In/Out Property Type Description

in

playerName

string-optional

SONOS-Playername, overrules config node player

household.separate.stereopair

Separates a stereopair of players.

In/Out Property Type Description

in

payload

string

SONOS-Playername of the left player

household.set.alarm

Sets the start time of a given alarm.

In/Out Property Type Description

in

payload

string

alarm ID (see household.get.alarms)

in

alarmTime

string hh:mm:ss

start time of the alarm

household.test.player

Tests whether a player is available. The player in config node should be different to the checked player!

In/Out Property Type Description

in

payload

string

SONOS-Playername to be checked

out

payload

boolean

true if available

household.update.musiclibrary

Starts an update of the music library.

In/Out Property Type Description

in

payload

string

Naming scheme for album artist displayOption - one of "WMP" "ITUNES" "NONE"

See also household.get.musiclibrary.options

household.wakeup.player

Wakes up a SONOS-Player from light sleep (but not from deep sleep/off). If you don’t know the mac address then use player.get.properties.

Note
This is a special command, as it sends a UDP magic package as broadcast. So in fact a config node is not needed what means you can select any.
In/Out Property Type Description

in

payload

string

mac address of the player (SONOS Roam, SONOS Move) to be waked up

Joiner Commands

joiner.play.notification

The player leaves the group, plays the given notification (only on that joiner - not on any other members of the group) and then rejoins the group again. The command only works on joiner not on coordinator.

Depending on the required changes this command may take some seconds to complete. During this time there should not be any other commands as they might interfere (solution: queue commands)

Caution: For msg.duration and msg.volume (if string) a strict REGEX check is done and will throw an error.

Position may fail as it sometimes takes some time to reload the song. Currently the position starts 1 sec after having initiated to reload the song.

In/Out Property Type Description

in

payload

object

URI, content being played as notification

in

volume

string/number-optional

if exist: new volume in range 0 to 100 on given player. If string then REGEX check!

in

duration

string-optional

REGEX check. if exist: overrules the internal calculation for the notification. Format hh:mm:ss. Don’t add additional blanks or whitespace.

in

playerName

string-optional

SONOS-Playername, overrules config node player

Player Commands

player.adjust.volume

Adjusts volume - base is current volume.

In/Out Property Type Description

in

payload

string/number

corresponding value + (increase), - (decrease). If string then REGEX check!

in

playerName

string-optional

SONOS-Playername, overrules config node player

out

newVolume

number

the new volume

player.become.standalone

Become standalone player and leaves any group.

In/Out Property Type Description

in

playerName

string-optional

SONOS-Playername, overrules config node player

player.get.bass player.get.subgain player.get.treble

Outputs the corresponding value.

In/Out Property Type Description

in

playerName

string-optional

SONOS-Playername, overrules config node player

out

payload

number

corresponding value, range -10 to 10

player.get.dialoglevel player.get.led player.get.loudness player.get.mutestate player.get.nightmode

Outputs the corresponding value.

In/Out Property Type Description

in

playerName

string-optional

SONOS-Playername, overrules config node player

out

payload

string

on or off

player.get.buttonlockstate

Outputs the button lock state.

In/Out Property Type Description

in

playerName

string-optional

SONOS-Playername, overrules config node player

out

payload

string

on or off

player.get.batterylevel

Outputs the battery level (only if supported by device). The node, sending this command should have the "Do NOT check the availability of Sonos-Player." ticked! Otherwise you have to ensure that during deployment the SONOS Roam/Move is available.

In/Out Property Type Description

in

playerName

string-optional

SONOS-Playername, overrules config node player

out

payload

integer

Battery level, range 0 to 100

out

powerSource

string

power source such as "BATTERY" or "USB_POWER"

player.get.properties

Outputs the device properties.

In/Out Property Type Description

in

playerName

string-optional

SONOS-Playername, overrules config node player

out

payload

object

see below

out

.playerName

string

SONOS-Playername such 'Küche'

out

.uuid

string

player UUID such as 'RINCON_949F3EC13B9901400'

out

.serialNum

string

serial number such as '94-9F-3E-C1-3B-99:8'

out

.MACAddress

string

mac address such as '94:9F:3E:C1:3B:99'

out

.friendlyName

string

friendly name such as '192.168.178.36 - Sonos Beam'

out

.modelName

string

model name such as 'Sonos Beam

and more!

player.get.queue

Outputs array of SONOS-Queue items. Each item is an object -see group.get.queue

In/Out Property Type Description

in

playerName

string-optional

SONOS-Playername, overrules config node player

player.get.role

Outputs the current role.

In/Out Property Type Description

in

playerName

string-optional

SONOS-Playername, overrules config node player

out

payload

string

standalone or joiner or coordinator

out

playerName

string

SONOS-Playername

player.get.volume

Outputs the corresponding value.

In/Out Property Type Description

in

playerName

string-optional

SONOS-Playername, overrules config node player

out

payload

number

volume in range 0 to 100

player.join.group

Player (given in config node or msg.playerName) joins the group given by SONOS-Playername in payload.

Recommendation: Use household.create.group, player.become.standalone

In/Out Property Type Description

in

payload

string

SONOS-Playername of any player in group to be joined

in

playerName

string-optional

SONOS-Playername, overrules config node player

player.leave.group

Player (given in config node or msg.playerName) will leave any group.

Recommendation: Use household.create.group, player.become.standalone

In/Out Property Type Description

in

playerName

string-optional

SONOS-Playername, overrules config node player

player.play.linein

Activates the line in at the given player. If player belongs to group (as joiner) it will leave the group.

In/Out Property Type Description

in

volume

string/number-optional

if exist: new volume in range 0 to 100 on given player. If string then REGEX check!

in

playerName

string-optional

SONOS-Playername, overrules config node player

player.play.avtransport

This command is depreciated as in many cases a uri is not sufficient and metadata is needed. Please use group.play.queue, player.play.tv, player.playlinein, group.play.tunein, group.play.httpstream instead.

In/Out Property Type Description

in

payload

string

new avTransport such as: x-rincon-stream:RINCON_5CAAFD00223601400 (last digits: mac + 0 + port)

in

volume

string/number-optional

if exist: new volume in range 0 to 100 on given player. If string then REGEX check!

in

info

string

info being shown as station title

in

artUri

string

uri to art/cover

in

playerName

string-optional

SONOS-Playername, overrules config node player

player.play.tv

Activates the TV at the given player. If player belongs to group (as joiner) it will leave the group.

In/Out Property Type Description

in

volume

string/number-optional

if exist: new volume in range 0 to 100 on given player. If string then REGEX check!

in

playerName

string-optional

SONOS-Playername, overrules config node player

player.set.bass player.set.subgain player.set.treble

Sets device properties to the given values.

In/Out Property Type Description

in

payload

string/number

value in range -10 to 10. If string then REGEX check!

in

playerName

string-optional

SONOS-Playername, overrules config node player

player.set.dialoglevel player.set.led player.set.loudness player.set.mutestate player.set.nightmode player.set.subwoofer

Set the device property to given payload.

In/Out Property Type Description

in

payload

string

on or off

in

playerName

string-optional

SONOS-Playername, overrules config node player

player.set.buttonlockstate

Sets button lock state.

In/Out Property Type Description

in

payload

string

on or off

in

playerName

string-optional

SONOS-Playername, overrules config node player

player.set.volume

Sets the device to the payload value.

In/Out Property Type Description

in

payload

string/string

value in range 0 to 100. If string then REGEX check!

in

playerName

string-optional

SONOS-Playername, overrules config node player

Clone this wiki locally