Xathros Posted May 28, 2013 Posted May 28, 2013 Hi BriG- That test in the If is related to another program call. I have a Midnight door check that closes the door if it is open by calling that If. It isn't needed otherwise since other than that, I never call the If. You could remove that line if you wanted. Currently the status is managed by a combination of the 2 programs. I "run then" to open or close the door. Then the monitor program will "run else" on the openclose program when the door sensor says closed. Mobilinc uses the True(then)/False(else) status of the openclose program to display the door status. -Xathros without an "n"
BriG Posted May 29, 2013 Author Posted May 29, 2013 Thanks. That helps a ton and totally makes sense. I will nuke the variable in my programs. Sorry for the name misspelling.
pauliep Posted June 22, 2013 Posted June 22, 2013 Xathros, Would you be willing to share your programs for the garage door opener status and camera setup? I like the fact you are able to command the camera to turn towards the door if it is opened. I am having a devil of a time trying to "see" if my door is open or shut on Mobilinc and even via the ISY controller. Thanks, Paul
mmb Posted June 22, 2013 Posted June 22, 2013 Hi all, I really appreciate all the information provided in this QA forum - great work and I'm learning a lot! I'm running into a problem with my garage door program. I set up this program based on the information provided in this thread but when I close my garage door, the door reopens as if the closed status triggers the status program to reopen the door. I'm not really sure how to sort this out short of adding a bunch of flags. Any guidance would be appreciated. Thanks! mike
LeeG Posted June 22, 2013 Posted June 22, 2013 mmb A change in xxxxx Status causes a Program with If Status xxxxx to trigger. When the If is True the Then clause executes. When the If is False the Else clause executes. Same with a State Variable. Any change in the State Variable value triggers the Program. Suggest posting the Program. Right click Program name, select Copy to Clipboard, paste to forum post.
mmb Posted June 23, 2013 Posted June 23, 2013 Thanks LeeG, my little garage door program below: If $iPhone_smith is 1 And Status 'IO Linc Garage Sensor' is On Then Send Notification to 'Default' content 'Garage Door Notification Opening' Set Scene 'Garage Door Relay' On Else Send Notification to 'Default' content 'Garage Door Notification Closed' So I would have expected the If not to execute when opening/closing with a keypad or the door switch itself because there is no change of state in the iPhone variable, so the If would evaluate to False. My iPhone is just sitting in the house, so yes it's in range (1) but not changing - obviously this isn't the case. The keypad and door switch work fine with this program disabled. Thanks again! mike
LeeG Posted June 23, 2013 Posted June 23, 2013 A change in the Variable value (assuming it is a State variable) OR a change in the Sensor state will trigger the Program. The change in Sensor state will trigger the Program so even if the variable is an Integer variable it having a value of 1 makes that part of the If True. When the I/O Linc Sensor turns On which with the current garage kit is when the door closes (unless trigger reverse is in use) the Program executes the Then clause Opening the door after it closes..
oberkc Posted June 23, 2013 Posted June 23, 2013 Your program will trigger upon any change of state of your sensor, regardless of the variable. Whether it triggers off the variable depends on whether it is a state or integer,
mmb Posted June 24, 2013 Posted June 24, 2013 Got it,I think - the iPhone reference is a geo-location variable, so a state variable. I think you know what I'm trying to accomplish with this program - automate my ingress to the house - open door, turn on lights, etc. So is the best (or only) way to handle this scenario is with integer variables/flags? Thanks! mike
LeeG Posted June 24, 2013 Posted June 24, 2013 mmb Actually I had no idea what the objective was. There are always several ways to implement things in the ISY. One way is to set up two Programs Program 1 If $iPhone_smith is 1 Then Run Program 2 Else Program 2 (this Program is marked Disabled so a change in Sensor status does not trigger program) If Status 'IO Linc Garage Sensor' is On Then Send Notification to 'Default' content 'Garage Door Notification Opening' Set Scene 'Garage Door Relay' On Else Send Notification to 'Default' content 'Garage Door Notification Closed' EDIT: I think the wording in the Else Notification is more accurate to say 'Garage Door Notification - already Open'
mmb Posted June 24, 2013 Posted June 24, 2013 This is great LeeG, I'll give it a try. One question, I assumed Disabling a Program was to avoid having it run eg. for development purposes. I gather this isn't necessarily the case as you've noted the Program as Disabled but you still are able to run it using a Program call - correct? Fyi I used to be a programmer many years ago, but I have to say there's some interesting nuances that I'd like more followup. Are these documented somewhere? I've been through the wiki, but may have missed... Thanks for the help... mike
LeeG Posted June 24, 2013 Posted June 24, 2013 Program 2 must be marked Disabled to prevent a change in Sensor Status from triggering the Program. This is the problem with the original implementation, the change in Sensor status was triggering the single Program. By breaking the If section into two Programs Program 2 with the If Status can be Disabled to prevent the change in Sensor Status from driving the process. In this case only the change of the Variable to 1 should trigger the process. The On/Off Status of the Sensor affects the Program flow but should not trigger the process. A Disabled Program can be ‘Run’ from another Program, Program 1 in this example, but it cannot trigger itself. This link into the Wiki might be helpful http://wiki.universal-devices.com/index ... e#Programs ..
Xathros Posted June 24, 2013 Posted June 24, 2013 Xathros, Would you be willing to share your programs for the garage door opener status and camera setup? I like the fact you are able to command the camera to turn towards the door if it is opened. I am having a devil of a time trying to "see" if my door is open or shut on Mobilinc and even via the ISY controller. Thanks, Paul Hi pauliep- I'd be happy to. What kind of cams do you have and do you have the ISY network module installed? Here is the overview: In my Foscam PTZ cams, I have created between 3 and 6 saved positions per cam. Then in the ISY network modue, I have created a resource for each of those saved positions and named then appropriately (Garage cam to Dad's Door, Garage Cam to Mom's door etc.) Then with some simple programs, I can point the cams based on other events: Program: If Control 'Garage / Garage Door IOLinks / GD- Dad Garage Door Sensor' is Switched On Then Resource 'Syslog-SECRTY - Dad Garage Door Opened' Resource 'CAM-CRTL: GarageCam-Dads Door' Wait 1 minute Resource 'CAM-CRTL: GarageCam-Inside Door' Else I also have a few programs set up for my utility room cam to cycle through 6 positions. I have made one of these programs a favorite and associated it with my Utility Cam. This makes it easy to loop through the 6 positions by tapping the program favorite while watching the cam. These could be implemented for each cam but I haven't bothered to do this for my other cams yet. Program: Utility Cam Cycle (This is the Mobilinc fav) If - No Conditions - (To add one, press 'Schedule' or 'Condition') Then $s.UtilityCamPosition += 1 $s.UtilityCamPosition Init To $s.UtilityCamPosition Else - No Actions - (To add one, press 'Action') Program: UtilityCamPos1 If $s.UtilityCamPosition is 1 Then Resource 'CAM-CRTL: BasementCamPosition1 - Stairs' Else - No Actions - (To add one, press 'Action') . . . Program UtilityCamPos5 If $s.UtilityCamPosition is 5 Then Resource 'CAM-CRTL: BasementCamPosition5 - Network Shelf' Else - No Actions - (To add one, press 'Action') Program UtilityCamReset If $s.UtilityCamPosition is 6 Then $s.UtilityCamPosition = 1 $s.UtilityCamPosition Init To $s.UtilityCamPosition Else - No Actions - (To add one, press 'Action') The $s.UtilityCamPosition mvar is a state variable. -Xathros
mmb Posted June 24, 2013 Posted June 24, 2013 Everything works perfectly LeeG. Curious, I browsed through the wiki but didn't find a reference to Disable handling (stopping the self trigger) as you provided. Do you know if there is one? Anyway, thanks! mike
LeeG Posted June 24, 2013 Posted June 24, 2013 mmb Go to this link and scroll down to "Program Enabled Checkbox". http://wiki.universal-devices.com/index ... tion_Order "When the Enabled box is not checked, the program will not run in response to an event, but will still run normally when called from another program and when invoked directly from the Program Summary tab, provided any folder conditions in the program's hierarchy are True. "
JSP0511 Posted July 18, 2013 Posted July 18, 2013 Ok... Here is my attempt at this and where I am a bit stuck (or just tired...or both) Button H on my KPL is the only responder to the Garage Door Status scene Garage Opener Program If $i.GD_Status is 1 Or Control 'Garage / Garage Door Opener KPL- H' is switched On Then Set 'Garage / Garage Door IOLinc' On Wait 1 second Set 'Garage / Garage Door IOLinc' Off Else - No Actions - (To add one, press 'Action') Garage Door Status If Status 'Garage / Garage Door Sensor' is On Then Set Scene 'Scenes / Garage Door Status' Off Else - No Actions - (To add one, press 'Action') What works: 1) I set the "Run Then" as a favorite on Mobilinc as desired 2) I can press H on the KPL to open the garage door and the light on the button stays lit while the door remains open 3) I can press H on the KPL to close the door and the light on the button will turn off once the door is closed 4) I have the Garage Door Sensor saved as a favorite to tell me the door status (Off=Open, On=Closed). Should or could I use a program as a favorite to show the status (so it stands with the opener program in my favorites). What DOES NOT work: 1) When I open the garage door with my Mobilinc favorite, my KPL H button does not recognize the status change from the door sensor thus does not light up (I didn't expect it to as I have nothing written in a program to tell it to do so...but I do not know what to add to get this to work). I would want the KPL to light up even when I open the garage door with the standard button in the garage. 2) My KPL LED's are all white. I've seen videos where when people used the KPL for a garage door, their button lit up red indicating the door was open. Do I need to replace the light in the button? If so, when the button is not in use I currently have the off LED brightness set to 1 so you can see the buttons at night. Can I have the off set to brightness 1 and appear white, and when on, the light is brighter and red? Any other thoughts of suggestions would be greatly appreciated. Thank you everyone! ~Jerry Edit: I think I got the KPL button to react to Mobilinc or garage button use. I simply added the "Else" line. A quick test shows that this seems to be working as planned. My thought is that the Else tells the KPL that unless the sensor is "Off", set the scene to "On". Some of you veterans may think otherwise, please let me know. Garage Door Status If Status 'Garage / Garage Door Sensor' is Off Then Set Scene 'Scenes / Garage Door Status' On Else Set Scene 'Scenes / Garage Door Status' Off
cartman413 Posted July 18, 2013 Posted July 18, 2013 What DOES NOT work: 1) When I open the garage door with my Mobilinc favorite, my KPL H button does not recognize the status change from the door sensor thus does not light up (I didn't expect it to as I have nothing written in a program to tell it to do so...but I do not know what to add to get this to work). I would want the KPL to light up even when I open the garage door with the standard button in the garage. 2) My KPL LED's are all white. I've seen videos where when people used the KPL for a garage door, their button lit up red indicating the door was open. Do I need to replace the light in the button? If so, when the button is not in use I currently have the off LED brightness set to 1 so you can see the buttons at night. Can I have the off set to brightness 1 and appear white, and when on, the light is brighter and red? For 1 I believe you need to setup a follow scene in which the KPLH is a responder. Then set a program to set the state of that scene based on the state of the garage sensor. (That is how i set mine up.) I've also set the KPL to be toggle off only. So that you can't turn that KPL button by pressing it. I wrote a 2nd program to allow that KPL to trigger the garage I/O via a fast off command. (i use the fast off because my kid likes to press all the buttons. lowers the chance of an accidental open.) 2. yes, they sell a different difuser to make the key red. look up keypadlinc color change: http://www.smarthome.com/2401L/LED-Colo ... lor/p.aspx So the answer to the 2nd part will be no. it will be dim red and bright red.
oberkc Posted July 18, 2013 Posted July 18, 2013 My thought is that the Else tells the KPL that unless the sensor is "Off", set the scene to "On". Some of you veterans may think otherwise, please let me know. This is EXACTLY how "status" conditions work. They trigger on any change of status, execute TRUE (then path) if the change of status matches stated condtion, otherwise execute FALSE.
Baja Posted June 26, 2015 Posted June 26, 2015 Xathros, I set up my garage door controller following your excellent instructions and everything is working correctly for me. Now I would like to take it one step further. Is it possible using the ISY994i controller to write a program that would perform the following? Between midnight and sunrise, if my garage door has been open for 5 minutes, run the Garage-Open-Close program to automatically close the garage door. This may not be the right forum, but I would appreciate any help or suggestions you could offer me. I'm new to this and I'm trying to get up to speed as quickly as possible. Thanks!
oberkc Posted June 26, 2015 Posted June 26, 2015 Yes, this is the right forum. Since you seem interested in a response specifically by xathros, I guess I will offer no further response. Yes, this is the right forum. Since you seem interested in a response specifically by xathros, I guess I will offer no further response.
Baja Posted June 26, 2015 Posted June 26, 2015 No, that was not my intent. I'm happy to get advice or ideas from anyone with information to share regarding this topic.
stusviews Posted June 26, 2015 Posted June 26, 2015 The first program tests if the garage door is open between midnight and sunrise. It the garage door is open, then the 5 minute timer starts after which the second program starts and tests if the garage door is still open. If it is, then the program closes the door. Program 1If From 12:00:00AM To Sunrise (same day) And Status 'GG / Devices / GG Garage 1 Sensor' is On Then Wait 5 minutes Run Program 'test2' (If) Else - No Actions - (To add one, press 'Action') Program 2If Status 'GG / Devices / GG Garage 1 Sensor' is On Then Set 'GG / Devices / GG Garage 1 Sensor / GG Garage 1 Relay' On Else - No Actions - (To add one, press 'Action')
oberkc Posted June 26, 2015 Posted June 26, 2015 Well, then, my response might change, depending on how you want the system to behave at the transition times (midnight and sunrise). What do you want to occur if the door happens to be open at midnight and sunrise? Immediately close? Stay open? Start the countdown? Stop the countdown? To get the thought process moving, consider a simple program such as: If Status garage door is open Then Wait 5 minutes Run garage-open-close program (if path) Else Nothing The next step would be how to disable this program during the day. This could be done with program folders or another program such as If Time is from midnight To sunrise Then Enable first program Else Disable first program Depending on how you answer the earlier questions, you may need to add a couple of program steps. Hopefully, this will give you some ideas on how to tackle his type of problem.
Recommended Posts