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
#1
Erwin has successfully finished and debugged SONOS app for LogicMachine which we have placed in the app store. Please fee free to test and post your comments/suggestions.
Main functionality:
  • Control your Sonos devices from a web based application. No configuration is required.
  • The application scans your network and all found players are added automatically.
  • All basic control features are available like play, pause, next, previous, volume, mute, un-mute, shuffle, repeat and time scrolling.
  • The application automatically loads all items available in the players like grouping, queue, playlists and favorites including album art.
  • The application also functions as a API to make it possible to control all basic Sonos functions from KNX by using HTTP requests inside your LUA scripts.
Cheers Erwin van der Zwart!
Reply
#2
Will this App Store ever come to SpaceLYnk...?
Reply
#3
Hi FatMax,


Yes we plan to have this in the next release, in current version we already have Apps but without frontpage, so you can use a big part of it already. 

The default files like bootstrap.css and some other helper files are not included in our current Apps engine.

I don't know exact release date of our 2.0 FW but i think (hope) somewhere around 02-2017 (give or take).

BR,

Erwin van der Zwart

(07.10.2016, 09:28)edgars Wrote: Erwin has successfully finished and debugged SONOS app for LogicMachine which we have placed in the app store. Please fee free to test and post your comments/suggestions.

Cheers Erwin van der Zwart!

For all the testers: Please give me your feedback as i know there are lots of improvements to do (and i will) but i need your input!

Keep in mind that i won't re-build the complete original sonos app (you should use official App then) but most main features are planned / should be there.

BR,

Erwin van der Zwart
Reply
#4
Hi Erwin,

You have an mail from me. Feel free to let me know when/if you wish to connect via TeamViewer to my Mac when I am home.
I have 4 Sonos players and I can help you with feedback regarding the functionality of the changes you're making.

Good job! I was waiting for such application for long time...

Andreas
Reply
#5
Hi Erwin,

with the discovery process do you try to get each individual sonos player through broadcasting. since you only need to get one player from a broadcast. The remaining players can be retrieved from the one player.

thanks,

roger
Reply
#6
Hi Roger,

Yes i do a broadcast now but only once on app start or when refresh button is pressed.

Why? Given the other data i don't see a advantage to change it as the scan has minimal to zero network impact...

BR,

Erwin
Reply
#7
it could have less impact on the logic machine, and should find all the players faster since a single sonos player can provide all of the IP addresses of the Sonos players. We typically run between 12-25 sonos players in a home. For small installations sure its not needed, for the larger installs that has a major impact.

thanks,

roger
Reply
#8
Hi,


In the attachment, on "icons Safari.jpg", you can see the imperfection of the Mute, Play, Prev/Next buttons, on the upper part, while running Safari on an iMac 27". 
I've took a screenshot of Safari vs. Chrome (see Chrome vs Safari.jpg attached image) with both programs opened, while running on my iMac 27". I've found that the icons are displayed normally in Chrome, but not in Safari.

Is anyone seeing this behaviour on a MacBook Pro/iMac/MacBook/Mac running Safari?


Thank you,
Andreas

Attached Files Thumbnail(s)
       
Reply
#9
Hi Roger,

I will check this as it's probably not much work to change it (;

BR,

Erwin van der Zwart

Hi Andreas,

As you already know by now, there was a small item in the main css causing this behavior. I removed the css line and it will be updated in the next version of the app.

BR,

Erwin
Reply
#10
Thanks a lot, Erwin! Very quick feedback from your side...
Reply
#11
Hi Roger,

I changed the procedure for finding the Sonos players, i do a UDP scan until 1 player is found, then i break the scan and reqeust the other players by using GroupState.

I already used this for getting the grouping of the players so this is simplyfied now.

Thanks for your input (;

I will change some other items around next week and then we will upload a new version also with this and the small css issue change.

BR,

Erwin
Reply
#12
Hi Erwin,


I have tried to adjust the volume+/- on my Sonos and add it also to the Schneider 7" Touch Panel, but I still wasn't able to make it work.
Note that for each room I am using the below IPs: 

10.20.30.20 - Kitchen
10.20.30.30 - Living
10.20.30.40 - Bedroom
10.20.30.50 - Office

Commands are being sent via script:

Music System: (room name): SetVolume
                 upnpavcmd('10.20.30.xx', 1400, 'SetVolume', '<Channel>Master</Channel><DesiredVolume>20</DesiredVolume>')

Music System: (room name): Read Volume
                 res = upnpavcmd('10.20.30.xx', 1400, 'GetVolume', '<Channel>Master</Channel>')

I am not sure what kind of "data type" I should set for the information being sent to the bolded Object Names, I might have chosen a wrong format. 
Can you please advise?


Thank you,
Andreas

Attached Files Thumbnail(s)
   
Reply
#13
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
Reply
#14
Hi Sonos users,

I just made the final version of the Sonos app, all items are tested and stable as far as i could test them. I will send this version to Edgars to upload it into the store.

Did anyone of you tested the beta version? If yes are there items found?

Please let me know so i can fix those items (if not already done) before i submit this final version to the Appstore.

Thanks!

BR,

Erwin van der Zwart

(see screenshot for latest version preview)

Attached Files Thumbnail(s)
   
Reply
#15
Looks nice, looking forward to test it! Smile
The scripts which you have posted are staying unchanged, it's just the app that has been updated?
Reply
#16
Hi,

Yep, the HTTP API is not changed, however there are some items added for the app itself but not interesting to use for external control.

There are a lot of changes done, so you will noticed this in the performace (;

On this moment i can't see a single item i need to change / improve (based on current app options)

BR,

Erwin
Reply
#17
Hi Erwin,


I am trying to understand where/if I do a mistake into the current setup and how to fix it.
Currently, I am using the 10.20.30.20 IP with Sonos from Kitchen and the values are getting updated on the bus. 
I have defined them as indicated into the attached sample screenshot, taken from STOP button. The values for Objects are getting updated, but is it a problem in the way I have defined the Sending Value on the touch panel? Or the location of my scripts on LM4?

I need just a button to make it work, then I will propagate the changes to all the buttons.

I am still struggling to make it work within the last 2 days...  Huh



Thank you,
Andreas

Attached Files Thumbnail(s)
                   
Reply
#18
Hi Andreas,

You just need 1 byte object for each player and 1 script.

Based on the value of that byte object the action is executed..

The error shows a boolean value as event but images of object
shows byte value.. did you change anything during screenshots?

You also changed the url so the dynamic values are removed and all commands send 'stop' now...
Please use the original script is a posted earlier.

Make a byte object with original script and adjust values in your buttons
to match 'if value = xx' where xx is the value you need to use.

Try to change dynamic values in the http command url as static values and paste the http command direct in your browser, does action work then?


BR,

Erwin
Reply
#19
There is a update for the Sonos app inside the app store to get the latest version.

BR,

Erwin van der Zwart
Reply
#20
(25.10.2016, 13:32)Erwin van der Zwart Wrote: There is a update for the Sonos app inside the app store to get the latest version.

BR,

Erwin van der Zwart

Hi Erwin,

The first problem I do see is that they are multiple selections of rooms, even if a group or an individual player is selected. Again, the selection color does not change. See attached a screenshot and feel free to login remotely on my LM4. Or is it changing with a long delay?

I have not worked on the Sonos script configuration lately inside Objects of my LM4, but I will have a look at it this week. I want to fix it as soon as possible, so that I can control the music with my Schneider 7" Touch Screen. 

Andreas

Attached Files Thumbnail(s)
       
Reply


Forum Jump: