xPL

This is a landing page for some Home Automation projects I worked on and made available for download. These projects fit in the wider xPL project - an open source community project for home automation based on the open xPL protocol.

Learn more about xPL:

xPLLib version 4.4
This version has a few minor updates in the xPLListener class and a major update in the XplMsg class. It is upgraded to .Net 2.0.
Please see the canvas that was added in the readme file to get you quickly up and running with this latest version.

xPLListener:
- the constructor requires a vendor id and device id
- the configuration elements must be defined via the ConfigItems.Define method
- the Configuration done event is raised when the app has received its configuration, regardless whether it comes from an xPL config message or from a local file
- GetPreparedXplMessage returns a message that is almost ready to be sent, just fill in the final details

XplMsg:
- every item of an xPL message is available as a property
- it does not accept illegal values (wrong casing or filed size too long)
- the older interface has been left intact but marked as “obsolete”
- please use the new properties to construct xPL messages: it will help to get rid of the many poorly constructed xPL messages flying around… I did it for the applications below without too much of a hassle.

Download:

Medusa.xPLCM11
xPLCM11 is an interface to the X10 CM11 computer interface (other names for the same thing: CM12, LM11; compatible with CP10). xPLCM11 installs as a Windows Service. It communicates via the xPL “x10.basic” schema.

Features of Medusa.XPLCM11:
- reliable;
- multiple devices accepted in the “device” attribute;
- asynchronous: incoming X10 commands are queued for execution;
- incoming X10 signals (from the power line) do not interfere with incoming X10 commands (via xpl);
- threads communicate via synchronization objects (no time wasted in Thread.Sleep);
- stress-tested
The component survives and executes the following scenario: X10 commands ON/OFF are sent in a loop, building up a queue of commands waiting to be executed. While the commands are executed one after the other, as fast as the CM11 can handle them, X10 signals are put on the power line. The sending is interrupted and the component reports the signals. The command execution continues when the power line is clear. Eventually all commands will be executed and all incoming signals reported.

Medusa.xPLCM11 current status: V1.05. (.Net 2.0 and xPLLib V4.4)

Download:

Medusa.xPLLogger
xPLLogger does what its name suggests: it logs xPL messages. It writes xPL messages to an XML file. It comes with 3 XSL transformation files that will take the XML as input and generate html output which can be viewed in any browser. There is also an XSL included that generates Excel output.
You can configure what it logs via filters, how much it logs via a configuration item and the way the output is presented via an XSL.
It recognizes xpl messages of the log.basic schema. Added an xsl for this specific type of messages.

Medusa.xPLLogger current status: V1.2. (.Net 2.0 and xPLLib V4.4)

Download:

xPLDawnDusk (bonus!)
This is the original xPLDawnDusk as first published by John Bent but with a few corrections. It is very reliable and correctly goes through Daylight Savings Time moments…
100% compatible with the original (it still uses johnb as vendor id), so no need to modify scripts or determinators. Just uninstall whatever version you have running now and install this version.

xPLDawnDusk current status: V1.3 (.Net 2.0 and xPLLib V4.4)

Download:

Medusa.xPLBalloon
This is an application that when run installs an icon in the taskbar
notification area.

Any messages that pass through its filters are displayed as a popup near the
taskbar notification area. Multiple popups will be stacked. A popup can be
closed by clicking its close button. A popup will remain visible as long as the
mouse is hovering over it. The application itself can be closed by
right-clicking on the taskbar icon and picking ‘exit’ from the menu.
It is configured via xPLHAL.

Examples:
Two informational message received via the log.basic schema:
stacked info msgs

A warning:
xpl warning msg

An error:
xpl error msg

xPLBalloon is set to filter all messages in the next example to help understand what is happening in the xPL network:
xpl debug msgs

xPLBalloon current status: V1.2 (.Net 2.0 and xPLLib V4.4)

Download:

2 Comments »

Comment by Boris
2008-07-24 20:41:01

Hello. Using 2 of your work and it is great ! Thank for this.
I only have a problem with xplballoon : deviceid has a name which is too large, it must be 8 or less in size. Have a look here : http://wiki.xplproject.org.uk/index.php/XPL_Specification_Document#The_xPL_Protocol:_.22Lite_on_the_wire.2C_by_design.22
It cause a problem with tonyt job : we can’t add OSD device pointing to xplballoon in his interface xPLMyHome.

Thank in advance for the next release :)

Comment by Tom VdP
2008-08-05 22:26:00

Hi Boris,
You will be glad to hear I have updated xPLBalloon. This version registers itself on the xPL network simply as “balloon”.
BTW, this version also allows multiple text= lines in one xPL message.
Have fun with it!

 
 
Name (required)
E-mail (required - never shown publicly)
URI
Your Comment (smaller size | larger size)
You may use <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> in your comment.

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word

Trackback responses to this post