Harmony buttonPress not sent to Denon AVR

Dear all,

I am trying to controll the functions PLAY, PAUSE, FASTFORWARD, REWIND, STOP of my Denon AVR X1100W. I am allready using the DENON/MARANZ Binding to control some functions - but for whatever reason, PLAY or PAUSE etc are not implemented as custom command (or am I wrong?)

This leads me to control these specific functions via logitech harmony binding. I registered an item for the button press function of my denon AVR

String  HarmonyDenon            "Kommando Denon"        <receiver>  (gHarmony)      {channel="harmonyhub:device:HarmonyWohnzimmer:39913609:buttonPress"}

I am now trying to send commands to this item like

HarmonyDenon.sendCommand("Pause")

Unfortunately, it does not work, also not for the other actions mentioned. Weirdly, the “Mute” command does work - so in general, the item seems to work

from my harmony app on my android phone, PLAY, PAUSE, etc do work for the denon device. So in general, harmony is sending the correct commands and denon can interpret it.

The only “workaround” is, to link the player of the active device like

Player	HarmonyPlayer			"Harmony Player"		<receiver>	(gHarmony)		{channel="harmonyhub:hub:HarmonyWohnzimmer:player"}

With this function, the Denon is controllable via openhab and harmony plugin.

Unfortunately, I want to use this function, when the receiver is startet by a command not sent by harmony (in my case a beginning stream from spotify). As the AVR isnt started from the harmony, harmony doesn’t know about the device to be running so it cannot control it by the current activity. Detecting and starting the activity after playback from spotify starts leads to turning off and on again…

Do you have any idea, how I can get Play and Pause up and running for the specific buttonPress of the harmony device - or even better, how to control it via denon/marantz binding?

Thanks a lot in advance,

Tamo

Is the Denon device handling the Spotify stream directly or is there another device connected to the receiver doing the streaming ?

Hi Digitaldan,

the stream is pushed from the smartphone via spotify connect. Not just via Bluetooth or so. So yes, it handles the stream on its own.

When I choose the Denon device on my harmony remote or app, the pause, play, mute etc do work. But when I use the button press command in openhab for that specific device, they dont work (except of mute, which actually works, and maybe some others). Maybe all “Player” related commands do not work? But why?

As a summary: The control via harmony remote or harmony app works flawlessly. Also, there is a working connection between openhab and Harmony (muting works). But for whatever reason, some commands (in this case player commands) are not being sent.

Regards,

Tamo

Hi Christian

I had what I think might be a similar issue (not 100% sure).

You need to send the underlying command that is configured in the Harmony App (or myHarmony). Not the Button on the remote etc.

So in my case I had the Red button on the remote configured to use the Playlist command. When I sent Red nothing happened, but when I sent Playlist all works.

Seems less likely to be the case with common buttons, but all depends on how the device is configured I guess.

Cheers
mark

Hi Mark_VG,

thank you for the Idea. But PLAY or PAUSE should be the name of the action AND the button in the same time. And if not: Whats the correct name? And why does “Mute” work?

And finally: If I send the Button Command to an item linked to the press button function of the active action on my harmony, it works perfectly. But in my case, there is no active action, so I have to use the profile of the device (denon AVR) itself.

On my Harmony I have Play set as follows:

It could however be set to ANY command for the device.

You could learns a NEW command via the APp or MyHarmony - maybe called MYPLAY - which could be the Play.

Restart the HarmonyHub Binding to read the config and then try and sent MYPLAY to the button press and see what you get?

Also, when you send the ButtonPress to the Harmony Hub, does the LED on the Hub blink to indicate receipt of the request?

My guess is that the play control in the app is linked to something specific to streaming control , in the OH3 UI there is a API explorer, click on the channel-types section, click “try it out” and the “execute”. The binding generates a list of button commands per device dynamically from your harmony and is listed here. You can search for your denon device there and see if there is something like a Stream Play or Stream control in there.

I think the confusion is that the buttonPress examples in the documentation are for the Harmony Hub activities, not for specific endpoint devices. So when you send the Play command through a Harmony Hub activity, it translates into whatever command the Denon AVR expects to receive.

