ISY-99i/ISY-26 INSTEON:Program Commands
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.
- 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.
- node a (controller)
- node b (controller)
- node c (responder)
from (node a)
from (node b)
|Control 'node a'
is switched On
|Status 'node a'
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 - 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
- On - sends the INSTEON "Single Tap ON" command
- 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
- Query - triggers the ISY to check an "ISY node" for status
|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')
|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
|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
|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).
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.
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)|