I have uploaded a set of roon APIs that are called by HTTP protocol which includes Transport, browse, and Image APIs.
You can try it from the link below, at:
I have also created small pages to show how the APIs are called which include:
mini player (with volume where available)
browser (with search and pagination)
timer (for play/pause at a later timer)
Besides these pages, I have also managed to create iOS iPhone and Apple Watch swift apps and widget as well as using iOS’s Workflow app to create a widget.
The link to the workflow is:
Can you write an idiot proff usergude
Pictures is important.
The iOS Workflow app should be able to give a link as well i think.
There exist already one quite nice extention with the workflow app.
Using the now-free (Apple bought it)
Workflow app for iOS, the Roon API and Node.js, my 16 year old son managed to hack together a remote to control Roon (play/pause, next and previous track, muting and pause across all zones) from iOS’s Notification Center - as a widget, controllable from the lock screen. It’s pretty much lag-free and a lot quicker than unlocking and starting the Roon app for such simple commands. Take a look at his GitHub repo. and tell me what you think: https://gith…
I will look into this. I would love to add controls to Control4.
I have updated the readme file with the calls for each APIs.
Let me know if you have any questions / would like to have other APIs
The Link for the workflow is:
Here’s the picture of one of the pages I made (it’s the player one)
The dropdown at the top of the page is a list of zones available.
When selecting a zone, it will show you (if any) the current track/album information for that zone.
And for those zones that you can change the volume there is a volume slider.
@St0g1e Thank you so much. Up and running in no time!
I been wanting something like this for some time now!
Thank you for trying it out.
Let me know if you’d like to have other functionalities as well.
I really like this extension, thanks for sharing it. I’m going to have a play with it in a native android app. I’d love to see support for web sockets, that could be really cool, since the api can be quite chatty if you want to update the ui in real time.
@St0g1e Real time update of the zone playing would be nice!
I have updated the player page to update the information every 2 seconds.
If you’d like to change the update interval, you can go to:
htmls/player.js and update the timeInterval value (it’s in milliseconds)
@Stuart_Simmons I agree with web sockets, we can have realtime UI update and can create a stand alone player
@Tech_Whisky_Lab, now you don’t have to click refresh to update the information.
[code]root@darkdreams:/roon_projects/roon-remote# git pull .
branch HEAD -> FETCH_HEAD
Could you please go to the page at
https://github.com/st0g1e/roon-extension-http-api and see if you can see that controller and html directories are updated in the last couple of hours?
I just did a pull and it’s giving me the latest.
I was in the wrong dir!
root@darkdreams:/roon_projects/roon-extension-http-api# git pull
remote: Counting objects: 14, done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 14 (delta 7), reused 14 (delta 7), pack-reused 0
Unpacking objects: 100% (14/14), done.
0af8210..647ce3a master -> origin/master
.gitignore | 2 +-
README.md | 4 ----
controllers/roonAPI.js | 8 ++++----
htmls/player.js | 21 ++++++++++++++++++++-
4 files changed, 25 insertions(+), 10 deletions(-)
All good now. Thanks again!
Great, I will take a look at it later.
Maybe I can use/reuse some of it to create a small app for the LaMetric Time, which also should display only the playing track.+ Artist.
I’ve created a websocket implementation as well.
I just uploaded it to GitHub at:
There are information on the apis I’ve created and used on the Readme file.
Let me know if this is what you were after.
This websocket implementation might be better for you as it updates as soon as Roon api updates the information as opposed to every 2 seconds on the http.
The only downside of this is that it does not support iOS’ workflow.
Let me know if you’d like to have other APIs.
I know I have not created all of Roon’s apis for the HTTP one.
This looks great. I’ll have a tinker with it this weekend.
Thanks a lot for sharing.
I will Give it a try when I get home!
@St0g1e All working well here!
@St0g1e Pause does not work. Play does. As soon as I want to pause. It wont respond.
Is this for the http apis?
Could you please send me the zone list from the output where you typed in the “node .” When this happens?
There is a “is_pause_allowed” flag that I don’t use. You can try stop instead. Or I can update the code to use this flag and call stop instead.