Controlling a Denon AVR

I meant incorporating the built in web server of my receiver into HA. I’ve used iframe to do that, however the user interface is not user friendly and I’m seeking a better solution. Thanks.

1 Like

Hi all,

Is anyone aware of how to change individual speaker levels on a Denon AVR via HTTP/HA integration command?

I’m able to successfully change the Subwoofer level as below:

service: denonavr.get_command
data:
  command: >-
    /goform/formiPhoneAppDirect.xml?PSSWL 55
target:
  device_id: XXXXXXXXX

I can also change the Center level with:

/goform/formiPhoneAppDirect.xml?PSCLV 55

However I cannot seem to change the levels of any other speakers, such as Front Left/Right & Rear Left/Right.

I’ve tried variations of these to no avail:

/goform/formiPhoneAppDirect.xml?CVFL UP
/goform/formiPhoneAppDirect.xml?MVFL UP
/goform/formiPhoneAppDirect.xml?CVFL 55
1 Like

PSCLV is Center Channel Volume Adjustment, not Center Level Volume as such. So it is in proportion to master volume. Same for PSSWL.
I did not tested this with Denon (I’m using HEOS intergation to manage it and this provides me sufficient functionality), but I tested CLI with my Marantz SACD 30n (to some extend). But I use telnet commands directly (marantz does not expose web interface to manage devices). So here is sample code to power on/off the system.

switch:
  - platform: telnet
    switches:
      marantz_sacd30n:
        resource: 192.168.52.57
        port: 23
        command_on: "PWON"
        command_off: "PWSTANDBY"
        command_state: "PW?"
        value_template: '{{ value == "PWON" }}'
        timeout: 0.5

Perhaps you can use set of switches to control volume (as commands you used seems legit):

switch:
  - platform: telnet
    switches:
      left_channel_volume:
        resource: 192.168.xxx.xxx
        port: 23
        command_on: "CVFL UP"
        command_off: "CVFL DOWN"
        timeout: 0.5

And the repeating switch.turn_on would increase volume and switch.turn_off would decrese? Just idea to build upon…

Thanks for the tip, unfortunately that didn’t work either :frowning:

I’ve just discovered the commands that I posted ( /goform/formiPhoneAppDirect.xml?CVFL UP) were indeed having an effect, but only under the “Channel Level Adjust” menu here:

Rather than here where I thought they would:

Perhaps this will help you to properly send commands to receiver:
Volume control via telnet - Configuration - Home Assistant Community (home-assistant.io)

Hello, up until today I could select HEOS radio stations on my Denon AVR1600H using a button in lovelace like this.

show_state: false
show_name: false
camera_view: auto
type: picture-entity
entity: media_player.living_room
image: /local/images/nporadio4concert.png
tap_action:
  action: call-service
  service: media_player.select_source
  service_data:
    source: NPO Radio 4 Concerten
  target:
    entity_id: media_player.living_room
hold_action:
  action: none

But this has suddenly stopped working. This is the status of my Denon (HEOS) entity

source_list:
  - Shield
  - TV Audio
  - Phono
group_members: []
volume_level: 0.33
is_volume_muted: false
media_content_id: >-
  http://playerservices.streamtheworld.com/api/livestream-redirect/CLASSICFMAAC.aac?tdtok=XX
media_content_type: music
media_title: Ecossaise
media_artist: Beethoven/ Jan Mulder
media_album_name: ''
shuffle: true
entity_picture_local: >-
  /api/media_player_proxy/media_player.living_room?token=XX
media_album_id: s2967
media_queue_id: 1
media_source_id: 3
media_station: Classicnl
media_type: station
friendly_name: Denon AVR1600
supported_features: 720396
entity_picture: https://cdn-profiles.tunein.com/s2967/images/logod.png?t=638019398960000000
media_duration: 0

It has worked for quite some time, so I’m not entirely sure, but I think the radio stations used to be listed under Sources. Now it is mentioned under ‘media_station’.
Any ideas how to get this working again? (being able to simply control the radio was quite a big part of the WAF here :slight_smile: )

I think, that I have similar issue. Reading your post, I just checked and I only can say now, that I’m not able to find my favorite internet radio stations from the Denon AVR X3600h.

I’m sure, they were very easy accessible before from the media player card, they disappeared.

No time now to investigate more, will return to this oncoming week.

2 Likes

Thanks, so its not just me, that’s always somewhat comforting. I was kind of flabbergasted as it was quite suddenly gone. Hope you can pinpoint the problem (and a solution :grin:)

Roll back the firmware by factoring resetting, and block ‘production.ws.skyegloup.com’ on your DNS. So it cant download the update. Disabling auto updates doesn’t stop some

< – two x3700h here.

1 Like

Using the HEOS integration I’m still able to start internet radio stations on my X1600H

Yes, using the three dots on the media player card I still can select my favorite radios, as I see today. I’m pretty sure, they were missing a week a go, but they are back now.
I can’t say, where the problem was, it solved it self somehow… :wink:

Thank you guys, I’ll check it out and report back!

Based on the post and script from @JoFie, I created this script for all the Denon commands, rather than embed them in the card. I’m sure it could use some tuning.

alias: denon_cntrl
description: Control Denon AVR
fields:
  device:
    description: Denon AVR to control (default is set to my device name, media_player.denon_avr_s740h
  action:
    description: volup (with stepcount), voldn (with stepcount), volset (with stepcount), volmute (toggle), sel_src (with source), nav (with direction), power (toggle), heos_fav (with stepcount for fav#)
  stepcount:
    description: Number of steps (used with volup, voldn, volset (specific volume ie, 50) and as heos_fav #)
  source:
    description: Source to select (DVD, BD, TV, SAT/CBL, GAME, or any listed in Denon API)

  direction:
    description: Cursor direction (CUP, CDN, CLT, CRT, ENT)
variables:
  device: "{{ device | default('media_player.denon_avr_s740h') }}"
  action: "{{ action }}"
  stepcount: "{{ stepcount | default(2) }}"
  source: "{{ source | default('SAT/CBL') }}"
  direction: "{{ direction | upper | default('ENT') }}"
sequence:
  - choose:
      - conditions: "{{ action == 'volup' }}"
        sequence:
          - repeat:
              count: "{{stepcount*2}}"
              sequence:
                - delay:
                    hours: 0
                    minutes: 0
                    seconds: 0.2
                    milliseconds: 0
                - service: denonavr.get_command
                  data:
                    command: /goform/formiPhoneAppDirect.xml?MVUP
                  target:
                    entity_id: "{{ device }}"
      - conditions: "{{ action == 'voldn' }}"
        sequence:
          - repeat:
              count: "{{ stepcount * 2  }}"
              sequence:
                - delay:
                    hours: 0
                    minutes: 0
                    seconds: 0.2
                    milliseconds: 0
                - service: denonavr.get_command
                  data_template:
                    entity_id: "{{ device }}"
                    command: /goform/formiPhoneAppDirect.xml?MVDOWN
      - conditions: "{{ action == 'volset' }}"
        sequence:
          - service: denonavr.get_command
            data:
              command: /goform/formiPhoneAppDirect.xml?MV{{ stepcount}}
            target:
              entity_id: "{{ device }}"
      - conditions: "{{ action == 'volmute' }}"
        sequence:
          - choose:
              - conditions: "{{ state_attr(device, 'is_volume_muted') }}"
                sequence:
                  - service: denonavr.get_command
                    data:
                      entity_id: "{{ device }}"
                      command: /goform/formiPhoneAppDirect.xml?MUOFF
            default:
              - service: denonavr.get_command
                data:
                  entity_id: "{{ device }}"
                  command: /goform/formiPhoneAppDirect.xml?MUON
      - conditions: "{{ action == 'sel_src' }}"
        sequence:
          - service: denonavr.get_command
            data:
              command: /goform/formiPhoneAppDirect.xml?SI{{ source }}
            target:
              entity_id: "{{ device }}"
      - conditions: "{{ action == 'nav' }}"
        sequence:
          - service: denonavr.get_command
            data:
              command: /goform/formiPhoneAppDirect.xml?MN{{ direction }}
            target:
              entity_id: "{{ device }}"
      - conditions: "{{ action == 'power' }}"
        sequence:
          - choose:
              - conditions:
                  condition: state
                  entity_id: media_player.denon_avr_s740h
                  state: "on"
                sequence:
                  - service: denonavr.get_command
                    data_template:
                      entity_id: "{{ device }}"
                      command: /goform/formiPhoneAppDirect.xml?PWSTANDBY
            default:
              - service: denonavr.get_command
                data_template:
                  entity_id: "{{ device }}"
                  command: /goform/formiPhoneAppDirect.xml?PWON
      - conditions: "{{ action == 'heos_fav' }}"
        sequence:
          - service: denonavr.get_command
            data:
              command: /goform/formiPhoneAppDirect.xml?SINET
            target:
              entity_id: "{{ device }}"
          - delay:
              hours: 0
              minutes: 0
              seconds: 1.5
              milliseconds: 0
          - repeat:
              count: "3"
              sequence:
                - service: denonavr.get_command
                  data:
                    command: /goform/formiPhoneAppDirect.xml?MNCUP
                  target:
                    entity_id: "{{ device }}"
                - delay:
                    hours: 0
                    minutes: 0
                    seconds: 0.5
                    milliseconds: 0
          - delay:
              hours: 0
              minutes: 0
              seconds: 1.5
              milliseconds: 0
          - service: denonavr.get_command
            data:
              command: /goform/formiPhoneAppDirect.xml?MNCDN
            target:
              entity_id: "{{ device }}"
          - delay:
              hours: 0
              minutes: 0
              seconds: 0.5
              milliseconds: 0
          - service: denonavr.get_command
            data:
              command: /goform/formiPhoneAppDirect.xml?MNENT
            target:
              entity_id: "{{ device }}"
          - delay:
              hours: 0
              minutes: 0
              seconds: 0.5
              milliseconds: 0
          - repeat:
              count: "{{ stepcount - 1 }}"
              sequence:
                - delay: 0.3
                - service: denonavr.get_command
                  data:
                    command: /goform/formiPhoneAppDirect.xml?MNCDN
                  target:
                    entity_id: "{{ device }}"
          - delay:
              hours: 0
              minutes: 0
              seconds: 0.5
              milliseconds: 0
          - repeat:
              count: 2
              sequence:
                - service: denonavr.get_command
                  data:
                    command: /goform/formiPhoneAppDirect.xml?MNENT
                  target:
                    entity_id: "{{ device }}"
                - delay:
                    hours: 0
                    minutes: 0
                    seconds: 0.5
                    milliseconds: 0
mode: queued
max: 10
3 Likes

I did a factory reset and blocked said adress.

Apparently that also disables the heos login in my AVR-X1600H. After removing the the block, I logged in on my HEOS account on my AVR and tadaa, my radio stations are back!

You might want to upvote this feature request to also add HEOS support to the Music Assistant add-on of Home Assistant. HEOS as Player Provider · music-assistant · Discussion #1167 · GitHub
Currently v2.0 of Music assistant is in beta testing.
HEOS speakers currently only work as a DLNA player which is not ideal.

1 Like

Just to follow-up that there is now a poll on which smart speakers / media players to integrate into Music Assistant. Feel free to vote for HEOS if you’re interested :slight_smile: Player Provider Poll #1 · music-assistant · Discussion #1200 · GitHub

That looks interesting. Was wondering how to deeply integrate my 2 Denon AVRs into Home Assistant. Do you have a sleek UI to make use of this code?

Hi all,
I have a Marantz SR5015, and wonder if it is possible to set a speaker preset using home assistant. I would love to have a quick settings tile that would switch between preset 1 and 2.

As far as I understand this you can control any attribute of an entity. Here’s the attribute list of my Denon AVR-3313

I can change the source and the sound_mode but nothing else.

I would start by looking at the attributes for your Marantz and see what’s available. Also check the doc Denon AVR Network Receivers - Home Assistant