Roon Extension Manager v0.10.0

#25

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!

2 Likes
(Mr Fix It ) #26

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
#27

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

A project entry point for the Extension Manager [Wiki]
(Jan Koudijs) #28

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

I will get back to you…

1 Like
(Mr Fix It ) #29

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
(Jan Koudijs) #30

The Windows installer is now available!

1 Like
(Geoff Coupe) #31

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?

(Jan Koudijs) #32

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.)

(Geoff Coupe) #33

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)
events.js:160
      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)
^CC:\Users\gcoup\AppData\Roaming\RoonExtensions\node_modules\roon-extension-manager\node_modules\node-roon-api\lib.js:399
        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 WebSocket.Transport.ws.onmessage (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)
^CC:\Users\gcoup\AppData\Roaming\RoonExtensions\node_modules\roon-extension-manager\node_modules\node-roon-api\lib.js:399
        var logging = msg.headers["Logging"];
                             ^
(Jan Koudijs) #34

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?

(Ben) #35

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
(Geoff Coupe) #36

@ben - here’s the log file:

https://1drv.ms/u/s!Als0gqk3maNqqPIy6RbjPKhEpezFRQ

(Jan Koudijs) #37

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

(Ben) #38

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
(Jan Koudijs) #39

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

(Jan Koudijs) #40

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…

(Wim) #41

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.

(Wim) #42

When trying to sart the service again:

(Jan Koudijs) #43

You can also try a reinstall:

npm install -g https://github.com/docbobo/roon-extension-harmony.git

Or uninstall:

npm uninstall -g roon-extension-harmony

Otherwise you might rerun the Roon Extension Manager installer.

(Jan Koudijs) #44

To clean up before a full reinstall, you can delete the service with:

sc delete roon-extension-manager

You might also want to delete the RoonExtensions directory.

1 Like