Access Keys:
Skip to content (Access Key - 0)
blog entry  2009/05/02
Last changed: May 02, 2009 19:18 by Juha Lindfors

OpenRemote Code Work in Progress

Somewhat overdue, a few updates on what has been happening in the OpenRemote code repository lately.

Summarizing shortly, we've completed and released the source code for OpenRemote 1.0 Milestone 1 (M1). This is the first milestone checkpoint towards the final OpenRemote 1.0 release and it includes all the necessary code to deploy an OpenRemote infrared control end-to-end – sending commands from your iPhone or iPod Touch through the OpenRemote Box (ORB) to the infrared controlled end-device such as your TV, stereo or set-top box.

There's a couple of videos we've posted to demonstrate this in action: Infrared Demo Video and Jean-Luc's It works! blog.

What Is a Milestone?

Milestones are developer releases intended as stable checkpoints for community developers to try and test features in our releases, and provide their own tweaks, fixes and extensions. Milestones are not intended as full product releases. In order to use OpenRemote milestones, you should be very comfortable with all the required development tools:

  • Java Development Tools including Apache Ant for building the code from source and deploying software on Apache Tomcat
  • Linux development tools including installing Linux distributions, compiling and installing LIRC (Linux Infrared Remote Control) and deploying Tomcat instances

That being said, we do intend to provide more complete documentation on how to use the above tools and install OpenRemote milestones for development and testing. Stay tuned for that.

Where's the Source?

For developers comfortable with a pure source release and very little supporting documentation (we are happy to give you a hand and answer questions on the forums and chat), you can checkout the source code from the subversion repository:

  svn co http://openremote.svn.sourceforge.net/svnroot/openremote/tags/OpenRemote_1_0_0_Milestone1

The source release infrastructure is still pretty raw. You have been warned.

What you will get from the checkout is:

  1. Beehive 1.0 Beta 3
  2. UI Composer 1.0 Beta 2
  3. Controller 1.0 Beta 2
  4. iPhone Console 1.0 Beta 1
Beehive and UI Composer

The versions of Beehive and UI Composer are already deployed and available for you to use at http://composer.openremote.org/demo.
You can browse for infared remote model and compose an user interface to deploy on the iPhone/iPod Touch. The "Download" button will give you the required configuration files for the controller.

Controller

The controller implementation is a Tomcat deployable WAR (Java Web Archive) which you can deploy more or less wherever you can get Tomcat and LIRC to run. It works on our ALIX reference implementation, B202 with Ubuntu or your regular Linux PC. Please check the information about the infrared hardware we've tested with and instructions on how to get LIRC + CommandIR working.

iPhone Console

The iPhone Console is the user interface renderer for iPhone and iPod Touch. It will render the user interface based on the configuration files generated by the UI Composer. In order to get the iPhone console running you will need a Mac OS X and Xcode IDE environment. We are still going through the paperwork (faxing documents back and forth) with Apple but expect an OpenRemote App Store to appear very soon where you can directly download the iPhone distributables.

What's Next?

We are well on our way towards Milestone 2 (M2) and for those loving the life on the bleeding edge, you can already download the source code from the trunk of the OpenRemote subversion repository. The current M2 includes improvements to the iPhone user interface with ability to create multiple pages of buttons (accessible with the iPhone swipe gesture), buttons of different sizes and customizing the look & feel with uploadable icon images. We will be branching and tagging M2 codebase in the next few weeks to make those features and codebase more consumable to developers as well.

On the community contribution side, we have been extremely delighted to see Marcus Redeker already pick up the raw codebase and modifying it to suit his home installation with IRTrans (IP to infrared), JetPort (IP to RS-232), EZcontrol (IP to proprietary RF) and MythTV (via telnet) integration completed. Marcus is already using OpenRemote to control his A/V set up at home, and we are working on getting these contributions shared with the rest of the community.

So expect more release news, more code-drops and more OpenRemote to arrive in the coming weeks,

– Juha

Posted at 02 May @ 6:02 PM by user Juha Lindfors | comment 0 comments
blog entry  2009/05/05
Last changed: May 06, 2009 00:31 by Juha Lindfors

With the OpenRemote 1.0 Milestone 1 tagged and new milestones to follow soon, I thought it would be a good idea to put the components that create OpenRemote 1.0 release together in a high-level overview (see the image on the right).

The OpenRemote 1.0 release will consist of 4 separate components. Two of them will be hosted online and are required at configuration time, one is deployed on OpenRemote Box (ORB) and one is a user interface panel component on the iPhone. The latter two are runtime components, required for the daily use of the OpenRemote system.

OpenRemote High Level Overview Thumbnail

(Click for larger image)

