Controlling a Denon AVR

image

I have a ridiculously expensive Marantz and I don’t have DIRAC. You guys have DENON devices and you have DIRAC.

The world is unjust :smiley:

Did you ever figure out how to get the value back into HA?

I’m curious about trying to retrieve the current Subwoofer level (PSSWL ?) - I can also see the response if I telnet into the AVR, but I haven’t figured out how to get it into HA.

Not natively through Home Assistant. I ended up writing a python script that telnetted into the AVR and pulled the data and then sent it to HA as a sensor. I can post the source if you like. This should work for the PSSWL output as well but it is not instant, I poll every 10 seconds

:slight_smile:

Yea, the A1H has DIRAC now. Honestly I am not sure it was worth the money compared to Audysee, since I have it I use it but if I could do it again I would opt for Audysee

If you don’t mind sharing, that’d be great - I haven’t tried anything with external sensors yet. I also don’t need instant feedback - I’m currently controlling the level from HA by sending absolute values, but it could be nice to be able to fine tune with relative values.

I’m using XML to control sub and dialog levels via Node-RED. It works fantastically well except the number entity type in Node-RED Home Assistant WebSocket cannot be set to unavailable from Node-RED when the sub cannot be governed.

Attaching my flow as a downloadable file on my site below. Please understand it may not work in your case. Use it as a guide to build your own.

https://rudd-o.com/downloads/marantz.json/view

Thanks for sharing! I haven’t played with Node-RED yet but have been curious - might finally check it out to see what you have going on.

1 Like

I use this for my Denon AVR-2113 receiver which is connected with ethernet. It works very well when it works, but sometimes my receiver is unavailable in the integration and I have to remove the ethernet cable and restart the receiver a couple of times to get it to connect.

Is there any reliable integration I can use with my receiver, a lot of my automations fail when the receiver is unavailable. I have no idea why it happens, and there is no specific occation it happens, the logs doesn’t tell me anything else than it tries to reconnect.

I had similar behavior with my Denon AVR 3600H. After two, three days the connection got lost.

I just plugged a smart plug to the mains power cord and have an automation, which interrupts the power supply every night for 15 seconds.
Not a real solution, but one that works just fine.

You can attempt to reload the integration from the integration device list. That usually fixes issues I have.

I usually try that first, but it usually doesn’t work. It seems to get stuck, I have to remove the ethernet cable and power on and off the receiver, I created an issue on Github about this:

I think this will help some of you: Denon AVR XML Dump. If you use the proper endpoint and XML, you can pull or set most any config options.

Here are some examples from my config:

rest:
    # Dialog Enhancer Mode: Returns 0 (off) to 3 (high)
  - url:  http://DENON_IP:8080/goform/AppCommand0300.xml
    method: post
    content_type: text/xml
    verify_ssl: false
    payload: '<?xml version="1.0" encoding="utf-8"?>\n<tx>\n  <cmd id="3">\n    <name>GetDialogEnhancer</name>\n    <list>\n      <param name="mode"></param>\n    </list>\n  </cmd>\n</tx>'
    sensor:
      - name: Denon Dialog Enhancer Mode
        json_attributes_path: "$.rx.cmd.list"
        json_attributes:
          - param
        value_template: "OK"
        unique_id: denon_dialog_enhancer_mode

    # Audyssey Reference Level Offset. Returns 0 (0dB) to 3 (15dB)
  - url:  http://DENON_IP:8080/goform/AppCommand0300.xml
    method: post
    content_type: text/xml
    verify_ssl: false
    payload: '<?xml version="1.0" encoding="utf-8"?>\n<tx>\n  <cmd id="3">\n    <name>GetAudyssey</name>\n    <list>\n      <param name="reflevoffset"></param>\n    </list>\n  </cmd>\n</tx>'
    sensor:
      - name: Denon Audyssey Reference Level Offset
        json_attributes_path: "$.rx.cmd.list.param"
        json_attributes:
          - '#text'
        value_template: "OK"
        unique_id: denon_reference_level_offset

