Denon AVR, Controlling Volume Steps

When pressing the volume up button on the remote for the Denon AVC-X4700H, the volume is incremented by +0.5dB; the volume change is basically imperceivable, so many presses are needed and since I use a Harmony remote, there’s a delay between each press.

Despite using a Harmony, it’s not possible configure the remote to work around the issue (i.e. changing various delays).

I’d given up on finding a solution to this until I noticed that if you change the volume from the Harmony app by using the phone’s physical volume buttons, the volume is incremented by +8dB. So controlling the steps is possible somehow!

Assuming Harmony is controlling the AVR through HTTP, I figured I’d be able to create a custom call from Home Assistant.
However, having read the documentation and looking at the IP control sheet, I’m only able to control the volume by either using the default steps (MVUP) or to a fixed level (eg. MV20).

Does anyone know how to set this up, or how the Harmony app is managing to use custom volume steps?

TL;DR: I wish to control the volume with bigger steps than 0.5dB. I didn’t think it was possible, but the Harmony app is doing it somehow.

1 Like

I won’t help you with harmony, but why not controlling volume directly on Denon AVR through http?

Sorry for not being clear.

I wish to control the volume with bigger steps than 0.5dB, preferably through HTTP. I didn’t think it was possible, but the Harmony app is doing it somehow.

My question isn’t related to Harmony at all – I just noticed their app is doing something I’m unable to replicate.

I do have a slider to set volume for my Denon AVR. Not exactly +/- buttons like you might want.
Slider works well.

I need HA to use steps. A slider won’t do unfortunately.

Then refer to here: Denon AVR Network Receivers - Home Assistant
Specifically this:
A list of IR codes can be found here.

You can call service “Denon AVR Network Receivers: Get command” for entity of your AVR. For instance sending “/goform/formiPhoneAppDirect.xml?MV60” will set volume to 60dB.

Might help

I’m specifically trying to control the volume in steps.

I did a test just now, created 2 scripts. One would call service ‘media_player.volume_up’ on Denon device, 4 times (duplicated that action 4 times). That should increase volume by 2dB.
Other called service ‘denonavr.get_command’ on Denon device, and the command was ‘/goform/formiPhoneAppDirect.xml?MVUP’, again duplicated 4 times.

Whichever I fire, they both instantly increase volume by 2 dB. You could map script to whatever you want - button for instance.

I don’t have a Denon, but Yamaha has the same thing.

I added a IR receiver to a ESP to sense the volume change and then use the media_player.volume_set to {{ current volume +(-) 3 }}
That gives me 3.5 as the steps instead.

Brilliant This does exactly what I wanted.

How does your setup handle long-presses?

In case anyone needs it, this is my new automation action:

service: media_player.volume_set
data:
  volume_level: "{{ state_attr('media_player.denon_avc_x4700h', 'volume_level') | float + 0.05 | float}}"
target:
  entity_id: media_player.denon_avc_x4700h

It just doesn’t.
I don’t think there is any way around it.
We just do short presses.

But there could be a way to do it, but it requires Node red.

I’ll see if I can find the thread, it’s not using IR but I believe the same principle will work here also.

Yeah, I prefer the bigger steps over being able to long press too. That being said, I’ll definitely be looking into the Node red solution. Thank you for the help!

For the record: I’m using the Emulated Roku to have my Harmony interact with HA, adjusting the volume in steps.

Long-presses work surprisingly well (I suspect the issue resolved by Node Red is actually working in my favor), so there’s been no need for me to dive further into this.