sophware enterprises
Home Automation

Home automation is something I have been tinkering with for a few years, but recently I decided to formalize my efforts in the form of a Java SDK for home automation.

Objective

The objective of this project is to provide a protocol and platform independent Java packages for home automation. Admittedly this is based on my limited experience with two protocols, Insteon and X10. I don't fully understand how my architecture will expand to other home automation environments, but my assumption is that the basic functions provided by these protocols are similar to those provided by others and that the extension will be a natural one.

Architecture

The architecture consists of a central control object called Home. The Home object facilitates all programmatic access to the home automation network. The home network consists of HomeDevices and their subclasses. The Home class updates the device(s) as it receives HomeEvents. Listeners can listen to HomeDevices for state changes and can listen to the Home for new devices and or raw events.

The Lang package provides primary access to your automation network.

There is a UI package with a few (more to be added) Swing based components that allow for basic communication and monitoring of HomeDevices.

There is a Network package that extends the reach of your power line interface to any machine on your network.

The Logic package allows the implementation of conditional macros.

The Utilities package contains, among other things, timers and the ability to define time periods.

Currently there is limited PC Interface module support (I support what I have and can test). I hope to add modules in the future, if I can get my hands on them at a reasonable price.

PC Interface Support

X10 CM11A Serial Interface
Insteon PLC Serial or USB Interface (2414)

Documentation and Downloads

The software is provided free of charge for personal use. Do not download this software unless you agree to the License.
All documentation is in JavaDoc format.
The SDK requires Java Java EE 5 SDK (JDK 1.5) or later.
The Serial interfaces require Java Comm v2.0.

The USB interfaces require Java USB.

All files are available in my download directory/folder. While it is my intent to make all future releases backward compatible with the existing release, there is no guarantee that I will be able to do this. These files may be updated or withdrawn without warning. They are offered for your inspection and comment.

Future Priorities

Much of what happens in the future is going to be based on feedback I receive from those using the SDK. Please provide feedback to Russell Soph.


line
© Copyright 2007 Sophware Enterprises, all rights reserved.
comments or questions regarding this site.