Roon Extension: Logitech Harmony Source Control (GitHub)

(luigi martusciello) #41

Hi! Installed and working like a dream.
One question.
I have two sperate hubs in different rooms.
Is there any chance of running two instances of the plugin
Each one controlling a different hub,
This would be a godsend.
Thanks for all the great work


Hmm. In theory it could be possible to run the extension twice. That’s about the best idea I have right now.

(luigi martusciello) #43

I tried installing a second copy installed in a sperate directory
But running it concurrrntley gives an error
Probably due to the port already being locked
Any solutions ? Maybe a separate config with a different port?


Ports don‘t sound that likely to me, to be honest. What does the log output say?


Hello Boris,

Using your extension very happily on a Synology NAS. I was wondering however. Would it be possible to start and stop the Roon core package on the Synology with the Harmony remote? I would like this because with the Roon core enabled the NAS won’t go into hibernation.

(luigi martusciello) #46

Error: listen EADDRINUSE :::61991
at Object._errnoException (util.js:1024:11)
at _exceptionWithHostPort (util.js:1046:20)
at Server.setupListenHandle [as _listen2] (net.js:1351:14)
at listenInCluster (net.js:1392:12)
at Server.listen (net.js:1476:7)
at ResponseCollector.start (/Users/admin/.RoonExtensions/lib/node_modules/roon-harmony/node_modules/harmonyhubjs-discover/lib/responseCollector.js:33:6)
at Explorer.start (/Users/admin/.RoonExtensions/lib/node_modules/roon-harmony/node_modules/harmonyhubjs-discover/lib/explorer.js:74:26)
at new HarmonyDiscovery (/Users/admin/.RoonExtensions/lib/node_modules/roon-harmony/app.js:77:20)
at Object. (/Users/admin/.RoonExtensions/lib/node_modules/roon-harmony/app.js:80:24)
at Module._compile (module.js:635:30)


Hmm. Let’s assume for a brief moment that it would be possible to get the Synology into hibernation. As far as I know, this only puts the disks to sleep and the rest of the system will continue to be running. If you had some process that was listening for IR commands, you could theoretically come up with something to start the Roon package.

For stopping the Roon package, you would need to detect if there is any output, or if the system has been idle for quite a while.

Having said all that, it feels that there is potential for lots of race conditions. Did you check if there is any way to to what you desire based on a schedule?


You’ve convinced me :wink: and I’ve already identified the issue. Thanks. Let’s see if I can come up with an easy fix.


Okay. Can you please try version 0.0.6?

(Milton Krueger) #50

Extension Manager is still pulling in 0.0.5 on update.
A little hard to test 0.0.6


@Jan_Koudijs, any idea?

(Jan Koudijs) #52

Apparently the "private": true addition in package.json prevents the extension from showing up in the output of the npm outdated command (both in npm 4 and 5). I know you added it for a reason. Under which conditions was npm complaining that your extension was not in the npm repository?

@Milton_Krueger, as a workaround you can uninstall and then install the extension, that should give you the latest version.


Okay, I removed the "private": true part again and ended up publishing my extensions to I hope this fixes the update problems once and for all. For this to work, everyone has to do your workaround to update to the latest version, I guess.

(Brent Chapman) #54

Can this be used with ROCK?


What exactly do you mean? If it can be installed on the ROCK itself? I don’t know. But I am pretty confident, that you can run it on a different system and have it used by ROCK…

(Brent Chapman) #56

Yes, that is what I was wondering if it could be installed and utilized on a ROCK machine but after further reading around (pretty much new to this system), I think not. What do you mean by running it on a different system and have it used by ROCK?


All those components communicate via network with the Roon core. Similar to how your Roon remote, bridges or Roon ready devices communicate.

In my setup, the Roon core runs on a different computer than the extensions, though it’s perfectly fine to run all of them on the same one.

In theory, it should be possible to run the extensions on a Raspberry Pi, though I am not sure if anybody tried already.

(Brent Chapman) #58

Thank you, I’ll research that further!


Sorry for the late reaction, I want to maximize the time my NAS is in hibernation. Therefor a dynamic solution is the most efficient. Creating tasks means that Roon Server will be running wether I am listening to music or not. If somehow you could integrate a stop/start package command script on the NAS that is triggered by a harmony task it would be great.

To answer your last question: your extension runs perfectly fine on my raspberry pi 3 that communicates with Roon Core on my NAS. Just one drawback, if I stop the Roon Core package I need to manually remove and re add the corresponding harmony task under device settings otherwise the extension does not work. Maybe an update can fix this behavior?

(Michael) #60

I just installed the Harmony extension via the extension manager. The installation completed without any issues. In the configuration I see my Hub:

But nothing more. I configured multiple activities in my Harmony and use them daily. But I can see none of them in the extension configuration … Where is my mistake?