Hi, “Web Controller” 1.2.13 source code from Mike Plugge is somehow a nice feature of my system:
I am running a Naim NDS reference streamer which has no native RAAT support but I am converting
the logitech media server protocol to upnp using Small Green Computer’s upnp bridge. As a consequence the streamer’s display is reduced to “WAV 1 with 92khz”.
To compensate I am running the Web Controller on an old tablet located on the floor besides one speaker. It is a nice solution.
Additonally from an architectural perspective, I like to run the extension manager in a docker container in addition to the RoonServer (why not deploy Roon on Kubernetes, just kidding).
AFAIKs probably just a small piece of code needs to be changed. It only concerns the rendering of the cover image which has changed with latest Roon 1.8, since WebController is running fine (displaying track details) .
I wonder whether it is possible via the Roon Community that somebody can get in touch with Mike Pluggae asking him to provide a fix, compensating at east for his efforts? AFAIKs there is a new build of the WebController around but it is not published i.e. deployed to the “Extension Manager’s repositiories of extensions”.
Would appreciate your comments on whether it is possible to contact Mike Plugge the author asking him to fix it. Another possible solution would be to enhance the WebDisplay (via http or via Chromecast) to render and display the album cover.
I am not maintaining Roon Web Controller anymore, so I have no plans to make any code changes. Someone else is free to investigate this. Though as you continue reading, it is unlikely that a code change is required.
The Roon API did not change with Roon 1.8. Though the Roon API back end port did change. It used to run on port 9100, but that was not official and could change at any time with no notice - which is what happened with Roon 1.8. The recommended way to connect to the backend was with the roon.start_discovery() function since that is able to determine the correct port to connect to.
The Roon Web Controller 1.2.13 backend portion correctly used that function. See app.js, line 197. So the code as written should still work.
If you are having problems, you may want to stop the extension, remove the authorization within an official client, start the extension, and enable the extension again. This will likely resolve the issue you are seeing.
As for running in a docker / kubernetes container - the recommendation to use the roon.start_discovery() function makes running this extension in a docker container impractical. A docker container with the default bridged network is not on the same network as the Roon software, so it will never discover the backend. Same with a kubernetes container.
The alpha version of Roon Web Controller did run in a container, however that is because the Roon backend port was set to use port 9100 by default. The alpha version does honor the “ROON_PORT” environmental setting to change which port to use for the Roon backend port.
As for which port is the Roon backend running on now? It selects the first available port of range - which appears to start at port 9330. But that is NOT documented anywhere and may change again with no notice.