Vyrolan Posted December 11, 2012 Posted December 11, 2012 I have some longer-running programs that execute a sequence of events with waits, and I'd like to be able to detect that the program is currently running. One such example is where I have a KPL secondary button start a shower program. It's not just a scene but a program which runs over several minutes ramping up various lights to various levels over time (and also some quick flashes to let me know I've been in the shower too long). However that area also has a motion sensor, so the programs around the motion sensing always want to override the shower program. It'd be easiest if I could just add "Program Shower is not Running" to the conditions for my motion program. I've resolved it for now by just setting a "shower is running" variable to 1 at the start of the shower program and back to 0 at the end and in the else, but that's kind of a hack. There's a chance something could stop the shower program another way and leave the motion disabled unnecessarily. We know the ISY has this info since the Program Summary tab shows the states. =p
Michel Kohanim Posted December 12, 2012 Posted December 12, 2012 Hello Vyrolan, Thank you for the feedback. Is there a reason why "Program is not true" would not work? i.e. if wait is interrupted it must have if and only if the conditioned turned to false and thus Program is not true. Or, you could use Program is false. With kind regards, Michel
Vyrolan Posted December 12, 2012 Author Posted December 12, 2012 Is there a reason why "Program is not true" would not work? The program switches to true while it is running the Then part, but then it will stay True after that. In my example, the shower program runs over ~15 minutes. After that it just ends. It doesn't have to be toggled off or stopped or anything. If I use "program is true" to disable my motion programs, then they'd stay disabled after the shower program ends. I guess I could work around that by having the program explicitly run its own Else path at the end of the Then (like a recursive call). It's easy enough to workaround via variables or whatever, but it also seems straightforward to just have that as a possible condition. I guess normally it would just be a scene and I'd detect that scene being turned on, but this program goes through several stages and I'd rather not make a scene for each and then have my motion programs have to check all of those. i.e. if wait is interrupted it must have if and only if the conditioned turned to false and thus Program is not true. If the program is "Running Then" and some other program executes a Stop on it, doesn't it stay True? So then the wait could be interrupted without changing it to False.
Michel Kohanim Posted December 12, 2012 Posted December 12, 2012 Hi Vyrolan, Yes, got it ... I'll definitely add this to our requirements list. With kind regards, Michel
Recommended Posts
Archived
This topic is now archived and is closed to further replies.