This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm that you accept these cookies being set.

SONOS app
If you want Sonos to load tracks from LM, you have to upload to user folder using apps ftp account. The same folder is reachable from HTTP without user/password (only .lp files have authentication checks).
Reply
(19.08.2017, 12:54)Erwin van der Zwart Wrote: Hi,

Can you try to execute the commands with credentials in the url?

http://admin:admin@127.0.0.1/...

BR,

Erwin


Verzonden vanaf mijn iPhone met Tapatalk

Yes, i tried also with credentials, and the same result...


Code:
socket.http.request('http://admin:admin@127.0.0.1/apps/data/sonos/sonos.lp?action=loaduri&uuid=RINCON_000E58C103D601400&&listtype=favorites&listnumber=3&autoplay=true')



And for access mp3 file into the homelynk... it doesn't work


Code:
audiofile = socket.url.escape('http://admin:admin@127.0.0.1/Musica/track1.mp3')

socket.http.request('http://admin:admin@127.0.0.1/apps/data/sonos/sonos.lp?action=say&uuid=RINCON_000E58C103D601400&audiofile=' .. audiofile .. '&volume=30&duration=20') 


Can you try this commands on your homelynk?

My firmware 2.0.1, and Sonos APP version 20170809.

Thanks, 

Iván.

(19.08.2017, 14:13)admin Wrote: If you want Sonos to load tracks from LM, you have to upload to user folder using apps ftp account. The same folder is reachable from HTTP without user/password (only .lp files have authentication checks).

Hi,

i don't understand it well. Can you explain it step by step? I have a Homelynk.
I create a folder named "musica" in the FTP:
Code:
ftp://ftp:ftp@192.168.0.91/musica


and i load a track "track1.mp3" on it.
Thanks!!
Reply
Hi,

Your audio file(s) probably cant be reached by the Sonos system.

Like admin say's you have to upload it to the apps user folder.

Open the ftp with credentials apps:apps instead of ftp:ftp, there you see a folder called 'user'.

Upload the mp3 file there and use /apps/user/yourmusicfile.mp3 as path.

BR,

Erwin
Reply
(19.08.2017, 22:10)Erwin van der Zwart Wrote: Hi,

Your audio file(s) probably cant be reached by the Sonos system.

Like admin say's you have to upload it to the apps user folder.

Open the ftp with credentials apps:apps instead of ftp:ftp, there you see a folder called 'user'.

Upload the mp3 file there and use /apps/user/yourmusicfile.mp3 as path.

BR,

Erwin

Thank you!!! The access to mp3 file WORKS!!!

Any news about the problems with: loadplaylist, loaduri and playuri???

Thanks again.

Iván.
Reply
Hi,

Just tested loadplaylist, loaduri and playuri and all 3 are working, after loadplaylist and loaduri you need to send the play command, playuri starts playing directly.

I noticed you use UUID, i tested with IP, are you sure the auto discovery has run once in the app (conversion from UUID or name to IP is based on auto discovery result table from storage)

BR,

Erwin
Reply
(20.08.2017, 18:28)Erwin van der Zwart Wrote: Hi,

Just tested loadplaylist, loaduri and playuri and all 3 are working, after loadplaylist and loaduri you need to send the play command, playuri starts playing directly.

I noticed you use UUID, i tested with IP, are you sure the auto discovery has run once in the app (conversion from UUID or name to IP is based on auto discovery result table from storage)

BR,

Erwin

Hi Erwin,

I tested with IP instead UUID and is the same...

I send you some attachments that recreates the problems:

LOADPLAYLIST: see loadplaylist.jpg

PLAYURI: when i am listening a radiostation with an empty queue (see Playing radiostation with empty queue.jpg), and then i execute PLAYURI

Code:
http://192.168.0.91/apps/data/sonos/sonos.lp?action=playuri&ip=192.168.0.14&listtype=favorites&listnumber=5
the list number 5 is loaded in queue but the queue appears "not in use" and the radiostation continue playing (see Playuri after radiostation.jpg)

