miracle2k / onkyo-eiscp

Control Onkyo A/V receivers over the network; usuable as a script, or as a Python library.
MIT License
466 stars 110 forks source link

Much newer command file (attached) #148

Open mitchcapper opened 1 year ago

mitchcapper commented 1 year ago

Here is a much more updated version of the protocol excel file. I was recently updating the c# lib https://github.com/miracle2k/onkyo-eiscp-dotnet/pull/1 and figured I would find some of the missing commands. ISCP_AVR_146.xlsx

This includes the commands to fix things like #145 #121 #76

nickpdawson commented 1 year ago

Any info on how to get the TX-NR6100 into AirPlay mode?

mitchcapper commented 1 year ago

Did you try SLI2D? image otherwise maybe APS01 image

nickpdawson commented 1 year ago

Thanks for the suggestions! SLI2D is like a lot of the other commands I've tied, It returns an NA. APS01 crashes.

What I noting is that I can get the zone into 'net' as a source, and when I look at the Onkyo App that pulls up a page of net source options like Tidal, USB, Airplay, Bluetooth, etc.

And I can switch to bluetooth discretely.

But I dont seem to be able to activate airplay directly.

╭─administrator at tyro in ~
╰─○ ./.local/bin/onkyo SLI2D  -v --host=10.5.19.100
sending to TX-NR6100: SLI2D
TX-NR6100: SLIN/A
╭─administrator at tyro in ~
╰─○ ./.local/bin/onkyo SLI2D  -v --host=10.5.19.100
sending to TX-NR6100: SLI2D
TX-NR6100: SLIN/A
╭─administrator at tyro in ~
╰─○ ./.local/bin/onkyo APS01  -v --host=10.5.19.100
sending to TX-NR6100: APS01
Traceback (most recent call last):
  File "/home/administrator/./.local/bin/onkyo", line 8, in <module>
    sys.exit(run())
  File "/home/administrator/.local/lib/python3.10/site-packages/eiscp/script.py", line 179, in run
    sys.exit(main() or 0)
  File "/home/administrator/.local/lib/python3.10/site-packages/eiscp/script.py", line 136, in main
    response = receiver.raw(iscp_message)
  File "/home/administrator/.local/lib/python3.10/site-packages/eiscp/core.py", line 470, in raw
    return filter_for_message(self.get, iscp_message)
  File "/home/administrator/.local/lib/python3.10/site-packages/eiscp/core.py", line 270, in filter_for_message
    raise ValueError('Timeout waiting for response.')
ValueError: Timeout waiting for response.
mitchcapper commented 1 year ago

There is a good chance if the apps cant do it the receiver may just not support it.

nickpdawson commented 1 year ago

for clarity: the app can go discretely to AirPlay

mitchcapper commented 1 year ago

few other notes 1) Make sure you are on the NET input prior to trying the airplay commands. Several other of the airplay items require NET to be first.
2) The crash/timeout is really just it ignoring the command and not replying. 3) If the app can do it then consider trying to MITM. There is no encryption between the app and the device even with a raw capture could pretty easily determine the command being used. You can do this anywhere inbetween the app and the receiver . Wireshark runs through some of the possible options if you are less familiar with this sort of thing: https://wiki.wireshark.org/CaptureSetup/Ethernet an easy solution is something like https://www.amazon.com/Ethernet-Unmanaged-Shielded-Replacement-TL-SG108E/dp/B00K4DS5KU which is a $30 switch that supports port mirroring so will dupe traffic to/from your receiver to your pc.

nickpdawson commented 1 year ago

packet capture was a good idea! I found a combination that works, but still crashes the script.

I have to move into NET with SLZ2B first, then NSV440 triggers AirPlay, but it crashes the script. Still, progress!!

