The UK Home Automation Archive

Archive Home
Group Home
Search Archive


Advanced Search

The UKHA-ARCHIVE IS CEASING OPERATIONS 31 DEC 2024


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Request Input on new Project



Hi Gavin,

> THE SOFTWARE SOLUTION - WHAT I'M (gasp) PLANNING
> So, what I'm thinking really needs to happen is to abstract the
various
> levels from each other:
>
> Interface <-- abstraction layer --> Control Software <--
abstraction
> layer --> Hardware
>
> The project I'm planning (and dreading) is to write (open source) the
> middle component in such a way that people can develop their own
> interface programs which communicate with it.

I suggest you take a look at xPL - http://www.xplproject.org.uk/

xPL is an open standard intended to abstract the hardware implementation of
a device, and provide a common, reusable way for devices to communicate and
interoperate with each other.

> More importantly, each type of hardware device (from different
> manufacturers and using different technologies) will have its own
> 'plugin'/DLL written for it, which abstracts the implementation from
> the control interface.

Yep, this is exactly the purpose of xPL.
There are common "schemas" for various types of devices, from
light switches to temperature sensors to audio control.
To xPL-enable a device, you simply write a "gateway" application
that acts as the interface between the actual device and the xPL network.
As xPL messages can travel over Ethernet, RS232, RS485 etc., you can
distribute your network of devices easily throughout the home.

> CoolTechnologyCompany will release a new bluetooth temperature sensor.
> I (or you) will write the plugin for it that describes the properties
> and methods it supports, and internally knows how to produce the
values
> and perform the methods. I drop the plugin into my own components
> directory, tell the Master Program to rescan components and (without
> restarting the program and crashing the house) suddenly the admin side
> of the Master Program knows how to control that device.

Yep... we have this pretty much already.

We have a program called xPLHal - www.xplhal.com.
This is the master controller for an xPL network.

When a new device is attached to the network, it appears in the list of
devices that are "awaiting configuration".
The manager presents you with a graphical configuration dialog, allowing
you to configure the various properties of the device.
And that's it - the device is up and running, with no disruption to the
rest of your network.
And because the main application - xPLHal - is purely a controller (i.e. it
doesn't actually interface directly to any hardware) it is amazingly
reliable.

> Note that when I mention this project a lot of geeks say
"Zeroconf!",
> "Embedded Linux!", thinking that I'm suggesting that the
hardware
> device (the lightswitch) itself is supposed to expose its
> functionality. While this would be grand, this isn't the case with 99%
> of the existing hardware out there, and that's what I want to use. I
> want a piece of software--the plugin--to provide the abstraction.

With xPL - you have the choice.

You can build a light switch that plugs straight into your Ethernet netowrk
and exposes it's features, or you can write an xPL gateway application to
xPL-enable a device through software.

> HELP ME!
> Am I insane? Does this middle Master Program already exist? Can I
> accomplish all my goals above without this level of abstraction?

You would probably need to write the xPL-enabling software for the
individual hardware components of your choice (assuming that someone hasn't
already xPL-enabled them - we have a growing library of supported hardware
and software), but certainly the infrastructure, protocol specifications
are in place, and we have an active development community who are
constantly working on new projects.

> If I had a solution like this readily available, would you want it?
> Does your answer depend on what language it was written in, or on the
> hardware platform (Windows vs. MacOS vs. Linux vs. BSD) that it ran
on?

Again, with xPL, your options are wide open - we have xPL applications
running on Windows, Linux, and even a Tivo.

> If I wrote this in Java as an open-source project, would you be
willing
> and able to contribute?

We currently have development kits for Windows (in the form of an ActiveX
component and a .NET assembly) and Linux (in the form of a C library), but
I'd guess it wouldn't be too difficult to develop something in Java - I
think one of the xPL developers has already written a Java program that can
send xPL messages.

All of the software on www.xplproject.org.uk, including the xPLHal
controller, is open source, and is released under the GPL.
As far as I am aware, there is no other home automation solution available
that is free, open source, multi-platform, with a complete automatic device
discovery and configuration system that is able to support just about any
device you could think of.

There is a Yahoo group dedicated to xPL development - I highly recommend
joining if you think that xPL could be useful in helping you achieve your
goals:
ukha_xpl-subscribe@xxxxxxx

Regards,

John



Home | Main Index | Thread Index

Comments to the Webmaster are always welcomed, please use this contact form . Note that as this site is a mailing list archive, the Webmaster has no control over the contents of the messages. Comments about message content should be directed to the relevant mailing list.