rest_command:
  # Set Reference Level Offset. Uses input_select helper with values between 0-3.
  denon_audyssey_set_reference_level_offset:
    url:  http://DENON_IP:8080/goform/AppCommand0300.xml
    method: post
    content_type: text/xml
    verify_ssl: false
    payload: >-
      {% set result = '<?xml version="1.0" encoding="utf-8"?>\n<tx>\n  <cmd id="3">\n    <name>SetAudyssey</name>\n    <list>\n      <param name="reflevoffset">' %}
      {% set result = result + states('input_select.denon_audyssey_reference_level_offset') %}
      {% set result = result + '</param>\n    </list>\n  </cmd>\n</tx>' %}
      {{ result }}

  # Set Dialog Modes. I could probably combine these all into a single command like above, but haven't done so. 
  dialog_mode_off:
    url:  http://DENON_IP:8080/goform/AppCommand0300.xml
    method: post
    content_type: text/xml
    verify_ssl: false
    payload: '<?xml version="1.0" encoding="utf-8"?>\n<tx>\n  <cmd id="3">\n    <name>SetDialogEnhancer</name>\n    <list>\n      <param name="mode">0</param>\n    </list>\n  </cmd>\n</tx>'
  dialog_mode_low:
    url:  http://DENON_IP:8080/goform/AppCommand0300.xml
    method: post
    content_type: text/xml
    verify_ssl: false
    payload: '<?xml version="1.0" encoding="utf-8"?>\n<tx>\n  <cmd id="3">\n    <name>SetDialogEnhancer</name>\n    <list>\n      <param name="mode">1</param>\n    </list>\n  </cmd>\n</tx>'
  dialog_mode_medium:
    url:  http://DENON_IP:8080/goform/AppCommand0300.xml
    method: post
    content_type: text/xml
    verify_ssl: false
    payload: '<?xml version="1.0" encoding="utf-8"?>\n<tx>\n  <cmd id="3">\n    <name>SetDialogEnhancer</name>\n    <list>\n      <param name="mode">2</param>\n    </list>\n  </cmd>\n</tx>'
  dialog_mode_high:
    url:  http://DENON_IP:8080/goform/AppCommand0300.xml
    method: post
    content_type: text/xml
    verify_ssl: false
    payload: '<?xml version="1.0" encoding="utf-8"?>\n<tx>\n  <cmd id="3">\n    <name>SetDialogEnhancer</name>\n    <list>\n      <param name="mode">3</param>\n    </list>\n  </cmd>\n</tx>'

Something important to keep in mind… The XML must have perfect formatting. Proper line breaks and spacing matter. The link above should be using the correct format.

3 Likes

I have been having issues with my Denon AVR-2113 when using Home Assistant and the Denon integration to turn the receiver off.
It works perfectly fine when I use the remote and I never have any issues. But as soon as I use Home Assistant to switch sources and power it off (connected via ethernet, controlled via telnet) the receiver will not start up correctly the next time.

So after it has been turned off via the network, starting the receiver will set it in protection mode, quick blinking red light. Pressing the power button once will make it stop blinking and once more will power up the receiver. I have no other issues with the receiver, and if I don’t use Home Assistant/network it will work perfectly every time.
I have tried a full reset of the microprocessor/network without any success. And without anything plugged in (except ethernet, as this is the only way to test it).

Any idea what this can be?

Thank you!

Video showing protection mode:

Is there any possibility to switch the Audyssey setting.

Dyn EQ on /off
Dyn volume ligth/High?

You can set dynamic EQ on/off with this action/service call if you’ve configured the Denon AVR integration:

denonavr.set_dynamic_eq

Not sure about dynamic volume though.

thank you, exactly. Unfortunately, I can’t find anything for Dynamic Volume. I think it will work but I can’t find a description of how to enter it. Does anyone have any ideas?

is it possible to switch this script as switcher.

Push > it turns Dyn EQ on push> Dyn EQ off >Push Dyn EQ on a.s.o.

action: denonavr.set_dynamic_eq
metadata: {}
data:
dynamic_eq: true
target: