Roon Extension Manager v0.8.1


(Jan Koudijs) #21

What version of the manager are you running, and on which OS?
There should be 4 extensions to choose from:


(Jan Koudijs) #22

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.


(simon arnold) #23

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.


(Jan Koudijs) #24

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.


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


(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:


(simon arnold) #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…


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


(Jan Koudijs) #30

The Windows installer is now available!


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


(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”.


(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…