JS Roon API documentation

Great. Finally i can get rid of my inconvenient mouse/keyboard RoboJS macros, which i’ve used to control Roon so far :slight_smile:

I got player control working, but i’m struggling with volume control. What is the 2nd parameter ‘how’ in RoonApiTransport.prototype.change_volume = function(z, how, value, cb) supposed to be?

“absolute” | “relative” | “relative_step”

If you give me a pull request with some docs or improvements, I’ll gladly take it :slight_smile:

How are you guys liking the discovery/auth stuff? it was an annoying part of this that I think we got right, but I’d like some feedback.

Also, lots of API could be added… what do you want?

I’ve ripped off the powermate extension and got it working with keyboard media keys using input-event. No more waking up the iPad to pause Roon!

I’m running Node.js on the same RPi3 running Roon Bridge, but I realise now it could run on any computer on the network. Very cool.

It’s great, very logical and easy to use. Same with configuration. Sadly I have only one core and one endpoint, but it would be so easy to implement something like a separate physical mute button for every endpoint in a group.

One thing we need in the documentation is a list of argument values in the transport functions. I don’t think there’s any way to discover these, unless I’m missing something. E.g. what are the appropriate values of how in the seek method? What are the available control actions?

2 Likes

I’ve just pushed a commit that has those docs as inline jsdoc comments. I’ll add more as I can…

  1. Getting artist info and lyrics in the zone.nowplaying object would be nice to have for polishing our node extensions.

  2. I’d also like to know how to get access to the physical .mp3 file. Being able to cache a number of physical media files would be great for when you know you won’t have access to your Roon core ,but want to make a simple playlist that’ll work offline.
    Perhaps a track key, similar to how your image API works. http://:192.168.2.1/api/track/#track_key#

1 Like