Roon Extension Manager v0.10.1

@Jan_Koudijs I followed the uninstall/prepare for re-install instructions and did another attemp today.

There were some warnings, maybe related to the OS, but Roon Extension Manager is now running on my backup-server (HPE ProLiant DL20 Gen10 running Windows Server 2016).

image

Thanks for the Roon Extension Manager and for the support!

1 Like

I just uninstalled and reinstalled Roon Extension Manager. Now, the Web Controller extension installed and is working fine. Still no luck with the Denon extension. Error is:

Terminated: Roon-extension-Denon (1)

To get to know what is going on it would be helpful if you enable logging for the Extension Manager and the Denon extension. You can read about logging in post 184. With logging active wait till the problem occurs, upload the log files somewhere and share a link.

1 Like

Any idea why I am getting the following error when running the Windows 64 bit installer:

Downloading node-v6.11.1-x64.msi…
######################################################################## 100.0%
OK

Downloading Git-2.13.3-64-bit.exe…
######################################################################## 100.0%
OK

Installing Roon Extension Manager…
7:38 PM 2/19/2019
throw err;
^

Error: Cannot find module ‘core-util-is’
at Function.Module._resolveFilename (module.js:469:15)
at Function.Module._load (module.js:417:25)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object. (C:\Program Files\nodejs\node_modules\npm\node_modules\readable-stream\lib_stream_readable.js:40:12)
at Module._compile (module.js:570:32)
at Object.Module._extensions…js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
module.js:471
throw err;
^

Error: Cannot find module ‘core-util-is’
at Function.Module._resolveFilename (module.js:469:15)
at Function.Module._load (module.js:417:25)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object. (C:\Program Files\nodejs\node_modules\npm\node_modules\readable-stream\lib_stream_readable.js:40:12)
at Module._compile (module.js:570:32)
at Object.Module._extensions…js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
Press any key to continue . . .

Are you trying to reinstall?

If so, you might try the reinstall steps first.

Roon Extension Manager v0.9.0 is now available

Till now the Extension Manager only supported extensions that are Node.js based and installable via npm (cross platform). Not all available extensions are created this way, meaning that only a subset could be provided to the user.

To improve the base of extensions that can be included in the repository, I’ve now added Docker container support to the Extension Manager. For the look and feel I tried to make the support for both types as similar as possible but there are also differentiating features for both types. The table below shows the details from an extension perspective.

Feature npm Docker
Cross platform Yes No (Linux only)
Manager independent execution No Yes
Logging Yes Via Docker
Native code execution (e.g. via node-gyp) No Yes
Multiple instances of single extension No Not Yet
Resource control No Not Yet

An extension can support both types so that the best fit for the environment can be picked. An example of this is that containers will be preferred if the Extension Manager runs in a container itself.

As can be seen above, Docker container support requires a Linux system, it will not work with Docker for Windows or Mac. This is caused by the virtual networking used by the included virtual machine, this type of networking is not supported by the network service discovery method used by Roon.

The options for a working container setup are:

Linux PC

Install Docker via the package manager of your distribution or get it here. At startup the Extension Manager will detect the Docker installation and makes the additional extensions available.

NAS

The more powerful models of the Synology and QNAP NAS’es have container support. By creating a container for the Extension Manager and passing it the path to the Docker socket it will make the additional extensions available.

Raspberry Pi

There are different Pi distributions that let you run Docker containers. Maybe the easiest in use is DietPi because it let you install both Docker and the Extension Manager via the dietpi-software tool. At startup the Extension Manager will detect the Docker installation and makes the additional extensions available.

How to update

If you have auto update enabled then the Extension Manager should be up to date right now. Otherwise it is possible to update manually via the Settings dialog, select the Extension Manager from the System category and perform the Update action.

As this is the biggest change I released since I’m running this project, there might be room for improvement. Let me know how this works out.

2 Likes

Roon Extension Repository v0.2.2 is now available

So what does the Docker container support bring?

Four new extensions are added to the repository:

By Roon Labs, LLC

By Floris Jan Galesloot

Thanks @danny and @eFJee!

How to update

If auto update is enabled then the changes will be pulled in the next time the update is performed. It is also possible to update manually via the Settings dialog, select the Extension Repository from the System category and perform the update action.

3 Likes

With the updates in place and Docker installed you can install extensions that run in a container. Here is a screenshot for the installation of the Griffin Powermate extension:

This extension needs to know which USB port the Powermate is connected to, you provide the device path in the Docker Install Options before you select the Install action from the Action pulldown.

Some extensions might require an environment variable to function properly. An example of this is the Alarm Clock extension (if it is installed as a container), where an environment variable is used to get the right time zone:

For those who are new to Docker and want some background information, the Orientation of the Get Started guide might help:

1 Like

Roon Extension Manager v0.9.x bug fixes

A couple of bugs were fixed since the release of v0.9.0:

v0.9.1
Fixed a bug in the initial installation of the Extension Repository

v0.9.2
Fixed a bug in the storing of user settings during Auto Update

v0.9.3
Fixed a bug in the querying of available containers

v0.9.4
Fixed a bug in the repository loading after initial install

v0.9.5
Fixed a bug in the Docker detection during repository loading

2 Likes

Extension Manager v0.10.0 and Extension Repository v0.3.0 are available now

This update makes the CD Ripper extension available

How to update

If auto update is enabled then the changes will be pulled in the next time the update is performed. It is also possible to update manually via the Settings dialog, select the Extension Manager from the System category and perform the update action, do the same for the Extension Repository.

3 Likes

I have just downloaded and run the windows extension manager installer. Everything seemed to go smoothly until the very end. The service will not start, this is the error.

Starting service…
roon-extension-manager: Unexpected status SERVICE_PAUSED in response to START control.

Any help would be appreciated

Mike

The Roon Extension Manager service is paused and it will not resume or restart.
I suppose the best option is to completely remove and reinstall.
image

Edit: did a manual uninstall as per instructions and a complete reinstall.
Result = Roon Extension Manager service is paused.
Any suggestions @Jan_Koudijs

This is on a HPE ProLiant DL20 Gen10 running Windows Server 2016 and Veeam Backup & Replication 9.5. It is used for back-ups of my VMware virtual servers that are running on a HPE ProLiant DL180 Gen9 server.

@MorrMusic, @seagull,

Can you relate this to a recent Windows update?
If you type View event logs in Windows search, go to Windows Logs->Application is there an Error on the nssm Source?

No error, just a warning:

It is possible that the issue started on 18 or 19 June, dates of the last updates.

Other events:

  • Event 1014: Service roon-extension-manager action for exit code 0 is Restart. Attempting to restart roon-extension-manager.bat.
  • Event 1027: Killing PID 7272 in process tree of PID 7272 because service roon-extension-manager is stopping.
  • Event 1023: Killing process tree of process 7272 for service roon-extension-manager with exit code 0
  • Event 1013: Program roon-extension-manager.bat for service roon-extension-manager exited with return code 0.
  • Event 1008: Started roon-extension-manager.bat for service roon-extension-manager in C:/Users/administrator.FARMASERVICE/AppData/Roaming/RoonExtensions.

Hmm, on Linux (Centos 7) the Extension manager is also no longer running, I just discovered…

I see now why

[root@grendel ~]# systemctl status roon-extension-manager
● roon-extension-manager.service - Roon Extension Manager
   Loaded: loaded (/etc/systemd/system/roon-extension-manager.service; enabled; vendor preset: disabled)
   Active: failed (Result: start-limit) since Tue 2019-06-25 14:27:27 CEST; 17s ago
  Process: 26929 ExecStart=/root/.RoonExtensions/lib/roon-extension-manager.sh (code=exited, status=217/USER)
 Main PID: 26929 (code=exited, status=217/USER)

Jun 25 14:27:27 grendel.home systemd[1]: Unit roon-extension-manager.service entered failed state.
Jun 25 14:27:27 grendel.home systemd[1]: roon-extension-manager.service failed.
Jun 25 14:27:27 grendel.home systemd[1]: roon-extension-manager.service holdoff time over, scheduling restart.
Jun 25 14:27:27 grendel.home systemd[1]: Stopped Roon Extension Manager.
Jun 25 14:27:27 grendel.home systemd[1]: start request repeated too quickly for roon-extension-manager.service
Jun 25 14:27:27 grendel.home systemd[1]: Failed to start Roon Extension Manager.
Jun 25 14:27:27 grendel.home systemd[1]: Unit roon-extension-manager.service entered failed state.
Jun 25 14:27:27 grendel.home systemd[1]: roon-extension-manager.service failed.
[root@grendel ~]#

What do you get if you:

  • Open a command window
  • Enter: cd %AppData%\RoonExtensions
  • Enter: roon-extension-manager.bat

Does the Extension Manager run or is there an error reported?

Output:

C:\Users\administrator.FARMASERVICE\AppData\Roaming\RoonExtensions>roon-extension-manager.bat
C:\Users\administrator.FARMASERVICE\AppData\Roaming\RoonExtensions\node_modules\roon-extension-manager\node_modules\ws\lib\websocket.js:347
…options
^^^
SyntaxError: Unexpected token …
at createScript (vm.js:56:10)
at Object.runInThisContext (vm.js:97:10)
at Module._compile (module.js:542:28)
at Object.Module._extensions…js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object. (C:\Users\administrator.FARMASERVICE\AppData\Roaming\RoonExtensions\node_modules\roon-extension-manager\node_modules\ws\index.js:3:19)

C:\Users\administrator.FARMASERVICE\AppData\Roaming\RoonExtensions>

OK, there is the problem.

June 12 there was an update of a dependency of the Roon API, does that match with the moment the problem started?

@ben, can this be an incompatibility between the Roon API and ws 3.3.1?

Edit: version that is actually used is 7.0.1

[root@grendel lib]# ./roon-extension-manager.sh 
/root/.RoonExtensions/lib/node_modules/roon-extension-manager/node_modules/ws/lib/websocket.js:347
      ...options
      ^^^

SyntaxError: Unexpected token ...
    at createScript (vm.js:56:10)
    at Object.runInThisContext (vm.js:97:10)
    at Module._compile (module.js:549:28)
    at Object.Module._extensions..js (module.js:586:10)
    at Module.load (module.js:494:32)
    at tryModuleLoad (module.js:453:12)
    at Function.Module._load (module.js:445:3)
    at Module.require (module.js:504:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/root/.RoonExtensions/lib/node_modules/roon-extension-manager/node_modules/ws/index.js:3:19)

@Jan_Koudijs, same as in Linux…