Roon Extension: Roon Web Controller v1.2.0

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.

Agree.

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.

@volpone

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.

Thanks!

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

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 CHANGELOG.md 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.
From https://github.com/pluggemi/roon-web-controller
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:
package-lock.json
Please commit your changes or stash them before you merge.
Aboting

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 https://github.com/pluggemi/roon-web-controller.git

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 !

Has anyone tried this with ChromeOS. Google Pixelbook?

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.

EDIT:
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.

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?

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.

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!

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:

Hi @Chris_Ferneyhough, @Anthony_B,

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

Have you set the Protocol to TCP?

1 Like

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_B did. Still, no luck. Iā€™m cursed!

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

Now I am curious - what was the fix?

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:

Happens to the best of us. Glad you are working