hope i'm not breaking any rules. if so, i apologize.
there is a growing number of russound cav6.6 whole house audio systems being installed. is there anyone out there that would be willing to develop an interface (python or otherwise) so that "current music playing" information from xbmc could be communicated to the uno keypads that are used to control the cav6.6. more information on the hardware can be found on russound's website. i've attached the protocol below. russound has recently introduced a media server, but it is limiting when compared to xbmc. i'd like to see the interface available to everyone for free. would be willing to fund the development.
Wanted! r-net protocol
Joined: Nov 2003
2005-01-19 15:11 Post: #1
Joined: Nov 2008
2008-11-10 00:49 Post: #2
I am currently looking into how to do this. Since I am all new to XBMC I am glad for any advice on how to progress. The target is to make it possible for the Russound system unit to control XBMC over the Russound keypads. It would be possible to have the system unit control XBMC using infra-red or Lirc. However this would not be satisfying since it would not be possible to navigate the content without starting a monitor or a tv set. On the contrary, if the system unit can control XBMC over it's serial interface it is possible to provide text messages as feedback which makes it possible to navigate the content without a screen (or without looking at the screen). Effectively the keypad does the job of a remote control but with a little 12-character display for feedback.
Pressing a button results in a message on the RS-232 interface containing the source, the zone triggering the message, and an identifier for the key pressed. From what I can see it is possible to implement this kind of control (two-way) of XBMC by using the HTTP API of XBMC. The keypress would be read from the serial port and forwarded (perhaps after decodíng) to the HTTP API. The status (the folder, or music piece, movie) selected is written to the serial port.
I have not yet analysed how good the status messages on the HTTP API are for this purpose - if it is possible to navigate the XBMC menus only with this information.
Reading the serial port and forwarding commands to XBMC requires some kind of daemon process. I have not yet figured out if I am better of starting a standalone process independent of XBMC to do this or if I should kick it off as part of some existing XBMC extensions points - such as a 'script'. My implementation language of choice would be python.
Pros of a standalone solution:
- Simple dependencies on XBMC, I only need to understand the HTTP API and nothing else.
- When the computer starts it is sufficient for me to start my serial interface daemon, and this daemon starts XBMC when it is needed. The deamon can easily be changed to start another media center solution.
Cons of standalone solutions:
- A bit of a alien thing in the XBMC landscape.
- More difficult to configure (since it is alien..)
Pros of using a 'script'
- Can use python api's to talk directly to XBMC.
- The 'normal' way of extending XBMC with new functionality.
- Easy to install
Cons of using 'script'
- To me is seems alien that a script would create a background thread.
- I have not seen any examples on how to make a script create a background thread (except for a modal dialog). In some post someone claimed it was easy though..
Am I going in the right direction? Please advice? What other implementations of similar remote controls with feedback is there that I should be aware of?