beanz / xpl-perl

Perl modules for the xPL Home Automation Protocol
19 stars 12 forks source link

xPL Perl

These modules are intended to provide a framework for writing xPL applications (see http://wiki.xplproject.org.uk/) 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:

http://cr.yp.to/daemontools.html

You could also use runit (http://smarden.org/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 (http://www.heyu.org/), Phaedrus VIOM IO controllers, Milford DMX transmitters, 1-wire, EasyDAQ USB relay controllers, Dawn and Dusk, CTX35, Current Cost Energy Meters, Free Desktop (D-Bus) Notifications, LIRC, 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:

https://github.com/beanz/xpl-perl/wiki/Other-xPL-Applications-using-xPL-Perl

Installation

To install this module type the following:

perl Makefile.PL make 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.)

Dependencies

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 http://debian.temporalanomaly.com/ contains Debian packages for xPL Perl.

ArchLinux Packages

Arch Linux packages are available at:

https://aur.archlinux.org/packages.php?ID=53033

Mac OS X

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

http://www.xplproject.org.uk/wiki/index.php?title=Get_Started_on_Mac_Os

MAILING LISTS

See https://github.com/beanz/xpl-perl/wiki/MailingLists for details of mailing lists for xPL Perl.

COPYRIGHT AND LICENCE

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.