Configuration Phase

A deployment of an OpenRemote system typically starts with modeling and configuration of your system online. Using the Beehive device database you can browse for the components to include in your setup. Today, Beehive contains infrared codes for various IR controlled devices recorded by the LIRC community. We expect to continue to contribute to and extend this part of the database. We are looking at what other configuration lends itself to easy sharing of codes via Beehive. Examples include devices with telnet interfaces (e.g. MythTV) and RS-232 interfaces.

Another aspect of Beehive is storing "private" (non-shared) device configuration information. For certain cases (e.g. KNX group addresses and device properties bound to them), sharing the configuration publicly doesn't make sense as the semantics change with every installation. For these cases Beehive may act as a convenient store of information uploaded by the installer, making the house or building design easier to manage and maintain over time.

The second part of the configuration phase is composing of user interfaces for panel hardware. Today that means composing layout, buttons and other UI elements for iPhone or iPod Touch. We will support other panel devices with generic web interfaces and/or Flash application(s). The user interface will be fully customizable and can be created separately for each individual user.

The initial user interface may be constructed by the installer based on the mappings and model he has created. However, the goal of the UI composer is to become easy enough for an end-user to create small tweaks to the interface, reorganizing buttons and other UI elements. To reach this goal, expect the UI Composer to evolve into a clearly separate view from protocol mapping, reducing exposure to low-level protocol details and addressing.

You can try the current iteration (M1) of both UI Composer and Beehive at http://composer.openremote.org/demo. Please note that it hasn't been adjusted to all common web browsers yet, using Firefox is recommended for now.

Deployment Phase

The control mappings and user interface layout(s) can be download from the UI Composer once completed. What you will get from the download is a single ZIP file with all the required elements. These need to be deployed on the ORB.

Note that this deployment phase is very much unfinished at this stage (it is manual) and will still be unfinished with the 1.0 release. For an end-user product the deployment(s) should be automated with user control over which components, component versions and configurations are deployed on the ORB. This is mainly the reason why OpenRemote 1.0 release targets advanced technical users only (for details of the necessary technical skills, see the Code Updates blog).

The deployment files are:

  • controller.xml
  • iphone.xml
  • lircd.conf
  • panel.irb

The controller.xml is the main configuration for mappings. An incoming HTTP request is mapped to an event that contains the information how to connect from the ORB to the device and execute the desired command. The iphone.xml contains the user interface layout which the iPhone console reads and renders. The panel itself therefore has no knowledge of the mappings, it's a "dumb" user interface in a sense.

The lircd.conf is a standard LIRC configuration file containing all the selected infrared remotes in the configuration. This is used by the infrared events in the controller when IR extension to ORB is enabled.

The panel.irb you can ignore. It contains the UI Composer state information in case you want to upload your configuration back to the UI Composer to make additional changes.

Runtime

The runtime is disconnected from the online tools and operates independently between the panels, ORB and controlled devices. The transport layer between panels and ORB is HTTP currently, with ORB exposing its API as a REST interface. As the user generates UI events from the panel, these are transmitted and mapped to events that operate on different media and control protocols via the controller.xml mapping in the ORB.

Each integrated media has an associated "event" to handle the wire protocol or communication required to connect to the device. Adding new ones involves creating a new event implementation. Already contributions have come in for generic IP socket, HTTP and telnet events to integrate with IP gateways and devices supporting these interfaces.

The flow in the first iteration is one-way with commands being sent. The two-way communication capability for status updates is clearly on our radar though. Also various bus architectures to decouple services are not addressed in the first iterations. While the controller so far is very simple, we are generating a lot of ideas from community feedback which will eventually be addressed with a more complete controller implementation (rules, scripting support, decoupled services, etc).

Posted at 05 May @ 11:26 PM by user Juha Lindfors | comment 0 comments
blog entry  2009/05/09
Last changed: May 09, 2009 16:14 by Juha Lindfors

(This message is to our mandarin speaking audience)

我們的網站越來越被世界各地的朋友點閱,對許多人來說能用他們的語言的來獲得信息仍然是非常重要的。 我們想要吸引融合更多世界各地方有天份和感興趣的人參與OpenRemote 的計劃,除英語之外,我們開始把點閱率最高的一些網頁內容翻譯為其它語言。

我們留意到中國在家庭自动化上有頗大的興趣,因此我們第一個翻譯的語言就是中文。 例如,KNX最近在中國開始了他們的當地小組。 OpenRemote在此對使用中文為母語的大家打招呼(也對在北京的工作團隊問聲好,如果你們也正閱讀著這一頁)。

