11.09.2019, 07:47
Hi
Here is how to use new Sonos app via script:
The app runs a daemon which keeps communication with each player/group The daemon will be closed down after 120s if no update is send so we need to run such script every 60s to keep communication up and running.
To control the players we need to know groupID which can be read via such command.
Basic control is done like this
The url_group_id is in the table from the groupID but it can be read automatically when we know group name so example start/pause script would looks like that.
To read Playlist table use this
To Play a playlist
playlist_id looks like a number but it is a string!
To read Favorites use
To play a Favorites
Here is how to use new Sonos app via script:
The app runs a daemon which keeps communication with each player/group The daemon will be closed down after 120s if no update is send so we need to run such script every 60s to keep communication up and running.
Code:
require('custom.sonos.lib')
groupID=sonos_app.GetStoragePlayerGroups()
for k, v in pairs(groupID) do
sonos_app.SendApiActionCommand(k, 'watchPlayerGroup', os.time())
end
To control the players we need to know groupID which can be read via such command.
Code:
groupID=sonos_app.GetStoragePlayerGroups()
Basic control is done like this
Code:
-- simle command: play, pause, skipToPrev, skipToNext
sonos_app.SendApiActionCommand(url_group_id, 'play')
Code:
-- set volume
sonos_app.SendApiActionCommand(url_group_id, 'setVolume', 50)
The url_group_id is in the table from the groupID but it can be read automatically when we know group name so example start/pause script would looks like that.
Code:
require('custom.sonos.lib')
groupName='Kitchen'
-------------------------------------------------------------
groupID=sonos_app.GetStoragePlayerGroups()
for k, v in pairs(sonos_app.GetStoragePlayerGroups()) do
if groupID[k].groupName == groupName then
groupID=k
break
end
end
-------------------------------------------------------------
value = event.getvalue()
if value then
sonos_app.SendApiActionCommand(groupID, 'play')
else
sonos_app.SendApiActionCommand(groupID, 'pause')
end
To read Playlist table use this
Code:
sonos_app.GetStoragePlayerGroupData(groupID, 'Playlists')
To Play a playlist
Code:
-- play playlist by ID
sonos_app.SendApiActionCommand(url_group_id, 'playPlaylist', playlist_id)
To read Favorites use
Code:
sonos_app.GetStoragePlayerGroupData(groupID, 'Favorites')
To play a Favorites
Code:
sonos_app.SendApiActionCommand(url_groupID, 'playFavorite', url_favID)
------------------------------
Ctrl+F5
Ctrl+F5