[BETA RELEASE] Denon AVR Driver

After a few weeks of development, I am releasing my Denon AVR Driver for some brave souls to try. It is a BETA driver, and does some VERY non-traditional driver development. It might do bad things, there is no warranty. That said, I have built this driver to be FULLY configurable so I can add children devices and ANY command easily. If you are brave, take a look!

FAQ

  • Will this work on my device? I Have no idea. This is workiing on a Denon 3400H. That being said, it is based on the API documentation located HERE
  • Wow, my whole hub crashed. Please read my introduction
  • I want other features! I have included the one I care about. Let me know, I'll take a look
  • I looked at your driver. I have no idea what is going on! Welcome to the club. As I said, this driver is doing some Groovy magic

Features

  • Entire driver is BUILT at runtime based on configuration structures. Adding support for new commands is simply as adding a line or so of code.
  • Zone 2 support - Yea!
  • Speaker support
  • Zone 3 support (if someone asks for it)
  • Supports about 70% of available commands (let's be honest, there are alot of them).

I have put it through the paces and it seems to be working, I need some community eyes on it.

File Locations

Please install all these files. They are the main and child device drivers. Set up a virtual device of the Main Driver type and then setup the child devices from the Main Driver configuration page.

Main Driver: https://raw.githubusercontent.com/tchoward/Hubitat/master/Denon_AVR_Master.groovy
Zone 2: https://raw.githubusercontent.com/tchoward/Hubitat/master/Denon_AVR_Zone2_Child.groovy
Speakers: https://raw.githubusercontent.com/tchoward/Hubitat/master/Denon_AVR_Speaker_Child.groovy

6 Likes

Zone 2 (and even 3) support is huge! Looking forward to trying this driver out.

Will you add to HPM at some point?

Thanks for sharing!

Edit: my Marantz receiver has a zone 3, I don’t really use it yet but I’m happy to test it out if support for that is added at some point.

Try out the driver and let me know. Adding Zone 3 support would take 5 minutes. I have not provided too many details, but the driver auto-generates the commands and functions. I want to make sure it does not do anything "bad" to people's hubs before making it available more generally. I'll add Zone 3 tonight.

1 Like

Sorry that took longer to try out than I intended!

Driver seems to be working fine in terms of basic features. Nothing’s blown up on the hub since I installed it either.

I don’t quite understand what the speaker child device does?

YES!

So... my device has the ability to control speaker volume individually (it’s in the API). It was an experiment in using the config method... It works... is it useful? I doubt it.

1 Like

2021-01-28 08:07:33.514 am errorjava.lang.StackOverflowError: null on line 285 (installed)

Error is from zone 2 device. Which also got created as "null Zone2" and it doesn't look like it's taking a rename.

Also, I'm not seeing where the "source" is selectable?

Also seems to be missing a refresh or current states (input) on zone 2.

SOOOOO not complaining and trying to aid in testing :slight_smile: If you get this all sorted out this will be awesome for those of us that have really been wanting Zone 2 support!

I see. It can adjust the volume to each channel manually. I have a Marantz SR8015 and I think it could probably do that, but I use the Audessey tuning to automatically set each speaker level.

Nice driver, works well with my AVR-S650H. Thanks!

Been waiting for this since I switched from Vera. Works great with my receiver--thanks!

Has anyone figured out a way to send macro commands via rule machine or any other means?

I've enjoyed using this driver but have noticed that the Receiver becomes non-responsive after a few days. Saving preferences restores the connection. The receiver is set to a static IP address. Has anyone had an issue like this?

I've also found this same issue.
Been really liking the driver, but this problem drives my wife mad.
Wish I could fiddle with logging as well.

@thomas.c.howard not sure if you're still around, but the driver is great! I also have the same issue as the last couple of posters here, where the connection dies for some reason until I hit "save preferences" again. Suggestions? Thanks a ton!

Is it possible that SOMETHING else is connecting to the receiver? Because if so it will kill the connection. So if you use an android app or anything else that connects to the receiver I've found that will kill it.

@jrfarrar interesting possibility! I do use the Denon Android app, so that could make sense - though in my testing right now, I can't reproduce that. But will play with that - maybe some combo of using the app + time?

If I remember right (it's been a while) it's only if they collide (aka the app is making a change with HE goes to do something) then it's done. Seems like there should be a simple way in the code as some sort of watchdog to reconnect if it dies....

try replacing this in the main driver:

//commands
def executeCommand(command) {
    log.debug("Sending command: $command");
    command = command;
	rslt = sendHubCommand(new hubitat.device.HubAction(command, hubitat.device.Protocol.TELNET))
    log.debug("RESULT OF COMMAND: $rslt")
}

bascially just adding a result of sending a command. Can you check the logs when it fails and see what you get?

Thanks! Just added and will see what happens.

Played around with this more tonight, and added some code to re-initialize the connection, which is part of what "Save Preferences" does. FWIW, all of the "Result of Command" responses given what you sent were "null". Gonna see if this keeps it reliable - LMK if you want the updates I made.