请注意:我们並沒有完整翻譯整個網站或材料。 我们網站內容更新的速度太快翻譯還不能同步跟進。 然而,我們已翻譯了四個最多點閱的部份來在測試中文朋友的兴趣。 我們希望能以中文來提供中文使用者OpenRemote的概要。 我們欢迎反饋、評論、更正和也歡迎願意提供我們的社群中文翻譯的朋友们一起加入。

欢迎加入OpenRemote!

Posted at 09 May @ 3:46 PM by user Juha Lindfors | comment 0 comments
blog entry  2009/05/31
Last changed: Jun 01, 2009 16:54 by Juha Lindfors

As I was working towards our Amsterdam event next week, I put together some customized iPhone console screens with the new OpenRemote 1.0 Milestone 2 software (a sneak preview, release coming soon!).

They turned out better than what I had expected, so worth sharing and describing some of the new features.

Multiple Screens, Activities And Button Images

One of the things we've added in M2 is the ability to use your own images on the iPhone layout. The next few screenshots demonstrate this quite heavily. The other major change to the iPhone console is the ability to create multiple screens which you can change with the usual finger-swipe gesture. The latter is obviously necessary for 1.0 release as most people will have multiple remotes, lights, shutters and so on to control. Finally, there's an "Activities" screen where you can group screens depending on where or what you are doing. Each activity can hold multiple screens which you can switch to quickly with a finger swipe.

For our Amsterdam event I decided to add a welcome screen on the first page. Basically just a single image that gives the company logo and some information. As a vendor you could use this as a welcome screen with your own logo, some application use information, maybe a promotion at an event you are organizing or participating in. Imagine your customers walking into location, they have the OpenRemote application installed on their iPhone and connect to your ORB at the site. It is a nice way to welcome and share some information with them.

Activity View Welcome Screen
(Click for larger image) (Click for larger image)

Icons and Images

Using icons and images is straight-forward with M2. You can choose your own images you've created (GIF, JPG, PNG formats supported), or you can choose icon images from a pre-defined set of icons that we offer in our User Interface Composer.

The screenshot on the right shows the use of pre-defined icon buttons from the UI composer. It is a default set of buttons we currently deploy with round shape and dark-blueish colors. As you choose an image for your button, it will be placed on the remote button instead of its usual text label.

The other feature you can see on the screenshot is the use of images in the layout in general. I've added an image of the actual physical remote these buttons are mapped to, making it easier to remember what's going to happen as I press them. This particular screen is mapped to the Apple Remote that comes with a MacBook. You could also use the images of the target device if that is a more natural way for you to remember what or where the device being controlled is.

As for the default buttons themselves, we only have one theme right now. We'd be happy to hear from community members with graphic design skills if they'd be willing to develop more button themes for us. With the LIRC codes in Beehive, we can very easily find the most common infrared commands ("play", "stop", "1..9", etc.) and map those buttons to default images.

Icon Images
(Click for larger image)

Images As Buttons

This next shot shows a similar screen to the previous one for another remote control (infrared remote for a TV set). It contains a mix of elements in the layout. The original remote control is shown at the top of the screen with a short title describing it as the TV in the living room. The number buttons are the default buttons with titles rather than images. While the default buttons are not the most attractive, they'll do ok in a pinch if you don't have cool images or button pictures handy, or you are still working on what buttons you want in your layout exactly and how to place them.

On the left side of the screen are two images that are actually active buttons themselves with "BBC" and "CNN" TV station logos. They respond to press like regular buttons and can be mapped to a infrared macro that automatically sends the remote commands to change to the corresponding channel.

Finally at the bottom there are sketches for a different button style for "Power" and "Menu" buttons, replacing the default button look completely.

Image Buttons, Macro Buttons, Default Buttons Mixed
(Click for larger image)

Backgrounds For Moods

The final shot of the day is what I've dubbed the "Mood Remote"(tm). It demonstrates the use of a background image on the iPhone Console. It has couple of buttons at the bottom for "Play", "Volume Up" and "Volume Down". As an example, the "Play" could be a scene macro to set your colored lights to a nice sunset hue, start a relaxing music or maybe some ocean waves audio. Something relaxing.

Mmm... I'm ready for a vacation....

Coming Up

Next week we will all be in Amsterdam for our first public event. Also you can expect Milestone 2 to appear in the next few days.

'til next time, take care!

– Juha

Mood Remote
(Click for larger image)
Posted at 31 May @ 11:53 AM by user Juha Lindfors | comment 0 comments
© 2008-2011 OpenRemote Inc. OpenRemote is a trademark of OpenRemote, Inc.
Adaptavist Theme Builder (3.3.3-conf210) Powered by Atlassian Confluence 2.10.3, the Enterprise Wiki.
Free theme builder license