Roon Extension: Roon Web Controller v1.2.0

(Mike Plugge) #182

The last change to the node-roon-api which this app uses was 4 months ago. It did not change at all with the release of Roon 1.6.

Have you restarted the extension? Have you completely removed and reinstalled the extension?

That said, I am looking to put some code in to check if the zone id in the cookie is available, and if not, show the zone selection dialog.

But it may take a bit. While I use the app every day with no problems, I haven’t looked at the code for a while. I have been prototyping a completely new release…

(Derek Wyman) #183

Thanks Mike. I will try to remove/reinstall again.

I did a complete clean install not long before the 1.6 update and everything was good. The issues happened after the 1.6 so it seemed to be related, may have just been coincidence.

(Derek Wyman) #184

No go unfortunately.

I can get the zone list for the library, but now playing is stuck on a zone that no longer is in use and I can’t get to a zone list to change it.

(Mike Plugge) #185

Which browser version and OS are you using? Which zone selection button are you using, the one on the library or the one on the now playing screen?

It has been a while, but I don’t think the library one sets/updated the cookie…

I will still look to add the cookie check code, but the soonest will be this weekend.

But I am house hunting since I have to move before May, and that will take priority.

(Derek Wyman) #186

That will explain why the library browser works but i can’t get to the selector on the now playing side.

The browser is “fully kiosk browser” on an Android tablet. It runs a version of web view that is separate from chrome. Doesn’t seem to be any way to clear/block cookies from specific sites like there is in chrome.

All my other instances of web controller are on normal chrome apps (Chromebooks, laptops, phones etc) and all work fine with cookies blocked.

I appreciate the responses. I know this is an outlier and probably doesn’t effect many folks.

(Mike Plugge) #187

Roon Web Controller v1.2.9 is now available.

This release has a much needed update to the dependencies and also adds a check to show zone selection overlay if the selected zone is no longer available.

(Mike Plugge) #188

v1.2.9, just released should address what you are seeing.


(Derek Wyman) #189

Awesome! I’ll give it a go when i get home. Ty!

Working great. Thanks again!


Hi, fist of all great work! Could anybody could help me with the following 2 issues?
Latest DietPi with Extention Manager, Roon Extention Manager, Roon Bridge, Web Controller 1.29 is running etc. I followed the steps of the DietPi Extention Manager setup documentation.


a) Up to now i could not manage a local autologin or autoexecution. After a reboot the systems waits for the login credentials. A local login and starting the script will bring up the web interface!

b) What is wrong if I can not select any album within the library browsing window? Zone selection or the PlayNow screen is operating as expected. I can increase or decrease the volume etc. but within all other menus i can not select any items. This behavior is on the local system (local browser on the pi with touch) or from a remote browser, accessing the ip of this rapi machine…

Thank you

(Mike Plugge) #191

A) From what I have experienced, Diet Pi is constantly changing the way things work. As a seasoned Linux admin, I don’t like the way Diet Pi mangles things like environment settings, so I don’t use it. The instructions on the Gitlab page worked when they were written. But I cannot make any guarantees on whether they work now. You will likely have better luck posting to the Diet Pi forums for support on the auto-login and auto-execution.

B) At the moment, the library browser is a different web page than the now playing screen - they are both embedded using iFrames. So there is no sharing of information between them. The library page will read the cookie, but it will not set the cookie. For the library browser, make sure that a zone is selected. If you are using multiple browsers to access it, make sure you click the circle reload icon at the top when you switch browsers. For a full explanation why, see this post: Roon Extension: Roon Web Controller v1.1.1

The fact that the library is a separate page than the now playing screen is a huge source of annoyance for me as well. I am prototyping a complete rewrite, but it is no where close to being ready to be released. And since I am currently house hunting and have to move before the end of April, I am not sure when I will have the time to work on the next version.


Hi @Mike_Plugge,
i still have the issue with the “buttons” in the library browser which are clickable, but do do not “fire” an action. Last setup was a DietPi Setup, now i tried a new setup from scratch with Rasbian Lite and I installed everything manuall.