When you use the Harmony Hub to directly control a device, it’s as if you’re using that device’s physical remote. So as Dan said, you need to dig in the API Explorer to find out what commands are available, and then use those for commands.

Note that when you search in the API Explorer, you can enter “harmonyhub:device” as the prefixes string to filter the Harmony Hub entries.

I use buttonPress for an IR-controlled fan and got this result in API Explorer. The value is what I send to my fan, though in this case it’s the same as the label.

[
  {
    "parameters": [],
    "parameterGroups": [],
    "description": "Send a button press to device Rowenta Climate Control",
    "label": "Send Button Press",
    "itemType": "String",
    "kind": "STATE",
    "stateDescription": {
      "readOnly": false,
      "options": [
        {
          "value": "PowerToggle",
          "label": "Power Toggle"
        },
        {
          "value": "+/-",
          "label": "+/-"
        },
        {
          "value": "Decrescendo",
          "label": "Decrescendo"
        },
        {
          "value": "SilentNight",
          "label": "SilentNight"
        },
        {
          "value": "Timer",
          "label": "Timer"
        },
        {
          "value": "TurboBoost",
          "label": "TurboBoost"
        }
      ]
    },
    "tags": [],
    "UID": "harmonyhub:device:BedroomHub:69268006:buttonPress",
    "advanced": false
  }
]````

Thanks to all of you for your help. I have learned a lot about API Explorer and REST I didn’t knew before.

The Answer is anywhere in between. And it is as dumb as it could have ever been… The guess, that harmony converts the signal to something the denon expects is correct.

When you start spotify playback on the denon and then start the TV (what I usually don’t do as the interface is massively ugly) you see some control buttons at tle lower site.

Direction Up = Previous
Direction Down = Next
Enter = play/pause
Direction left = Quit Connection

Why in hells name doesn’t the guys from Denon use the original PLAY, PAUSE, and FF/REW buttons on the Remote??? What did they smoke???

anyway. By sending those commands, it is working now flawlessly :slight_smile:

With this in mind, it is even possible to control the denon directly via SSH without harmony. The Corresponding Custom commands are:

Direction Up = NS90
Direction Down = NS91
Enter = NS94
Direction left = NS92

(yea, Denon does not waste space for characters, it could blow your connection to send “ENTER” instead of “NS94”)

A full list of SSH commands can be found here: Denon IP Protocol

Best regards and thank you again!

Tamo

This:

Comes down to this:

I think the documentation could be clearer in this regard. I’ll look at submitting a PR for it if I find the time.

I would guess that there’s a legacy reason for this, ensuring compatibility with older remotes/hardware. The designers probably dislike it as much as you do.

but it is working when i press the pause button for that specific device. Seems that the harmony does the logic to translate it to “ENTER”. When controlled via Openhab, i simply does what it is told to do.

Yes, that’s exactly it.

As stated in the docs, there are two different types of buttonPress events in the Harmony Hub binding.

channel="harmonyhub:hub:GreatRoom:buttonPress"
channel="harmonyhub:device:GreatRoom:29529817:buttonPress"

Notice the difference, which is that the first “Activity Button Press” type directs commands to the hub itself (which the hub then translates for devices), and the second “Device Button Press” type directs commands to a specific device (e.g. your Denon AVR).

If you use the Activity Button Press, then you can send Play from openHAB and the Harmony Hub will convert that to ENTER for your Denon AVR. But as you noted, that doesn’t work when the Harmony Hub is turned off (eg. there’s no Activity). When it’s turned off, the Harmony Hub logically doesn’t respond to remote commands.

This is the same as using the physical Harmony Hub remote or app.

In contrast, the Device Button Press works at all times, regardless of the Harmony Hub being on or off. It does this by using the Harmony Hub as a simple IR blaster (no translation) and just sending the exact command you specify in openHAB to the device. So if you send Play, that’s what your Denon AVR receives…and it ignores it. But if you send ENTER, your Denon AVR responds.

This is the same as using the Denon AVR’s physical remote, which works independently of the Harmony Hub.

Does that make sense?