ISY-99i/ISY-26 INSTEON:Program Commands

From Universal Devices, Inc. Wiki

What are ISY Commands

The command set for the ISY is simple. It has only the commands needed to automate your INSTEON setup. Creating the code is done with the built-in editor in the ISY Administrative Console. It is not a freeform type of language, but rather a very structured language which is enforced by the editor itself. Everything is written by selecting your Commands and Arguments from GUI pull-downs, which make programming the ISY a snap. Please take time to review the command table below to further understand the syntax of this system.


  • expr - is an expression is a combination of operators, variables, and grouping symbols (such as parentheses) arranged in a meaningful way which can be evaluated.
  • body - is a group of commands and arguments arranged in a meaningful way which can be executed.
  • arg - is one or more input variables to a sub-command or sub-program which are used to modify its functional behavior.
  • node - is to be consider either a device or a scene in home automation terms.
  • provider - is one or more of the notification message providers.


Expression Operators

  • is - compares status
  • is not - compares inverse status
  • > - compares greater than status
  • < - compares less than status


Control vs Status

  • Control 'node' is switched On
    • When you use 'Control' you are testing for how it was turned on, eg. On, Fast On, Off, Fast Off etc. You see the word 'switched' to emphasize that.
    • If the action listened for occurs (eg. Fast On) then this condition activates the program (causes program to run either then or else path).


  • Status 'node' is On
    • When you use 'Status' you are testing for its current brightness level.
    • If the status changes then this condition activates the program (causes program to run either then or else path).


This chart shows the difference between when the user presses a device button On vs when a scene is triggered On by a device or controller on the INSTEON network.

  • Scene
    • node a (controller)
    • node b (controller)
    • node c (responder)


Button Press

(node a)

Button Press

(node c)

Scene Change

from (node a)

Scene Change

from (node b)

Control 'node a'

is switched On

true false true false
Status 'node a'

is On

true false true true


Device Intensity Level Arguments

With a device you have several options on what can be performed with them. Depending on if the device is a relay or a dimmer the ISY will provide the proper arguments for it. Here is a list of what each argument equates to.

  • On/Off
    • On - sends the INSTEON "Single Tap ON" command
      • On means 100% for dimmer devices, select a Level (1-99%) if this is not the desired result.
      • On will set a Scene to it's selected levels using the ramp rates set in the scene.
    • Off - sends the INSTEON "Single Tap OFF" command
    • Fast On - sends the INSTEON "Double Tap ON" command
    • Fast Off - sends the INSTEON "Double Tap OFF" command
  • Level
    • Brighten - sends the INSTEON "Hold Press BRIGHTEN" command
    • Dim - sends the INSTEON "Hold Press DIM" command
    • Fade Up - sends a INSTEON "Manual Change Level UP" command, that says active until an ISY "Fade Stop" command
    • Fade Down - sends a INSTEON "Manual Change Level DOWN" command, that says active until an ISY "Fade Stop" command
    • Fade Stop - sends a INSTEON "Manual Change Level STOP" command, which ends an active ISY "Fade Up" or ISY "Fade Down" command
  • Status
    • Query - triggers the ISY to check an "ISY node" for status


ISY Commands

Command Category Description Arguments Sample Code
If expr

Then body1

Else body2

Content The 'If' command evaluates its expression. The 'Then' and 'Else' arguments are key words to make the command easier to read. When the 'If' is true it will execute the 'Then' part of the program and when the 'If' is false it will execute the 'Else' part of the program. na
If
        Time is  6:00:00AM 
Then 
        Set  Scene 'Outside Lights' Off 
Else
   - No Actions - (To add one, press 'Action')
And expr

Or expr

Content These words are expression key words that logically group together expressions. The 'And' requires both expressions to be a true result. The 'Or' requires only one expression to be a true result. The two can be used more than one time to check many different expressions. na
If 
        Status  'Closet' is On 
    And Control 'Closet' is not switched Off 
If 
        Status  'Pantry' is On 
    Or  Control 'Pantry' is not switched Off
Time Is arg Schedule This command word is to specify an exact time for an event to occur. It has a small timeout window in which it makes sure that the event took place. Sunset, Sunrise, Last Run, Time
If
        Time is  3:00:00AM