You say that the command playuri starts playing directly, but it don't start. If i send a PLAY command, no action is executed in Sonos, because it is playing radiostation.

LOADURI: After execute this command:
Code:
http://192.168.0.91/apps/data/sonos/sonos.lp?action=loaduri&ip=192.168.0.14&listtype=favorites&listnumber=5
No changes in the queue (see after loaduri.jpg)

NOTE: Playuri works perfectly when the queue "is in use" before sending the command. Maybe missing a command to put the queue "in use" - "not in use" ??

Thanks,

Iván

Attached Files Thumbnail(s)
               
Reply
Hi,

Loading playlists by ID is working, you probably call a non existing list.

Load lists like this:
   

Load playlist by name, playuri and loaduri needs to be checked as it's not work always as expected, a sended this to the current app developer ( i don't do this anymore for this app ).

BR,

Erwin
Reply
(21.08.2017, 08:21)Erwin van der Zwart Wrote: Hi,

Loading playlists by ID is working, you probably call a non existing list.

Load lists like this:


Load playlist by name, playuri and loaduri needs to be checked as it's not work always as expected, a sended this to the current app developer ( i don't do this anymore for this app ).

BR,

Erwin

Ok, i'm calling a non existing list because the number of list in Sonos table is not equal at the ordenation in the APP.
Now it works, but the "autoplay=true" only works when the queue "is in use". When you are listening a radiostation, it load the playlist in queue but the radiostation continues playing.
The same for PLAYURI.

"Loadplaylist" by name doesn't work.
"Loadplaylist" by uuid doesn't work.

Thanks Erwin!
Reply
Hello!!
I've seen a new version of Sonos APP in Homelynk Store. v20170825. What's new?

Thanks.
Iván.
Reply
Hi,

No new features, only bug fixes.

I was told that the issues mentioned above are fixed, but did not test it yet.

BR,

Erwin
Reply
(18.08.2017, 12:08)kythas100 Wrote:
(19.10.2016, 09:51)Erwin van der Zwart Wrote: Hi Andreas,

Are you using the Sonos app to control the volume or do you also have another script running?

The Sonos app can handle all (external) request you want to do, but that don't work with upnpcmd function.

If you use the app you need to control the functions with http commands like: (192.168.1.202 is my homeLYnk addres)

Code:
http://192.168.10.202/apps/data/sonos/sonos.lp?action=setvolume&uuid=RINCON_000E5821B62C01400&volume=10

http://192.168.10.202/apps/data/sonos/sonos.lp?action=setvolume&ip=192.168.10.31&volume=10

http://192.168.10.202/apps/data/sonos/sonos.lp?action=setvolume&name=Woon_Kamer&volume=10 -- use _ for spaces in the name

full sample:
Code:
-- Load modules
require('json')
require('socket.http')

-- Set timout
socket.http.TIMEOUT = 5

-- Read IP address from controller
data = io.readproc('if-json')
data = json.decode(data)
ip = data.eth0.inetaddr

-- Set SONOS name
Sonos_Player_Name = 'Sonos_Speaker'  

-- Get event value
value = event.getvalue()

-- Set stepsize volume
Volume_Step = 10

-- Set Action
if value == 101 then
    Sonos_Action = 'play'
elseif value == 102 then
    Sonos_Action = 'stop'
elseif value == 103 then
    Sonos_Action = 'next'
elseif value == 104 then
    Sonos_Action = 'previous'
elseif value == 105 then
    Sonos_Action = 'mute'
elseif value == 106 then
    Sonos_Action = 'unmute'
elseif value == 107 then
    Sonos_Action = 'setvolumeup'
 Volume_Step = Volume_Step or 10
elseif value == 108 then
 Sonos_Action = 'setvolumedown'
 Volume_Step = Volume_Step or 10
else
 action = 'none'
end

-- Execute action on value 0 to 100
if value >= 0 and value <= 100 then
 local reply = socket.http.request('http://' .. ip .. '/apps/data/sonos/sonos.lp?action=setvolume&name=' .. Sonos_Player_Name .. '&volume=' .. value .. '')
