Denon AVR Plugin

Continuing the discussion from Access to Raw Volume Values:

DenonAVR.plugin (11.0 KB)

Here is a Denon AVR plugin as an alternative to the built-in integration. It adds a couple of additional things:

  • Subwoofer level (saved as device attribute Bass)
  • Max Volume (used in the volume slider)
  • More detailed input switching. I put in 4 settings for each input that I am currently using:
    Common name: What the display name should be within The Home Remote
    Home Remote ID: The Home Remote device ID that should be linked to this input
    Device ID: What the Denon Receiver calls this (may be different especially if you renamed your inputs)
    Denon Protocol ID: How to access this input via the TCP commands

I chose to add this more detailed input switching because of how I use The Home Remote to manage audio throughout the house (one zone is this Denon AVR; the rest of them are on multi-zone controllers). So this was a clean way for me to keep things consistent across all zones and sources.

I fully recognize there are cleaner and more concise ways to do much of this, but this was a good learning experience for me and may help others.

I am using this with a Denon AVR-S650H but expect this will work for quite a number of Denon receivers.

2 Likes

I imported the plugin in a new project, and I put my denon’s Host IP, and hit ok.
then I got “DenonAVR is undefined” error.
I am testing it with Denon X2100W.
Any suggestion?

Had the same issue.
Solved it by replacing all instances of plugin.Name, with ‘DenonAVR’
Hope this helps

do you mean in the DenonAVR.plugin code?
or any plugin in the device folder?

Try the revised file.
DenonAVR_undefinedFix.plugin (11.1 KB)

@amingle It’s lines 180 & 184 in the plugin that’s triggering the “undefined” error. The code is trying to access a device object that doesn’t exist yet. When importing a plugin the “plugin.Devices” collection is empty. I added a condition to make sure the object isn’t null or undefined for those 2 pieces of code.

Yes, thanks for fixing that. I honestly got (incorrectly) accustomed to ignoring that during import. I need to make sure I implement that in all of my plugins.

DenonAVR_11-06-20.plugin (17.1 KB)

Thanks @amingle for creating this. I added a few things to cater to my hrp that others might be interested in. Additions:

Custom inputs increased to 8
Dynamic Volume Level
Cinema EQ
Dynamic EQ
5.1 (Center/FR/FL/SR/SL/Sub) Volume Level
Dialog Volume Level
Surround Type

Master volume is unchanged and still works with a slider, however, no other volume controls will. The other volume controls report the same number that Denon shows on screen and they will work with an “Up” or “Down” command.

Hi, love the remote for the Denon.

What do I enter as Binding and Value to trigger these buttons… for example. to toggle Dynamic Volume to Light?

Binding: DenonAVR.DynamicVolumeLevel
Values: Light, Medium, Heavy, Off

Binding: DenonAVR.DynamicReferenceLevel
Values: 0, 5, 10, 15

Binding: DenonAVR.CinemaEqPower
Values: On, Off

Binding: DenonAVR.DynamicEqPower
Values: On, Off

Binding: DenonAVR.DialogVolLevel
Values: Up, Down

Binding: DenonAVR.CenterVol
Values: Up, Down

Binding: DenonAVR.FrontLeftVol
Values: Up, Down

Binding: DenonAVR.FrontRightVol
Values: Up, Down

Binding: DenonAVR.SurroundLeftVol
Values: Up, Down

Binding: DenonAVR.SurroundRightVol
Values: Up, Down

Binding: DenonAVR.SubVol
Values: Up, Down

1 Like

@amingle I’ve been using this for a while now without issue. This morning I started to get “command not implemented! InputSource”. Are you seeing the same behavior?

Hmm that’s strange. No, I have also been using it for awhile without any issue. The error is saying that the “InputSource” attribute is not dealt with in onChangeRequest in the plugin, but that’s not a new thing. Did you happen to change anything on the front end side where it would try sending InputSource to the Denon plugin?

No, but I did customize the plugin quite a bit, I’m sure I messed something up somewhere. Just weird that it’s worked fine for so long. I just removed the custom input names and it’s working now.

Yeah that is strange. If you want me to take a look at anything in particular, let me know.