Main Page | Data Structures | File List | Data Fields | Globals | Related Pages

OpenHome

An Open Source Home Automation System

Introduction

Me and a friend of mine started the OpenHome project as a project on remotely controlled lamps and similar things. During the design of hardware and software the idea to realise everything as extensible and configurable as possible to account on future changes was born.

I searched the web for already existing projects but all I found were commercial systems like EIB, LON, X10 etc. After all, I decided to combine my own protocol with the best parts of already existing protocols. Therefore the following design considerations were made:

The resulting protocol stack is mainly influenced by the LonTalk-Protocol which is very flexible and has proven its potential in millions of installations. The first idea was to implement the whole protocol on the avr-platform. Caused by hardware limitations and documentation availability this very soon turned out to be too difficult. Furthermore, it was somewhat oversized for a little self-made home automation system. Because of that, I designed my own protocol which is in fact a simplification of the LonTalk-Protocol.

How to use the sources

This section describes how to use the sources and build your own application on top of the protocol stack. I strongly recommend you to read OpenHome.doc prior to this documentation as it is neccesary to first understand the protocol in detail.

It is up to your choice what layers of the protocol you want to use. Each layer resides in his own source file and is independent from upper layers. It is no problem to use link-, network- and transport-layer only. The documentation of each layer describes its internals and what to pay attention to. Read them carefully.

Directory structure

The whole code does not reside in one folder but is seperated in different directories. This was done to keep network specific code, application, headers and misc stuff separated. It is adviseable to embed your application in this structure as all sources rely on that.

Most directories contain a subdirectory for each package.

Protocol stack configuration

For configuring various parameters of the protocol stack your project must contain a file named net.h. It contains all necessary configuration parameters. See net.h Configuration Parameters for a list of all switches.
Generated on Fri Oct 17 16:45:53 2003 for OpenHome by doxygen 1.3.3