Roon Extension Manager v0.11.9 [Obsolete]

Note: OS specific installation instructions can be found on the project Wiki

As a side step to the extension distribution discussion I would like to show off my implementation efforts for the Roon Extension Manager.

Short description:
Roon Extension for managing Roon Extensions

Description:
At startup the Roon Extension Manager accesses a repository containing the community developed extensions. Via Settings->Extensions within Roon the repository can be viewed and an extension can be selected to perform a certain action.

Possible actions are:

  • Install
  • Update
  • Uninstall
  • Start
  • Stop

Since a picture is worth a thousand words, I created a video that demonstrates some of the actions (the quality isnā€™t great but the idea should be clear).

Join the development:
Discussions about layering, OS specific optimizations and inclusion in endpoints and servers can be found in the earlier mentioned thread, feel free to join the discussion. If you are an extension developer and you want your extensions included in the repository you can give me a pull request on it or send me a PM with the GitHub link of your extension. Extensions should have a matching support thread on this forum.

Status:
Although development is still in the beta phase, this release is pretty feature complete. So if you are a developer or have used other extensions before, you maybe should give this a try. The repository can still do with more extensions, so developers please apply.

Availability:
The developer beta version of the extension is available on GitHub:

The GitHub page has instructions on how to install the extension.

Important notes!!

  • Use this extension at your own risk!
  • Make regular backups of your Roon database.
  • This extension is in beta status, as is the API it depends on. This means that there can be small or even bigger issues!
  • Using this extension requires some tinkering (as the forum category suggests), I tried to make the installation instructions as clear as possible but things can be slightly different depending on the OS youā€™re using.

Call for feedback
I wouldnā€™t have reached this point in development without the feedback I already got. By entering this next phase I hope to get feedback from others as well. So let me know your ideas about this!

11 Likes

Hey @Jan_Koudijs ā€“ quick update: just installed without any hiccups. Iā€™ll be following this with great interest.

Once again your efforts are much appreciated. I doze off with a slowly fading Alarm Clock setting every night. :slight_smile:

2 Likes

Second @RBM no issues here. Will keep a good eye out.

1 Like

An update of the Roon Extension Manager is now available!!

Changes

  • Implemented Auto Update. The installed extensions, the repository and the manager itself are updated at the configured time. Auto Update can be disabled by clearing the time field. It is always possible to update individual extensions via the ā€˜Actionsā€™ pull down menu.
  • Implemented Auto Restart. When the extension manager restarts after an update the controlled extensions that were running previously are also restarted.
  • Implemented watchdog. In case the communication with the Roon Core gets lost after a core update or a network issue, the watchdog takes care that the extensions recover from this situation.

How to install
Read the first post for detailed information and installation instructions.

How to update
If you are updating from the previous release you have to take the following steps:

  • Terminate the Roon Extension Manager process
  • Update using the npm update -g roon-extension-manager command
  • Start the extension using the node <path to extension>/start.js command

As always, I welcome your feedback!

The update of the Roon Web Controller provided by @Mike_Plugge gave me a good opportunity to test the update function of the extension manager in a real life situation.

I performed the update via the Actions pull down menu within the manager settings. The update went fine and when at completion the extension restarted, it identified itself as version 1.2.0. The only additional action I had to take is to re-authorize the web controller due to the additional Roon APIs that it now uses.

So Iā€™m pretty happy, a nice and up to date web controller without the need to fall back to the command line :slight_smile:

That is great news @Jan_Koudijs!

@hifi_swlon, Your shared observation deserves a proper replyā€¦

The idea behind this is more than just the extension manager. The extension manager is the first step that bundles multiple extensions in a single entry point. This should make it easier to come up with installers for the different platforms that Roon supports. This step can then be followed by getting it preinstalled on different Roon servers and endpoints.

The current release of the extension manager already takes care that execution is moved to the background and that the console output with the pinging messages gets hidden. All to move complexity away from the user.

How successful this all will be has to be seen. It will depend on if I am able to attract other developers and what the Roon team has in mind for this.

1 Like

Hello,

I have an installation issue and, unfortunately, my knowledge of the relevant packages is very rudimentary.

