This project will describe a basic home automation system with an open architecture that will allow users to hack, customize, and improve it. In our experience it is difficult to find this capability in current automation products. The architecture will be as device agnostic as possible. This means that it won't be centered around solving a specific problem like lighting or security. It will include features like negotiable data rates, plug-and-play style device discovery, and detailed device descriptors that allow master nodes to programmatically assess each device's capabilities.
A two-layer networking architecture will be used. The first layer will be a wired bus-style network that will provide connectivity between simple and inexpensive nodes. This network will be designed to integrate easily with common embedded systems such as Arduino. Power and data will be provided on the same cable making device installation simple. Multi-master support will allow multiple controllers on the same bus for redundancy and to provide modularity. Ideally a popular SoC type solution, such as the Raspberry Pi, would be used as a master node. It would provide a gateway to higher level protocols such as HTTP and allow users to write custom scripts or software to meet their individual needs.
The second layer will be built to function over existing infrastructure, such as Ethernet, WiFi, XBee, powerline, etc. and provide connectivity between master nodes on separate buses. This also helps in cases where a wired bus cannot conveniently reach a device (e.g., installing smart lighting in an existing home). This layer will be as infrastructure agnostic as possible, giving the user the flexibility to choose a connection that fits. It will also be peer-to-peer; each device or master node can function independently eliminating the single point of failure common to many current automation systems.
We want to define an open, standardized, and extensible architecture with accompanying API for connecting any device that can be automated to the system. We will also provide a fully functional and open set of example implementations for such a system.