One of my new projects is figuring out how to automate my Pioneer VSX-822-K AVR. There have been posts before on how to do this with telnet for higher end AVRs (VSX-1022). But there doesn’t seem to be any documentation on mine.
My plan is to make a PHP web interface for controlling it because:
1. The Pioneer Control App for Android is laggy and crappy
2. I can control it from a web browser as well
The VSX-822-K uses port 8023 for telnet commands. Only some of the commands that worked with the VSX-1022 worked with the 822. Many of the function commands are changed. I went through every possible FN combination below. This information doesn’t seem to be available anywhere else but here.
Function number: 01FN CD 02FN Tuner 04FN DVD 05FN TV 06FN Sat/Cbl 10FN Video H 15FN DVR/BDR H 17FN iPod/USB 25FN BD H 33FN Adapter 38FN Netradio 41FN Pandora 44FN Media Server 45FN Favorites 49FN Game H
TO get the rest of the commands like tuner preset+/-, I installed Shark for Root on Android. This application is like WireShark in that it captures packets to and from the device. I then opened the AVR application and made sure I pressed every button that was available.
But then I remembered that the app downloaded device specific data when I first opened it. I went on a hunt inside ESFileExplorer for the related application files. I found them in /data/data/jp/pioneer.avsoft.android.controlapp
I zipped that up for inspection.
And then I found the jackpot
Every command the AVR uses, implemented in HTML and JS, by japanese programmers at Pioneer Electronics. I can’t blame them for using HTML, It’s easy, but it’s not responsive at all. No wonder the app was laggy.
After sifting through the code, here’s what I got out
?RGD ReceiveGenerationInfo ?RGF ReceiveEnableInputFunctionInfo ?RGC ReceiveNetworkStanbyInfo ?PWR ReceivePowerStatus Values: PWR0 Power on PWR1 Cold standby PWR2 Network standby ?VOL ReceiveVolumeStatus ?MUT ReceiveMuteStatus Values: MUT0 Mute on MUT1 Mute off ?FN ReceiveInputStatus ?ICA ReceiveiPodFunctionInfo ?GAP Prints OSD info ?GEP ReceiveDisplayInformation ?GDP ReceiveListAndLineInformation ?GCP ReceiveScreenInformation Function number: FU: Function up FD: Functon down 01FN CD 02FN Tuner 04FN DVD 05FN TV 06FN Sat/Cbl 10FN Video H 15FN DVR/BDR H 17FN iPod/USB 25FN BD H 33FN Adapter 38FN Netradio 41FN Pandora 44FN Media Server 45FN Favorites 46FN AirPlay 47FN DMR (doesn't do anything?) 49FN Game H Power Mode: PO Power On PF Power Off Volume: VU Volume Up VD Volume Down MO Mute On MF Mute Off MZ Mute toggle (doesn't work?) FM Presets: ##PR (30 avail) Surround Sound: 0100SR Advanced Surround 0005SR Auto/Direct 0010SR ALC/Standard Buttons: 10PB Play 11PB Pause 12PB Skip Reverse 13PB Skip Forward 20PB Stop 30PB Enter 31PB Return 40PB iPod Control30
Some other things to note:
The AVR only allows one telnet session at a time, otherwise it will refuse the initial connection.
The remote is a huge pain in the ass to use, if you want to change settings you have to go into the internet radio function menu, just to get the 80’s style menu to open.
What’s worse is the menu goes from digital in the CPU, to analog in the DAC (so it can be outputted to composite video), THEN it gets converted back to digital for use in HDMI. It looks really ugly to say the least.
Tyler, great info! Could you post the HTML and JS? Trying to make this work but need some more commands…Thanks