end

-- Execute action on value 101 to 106
if value >= 101 and value <= 106 then
    local reply = socket.http.request('http://' .. ip .. '/apps/data/sonos/sonos.lp?action=' .. Sonos_Action .. '&name=' .. Sonos_Player_Name .. '')
end

-- Execute action on value 107 to 108
if value >= 107 and value <= 108 then
    local reply = socket.http.request('http://' .. ip .. '/apps/data/sonos/sonos.lp?action=' .. Sonos_Action .. '&name=' .. Sonos_Player_Name .. '&step=' .. Volume_Step .. '')
end

-- Execute action on value 255 (Feedback)
if value == 255 then
    local reply = socket.http.request('http://' .. ip .. '/apps/data/sonos/sonos.lp?action=getextendedstate&name=' .. Sonos_Player_Name .. '&createbaseimg=true')
 reply = json.pdecode(reply)
 if reply then
     local current_volume = reply[1].volume
     local current_mutestate = reply[2].mute
   local current_crossfadestate = reply[3].crossfade
   local current_playmode = reply[4].playmode
   local current_transportmode = reply[5].transport
   local current_duration = reply[7].duration
   local current_playingtime = reply[8].playingtime
   local current_title = reply[9].tracktitle
   local current_artist = reply[10].creator
   local current_album = reply[11].album
   local current_albumart = reply[12].albumart
   local current_mediatype = reply[11].mediatype
 end
end

Full set of possible actions:

Code:
-- SONOS server side API interface for homeLYnk and spaceLYnk apps version 0.1 (DEV VERSION)
-- Includes SONOS auto IP discovery and all needed commands to perform basic and extended operation

-- Commands for SONOS API Interface

-- Get sonos data from players, only new found players are added to the existing array, earlier discovered players are already stored and not updated to keep fast performance
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=getsonosdata

-- Remove all items from stored array and rediscover all players again from start, this will reduce speed performance (only trigger by button)
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=refreshsonosdata

-- Refresh group data, no new sonos will be discovered, all groupings are (re)checked for current state
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=refreshgroupdata

-- Set player as standalone group (remove player from grouping)
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=setplayerasstandalonegroup&uuid=RINCON_000E5821B62C01400
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=setplayerasstandalonegroup&ip=192.168.10.31
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=setplayerasstandalonegroup&name=Woon_Kamer -- use _ for spaces in the name

-- Get extra / more details from player like MAC address and icons etc, can be resolved by RINCON or IP (IP and RINCON are found by getsonosdata)
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=getsonosplayer&uuid=RINCON_000E5821B62C01400
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=getsonosplayer&ip=192.168.10.31
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=getsonosplayer&name=Woon_Kamer -- use _ for spaces in the name

