- DigiMax 210 support for HEYU
is an X10 Automation program for Linux, Unix, and Mac OS X. See man
(1) for usage information.
The DigiMax 210 is a wireless thermostat which transmits encoded
Temperature, Setpoint, and Under/Over setpoint RF signals. When equipped with
a compatible RF receiver, Heyu can receive and decode this information.
To use a DigiMax with Heyu requires a 433.92 MHz RFXCOM X10 RF receiver and Heyu
version 2.3 or greater.
Support for DigiMax is compiled into Heyu by default. A compiler option can be
used to omit this support. See the file INSTALL included in the Heyu
distribution source directory for details.
It is assumed that a working installation of Heyu version 2.3 or greater exists
on the computer, and that the user has a basic familiarity with Heyu.
The Heyu configuration file should include the directive:
TTY_AUX <serial_port or network_address:port> RFXCOM
where <serial_port> is the port where the RFXCOM receiver is connected, or
<network_address:port> is where the RFXLAN receiver is listening. The
RFXCOM receiver connects to a USB port but includes a USB->Serial converter
chip, while the RFXLAN connects over a network.
Start Heyu with ´heyu start´, then open another xterm window and
run ´heyu monitor´ in it to start the Heyu Monitor.
Press and hold both the ´+´ and ´-´ buttons on the
DigiMax until the display starts flashing "]]]" (about 3 seconds).
It will start transmitting its initialization signal every 10 seconds (for 5
minutes or until a button is pressed). Or you can just wait until the DigiMax
sends its normal signal about every 5 minutes. In the Heyu monitor window you
should then see something like this (ignoring the date and time):
rcva func RFdata : Type DigiMax ID 0xEB83 Data 0x29151350
Map the DigiMax ID to an otherwise unused housecode and unitcode address with an
ALIAS directive in your Heyu configuration file using module type DIGIMAX.
ALIAS Upstairs B7 DIGIMAX EB83
Run ´heyu restart´ to incorporate this change into the running
Heyu daemons. Then the next time the DigiMax makes a transmission you should
see (with the above example) something like this:
rcva func dmxTemp : hc B unit 7 Temp 21C Set Heat (Upstairs)
rcva func dmxSetpoint : hc B unit 7 Setpoint 19C Set Heat (Upstairs)
rcva func dmxOn : hc B unit 7 Set Heat (Upstairs)
-- or --
rcva func dmxOff : hc B unit 7 Set Heat (Upstairs)
Notes: The first dmxTemp signal after a start or restart will display the flag
"NotSet" as the Heyu engine will not have recorded the Setpoint
temperature until it receives the dmsSetpoint signal.
It´s not clear whether the DigiMax thermostat will automatically swap On
and Off signals if operated in "cool" mode (which requires cutting a
jumper wire in the thermostat), or whether the swapping would be implemented
in the base station which transmits On/Off powerline signals. User feedback is
requested. The current implementation swaps the signals.
If the Heyu Engine daemon is running, current DigiMax data is stored in the Heyu
state tables and displayed in the Heyu log file (if thus configured).
Stored data can be retrieved with the following Heyu state commands, where Hu is
the Housecode|Unit address to which the sensor has been mapped in the ALIAS
directive, or the alias label itself.
heyu dmxtemp Hu - Current temperature
heyu dmxsetpoint Hu - Temperature setpoint
heyu dmxstatus Hu - On/Off status (1 = On, 0 = Off)
heyu dmxmode Hu - Heat/Cool mode (1 = Heat, 0 = Cool)
The command ´heyu show digimax´ will display stored data from all
configured DigiMax units in tabular form.
When DigiMax functions dmxOn and dmxOff are received, the normal Heyu state for
the particular housecode and unit is set to "On" or "Off"
respectively and will be reflected when state commands like ´heyu
onstate Hu´ and ´heyu show housemap H´ are run.
Heyu scripts can be launched by the functions "dmxsetpoint",
"dmxtemp", "dmxon", and "dmxoff" the same as any
other Heyu function. The launch conditions in the SCRIPT directive must
include the source keyword "RCVA" and may optionally include the
keyword "changed", any of the common flags, and the global security
flags. They may also optionally include the local flags.
SCRIPT L9 rfxtemp rcva armed away :: my_rfxtemp.sh
SCRIPT L9 dmxon dmxoff changed rcva :: my_onoff.sh
Local flags for the DigiMax functions are:
set, heat, cool, init, and their negations, e.g., notset.
Any Heyu script has access to the stored DigiMax values through environment
variables linked to the housecode|unit (Hu) and its alias mapped to each
X10_Hu_dmxStatus x10_<Hu_alias>_dmxStatus (1 = On, 0 = Off)
X10_Hu_dmxMode x10_<Hu_alias>_dmxMode (1 = Heat, 0 = Cool)
X10_Hu_dmxSet x10_<Hu_alias>_dmxSet (1 = Set, 0 = notSet)
X10_Hu_dmxInit x10_<Hu_alias>_dmxInit (1 = Init, 0 = notInit)
If a Heyu script is launched by one of the functions "dmxsetpoint",
"dmxtemp", "dmxon" or "dmxoff", the environment
will additionally include variables for flags and values without the
"Hu" identification as follows:
flags : X10_dmxSet, X10_dmxHeat, X10_dmxInit
dmxsetpoint : X10_dmxSetpoint
dmxtemp : X10_dmxTemp
dmxon or dmxoff : X10_dmxStatus, X10_dmxHeat
No variable is created for data which is invalid or "not ready".
In addition to the ALIAS and scaling directives mentioned above, the following
will also affect DigiMax data. See man page x10config(5).
Directive HIDE_UNCHANGED YES|NO
DigiMax support was added to Heyu by Charles W. Sullivan using the protocol
gratefully provided by RFXCOM.
heyu(1), x10config(5), x10sched(5), x10scripts(5), x10aux(5), x10cm17a(5),