Controlling a Denon AVR

Just to give some pointers for using the input from the node:

If you ask for the used DAB channel, the node will read the following:

> {"payload":{"event":"raw","data":[84,80,65,78,48,50,13]},"_msgid":"3364990b.711646"}

If you then link a function node to it with the following code:

msg.payload = msg.payload.data.toString();
msg.payload = msg.payload.replace(/\r/g,"");
return msg;

The output of that function node will be:

{"payload":"TPAN02","_msgid":"b645b255.5e441"}

You then know that the DAB channel is set to the second channel.
The reason the function node also has this replace functionality is that there is a carriage return “\r” at the end of TPAN02 that we need to remove to be able to work with it :slight_smile:
Obviously the DAB channel is just an example.

This input node will by the way also give feedback even if you don’t ask for it. So if you for example you use the remote control or denonavr to mute your receiver, this input node will return “MUON” as msg.payload.

1 Like

Thanks for that information.
I’ve been using the other Denon palette in Node Red, but it doesn’t provide the Denon’s reply.
Going to try this palette instead, and see how it works.

Randy

Below is a panel I made to control my Denon AVR, should anyone be interested.

Some notes:

  • It makes use of the Custom Button Card.
  • Replace my entity id “media_player.denon_avr_2113” with your own AVR entity.
  • The buttons only cover functions I want to use in HA, mainly internet radio. A lot of stuff is missing, like DVD controls etc. Change/add buttons as you need, using the API commands from this list .
  • I use scripts to help with some of the functionality. The definitions are given below.
  • Change the colors to match your scheme.



type: vertical-stack
cards:
  - type: horizontal-stack
    cards:
      - type: 'custom:button-card'
        entity: media_player.denon_avr_2113
        name: Denon
        color_type: label-card
        show_state: true
        icon: |
          [[[
            if (entity.state == 'off')
              return "mdi:amplifier-off"
            else if (entity.attributes.source == 'TV AUDIO')
              return "mdi:television-classic";
            else if (entity.attributes.source == 'DVD')
              return "mdi:music-circle-outline";
            else if (entity.attributes.media_title == 'AirPlay')
              return "mdi:cast-audio"
            else if (entity.state == 'playing' || entity.attributes.source == 'FM')
              return "mdi:radio"
            else
              return "mdi:cast-connected";
          ]]]
        size: 90%
        styles:
          card:
            - height: 175px
            - border-radius: 5%
            - background-image: >-
                linear-gradient(90deg, rgba(13, 44, 99,1) 0%, rgba(9, 34, 79,1)
                7%, rgba(81, 132, 224,1) 100%)
            - padding: 4%
            - padding-left: 6%
            - color: lime
            - font-size: 13px
            - text-shadow: 1px 1px 5px black
          icon:
            - color: lightgrey
            - margin-top: 1%
            - padding: 0px 10px 0px 0px
          img_cell:
            - justify-content: end
            - align-items: start
          name:
            - font-weight: bold
            - color: white
            - font-size: 33px
            - padding: 10px 0px 5px 170px
          state:
            - font-weight: bold
            - font-size: 16px
            - justify-self: middle
            - padding: 0px 10px
          grid:
            - position: relative
            - grid-template-areas: >-
                "n . i" "volume . i" "muted . i" "source . i" "title title
                title" "artist artist s" 
            - grid-template-columns: 1fr 1fr 1fr
            - grid-template-rows: 1fr min-content min-content min-content min-content
          custom_fields:
            volume:
              - padding-top: 15px
              - padding-bottom: 2px
              - align-self: middle
              - justify-self: start
            muted:
              - padding-bottom: 2px
              - align-self: middle
              - justify-self: start
            source:
              - padding-bottom: 2px
              - align-self: middle
              - justify-self: start
            title:
              - padding-bottom: 2px
              - align-self: middle
              - justify-self: start
            artist:
              - align-self: middle
              - justify-self: start
        custom_fields:
          volume: |
            [[[
              if ( entity.state == 'off' )
                return ``
              else 
                return `<ha-icon
                icon="mdi:volume-high"
                style="width: 18px; height: 17px; color: deepskyblue;">
                </ha-icon><span> &nbsp; Volume: &nbsp;<span style="color: var(--text-color-sensor);">${Math.round((states['media_player.denon_avr_2113'].attributes.volume_level)*100)}</span></span>`
            ]]]
          muted: |
            [[[
              if ( entity.state == 'off' )
                return ``
              else 
                return `<ha-icon
                icon="mdi:volume-off"
                style="width: 18px; height: 17px; color: deepskyblue;">
                </ha-icon><span> &nbsp; Muted: &nbsp; &nbsp;<span style="color: var(--text-color-sensor);">${states['media_player.denon_avr_2113'].attributes.is_volume_muted}</span></span>`
            ]]]
          source: |
            [[[
              if ( entity.state == 'off' )
                return ``
              else 
                return `<ha-icon
                icon="mdi:dlna"
                style="width: 18px; height: 17px; color: deepskyblue;">
                </ha-icon><span> &nbsp; Source: &nbsp; <span style="color: var(--text-color-sensor);">${states['media_player.denon_avr_2113'].attributes.source} </span></span>`
            ]]]
          title: |
            [[[
              if ( entity.state == 'off' || !(entity.attributes.title) )
                return ``
              else if ( entity.state == 'playing' || (entity.state == 'on' && entity.attributes.source != 'TV AUDIO') )
                return `<ha-icon
                icon="mdi:form-textbox"
                style="width: 18px; height: 17px; color: deepskyblue;">
                </ha-icon><span> &nbsp; Title: &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: var(--text-color-sensor);">${states['media_player.denon_avr_2113'].attributes.media_title} </span></span>`
              else 
                return ``
            ]]]
          artist: |
            [[[
              if ( entity.state == 'off' || !(entity.attributes.media_artist) )
                return ``
              else
                return `<ha-icon
                icon="mdi:account-voice"
                style="width: 18px; height: 17px; color: deepskyblue;">
                </ha-icon><span> &nbsp; Artist: &nbsp; &nbsp; &nbsp;<span style="color: var(--text-color-sensor);">${states['media_player.denon_avr_2113'].attributes.media_artist} </span></span>`
            ]]]
        tap_action:
          action: call-service
          service: denonavr.get_command
          service_data:
            entity_id: media_player.denon_avr_2113
            command: /goform/formiPhoneAppDirect.xml?MV15
  - type: horizontal-stack
    cards:
      - type: 'custom:button-card'
        color_type: blank-card
      - type: 'custom:button-card'
        entity: media_player.denon_avr_2113
        size: 25px
        name: power
        show_name: false
        show_state: false
        color_type: card
        color: 'rgb(45, 79, 140)'
        state:
          - value: 'off'
            icon: 'mdi:power'
            color: 'rgb(109, 117, 138)'
            styles:
              icon:
                - color: 'rgb(230, 235, 148)'
            tap_action:
              action: call-service
              service: denonavr.get_command
              service_data:
                entity_id: media_player.denon_avr_2113
                command: /goform/formiPhoneAppDirect.xml?MUOFF
          - operator: default
            icon: 'mdi:power-settings'
            styles:
              icon:
                - color: yellow
            tap_action:
              action: call-service
              service: denonavr.get_command
              service_data:
                entity_id: media_player.denon_avr_2113
                command: /goform/formiPhoneAppDirect.xml?MUON
      - type: 'custom:button-card'
        color_type: blank-card
      - type: 'custom:button-card'
        show_name: false
        icon: |
          [[[
            if ( states['media_player.denon_avr_2113'].attributes.is_volume_muted ) return 'mdi:volume-off';
            else return 'mdi:volume-high';
          ]]]
        size: 25px
        color_type: card
        color: 'rgb(45, 79, 140)'
        tap_action:
          action: call-service
          service: script.denon_mute_unmute
      - type: 'custom:button-card'
        icon: 'mdi:volume-minus'
        size: 25px
        color_type: card
        color: 'rgb(45, 79, 140)'
        tap_action:
          action: call-service
          service: denonavr.get_command
          service_data:
            entity_id: media_player.denon_avr_2113
            command: /goform/formiPhoneAppDirect.xml?MVDOWN
        double_tap_action:
          action: call-service
          service: script.denon_vol_decrease
          service_data:
            stepcount: 10
      - type: 'custom:button-card'
        icon: 'mdi:volume-plus'
        size: 25px
        color_type: card
        color: 'rgb(45, 79, 140)'
        tap_action:
          action: call-service
          service: denonavr.get_command
          service_data:
            entity_id: media_player.denon_avr_2113
            command: /goform/formiPhoneAppDirect.xml?MVUP
        double_tap_action:
          action: call-service
          service: script.denon_vol_increase
          service_data:
            stepcount: 10
      - type: 'custom:button-card'
        color_type: blank-card
  - type: horizontal-stack
    cards:
      - type: 'custom:button-card'
        name: 10
        color_type: card
        color: 'rgb(40, 69, 120)'
        styles:
          name:
            - font-size: 16px
            - padding: 2px 0px
        tap_action:
          action: call-service
          service: denonavr.get_command
          service_data:
            entity_id: media_player.denon_avr_2113
            command: /goform/formiPhoneAppDirect.xml?MV10
      - type: 'custom:button-card'
        name: 15
        color_type: card
        color: 'rgb(40, 69, 120)'
        styles:
          name:
            - font-size: 16px
            - padding: 2px 0px
        tap_action:
          action: call-service
          service: denonavr.get_command
          service_data:
            entity_id: media_player.denon_avr_2113
            command: /goform/formiPhoneAppDirect.xml?MV15
      - type: 'custom:button-card'
        name: 20
        color_type: card
        color: 'rgb(40, 69, 120)'
        styles:
          name:
            - font-size: 16px
            - padding: 2px 0px
        tap_action:
          action: call-service
          service: denonavr.get_command
          service_data:
            entity_id: media_player.denon_avr_2113
            command: /goform/formiPhoneAppDirect.xml?MV20
      - type: 'custom:button-card'
        name: 25
        color_type: card
        color: 'rgb(40, 69, 120)'
        styles:
          name:
            - font-size: 16px
            - padding: 2px 0px
        tap_action:
          action: call-service
          service: denonavr.get_command
          service_data:
            entity_id: media_player.denon_avr_2113
            command: /goform/formiPhoneAppDirect.xml?MV25
      - type: 'custom:button-card'
        name: 28
        color_type: card
        color: 'rgb(40, 69, 120)'
        styles:
          name:
            - font-size: 16px
            - padding: 2px 0px
        tap_action:
          action: call-service
          service: denonavr.get_command
          service_data:
            entity_id: media_player.denon_avr_2113
            command: /goform/formiPhoneAppDirect.xml?MV28
  - type: horizontal-stack
    cards:
      - type: 'custom:button-card'
        icon: 'mdi:arrow-up-thick'
        size: 22px
        color_type: card
        color: 'rgb(35, 58, 99)'
        tap_action:
          action: call-service
          service: denonavr.get_command
          service_data:
            entity_id: media_player.denon_avr_2113
            command: /goform/formiPhoneAppDirect.xml?MNCUP
      - type: 'custom:button-card'
        icon: 'mdi:arrow-down-thick'
        size: 22px
        color_type: card
        color: 'rgb(35, 58, 99)'
        tap_action:
          action: call-service
          service: denonavr.get_command
          service_data:
            entity_id: media_player.denon_avr_2113
            command: /goform/formiPhoneAppDirect.xml?MNCDN
      - type: 'custom:button-card'
        icon: 'mdi:arrow-left-thick'
        size: 22px
        color_type: card
        color: 'rgb(35, 58, 99)'
        tap_action:
          action: call-service
          service: denonavr.get_command
          service_data:
            entity_id: media_player.denon_avr_2113
            command: /goform/formiPhoneAppDirect.xml?MNCLT
      - type: 'custom:button-card'
        icon: 'mdi:arrow-right-thick'
        size: 22px
        color_type: card
        color: 'rgb(35, 58, 99)'
        tap_action:
          action: call-service
          service: denonavr.get_command
          service_data:
            entity_id: media_player.denon_avr_2113
            command: /goform/formiPhoneAppDirect.xml?MNCRT
      - type: 'custom:button-card'
        name: Enter
        tooltip: Enter
        Xicon: 'mdi:subdirectory-arrow-right'
        icon: 'mdi:arrow-right-bold-outline'
        size: 22px
        color_type: card
        color: 'rgb(35, 58, 99)'
        show_name: false
        styles:
          name:
            - font-size: 14px
            - padding: 1px 0px
        tap_action:
          action: call-service
          service: denonavr.get_command
          service_data:
            entity_id: media_player.denon_avr_2113
            command: /goform/formiPhoneAppDirect.xml?MNENT
  - type: horizontal-stack
    cards:
      - type: 'custom:button-card'
        name: Fav
        color_type: card
        color: 'rgb(50, 52, 97)'
        styles:
          name:
            - font-size: 16px
            - padding: 3px 0px
        tap_action:
          action: call-service
          service: denonavr.get_command
          service_data:
            entity_id: media_player.denon_avr_2113
            command: /goform/formiPhoneAppDirect.xml?SIFVP
      - type: 'custom:button-card'
        name: iFav
        color_type: card
        color: 'rgb(50, 52, 97)'
        styles:
          name:
            - font-size: 16px
            - padding: 3px 0px
        tap_action:
          action: call-service
          service: denonavr.get_command
          service_data:
            entity_id: media_player.denon_avr_2113
            command: /goform/formiPhoneAppDirect.xml?SIFAVORITES
      - type: 'custom:button-card'
        name: iRadio
        color_type: card
        color: 'rgb(50, 52, 97)'
        styles:
          name:
            - font-size: 16px
            - padding: 3px 0px
        tap_action:
          action: call-service
          service: denonavr.get_command
          service_data:
            entity_id: media_player.denon_avr_2113
            command: /goform/formiPhoneAppDirect.xml?SIIRADIO
      - type: 'custom:button-card'
        name: Recent
        color_type: card
        color: 'rgb(50, 52, 97)'
        styles:
          name:
            - font-size: 16px
            - padding: 3px 0px
        tap_action:
          action: call-service
          service: denonavr.get_command
          service_data:
            entity_id: media_player.denon_avr_2113
            command: /goform/formiPhoneAppDirect.xml?SIIRP
      - type: 'custom:button-card'
        name: TV
        color_type: card
        color: 'rgb(50, 52, 97)'
        styles:
          name:
            - font-size: 16px
            - padding: 3px 0px
        tap_action:
          action: call-service
          service: denonavr.get_command
          service_data:
            entity_id: media_player.denon_avr_2113
            command: /goform/formiPhoneAppDirect.xml?SITV
      - type: 'custom:button-card'
        name: DVD
        color_type: card
        color: 'rgb(50, 52, 97)'
        styles:
          name:
            - font-size: 16px
            - padding: 3px 0px
        tap_action:
          action: call-service
          service: denonavr.get_command
          service_data:
            entity_id: media_player.denon_avr_2113
            command: /goform/formiPhoneAppDirect.xml?SIDVD
      - type: 'custom:button-card'
        name: Tuner
        color_type: card
        color: 'rgb(50, 52, 97)'
        styles:
          name:
            - font-size: 16px
            - padding: 3px 0px
        tap_action:
          action: call-service
          service: denonavr.get_command
          service_data:
            entity_id: media_player.denon_avr_2113
            command: /goform/formiPhoneAppDirect.xml?SITUNER
  - type: horizontal-stack
    cards:
      - type: 'custom:button-card'
        name: Sky
        tooltip: Pop
        color_type: card
        color: 'rgb(30, 45, 71)'
        styles:
          name:
            - font-size: 16px
            - padding: 2px 0px
        tap_action:
          action: call-service
          service: script.denon_favorite_station
          service_data:
            stepcount: 1
      - type: 'custom:button-card'
        name: 538
        tooltip: Pop
        color_type: card
        color: 'rgb(30, 45, 71)'
        styles:
          name:
            - font-size: 16px
            - padding: 2px 0px
        tap_action:
          action: call-service
          service: script.denon_favorite_station
          service_data:
            stepcount: 2
      - type: 'custom:button-card'
        name: 100%NL
        tooltip: Dutch
        color_type: card
        color: 'rgb(30, 45, 71)'
        styles:
          name:
            - font-size: 16px
            - padding: 2px 0px
        tap_action:
          action: call-service
          service: script.denon_favorite_station
          service_data:
            stepcount: 3
      - type: 'custom:button-card'
        name: SLAM
        tooltip: Pop
        color_type: card
        color: 'rgb(30, 45, 71)'
        styles:
          name:
            - font-size: 16px
            - padding: 2px 0px
        tap_action:
          action: call-service
          service: script.denon_favorite_station
          service_data:
            stepcount: 4
  - type: horizontal-stack
    cards:
      - type: 'custom:button-card'
        name: SkyL
        tooltip: Lounge
        color_type: card
        color: 'rgb(30, 45, 71)'
        styles:
          name:
            - font-size: 16px
            - padding: 2px 0px
        tap_action:
          action: call-service
          service: script.denon_favorite_station
          service_data:
            stepcount: 5
      - type: 'custom:button-card'
        name: Arrow Rock
        tooltip: Rock
        color_type: card
        color: 'rgb(30, 45, 71)'
        styles:
          name:
            - font-size: 16px
            - padding: 2px 0px
        tap_action:
          action: call-service
          service: script.denon_favorite_station
          service_data:
            stepcount: 6
      - type: 'custom:button-card'
        name: Splash
        tooltip: Lounge
        color_type: card
        color: 'rgb(30, 45, 71)'
        styles:
          name:
            - font-size: 16px
            - padding: 2px 0px
        tap_action:
          action: call-service
          service: script.denon_favorite_station
          service_data:
            stepcount: 7
      - type: 'custom:button-card'
        name: Antenne
        tooltip: 80s Hits
        color_type: card
        color: 'rgb(30, 45, 71)'
        styles:
          name:
            - font-size: 16px
            - padding: 2px 0px
        tap_action:
          action: call-service
          service: script.denon_favorite_station
          service_data:
            stepcount: 8
  - type: horizontal-stack
    cards:
      - type: 'custom:button-card'
        name: Radio32
        tooltip: Oldies
        color_type: card
        color: 'rgb(30, 45, 71)'
        styles:
          name:
            - font-size: 16px
            - padding: 2px 0px
        tap_action:
          action: call-service
          service: script.denon_favorite_station
          service_data:
            stepcount: 9
      - type: 'custom:button-card'
        name: RTL
        tooltip: Pop
        color_type: card
        color: 'rgb(30, 45, 71)'
        styles:
          name:
            - font-size: 16px
            - padding: 2px 0px
        tap_action:
          action: call-service
          service: script.denon_favorite_station
          service_data:
            stepcount: 10
      - type: 'custom:button-card'
        name: 1Live
        tooltip: Pop
        color_type: card
        color: 'rgb(30, 45, 71)'
        styles:
          name:
            - font-size: 16px
            - padding: 2px 0px
        tap_action:
          action: call-service
          service: script.denon_favorite_station
          service_data:
            stepcount: 11
      - type: 'custom:button-card'
        name: Radio2
        tooltip: Dutch
        color_type: card
        color: 'rgb(30, 45, 71)'
        styles:
          name:
            - font-size: 16px
            - padding: 2px 0px
        tap_action:
          action: call-service
          service: script.denon_favorite_station
          service_data:
            stepcount: 12
  - type: horizontal-stack
    cards:
      - type: 'custom:button-card'
        color_type: blank-card
      - type: 'custom:button-card'
        name: 100% Classic
        tooltip: Cliassic
        color_type: card
        color: 'rgb(30, 45, 71)'
        styles:
          card:
            - height: 34px
          name:
            - font-size: 16px
            - padding: 2px 0px
        tap_action:
          action: call-service
          service: script.denon_favorite_station
          service_data:
            stepcount: 13
      - type: 'custom:button-card'
        color_type: blank-card
  - type: 'custom:button-card'
    color_type: label
    color: var(--primary-color)
    styles:
      card:
        - border-radius: 80%;
        - height: 20px
        - background-image: >-
            linear-gradient(90deg, rgba(13, 44, 99,1) 0%, rgba(9, 34, 79,1) 7%,
            rgba(81, 132, 224,1) 100%)


Below are the scripts used in the panel.

  • mute / unmute the AVR, based on its current status.
  • increase- and decrease volume. Double-click volume up/down will repeatedly send the volume command to the AVR 10x (effectively 5 stops, as the AVR changes 0.5 at a time).
  • selecting a station from the Favorites list. I could not find a command to directly select a specific Favorite station, so I start from the top each time and go down in the list for a specified count to find the desired position in the list. Slow, but it works.

  # Denon AVR - Mute OR Unmute sound (toggle)
  denon_mute_unmute:
    description: Toggle Denon Mute/Unmute status
    sequence:
      - choose:
        # IF Denon is currently MUTED, then unmute
        - conditions: "{{ state_attr('media_player.denon_avr_2113', 'is_volume_muted') }}"
          sequence:
            - service: denonavr.get_command
              data:
                entity_id: media_player.denon_avr_2113
                command: /goform/formiPhoneAppDirect.xml?MUOFF
        # IF Denon is currently UNMUTED, then mute (Note: few seconds delay in state update after change)
        default:
          - service: denonavr.get_command
            data:
              entity_id: media_player.denon_avr_2113
              command: /goform/formiPhoneAppDirect.xml?MUON

  # Denon AVR - Increase the volume by nr of steps provided by parameter
  denon_vol_increase:
    description: Increase Denon volume by specified nr of steps
    fields: 
      stepcount:
        description: Number of UP steps
    variables:
      stepcount: "{{ stepcount | default(2) }}"
    sequence:
      - repeat:
          count: "{{ stepcount }}"
          sequence:
            - delay: 0.1
            - service: denonavr.get_command
              data:
                entity_id: media_player.denon_avr_2113
                command: /goform/formiPhoneAppDirect.xml?MVUP


  # Denon AVR - Decrease the volume by nr of steps provided by parameter
  denon_vol_decrease:
    description: Decrease Denon volume by specified nr of steps
    fields: 
      stepcount:
        description: Number of DOWN steps
    variables:
      stepcount: "{{ stepcount | default(2) }}"
    sequence:
      - repeat:
          count: "{{ stepcount }}"
          sequence:
            - delay: 0.1
            - service: denonavr.get_command
              data:
                entity_id: media_player.denon_avr_2113
                command: /goform/formiPhoneAppDirect.xml?MVDOWN

  # Denon AVR - Favorites + nr of steps down
  denon_favorite_station:
    description: Denon Favorite Station
    fields: 
      stepcount:
        description: Number of DOWN steps
    variables:
      stepcount: "{{ stepcount | default(0) }}"
    sequence:
      - service: denonavr.get_command
        data:
          entity_id: media_player.denon_avr_2113
          command: /goform/formiPhoneAppDirect.xml?SIFAVORITES
      - delay: 2.5
      - repeat:
          count: "{{ stepcount }}"
          sequence:
            - delay: 0.3
            - service: denonavr.get_command
              data:
                entity_id: media_player.denon_avr_2113
                command: /goform/formiPhoneAppDirect.xml?MNCDN
      - delay: 1.5
      - service: denonavr.get_command
        data:
          entity_id: media_player.denon_avr_2113
          command: /goform/formiPhoneAppDirect.xml?MNENT

10 Likes

Hi,

Does anyone have experience with Denon and Google assistant? I’m happy with the app control i currently have, but i would like to add voice control to my setup. All my light are fine, i can play and pauze, but i can’t change source. For example play spotify or play radio.

type: vertical-stack
cards:
  - type: entities
    entities:
      - type: 'custom:mini-media-player'
        entity: media_player.denon_avr_x2400h_2
        name: Woonkamer
        group: true
        source: icon
        info: short
      - type: 'custom:mini-media-player'
        entity: media_player.heos_3_l
        name: Eetkamer
        group: true
        hide:
          power: true
          source: true
        shortcuts:
          buttons:
            - id: 1
              name: Q-Music
              type: favorite
            - id: 2
              name: NPO 1
              type: favorite
            - id: 3
              name: NPO 2
              type: favorite
          columns: 3
  - type: 'custom:spotify-card'
    limit: 4
    spotify_entity: media_player.spotify_fschade
    account: default
    playlist_type: default
    default_device: Denon + Eetkamer
    hide_chromecast_devices: true
    always_play_random_song: true
    display_style: list
    hide_playback_controls: true
    hide_connect_devices: true

2 Likes

Also have an interest in it

Seems the link to the commands xlsx no longer works.
Googled for it, found this updated list: https://www.denon.com/-/media/files/documentmaster/denonna/fy21avr_denon_protocol_v02_04062020.xlsx

-edit: I downloaded the xlsx so I can use it for as long as I own my Denon :wink:

2 Likes

Anybody experience with Denon AVR-X2700H DAB?

If I go to my device
http://192.168.4.23
I’m redirected to
https://192.168.4.23:10443/‘

I tried to go to
https://192.168.4.23:10443/goform/formiPhoneAppDirect.xml?TPAN01’
but this does not seems to work.

I also tried other combinations of http/https and ports, but no response either…

Also
http://192.168.4.23/goform/Deviceinfo.xml’
gives an error…
What am I doing wrong?
Has the AVR-X2700H another API?

Any help is appreciated!

Kind regards,
Bart

Aaaaaarghhhhh

It’s listening on port 8080

http://192.168.4.23:8080/goform/Deviceinfo.xml

works!

Grtz
B

1 Like

Great that you worked it out :grinning:

Not sure if this is what you want, but within automations you don’t need the full URL and port, if you have setup the Denon integration in HA. It will provide the entities you can reach directly from HA. My automation to set the AVR to the radio tuner contains this…

data:
  command: /goform/formiPhoneAppDirect.xml?SITUNER
entity_id: media_player.denon_avr_x1600h_2
service: denonavr.get_command

edit: I’m on Denon AVR-X1600H DAB

1 Like

Hi @Maverick ,
Relative url’s are perfect.
But I’m on holiday now, so remotely I couldn’t check the results of the script (changing DAB channel), so I was just fooling around with the api over my VPN.
I could manage to power ON/STANDBY with your samples provided. I suppose changing DAB preset will work than also…

Thanx for follow-up.
When @home, I definitely will try this again.

Grtz
B

1 Like

Hi there,
i realy like the lay-out of this and trying to use it but, when i copy/paste it into my custom card i have got lots of errors like

Configuration errors detected:
bad indentation of a mapping entry (2:9)

1 | - type: ‘custom:button-card’
2 | entity: media_player.denon_avr_x …
-------------^
3 | name: Denon
4 | color_type: label-card

i have changed the entity name but still not working.
any idea how to solve this or… what am i doing wrong here.
super newby

This all looks very interesting, Just purchased an AVR x2800. BTW I have all the discrete Pronto IR codes if anyone needs them

I can see all the services available i.e. volume, source ect.

I would like to change the display brightness, i.e. if the amp comes on during the day set the display to be bright, but after sunset set to dim.

Anyone help with this?

Regards, Dave

Hi all, just got a Denon AVR and am looking into how I can control it with HA; useful thread!

Just wondering if anyone has managed to control the Bluetooth transmitter? I’m trying to get it so I can only play sound through the Bluetooth headphones late at night say, when I might be playing a game or something and not want to wake the family.

Being able to automate that would be great, or even having a toggle in the interface would mean I don’t need to find the remote and open the cabinet to use it.

Any pointers would be gratefully received!

Hi Everybody,

In the notes section of the documentation Denon AVR Network Receivers, the following statement exists:

" * An additional option for the control of Denon AVR receivers with a built-in web server is using the HTTP interface with denonavr platform."

Did anybody try this? How can I use the HTTP interface with denonavr platform? Any ideas?

See above.
Web interface is available at port 8080

I.e.

http://192.168.4.23:8080

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: