panzer948 Posted January 10, 2015 Posted January 10, 2015 (edited) Hi, Just got the 994i a couple of weeks ago and learning some basic programming. I've done a few things but having trouble adding in some kind of delay when I want to select an away status when leaving the house (similar to your common alarm system). So far I have one of my keypad linc buttons "labeled away" as a controller for an if statement for one of my program folders (which I named "away" for any programs I want to run when I have activated the keypad controller button "away"). My program folder (away) condition is as follows: If Status 'Hall Keypad-Hallway / Hall Keypad-Away' is not off Then Allow the programs in this folder to fun. It was strange to me that I had to select "status" and "is not off" versus controller and "on" as the manual seemed to indicate. But this method does seem to work. I have two programs in the away folder so far. One is a motion alert as follows: If Status 'Motion (Stairs)--Sensor' is On Then Send Notification to 'Bryan Text' This seems to work okay but I noticed that if motion is detected soon after an initial motion, no text is generated. I guess this is a good thing to cut down on several alarms from a single intrusion. My other program is to activate my hallway lights on and off several times to hopefully scare an intruder away. I will later likely add an alarm or other deterrents. It is as follows: If Status 'Hallway Kepad-Hallway' is Off and Status 'Motion (Stairs)--Sensor' is On Then Repeat 6 times Set 'Hall Keypad-Hallway' Fast On Set 'Hall Keypad-Hallway' Fast Off Wait 1 second So my question is two-fold. Is the above method the best way to get these results; and more importantly is there a way to introduce some kind of delay for these programs to run once I hit the away keypad controller to put these programs in a run status? The problem is that as soon as I hit the keypad away controller button I will get a text alert and hallway lights to blink on and off before I can even get out of the house due to the motion sensor being near the controller keypad. Would be nice if I can hit the away controller and have a Then statement to add a wait period say 30 seconds or a minute. I don't see where I can add a "then" statement of the folder conditions program where I know they have wait options Any ideas? I do have two door sensors on order to make the system more robust. Edited January 10, 2015 by panzer948
oberkc Posted January 10, 2015 Posted January 10, 2015 I don't recall that there is the option for a program to disable a folder, but there IS an option to disable programs. The way I see it, you have, thus, two choices. Create a variable (I will call it "$away"). Then create a program: If Status 'Hall Keypad-Hallway / Hall Keypad-Away' is not off Then wait 10 minutes "$away" = 1 else $away = 0 Modify your folder condition If Status '$away' = 1 Then run programs in this folder The second option would eliminate the variable and folder. So, get rid of the folder and keep the existing two programs out in the open. Then, create this program: If Status 'Hall Keypad-Hallway / Hall Keypad-Away' is not off Then wait 10 minutes disable motion alert program disable other program else enable motion alert program enable other program Pick one of these options that looks good to you.
panzer948 Posted January 10, 2015 Author Posted January 10, 2015 Okay, thanks for quick reply. I like the idea of adding variables, altough I haven't explored using them yet and didn't understand the example in the manual. I will give that first option a go to see how it works.
panzer948 Posted January 10, 2015 Author Posted January 10, 2015 (edited) Wow, I am at a loss on creating a varibable. I understand how to name it but that's about it. So should this be a integar or state variable and what values do I add in the "Init" and "Value" columns? I tried naming it $away but it said I couldn't use a number in the name (I assume that was the $ symbol). Sorry I am such a noob on variables. New to programing. Also, if your first program suppose to be in the Away folder or outside of it. Edited January 10, 2015 by panzer948
stusviews Posted January 10, 2015 Posted January 10, 2015 If you are testing for the value of a variable and are using something else as a trigger, then use an integer variable. If you want the program to run any time the variable changes to (or from) a particular value, then use a state variable. IF control device is turned on and integer variable is value THEN do this IF state variable is value THEN do this
panzer948 Posted January 10, 2015 Author Posted January 10, 2015 I see. Starting to make sense now with variables. Can someone possibly give an example of using the variable using the example in original question like the 2nd poster suggested? That would be great. Thanks again.
stusviews Posted January 10, 2015 Posted January 10, 2015 (edited) A variable is not needed IF Control 'Keypad Button" is switched ON THEN Wait hours minutes seconds enable away program ELSE disable away program But, if you want one, then IF Control 'Keypad Button" is switched ON THEN Wait hours minutes seconds Set state variable to x ELSE Set state variable to y Away program IF state variable is x Edited January 10, 2015 by stusviews
oberkc Posted January 11, 2015 Posted January 11, 2015 I am away right now, so I cannot confirm on my admin panel. Have you created the variable yet. Is it a state variable? If your intention is to continue using the folder to enable or disable your two programs, I believe all you would do would be create a condition, based on the variable being = 1. The exact syntax will take care of itself, from the selection boxes available. Then you would simply create a whole new program: If Status hall keypad is not off <<<<must use STATUS here Then Wait hh.mm.ss <<<<pick your time Set variable =1 <<<enables folder Else Set variable =0 <<<or anything other than 1 If you are taking the folder approach, there is no need to include the variable in your two programs within the folder.
oberkc Posted January 11, 2015 Posted January 11, 2015 (edited) I believe the ISY will add the preceding $ to the variable name. I would put initial value as 0. This is the value that will be assigned if the ISY reboots for whatever reason (such as power interruption). I assume you are home more than away, so this seems like the natural starting point. There is a way to go through a power interruption and keep your variable, but I suggest getting this working first without worrying about such things, then we can talk about thenext steps. First program should be outside the folder. Edited January 11, 2015 by oberkc
stusviews Posted January 11, 2015 Posted January 11, 2015 It's allowable to use a variable as a condition for the program(s) in a folder to run.
panzer948 Posted January 11, 2015 Author Posted January 11, 2015 Thanks for all the pointers. I'm away from home at the moment but will give it a go when I get back this afternoon. I will report in what I end up using. Thanks,
panzer948 Posted January 19, 2015 Author Posted January 19, 2015 (edited) Hi, As indicated above, I have a keypad controller button assigned to away (toggled on and off) that I want to press each time I leave the house (like your standard alarm system). I thought I followed some of the advice posted above to get a delayed start of several programs when I exit the house. Attached is an image of the program I setup to activate all the various programs (3 motion/door notifications, curtesy lights to come on if between dusk/dawn, and a flash of lights like an alarm). I have all my "away" programs in a separate folder. My away folder has the attributes shown on the second attachment. Today when leaving I noticed it still doesn't seem to be following the wait period before programs activate. Both the lights flashed soon after I pushed the away keydpad (interior motion detected) and when leaving the house withing 1.5 mins I received a text message that my door was open and my hallway lights came on (due to program running during away status to activate notificaiton and hallway light upon open door sensor between dusk/dawn). Basically everything is working except that 1.5 min. wait period. Any suggestions on what I could do to get this. I didn't try using variables yet since I am not as familiar with that setup. Edited January 19, 2015 by panzer948
oberkc Posted January 20, 2015 Posted January 20, 2015 Perhaps the question is whether the programs are ever DISABLED. My guess is not. Your first program will never run FALSE, unfortunately. Perhaps if you change CONTROL to STATUS, you may have better luck. In the end, I think the wait period is happening, but the programs were never disabled, so waiting a period of time to enable a program that is already enabled will appear to have no effect. It is easy enough to check. In the program status, do you see any of these programs being disabled?
panzer948 Posted January 20, 2015 Author Posted January 20, 2015 Good point about the first program. I changed control to "status is not off" in the first program but the status is always enabled (true). However, the good news it that the wait period appears to be working now. Just tried it and the program status indicated it was running the "then" under activity and I could open my door and setoff motion detector without receiving notifications during that 1.5 min. period. As soon as 1.5 min. elapsed; I could trigger them and receive notifications as planned. I will do more tests tomorrow. I guess using Control to On was the problem. I need to reread what Status actually means. See attached pic for new configuration of first program while keypad controller is set to "away". Thanks,
stusviews Posted January 20, 2015 Posted January 20, 2015 CONTROL requires the the device itself issue the signal. The device will issue the signal every time, no matter the state of the device. STATUS will issue the command only if the state of the device changes. But any device (i.e., controller) can change the state. It does not have to be the device itself.
oberkc Posted January 20, 2015 Posted January 20, 2015 (edited) In addition to stusviews points... CONTROL conditions also trigger only upon receipt of anticipated command. "Control On" will trigger only upon receipt of an ON command. Thus, when such is the sole condition for a program, it can never run false. On the other hand, status conditions will trigger upon ANY change in status and can run true or false by themselves. Edited January 20, 2015 by oberkc
Recommended Posts