The onkyo platform allows you to control a Onkyo, Integra and some recent Pioneer receivers from Home Assistant. Please be aware that you need to enable “Network Standby” for this integration to work in your Hardware.


To add an Onkyo or Pioneer receiver to your installation, add the following to your configuration.yaml file:

# Example configuration.yaml entry
  - platform: onkyo
    name: receiver
      pc: "HTPC"

If your receiver has second or third zone’s available, they are displayed as additional media players with the same functionality as the main zone.

Configuration Variables

host string (Optional)

IP address of the device. Example: If not specified, the platform will load any discovered receivers.

name string (Optional)

Name of the device. (Required if host is specified)

max_volume integer (Optional, default: 100)

Maximum volume as a percentage. Often the maximum volume of the receiver is far too loud. Setting this will set Home Assistant’s 100% volume to be this setting on the amp. i.e., if you set this to 50% when you set Home Assistant to be 100% then your receiver will be set to 50% of its maximum volume.

receiver_max_volume integer (Optional, default: 80)

The maximum volume of the receiver. For older Onkyo receivers this was 80, newer Onkyo receivers use 200.

sources list (Optional)

A list of mappings from source to source name. Valid sources can be found below. A default list will be used if no source mapping is specified.

List of source names:

  • video1
  • video2
  • video3
  • video4
  • video5
  • video6
  • video7
  • dvd
  • bd-dvd
  • tape1
  • tv-tape
  • tape2
  • phono
  • cd
  • tv-cd
  • fm
  • am
  • tuner
  • dlna
  • internet-radio
  • usb
  • network
  • universal-port
  • multi-ch
  • xm
  • sirius

If your source is not listed above, and you want to figure out how to format that source name so you can map its entry, you can use the onkyo-eiscp Python module to discover the exact naming needed. First, change your receiver’s source to the one that you need to define, and then run:

onkyo --host source=query

If this returns multiple, comma-separated values, use the first one. For example, if dvd,bd,dvd is returned, use dvd.

To find your receivers max volume use the onkyo-eiscp Python module set the receiver to its maximum volume (don’t do this whilst playing something!) and run:

onkyo --host volume=query
unknown-model: master-volume = 191

Service onkyo_select_hdmi_output

Changes HDMI output of your receiver

Service data attribute Optional Description
entity_id no String or list of a single entity_id that will change output.
hdmi_output no The desired output code.

Accepted values are: ‘no’, ‘analog’, ‘yes’, ‘out’, ‘out-sub’, ‘sub’, ‘hdbaset’, ‘both’, ‘up’ which one to use seems to vary depending on model so you will have to try them out. ( For model TX-NR676E it seems to be ‘out’ for main, ‘out-sub’ for sub, and ‘sub’ for both )

Example play_media script

The play_media function can be used in script to play radio station by preset number. Not working for NET radio.

# Example play_media script
    alias: "Radio 1"
      - service: media_player.turn_on
          entity_id: media_player.onkyo
      - service: media_player.play_media
          entity_id: media_player.onkyo
          media_content_type: "radio"
          media_content_id: "1"

Example onkyo_select_hdmi_output script

# Example onkyo_select_hdmi_output script
    alias: "Hdmi out projector"
      - service: media_player.onkyo_select_hdmi_output
          entity_id: media_player.onkyo
          hdmi_output: out-sub