Software to control the Yamaha RX-V2400 home theater receiver.
- Uses an RS-232 serial connection to control the receiver and establishes a network port to receive commands on.
- Supports user-defined macros for reguarly used commands (examples included in the package).
Written using really wicked Perl which automatically creates documentation for the online command help.
- Windows or Linux.
Other *nix platforms may work with little or no modification but have not been tested.
Windows users can download perl from Activestate. *nix users should be able to help themselves.
- RX-V2400 Server Full Package v0.5
- RX-V2400 Server v0.6
- Example Macros (optional, server will look in "macro" directory for default.rxm)
Some of the macros have been ported to use Linux paths and some still demonstrate Windows file paths.
- Shuffle v0.1 (optional. Supports Linux only)
A simple program to find all files and play them randomly.
Required for the "play" command under Linux.
Requires mpg123 to play the files.
- Fork v1.0 (optional. Supports Windows only)
A simple program to fork off any program because Perl on Windows wasn't doing this well.
Required for the "play" command under Windows.
Currently missing since my Windows hard drive crashed.
The program needs to be threaded in order to deal with connections from multiple sources. It is intented that this will include one thread running the serial connection who will respond to requests from the other threads servicing network connections.
Check for closed client
The program would crash when attempting to write status to a closed client. This has been fixed.
Read Status From Reponse Reports
The device sends data back in response to operations. This would be useful
to keep in sync with any changes made via the IR remote control or front panel.
Basic support is in the code but not used because it causes problems.
Run As Service
In order to really be useful, the program needs to conform to the Linux methodology. This will involve starting the serial back-end as a /etc/rc.X service and launching the network service threads through inetd. The back-end should launch network service threads as needed if inetd is not in use for the sake of not requiring inetd and supporting Windows.
Allow the user to schedule operations to be performed at specific times.
Currently the user must instruct the program to sleep for an amount of time
which will put them at the desired moment. This depends upon Threaded support
above, as the implementation will be to start a new thread, perhaps through a
network connection, which will sleep until the desired time and then execute
it's instruction. Logging of scheduled tasks should also be performed so that
they may be recovered if the service or system were restarted.
While this program is functional already, a web interface would improve the
user experience and make the program more accessible.
Web Interface For Small Screens
A sort of Pocket Remote interface for mobile devices.
User-Friendly Telnet Interface
The included telnet interface allows no use of the arrow keys to recall previous commands or edit the current command. While I once thought support for such would be helpful until I get around to creating a proper front-end, I have since decided that it is not of value to me. Partially-completed code is present in the current revision of the source.
I am currently using this for general control of the receiver as well as a
smart alarm clock. When the "wakeup" macro in the included examples is run, my
bedroom speakers turn on, volume is set to -50db with audio input from the HTPC.
The HTPC then loads my "wakeup" playlist and plays for four minutes, the first
two of which the volume is slowly increased to -30db. After these four minutes
the playlist is switched to a more abrasive selection to make sure I'm awake.
Two minutes later, the speakers in the rest of the house are turned on and all
zones switched to receive input from the radio tuner, where they stay for an
hour and a half before everything is automatically turned off.
Feel free to contact me me at [ Click here to reveal. ]