Roon Extension: Roon Web Controller v1.2.0

Hi Mike,

thank you for your long answer. You said that the Browser is automatically use the last zone. i think my installation of chroium in kiosk mode maybe has problems to save cookies.

-Thats should be the same case as my question with the timeout while playing. the broswer forget everything i set when the system is booting.

  • i use now a flirc usb dongle to get the screen back on :slight_smile: thank you for your tip
    klind regards
    horst

Diet Pi does some ā€œinterestingā€ things with user profiles that I find incredibly frustrating when coming from another more standards compliant distro of Linux. It is entirely possible that you are not doing anything wrong and that the problem is Diet Pi resetting the profileā€¦

This would explain why the last selected zone and the ā€œdisable screensaver while playingā€ option is not being preserved since both of those are settings that are saved in the cookieā€¦

Unfortunately, I will not be able to test this out for at least a month or so. I am packing to get ready to move at the end of this month, and all of my Pis are already packed awayā€¦

1 Like

Sorry guys but how do I install this? My RoonCore is running on a Mac Mini and I want to use the Web client roon player on an older iPad1 (iOS9). The github wiki installation talks in riddles.

Hi Mike,
thank you for the analysis. i think i find my way with the user profile. i din`t know that dietpi behaves this way
kind regards

horst

The wiki page is specific to Diet Pi, a distribution of Linux.

Since you are running Mac OS, you can install the Roon Extension Manager and use it to install the Web Controller on your core. After that, Web Controller is a web page that you open in a browser.

Note that this web app uses CSS and JavaScript that may not work on Safari older than IOS 9. And if memory serves, the original iPad is maxed at IOS 6, which will not work with this web app.

Thanks Mike, I managed to get things going after about 60 minutes of fiddling with getting homebrew, nodejs and git installed. I now have web controller working as an extension on my RoonCore. I had a quick play around with the web client and when I went via library, found an album and hit play music did not play. I will try some more tonight and make sure its not related to the iPad (FYI my Ipad is definitely running iOS9 so it might be a more recent model)

The library and the now playing screen are actually different html pages. This is a huge point of frustration for me and will be corrected as part of a complete rewrite later this year.

The library will read the cookie to get the selected zone, but only on the initial page load.

In other words, even after you select a zone on the now playing screen, you may also need to select a zone on the library page. There are three icons at the top left. If the text beside those icons says ā€œzoneListā€, then the library does not have a selected zone. Tap the word ā€œzoneListā€ to get the zone selection dialog.

After that, the album play should work.

And yes, that is annoying - it bugs me too. The next major release of this will most likely be based on Vue.js which has MUCH better cross page state tracking. I have a working prototype already, but it is no where near release ready. The main challenge is gutting out all of the jquery dependencies so that I can drop jquery completely.

1 Like

Thanks again Mike, by deleting my unnecessary extra zone I was able to get it working. The only other issue was that node crashed out today while I was at work. See output.

-> CONTINUE 1 Changed {ā€œmessageā€:ā€œStarted: roon-web-controllerā€,ā€œis_errorā€:false}

-> CONTINUE 1 Changed {ā€œmessageā€:ā€œStarted: roon-web-controllerā€,ā€œis_errorā€:false}

-> CONTINUE 1 Changed {ā€œmessageā€:ā€œStarted: roon-web-controllerā€,ā€œis_errorā€:false}

Itā€™s update time!

2019-03-13T15:00:02.949Z - Inf: Terminating: roon-extension-repositoryā€¦

-> CONTINUE 1 Changed {ā€œmessageā€:ā€œTerminating: roon-extension-repositoryā€¦ā€,ā€œis_errorā€:false}

2019-03-13T15:00:02.951Z - Inf: Updating: roon-extension-repositoryā€¦

-> CONTINUE 1 Changed {ā€œmessageā€:ā€œUpdating: roon-extension-repositoryā€¦ā€,ā€œis_errorā€:false}

url: https://raw.githubusercontent.com/TheAppgineer/roon-extension-repository/master/.gitignore

404: Not Found

2019-03-13T15:00:11.393Z - Inf: Updated: roon-extension-repository (0.2.2)

-> CONTINUE 1 Changed {ā€œmessageā€:ā€œUpdated: roon-extension-repository (0.2.2)ā€,ā€œis_errorā€:false}

2019-03-13T15:00:11.398Z - Inf: Terminating: roon-web-controllerā€¦

-> CONTINUE 1 Changed {ā€œmessageā€:ā€œTerminating: roon-web-controllerā€¦ā€,ā€œis_errorā€:false}

{}

2019-03-13T15:00:11.400Z - Inf: Extension Repository loaded

-> CONTINUE 1 Changed {ā€œmessageā€:ā€œExtension Repository loadedā€,ā€œis_errorā€:false}

2019-03-13T15:00:11.416Z - Inf: Terminated: roon-web-controller (SIGTERM)

-> CONTINUE 1 Changed {ā€œmessageā€:ā€œTerminated: roon-web-controller (SIGTERM)ā€,ā€œis_errorā€:false}

2019-03-13T15:00:11.417Z - Inf: Updating: roon-web-controllerā€¦

-> CONTINUE 1 Changed {ā€œmessageā€:ā€œUpdating: roon-web-controllerā€¦ā€,ā€œis_errorā€:false}

-> CONTINUE 1 Changed {ā€œmessageā€:ā€œUpdating: roon-web-controllerā€¦ā€,ā€œis_errorā€:false}

url: https://raw.githubusercontent.com/pluggemi/roon-web-controller/master/.gitignore

2019-03-13T15:00:41.916Z - Inf: Updated: roon-web-controller (1.2.9)

-> CONTINUE 1 Changed {ā€œmessageā€:ā€œUpdated: roon-web-controller (1.2.9)ā€,ā€œis_errorā€:false}

2019-03-13T15:00:41.919Z - Inf: Terminating: roon-extension-managerā€¦

-> CONTINUE 1 Changed {ā€œmessageā€:ā€œTerminating: roon-extension-managerā€¦ā€,ā€œis_errorā€:false}

<<<crashed out, restarted >>>>>

RoonCore:roon-extension-manager roon$ node .

{ ā€˜roon-extension-managerā€™: ā€˜0.9.5ā€™,

ā€˜roon-extension-repositoryā€™: ā€˜0.2.2ā€™,

ā€˜roon-web-controllerā€™: ā€˜1.2.9ā€™ }

Docker not found

2019-03-14T08:42:16.603Z - Inf: Roon Extension Manager started!

And is there a way to get it to show album/artist art on the artist/album pages? Its a bit plain at the moment by default at least. Thanks.

Those look like messages from the extension managerā€¦ you may want to use extension manager to remove the Web Controller then reinstall it.

@Jan_Koudijs - ideas?

As for the pictures, an early prototype of the library had pictures. And the performance was terrible. On a desktop browser, it took 10-15 seconds for a page load. On the Raspberry Pi it took nearly a minute and scrolling made it unusable.

So I made the decision that bland + functional was better than pretty + useless.

I will revisit this during the rewrite. I have some personal use only web apps that are doing dynamic sizing with smart cropping of images which I may incorporate in this during the rewrite, but only if the library is usableā€¦

1 Like

Hello Mike_Plugge,

at the risk of mentioning an already discussed topic, I wanted to ask about the Roon Web Controller extension showing and controlling private zones. Or rather, I see that it does this, and would suggest that perhaps it should not show and control private zones.

A feature request? For an extension that is already great; I use it to allow my guests to have a go at looking at the library and picking some music out. Thank you!

-Chris

I will have to double check to see if the Roon API has any indication that a zone is private. I donā€™t remember it being there, but it has been a while since I looked at the raw JSON from the api.

But if there is no marking in the api, there is not much I can do to figure out which zones are private.

Itā€™s all good. =)

What happens is that the three Android endpoints (ie. cell phones) that their various owners use (and are private zones - which donā€™t show up anywhere else other than on the mobile device itself) show up in a (complete) list of zones on the Web Controller. It makes a for a long list of zones.

This is not a crash, the Extension Manager terminates as part of an Auto Update run. There are two approaches to handle this.

First is to run this script in a loop, something like:

while true; do ./roon-extension-manager.sh; done

Iā€™m not into the Apple eco-system so I cannot provide detailed instructions.

The second is to disable Auto Update in the Global Settings by clearing the input field that holds the update time.

I am using a QNAP NAS as the Roon Core. I successfully (seem to be) installed Roon Extension Manager and Web controller on the QNAP using container/docker, but then I realize that the QNAP use port 8080 for web access, which is the same as web controller. Anyone know how to change the listening port for the Web controller installed on QNAP? I cannot figure out where the config files are installed on the QNAP.

Thanks.

On my installation the path for the directory that contains the configuration file(s) is:
/Container/container-station-data/lib/docker/volumes/roon-extensions/_data/node_modules/roon-web-controller/config

You need to install Text Editor if you want to edit the file in QTS.

Great work!
I was looking for an end point controller. Found it!

rPi/ r Display / Audiophonics Kali -Sabre dac / (crappy smp psu :frowning: )
dietPi / roon extensions mgr / roon end point / shairport

Works great.

Thank you for your hard work.

Album art browser would be great but I get the sluggish behavior implications. Background pre process and cache ?

A small request, if possible.

I have dietpi set up with kiosk chromium setup pointing at the Web controller. I also have xset s setup to blank the screen. Web controller stops the blanking perfectly while playing, and the screen blanks after I stop the music.
A long winded way to say is it possible for the Web controller to wake the screen on new playback?
Failing that, it just means I have to tap the screen.

Iā€™m blind user of Roon. Web Controller is one way to controll Roon by blind users when using screenreader. Is it posible to add description to button "prewious track, pause/play, next track. This buttons have no description. It is posible to add shortcuts to this buttons? Great job , hank You very much for deweloping this addon. Best regards Robert

1 Like