Apple iPhone and iPod Touch are natural consoles for home automation. They provide sophisticated user interfaces, high resolution LCD touch screens, rich programming environment and tools to create mobile, universal panels for home controllers. At the same time they are priced below many high-end universal remotes. Therefore, if you already own one of these devices, it makes sense to use it as your universal remote or touch panel to control your house.
There are several other benefits why developing OpenRemote panel software for these devices makes sense:
- The SDK is publicly available
- A vibrant community of software developers has grown around the hardware and SDK
- Programming tutorials, knowledge bases, wikis, blogs, etc. are supporting software development for these devices
- Professional quality software development tools are available for developing software for these devices
While OpenRemote also has plans for a generic web console enabling all Internet capable devices, including Apple iPhone and iPod Touch, we also want to provide native console applications for these devices in order to use some of the system specific features in hardware and software and to create a user experience where the home control becomes a natural part of the iPhone/iPod Touch experience.
An iPhone or iPod Touch is a WiFi enabled device that is able to connect to an OpenRemote Box which is acting as a WiFi access point or connected to a local IP network. Communication can happen using HTTP over REST and/or JSON APIs provided by the controller.
The task of the Cocoa based console is to retrieve an XML descriptor for the user interface generated by UI Composer Tools and render it on the screen. The application will listen to user interface events (such as a button press) and send them over HTTP to the controller to execute. Executable commands will be translated by the controller to device specific control commands, for example using X10 over serial connection, KNX over IP network or LIRC for infrared transmission.
See links below for more detailed technical design and implementation documents.