From arg

To arg

Schedule The 'From' and 'To' words which are only used in pairs are for expressing a length of time. Sunset, Sunrise, Last Run, Time, Date, Before, After, Same Day, Next Day, (2,3,4,5,6 Days Later)
If
        From    Sunset 
        To      Sunrise (next day)
If
        From    12:00:00AM on 2007/12/25
        To      12:00:00AM on 2007/12/26
From arg

For arg

Schedule The 'From' and 'For' words which are only used in pairs are for expressing a length of time. The From time is the starting point and the For is the length of time it will be true. Sunset, Sunrise, Last Run, Time, Date, Before, After
If
        From    Sunrise
        For     30 minutes
If
        From    Last Run Time for 'New Years'
        For     1 hour and 30 minutes 
On arg Schedule The optional 'On' word is for specifying certain days of the week. It requires that a 'From', 'To' combo or 'Time is' command to be specified.

The 'Never' argument prevents the program from being evaluated, effectively commenting it out. To set 'On Never' deselect the 'All' option and deselect all seven of the days options.

Mon, Tue, Wed, Thu, Fri, Sat, Sun, Never
If
        On Mon, Tue, Wed, Thu, Fri
        From    Sunset 
        To      Sunrise (next day)
If 
        On Never 
        Time is  12:00:00AM 
Status 'node' arg Condition The status command checks the current status of a node. It is true if the node meets the specified condition. Is, Is Not, <, >, On, Off, 1% - 99%
If 
        Status  'Family Room' is On 
Control 'node' arg Condition The control command checks for a current event of a node. It is watching for a node to be activated by the user. It becomes true when the event matches the specified condition. It has a small timeout window in which it makes sure that the event took place. Is, Is Not, On, Off, Fast On, Fast Off, Fade Up, Fade Down, Fade Stop
If 
        Control 'Garage' is not switched Off 
Program 'node' arg Condition The program command evaluates another program for its status. Is, True, False
If
        Program 'Christmas Day' is True
X-10 'node/arg' arg Condition The X-10 command listens for X-10 events. Is, Is Not, Received, X-10 Commands
If
        X-10 'A1/On (3)' is Received
IR 'node' arg Condition The IR command listens for IR events. Is, Is Not, Pressed, Double Pressed, Held, Released
If 
        IR 'Movie Time' is Pressed 
Set 'node' arg

Set Scene 'node' arg

Action The 'Set' command sends INSTEON commands to the provided node. It also is used for setting the Query table with the latest status of a node. The 'Set Scene' is the same as the 'Set' command but sends INSTEON commands to a scene, it is an automatically displayed command when a scene node is selected. On, Off, Fast On, Fast Off, Brighten, Dim, Fade Up, Fade Down, Fade Stop, 1% - 99%, Query
Then
        Set 'Bath Light' On
Then
        Set  Scene 'All Lights' On
Then
        Set  Scene 'My Lighting' Query
Send X-10 'node/arg' Action The 'X-10' command executes X-10 Commands for the provided X-10 node address. X-10 Commands
Then
        Send X-10 'A1/On (3)'
Send Notification 'provider' Action The 'Send Notification' command triggers the ISY to brodcast a notice via the configured providers. To All
Then
        Send Notification to All
Run program 'node' arg

Stop program 'node'

Enable program 'node'

Disable program 'node'

Set program 'node' To Run At Startup

Set program 'node' To Not Run At Startup

Action The 'Run program' command causes the specified program to begin execution. The target program's state will become True or False as the program's Then or Else clause is executed. All normal conditions and restrictions apply; i.e. the target program will begin execution regardless of the state of its Enabled checkbox, and the target program will not begin execution if it resides within a folder tree any of whose folder's conditions are false.

Run program 'node' (If) will cause the target program's conditions to be evaluated, and the Then or Else clause to begin execution as the conditions are true or false. If the target program has no conditions, its Then clause begins execution.

Run program 'node' (Then Path) will cause the target program's Then clause to begin execution, regardless of its conditions.

Run program 'node' (Else Path) will cause the target program's Else clause to begin execution, regardless of its conditions.