╭─administrator at tyro in ~
╰─○ ./.local/bin/onkyo -v --host=10.5.19.100  SLZ2B
sending to TX-NR6100: SLZ2B
TX-NR6100: SLZ2B
╭─administrator at tyro in ~
╰─○ ./.local/bin/onkyo -v --host=10.5.19.100  NSV440
sending to TX-NR6100: NSV440
Traceback (most recent call last):
  File "/home/administrator/./.local/bin/onkyo", line 8, in <module>
    sys.exit(run())
  File "/home/administrator/.local/lib/python3.10/site-packages/eiscp/script.py", line 179, in run
    sys.exit(main() or 0)
  File "/home/administrator/.local/lib/python3.10/site-packages/eiscp/script.py", line 136, in main
    response = receiver.raw(iscp_message)
  File "/home/administrator/.local/lib/python3.10/site-packages/eiscp/core.py", line 470, in raw
    return filter_for_message(self.get, iscp_message)
  File "/home/administrator/.local/lib/python3.10/site-packages/eiscp/core.py", line 270, in filter_for_message
    raise ValueError('Timeout waiting for response.')
ValueError: Timeout waiting for response.
mitchcapper commented 1 year ago

Ah that makes sense. I saw the NSV command but missed the fact that 0 meant no acct info would be passed. image

Can you post the resposne to the command from the receiver? I believe the python version should be filtering for a message starting with NSV.

nickpdawson commented 1 year ago

happy to help, appreciate your responsiveness! I believe this is the response - consistent with the app showing all the net sources:

0000   a0 4e cf e7 49 5a 90 e2 ba cb a9 51 08 00 45 00   .N..IZ.....Q..E.
0010   02 6f 22 7d 40 00 3e 06 00 00 0a 05 13 64 0a 0f   .o"}@.>......d..
0020   01 ea ea e0 d5 d1 e0 06 fd af d2 92 16 ab 80 18   ................
0030   00 e3 fc fd 00 00 01 01 08 0a 0a 4a f8 8c 21 c7   ...........J..!.
0040   52 0a 49 53 43 50 00 00 00 10 00 00 00 0b 01 00   R.ISCP..........
0050   00 00 21 31 4e 4c 53 43 30 50 1a 0d 0a 49 53 43   ..!1NLSC0P...ISC
0060   50 00 00 00 10 00 00 00 11 01 00 00 00 21 31 4e   P............!1N
0070   4c 53 55 30 2d 54 75 6e 65 49 6e 1a 0d 0a 49 53   LSU0-TuneIn...IS
0080   43 50 00 00 00 10 00 00 00 12 01 00 00 00 21 31   CP............!1
0090   4e 4c 53 55 31 2d 50 61 6e 64 6f 72 61 1a 0d 0a   NLSU1-Pandora...
00a0   49 53 43 50 00 00 00 10 00 00 00 12 01 00 00 00   ISCP............
00b0   21 31 4e 4c 53 55 32 2d 53 70 6f 74 69 66 79 1a   !1NLSU2-Spotify.
00c0   0d 0a 49 53 43 50 00 00 00 10 00 00 00 11 01 00   ..ISCP..........
00d0   00 00 21 31 4e 4c 53 55 33 2d 44 65 65 7a 65 72   ..!1NLSU3-Deezer
00e0   1a 0d 0a 49 53 43 50 00 00 00 10 00 00 00 10 01   ...ISCP.........
00f0   00 00 00 21 31 4e 4c 53 55 34 2d 54 69 64 61 6c   ...!1NLSU4-Tidal
0100   1a 0d 0a 49 53 43 50 00 00 00 10 00 00 00 16 01   ...ISCP.........
0110   00 00 00 21 31 4e 4c 53 55 35 2d 41 6d 61 7a 6f   ...!1NLSU5-Amazo
0120   6e 4d 75 73 69 63 1a 0d 0a 49 53 43 50 00 00 00   nMusic...ISCP...
0130   10 00 00 00 1e 01 00 00 00 21 31 4e 4c 53 55 36   .........!1NLSU6
0140   2d 43 68 72 6f 6d 65 63 61 73 74 20 62 75 69 6c   -Chromecast buil
0150   74 2d 69 6e 1a 0d 0a 49 53 43 50 00 00 00 10 00   t-in...ISCP.....
0160   00 00 16 01 00 00 00 21 31 4e 4c 53 55 37 2d 44   .......!1NLSU7-D
0170   54 53 20 50 6c 61 79 2d 46 69 1a 0d 0a 49 53 43   TS Play-Fi...ISC
0180   50 00 00 00 10 00 00 00 12 01 00 00 00 21 31 4e   P............!1N
0190   4c 53 55 38 2d 41 69 72 50 6c 61 79 1a 0d 0a 49   LSU8-AirPlay...I
01a0   53 43 50 00 00 00 10 00 00 00 10 01 00 00 00 21   SCP............!
01b0   31 4e 4c 53 55 39 2d 41 6c 65 78 61 1a 0d 0a 49   1NLSU9-Alexa...I
01c0   53 43 50 00 00 00 10 00 00 00 17 01 00 00 00 21   SCP............!
01d0   31 4e 4c 53 55 30 2d 4d 75 73 69 63 20 53 65 72   1NLSU0-Music Ser
01e0   76 65 72 1a 0d 0a 49 53 43 50 00 00 00 10 00 00   ver...ISCP......
01f0   00 0e 01 00 00 00 21 31 4e 4c 53 55 31 2d 55 53   ......!1NLSU1-US
0200   42 1a 0d 0a 49 53 43 50 00 00 00 10 00 00 00 0e   B...ISCP........
0210   01 00 00 00 21 31 4e 4c 53 55 32 2d 55 53 42 1a   ....!1NLSU2-USB.
0220   0d 0a 49 53 43 50 00 00 00 10 00 00 00 15 01 00   ..ISCP..........
0230   00 00 21 31 4e 4c 53 55 33 2d 50 6c 61 79 20 51   ..!1NLSU3-Play Q
0240   75 65 75 65 1a 0d 0a 49 53 43 50 00 00 00 10 00   ueue...ISCP.....
0250   00 00 0a 01 00 00 00 21 31 53 4c 5a 32 42 1a 0d   .......!1SLZ2B..
0260   0a 49 53 43 50 00 00 00 10 00 00 00 0c 01 00 00   .ISCP...........
0270   00 21 31 4e 53 54 53 78 78 31 1a 0d 0a            .!1NSTSxx1...
patcfly commented 3 months ago

Here is a much more updated version of the protocol excel file. I was recently updating the c# lib miracle2k/onkyo-eiscp-dotnet#1 and figured I would find some of the missing commands. ISCP_AVR_146.xlsx

This includes the commands to fix things like #145 #121 #76

Where did you get this spreadsheet? I reached out to crutchfield and also onkyo support looking for a newer one. I am trying to parse that version you linked and extract the commands out.

mitchcapper commented 3 months ago

Where did you get this spreadsheet?

Oh god it was almost a year ago I don't remember I had been scouring the internet for a good while. In terms of parsing it you might have an easier time parsing either the yaml I generated from it: https://github.com/miracle2k/onkyo-eiscp-dotnet/blob/21b7f41852ad07e771e5cf141177c9d907a1f27e/generate/eiscp-commands.yaml or the CS command file from that: https://github.com/miracle2k/onkyo-eiscp-dotnet/blob/21b7f41852ad07e771e5cf141177c9d907a1f27e/onkyo-eiscp/EiscpCommands.cs

Grandma-Betty commented 3 weeks ago

Hey guys I am trying to enable/disable Super Resolution on my Onkyo TX-NR6100 via eiscp. According to the eispc instructions, the following SNR commands do exist:

  SPR:
    name: super-resolution
    description: Super Resolution
    values:
      ? - 0
        - 3
      : name: no-0-3
        description: sets Super Resolution
        models: set1
      UP:
        name: up
        description: sets Super Resolution Wrap-Around Up
        models: set1
      DOWN:
        name: down
        description: sets Super Resolution Wrap-Around DOWN
        models: set1
      QSTN:
        name: query
        description: gets The Super Resolution State
        models: set1

The SNR commands SNR1, SNR2 and SNR3 is being recognized by the Onkyp receiver, but nothing changes when I execute them. The output of the commands look like this:

1

However, the command SNRQSTN is not being recognized by the receiver: 2

According to the following sheet, the Onkyo TX-NR6100 does not support the SPR commands: https://github.com/miracle2k/onkyo-eiscp/files/11500984/ISCP_AVR_146.xlsx 3

Any ideas on how I can figure out the according command to enable/disable super resolution on my Onkyo TX-NR6100?

Thanks a bunch in advance!