sorka Posted January 11, 2020 Posted January 11, 2020 The below program triggers every day at 10 minutes after sunset if I have a garage door open. How can I make it so the time range is not a triggering even but simply a condition check when either door status is switched off? Do I create a parent folder that just has the time range only and put the program in that? Garage Door Night Opens - [ID 0015][Parent 0010] If From Sunset + 10 minutes To Sunrise - 10 minutes (next day) And ( 'Garage Door 2-Status' is switched Off Or 'Garage Door 1-Status' is switched Off ) Then Run Program 'Front Flood Timer Override' (If) Set 'Breezeway' On Set 'Garage Main' On Else - No Actions - (To add one, press 'Action')
kclenden Posted January 11, 2020 Posted January 11, 2020 (edited) I don't think there is a way to make the time range not a trigger when used in a program. Creating a folder that uses the time range as a condition would in theory do what you want, as the state of a folder going from FALSE to TRUE does not trigger the programs within (i.e. the programs are now allowed to run, but won't until one of their own triggers fire). Why do you care if the program triggers every day at 10 minutes after sunset? Since you're using "switched Off" and not "Status is Off", it will just run the ELSE which is blank. Edited January 11, 2020 by kclenden
sorka Posted January 11, 2020 Author Posted January 11, 2020 (edited) It runs every day if the garage door is already open. So maybe that's a bug since it shouldn't unless the status actually changes which it isn't. This didn't used to happen. The program has been unchanged for 10 years and this issue only started happening after updating to v5. Edited January 11, 2020 by sorka
kclenden Posted January 11, 2020 Posted January 11, 2020 Switched off refers specifically to receiving an "Off" command from a device so it won't matter whether the garage door is already open. I doubt it's a bug, but just in case I created a test program to see what happens on my system: New Program - [ID 00A2][Parent 0001] If From Sunset + 4 hours and 43 minutes To Sunrise - 10 minutes (next day) And ( 'ST-Overhead Light' is switched Off Or 'DR-Chandelier' is switched Off ) Then $sTest = 0 $sTest = 1 Else $sTest = 0 $sTest = 2 It worked exactly as expected - at 10:15PM the ELSE was executed even though one of my devices was already OFF. So my guess is another program is the culprit. 1
TrojanHorse Posted January 11, 2020 Posted January 11, 2020 It runs every day if the garage door is already open. So maybe that's a bug since it shouldn't unless the status actually changes which it isn't. This didn't used to happen. The program has been unchanged for 10 years and this issue only started happening after updating to v5. This should work fine so I agree with @kclenden that another program may be the issue. You mentioned this only started after upgrading to v5. Did you make note of what programs were disabled in 4.x? The upgrade can cause disabled programs to become enabled, so wondering if that’s what’s going on and another program is now enabled? Sent from my iPhone using Tapatalk 1
sorka Posted January 11, 2020 Author Posted January 11, 2020 It's not another program. Sorting the run time shows that's the ONLY program that ran recently when it happened and there is no other program that calls that program.
larryllix Posted January 11, 2020 Posted January 11, 2020 4 minutes ago, sorka said: It's not another program. Sorting the run time shows that's the ONLY program that ran recently when it happened and there is no other program that calls that program. Do a program search to find any occurrence of the device that is operating not as expected. 1
larryllix Posted January 11, 2020 Posted January 11, 2020 Time triggers can be stopped by disabling the program. However the other triggers need to be enabled to start the program so...it can be done with two programs Garage Door Night Opens - [ID 0015][Parent 0010] If 'Garage Door 2-Status' is switched Off Or 'Garage Door 1-Status' is switched Off Then Run Program2 (If) Else - No Actions - (To add one, press 'Action') Program2 [NOT ENABLED] If From Sunset + 10 minutes To Sunrise - 10 minutes (next day) Then Run Program 'Front Flood Timer Override' (If) Set 'Breezeway' On Set 'Garage Main' On Else - No Actions - (To add one, press 'Action') 1
kclenden Posted January 11, 2020 Posted January 11, 2020 (edited) 17 minutes ago, sorka said: Sorting the run time shows that's the ONLY program that ran recently when it happened So the "Last Run TIme" showed "Sunset + 10 minutes" and the "Status" showed "True"? If that's the case then I would make sure I had the Event Viewer open and set to 3 shortly before Sunset + 10 minutes. That will let you see what device communication happens at the time the program fires. Or you could change the "From" and "To" times to do some quicker testing. Edited January 11, 2020 by kclenden 1
kclenden Posted January 11, 2020 Posted January 11, 2020 6 minutes ago, larryllix said: so...it can be done with two programs Clever. Still, it really shouldn't be necessary in this case.
apostolakisl Posted January 11, 2020 Posted January 11, 2020 (edited) Your program should only be true at the moment of switching off one of those two devices, while simultaneously being within the time range. Times alone can not make that program true. If the program is firing true without an off press of the paddle, then something is either not presenting correctly in the forum or something is wrong in ISY. However unlikely, a simple step I would take is to delete the program and write it again. If something translated over wrong when you upgraded firmware, then deleting and re-writing should fix it. Aside from incorrectly firing true at the "from" time, does it still operate correctly when you press the "off" paddle at the various times? EDIT: Just to clarify, I said "should only BE true . . ." This isn't really correct. I should have said "should only TRIGGER true" The program status will list as "true" when sitting idle between the two times and after either of the switches "off" paddle was pressed. Despite being "true" it will only execute the "then" clause at the moment of pressing the "off" paddle. Edited January 11, 2020 by apostolakisl
larryllix Posted January 11, 2020 Posted January 11, 2020 Your program should only be true at the moment of switching off one of those two devices, while simultaneously being within the time range. Times alone can not make that program true. If the program is firing true without an off press of the paddle, then something is either not presenting correctly in the forum or something is wrong in ISY. However unlikely, a simple step I would take is to delete the program and write it again. If something translated over wrong when you upgraded firmware, then deleting and re-writing should fix it. Aside from incorrectly firing true at the "from" time, does it still operate correctly when you press the "off" paddle at the various times? Agreed. Using statuses is a different matter but using control switched makes a one program logic possible...and only if the else section is not used. The else section will run at both time nodes.Sent using Tapatalk
lilyoyo1 Posted January 11, 2020 Posted January 11, 2020 If you don't believe it's another program, you can disable it and see what happens over the next few days
Recommended Posts