Stop program 'node' will cause the target program to immediately cease execution.

Enable program 'node' will cause the target program to become enabled.

Disable program 'node' will cause the target program to become disabled.

Set program 'node' To Run At Startup will cause the target program to be set to run at startup.

Set program 'node' To Not Run At Startup will cause the target program to be set to not run at startup.

If, Then Path, Else Path, Stop, Enable, Disable, Set To Run At Startup, Set To Not Run At Startup
Then
        Run Program 'Porch Timer' (If)
Else
        Run Program 'Porch Timer' (Then path)
Then
        Run Program 'Porch Timer' (Else path)
Else
        Stop Program 'Porch Timer'
Then
        Enable Program 'Porch Timer'
Then
        Disable Program 'Porch Timer'
Else
        Set Program 'Porch Timer' To Run At Startup
Else
        Set Program 'Porch Timer' To Not Run At Startup
Wait arg random Action The 'Wait' command causes the program to pause for the specified amount of time (hours, minutes, seconds) before executing the next statement within the program. If the Random box is checked, the delay will be randomly chosen between zero and the specified amount of time, inclusive.

The 'Wait' command, when encountered during program execution, will cause the program's conditions to be reevaluated (see Statement Execution Order).

Time, Random
Then
        Wait  5 seconds
Repeat Every arg

Repeat For arg Random

Action The 'Repeat' command causes the following statements to be repeated, up to the next Repeat command or the end of the If or Else clause. The statements to be repeated, are indented to show the extent of the Repeat loop.

Repeat Every Time causes the Repeat block to repeat every specified amount of time (hours, minutes, seconds). This form has no Random option.

Repeat For Times Random causes the Repeat block to repeat the specified number of times. If the Random box is checked, the number of repeats will be randomly chosen between zero and the specified number, inclusive.

An argument of 0 times prevents the statements within the Repeat block from executing, effectively commenting them out.

The 'Repeat' command, when encountered during program execution, will cause the program's conditions to be reevaluated (see Statement Execution Order).

Every, For, Time, Random
Else
        Repeat Every  24 hours
           Send Notification to All
Then
        Repeat  3 times Random
           Set 'Overhead Light' On
           Wait 2 seconds
           Set 'Overhead Light' Off
Then
        Repeat  0 times  Comment out block
           Set 'Holiday Lights' On
Comment Comment The 'Comment' box creates a single note for the complete program. It is shown below the program in the same Program Content window pane. na
This is a comment for remembering some 
details about a program.


X-10 Commands

These are the X-10 commands has been included into the ISY. They are utilized through two different ISY program commands 'X-10' and 'Send X-10'.

  • All Lights Off (1)
  • Status=off (2)
  • On (3)
  • Preset Dim (4) - Preset dimmer levels 0% to 48%. See level chart below for corresponding letter code for the desired dim level.
  • All Lights On (5)
  • Hail Acknowledge (6)
  • Bright (7)
  • Status=on (8)
  • Extended Code (9)
  • Status Request (10)
  • Off (11)
  • Preset Dim (12) - Preset dimmer levels 52% to 100%. See level chart below for corresponding letter code for the desired dim level.
  • All Units Off (13)
  • Hail Request (14)
  • Dim (15)
  • Extended Data (16)


Letter Code Preset Dim (4) Preset Dim (12) Output Level (4) Output Level (12)
M 0 16 0.00% 51.61%
N 1 17 3.23% 54.84%
O 2 18 6.45% 58.06%
P 3 19 9.68% 61.29%
C 4 20 12.90% 64.52%
D 5 21 16.13% 67.74%
A 6 22 19.35% 70.97%
B 7 23 22.58% 74.19%
E 8 24 25.81% 77.42%
F 9 25 29.03% 80.65%
G 10 26 32.26% 83.87%
H 11 27 35.48% 87.10%
K 12 28 38.71% 90.32%
L 13 29 41.94% 93.55%
I 14 30 45.16% 96.77%
J 15 31 48.39% 100.00%


Related Pages



ISY-26 INSTEON / ISY-99i Series INSTEON : User Guide : Program Details Tab


ISY-26 INSTEON / ISY-99i Series INSTEON : How-To Guide : Programs