Some of us have noticed that the Home Automation (HA) industry
hasn't really noticed Unix at all. There are plenty of HA
controllers available and some actually provide enough
information for some of the Unix crowd to sit down and write the
user and hardware interface software to use it. HA and Unix is
very much a DIY project and what I would like to see is a
standard interface to the available hardware.
This project initially started out when I received a CM11A as a
Christmas present. I immediately went on a search for Linux
software and setted on Dan Lanciani's X10d. I discovered that I
needed to modify the code to get it to work under Linux. I've
been supporting my modifications ever since, playing catch-up
when ever Dan releases new code. To be honest I'm not sure I
fully understand everthing his code can and can not do. The
interface is a bit cryptic.
Since that time I've created a set of shell scripts which run
from cron or the Unix command at that send commands to control
varous lights at certain times of day. Such as at sun rise and
sun set. I also found a program written by Karl Denninger that
performs the same function but runs as a daemon all the time. It
takes it's commands from an event file. It reads the events file
at startup and stores it in memory. Then connects to the X10d
and monitors the events as they occur.
I later purchased a CCC's HCS
II, which I purchased as a kit (I enjoy building
electronics, this controller can also be purchased fully
assembled). This HA controller provides an interface to X10
(via a TW523), analog to digital conversion (8 channels), 8
digital inputs and 8 digital outputs in the initial kit I
purchased. It is expandable to include a great many other
products also. It is with this kit that I started to write the
hcsd code. I had 2 problems, the first was that I really liked
the way Dan Lanciani wrote the x10d (other that my lack of
understanding the commands) but Dan's code is under his license
(no arguement with that). The second is that when I initial
tooks Dan's code and modified it for the continous output of the
HCS II it would drop data from the HCS II. So I began to remove
Dan's code and write my own. Since that time I've also
purchased a LynX-10 kit and an ADI Ocelot (upgraded CPU-XA). I
would like to get the Ocelot under this programs control
also.
I've also taken some time to write a couple of client programs
to interface to the hcsd. The first takes the events.bin file
(compiled under the DOS emulator) and send it to the machine
interfacing to the HCS II. I've unfortunately broken the
interface between that command and the HCS II when I got the
POSIX thread code finally working. It stopped the drops and can
handle a number of clients but it also eats the CPU alive! The
second set of programs is a set of simple shell scripts that
really need a bit more work.