The problem only occurs, if i use the locally installed chromium browser on the RPI3 with a local 7" RPI-touchdisplay. If I use a remote web browser (Windows 10 Firefox edition) connecting to that RPI-machine, everything is working as expected and i can select albums, titles, internet radios from the web controlled zone.

So the problem occurs only on the local chromium browser - is this possible?

Any ideas?


(Mike Plugge) #193

It is entirely possible that it is a problem with the locally installed browser. It certainly sounds like it.

Do you run into issues when you use a mouse? To see the mouse cursor, remove the -nocursor from the xinit line in step 3 of this section of the documentation:

What version of Chromium is installed? To see the full Chromium menus, disable kiosk mode by removing --kiosk from the /root/ file in step 7 of the system configuration section at the above link.

For what it is worth, I almost exclusively use Chromium and this software works as far back as version 58. Possibly even older.


the installed version of chromium is 65.0.3325.181

(Mike Plugge) #195

That should be supported browser.

Have you tried it with a mouse?

(Derek Wyman) #196

Last few days I’ve need to re-enable the extension (1.2.9) every morning.

works fine after enabling

(Jan Koudijs) #197

Hi @Derek_Wyman,

Guess you are using the Extension Manager. It had a bug that caused the problem you described.

Please update the Extension Manager to version 0.9.2 and let me know if it solves the problem.

(Derek Wyman) #198

thanks, Jan

I was showing v0.9.2 but I went ahead and updated it.

So far so good

(Jan Koudijs) #199

If it was already updated to v0.9.2 then it probably needed one Web Controller update to restore a critical file. If you manually update the Web Controller now does it remain enabled?

(Horst) #200

Hello Mike,
thank you for your work. it `s working fine, but i have a few questions

i am using the Webcontroller via a Dietpi. i Followed the wiki and got the chromium running in kiosk mode.
right now the kioskmode starts http://localhost:8080 is it possible to pass that url the zone that i want to choose ?
I saw that i can configure a screentimout to be enabled while playing. everytime i reboot the client, the settings are gone. is there a configfile or something like that ?
and my last question :slight_smile: can i get the screen back on without touching it ?

kind regards

(Mike Plugge) #201

Short answer: No

Long answer:
The zone selection is stored in a cookie so that your browser will default to the last selected zone. But there is no way to specify a zone with the URL.

The display name is not used as a unique identifier in the software because of the possibility of duplication and that spaces in display names can be a pain to work with in a URL. That friendly display name is completely meaningless to the software - it is only displayed for user convenience.

The unique identifier for most things in the Roon api is the zone id. The zone selection buttons in the software show the friendly display name, but set the zone by zone id. The zone id is a unique 36 character hexadecimal number that is generated by the Roon core. And the zone id can change if zones get grouped and un-grouped. As an example, this is one of the zone ids for one of my systems:
As you can see, that is not exactly easy to remember.

The only exception is the output id which is used with the volume controls. And that is a different 36 character hexadecimal number which looks very similar to a zone id.

I think you are asking about the amount of time until the screen goes blank if there is no activity. If so, then in the system configuration section of the document here, step 7 is the file. There is a line that says:
xset dpms 60 60 60 &

That is where you would change the time out. The numbers are in seconds. The first number is standby, the second is suspend, the third is off. You can change the 60 to any number of seconds that you choose and this should survive a reboot. If you change this line, make sure that the & is at the end or the script will hang and the browser wont start.

Any input event will wake up the screen. A keyboard press, a mouse movement, or a touch event are all input events that will wake up the screen. The most common for most people would be a touch event since most people do not have a keyboard or mouse attached.

Theoretically you can hook buttons to the GPIO pins on the Raspberry Pi and program a piece of software to convert a GPIO event to an input event. Another option would be to use LIRC to convert IR events to input events. But both of these options are WAY beyond the scope of this software.