Roon Extension: Roon Web Controller v1.2.0

(Mike Plugge) #142

I am playing around with a proof of concept test page right now. You are not the first person to request the feature, so I am doing some research on it.

This feature will be a LOT easier once the Wake Lock API is implemented in web browsers. But I am looking a work around library to implement it now.


The library browser relies on a LOT of AJAX queries and JSON parsing. Due to the way the API works, caching will not work. On quick devices like a desktop, it is more usable. But on a Raspberry Pi touchscreen, it can be sluggish.

The library browser is tough to program because of the constantly changing “item id” key in the JSON. This is the main reason why Roon Web Controller and st0g1e’s roon-extension-ws-player are the only ones I am aware of that have implemented a library browser.

Even on the Roon Web Controller client that I use on my desktop, I find that I use the search feature more than the browser.

(Mike Plugge) #143


I have it working on a local copy.
The screensaver/sleep mode is disabled when the “now playing” screen is displayed, so the screen will not blank.
On the “Nothing playing on” screen , screensaver/sleep mode is enabled again, so the screen will blank.

Should the screen blank when the “now playing” screen is showed and a track is paused?


Super ! When “now playing” and track is paused OK to enable again screensaver/sleep mode. Thank’s for your work.

(Mike Plugge) #145


It should be ready for regression testing in an hour or two. Assuming no blocker bugs, I will release it to master sometime today.

(Mike Plugge) #146

Roon Web Controller v1.2.6 is now available.

New features

  • Added option to disable the screensaver or sleep mode when a song is playing. The screensaver or sleep mode is allowed when a track is paused or stopped.
    • Known limitation - the app will not wake up a screen that is already sleeping when playback is started from another app.

Upgrade notes
The package dependencies have been updated to the latest versions. It is recommended to perform an update.

If you followed the Diet Pi installation guide, follow these update instructions

Otherwise, on the Node.js server:

  1. Stop the extension
  2. Run git pull
  3. Run npm install
  4. Run npm update
  5. Start the extension

See the for complete list of changes


Great !
But unable to update to 1.2.6
Any workaround ?

dietpi@DietPi:~/roon-web-controller$ git pull
remote: Counting objects: 18, done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 18 (delta 12), reused 17 (delta 12), pack-reused 0
Unpacking objects: 100% (18/18), done.
b220f71…e7c3013 master -> origin/master
[new tag] v1.2.6 -> v1.2.6
Updating b220f71…e7c3013
error: Your local changes to the following files would be overwritten by merge:
Please commit your changes or stash them before you merge.

(Mike Plugge) #148

Not sure why that happened…

The easiest thing to do is to reinstall.

As the dietpi user:

cd ~
rm -rf roon-web-controller

Use git to fetch the software again.

git clone

Change directory into the fetched software and install the dependecies

cd roon-web-controller
npm install


Thank’s Mike.
1.2.6 installed., disable screen saver while playing enabled
Perfect !

(Tony Casey) #150

Has anyone tried this with ChromeOS. Google Pixelbook?

(Mike Plugge) #151

As a client:
I don’t have access to a Chromebook to test but it should work fine since ChromeOS is centered around the Chrome browser. The primary web browser that I develop and test with is Chromium on Linux. And the Chromium browser is part of the source that gets compiled into ChromeOS.

As a server:
However, from what I understand, installing 3rd party software on a Chromebook is restricted. So I doubt you will be able to run the server side on a Chromebook.

Apparently if you have rootfs access and your Chromebook is in “dev” mode, you can install nodejs, npm and git on it. And once they are installed, this extension should work. But you are on your own with that.

(CF) #152

Thanks a ton @Mike_Plugge for this amazing extension! I absolutely love it - especially the notification on my work laptop when a new track starts.

One question with respect to an issue I’m having - it works perfectly on my Dell laptop and a MacBook Air that I tested it out on, but when I try to access it on a mobile device (such as my iPad mini or my Pixel 2), I get a ERR_CONNECTION_REFUSED message. I noticed a post earlier in this thread that suggested I needed to open a port with Windows Defender Firewall, and I have done that (following the instructions that were provided in the post), but still no dice. Any ideas?

(Mike Plugge) #153

Are you using “localhost:8080” on those devices or are you using the IP address:8080 of the system running the extension?

Localhost will fail on those devices but the IP address of the system running the extension should work. Hostname of the system running the extension will work if you are running DNS on you network.

(CF) #154

Yeah, I tried that but still no dice. I’m sure it’s some obscure setting on my end. It’s not a huge issue, just a ‘nice to have’ - so I think I’ll just leave it alone rather than pull my hair out given my limited networking knowledge. Thanks for trying to help though - and thanks for the extension!

(Tony) #155

Hi @Mike_Plugge,

just wanted to say a big Thank You for your Web Controller. I have just installed it using @Jan_Koudijs Extension Manager and it worked almost first time on my old (non Roon capable) iPad. I have the extension manager running on a WIN 10 laptop at the moment and had to turn off the Windows firewall to make it work. :grinning:

(Jan Koudijs) #156

Hi @Chris_Ferneyhough, @Anthony_Bates,

Opening port 8080 in the firewall, as described in post 44, should do the trick.

Have you set the Protocol to TCP?

(CF) #157

Hi @Jan_Koudijs - yeah, that was the first thing I tried when doing my own troubleshooting. No luck. I even tried turning off my Windows Defender Firewall like @Anthony_Bates did. Still, no luck. I’m cursed!

(CF) #158

Oh wait…got it working on everything. Thanks for the suggestions everyone. Love this extension!

(Mike Plugge) #159

Now I am curious - what was the fix?

(CF) #160

Not so much a fix as turning off the Windows Firewall and then using the correct IP address. I had mixed up a couple of IP addresses and was referencing the incorrect machine. So, mostly user error. :slight_smile:

(Mike Plugge) #161

Happens to the best of us. Glad you are working