Perl modules for the xPL Home Automation Protocol
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
bin Fix ping behaviour. Mar 6, 2012
debian Remove obsolete xpl-hddtemp and add tests for xpl-smart. Oct 24, 2011
doc Minor fixes for release. Oct 23, 2011
lib/xPL Fix typo Nov 12, 2016
misc Reduce coupling in xPL::RF. Still need to remove source field. Sep 8, 2010
.gitignore Support appending local make targets. Feb 11, 2009
.tdldb Todo updates. Nov 22, 2010
MANIFEST Remove obsolete xpl-hddtemp and add tests for xpl-smart. Oct 24, 2011
META.yml Getting started making packages Dec 13, 2005
Makefile.PL Remove Class::Load dependency as it is unfortunately not available Oct 15, 2011
README Add wiki link. Oct 23, 2011
xpl-perl.spec Copyright and documentation updates. Oct 7, 2008


xPL Perl

These modules are intended to provide a framework for writing xPL
applications (see in Perl.  A number
of sample applications are also provided including a hub, a logging
client, a bridge and a command line message sender.

In order to ensure that the applications stay running,  I run
the applications using Dan Bernstein's "daemontools" from:

You could also use runit ( or just
using wrappers and /etc/inittab.

When looking at the code, particularly the code for the message
schemas, you will notice that there isn't much of it.  This is
intentional.  I don't generally like writing the same code more than
once and would rather get Perl to generate it.  Also, I'd like
eventually to parse a schema definition directly to generate the
classes representing that message schema.

This is an early release of the API and it likely that it will still
change a little over the next few weeks and months.

Example xPL clients are provided for:

  X10 using heyu (,
  Phaedrus VIOM IO controllers,
  Milford DMX transmitters,
  EasyDAQ USB relay controllers,
  Dawn and Dusk,
  Current Cost Energy Meters,
  Free Desktop (D-Bus) Notifications,
  RFXCOM RF transmitters and receivers,
  W800 RF receivers,
  sending SMS messages,
  UDIN USB relay controllers,
  X11 On-screen display nofitications,
  Wake-on LAN,
  X11 virtual keyboard for faking key presses,
  and more

Further clients written and maintained by others are listed at:


To install this module type the following:

   perl Makefile.PL
   make test
   make install

(Note, there are a couple of timing issues that occasionally cause
a few tests to fail.  Try repeating the tests if you get failures.)


Most of the required modules are distributed with recent versions
of Perl.  Some of the more elaborate clients require additional
modules from CPAN.

Debian Packages

The repository at contains
Debian packages for xPL Perl.

ArchLinux Packages

Arch Linux packages are available at:

Mac OS X

There are some instructions about installing on Mac OS X at:


See for details
of mailing lists for xPL Perl.


Copyright (C) 2005, 2011 by Mark Hindess

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself, either Perl version 5.8.7 or,
at your option, any later version of Perl 5 you may have available.