I followed the installation instructions on the GitHub page. I had to make a minor change wrt those instructions. The line:

cd ~/.RoonExtensions/lib/node_modules/roon-extension-manager

initially failed because the directory ā€œnode_modulesā€ was placed directly under ā€œ.RoonExtensions.ā€

After removing ā€œ/libā€ from that line everything appeared to be working OK: the installation finished with the comment:

  Roon Extension Manager started successfully!
 Select Settings->Extensions on your Roon Remote to manage your extensions.

However, no extensions are shown at this time under Settings->Extensions on my Roon interface. When you say ā€œyour Roon remoteā€ do you mean the normal Roon Windows interface or something else?

Thanks in advance for your help.

Pierre

Hi @Pierre_Isabelle,

Have you installed on Windows?
I noticed that on Windows the lib/ part is indeed missing.

I just released an update to solve a few Windows issues. You may have performed your installation while this work was in progress.
Can you repeat the installation and see if that makes a difference?

If it still does not work, you can start in debug mode by using the following command:

node start.js inherit

The output of this should give us more info.

Thatā€™s what I mean.


Ps. Iā€™m working on a Windows installer that installs the extension as a service, this may be of interest to you (probably requires some bug hunting as well).

Hello Jan,

Many thanks for looking into this.

Yes, my Roon server is running under Windows 10.

I tried installing a fresh copy of yourcode from github and then running ā€œnode start.jsā€. The result was the same as before: no extensions visible from within the Roon interface.

Then I tried to run ā€œnode start.js inheritā€ but the output from this program did not provide any more debugging info. As you can see at the bottom of this message, the two node commands produced the same info.

Thanks again,

Pierre


Pierre@PC-bureau MINGW32 ~/.RoonExtensions/node_modules/roon-extension-manager
$ node start.js
Inf: Extension Repository loaded

Roon Extension Manager started successfully!
Select Settings->Extensions on your Roon Remote to manage your extensions.

Pierre@PC-bureau MINGW32 ~/.RoonExtensions/node_modules/roon-extension-manager
$ node start.js inherit
Inf: Extension Repository loaded

Roon Extension Manager started successfully!
Select Settings->Extensions on your Roon Remote to manage your extensions.

OK, looks like the start script doesnā€™t work on Windows.

This should work (donā€™t forget the dot):
node .

This way the auto update doesnā€™t work, so you have to disable that by clearing the update time field in the settings.

Yes: ā€œnode .ā€ did the trick.

Roon can now see your extension manager, and I was able to install the alarm clock.

As you suggested, I cleared the update time field.

I noticed that the bash window remain active and I suppose this is normal.

Also, I suppose that whenever I restart my computer, I will need to restart your code manually until you can turn this into a Windows service.

Thanks a lot!

Pierre

1 Like

You are right about both.
Now that you are on it, maybe you can do me a favorā€¦

I have a first test version of the Windows installer and the only way I can test this myself is in a VM running Windows XP (Iā€™m a Linux guy). Are you willing to test the installer on Windows 10 and give me some feedback on the results?

Just let me know if you want the 32 or 64 bit version and Iā€™ll sent you a PM.

Thanks for stepping in!

Hi Jan

Sure, I will b happy to test your 64-bit version (though I epect to be very busy over the next 2-3 days).

Thanks a lot,

Pierre

No :grinning:

This must be an interesting thing for SMG to implement into the SonicTransporter :grinning:

@agillis what you think ?
Just the piece of SW needed ?

2 Likes

I second that motion! Adding this to ST would be great.

Iā€™ve been looking on in envy as running a PC 24/7 for this is not practical for me, although I have tested the alarm and got it working ok.

Nick

Thanks for this, I like the smoother and cleaner install experience in this version.

How do I get other extensions managed by this extension? Only the alarm clock is listed at the moment.

For some reason over the weekend my extension manager stopped running and thus all the extensions also stopped running. Had to manually kick start it back in to action and then get it to restart all the extensions.

I take it the extension manager wont auto run when Roon starts? Will I have to run it as a service to ensure this?

Jan does the file you sent for the installation run it as a service? I recall that was maybe implied but just want to be sure