• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

AUTHORSH A D01-May-20122 KiB2625

COPYINGH A D01-May-201234.3 KiB675553

ConfigureH A D03-May-202211.7 KiB430364

INSTALLH A D01-May-20128.2 KiB202155

Makefile.inH A D01-May-20126.7 KiB260192

READMEH A D01-May-20122.6 KiB6249

README.INSTALLH A D01-May-20128.2 KiB202155

README.cm10aH A D01-May-2012485 1912

README.webhookH A D01-May-20125.8 KiB159125

README2H A D01-May-20121.9 KiB5443

cm10a.cH A D03-May-202214.9 KiB530365

cm11a.cH A D01-May-20122.1 KiB8232

cm17a.cH A D03-May-202213.9 KiB449275

cmd.cH A D01-May-2012214.9 KiB6,2804,920

config.cH A D01-May-2012182.2 KiB5,5534,628

date.cH A D01-May-20122.4 KiB9451

digimax.cH A D01-May-201218.3 KiB585408

digimax.hH A D01-May-20122.9 KiB5715

eeprom.cH A D01-May-20129.4 KiB312171

eeprom.hH A D01-May-20122.8 KiB9948

erase.cH A D01-May-20125.6 KiB215121

heyu.1H A D01-May-201280.3 KiB2,1882,001

info.cH A D01-May-20126.3 KiB214150

install.shH A D01-May-20129.6 KiB304245

message.cH A D01-May-20123.1 KiB9953

modules.cH A D01-May-2012148.2 KiB4,3543,239

monitor.cH A D01-May-20126.3 KiB240166

oregon.cH A D01-May-2012110.7 KiB3,3272,484

oregon.hH A D01-May-20123.7 KiB8440

poll.cH A D01-May-201256.1 KiB1,162925

process.cH A D01-May-2012377.2 KiB11,8078,418

process.hH A D01-May-201275.4 KiB1,8691,547

relay.cH A D01-May-201218.6 KiB631426

relay_aux.cH A D01-May-201211.7 KiB407282

reset.cH A D01-May-20124.1 KiB13367

rfxcom.cH A D01-May-201273 KiB2,1941,696

rfxcom.hH A D01-May-20122.5 KiB478

setclock.cH A D01-May-20129.5 KiB374250

status.cH A D01-May-20125 KiB170102

stop.cH A D01-May-20123.2 KiB13995

sun.cH A D01-May-201225.5 KiB763519

sun.hH A D01-May-20121.9 KiB4715

timing.cH A D01-May-20122.7 KiB6723

tty.cH A D01-May-201218.9 KiB796568

tty_aux.cH A D01-May-20128.8 KiB381266

version.hH A D01-May-2012874 232

x10.cH A D01-May-201219.7 KiB732549

x10.hH A D01-May-20125.5 KiB226130

x10.sched.sampleH A D01-May-20123.3 KiB8662

x10aux.5H A D01-May-201231.7 KiB852805

x10aux.cH A D01-May-201276.5 KiB2,3681,816

x10cm17a.5H A D01-May-201217.6 KiB436404

x10config.5H A D01-May-201287.8 KiB2,2362,024

x10config.sampleH A D01-May-201210.2 KiB240190

x10digimax.5H A D01-May-20126.2 KiB183168

x10kaku.5H A D01-May-20127.5 KiB210189

x10oregon.5H A D01-May-201237.6 KiB1,0961,055

x10rfxmeters.5H A D01-May-20128.3 KiB264245

x10rfxsensors.5H A D01-May-201212.1 KiB344329

x10sched.5H A D01-May-201227.8 KiB675590

x10scripts.5H A D01-May-201258.3 KiB1,5041,436

x10state.cH A D01-May-2012476.5 KiB14,45411,150

x10state.hH A D01-May-20124.9 KiB10358

xread.cH A D01-May-201214.5 KiB632420

xsync.cH A D03-May-20226.4 KiB200118

