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.
- 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
- every item of an xPL message is available as a property
- it does not accept illegal values (wrong casing or field 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.
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:
- 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);
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)
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)
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)
This is an application that when run installs an icon in the taskbar
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.
Two informational message received via the log.basic schema:
xPLBalloon is set to filter all messages in the next example to help understand what is happening in the xPL network:
xPLBalloon current status: V1.2 (.Net 2.0 and xPLLib V4.4)