profile for Perette at Stack Overflow, Q&A for professional and enthusiast programmers

Devious Fish
ExTENsible X10 I/O Daemon

ExTENsible X10 I/O Daemon

Redistributable under the GNU General Public License.

The home page for x10iod is

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

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.
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.
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.


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

Perette Barella

The daemon was originally created by Andrew Turnquist.