xwrite.cH A D03-May-20222.4 KiB10759

README

1                     HEYU (version 1) Program overview
2
3This program operates an X10 module via a CM11A computer interface. It is
4based on the program X10 by Larry Cambell as modified by Paul Fox. All but a
5few functions have been changed enough that they no longer interwork with
6the original. I think this justifies issuing the program as 'heyu' instead
7of 'x10'.
8
9The program name comes from the old joke about having a 3rd person in the
10house. Ida No was the one frequently blamed when things went wrong. In my
11house it was the frequently heard yells of "Heyu! Turn off the lights!"
12A poor joke, but I like it.
13
14The program is strictly command line driven, and works well with crontab.
15Crontab can be used to schedule events. You can also upload timers and
16macros to the CM11's memory.
17
18The program comes complete with source code, sample config files, MAN pages
19an executable binary. The program has options to allow you to:
20
21   * Get the date and time from the interface
22   * Get information about current settings and module states
23   * Turn an X10 module on or off
24   * Dim or brighten an X10 module
25   * Monitor all data sent to or from the CM11A
26   * Get the status of intelligent X10 modules (rr501 for instance)
27   * Set the X10 clock from the computer's clock (time and date)
28   * Zero out the macro and event memory of the X10
29   * Upload macros and timers
30   * preset the dim level of advanced two way devices
31
32As of version 1.27, Heyu has the ability to send a schedule of events to the
33CM11A. This enables timers and macros.
34
35The people at X10 have informed me that there is no way to download (to the
36computer) the events stored in the CM11A. That being the case, I wrote
37programs that will load the events and macros from local data files. This
38will erase whatever has been stored there, but I guess that's the way it has
39to be.
40
41This should compile on any Linux system. It should also compile on any other
42BSDish or SYSV system. Just edit the #define in the make file. Make install
43will try to install the man page and the program. The makefile has defines
44for these locations.
45
46See the original README in Larry Campbell's program for some nice info on
47the cp290 and the history of the program. See the original for some really
48niffty uses using scheduling and macros.
49
50There are two demo programs included with heyu, monit and x10biff.
51
52   * The monit program will turn off your monitor based on idle time. It's
53     the ultimate screen saver.
54   * The x10biff program will flash a light to let you know that you have
55     E-mail.
56
57Daniel B. Suthers, CCP, CSP
5812-31-1996
59Updated 12-12-1999
60E-mail: dbs@tanj.com
61uucp: pacbell!daver!dansst!dbs
62

README.INSTALL

