Sample .xtendrc file

# $Id: sample-xtendrc,v 2.4 1998-04-06 00:48:42-04 dshaw Exp $
#
# This is the configuration file for Xtend, the X10 Daemon.
# Xtend is Copyright 1998 David Shaw 

# Everything except the shell commands (see below) are case insensitive
# PORT == Port == PoRt

# This is a comment
# Use \# to specify a literal #
# Use \\ to specify a literal \

# This specifies what shell will be used to run your commands.
# If you don't specify one, it defaults to $SHELL, or if
# that's undefined, /bin/sh

# Shell /bin/bash

# These specify where we're getting the data from.
# 'Port' is, well, a serial port.  Something like /dev/ttyS0
# 'File' is a spool file like heyu(1) generates.
# Obviously, you'll need one of these defined, but not both.

# File /var/tmp/heyu.out

Port /dev/ttyS0

# 'Lockdir' specifies where the normal UUCP-style lock file is generated.
# This defaults to whatever was compiled into the program (probably
# something like /var/lock or /var/uucp/locks) and should probably be
# left alone as the default.

# Lockdir /var/tmp

# 'Appliance' specifies which units are appliances.  This is only used for
# the monitoring system that delivers information on what is on and off to
# the commands that are run (i.e. it doesn't affect which commands are run)
# You can have more than one line for this, if necessary.

# Appliance A1 B8 P12
# Appliance C11 D9

# 'Statusfile' specifies a file that the system can write the current
# state of all 256 X10 devices into.  Each device has two bytes.  The
# format for the first byte is the same as the environment variables
# (see below).  The second byte is reserved and is zero in this version.
# There is a sample program to parse this file in tools/parse-status

Statusfile /var/tmp/x10-status

# these are the actual commands to run.  Each line is of the form
# 
#
is the X10 address, A1 through P16. # is one of: # all-off # lights-on # on # off # dim # bright # is any command line that can be passed to a shell. # Play a message when we turn this light off a1 off cat /var/tmp/hello.au > /dev/audio # Call in to check for mail a9 on ifup ppp0 # A more complicated one. This works with heyu. a2 on cat /var/tmp/a2.au > /dev/audio ; heyu turn a2 off; heyu turn a3 on # good night and good morning messages a all-off cat /var/tmp/alloff.au > /dev/audio a lights-on cat /var/tmp/allon.au > /dev/audio # Invent lighting "scenes" b1 dim heyu turn a1 on; sleep 10; heyu turn a1 off; heyu turn a2 on # Security stuff d1 on echo "Hey! Someone tripped the motion sensor!" | mail -s "Security" root d1 off echo "Motion sensor is clear." | mail -s "Security" root # Conditionals are implemented via environment variables named after # each X10 unit. A1 is X10_A1, B7 is X10_B7, etc. # # Bit 7 - On (1)/Off (0): Is the unit currently on or off? # # Bit 6 - Addressed (1) / Not Addressed (0): When X10 turns a group of # units on at once, it "addresses" all of them and then sends a command. # These are units that are currently addressed. If an X10 command is sent # to their house code, they will respond to it. # # Bit 5 - Appliance (1) / Light (0): Is the unit an appliance or a light? # This is settable with the "Appliance" keyword. (see above) # # A quick way to check if a unit is "on" is to do something like # $X10_B4>=128. If that is true, then unit B4 is on. # example conditional: a16 on [ $(($X10_B1)) -ge 128 ] && echo "Both A16 and B1 are now on" # the variables are available within a program called from here as well # this calls the 'status' program included with the Xtend distribution. a15 on tools/status # more or less the same thing as a15, except it uses the Statusfile # we set from above. a16 on tools/parse-status /var/tmp/x10-status

Back to index