wiseremote (wireless services remote control) is a system to control services offered by a stationary computer using a wireless device, such as a cell phone or a PDA. It consists of a plugin-based server and a client application for bluetooth-enabled Java devices.
The system is still in an early stage and far from ready for prime time, but once set up, it can already be very convenient.
All source is released under the GNU General Public License (GPL).
The principle behind wiseremote is as follows: The client provides a number of UI elements which can be used to control the services. The actual work is done on the server side. This means that the client merely functions as an input and display device for the server, not unlike a thin client. Upon connection, the server transmits an initial UI element definition to the client. This is most likely a list of available services. This list is displayed on the client device as a simple menu. When the user selects an item in the menu, the client transmits the selection back to the server, which then carries out an action and decides whether to transmit a new UI element to the client.
This system provides many possibilities for services. Media player remote controls or generic input devices for the home PC are obvious ideas for services. Other possible applications may be location-based services. It might also be interesting to implement a server for the mobile device itself, for interaction between cell phones or PDAs. The sky's the limit...
2006/02/15 - Version 0.3 of the wiseremoted (server) is out. It adds a plugin for entering and executing commands.
2005/02/23 - The new X11 plugin lets you control your mouse with wiseremote.
The server (called wiseremoted) currently runs on linux, using the bluez bluetooth stack. It uses plugins to provide actual functionality. Currently, plugins exist for controlling XMMS for audio playback and Xine for DVD playback and for executing uer-defined programs or shell scripts. In version 0.2, an X11 plugin has been added.
A Windows port of the server is planned and should be fairly easy to do. Obviously, the XMMS and Xine plugins will not work here, though. New plugins (e.g. for WinAMP) will be necessary.
The server and plugins are written in C++.
The client is a J2ME MIDlet using the jsr-82 bluetooth API to connect to a wiseremote server. It supports different UI elements to control the services offered by the server:
The client uses only the WTK (version 2.2) from Sun. No vendor-specific functionality is used. Therefore, it should work on all Java-enabled devices that implement the jsr-82 bluetooth API.
The client has been developed and tested using the Nokia 6230 cellphone.
As an optional feature, the client provides a workaround for the barely usable Select button of the Nokia 6230 cell phone: It uses the Back button (the right soft key) for Select and, where needed, the Select button for Back. This way it prevents the accidental up or down events that like to occur when pressing the five way button in Java MIDlets (the OS of the phone seems to compensate for that in the normal menus, but in MIDlets this is a problem, at least on my phone).
Download the server source and the j2me client source or binary from the SourceForge project page.
There are two different JAD files in the binary client package. One for normal usage and another one for fixing the Nokia 6230 select function.
Feel free to mail me at wrm (at) profittlich (dot) com.
Depending on your needs, the following projects might be interesting:
Bemused - Control a media player
using a Symbian bluetooth phone. Windows and Linux supported.
Bemused J2ME - A J2ME MIDlet for Bemused.
BlueMP3Control - Play MP3 files using a bluetooth connection.
blurc - Control your Linux computer with a Mobile Device running J2ME and BT. Somewhat similar to wiseremote.
BTRemote - Remote control tool for Linux PCs for bluetooth-enabled SonyEricsson phones.