![]() |
Software Downloads |
![]() |
StarGate V2.40
Firmware and WinEVM Software
Files included:
SG2_40A.HEX (latest firmware version)
WinEVM.EXE (latest software version SG2.40
For future updates: www.jdstechnologies.com
Note: Update Version 2.38 requires both
firmware version SG2_38 and WinEVM software version SG2.38 to run.
VERSION HISTORY OVERVIEW 2.40 (22 Sep 1997)
Note: Version 2.40 update requires both version 2.40 firmware and 2.40 WinEVM software.
Changes and Improvements
New Features - Supports Pre-Set Dim features of the new Leviton Wall switch (6381 SAN 020). Define the X10 device as a 6381 type of switch to enable this feature.
- Search Icon on Button Bar: The Search Button will display the Search window. Line numbers are now included as part of the search string.
- Temporary Variables: Two temporary variables have been created: user_VAR (8 bit, 0-255 range) and user_16VAR (16 bit, 0-65535 range). These variables are used by many functions to hold/store a temporary value to be used/assigned to another variable.
- Schedule/THEN Macro window: Moved the toolbar from the right side of the main WinEVM window to each Schedule/THEN Macro.
- Fast Events: Events triggered by X10 ON/OFF commands and Digital Inputs (STARGATE's) going ON/OFF. These events are executed immediatly when triggered regardless of schedule size. Note that there can only be 1 Fast Event for a given trigger. Fast Events are created by selecting the New Event button from the right toolbar, then selecting 'Fast Event' for the Event type. The Fast Event trigger window allows the selection of the trigger.
- X10 Voice Response: The default X10 Voice Responses can be changed (in Define|X10) to custom responses. Each X10 address can have a 1 or 2 word voice response assigned to it. Example, instead of hearing "A 1 ON" when doing a touchtone *11, it could be changed to "Kitchen Light ON".
- THEN Macros: Increased the number of THEN Macros to 256.
- Lutron HomeWorks RS-232 Interface added to ASCII OUT.
- IF Conditions
X10 Sequence: Check boxes in the X-10 Sequence menu allow events to be programmed to respond to any X-10 code (or sequence of codes) transmitted by STARGATE only, received from another transmitter only, or both.
X10 Device State:
Added the conditions
NOT OFF
This condition will be true if the specified module (house and unit code) is
either ON or IDLE. It will be false if the module is OFF.
NOT ON This condition will be true if the specified module (house and unit code) is either OFF or IDLE. It will be false if the module is ON.
NOT IDLE This condition will be true if the specified module (house and unit code) is either ON or OFF. It will be false if the module is IDLE.
Enabled This condition will be true if the specified module (house and unit code) is ENABLED in the DEFINE-X10 DEVICE database. It will be false if the module is DISABLED.
Disabled This condition will be true if the specified module (house and unit code) is DISABLED in the DEFINE-X10 DEVICE database. It will be false if the module is ENABLED.
DimLevel ==, <=, >= This condition will be true if the specified module's (house and unit code) current level (0 to10) is equal to ## (specified number). It will be false if not.
DimLevel <= This condition will be true if the specified module's (house and unit code) current level (0 to 10) is less than or equal to ## (specified number). It will be false if the level is greater than ##.
DimLevel >= This condition will be true if the specified module's (house and unit code) current level (0 to 10) is greater than or equal to ##. It will be false if the level is less than ##.
PresetLevel == This condition will be true if the specified module's (house and unit code) Preset level (1 to 31) is equal to ## (specified number). It will be false if not.
PresetLevel <= This condition will be true if the specified module's (house and unit code) Preset level (1 to 31) is less than or equal to ## (specified number). It will be false if not.
PresetLevel >= This condition will be true if the specified module's (house and unit code) Preset level (1 to 31) is greater than or equal to ## (specified number). It will be false if not.
Timer:
Added the condition
Not Running
This condition will be true if the timer is expiring or stopped. It will be false if the
timer is running.
Flag: Created a new state: IDLE.
Added the conditions
Is IDLE
This condition will be true if the specified flag is IDLE. It will be false if the flag
is SET or CLEAR.
Not SET This condition will be true if the specified flag is CLEAR or IDLE. It will be false if the flag is SET.
Not Clear This condition will be true if the specified flag is SET or IDLE. It will be false if the flag is CLEAR.
Not IDLE This condition will be true if the specified flag is SET or CLEAR. It will be false if the flag is IDLE .
Variable / Analog In / HVAC:
Added the conditions
Changes Value
This condition will be true if the value changes since the last schedule pass.
Increases in Value
This condition will be true if the value has increased since the last schedule pass.
Decreases in Value
This condition will be true if the value has decreased since the last schedule pass.
bits 0-7 Set These conditions check to determine if the specified bit is set (has a value of one). Variables/Analog Inputs/HVAC values are stored as 8-bit numbers ranging from 0 to 255. Bit 0 is the least significant bit (LSB) and bit 7 is the most significant bit (MSB). Here are some examples:
If the variable = 0(decimal) (00000000b), no bits are set.
If the variable = 8(decimal) (00001000b), only bit 3 is set.
If the variable = 6(decimal) (00000110b), bits 1, and 2 are set.
If the variable = 192(decimal) (11000000b), bits 7 and 6 are set.
bits 0-7 Not Set These conditions check to determine if the specified bit is NOT set (has a value of zero). Variables /Analog Inputs/HVAC values are stored as 8-bit numbers ranging from 0 to 255. Bit 0 is the least significant bit (LSB) and bit 7 is the most significant bit (MSB).
Date:
Added the conditions
Even Days
Condition is true if the current day of the month is an even number (2,4,6, etc.).
Odd Days Condition is true if the current day of the month is an odd number (1,3,5, etc.).
Season - Spring Condition is true if the current date is between March 20 and June 20.
Season - Summer Condition is true if the current date is between June 21 and September 21.
Season - Fall Condition is true if the current date is between September 22 and December 20.
Season - Winter Condition is true if the current date is between December 21 and March 19.
AM Condition is true if current time is between 12:00 AM (midnight) and 11:59 AM.
PM Condition is true if current time is between 12:00 PM (noon) and 11:59 PM.
Daytime Condition is true if current time is between 6:00 AM and 5:59 PM.
Nighttime Condition is true if current time is between 6:00 PM and 5:59 AM.
Light Condition is true if current time is after sunrise and before sunset.
Dark Condition is true if current time is after sunset and before sunrise.
ASCII In:
Added the conditions
Match 'ssss' starting at character X
This condition is used to compare the ASCII Input string or a portion of it to certain
characters.
The symbol meanings are:
- X refers to the location in the ASCII Input string of the first character to compare (i.e., the character number).
- ssss are the characters to compare the received data to. See the examples for more information.
The condition is true if all characters match exactly, false is any do not match.
EXAMPLES:
1) Suppose an alarm system sends ASCII text messages for it's alarm states. Typical messages the alarm would send are: Alarm Violation Alarm Armed Alarm Ready
To keep track of Alarm states, ASCII In conditions are used.
EVENT: Alarm Status
If
ASCII-In: Match 'Alarm' starting at character number 1[COM1]
Then
|-If
| ASCII-In: Match 'Armed' starting at character number 7[COM1]
|Then
| " Armed state == 1 "
| (V:Alarm State) ) LOAD with 1
|-End
|-If
| ASCII-In: Match 'DisArmed' starting at character number 7[COM1]
|Then
| " Disarmed state == 2 "
| (V:Alarm State) ) LOAD with 2
|-End
|-If
| ASCII-In: Match 'Violated' starting at character number 7[COM1]
|Then
| " Violated state == 3 "
| (V:Alarm State) ) LOAD with 3
|-End
End
2) Suppose you have a weather station that reports the current temperature in the following format:
Temp = 85 degrees
To match the string and convert the value to a variable the following event could be used.
EVENT: Convert Temperature
If
ASCII-In: Match 'Temp = ' starting at character number 1[COM1]
Then
Put value of received char #8-9 into user_VAR [COM1]
(V:Temperature) load with user_VAR
End
Number of characters == Condition is true if the number of characters received (serial string length) is equal to the value.
Number of characters >= Condition is true if the number of characters received (serial string length) is greater than or equal to the value.
Number of characters <= Condition is true if the number of characters received (serial string length) is less than or equal to the value.
IR Power Sensor:
Added the conditions
Goes ON
Condition is true when the Power Sensor goes from an OFF state to an ON state.
Goes OFF Condition is true when the Power Sensor goes from an ON state to an OFF state.
Toggles Condition is true when the Power Sensor changes state.
Telephone
Added the conditions
TouchTone to user_VAR done
Condition is true when the TouchTone to user_VAR conversion is completed. The
TouchTone to user_VAR conversion is completed when 1 - 3 TouchTone digits followed
by the pound (#) digit is entered. The conversion is aborted if a) an onhook condition
occurs before pound digit entered, b) 10 seconds elapse after the start of the conversion,
c) a value greater than 255 is entered. If aborted, the User_VAR value will be loaded
with 255.
Typical uses for this condition is to load another variable or HVAC Setpoint after a successful conversion.
TouchTone to TimeLabel done Condition is true when the TouchTone to TimeLabel conversion is completed. The TouchTone to TimeLabel conversion is completed when 1 - 4 TouchTone digits followed by the star (*) digit for AM or the pound (#) digit for PM is entered. The conversion is aborted if a) an onhook condition occurs before the star or pound digit is entered, b) 10 seconds elapse after the start of the conversion, c) an invalid time is entered. If aborted, the Time Label will not be loaded. Typical use for this condition is to load and announce the TimeLabel after a successful conversion.
- THEN Actions
X10 Device: Added the actions:
Status Request Sends the Status Request command
Status is ON Sends the Status=ON command
Status is OFF Sends the Status=OFF command
Hail Request Sends the Hail Request command
Hail Acknowledge Sends the Hail Acknowledge command
Toggle Module State Toggles the Modules State by sending an OFF command if the module is ON, an ON command if the module is OFF.
Enable Module This command enables a module that was previously disabled. A module must be enabled before it will respond to any commands or transmit an X-10 signal via the schedule.
Disable Module A disabled module will not respond to any commands except for Enable Module. This command can be used as a quick way to prevent any other part of your schedule from controlling a module.
Enable X10 ON Trigger Enables Fast Events based on the X10 ON Trigger. Fast Events Triggers are enabled by default. This command will enable a trigger if it has been disabled.
Disable X10 ON Trigger Disables Fast Events based on the X10 ON Trigger. Fast Events Triggers are enabled by default. This command will disable a trigger if it has been enabled.
Enable X10 OFF Trigger Enables Fast Events based on the X10 OFF Trigger. Fast Events Triggers are enabled by default. This command will enable a trigger if it has been disabled.
Disable X10 OFF Trigger Disables Fast Events based on the X10 OFF Trigger. Fast Events Triggers are enabled by default. This command will disable a trigger if it has been enabled.
Set State ON This command sets the current state in the state table to ON, Level 11. It does not send any X-10 signal over the power line.
Set State OFF This command sets the current state in the state table to OFF, Level 12. It does not send any X-10 signal over the power line.
Set State IDLE This command sets the current state in the state table to IDLE. It leaves the level unchanged. It does not send any X-10 signal over the power line.
Send ON Command This command sends the X10 ON command.
Send OFF Command This command sends the X10 OFF command.
Send BRI ## times This command sends the X10 BRI command ## number of times.
Send DIM ## times This command sends the X10 DIM command ## number of times.
Load variable with dim level This command puts the X-10 module's current light setting into the specified variable. If the light is ON, it's level (0 to 10) will be put in the variable. If the light is OFF, the variable is set to 11.
This command allows you to store the current level and later set the light back to it. See the following commands for more information on setting the light to the level contained in a variable.
Load variable with Preset level Whenever the controller receives a preset dim signal immediately following a house/unit code signal, it stores the preset dim level for that house/unit code.
This command puts the received preset dim level (1 to 32) into the specified variable. This allows you to receive preset dim signals from devices that transmit them.
Set to level in variable This command reads the value of the specified variable and sets the X-10 module to that level. If the variable value is 0 to 10, the light will be turned on at that level. If the variable value is 11, the light will go off. Remember that a light ON at level 0 is not the same as OFF.
Set to Preset level in variable This command transmits a preset dim signal. The preset dim level (1 to 32) is taken from the specified variable. Thus, if the variable contains the value 12, the X-10 signal "preset dim to level 12, 35%, " is transmitted.
Flag
Added the action
Set IDLE
This command sets the Flag state to IDLE.
Variable
Added the actions
increment (rollover at 255)
Increments (i.e. adds 1 to) variable . If the initial value is 255, it will roll over
to zero.
decrement (rollunder at 0) Decrements (i.e. subtracts 1 to) variable . If the initial value is 0, it will roll over to 255.
load with random number Loads variable with a random number (range 0-255).
load with user_VAR Loads variable with user_VAR.
load with RCS HVAC Loads variable with RCS HVAC Temperature/Setpoint. Note this command can only work with the TX10B Bi-directional Thermostat.
variable = variable + ### Add a value (###) to a variable.
variable = variable + var2 Add another variable.
variable = variable - ### Subtract a value (###) from a variable.
variable = ### - variable Subtract a variable from a value (###), and put it into the variable.
variable = variable - var2 Subtract a second variable from the first variable.
variable = variable * ### Multiply a variable by a value (###). If the result is more than the variable maximum (255), it will be truncated to an 8-bit value.
variable = variable / ### Divides a variable by a value (###).
load user_VAR with another variable Load the user_VAR with another variable.
load var1 & var2 with user_16VAR Loads two (8 bit) variables with the user_16VAR (16 bit). The Most Significant Byte (MSB) of user_16VAR is loaded into var1, the Least Significant Byte (LSB) is loaded into var2.
For example, if user_16VAR contains 25,655 the command: load var1 & var2 with user_16VAR would give these results:
var1 = 100 var2 = 55
load user_16VAR with var1 & var2 Loads the user_16VAR(16 bit) with two (8 bit) variables . The Most Significant Byte (MSB) of user_16VAR is loaded by var1, the Least Significant Byte (LSB) is loaded by var2.
For example, if var1 = 25 and var2 = 243 the command: load user_16VAR with var1 & var2 would give these results:
user_16VAR = 6643
(The basic formula is: user_16VAR = (var1 x 256) + var2)
load user_16VAR with var1 * var2 Loads the user_16VAR(16 bit) with the product of two (8 bit)variables multiplied together.
For example, if var1 = 47 and var2 = 128 the command: load user_16VAR with var1 * var2 would give these results:
user_16VAR = 6016
load user_16VAR with var1 + var2 Loads the user_16VAR(16 bit) with the sum of two (8 bit)variables added together.
For example, if var1 = 243 and var2 = 198 the command: load user_16VAR with var1 + var2 would give these results:
user_16VAR = 441
increment user_16VAR Increments the user_16VAR, if the maximum value(65535) is reached, it will roll over to 0.
decrement user_16VAR Decrements the user_16VAR, if the minimum value(0) is reached, it will roll under to 65535.
Message Log Added Message Log Wizards to assist adding variables, analog inputs, user_VAR and user_16VAR
ASCII Output
Added the actions
Put value of recieved char # into user_VAR
These commands look at the specified character location(s) in a serial data string,
converts it to a number, and loads it into the system variable user_VAR. After the
value is put in user_VAR, you can use variable commands to move it to a variable and
perform other operations on it.
- The first command looks at a single character which must be a number between 0 and 9.
- The second command looks at two consecutive characters, both of which must be a number between 0 and 9.
- The third command looks at three consecutive characters, all of which must be a number between 0 and 9.
EXAMPLES:
1) If the received data string is:
234
The following command sets user_VAR equal to 2:
Put value Of received char #1 into user_VAR
The following command sets user_VAR equal to 2:
Put value Of received char #2 into user_VAR
The following command sets user_VAR equal to 23:
Put value Of received chars #1-2 into user_VAR
The following command sets user_VAR equal to 234:
Put value Of received chars #1-3 into user_VAR
2) If the received data string is:
Wind Speed is 15
The following command sets user_VAR equal to 15:
Put value Of received chars #15-16 into user_VAR
Added ASCII Output Wizard to assist adding Time/Date, CID, variables, analog inputs, user_VAR, user_16VAR, binary value and Lutron HomeWorks commands.
RCS HVAC
Added the action
Load SetPoint with user_VAR
Loads the selected Thermostat's SetPoint with user_VAR. This command is useful
to set the SetPoint via TouchTone input.
Example:
EVENT: Change Temp Setpoint
If
TelePhone Seq:'^4822' Received within 7 seconds
" Go offhook, dial HVAC (4822) "
Then
Voice:TEMPERAT SET Thermo Setpoint [CO,ICM]
TouchTone to user_VAR
End
EVENT: Temp Setpoint Done
If
TouchTone to user_VAR complete
Then
(V:Temp Setpoint) load with user_VAR
|-If
| (V:Temp Setpoint) != 255
|Then
| (HVAC:Thermo) Change Setpoint to value in user_VAR
| "allow enough time for X10 codes"
| DELAY 0:00:03
| "reply with new setpoint"
| Voice:TEMPERAT SET TO Thermo Setpoint [CO,ICM]
|Else
| Voice:INVALID TEMPERAT [CO,ICM]
|-End
End
Telephone
Added the actions
user_VAR in TouchTone Output
TouchTone Output can now include the value of user_VAR by using the 'V' character.
Example: Report the current temperature to a numeric pager.
EVENT: Report Temperature to pager
If
Time is 2:00 PM SMTWTFS
Then
TelePhone Out:'^5551212,,,,V,#'
End
Force Remote Access mode (users 1, 2, 3) Forces STARGATE into Remote Access mode for users 1, 2 or 3 bypassing the need to enter the remote access code.
Example: Automatically go to remote access mode when calling from work.
EVENT:
If
CallerID: 6195551212
Then
Force Remote User 1 Access
End
Load user_VAR with TouchTone Loads user_VAR with the next 1-3 touchtone digits followed by the # digit. When the convsersion is done, the IF Condition 'TouchTone to user_VAR complete' will be true and user_VAR will contain the number. If the conversion does not complete normally, the user_VAR will contain 255.
A convserion that does not complete normally is caused by one of the following: More than 3 TouchTone digits are entered. A 10 second timeout occurs Converted value is greater than 255
See the Example shown for 'Load SetPoint with user_VAR'
Load TimeLabel with TouchTone Loads a TimeLabel with the next 2 - 4 touchtone digits followed by the * digit for AM or the # digit for PM. When the convsersion is done, the IF Condition 'TouchTone to TimeLabel complete' will be true and the TimeLabel will contain the new Time. If the conversion does not complete normally, the IF Condition 'TouchTone to TimeLabel complete' will NOT be set and the TimeLabel will not have been changed.
A convserion that does not complete normally is caused by one of the following: More than 4 TouchTone digits are entered A 10 second timeout occurs Converted value is not a valid time
Example: Change a wake up time
EVENT: Change WakeUp Time
If
TelePhone Seq:'^9253' Received within 6 seconds
" (Enter W-A-K-E on telephone) "
Then
" Say current wakeup time "
Voice:WAKE_UP <Wake Up Time> [CO,ICM]
TouchTone to Time Label:(TL:Wake Up Time)
End
EVENT: Wakeup time Converted
If
TouchTone to TimeLabel complete
Then
" Say new wakeup time "
Voice:WAKE_UP TIME <Wake Up Time> [CO,ICM]
End
Voice Output
Added the action
TimeLabel voice outputs
2.39a (9 June 1997)
Note: Version 2.39a update requires both version 2.39a firmware and 2.39a WinEVM software.
Incorporated numerous changes, including:
- Fixed the problem when some customers would exit WinEVM, Windows would crash.
- Fixed the problem with COM2/COM3 Modem access. STARGATE would not properly answer a call with a modem on COM2 or COM3.
- Fixed the problem with Timelabels created in prior versions. Some Timelabels would not convert properly causing timelabel editing problems.
2.39 (4 June 1997)
Note: Version 2.39 update requires both version 2.39 firmware and 2.39 WinEVM software.
Refer to the "Version History Details" section for details on these changes. Version 2.39 requires both firmware and software to run.
VERSION 2.39 CHANGE DETAILS
THEN Macros behave more like schedules with the ability to copy/cut/paste between Macros and Schedules. A THEN Macro window looks and acts like a schedule window. - More than one THEN Macro can be opened at a time. - A schedule download will save all open Macros. - Nested IFs and calls to other THEN Macros are now enabled.
Define THEN Macro
This screen has changed to the spreadsheet style. To edit a Macro, select the name or description and press the EDIT button. To create a new Macro, enter a name and description (optional) and press the EDIT button. Note that a new Macro cannot be edited unless it has a name.
Editing a THEN Macro
Behaves as before and just like a schedule.
Saving a THEN Macro
A Macro can be saved by pressing the Save button on the top button bar (the button with a diskette), or by closing the Macro window. If the Macro has been modified, you will be prompted with whether to save it or not.
Simultaneous ICM and CO Access
Prior to Version 2.39, if the ICM line was in the offhook state, the remote access function on the CO line was inoperable (it would time-out, hang up). Version 2.39 addresses this problem so the ICM line can not interfere with the operation of the CO line and remote access. However, there are still some issues that need to be understood concerning the interaction between the CO and ICM.
Version 2.39 does not support a separate ICM or CO touch-tone session. This means a user can press *1 from the CO line, and pressing a 1 on the ICM will complete the command and send out the A1-ON command with the voice response sent to the ICM (the voice is sent to the source of the last digit, in this case the ICM). A future version will support a separate ICM/CO touch-tone session.
Self Test now restores the longitude/latitude/timezone information stored in the non-volatile memory instead of re-setting to San Diego's.
Special-time's not announcing correct
IVR-Special-time's not announcing correct time After a download, it was noted that some of the IVR-Special time fields would not properly annunciate the correct time. This has been corrected.
Out Volume Change The volume used on DTMF Out was causing over-modulation for certain customers, it has been reduced from level 12 to level 8 (same volume levels as used in voice outputs).