Notice: This forum has been recovered from an old backup, so some content, links, and dates may be outdated. The forum is currently read-only while we restore sign-in and registration functionality. Details

If you find this forum valuable and would like to help keep it online, donations to help cover hosting and domain costs are greatly appreciated, but never expected. You can support the forum through Buy Me a Coffee or Ko-fi. Thank you for helping preserve the EventGhost community.

OnkyoISCP plugin

Do you have questions about writing plugins or scripts in Python? Meet the coders here.
abraxxa
Experienced User
Posts: 81
Joined: Wed Dec 22, 2010 9:10 pm

Re: OnkyoISCP plugin

Post by abraxxa »

The plugin doesn't use http to talk to the pre-pro, so it's a different protocol.
Maybe there is a firmware update for your pre-pro that fixes the bug.
Please attach both wireshark captures from a working oyremote and the non-working plugin communication.
blaher
Experienced User
Posts: 487
Joined: Thu Nov 17, 2011 1:27 am

Re: OnkyoISCP plugin

Post by blaher »

There actually is a later firmware version available for my pre-pro, but the only thing it adds is Audyssey Pro, which I don't have, so I don't think it's worth the risk or effort.

Attached are the two log files in a .rar.

Cheers
Sem;colon
Plugin Developer
Posts: 625
Joined: Sat Feb 18, 2012 10:51 am
Location: Germany

Re: OnkyoISCP plugin

Post by Sem;colon »

you're welcome! (even as I didn't do anything)
Well I also can't see any Problem with the plugin, your receiver uses exactly the same protocol as all the other onkyos.
Maybe you should reconsider updating your receiver, sometimes there are changes that aren't listed in the changelog.
I sadly can't give you further support for the plugin as I replaced my Onkyo TX-NR509 with an Pioneer VSX-921...
But I guess the part I added to the plugin works just fine :)
If you like my work, Image me a drink :wink:
abraxxa
Experienced User
Posts: 81
Joined: Wed Dec 22, 2010 9:10 pm

Re: OnkyoISCP plugin

Post by abraxxa »

If you do a follow tcp stream in wireshark you can see the difference:
ISCP............!1MVL2D
ISCP............!1MVLN/A.

vs.

ISCP............!1MVL2D
ISCP............!1MVL2D.

Are you really sending the same commands?
abraxxa
Experienced User
Posts: 81
Joined: Wed Dec 22, 2010 9:10 pm

Re: OnkyoISCP plugin

Post by abraxxa »

@sem;colon: I finally took the time to look at your code and have cleaned it up (English instead of German wording, better variable names).
Can you please add comments what exactly happens in the Receive (formerly Empfange) method?
I've commited your changes to github, you can add your comments directly there if you want:
https://github.com/abraxxa/EventGhost-O ... its/master
blaher
Experienced User
Posts: 487
Joined: Thu Nov 17, 2011 1:27 am

Re: OnkyoISCP plugin

Post by blaher »

abraxxa wrote:If you do a follow tcp stream in wireshark you can see the difference:
ISCP............!1MVL2D
ISCP............!1MVLN/A.

vs.

ISCP............!1MVL2D
ISCP............!1MVL2D.

Are you really sending the same commands?
Yeah, I've made sure the commands were the same for both. I think the 2nd line is the response from the pre-pro.
Sem;colon
Plugin Developer
Posts: 625
Joined: Sat Feb 18, 2012 10:51 am
Location: Germany

Re: OnkyoISCP plugin

Post by Sem;colon »

@abraxxa: Thanks!
I left an explanation... I hope it helps! :roll:
If you like my work, Image me a drink :wink:
abraxxa
Experienced User
Posts: 81
Joined: Wed Dec 22, 2010 9:10 pm

Re: OnkyoISCP plugin

Post by abraxxa »

I've implemented a proper ISCP parser: https://github.com/abraxxa/EventGhost-O ... 2958b2ef0e
Please test the new version, if it works for everybody else I'll release it as 0.06.
blaher
Experienced User
Posts: 487
Joined: Thu Nov 17, 2011 1:27 am

Re: OnkyoISCP plugin

Post by blaher »

abraxxa wrote:I've implemented a proper ISCP parser: https://github.com/abraxxa/EventGhost-O ... 2958b2ef0e
Please test the new version, if it works for everybody else I'll release it as 0.06.
I'm afraid this version doesn't report the feedback correctly like the last one did. It reports some of it, eg. if you change the volume manually, in EG it shows up as: MVL '', but wireshark shows it's getting !1MVL2E. If I reinstall sem;colon's version then I get: MVL '2E' showing up in EventGhost.

I have attached a wireshark log of me sending a power off signal, and one of the pre-pro sending a volume change signal. I hope that helps.

Cheers
abraxxa
Experienced User
Posts: 81
Joined: Wed Dec 22, 2010 9:10 pm

Re: OnkyoISCP plugin

Post by abraxxa »

The captures look identical to mine.
Please uncomment the print lines in __init__.py and post what it outputs.
blaher
Experienced User
Posts: 487
Joined: Thu Nov 17, 2011 1:27 am

Re: OnkyoISCP plugin

Post by blaher »

I hope I've done this right, but I can post the __init__.py, if you think I've messed something up:
http://i.imgur.com/Ug4e1.gif

I sent the power off command, 'PWR00', and then moved the volume knob on my receiver.

No matter what the variable for the last two numbers, eg. SLI01, MVL20, PWR00, LMD40, it always seems to send, !1SLIN, !1MVLN, !1PWRN, !1LMDN respectively. In other words, it's sending N, instead of the correct variable.

Cheers
abraxxa
Experienced User
Posts: 81
Joined: Wed Dec 22, 2010 9:10 pm

Re: OnkyoISCP plugin

Post by abraxxa »

Do a wireshark at the same time and compare the print output with the wireshark capture.
The data size for my Onkyo 5507 pre-pro is 10 most of the time, at least for volume change events.
The docs I've found about ISCP (serial connection) and eISCP (ISCP over Ethernet) didn't exactly match what my pre-pro does.
For example the eISCP docs spec says the message starts with 1 whereas for me it starts with !1.
Maybe the models use slightly different variants of the protocol.
blaher
Experienced User
Posts: 487
Joined: Thu Nov 17, 2011 1:27 am

Re: OnkyoISCP plugin

Post by blaher »

abraxxa wrote:Do a wireshark at the same time and compare the print output with the wireshark capture.
I attached the logs in my post above; Wireshark says it's sending !1PWR00 with 24 bytes, print output says !1PWRN with a data size of 9.

For volume event reception, Wireshark says !1MVL2E with 24 bytes, print says !1MVLN with a data size of 8.

Cheers
abraxxa
Experienced User
Posts: 81
Joined: Wed Dec 22, 2010 9:10 pm

Re: OnkyoISCP plugin

Post by abraxxa »

You forgot to uncomment line where the var unit_type gets defined, so the output is missing the parsed message.

I've compared your captures with mine:
yours:

Code: Select all

00000000  49 53 43 50 00 00 00 10  00 00 00 08 01 00 00 00 ISCP.... ........
00000010  21 31 4d 56 4c 32 45 1a                          !1MVL2E. 
mine:

Code: Select all

00000000  49 53 43 50 00 00 00 10  00 00 00 0a 01 00 00 00 ISCP.... ........
00000010  21 31 4d 56 4c 32 38 1a  0d 0a                   !1MVL28. ..
As you can see my Onkyo 5507 pre-pro sends a CRLF at the end as documented whereas yours doesn't.

I've changed the parsing in commit 8357639 to remove \x1a\r\n dynamically if it exists and not the last three chars regardless of what they are.
blaher
Experienced User
Posts: 487
Joined: Thu Nov 17, 2011 1:27 am

Re: OnkyoISCP plugin

Post by blaher »

Here is a screen capture of EventGhost receiving two lots of volume down while it is muted:
http://i.imgur.com/mLgvu.gif

As you can see, you have fixed the pre-pro receiving events in EventGhost! Woo, well done. :) It shows the volume being unmuted, and then 2 volume presses down.

Here is a screen capture of EventGhost sending PWR01, SLI20, MVL2D:
http://i.imgur.com/T1QZ4.gif The data size seems to to be different from the receiving ones that work.

In the comments of: https://sites.google.com/a/webarts.ca/t ... olprotocol it says,
// the official ISCP docs say this is supposed to be just the data size (eiscpDataSize)
// ** BUT **
// It only works if you send the size of the entire Message size (eiscpMsgSize)

Could this have anything to do with it? I'm just guessing, sorry I can't be of more help.

I've attached Wireshark captures of both the receiving events, and trying to send them.

I've uncommented the unit_type variable initiation, so that seems to be showing up fine too.

Cheers
Post Reply