Roon Source Control Extension to control Logitech Harmony hubs
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Controlling Logitech Harmony from Roon

In my current living room setup, I am using a Logitech Harmony remote control to control all my devices. This means that there are "Activities" like "Watch TV", "Play Games", and also "Listen to Music". Since I am lazy, I didn't want to use both the Harmony remote control as well as Roon to control my audio equipment...

Source Control

Roon offers an extension that is called "Source Control", which allows Roon to control external devices to a certain degree. Mainly, switching the input of such a controlled device and putting it into standby.

This extension exposes each of the "Activities" registered on the Harmony as its own Source Control extension. In my case, there are extensions for "Watching TV", "Play Games", and "Listen to Music". Each of those extensions can be bound to a specific output zone - in my case "Living Room". The result is exactly what I was looking for: if I am watching TV and press the play button in Roon, the TV is turned off, the AV receiver switches its input, and Roon starts to play. In addition, if I am using the Harmony remote control to turn off everything, Roon stops its playback.


  1. Install Node.js from

    • On Windows, install from the above link.
    • On Mac OS, you can use homebrew to install Node.js.
    • On Linux, you can use your distribution's package manager, but make sure it installs a recent Node.js. Otherwise just install from the above link.

    The extension has been developed with Node v8.0.0. While it may work with older versions, it's not something that I've tested.

  2. Install Git from

    • Following the instructions for the Operating System you are running.
  3. Download the Logitech Harmony extension.

  4. Extract the zip file in a local folder.

  5. Change directory to the extension in the local folder:

    cd <local_folder>/roon-extension-harmony

    Replace <local_folder> with the local folder path.

  6. Install the dependencies:

    npm install
  7. Run it!

    node .

    The extension should appear in Roon now. See Settings->Setup->Extensions and you should see it in the list.


  • Setups with more than one Roon Core on the network are not currently tested.