1
2                   Installing Heyu on a Unix-like system.
3
4(This file is duplicated as both INSTALL and README.INSTALL, in the
5event your case-insensitive file system overwrites INSTALL with the
6install script.)
7
8Heyu requires a reasonable compiler (GCC works well), the 'make' program,
9and the development header (.h) files.  Many OS distributions will either
10install these by default or provide a visible option to include the
11"development package" during OS installation.  But some of the newer OS's
12do not, e.g., with Ubuntu Linux it's necessary to afterward execute the
13command 'apt-get install build-essential'.
14
15Note: If you're upgrading from a previous version of Heyu, run 'heyu stop'
16under that version before proceeding.
17
18Quickstart:
19    sh ./Configure  [option]   (As a normal user)
20    make                       (As a normal user)
21    su                         (Become superuser)
22    make install 	       (As superuser)
23    exit                       (Revert to normal user)
24    heyu info		       (As a normal user, to test installation)
25
26(The 'make install' requires that you have write permissions to
27/usr/local/bin, man page, and other directories.)
28
29Ubuntu Linux users should execute 'sudo make install' rather than
30the three commands 'su', 'make install', and 'exit'.
31
32*** Kindly report any compile errors or warnings to the author.***
33
34It can take 5-8 seconds to set up the heyu_relay daemon and initialize
35the CM11A interface the first time Heyu is run, e.g., with 'heyu info'.
36
37Running 'heyu help' will display the long list of Heyu commands.
38These are further explained in the man page heyu(1).
39
40CUSTOMIZING
41-----------
42The Configure script creates a Makefile by running 'uname -s' and then
43adding known good configuration options to the Makefile.  The contents
44of Makefile.in is then appended to the Makefile.  Changes to the makefile
45should be made in Configure or Makefile.in.
46
47If Configure can not figure out what your system is, you can try
48sh ./Configure generic
49    or
50sh ./Configure sysv
51
52If those don't work, we'll have to figure it out by hand. Please contact
53the author so your discoveries can be integrated into the next release.
54
55SERIAL PORTS
56------------
57Many newer computers don't have built-in RS232 serial ports, only USB
58ports.  For these computers a USB-Serial adapter is required to connect
59the CM11A.  Before purchasing a USB-Serial adapter, verify that the driver
60for your OS is available, either built-in to the OS, provided with the
61adapter on a companion disc, or downloadable from the adapter
62manufacturer's website.
63
64If you have a choice, select an adapter with an FTDI chipset over one
65with a Prolific chipset.  One dealer who specifies the chipset
66and supported operating systems for each adapter model for sale is
67ByteRunner (http://ww.byterunner.com).
68
69Drivers for adapters with a Prolific PL2303 chipset can often be found
70at http://www.prolific.com.tw/eng/downloads.asp?ID=31
71
72For Linux, the serial device name for a USB-Serial adapter will normally
73be /dev/ttyUSBx, where x = 0 for the first adapter plugged into the
74USB port and higher numbers for subsequent adapters.
75
76Note: The International 230V version of the CM11 sold in Europe and
77elsewhere is now usually provided with a USB cable in addition to the
78standard RS232 cable.  Many Linux users have experienced lockups and
79other problem with this USB cable (based on a Prolific chipset) which
80disappeared when they switched to a regular USB-Serial adapter.
81
82OPTIONS
83-------
84By default, Heyu allocates space for 32 common flags, 32 counters, and
8532 user countdown timers.  The number of each of these can be increased
86at compile time with switches -flags=NN, -counters=NN, and -timers=NN.
87The specified NN must be in the range 1-1024 and will be rounded up to
88the nearest multiple of 32, e.g.,
89
90   sh ./Configure -flags=64  -timers=75
91
92will allocate space for 64 flags and 96 timers, the latter because
93the specified 75 is rounded up to 96.  The number of counters will
94remain 32.
95
96By default, support for the X10 CM17A "Firecracker" device is compiled
97into Heyu.  As there is no known version of this device available which
98transmits at frequencies other than the 310 MHz used for transceivers
99in North America, users outside this region may wish to compile without
100CM17A support. Since the CM17A is both powered and actuated by the DTR
101and RTS serial lines, support for this device might as well also be
102omitted if your serial port hardware does not support these lines.
103To do so, run the Configure step mentioned above with the '-nocm17a'
104switch, i.e.,
105
106    sh ./Configure -nocm17a
107
108By default, support for Extended Type 0 (Shutter and Shade) commands
109is compiled into Heyu.  As there is only one module known to support
110these commands (the 230V, 50Hz Marmitek SW10 Shutter Motor Controller
111sold in Europe), this support may be omitted by using Configure with
112the '-noext0' switch, i.e.,
113
114   sh ./Configure -noext0
115
116By default, support for RFXSensors is compiled into Heyu. RFXSensors
117require a WGL W800RF32 or RFXCOM X10 RF receiver as well as a RFXSensor
118transmitter.  This support may be omitted by including the '-norfxs'
119switch with Configure, i.e.,
120
121   sh ./Configure -norfxs
122
123By default, support for RFXMeters is compiled into Heyu. RFXMeters
124requires a 433.92 MHz RFXCOM X10 RF receiver as well as the RFXMeter
125transmitter.  This support may be omitted by including the '-norfxm' switch
126with Configure, i.e.,
127
128   sh ./Configure -norfxm
129
130By default, support for the Digimax 210 remote thermostat is compiled
131into Heyu. The Digimax requires a 433.92 MHz RFXCOM X10 RF receiver as
132well as the Digimax transmitter.  This support may be omitted by
133including the '-nodmx' switch with Configure, i.e.,
134
135   sh ./Configure -nodmx
136
137By default, support for Oregon RF sensors is compilied into Heyu.
138Oregon sensor support requires a 433.92 MHz RFXCOM X10 RF receiver
139as well as a supported model of Oregon sensor.  This support may be
140omitted by including the '-noore' switch with Configure, i.e.,
141
142   sh ./Configure -noore
143
144By default, support for signals received from KaKu and HomeEasy
145transmitters is compiled into Heyu.  KaKu/HomeEasy support requires a
146433.92 MHz RFXCOM X10 RF receiver.  This support may be omitted
147by including the '-nokaku' switch with Configure, i.e.,
148
149   sh ./Configure -nokaku
150
151
152Notes for Mac OS X:
153-------------------
154The heyu executable is installed in directory /usr/local/bin, which
155is not on the Mac's default PATH.  You will have to add this directory
156to your $PATH.  Similarly you may have to add the man page directory
157/usr/local/man to your $MANPATH (or the /usr/share/misc/man.conf file
158for newer versions of OS X which have deprecated $MANPATH).
159
160Newer Macs don't have an actual RS232 serial port, only a USB port,
161and a USB/Serial adapter is required.  The manufacturer's adapter
162driver will usually add two or more different devices in /dev
163(and often with "usbserial" as part of the name).  You'll have
164to experiment to see which one works with Heyu by trying the
165different names in the TTY directive in the heyu configuration
166file.  The device name which also includes "cu" rather than "tty"
167has been found to work on the (few) Macs tested thusfar.
168
169
170Notes for AT&T SysV r4:
171----------------------
172The function uname(1) used to determine the system type for
173Configure does not distinguish this OS from other sysv systems.
174Supply the system type parameter "attsvr4" to Configure, i.e.,
175run 'sh ./Configure attsvr4'.
176
177Notes for OpenSolaris:
178---------------------
179The directories in which the Heyu binary executable and man pages
180are installed are set per the OpenSolaris system conventions to:
181  BIN = /opt/heyu/bin
182  MAN = /opt/heyu/man/man1
183  MAN5 = /opt/heyu/man/man5
184However for a virgin OS installation, none of these directories
185are on the system's PATH/MANPATH and the user is responsible
186for adding them to the PATH/MANPATH in order to have full use of
187Heyu.
188
189The user may alternatively rerun Configure for "OpenSolaris_BSD", i.e.,
190  sh ./Configure opensolaris_bsd
191which will set the directories using the BSD convention under
192the /usr/local tree, which however may be deleted when OpenSolaris
193is upgraded.
194
195Some older versions of OpenSolaris, in particular SXCE (Solaris
196Express Community Edition), may encounter an error when running
197'make install' like "test: argument expected".  If this occurs,
198change the first line of file install.sh to read "#!/bin/ksh".
199
200
201
202

README.cm10a

1
2Note for CM10A (IBM HD16) owners:
3
4For Heyu to support the CM10A, you must append
5the keyword CM10A to the TTY directive in your
6Heyu configuration file, e.g.,
7  TTY  /dev/ttyS0  CM10A
8
9For this change to become fully effective it must
10be incorporated in the heyu_relay process running in
11the background.  If the heyu_relay is currently running
12(almost any Heyu command will have started it running),
13this requires stopping and restarting Heyu, e.g.,
14  heyu stop
15  heyu cm10a_init
16
17
18
19

README.webhook

1Heyu Webhook Information
2-------------------------
3Heyu's webhook command allows information about Heyu's configuration to be
4displayed in a variety of user-defined formats which will hopefully
5be useful for writers of web interfaces and other front end software for
6Heyu.
7
8Usage: heyu webhook <option> -L[fmt] -d|D[fmt] -m|M[fmt] -b[fmt] -ce[list] -nb<path> [category]
9
10Options:
11  pathinfo      Display pathspecs for Heyu config and log files.
12  helpinfo      Display available help menu commands
13  config_dump   Display display configuration file directives.
14  flaginfo      Display flags, czflags, or tzflags as long ASCII bitmap.
15  flagbankinfo  Display flags, czflags, or tzflags as multiple banks of 32.
16  maskinfo      Display masks for environment variable X10_Hu
17  flagmaskinfo  Display masks for environment variable X10_Hu_vFlags
18  fileinfo      Deprecated - use pathinfo
19  menuinfo      Deprecated - use helpinfo
20
21Switches:
22  -L         Prefix with formatted line number in configuration file.
23  -d |-D     Display formatted directive label in lower | upper case.
24  -m |-M     Format multiple directive label numbering beginning with 0 | 1
25  -b         Format body of directive.
26  -ce<list>  Characters in <list> are escaped in SCRIPT command lines.
27  -nb<path>  Substitute <path> for logfile path if none defined.
28
29The format specification %V must appear once in each format string ([fmt]),
30where it will be replaced as appropriate by the line number, directive label,
31label number, or directive body.
32
33Categories for config_dump:
34  alias
35  usersyn
36  scene
37  script
38  other    (Everything other than the above directives.)
39  <blank>  (Everything).
40
41Categories for pathinfo:
42  conf     Pathspec for Heyu configuration file
43  log      Pathspec for Heyu log file.
44  <blank>  Both of the above;
45
46Categories for flaginfo and flagbankinfo:
47  flags    Common flags.
48  czflags  Counter-zero flags
49  tzflags  Timer-zero flags
50
51The "helpinfo" option displays the individual help menus available,
52which will vary according to the Configure options selected when
53Heyu is compiled.  The help menues will only be of interest for an
54interface which provides a Heyu command line.
55
56The switches can define a format for each of the parts of a directive
57in the configuration file.  Without a format suffix, the switches have
58a default format.  Each defined switch format must contain the symbol
59%V which is replaced at output by the particular part of the directive.
60Note: Format characters which have special meaning to the shell have to
61be escaped, e.g., '"', '$', '(', ')', and probably others.
62
63If no switches are specified, the directive is displayed as the directive
64label in lower case followed by a single-blank separated list of the
65other tokens in the directive as they appear in the configuration file,
66e.g.,
67  heyu webhook config_dump alias
68yields:
69  alias porch_light A7 StdWS
70
71The -L switch prefixes the line with the line number in the configuration
72file, e.g.,
73  heyu webhook config_dump -L alias
74
75yields with the default format "%V: ":
76  26: alias porch_light A7 StdWS
77
78whereas switch -L%V# would yield:
79  26#alias porch_light A7 StdWS
80
81The -d or -D switch determines the case of the directive label, lower or
82upper respectively.  A format suffix allows the displayed label to be
83expanded, e.g.,
84  heyu webhook config_dump -DHEYU_%V alias
85
86yields:
87  HEYU_ALIAS porch_light A7 StdWS
88
89The -m or -M switch appends a sequential number to the directive label
90for those directives which can appear multiple times in the configuration
91file.  The numbering starts with 0 for -m or with 1 for -M.  These switches
92are ignored for directives which can only appear once, e.g., TTY, in the
93config file. The default format is "[%V]", which for:
94  heyu webhook config_dump -m alias
95
96yields:
97  alias[0] porch_light A7 StdWS
98
99whereas:
100  heyu webhook config_dump -M%V alias
101
102would yield:
103  alias1 porch_light A7 StdWS
104
105The -b switch specifies the format for the body of the directive, i.e., all
106that follows the directive label.  The default is just " %V" (which is the
107same as omitting the switch).  However:
108  heyu webhook config_dump -b" = \"%V\"" alias
109
110yields:
111  alias = "porch_light A7 StdWS"
112
113An exception to the single-blank spacing of tokens is the command line
114tail of a SCRIPT directive.  The command line tail is displayed as-is
115since the spaces may be significant.  But certain characters in the
116command line may need to be escaped to avoid conflict with the body
117format.
118
119The -ce<list> switch ("command-line escape") will result in each
120command line character in the <list> suffix to be escaped.  E.g.,
121for the directive:
122  script a7 on :: echo "Porch Light has been turned ON"
123
124Executing:
125  heyu webhook config_dump -b" = \"%V\"" -ce"\""
126
127yields
128  script = "a7 on :: echo \"Porch Light has been turned ON\""
129
130Example:
131  heyu webhook config_dump -L"%V: " -dheyu_%V -m\(%V\) -b=\"%V\" alias
132
133yields:
134 13: heyu_alias(2)="porch_light A7 StdWS"
135
136The -nb<path> switch ("null body") substitutes <path> for the logfile
137path when directive LOG_DIR is omitted from the configuration file and
138the default logfile path "/dev/null" may be difficult to deal with.
139
140The options fileinfo and menuinfo were provided for a specific PHP
141script.  They exist for backward compatibility but are deprecated.
142They can be replaced by pathinfo and helpinfo as follows:
143For fileinfo, use:
144  heyu webhook pathinfo -d\$heyu_%V -b"=\"%V\";" -nb/tmp/
145For menuinfo, use:
146  heyu webhook helpinfo -d\$%V_menu -m[%V] -b"=\"/heyu/help %V\";"
147
148Notes:
149Obsolete configuration directives are omitted from config_dump.
150(Heyu displays a warning message when they are encountered in the
151configuration file.)
152
153The syntax for aliases in Heyu version 1 used no ALIAS directive,
154merely a line with the alias label, housecode, and unit.  While this
155syntax is still supported in Heyu version 2, config_dump will not
156include these aliases in the alias category.
157
158
159

README2

1
2BACKWARD COMPATIBILITY ISSUES FOR HEYU VERSION 2
3
4Configuration file
5------------------
6Heyu version 2 can use an existing Heyu configuration file
7from version 1 (~/.x10config or /etc/x10.conf) provided
8it is renamed and moved to the new location where Heyu
9version 2 expects to find it - either "~/.heyu/x10config"
10or "/etc/heyu/x10.conf" (notice the 'dot' changes).
11There are a number of new configuration options for
12version 2 that the user may then want to add, which are
13explained in both the x10config.5 man page and in the
14example file "x10config.sample" provided.  Of course
15for some users it may be more convenient to simply rename
16and modify the "x10config.sample" file.
17
18In operation, Heyu version 2 must write some files in
19the same directory as the configuration file, so this
20directory must be writeable.
21
22Schedule file
23-------------
24In most cases an existing schedule file used for Heyu
25version 1 will work in version 2, however dawn/dusk
26related events are now handled directly by the Heyu
27program and the old 'makesched' utility is no longer
28used.  The default name for the schedule file is now
29x10.sched and Heyu version 2 will expect to find it
30in the same directory as the configuration file.
31(Its name can be changed via the configuration file.)
32
33Under Heyu version 2, the CM11A clock is maintained
34on Local Standard Time throughout the year.  Events
35in the schedule file are assumed to be Local Civil
36Time (i.e., Wall Clock Time) and Heyu automatically
37adjusts them during periods of Daylight Saving Time.
38Heyu version 2 automatically sets the CM11A clock
39to the correct time (derived from the system clock)
40when a schedule is uploaded or when the 'heyu setclock'
41command is executed.
42
43
44Warning
45-------
46Users running a dual-boot system with MS-Windows
47should read the warning in the x10config.5 man page
48about running X10's ActiveHome software while booted
49into Windows if the CM11A has been programmed under
50Unix/Linux by Heyu with certain configuration options.
51
52
53
54