ExTENsible X10 I/O Daemon
=========================

Redistributable under the GNU General Public License.

The home page for x10iod is http://deviousfish.com/X10

Installation Notes
------------------

There are no configuration scripts right now.  Unpack the tarball
(you've probably already done this), use 'make help' for help on
running the Makefile.

The instructions here reflect systems booting with systemd;
a systemd service file is in `contrib` for those that need it.
For init-style systems, there's an init-style shell script too;
you guys know how to set that up yourself.

The daemon is designed to work as a low-privileged user; root
privileges are unnecessary if set up right.  Installation is as
follows:

  - Create a user account which will run the daemon.  The default
    is `x10`.  To use an alternate, set `X10MANAGER` environment
    variable when running makefiles.
  - On Linux with `useradd`: `make createuser`
    Without `useradd`, do this manually.  There should be a group
    designating X10 users, and the manager should also be a member
    of the group owning the serial ports.
  - As the x10 manager, `sudo make install` to install the software.
  - As the x10 manager, `make templates` to install starter configuration
    files and a crontab that rotates logs weekly.
  - Review `x10iod.ini` settings.
  - Review `x10event`, the event-handling script.
  - Install the systemd startup files:
    `sudo cp config/x10iod.service /etc/systemd/system`
  - Start the daemon (installed in /usr/local/bin):
    `sudo systemctl start x10iod`.
  - Set up the daemon to launch at boot with systemd:
    `sudo systemctl enable x10iod`

Scripts in `contrib`
------------------
`jukebox`
: This script provides a standard set of command to interface with
  various music players.  Documentation is in the `x10event` script.
  The `LOCALJUKE` and `REMOTEJUKE` variables (near the top of the
  script) select what to interface with.

`modemmon`
: A cheezy phone monitor script that will run if you set
  ModemDevice in x10iod.ini.  It logs caller ID data in the log
  directory, and uses the jukebox interface to pause the jukebox
  when the phone rings.

`sumpd`
: This sump pump control software uses METAR data from NOAA (National
   Oceanic and Atmospheric Administration) to determine when/how frequent
   to run sump pumps (or a fish tank water pump sitting on the floor
   with a hose to a sink), ice melter cables and fans.  On Macs, it
   can stop and start BOINC based on reported temperature.

Contact
-------

If you have any suggestions, comments, questions, and/or patches, feel
free to send them to along.

Perette Barella <perette@barella.org>

The daemon was originally created by Andrew Turnquist.

