bilsk Posted August 12, 2013 Posted August 12, 2013 i have been trying to get a master 'arm-house' program, problem is with the garagedoor sensor ... for some reason it keeps flipping the variable while the door is closing .. for close status; if controle garage-door-sensor is switched on then $garagedoor status is 0 and reversed for open; if controle garage-door-sensor is switched off then $garagedoor status is 1 then to close the door (only if it's open) i use if controle garage-door-sensor is switched on then set garagedoor open-close on (the relay) for 'master control is use if $armhouse is 1 then run program close-garage and if i flip the amrhouse var from 0 (house unarmed) to 1 (armed) it works fine .. but randomly the garage sensor kicks in and stops the door halfway etc. am i going about this the wrong way ?
LeeG Posted August 12, 2013 Posted August 12, 2013 This logic is not correct. The If Control xxxx is switched On is looking at the On command coming from the I/O Linc Sensor which occurs when the door is physically moving, either to closed position or opening depending on the type of magnetic switch used and whether Trigger Reverse is used. The Action taken is to turn On the I/O Linc Relay which initiates door movement again. if controle garage-door-sensor is switched on then set garagedoor open-close on (the relay) If Sensor On is door opening then turning the Relay On will stop the door movement as part of the door safety system. Same thing happens if the manual door switch is pressed to initiate door movement and the manual door switch is tapped again. The door stops.
oberkc Posted August 13, 2013 Posted August 13, 2013 I am with LeeG on this one...something is not quite right. I cannot help but suspect I am missing part of the puzzle here. How do you inend to actuate the doors when at home or arriving/leaving? Existing button? Insteon keypad or switch? Phone app? What purpose does the "garage door open/close" variable serve? Are these state or integer variables? Assuming that I correctly understand what you are trying to do, perhaps the better approach would be: a) ensure that the garage door status variable is an INTEGER variable. (Integer variables do not trigger program evaluation.) update your close program: if status $garagedoor = 1 then set garagedoor open-close on (the relay)
bilsk Posted August 13, 2013 Author Posted August 13, 2013 i am using the phone to flip the 'armhouse' var (for now) using mobilinc, i simply change the armhouse from 0 > 1 to initiate the logic. that starts, (works) if $armhouse is 1 then run program close-garage which has if garagedoorstatus_int = 0 set garagedoor open-close on i moved it to an integer var .. and guess what .. it works now, no more funky behavior while the door is opening/closing.. thanks !!! that's half the battle fixed. BUT now even despite the state of the integer var, even when the door is closed (0) it still runs the 'then' while it should not and thus opens the door it doesn't seem to care either 0 or 1 it will still run the set garagedoor open-close on. i do see the garagedoorstatus_int behaving nicely .. its 1 for open, and 0 for close... thanks guys !
oberkc Posted August 13, 2013 Posted August 13, 2013 One of the reasons that I asked about your purpose for the variables (I missed your response to this) was out of suspicion that you have other programs in place that may also be triggered by these variables. I also asked about how you intend to open and close the door (I missed this response, as well) wondering whether you have other programs or scenes that could trigger the type of behaviour you describe. Suspecting that I am having trouble seeing the entire picture here, one thing that has gone unspoken about your program: if $armhouse is 1 then run program close-garage I assume this is a paraphrase of your actual program. In your actual then statement, does your program include something like "(then path)", or "(IF path)"? If so, make sure you run IF path. Some things you can check to aid in troubleshooting is to watch the value of the variables as the door opens and closes, to make sure that these are tracking correctly. Have you confirmed the variable is 0 when closed and 1 when open? Otherwise, I don't see anything in the programs you presented which I can identify would result as you describe.
bilsk Posted August 13, 2013 Author Posted August 13, 2013 thats it !!! it was starting at 'then' not at 'if' so it always send the on to the relay.... AWESOME thanks guys ! if there is any easy way to copy paste the statements out of the ISY, i'll post em ...
oberkc Posted August 13, 2013 Posted August 13, 2013 http://forum.universal-devices.com/viewtopic.php?f=26&t=5764
bilsk Posted August 14, 2013 Author Posted August 14, 2013 TX ! #armhouse If $armhouse is 1 Then Run Program 'lock-doors' (If) Run Program 'close-garage' (If) Run Program 'arm-sense-motion' (If) Else - No Actions - (To add one, press 'Action') #lock-doors If - No Conditions - (To add one, press 'Schedule' or 'Condition') Then Set 'downstairs / door-On' Lock Door Else - No Actions - (To add one, press 'Action') #close-garage If $garagedoorstatus_int is 1 Then Set 'garage / garagedoor-open-close' On Else - No Actions - (To add one, press 'Action') #arm-sense-motion If Control 'garage / garage-Sensor-Sensor' is switched On Or Control 'upstairs / upstairs-landing-Sensor-Senso' is switched On Or Control 'downstairs / frontdoor-sensor' is switched On Or Control 'outside-front / fence-sensor' is switched On And $armhouse is 1 Then Send Notification to 'xxxxxxx' content 'motion detected while house is armed' Else - No Actions - (To add one, press 'Action') #thevariables closed door If Control 'garage / garagedoor-open-close-Sensor' is switched On Then $garagedoorstatus_int = 0 Else - No Actions - (To add one, press 'Action') #thevariables open door If Control 'garage / garagedoor-open-close-Sensor' is switched Off Then $garagedoorstatus_int = 1 Else - No Actions - (To add one, press 'Action')
oberkc Posted August 14, 2013 Posted August 14, 2013 Thanks for posting. I have a couple of thoughts going through my head on your programs, but think you said all is working, so why try to fix something that is not broken. Post back if you run into anything strange or unexpected.
Recommended Posts