-- Get limited transport details from player like position, duration and volume, can be resolved by RINCON or IP (IP and RINCON are found by getsonosdata (fastpolling)
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=getstate&uuid=RINCON_000E5821B62C01400
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=getstate&ip=192.168.10.31
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=getstate&name=Woon_Kamer -- use _ for spaces in the name

-- Get extended transport details from player same as getstate with extra's like current albumart, shuffle, crossfade, repeats etc, can be resolved by RINCON or IP (IP and RINCON are found by getsonosdata (slowpolling)
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=getextendedstate&uuid=RINCON_000E5821B62C01400&createbaseimg=false
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=getextendedstate&ip=192.168.10.31&createbaseimg=false
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=getextendedstate&name=Woon_Kamer&createbaseimg=false -- use _ for spaces in the name

-- Get current albumart URL, can be resolved by RINCON or IP (IP and RINCON are found by getsonosdata (slowpolling)
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=getalbumart&uuid=RINCON_000E5821B62C01400
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=getalbumart&ip=192.168.10.31
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=getalbumart&name=Woon_Kamer -- use _ for spaces in the name

-- Get stored playlist(s) and corresponding playlist numbers (numbers are needed to call them), can be resolved by RINCON or IP (IP and RINCON are found by getsonosdata)
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=getplaylists&uuid=RINCON_000E5821B62C01400
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=getplaylists&ip=192.168.10.31
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=getplaylists&name=Woon_Kamer -- use _ for spaces in the name

-- Store current qeueu as new playlist, there must be a paramater 'listname' send for the name of the new list 'listname', can be resolved by RINCON or IP (IP and RINCON are found by getsonosdata)
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=saveplaylist&uuid=RINCON_000E5821B62C01400&listname=newplaylist
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=saveplaylist&ip=192.168.10.31&listname=newplaylist
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=saveplaylist&name=Woon_Kamer&listname=newplaylist  -- use _ for spaces in the name

-- Get stored items inside playlist, must be called by corresponding playlist numbers (numbers are needed to call them), can be resolved by RINCON or IP (IP and RINCON are found by getsonosdata)
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=getplaylistitems&uuid=RINCON_000E5821B62C01400&listnumber=9
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=getplaylistitems&ip=192.168.10.31&listnumber=9
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=getplaylistitems&name=Woon_Kamer&listnumber=9 -- use _ for spaces in the name

-- Get current items in queueu including all additional information like track URI, Artist, Album, Albumart etc. can be resolved by RINCON or IP (IP and RINCON are found by getsonosdata)
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=getqueue&uuid=RINCON_000E5821B62C01400&createbaseimg=false
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=getqueue&ip=192.168.10.31&createbaseimg=false
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=getqueue&name=Woon_Kamer&createbaseimg=false -- use _ for spaces in the name

-- Get current items in favorites including all additional information like track URI, Station, Track, Remote Albumart (not always present) and Local Albumart URI (always present) etc. can be resolved by RINCON or IP (IP and RINCON are found by getsonosdata)
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=getfavorites&uuid=RINCON_000E5821B62C01400&createbaseimg=false
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=getfavorites&ip=192.168.10.31&createbaseimg=false
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=getfavorites&name=Woon_Kamer&createbaseimg=false -- use _ for spaces in the name

-- Execute 'play' command on player, can be called by RINCON or IP (IP and RINCON are found by getsonosdata)
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=play&uuid=RINCON_000E5821B62C01400
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=play&ip=192.168.10.31
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=play&name=Woon_Kamer -- use _ for spaces in the name

-- Execute 'play with queue check' command on player, this will check if there is a track in the 'queue', if not the first stored playlist will be loaded to avoid no sound situations, can be called by RINCON or IP (IP and RINCON are found by getsonosdata
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=playqueue&uuid=RINCON_000E5821B62C01400
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=playqueue&ip=192.168.10.31
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=playqueue&name=Woon_Kamer -- use _ for spaces in the name

-- Execute 'seek' command on player, this will require the paramter position to jump to that time, can be called by RINCON or IP (IP and RINCON are found by getsonosdata)
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=seek&uuid=RINCON_000E5821B62C01400&position=0:01:23
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=seek&ip=192.168.10.31&position=0:01:23
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=seek&name=Woon_Kamer&position=0:01:23 -- use _ for spaces in the name

-- Execute 'load uri' from queue or favorites (radio streams) command on player, set listtype to 'queue' or 'favorites' and 'listnumber' to the x number track/station in the list. The listnumber is checked on valid range.
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=loaduri&uuid=RINCON_000E5821B62C01400&listtype=queue&listnumber=1
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=loaduri&ip=192.168.10.31&listtype=queue&listnumber=1
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=loaduri&name=Woon_Kamer&listtype=queue&listnumber=1 -- use _ for spaces in the name

-- Execute 'load and play uri' from queue or favorites (radio streams) command on player, set listtype to 'queue' or 'favorites' and 'listnumber' to the x number track/station in the list. The listnumber is checked on valid range.
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=playuri&uuid=RINCON_000E5821B62C01400&listtype=queue&listnumber=1
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=playuri&ip=192.168.10.31&listtype=queue&listnumber=1
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=playuri&name=Woon_Kamer&listtype=queue&listnumber=1 -- use _ for spaces in the name

-- Execute 'load and play uri' from queue list by number (needed to keep next and previous working) command on player, set listtype to 'queue' or 'favorites' and 'listnumber' to the x number track/station in the list. The listnumber is checked on valid range.
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=playqueueuri&uuid=RINCON_000E5821B62C01400&listnumber=1
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=playqueueuri&ip=192.168.10.31&listnumber=1
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=playqueueuri&name=Woon_Kamer&listnumber=1 -- use _ for spaces in the name

-- Execute 'stop' command on player, can be called by RINCON or IP (IP and RINCON are found by getsonosdata)
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=stop&uuid=RINCON_000E5821B62C01400
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=stop&ip=192.168.10.31
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=stop&name=Woon_Kamer -- use _ for spaces in the name

-- Execute 'next' command on player, can be called by RINCON or IP (IP and RINCON are found by getsonosdata)
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=next&uuid=RINCON_000E5821B62C01400
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=next&ip=192.168.10.31
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=next&name=Woon_Kamer -- use _ for spaces in the name

-- Execute 'previous' command on player, can be called by RINCON or IP (IP and RINCON are found by getsonosdata
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=previous&uuid=RINCON_000E5821B62C01400
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=previous&ip=192.168.10.31
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=previous&name=Woon_Kamer -- use _ for spaces in the name

-- Execute 'mute' command on player, can be called by RINCON or IP (IP and RINCON are found by getsonosdata
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=mute&uuid=RINCON_000E5821B62C01400
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=mute&ip=192.168.10.31
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=mute&name=Woon_Kamer -- use _ for spaces in the name

-- Execute 'groupmute' command on player, can be called by RINCON or IP (IP and RINCON are found by getsonosdata
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=groupmute&uuid=RINCON_000E5821B62C01400
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=groupmute&ip=192.168.10.31
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=groupmute&name=Woon_Kamer -- use _ for spaces in the name

-- Execute 'unmute' command on player, can be called by RINCON or IP (IP and RINCON are found by getsonosdata)
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=unmute&uuid=RINCON_000E5821B62C01400
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=unmute&ip=192.168.10.31
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=unmute&name=Woon_Kamer -- use _ for spaces in the name

-- Execute 'groupunmute' command on player, can be called by RINCON or IP (IP and RINCON are found by getsonosdata)
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=groupunmute&uuid=RINCON_000E5821B62C01400
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=groupunmute&ip=192.168.10.31
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=groupunmute&name=Woon_Kamer -- use _ for spaces in the name

-- Execute 'set volume' command on player, volume must be send as parameter and will be checked on scope 0-100, can be called by RINCON or IP (IP and RINCON are found by getsonosdata)
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=setvolume&uuid=RINCON_000E5821B62C01400&volume=10
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=setvolume&ip=192.168.10.31&volume=10
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=setvolume&name=Woon_Kamer&volume=10 -- use _ for spaces in the name

-- Execute 'group set volume' command on player, volume must be send as parameter and will be checked on scope 0-100, can be called by RINCON or IP (IP and RINCON are found by getsonosdata)
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=groupsetvolume&uuid=RINCON_000E5821B62C01400&volume=10
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=groupsetvolume&ip=192.168.10.31&volume=10
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=groupsetvolume&name=Woon_Kamer&volume=10 -- use _ for spaces in the name

-- Execute 'volume up' command on player, volume step must be send as parameter and will be checked on scope 0-50 and top / floor limits, can be called by RINCON or IP (IP and RINCON are found by getsonosdata)
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=setvolumeup&uuid=RINCON_000E5821B62C01400&step=10
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=setvolumeup&ip=192.168.10.31&step=10
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=setvolumeup&name=Woon_Kamer&step=10 -- use _ for spaces in the name

-- Execute 'group volume up' command on player, volume step must be send as parameter and will be checked on scope 0-50 and top / floor limits, can be called by RINCON or IP (IP and RINCON are found by getsonosdata)
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=groupsetvolumeup&uuid=RINCON_000E5821B62C01400&step=10
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=groupsetvolumeup&ip=192.168.10.31&step=10
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=groupsetvolumeup&name=Woon_Kamer&step=10 -- use _ for spaces in the name

-- Execute 'volume down' command on player, volume step must be send as parameter and will be checked on scope 0-50 and top / floor limits, can be called by RINCON or IP (IP and RINCON are found by getsonosdata)
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=setvolumedown&uuid=RINCON_000E5821B62C01400&step=10
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=setvolumedown&ip=192.168.10.31&step=10
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=setvolumedown&name=Woon_Kamer&step=10 -- use _ for spaces in the name

-- Execute 'group volume down' command on player, volume step must be send as parameter and will be checked on scope 0-50 and top / floor limits, can be called by RINCON or IP (IP and RINCON are found by getsonosdata)
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=snapshotgroupvolume&uuid=RINCON_000E5821B62C01400
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=snapshotgroupvolume&ip=192.168.10.31
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=snapshotgroupvolume&name=Woon_Kamer -- use _ for spaces in the name

-- Execute 'snapshot group volume' command on player, volume step must be send as parameter and will be checked on scope 0-50 and top / floor limits, can be called by RINCON or IP (IP and RINCON are found by getsonosdata)
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=groupsetvolumedown&uuid=RINCON_000E5821B62C01400&step=10
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=groupsetvolumedown&ip=192.168.10.31&step=10
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=groupsetvolumedown&name=Woon_Kamer&step=10 -- use _ for spaces in the name

-- Execute 'crossfade' command on player, state must be send as parameter, can be called by RINCON or IP (IP and RINCON are found by getsonosdata)
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=setcrossfade&uuid=RINCON_000E5821B62C01400&state=false
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=setcrossfade&ip=192.168.10.31&state=true
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=setcrossfade&name=Woon_Kamer&state=true -- use _ for spaces in the name

-- Execute 'playmode' command on player, mode must be send as parameter (options: normal, repeat_all, repeat_one, shuffle_no_repeat, shuffle and shuffle_one , can be called by RINCON or IP (IP and RINCON are found by getsonosdata)
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=setplaymode&uuid=RINCON_000E5821B62C01400&mode=normal
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=setplaymode&ip=192.168.10.31&mode=normal
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=setplaymode&name=Woon_Kamer&mode=normal -- use _ for spaces in the name

-- Execute 'load playlist into queue' command on player, 'listname' must be send as parameter and corresponding listnumber will be searched automaticly, also a autoplay parameter must be send to play direct after load, can be called by RINCON or IP (IP and RINCON are found by getsonosdata)
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=loadplaylist&uuid=RINCON_000E5821B62C01400&listname=My Playlist&autoplay=false
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=loadplaylist&ip=192.168.10.31&listname=My Playlist&autoplay=false
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=loadplaylist&name=Woon_Kamer&listname=My Playlist&autoplay=false -- use _ for spaces in the name

-- Execute 'load playlist into queue' command on player, 'listnumber' must be send as parameter, also a autoplay parameter must be send to play direct after loading, can be called by RINCON or IP (IP and RINCON are found by getsonosdata)
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=loadplaylist&uuid=RINCON_000E5821B62C01400&listnumber=9&autoplay=false
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=loadplaylist&ip=192.168.10.31&listnumber=9&autoplay=false
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=loadplaylist&name=Woon_Kamer&listnumber=9&autoplay=false -- use _ for spaces in the name

-- Execute 'getbase64img' command on current selected player, 'listnumber' and 'tablename' must be send as parameter
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=getbase64img&tablename=favorites&listnumber=1 --get's a base64 image of albmuart of the first item in the favorites list
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=getbase64img&tablename=queue&listnumber=4 --get's a base64 image of albumart of the 4th item in the queue list
--http://192.168.10.202/apps/data/sonos/sonos.lp?action=getbase64img&tablename=state&listnumber=0 --get's a base64 image of albumart of the current playing item ( listnumber is always '0' must always be send because of checks in script )

BR,

Erwin van der Zwart

Hello I tested them below to play a song from a playlist but it does not work me can someone help me?

http://10.10.20.99/apps/data/sonos/sonos....10.20.254
http://10.10.20.99/apps/data/sonos/sonos...stnumber=1
http://10.10.20.99/apps/data/sonos/sonos...play=false
Hello I tried this: http://10.10.20.99/apps/data/sonos/sonos...oplay=true and it works but if a song is already playing in sonos it does not stop and start playing what's in the playlist. If a song does not play then it normally plays. Can someone help me?
Reply
Hi,

Have you updated the Sonos app to yesterdays version?

BR,

Erwin
Reply
(29.08.2017, 10:58)Erwin van der Zwart Wrote: Hi,

Have you updated the Sonos app to yesterdays version?

BR,

Erwin

Yes, I did update it but it did not change anything
Reply
(31.08.2017, 13:02)kythas100 Wrote:
(29.08.2017, 10:58)Erwin van der Zwart Wrote: Hi,

Have you updated the Sonos app to yesterdays version?

BR,

Erwin

Yes, I did update it but it did not change anything.
There is another way to work this problem?
Reply
Hello!

We can ungroup Sonos zones with "setplayerasstandalonegroup", but, Can we GROUP zones? Defining the group coordinator

Thanks.
Reply
Hi,

Yes you can do it with this command:

Code:
socket.http.request('http://admin:admin@127.0.0.1/apps/data/sonos/sonos.lp?action=addplayertogroup&groupuuid=RINCON_000E58C103D601400&ip=192.168.0.101')

groupuuid is the UUID from the player that will be master, ip is the address of the slave or change this parameter in &uuid=RINCON_000E58C103D601500

BR,

Erwin
Reply
(05.09.2017, 11:16)Erwin van der Zwart Wrote: Hi,

Yes you can do it with this command:

Code:
socket.http.request('http://admin:admin@127.0.0.1/apps/data/sonos/sonos.lp?action=addplayertogroup&groupuuid=RINCON_000E58C103D601400&ip=192.168.0.101')

groupuuid is the UUID from the player that will be master, ip is the address of the slave or change this parameter in &uuid=RINCON_000E58C103D601500

BR,

Erwin

Hi Erwin,

Thanks for the command! It doesn't appear in the list of commands. Are there any complete command list of posible actions???

This command makes a group, but it does an autoplay...

Thanks!
Reply
Hi,

I think all actions are already published but this one was missing from the list. All actions possible in the app are available in the API as the app triggers them from JS. There are no actions other then say and sayall added that are not possible from the app options.

The autoplay is probably the state of the master Sonos when you add it, the slave gets same state as master...

BR,

Erwin
Reply
(09.09.2017, 14:57)Mr. Danielsen Wrote: Hi,

Is the sayall function removed from the last version of the Sonos app (Spacelynk)?
I can not get it to work at all....
If it's removed, is this by design or is this a bug?


Is there anyway to get the "old" Sonos app back? Everything worked fine before some of the last updates...!
The version before the update in mid/end of June...?

BR
Mr.D

Anyone?

(21.08.2017, 10:01)ivanposada Wrote:
(21.08.2017, 08:21)Erwin van der Zwart Wrote: Hi,

Loading playlists by ID is working, you probably call a non existing list.

Load lists like this:


Load playlist by name, playuri and loaduri needs to be checked as it's not work always as expected, a sended this to the current app developer ( i don't do this anymore for this app ).

BR,

Erwin

Ok, i'm calling a non existing list because the number of list in Sonos table is not equal at the ordenation in the APP.
Now it works, but the "autoplay=true" only works when the queue "is in use". When you are listening a radiostation, it load the playlist in queue but the radiostation continues playing.
The same for PLAYURI.

"Loadplaylist" by name doesn't work.
"Loadplaylist" by uuid doesn't work.

Thanks Erwin!

Hi,

I am experiencing the same in regards to listening to a radio station. The queue loads, but the radio continues/starts playing instead of the track in queue.
Did you find a work around for this?

BR Mr.D
Reply
Does anyone get the sayall function to work?
Reply


Forum Jump: