Onkyo integration/shell commands

Until recently, I was able to control which of my HDMI outputs my Onkyo AV receiver was using, and also switch on/off the TV that’s connected to the ‘main’ HDMI out via CEC. Both of these things were achieved using shell commands. There is a service which is meant to set the HDMI out, but I can’t get this to work (other commands work fine). Since the last couple of versions (sorry, I don’t exactly know which one), this has not worked. If I call my shell command through developer tools, I get this:

stdout: “”
stderr: “/bin/sh: /usr/local/bin/onkyo: not found”
returncode: 127

So looks like something’s missing - any ideas please?

Core
2024.7.3
Supervisor
2024.06.2
Operating System
12.4
Frontend
20240710.0

This is not a supported use case. There is no “shell command” anymore.

As for the service changing the HDMI output, it should work. What exactly is the problem with it? Any errors in the log?

No shell command? There’s nothing to that effect here: Shell Command - Home Assistant

No, no errors in the log - nothing seems to happen at all.

EDIT: Sorry, I think you meant no shell commands for this particular integration, my bad. Shame, because even if the onkyo_select_hdmi_output worked, presumably I still lose the functionality of being able to control my TV via CEC (RIHD)

FYI, the receiver in question is a TX-NR616

Yes, I meant specifically for this integration.

For the onkyo_select_hdmi_output service you might consider enabling the debug logging, that should tell you more.

Could you tell me how I do that, please?

Also, is there some way I can upload the Onkyo EISCP repo into HA and run my shell commands from there? I’d love to have the functionality back that I’ve lost.

Hey Artur, could still use some help here if you would be so kind, thank you.

Go to the integrations page, and then to Onkyo and enable debug logging.

No, there isn’t any supported way to do that.
If you need some additional functionality, it is best to make a feature request and patiently wait for it to be added to the official integration.

Thanks for your help - unfortunately I don’t see an Onkyo integration in the Integrations page. If I try to add the integration, it just tells me to add via Configuration.YAML (which is how I added it originally).

You need to be running the latest Home Assistant version and have the integration properly configured (via YAML).

Thanks again for coming back to me. I didn’t realise there’d been a change to how integrations not configured in the GUI now showed up in the GUI.

I did as you suggested. Here’s what I found: If I trigger the script that leverages the ‘onkyo_select_hdmi_output’ service, I get absolutely nothing in the logs after enabling debug logging. I did some more playing around, and I can see entries in the log if I issue a command to turn up the volume, for example, or if I purposefully specify an invalid value for HDMI out, but absolutely nothing at all is returned if I specify a valid value.

Here are the relevant lines from the debug log - note that the first entries are when I enter an invalid value - there are no entries for when I enter a valid value:

2024-09-02 11:51:51.184 ERROR (MainThread) [homeassistant.helpers.script.websocket_api_script] websocket_api script: Error executing script. Invalid data for call_service at pos 1: value must be one of [‘analog’, ‘both’, ‘hdbaset’, ‘no’, ‘out’, ‘out-sub’, ‘sub’, ‘up’, ‘yes’] for dictionary value @ data[‘hdmi_output’]
2024-09-02 11:51:51.185 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [281471573133200] Error handling message: value must be one of [‘analog’, ‘both’, ‘hdbaset’, ‘no’, ‘out’, ‘out-sub’, ‘sub’, ‘up’, ‘yes’] for dictionary value @ data[‘hdmi_output’]. Got None (invalid_format) Ben from 192.168.1.79 (Mozilla/5.0 (Windows NT
2024-09-02 11:55:11.340 DEBUG (MainThread) [pyeiscp.protocol] > main.volume=level-up
2024-09-02 11:55:11.760 DEBUG (MainThread) [pyeiscp.protocol] Received 26 bytes from AVR: b’ISCP\x00\x00\x00\x10\x00\x00\x00\n\x01\x00\x00\x00!1MVL2C\x1a\r\n’
2024-09-02 11:55:11.761 DEBUG (MainThread) [homeassistant.components.onkyo.media_player] Received update callback from Cabin AV Receiver: (‘main’, ‘master-volume’, 44)
2024-09-02 11:55:12.975 DEBUG (MainThread) [pyeiscp.protocol] > main.volume=level-down
2024-09-02 11:55:13.264 DEBUG (MainThread) [pyeiscp.protocol] Received 26 bytes from AVR: b’ISCP\x00\x00\x00\x10\x00\x00\x00\n\x01\x00\x00\x00!1MVL2B\x1a\r\n’
2024-09-02 11:55:13.266 DEBUG (MainThread) [homeassistant.components.onkyo.media_player] Received update callback from Cabin AV Receiver: (‘main’, ‘master-volume’, 43)

EDIT - I’ve just realised it might be helpful to let you know that I have two Onkyo AVRs (TX-NR838 and TX-NR616), and I use the Onkyo integration on both. Could that be related?

Show me how you call that service.

Here’s my script (created via GUI):

'1645543797619':
  alias: Cabin HDMI Out Sub
  sequence:
  - service: media_player.onkyo_select_hdmi_output
    data:
      entity_id: media_player.cabin_av_receiver
      hdmi_output: out-sub
  mode: single

Note that I’ve tried various options for the value of ‘hdmi_output’.

I’ve also tried this through ‘services’ - no change.

Are you sure that you’re using correct entity_id?

Yep.

This should hopefully be fixed in the upcoming 2024.9 version.

This should hopefully be fixed in the upcoming 2024.9 version.

Thank you, appreciate it.

Just to say that this is indeed now working fine as of 2024.9. Thanks so much for your help.

1 Like