Roon Extension: Logitech Harmony Source Control (GitHub)


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


#57

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!


#59

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?

Thanks

Michael


(Rene Bouwmeester) #61

Have you added an activity as External Source Control in Roon Settings > Audio > Device Setup?


(Michael) #62

Thank you. That was my mistake. Now it works!


(Andy Spinks) #63

Hi @Boris_Pruessmann,
Thanks again for a wonderful and incredibly valuable extension! I installed a new router this weekend (Netgear XR500), along with an update to the Windows 10 Pro Roon core server. At some point in the process, the Harmony Hub stopped working. (Actually, all my Roon extensions stopped working. I reinstalled Extension Manager and restarted Denon/Marantz volume extension to get them working again.)

Even after updating & restarting, the Harmony Extension could not find my hub. (The hub is on wireless; everything else is on wired. All have fixed IP addresses in the same range.) I was able to get it working again by manually adding the Hub name and IP address to the config.json file, but I just wanted to share the info and see if there is something I could do to make hub discovery and daily operation more reliable in the future. I’m running version 0.0.6 of the Harmony extension.

Thanks!


(Andy Spinks) #64

Update: I discovered one issue that might have been causing the problem: When my Windows 10 core machine connected to my new router, it set the network profile as “Public” (even though it was a wired connection), so a lot of things were restricted.

For anyone else who installs a new router or access point, here are the instructions for fixing this in Windows:
https://tinkertry.com/how-to-change-windows-10-network-type-from-public-to-private

Now I’m off to go update the network settings on every Windows computer in the house [sigh].


(luigi martusciello) #65

@Boris_Pruessmann
Hello Boris,
Its been a few days that my harmony extension has stopped working.
I can see the extension in the extension manager and can select a hub.
But it no longer appears as a external device selection in the input app.
I have tried everyting, rebooting, uninstalling and re installing the extension but
No go.
If it is of any interest , i can no longer see the extension in the list that shows authorized extenions.
Even though in the extensions page it is there, very odd.
Any thoughts?
Thank you
Luigi,


#66

You probably installed the Firmware update for the Harmony. This disables the local APIs and Logitech already received the shitstorm they deserved.
Since then Logitech has promised to allow users to re-enable the API. But that requires another firmware update which might not be available at the moment.


#67

You can install a beta update via the harmony desktop app to the hub to get around this until they release a full version.

You need to hold ctrl f9 on windows when loading the app to get to the install firmware page then scroll down to bottom there is an option to install developer firmware xmpp or something . Select that and plug in your hub. Works for Mac too instructions below
https://community.logitech.com/s/question/0D55A00008D4bZ4SAJ/harmony-hub-firmware-update-fixes-vulnerabilities 31


#68

Hi, I tried installing using Roon Extension Manager 0.8.1 and am getting this message: Terminated: roon-extension-harmony(1)

Any ideas on how I can fix? Looks like it is pulling version 0.0.8 of the extension. I am running Roon Extension Manager on DietPi.

I also tried to install using the instructions on the git page, but received the following errors:

root@DietPi:~# git clone https://github.com/docbobo/roon-extension-harmony.git
Cloning into ‘roon-extension-harmony’…
remote: Enumerating objects: 83, done.
remote: Total 83 (delta 0), reused 0 (delta 0), pack-reused 83
Unpacking objects: 100% (83/83), done.
root@DietPi:~# cd roon-extension-harmony
root@DietPi:~/roon-extension-harmony# ls
app.js LICENSE package.json README.md
root@DietPi:~/roon-extension-harmony# node app.js
internal/modules/cjs/loader.js:605
throw err;
^

Error: Cannot find module ‘debug’
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:603:15)
at Function.Module._load (internal/modules/cjs/loader.js:529:25)
at Module.require (internal/modules/cjs/loader.js:657:17)
at require (internal/modules/cjs/helpers.js:22:18)
at Object. (/root/roon-extension-harmony/app.js:3:28)
at Module._compile (internal/modules/cjs/loader.js:721:30)
at Object.Module._extensions…js (internal/modules/cjs/loader.js:732:10)
at Module.load (internal/modules/cjs/loader.js:620:32)
at tryModuleLoad (internal/modules/cjs/loader.js:560:12)
at Function.Module._load (internal/modules/cjs/loader.js:552:3)
root@DietPi:~/roon-extension-harmony# npm install
npm WARN deprecated node-xmpp-stanza@1.1.0: use @xmpp/xml package https://www.npmjs.com/package/@xmpp/xml
npm WARN deprecated node-xmpp-jid@2.3.0: use @xmpp/jid package https://www.npmjs.com/package/@xmpp/jid
npm WARN deprecated node-uuid@1.4.8: Use uuid module instead
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN roon-extension-harmony@0.0.8 No repository field.

added 146 packages from 231 contributors in 6.597s
root@DietPi:~/roon-extension-harmony# node .
events.js:174
throw er; // Unhandled ‘error’ event
^

Error: bind EADDRINUSE 0.0.0.0:5224
at state.handle.lookup (dgram.js:300:18)
at internalTickCallback (internal/process/next_tick.js:72:19)
at process._tickCallback (internal/process/next_tick.js:47:5)
at Function.Module.runMain (internal/modules/cjs/loader.js:777:11)
at executeUserCode (internal/bootstrap/node.js:342:17)
at startExecution (internal/bootstrap/node.js:276:5)
at startup (internal/bootstrap/node.js:227:5)
at bootstrapNodeJSCore (internal/bootstrap/node.js:743:3)
Emitted ‘error’ event at:
at state.handle.lookup (dgram.js:301:14)
at internalTickCallback (internal/process/next_tick.js:72:19)
[… lines matching original stack trace …]
at bootstrapNodeJSCore (internal/bootstrap/node.js:743:3)

Thank you.


#69

It seems you are missing the npm install step that’s described in the README.md. :wink:


#70

Hi, sorry to be a noob, but I think I did the npm install step…but it is giving me a “deprecated” message. Please see above. Any ideas? Or do I need to do npm install in another spot as well?


#71

As I said, you have to run npm install before you can do a node . - I don’t see that above. That’s why all the dependencies are missing…


#72

I am so sorry if I am not getting it…please see the last line of the quote. That is where I did the npm install


#73

Apologies. I think your log was containing multiple attempts to start the extension, which I didn’t catch right away. If you look at the last attempt - the one after running npm install you’ll notice the following error message:

`Error: bind EADDRINUSE 0.0.0.0:5224`

This indicates that the extension is trying to listen on a network port that is already in use by another process.

Do you mind trying to run the extension like this:

 `DEBUG=* node .`

This should provide some additional debug information.


(John Webb) #74

Hi - Sorry if this is annoying. The extension works perfectly for me except it tends to crash after a few hours. (I’m running it on an Intel NUC with Windows 10.) I thought it might be related to the computer I’m using for Roon control going to sleep, but I haven’t been able to reproduce the problem that way. Here is the error message.

<- REQUEST 272 com.roonlabs.sourcecontrol:1/convenience_switch {“control_key”:“38805077”}
c:\Users\jaweb\Music\roon-extension-harmony-master\roon-extension-harmony\node_modules\node-roon-api\transport-websocket.js:47
this.moo.close();
^

TypeError: this.moo.close is not a function
at Transport.close (c:\Users\jaweb\Music\roon-extension-harmony-master\roon-extension-harmony\node_modules\node-roon-api\transport-websocket.js:47:18)
at WebSocket.Transport.ws.onclose (c:\Users\jaweb\Music\roon-extension-harmony-master\roon-extension-harmony\node_modules\node-roon-api\transport-websocket.js:18:14)
at WebSocket.onClose (c:\Users\jaweb\Music\roon-extension-harmony-master\roon-extension-harmony\node_modules\ws\lib\WebSocket.js:446:14)
at WebSocket.emit (events.js:182:13)
at WebSocket.cleanupWebsocketResources (c:\Users\jaweb\Music\roon-extension-harmony-master\roon-extension-harmony\node_modules\ws\lib\WebSocket.js:950:8)
at Socket.emit (events.js:182:13)
at emitErrorNT (internal/streams/destroy.js:82:8)
at emitErrorAndCloseNT (internal/streams/destroy.js:50:3)
at process._tickCallback (internal/process/next_tick.js:63:19)

Can you advise me about what the issue might be?
I see the same error has been observed with other extensions.
https://community.roonlabs.com/t/roon-extension-alarm-clock-v0-7-4/21556/202?u=john_webb


(John Webb) #75

From reading around a bit, I get the impression updates to Roon can make extensions start to crash because Roon doesn’t communicate with the extension the same way anymore. It sounds like an update to the extension is often the solution. Can anyone add to the discussion?