HAI “Integrated Automation” Advanced Programming
SET YOUR “PHASERS” ON STUN! n We understand the need for communication, n but……………... n as a courtesy to all, please set your CELL PHONES for silent operation n This will be appreciated by everyone
Introduction n Programming the Omni Family of automation controllers using HAI’s 1105W Dealers PC Access Upload / Download Software
Please remember………. n Programming is an art n No two people use exactly the same programming style, unless duplicating successful programming routines n We are here to provide you the bricks & mortar to build your own individualized programs for your customer
1st MAIN PRINCIPLE of Programming……… It’s all contingent on your ability to offer your customer the true benefits of convenience, energy savings, and peace of mind. n I. User’s life Styles u Married? Single? u Family? small or grown children? u Frequent entertainers? u Working? Retired? u Usually home? u Out of town often?
2nd MAIN PRINCIPLE of Programming……… Again, It’s all contingent on your ability to offer your customer the true benefits of convenience, energy savings, and peace of mind. n II. Individual Needs u Handicapped? u Many, or few, temperature zones? u Many, or few, security zones? u Degree of automated lights desired u techni-phobic (needs 1 button operation) u techni-maniacs (want every feature available) F Use of peripheral gadgets? Touch Screens, Infra-Red, Voice recognition, etc.
Topics to be covered……….. n Quick Outline of HAI Basic Programming Theory n Programming Inputs, Outputs & Conditionals n Flags n Button Vs Flag n Loops n Nesting n Examples n Training Promo’s
Quick review of Basic Programming n HAI controllers are event driven n A change of state must occur before any program will execute n The controller is constantly searching, every second, for a change of state
Basic Criteria in Programming u When, An activity must occur, an input to the controller must change state before any programming line will execute. u Command, Every program has a command to perform as a result of the When. u &IF, The ‘&IF’ statement is optional in all programming lines. It is used as a conditional. As the controller watches all of the inputs to the system, it is constantly looking for matches for the ‘When.’ When the match occurs, the system looks for a conditional (&IF), to see if the condition “is true” or “is NOT true.” If the condition “is true” it executes the Command. If the conditional “is NOT true” the Command is not executed.
INPUT / OUTPUT / & IF n WHEN (These are the “In’s”) u Time u User Button u Control u Security u Zone u All On u All Off u Alarm u X-10 u Misc. F Phone Dead / Phone Line Ring F Phone On Hook / Off Hook F AC ON / AC OFF F Battery Low / Battery OK F DCM Fail / DCM OK n COMMANDS (“Outs”) u Control u Security u Button u All On u All Off u Scene u Temperature u Message n & IF (and “if true” or “not true”) u Unit u Security u Zone u Time u Misc. F None, Never, Light, Dark, Phone Dead / Ring, On Hook / Off Hook, AC On / Off, Battery Low / OK
Basic Programming Example u In a simple application, a program is created to turn a light on when a door is opened and it is dark (it is dark after sunset). Please note: NOT READY is a security term which means the zone is open and the security system is NOT READY to arm. u WHEN Front Door NOT READY &IF DARK: Front Entry Lt ON u The controller has the above line of programming u 5:58 PM the Front Entry light is off u 5:59 PM the homeowner walks in the Front Door and leaves the door open u 6:00 PM Sunset occurs u 6:01 PM is the Front Entry light on or off? u Many programmers will argue that the light will be on because the statement becomes true at 6:00 PM. This is an incorrect assumption. Notice the line of programming begins with ‘When’ (a moment) not ‘If’ (a state). The key is that an HAI controller is event driven. The line is only executed at the time the Front Door is opened. At that moment sunset had not occurred. Until the door is shut and reopened after 6:00:01 PM, the Front Entry light will not be commanded to turn on. u The action of opening the door causes the system to look at whether it is ‘dark’ or ‘light’ outside and then execute, or not execute, the command.
FLAG, the virtual relay n Flags used as counters n Flags as timers n Flags that keep status n Flags that trigger n Flag locations u Omni LT Unit #’s u Omni II Unit #’s u Omni Pro II Unit #’s
FLAGS u The easiest way to define a flag it to refer to it as a ‘virtual relay’. It is considered a virtual tool. A flag can be in one of three separate states: on, off, or a counting number between 0 and 255. If a flag has a value from 1 to 255 it is considered on and if it’s value is 0 it is considered off. u A flag is created by naming a unit that has been designated as a flag. The unit numbers for flags are different in each type of Omni, but serve the same functions: (OmniPro II / Omni II / OmniLT ). If a house program uses all of the flags, unused controller outputs can be used (OmniPro II / Omni II / OmniLT 17-24, 27 & 28). Once a flag is named it can be turned on, off, set to a value, incremented or decremented. The context in which a flag is used within a routine determines the flag’s function. u Flags are a powerful programming tool that can be used in several ways to accomplish advanced programming routines. The following examples show the main uses of flags as a counter, timer, trigger, or status keeper. There is no need to ‘declare’ how a flag is to be used.
Flag Used as a Counter n Objective A: Turn off the HVAC system if any windows are opened & turn HVAC back to AUTO when all windows are closed n To be named in the NAMES section of PC Access u ZONES (under Zones): FRoom Window, MB Window, Kitchen Window, Office Window u FLAG (under Units): “Window Flag” n Solution: u 1. WHEN FRoom Window NOT READY: INCREMENT Window Flag u 2. WHEN FRoom Window SECURE: DECREMENT Window Flag u 3. WHEN MB Window NOT READY: INCREMENT Window Flag u 4. WHEN MB Window SECURE: DECREMENT Window Flag u 5. WHEN Kitchen Window NOT READY: INCREMENT Window Flag u 6. WHEN Kitchen Window SECURE: DECREMENT Window Flag u 7. WHEN Office Window NOT READY: INCREMENT Window Flag u 8. WHEN Office Window SECURE: DECREMENT Window Flag u 9. WHEN Window Flag ON: Thermostat MODE OFF u 10. WHEN Window Flag OFF: Thermostat MODE AUTO
Flag Used as a Counter u Lines 1,3,5,7: Increment the ‘Window Flag’ each time a window is opened. Since all the windows are closed when the controller is programmed, opening the first windows sets ‘Window Flag’ to 1. u Lines 2,4,6,8: Track window closings. The ‘Window Flag’ counter is decremented by 1 each time a window is closed. u Line 9: When a counter is decremented to ‘0’ it is perceived by system as moving from on to off. This change of state from on to off can be used as a change of state to trigger another event. In this case, the thermostat is placed in ‘automatic’ mode each time all of the windows in the house are closed. u Note: Line 10 will only work in HAI controllers with firmware 1.8 and later. u Line 10: When a counter is incremented from ‘0’ to ‘1’ it is perceived by system as moving from off to on. The ‘on’ condition can be used to trigger another event. In this case, the thermostat is placed in ‘off’ mode each time the first window in the house is opened.
Flag Used as a Timer n Objective B: To turn on the outside floodlights for 5 min. when motion is detected in a driveway or yard. n Objective B1: To also allow the user to run a program to shut the outside floodlights off, even if the time has not elapsed in the above program. n To be named in the Names section of PC Access u Zone (under Zones): Outdoor Motion u Flags(under Units): “Time Light” & “Flood Flag” F Use flag #’s corresponding to Model of Omni system u Floodlights(under Units): Floodlights (specific address or addresses)
Flag Used as a Timer n Solution B: u 1. WHEN Outdoor Motion N/R: Flood Flag ON FOR 5 MIN. u 2. WHEN Flood Flag ON & IF Dark: Floodlights ON u 3. WHEN Flood Flag OFF: Floodlights OFF u This program will turn the lights on when the motion is first detected. Each time motion occurs the timer will renew to the full 5 minutes. When the 5 min. elapses without motion the light is turned off. n Solution B1: u In some cases the user may want to defeat the timer. A flag can be used (“Time Light Off”) u 1. WHEN Outdoor Motion N/R &IF Time Light ON:Flood Flag ON FOR 5 MINUTES. u 2. WHEN Flood Flag ON & IF Dark: Floodlights ON u 3. When Flood Flag Off: Floodlights OFF u 4. WHEN Time Light OFF: Set Flood Flag to “0” (OFF) u The homeowner can be given a simple way (X-10 device) to turn the Time Light Flag on and off. When it is On, the light turns off after 5 minutes, when Time Light Flag is turned off the light will turn off..
Flag Used as a Trigger n Objective C: To simplify thermostat temperature control for multiple Omnistats when the user is Home, Away, or away for a longer period of time (Vacation). n To be named in NAMES section of PC Access F Flags: “Comfort,” “Setback,” “Vacation” n Solution C: u 1. WHEN Comfort ON: Down T'Stat MODE AUTO u 2. WHEN Comfort ON: Down T'Stat HEAT SETPOINT 68 u 3. WHEN Comfort ON: Down T'Stat COOL SETPOINT 72 u 4. WHEN Comfort ON: Up T'Stat MODE AUTO u 5. WHEN Comfort ON: Up T'Stat HEAT SETPOINT 68 u 6. WHEN Comfort ON: Up T'Stat COOL SETPOINT 72 u 7. WHEN Setback ON: Down T'Stat MODE AUTO u 8. WHEN Setback ON: Down T'Stat HEAT SETPOINT 65 u 9. WHEN Setback ON: Down T'Stat COOL SETPOINT 75 u 10. WHEN Setback ON: Up T'Stat MODE AUTO u 11. WHEN Setback ON: Up T'Stat HEAT SETPOINT 65 u 12. WHEN Setback ON: Up T'Stat COOL SETPOINT 75
Flag Used as a Trigger u 13. WHEN Vacation ON: Down T'Stat MODE AUTO u 14. WHEN Vacation ON: Down T'Stat HEAT SETPOINT 62 u 15. WHEN Vacation ON: Down T'Stat COOL SETPOINT 78 u 16. WHEN Vacation ON: Up T'Stat MODE AUTO u 17. WHEN Vacation ON: Up T'Stat HEAT SETPOINT 62 u 18. WHEN Vacation ON: Up T'Stat COOL SETPOINT 78 u 19. WHEN ARM DAY: Comfort ON u 20. WHEN ARM DAY INSTANT: Comfort ON u 21. WHEN ARM NIGHT: Setback ON u 22. WHEN ARM NIGHT DELAY: Setback ON u 23. WHEN ARM AWAY: Setback ON u 24. WHEN ARM VACATION: Vacation ON u 25. WHEN OFF &IF Fire Flag OFF: Comfort ON n In this example, Away, Setback, and Vacation’ are all being used as trigger flags. Once the system is armed the Setback, Comfort and Vacation flags will remain on indefinitely. There is no need to turn these flags back off. Each time a programming line turns the appropriate flag on (i.e. Comfort ON) the lines associated with ‘WHEN Comfort ON’ will execute even though the flag is already on. The action of turning the flag on (even if the flag was not previously in an off state) triggers all routines the start with ‘WHEN the flag ON’. n Notice that each of the three temperature ranges begin with placing the thermostat mode in ‘auto’. The methodology ensures that the thermostat will maintain the desired temperatures. In an automated environment it is assumed that the system will correct a users mistake. On a nice day a user may manually turn a thermostat ‘off.’ If they leave with the thermostat in the ‘off’ mode there is an expectation that the house will not become too hot or too cold while they are away. By starting all temperature settings with ‘auto’ a thermostat should never accidentally be left in the ‘off’ mode.
Flag Used to Keep Status n Objective D1: To turn the kitchen light on for 15 minutes when user walks through hall from bedroom to kitchen between the hours of 12 AM & 6 AM n To be named in the NAMES section of PC ACCESS u Zone: “ Hall Motion” u Flag: “ Nite Lt Flag” u Unit: “Kitchen Light” n Solution D1: u 1. (WHEN) 12:00 AM MTWTFSS: Nite Flag ON for 6 hours u 2. WHEN Hall Motion N/R & IF Nite Lt Flag ON: Kitchen Light on for 15 min u Kitchen Light will go on for 15 minutes only when “Nite Light Flag is on” and user walks through Hall Motion Detector
Flag Used to Keep Status n Objective D2: In the event of a fire alarm, turn the thermostat & fan OFF to avoid feeding air to the fire. Also, prevent placing the thermostat & fan on AUTO when security is disarmed from a fire condition. n To be named in the NAMES section of PC ACCESS u Flag: “Fire Flag” n Solution D2: (Unsafe Solution) u 1. WHEN FIRE ALARM: Thermostat Mode Off u 2. WHEN FIRE ALARM: Thermostat Fan Auto (Fan Auto=OFF) u 3. WHEN OFF(Security): Thermostat Mode AUTO n Without a flag, a very dangerous scenario can occur. If a fire were to occur, it is human nature to first disarm the system, then determine if it is a false alarm. In the lines above, the system would appropriately turn the thermostat Off. Unfortunately, when the system is disarmed, the thermostats would be turned back on!
Flag Used to Keep Status n To prevent this very dangerous situation, a flag is used. n Solution D2 (Safe Solution) 1. WHEN FIRE ALARM: Fire Flag ON FOR 15 MINUTES 2. WHEN FIRE ALARM: Thermostat MODE OFF 3. WHEN FIRE ALARM: Thermostat FAN AUTO (FAN AUTO = OFF) 4. WHEN OFF &IF Fire Flag OFF: Thermostat MODE AUTO 5. WHEN AWAY: Fire Flag OFF 6. WHEN NIGHT: Fire Flag OFF 7. WHEN VACATION: Fire Flag OFF 8. WHEN Fire Flag OFF: Thermostat MODE AUTO u Line one turns ‘Fire Flag’ on any time a fire alarm occurs. ‘Fire Flag’ is not controlling anything, it is simply keeping track of the fire condition status (in fire alarm or not). The second change is to the fourth line. The addition of the ‘&IF Fire Flag OFF’ is being used to determine if it is safe to place the thermostats in automatic mode. By consulting the ‘Fire Flag’ the thermostats are kept from restoring when the system is disarmed during a fire. Lines six through eight reset the ‘Fire Flag’ each time the system is armed. Using this approach, the ‘Fire Flag’ is reset each time the smoke detector is reset. Line 8 ensures the thermostat is never left in off mode since the Fire Flag is reset 15 minutes after a fire condition is detected.
Button vs. Flag u A button and a flag are very similar. A button is designed to be a simple method for a user to trigger multiple actions based on a single event. The term button is synonamous with “SCENE” or “MACRO,” & the term is used to signify ‘One Button” operation. For instance a ‘Good Night’ button is a very popular routine that will arm the security to night, turn off some lights as desired and setback the temperatures on the thermostats, all executed from running the same “Button.” Since this routine is designed to either be triggered from the console, or telephone (menu function #3), or through another interface such as a button next to the bed (X-10, a wireless keyfob, or an ALC ‘program’ switch) it is best to use a button. Essentially a button functions just like a trigger flag. When it is executed a number of actions can occur. The same functionallity can be achieved with a trigger flag for routines that should be hidden or that the user should not manually operate. Functionally a button and a flag are identical the key difference being whether the user should have manual operation.
Loops n Objective E: To flash a light on and off when the phone rings and keep it flashing as long as the phone keeps ringing. n To be named in the NAMES section of PC Access u Flag: “Light Flash” u Unit: Family Rm Lt n Solution: E u 1. WHEN PHONE RINGING: Light Flash ON for 1 second u 2. WHEN Light Flash OFF & IF PHONE RINGING: Light Flash ON FOR 1 SECOND u 3. When Light Flash ON: Family Rm Lt ON FOR 1 Second u This program can be a helpful application for the hearing impaired or notification while in the shower or vacuuming. The first line triggers starts the routine based on the first phone ring. The first ring executes line 3, which turns the ‘Family Rm Lt’ on for 1 Second and then turns the light back off (1 flash cycle). Each time the ‘Light Flash’ flag turns off the system looks to see if the phone is still ringing (line 2). As long as the phone is still ringing line 3 will execute every second. When the phone stops ringing line 2 becomes false and the routine stops.
NESTING, a Button executing a Button
Nesting……. Execution order n When a button is executed, all of the items within the button are executed and placed on a ‘stack’. A stack is a programming term that reflects the order in which items are executed. Think of a stack as index cards. As each programming line is executed, an index card is written stating what the system should do next. One card can only be placed on top of the card that preceded it. When the system is executing the cards, it only pulls from the bottom. Since the system is ‘stack’ based, it searches for all programming lines that match a ‘button’ that is being executed. Each item within the button is placed on the stack and executed in the order in which they were placed. n The term ‘nesting’ refers to a ‘button’ executing a ‘button’. In this scenario, the second button is always placed at the end of the stack. Therefore, the second button will only execute after the first ‘button’ has completed its tasks. This can lead to some interesting results unless the execution order of buttons is understood. n Notice that regardless where the ‘WHEN Front Yard: RUN Back Yard’ is placed, Back Yard will always be executed after Front Yard.
Bathroom Heater on in During Cold Weather n Objective F: To turn on the bathroom heater for 30 minutes on weekday mornings(7:00 AM), but only when there is someone home AND the outdoor temperature is cold (below 45 degrees). n Solution: u 7:00AM MTWTF & IF Outdoor Temp N/R & IF NIGHT (armed in night): UNIT 5 ON FOR 30 MINUTES. u This program is utilizing a double conditional available in Omni II and Omni Pro II. If the 1st conditional is cancelled, the 2nd conditional will be cancelled also.
Cycling a Fan On & Off n Objective G: To have the bedroom fan cycle ON FOR 20 MINUTES and then OFF FOR 90 MINUTES while the system is in the AWAY mode to keep the temperature stabilized. n To be named in the NAMES section of PC Access u Flags: “Cycle Flag” “Cycle Timer” u Unit: Bedroom Fan n Solution: u 1. WHEN AWAY: Cycle Flag OFF u 2. WHEN Cycle Flag Off & IF AWAY: Bedroom Fan ON FOR 20 MINUTES u 3. WHEN Bedroom Fan OFF & IF AWAY: Cycle Timer ON FOR 90 MIN. u 4. WHEN Cycle Timer OFF & IF AWAY: Cycle Flag OFF u This program will save energy by reducing the amount of time the HVAC system will run due to more even temperatures in the home.
Cycle Sprinkler Zones On & Off n Objective H1: To activate sequentially four sprinkler zones (sprinkler valves), each of the zones to be turned on for a specific amount of time on a regular daily time schedule n Objective H2: To activate the same sequential sprinkling routine as above, at any time of the day by running a “Button” (Macro). n Solution H1: u 2:30 PM MTWTFSS: Sprinkler #1 ON for 15 Min. u 2:45 PM MTWTFSS: Sprinkler #2 ON for 15 Min. u 3:00 PM MTWTFSS: Sprinkler #3 ON for 10 Min. u 3:10 PM MTWTFSS: Sprinkler #4 ON for 20 Min.
Cycle Sprinkler Zones On & Off n Solution H2: u To be named in the NAMED section of PC Access F User Button: “Start Sprink” F Flag: “Sprink Flag” u 1.WHEN Start Sprink: Sprink Flag ON u 2.WHEN Start Sprink & IF Sprink Flag ON: Sprink #1 ON for 15 u 3.WHEN Start Sprink & IF Sprink Flag ON: Sprink #2 ON for 15 u 4.WHEN Start Sprink & IF Sprink Flag ON: Sprink #3 ON for 10 u 5.WHEN Start Sprink & IF Sprink Flag ON: Sprink #4 ON for 20 u 6.WHEN Sprink #4 OFF: Sprink Flag OFF n When the "START SPRINK" macro is activated, a Flag (SPRINK FLAG) is turned on. As long as the Flag is "ON", each line of the program will be executed. n Next, SPRINKLER #1 will turn for a fifteen-minute duration. After the fifteen-minute period has expired, SPRINKLER #1 will turn off, breaking connection to VALVE #1. The valve will shut off and SPRINKLER #1 OFF will trigger SPRINKLER #2 to turn on. Similarly, SPRINKLER #3 will start when SPRINKLER #2 OFF, and SPRINKLER #4 will start when SPRINKLER #3 OFF.
Cycle Sprinkler Zones On & Off n If the homeowner only wants to water depending on soil moisture or amount of rainfall, this can be accomplished by using a "fixed type" moisture sensor or rain gauge. The connection should be made to a zone (Zone 14 here) that is configured as an “Auxiliary” zone type. When the moisture or rainfall exceeds a fixed point, the sensor will make the zone not ready. The condition should be added to the first line of the "START SPRINKLER" macro: n WHEN START SPRINK &IF MOISTURE SENSOR SECURE: SPRINK FLAG ON n If at any time, the homeowner would like to stop the sprinkler sequence, you can create an "END SPRINK" macro button. This macro will shut off the current "SPRINKLER" valve and terminate any pending programs under the "START SPRINK" macro button: n 1. WHEN END SPRINK: SPRINK FLAG OFF n 2. WHEN END SPRINK: SPRINKLER #1 OFF n 3. WHEN END SPRINK: SPRINKLER #2 OFF n 4. WHEN END SPRINK: SPRINKLER #3 OFF n 5. WHEN END SPRINK: SPRINKLER #4 OFF
HAI Special Training Offer Omni LT Promo 11 (Limit two) For professional Dealers / Installers u Package Includes: OmniLT controller 1 Universal Console with trim ring 1105W Dealer Windows PCAccess Two Way X-10 Lock and Keys Serial Cable RJ31X telco jack and cable Sample home control programs (computer not included) n $551 Value….Only $
HAI Special Training Offer #2 Omni II Promo 14 (Limit two) For professional Dealers / Installers Package Includes: Omni II controller 1 Flush Mount Console with Silk Screen 1105W Dealer Windows PCAccess RC-80 Single Stage Thermostat Two Way X-10 Lock and Keys Serial Cable RJ31X telco jack and cable Sample home control programs (Computer not included) $1033 Value….SDP $949…Training special…$ (includes shipping!)