Roon Extension: Deep Harmony - rich feature set for Logitech Harmony

I just tried both the current published build and my latest build (via local import and create from docker hub) on the updated QNAP and all is as it should be, so I’m sorry too say I’m non the wiser about what may be causing container station to not accept it.

I’m getting close to releasing an update (hoping this weekend) that builds the images in a drastically different way to make them very much smaller (~800MB => ~100MB) as they no longer need node.js/npm/git and so can use a very minimal linux base-image which is also rather more R-Pi friendly. It may be that makes the problem go away.

All good mate. You’re the one doing the hard work here - I’m just tagging along for the ride (well, trying to!).

I’ll try again once you post the new build. I’ll also try another docker - this was my first, so maybe they ALL fail.

Can’t wait for that RPi release. And you really should consider a donation link! :slight_smile:

Just a quick note to reinforce some of the comments regarding crashes.

On my Synology 916+, the list of notifications is implying that the container is crashing about twice a day (over the last 5 days). I have auto-restart enabled, so not causing me an operational issue.

The status page is showing 24mb of memory being used and 0.03% CPU load

Happy to help with troubleshooting
Nick

OK thanks.

I was hoping to have a release out last weekend but a couple of things happened; 1 - life got in the way and 2 some under the hood improvements I wanted to make in the light of feedback from users were straining the original implementation at the seams.

So I had a choice, hack away at what was and delay what I wanted to do, or bow to the inevitable and do a re-write to take it in the direction I wanted to. The latter won :slight_smile:

So the re-write is mostly where I want it to be. There are still some minor bits to finish off, but all the big stuff is there and working well I think. I should have a better idea of release time over the weekend, but should be either over the weekend or early next week. And pretty much everything has changed - for the better I hope :slight_smile:

2 Likes

Hi all,
Deep Harmony V2 is now available.

Docker images:

  • For x64 based Linux:
    • khazul/roon-extension-deep-harmony:v2.0.0.223-linux-amd64
  • For ARMv7 based Linux (Raspberry PI 3/3B+)
    • khazul/roon-extension-deep-harmony:v2.0.0.223-linux-armv7

See https://store.docker.com/community/images/khazul/roon-extension-deep-harmony

Console applications

Console applications are available for Windows-x64, MacOS-x64, Linux-x64 and Linux-ArmV7 at:
https://github.com/Khazul/roon-extension-deep-harmony-release/releases/tag/v2.0.0%2B223

Please see the readme at https://github.com/Khazul/roon-extension-deep-harmony-release for setup information.

Enjoy

Adam



Deep Harmony V2

A Roon Extension for Logitech Harmony

Introduction

Deep Harmony is an extension for the Roon media system from Roon Labs LLC that provides integration with Logitech’s Harmony Hub remote control system to provide activity detection and selection by and for Roon and provide volume/mute control from with the Roon UI. Additionally it includes a media device emulator that allows for transport control and other functions from a Harmony Hub remote control over WiFi.

Features

  • Supports multiple Harmony hubs

  • Supports multiple harmony zones

  • Associate Harmony activities with Roon zones for transport and other control

  • Volume step up/down and mute/unmute from within Roon UI

  • Select/standby activity from within Roon UI

  • Auto stop linked zone when Harmony selects another activity or powers off

  • Transport control of Roon from your Harmony remote

    • Play/Pause, Stop

    • Skip forward/backward

    • Next/previous track

    • Shuffle toggle

    • Loop mode cycle

    • Auto-Radio toggle

  • Upto 10 internet radio services or playlists can be assigned to Harmony remote number keys

What’s New

This release was originally intended to be a few fixes and addition of auto update and a few minor tidy ups under the hood. However one thing led to another and eventually it made more sense to start on future plans now as it became clear that some of the under the hood improvements were going to need a rather more major rework. So, instead of the intended 1.0.1 release, here it is; 2.0 and allmost everything has changed.

New Features

  • Now supports multiple Harmony Hubs.
  • Now supports multiple Roon zones allowing for each zone to be associated with a Harmony hub+activity as needed.
  • New Roku emulator to provide many more buttons.
  • Supports a separate Roku emulator per Harmony hub.
  • Quick access to up to 10 favourite playlists or internet radio services from Harmony remote.
  • Proper rolling and trimmed log capture system with embedded web server for easy access to recent logs as a zip file.
  • Simple software update system to download and install new versions as they become available. This is controlled from settings.

Other improvements

  • Roku emulator button assignments are a more natural fit with Harmony.
  • Significantly reduced docker image size (Just under 800MB reduced to around 115MB on x64 and around 95MB on ArmV7).
  • Web based access to logs and user controllable logging levels.
  • Docker images for two platforms (linux-x64, linux-armv7) including multi-platform tagged docker image.
  • Basic console applications for 4 platforms: linux-x64, linux-armv7, windows-x64, macos-x64.

Distribution Formats

The extension is available as a docker image and as a bare bones console application. The console applications are a by-product of the build process and at this stage do not feature installers. They do however come with a very simple script to keep them running.

  • Docker Images for
    • linux-x64
    • linux-armv7
  • Bare bones console apps for
    • linux-x64
    • linux-armv7
    • windows-x64
    • macos-x64
2 Likes

Hello Adam installed your extension on my Raspberry Pi and it is working flawlessly! Many, many thanks for that. I will experiment some with it tomorrow. Need to figure out how those radio favourite shortcuts work for instance…

