Roon Extension and Android App: it'roXs!

Boris many thanks for the additional information, I may need to look at using another NUC for installing Linux first and then migrating from the ROCK if the case is strong enough.
One of the reasons for choosing ROCK was its stability and to avoid the temptation to install other software. I happen to be swapping a NUC out for a more powerful mini PC at the moment so this could be the ideal opportunity to try both.
I will need to do some more investigation first.

Regards

Mike

If you happen to have an RPi running DietPi doing other duties in your network, you can always install the Extension Manager and It’roXs! there…

Thanks Geoff I have a few pi’s hanging around so that might be a good starting point.

I am going to spend more time looking

Regards

Mike

Boris I have have run it on Windows 10 an executable (for testing purposes) and on my Android 11 based (OnePlus 8) it’s great as it now sits in the universal media player showing artwork and most of the key things I need to see without running.

Only been using it for 10 mins but wanted to say excellent work, I get less benefit from my lock screen as I have it locked down to not show content (so no one to blame but myself).

Time is tight but I will spend some looking at the Raspberry Pi option as I do not want to leave this PC on 24/7 though I have just changed the settings for now, so when I start listening to music late tonight I can try it out.

In app donation sent, and thanks for the excellent work

Regards

Mike

1 Like

Thank you @Michael_Harris
I probably should go have some :beer: :beers: now

The new Android 11 media player really takes this further now as its simple to access. Shame Roon itself can’t do this.

Boris, Not many on £4.12 :wink: but enjoy the one at lease
Mike

Totally agree, I can understand to an extent, but when Boris has developed something this cool, Roon should want it. The media player is one of my favorite parts of Android 11, and it really shines with Boris’s app.

Regards

Mike

Hey everybody!

I would like to ask some of you, especially @Brian_Scott and @ComasSky, if you could test a new version of the extension. It’s about robustness:
I moved the extension in a child process which is managed by a parent process. If the extension crashes, it will be automatically restarted, and, if the extension gets unpaired, for whatever reason, it is also restarted and hopefully reconnects to the core. Since I do not have any problems here at my place, I would like to ask you to test this new version of the extension and give some feedback.

For those using the standalone/executable version of the extension, you can download the test version from here: https://bsc101.eu/itroxs/downloads/roon-extension-itroxs/test/

For those using the git/node approach, you can clone the test branch with the following command:

git clone -b wrapper https://github.com/bsc101/roon-extension-itroxs.git

Thank you! :beers:

Thanks !

Tests in progress.

For docker users, i push the comassky/itroxs:wrapper tag :wink:

docker run -d -p 8090:8090 --name itRoxs comassky/itroxs:wrapper
1 Like

Thanks to those who gave advice. DietPi with Roon Extension Manager in and working sweetly now.
Boris I did try 1.04 from the download but it was less reliable and dropped connections a few time.
1.0.3 working great so will continue to play.

But across the two platforms it has been a real improvement, and even more so with the latest Android installed and running.

Regards
Mike

Hi @Michael_Harris
Thanks for your feedback!

Do you mean the connection between extension and app? I didn’t change any code regarding the connection handling to the app, so 1.0.3 and 1.0.4 should behave the same. At least in theory :wink:
Make sure your handy does not apply any energy saving options to the app, put it on a whitelist if possible, and turn off battery optimization for the app and so on…
Anyway, dropped connections will always happen and are ok, especially when Android goes into sleep and tries to save some battery. The app checks the connection from time to time and reconnects if necessary. That’s part of the design and is expected behaviour.

Have a nice weekend!

Hi Boris just that the connection was refused, nothing more than that, I am used to throwing the Roon app away and starting it again, so I have that nailed down :wink:
I can try it again if you want, but as soon as I installed 1.0.3 through the Manager it was stable for several hours.

I am away working for a few days now but I will do more testing when I return. No problems to the Windows version over a few days.

Regards

Mike

1.0.4 did not resolve issues for about itRox / Roon core problem … always have lost connection every days.

(ItRox server & Roon server on the same host)

Do you have the output of the terminal window? What does it say?

Any idea why the connection is dropped, or why the core unpairs the extension? You probably know that this connection (extension <> core) is handled by the Roon library, so this is why I was hoping restarting the extension would solve your problem.

Your log some posts above showed a NetworkError, is this still the reason why the extension gets unpaired? Does it restart and pair to the core after it gets unpaired?

#app[1600598981916]: 0: /usr/local/bin/node
#app[1600598981921]: 1: /app
#ext[1600598983107]: 0: /usr/local/bin/node
#ext[1600598983112]: 1: /app/itroxs.js
#app[1600599000904]: cleanup...
#app[1600599000904]: terminating child proc...
#app[1600599000905]: cleanup... done
#ext[1600599000905]: cleanup...
#ext[1600599000905]: cleanup... done
#app[1600599000910]: child proc exited with code null, uptime = 17987
#app[1600599000910]: waiting 42013 ms...
#app[1600599017932]: 0: /usr/local/bin/node
#app[1600599017936]: 1: /app
#ext[1600599019000]: 0: /usr/local/bin/node
#ext[1600599019004]: 1: /app/itroxs.js
-> REQUEST 0 com.roonlabs.registry:1/info
<- COMPLETE 0 Success {"core_id":"b62b4ba2-767a-4634-b05c-28f8a9f09f23","display_name":"Serveur-Hadrien","display_version":"1.7 (build 610) stable"}
-> REQUEST 1 com.roonlabs.registry:1/register {"extension_id":"com.bsc101.itroxs","display_name":"Extension for Android App it'roXs!","display_version":"1.0.4","publisher":"Boris Schaedler","email":"dev@bsc101.eu","required_services":["com.roonlabs.transport:2","com.roonlabs.image:1","com.roonlabs.browse:1"],"optional_services":[],"provided_services":["com.roonlabs.status:1","com.roonlabs.settings:1","com.roonlabs.pairing:1","com.roonlabs.ping:1"],"website":"https://github.com/bsc101/roon-extension-itroxs"}
MOO: empty message received
-> REQUEST 0 com.roonlabs.registry:1/info
<- COMPLETE 0 Success {"core_id":"b62b4ba2-767a-4634-b05c-28f8a9f09f23","display_name":"Serveur-Hadrien","display_version":"1.7 (build 610) stable"}
-> REQUEST 1 com.roonlabs.registry:1/register {"extension_id":"com.bsc101.itroxs","display_name":"Extension for Android App it'roXs!","display_version":"1.0.4","publisher":"Boris Schaedler","email":"dev@bsc101.eu","required_services":["com.roonlabs.transport:2","com.roonlabs.image:1","com.roonlabs.browse:1"],"optional_services":[],"provided_services":["com.roonlabs.status:1","com.roonlabs.settings:1","com.roonlabs.pairing:1","com.roonlabs.ping:1"],"website":"https://github.com/bsc101/roon-extension-itroxs"}
-> REQUEST 0 com.roonlabs.registry:1/info

I just must enable again the itRox extension in Roon, and some hours after, connection is lost.

Does the extension have write access to the folder where you run it from? Is the config file saved correctly? When you always have to reenable the extension, then the core thinks it is a new instance of the extension. This is typically the case when there is no config file or when you delete it.
Do you somehow reset your docker extension instance or something like that???

Here are some great guidelines for reflection!

Where is the configuration file to be “saved” ? (i must create a docker volume)

The file is just saved in the working directory, just the directory from where you run the extension…

It will be easier for me to use a subfolder like /config or any other name.

But it’s ok in my server, i persist the config.json… but not really easy and optimised for docker hub.

Is it possible for you to put config.json on subfolder ?