LmceRemote

From LinuxMCE
Jump to: navigation, search

LMCE Remote

LMCE Remote is an iPhone application which can be used to:

  • load available lights from LMCE
  • display the lights status
  • set each light on or off

Screenshots

LmceRemoteLights.jpg LmceRemoteSettings.jpg

The light and room names on this screenshot are in French, but they are retrieved directly from LMCE. They will appear just as you entered them in the lightning wizard.

Intent

Please note, this is not, and is not intended to be a full Orbiter. The goal of this app is to be lightweight so that it remains very responsive even when used over a 3G connection.

Status and Availability

At the moment, the app is in a functioning state (for the features mentioned above).

The source code has been given to the LMCE development team.

It is also available on google code: http://code.google.com/p/lmce-remote/

The current plan is to have the binary version on the app store soon for a few dollars. All net benefits will go to research against cancer.


Beta testing

Beta testers are welcome after they have installed the web service and have it working (check with http://dcerouter/lmce-ws/index.rb?cmd=getLights). Once that is done, PM me (caiman) your iPhone device ID to get a build, or compile it yourself from the source code to test it on the iphone simulator or on a device if you have purchased the iphone developer license.

Using it remotely

By default, the application will connect to the hostname 'dcerouter'. This should work fine locally on most installations. The application can also be used remotely by following these steps:

   * subscribe to a dynamic dns if required
   * open and forward a TCP port xxxx on your internet router to the port your core Apache is listening to (usually 80)
   * setup apache authentication as your server is now exposed
   * setup apache to listen to the same port as the external port you have redirected (it can listen on multiple ports)
   * setup split-dns, so that when queried from your LAN, the dyndns hostname resolved to the internal IP of your core
   * enter your external hostname in the iphone app settings tab, as well as your apache username and password

Want to help?

If you want to contribute, packaging the WebService and making it easy to install is the best thing you can do. LMCE needs a good web service. LmceRemote comes with a basic web service that is sufficient for the purposes of this app. But having a clean and robust web service shipped together with LMCE would be fantastic. I am looking for someone who can help package my temporary web service in a nice .deb, and resolve the dependencies (there are some issues with ruby gems). You can pm me (caiman) on the forum.

Upcoming features

Some additional features are being considered for short term:

  • Add a tab with scenarios
  • Add a tab to set security mode

Architecture

There were three possible approaches to connect to LMCE:

  • Connect directly to the DCE router
    • Pros:
      • seemed to be the cleanest approach, closed to a real orbiter
    • Cons:
      • need to implement the DCE protocol
      • it is unclear how to obtain a list of the available scenarios through this protocol
      • remote access is difficult because of the lack of authentication mechanism
  • Connect to the web interface
    • Pros:
      • easy to implement for simple actions
      • easier remote access as the web server is often made available externally
    • Cons:
      • requires parsing HTML for more advanced actions and is prone to errors
      • requires double authentication when used for remote access (apache auth, then lmce auth)
  • Implement a WebService
    • Pros:
      • can access all required information in Lmce databases
      • very lean and network efficient
      • easily made available externally with apache authentication
    • Cons:
      • The user needs to install the WebService on the core before it can be used

I have chosen to go for the WebService approach.