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
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)
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.
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).
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?