Roon Extension Manager v0.11.9 [Obsolete]

I was first thinking that this may be caused by the update I pushed, but this was already last Wednesday. Do you have the auto update timer set?

Indeed, Roon and the extension manager have to be started separately.

Running it as a service is what I am focusing on at the moment. For Windows a basic installer should take care of this, currently a first version is being tested by a few community members. For Linux I start off with a systemd service file and a helper script, distribution packages may follow at a later point in time.

Of course you can also do the service stuff yourself. I can provide you a Linux script or Windows batch file which you then have to start as a service.

Yes it does.

I have the updates set to update at 2am. It might be I did not use since your last update I just cant remember. I have set it to run as a service now so see how it gets on.

I don’t know how well start.js behaves when you run it as a service (if that is what you do). It has some self restart behavior that is better moved to service control. Let me know if you run into issues and I will provide a better solution.

Thanks, Jan. Looks like I had an old version running. Cleaned up and reinstalled and now everything is working with all extensions showing.
Simply fantastic, this has taken Roon to another level for me. Even though its in a beta and unsupported form right now you and the other extension dev have done a fantastic job of defining the environment well enough to make it easy for non dev like me.

I really really need to set up a Roon endpoint in the bedroom now for alarm clock duties!


This works a treat…not the most WAF friendly but with a bit of coaxing mine can deal with it for now or she just tells me make it sleep in 40 mins please and I oblige :slight_smile:

1 Like

Happy to try another solution if you think it will be more stable.

Thanks @Astr0b0y, this is exactly the goal of the extension manager stuff.

I will get back to you…

1 Like

Thanks to Jan and a good deal of PM’s back and forward the last few days we have got my setup installed … with some tweaking to be detailed but looking good for sure.

I think I will Jan take it from here on how he sees the installer changes needed but its definitely getting to a point where non geeks can perhaps get this running pretty soon I think.

1 Like

The Windows installer is now available!

1 Like

Something odd.

I did a fresh install of the Extension Manager using the Windows installer a few days ago, and also used it to set up @Mike_Plugge 's Web Controller. All was working well.

This morning I open up the Extensions page, and found that the Web Controller had vanished, and the Extension Manager had a “Pair” button (which I don’t ever remember seeing). I clicked the Pair button, which changed to the “Settings” button, and then used that to re-install the Web Controller.

Now I’m back to where I was yesterday, but is there any way to gather more detail on what caused the change in state?

1 Like

Has anything changed related to your core or do you have multiple cores running? The pair button normally appears if a previously paired core is not online and another one is.

The Web Controller was no longer detected as installed? That’s strange.

Errors in the Extension Manager itself are logged to %AppData%\RoonExtensions\roon-extension-manager.log, is there anything in this log? (you can open the file by pasting the full name in the Windows search field.)

Ah, there is another core running in the network, and when I rebooted ROCK a day or two ago, it must have caused the appearance of the Pair button. That explains that.

The Web Controller was no longer detected as installed? That’s strange

I’ve seen it complain that it needed to be re-enabled - perhaps this is also a symptom of having more than one core present and running?

Errors in the Extension Manager itself are logged to %AppData%\RoonExtensions\roon-extension-manager.log, is there anything in this log?

It’s over 1MB in size, so there’s quite a bit in there… Should I be looking for anything in particular? Mostly it seems to be of the form:

Error: spawn C:\Program Files\nodejs\node.exe ENOENT
    at exports._errnoException (util.js:1018:11)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:193:32)
    at onErrorNT (internal/child_process.js:367:16)
    at _combinedTickCallback (internal/process/next_tick.js:80:11)
    at process._tickCallback (internal/process/next_tick.js:104:9)
      throw er; // Unhandled 'error' event

Error: spawn C:\Program Files\nodejs\node.exe ENOENT
    at exports._errnoException (util.js:1018:11)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:193:32)
    at onErrorNT (internal/child_process.js:367:16)
    at _combinedTickCallback (internal/process/next_tick.js:80:11)
    at process._tickCallback (internal/process/next_tick.js:104:9)
        var logging = msg.headers["Logging"];

TypeError: Cannot read property 'Logging' of undefined
    at Transport.transport.onmessage.msg [as onmessage] (C:\Users\gcoup\AppData\Roaming\RoonExtensions\node_modules\roon-extension-manager\node_modules\node-roon-api\lib.js:399:34)
    at (C:\Users\gcoup\AppData\Roaming\RoonExtensions\node_modules\roon-extension-manager\node_modules\node-roon-api\transport-websocket.js:30:14)
    at WebSocket.onMessage (C:\Users\gcoup\AppData\Roaming\RoonExtensions\node_modules\roon-extension-manager\node_modules\ws\lib\WebSocket.js:442:14)
    at emitTwo (events.js:106:13)
    at WebSocket.emit (events.js:191:7)
    at Receiver.onbinary (C:\Users\gcoup\AppData\Roaming\RoonExtensions\node_modules\roon-extension-manager\node_modules\ws\lib\WebSocket.js:848:10)
    at C:\Users\gcoup\AppData\Roaming\RoonExtensions\node_modules\roon-extension-manager\node_modules\ws\lib\Receiver.js:628:18
    at Receiver.applyExtensions (C:\Users\gcoup\AppData\Roaming\RoonExtensions\node_modules\roon-extension-manager\node_modules\ws\lib\Receiver.js:371:5)
    at C:\Users\gcoup\AppData\Roaming\RoonExtensions\node_modules\roon-extension-manager\node_modules\ws\lib\Receiver.js:604:14
    at Receiver.flush (C:\Users\gcoup\AppData\Roaming\RoonExtensions\node_modules\roon-extension-manager\node_modules\ws\lib\Receiver.js:347:3)
        var logging = msg.headers["Logging"];

Can be. Unfortunately I don’t have the possibility to test a multi core setup.

That’s no good. I can not relate the error to my own code, it occurs in a Roon API part.

@ben, not much context here but can you think of a scenario in which headers is undefined? Is a check required here?

I don’t see how that can happen. To the extent that I have a theory, it’s something like “you have a lib.js from one version of the api library and a transport-websocket.js from another”, which seems very unlikely.

@Geoff_Coupe, could I get the whole log file, even though it’s 1MB? I can PM upload instructions if you need them.

1 Like

@ben - here’s the log file:!Als0gqk3maNqqPIy6RbjPKhEpezFRQ

There are also errors in it that do relate to my code, I will have a look at them…

We now have a theory as to how/why this happens. I will look into a fix. The only thing I don’t understand is why we don’t see a log message complaining about something like “reached end of buffer” or “malformed message”.

1 Like

Are these messages written to stderr? That’s the only stream I store in the log at the moment.

Hi @seagull,
Your issue has similarities with the one Geoff had, so I would like to follow up the discussion here (also not to hijack the Web Controller thread).

Looks like the Harmony extension got corrupted. Can you try the following to recover from this?

  • Type services in the Windows search bar and open the Services application
  • Select the Roon Extension Manager in the list and stop it
  • Delete the extension manager log file, it has become big
  • Type cmd in the Windows search bar and open the Command Prompt application
  • Update the harmony extension: npm update -g roon-extension-harmony
  • Check if the update is successful, it should print a hierarchy of node modules
  • Start the extension manager service again

Please supply me with the newly created log file if it still doesn’t work.

I’m investigating how the system can get into this state, it might be triggered by a core that goes down…

Thanks for your help Jan.
When trying to update the harmony extension I get the following output:

Seems something is definitely broken and the best solution may be to uninstall and re-install Roon Extension Manager.