Looking very promising I will make a donation as promised!!

Hello Adam.

I moved to your new version and I must say that it’s pretty awesome !
As with the previous version, I will monitor any problem or crash to report.

I have two questions :

  1. Do you plan to publish your code on Github as some other extensions ?
  2. As other features are mentioned in the setup guide, I’m wondering if a ROCK shutdown control could be one of these ?

Turning off (IR Power on is supported by NUC hardware) my Roon Core is the only thing that I can’t control with my Harmony Hub/Remote.
A few months ago, I inspected the ROCK web interface and the shutdown and reboot function are done by simple http requests.

Thanks again for your work !

Thank you :slight_smile:

BTW - how did you find setup? I was a bit concerned about the resulting complexity of it and there are not a lot of options with the current settings UI once you get into a need for more complex setting UI and tools etc.

Re source code - yes one day when it is better organised as I’m still learning my way around node, docker and thus still tending to make big re-orgs with it, particular around the build and system which has gone from nothing to a bit of a monster to support the various platforms with bits of it being done remotely on an R-PI.

Re other features:
I hadn’t though thought of doing anything with Rock as I simply don’t have a NUC. Ive have been thinking of getting one, but waiting for the new 8xx ones to arrive. If you have already had a quick look at the API for it, then by all means, feel free to point me at it and I can have a think about how it fits into overall control flow.

The next major features I am working on are to make some use of all those buttons labelled ‘future plans’ ie those related to browse, search and selection functionality. Of course for that to work it is going to need a decent looking companion UI :wink:

Hi.

No concern about the setup. I was a bit surprised seeing all the options, but I figured out how to configure everything. As a software engineer, perhaps I’m not a representative user for this point.

Regarding my question about the ROCK shutdown feature, I studied the question a few months ago when I purchased my Harmony remote. Roon API doesn’t provide tools to manage ROCK power state, since ROCK is something different. But, inspecting ROCK web interface, I figured out the URIs (as mentioned in this thread Control a ROCK via URL?) to invoke to do a proper shutdown or reboot. It’s quite simple.

I had a project of creating an extension to do that but I never found the time to start.
Now that I’ve found yours… developping another extension just to do that would be far less interesting.
Maybe when your project is open source, I’ll be able to contribute for this, or at least…, try.

Hmm - that sounds like the kind of thing that could be genericised under a general heading of web hooks. OK thanks - food for thought :slight_smile:

As for huge number of options - that is partly because there is no other way to present any UI that is practical for most users (counting copying and pasting URLs / manual URL entry as too geeky). I do wish there was a way to embed a simple http link into settings.

Hi Adam - I’m still getting a blank settings page in Roon. I’m pretty sure the extension is running properly on my linux laptop. I’m running ROCK on Intel NUC with I5 processor. The extension is running on 64bit Linux Mint 19. Roon server is current version 1.5.

Obviously extension is being found, and I can enable, but no way to configure settings. I’m really excited about this extension. Hoping someone has a suggestion to get past this issue.

Do you know the IP address on which the extension is running? It might be shown with the ‘View’ button next to authorisations.

If so, could you try accessing http://ip-address:9080/logs and see if you can get a logs zip file out of it?

Also, if you like, there is a simple to run console app versions available for 64 bit Windows (and Linux 64). It may be worth quickly trying to run it (unpack zip and run the run.bat) just to see if that behaves differently. You can simply delete the folder after.

https://github.com/Khazul/roon-extension-deep-harmony-release/releases

I get exactly the same thing as @Brett_Kerbel when I look at the extension is Roon.

In my case the extension is running in a 7i5 nuc with ubuntu server 18.04, roon server and emby server on it. When I run the run.sh script the extension loads and finds the harmony hub OK and all appears to be well with, it tells me me configuration is needed in Roon.

Also on the configuration tab,if I press save Roon exits completely and the extension crashes.

What more do you need from me? I’d attach the log file if the site would let me.

Paul

Hi Adam same issues here, extension is found and enabled. But blank screen with no setup option.

I tried the console version on windows 10 as well as the docker image on Synology NAS.

Very excited about the new version, appreciate your help.

I have PM’d you both for logs if you can.

I have run all 6 versions of this here quite extensively and had such issue which isn’t a help to you of course, but hopefully comparing how what is in the logs for settings for you against what I see here may help to figure out what is different.

Do either of you have any odd networking setup? VPN/VLANs etc?

I have just email my log.

My roon core is on a windows 10 NUC, and have no VPN on that.

However my Synology NAS where I installed the docker image initially has VPN.

My iPad from where I access the roon remote from has VPN

Thanks both - I can the see issue - its the same for you both.
I have loads of playlists and radio setup on mine and don’t have a second core with nothing on it.

As a workaround until I can get an update out, create a playlist and may need to add a radio station.

I just tried to get a second empty core up for testing, but of course Roon want another authorization paid for, so that’s out. Additional free developer licenses would be handy to allow testing of this kind of thing.

Great Work Adam!!!

After I created a demo playlist it started working, couldn’t be happier more!

Now trying to figure out the donation options, do you have paypal?

Cheers
Al

A quick question - do you have any Internet Radio services setup? I don’t want to delete mine to test as it took ages to set them up :slight_smile:

I suspect on a new core when there are no playlists, the top level playlist entry in the menu is absent and that was actually the problem.