matapan Posted September 23, 2009 Posted September 23, 2009 I have a very simple garage door program that isn't working the way I envisioned it would work. It is opening and closing the door after the initial Keypadlinc button press. I think it has something to do with the way the Keypadlinc button status is set up. Configuration: I'm using an IOLinc to control the garage door. When the sensor is ON, then door is closed. I have one scene containing two Keypadlinc buttons that I use to check if the door is open or closed. If the button is ON, the door is open. The IOLinc relay is set up for momentary contact. Finally, I have three programs that deal with the garage door: Garage Door Open Garage Door Close Garage Door Status Garage Door Close: If Status 'Garage Sensor' is Off And { Control 'Keypadlinc 1 Button D' is switched Off Or Control 'Keypadlinc 2 Button D' is switched Off } Then Set 'Garage Relay' On Else -- No actions -- Garage Door Open: If Status 'Garage Sensor' is On And { Control 'Keypadlinc 1 Button D' is switched On Or Control 'Keypadlinc 2 Button D' is switched On } Then Set 'Garage Relay' On Else -- No actions -- Garage Door Status: If Status 'Garage Sensor' is On Then Wait 1 second Set Scene 'Garage KPL' Off Else Wait 1 second Set Scene 'Garage KPL' On The door opens and closes properly when the open and close programs are enabled, but when the status program is also enabled, the door partially opens and closes on its own. I don't understand what this is happening, since I am assuming a 'Switched' action is different from a 'Set' action. Setting the Keypadlinc button state seems to trigger the open and close programs as well. How can I prevent the status change from triggering the other programs? Thanks!
JacquesB Posted October 11, 2009 Posted October 11, 2009 Hi, The ELSE-part of a program is very difficult to use, almost impossible. With both a THEN and an ELSE part, a program is always true and always do something. Either the THEN is true OR the ELSE is true, but something must be true. Here, I posted a complete garage door management program : http://forum.universal-devices.com/viewtopic.php?t=2834 It is much longer and more complicated than yours, but it works. A difference is the use of 2 variable for the door status instead of 1. If they are both On or both Off, the door is closed. If they are both On, I left home, so next time I will be coming in. If they are both Off, I'm home and next time, I will be leaving. The program manages the lights depending of the case : turning everything off when leaving, turning the garage and stairs On when coming. When the door is opened, I switch only the first of the 2 variables and the second is adjusted only once the door is closed. This way, the controller knows if the door is opening or closing and does not revert it too soon, like your program does. (Mine did it too at first, but I fixed it My program will try to close the door on its own. Be sure your installation is safe and properly protected before letting the door moves on its own. Should you need help for adjusting my program to your need, don't hesitate and ask for it. Jacques B.
apostolakisl Posted October 11, 2009 Posted October 11, 2009 I think it is your else command in the garage door status program. Try making that into two programs one for on and one for off instead of using the else. I had a similar thing happen when trying to use the else command for a program to create a toggle. It would turn on then a a second or two later turn back off. I rewrote it as two programs and it worked fine.
matapan Posted October 12, 2009 Author Posted October 12, 2009 Actually, the problem I encountered was all due to some old program triggering the IOLinc as well when the sensor state changed. Removing the old program addressed the issue. The programs described work correctly now. It might be a handy to have a search feature to look for device references in a group of programs, just to make sure one doesn't have some old references lying about!
Michel Kohanim Posted October 12, 2009 Posted October 12, 2009 matapan, You do have that feature called Find/Replace. Right mouse click on My Program and choose that menu item. With kind regards, Michel Actually, the problem I encountered was all due to some old program triggering the IOLinc as well when the sensor state changed. Removing the old program addressed the issue. The programs described work correctly now. It might be a handy to have a search feature to look for device references in a group of programs, just to make sure one doesn't have some old references lying about!
Recommended Posts