BobM99 Posted February 18, 2019 Posted February 18, 2019 I am transitioning from X-10 ActiveHome to the UD Administrative Console. This should give you some idea of how far behind the times I am. I have my ISY994i set up to control the X-10 switches. Now I want to set the lights to go on and off to give the house a lived-in look when I'm away. With ActiveHome I had a different routine for each season of the year, 4 different .ahx files that I would download to an X-10 CM11A before I went on vacation, and then remove when I got back. I am lost as to how to create similar routines with the UD Administrative Console, and then activate and deactivate them as needed. I hope I am making sense, and I appreciate any help. Thanks. Bob
larryllix Posted February 18, 2019 Posted February 18, 2019 (edited) 52 minutes ago, BobM99 said: I am transitioning from X-10 ActiveHome to the UD Administrative Console. This should give you some idea of how far behind the times I am. I have my ISY994i set up to control the X-10 switches. Now I want to set the lights to go on and off to give the house a lived-in look when I'm away. With ActiveHome I had a different routine for each season of the year, 4 different .ahx files that I would download to an X-10 CM11A before I went on vacation, and then remove when I got back. I am lost as to how to create similar routines with the UD Administrative Console, and then activate and deactivate them as needed. I hope I am making sense, and I appreciate any help. Thanks. Bob Welcome to the UDI forums! Here is one I use. Note the usage of Fast On/Off to attaract the eyes of watching neighbours. this is not normally wanted lighting ramps. Fake TV and Bed - [ID 0033][Parent 0031] If Time is Sunset + 30 minutes And $sHouse.armed is $cTRUE Then Set 'Gathering Room / PotLights over Chairs' Fast On Wait 2 seconds Set 'Gathering Room / PotLights over Chairs' On 30% Wait 1 hour Wait 2 hours (Random) Set 'Gathering Room / PotLights over Chairs' Fast Off Wait 10 seconds Set 'Master Bedroom / MBR Wall Lamp' Fast On Wait 10 minutes Wait 10 minutes (Random) Set 'Master Bedroom / MBR Wall Lamp' Fast Off Run Program 'Fake TV and Bed' (Else Path) Else - No Actions - (To add one, press 'Action') I have a very long sequence of getting out of bed, walking through the house and looking in each bedroom, seveal porches going outside, and returning to bed, but we'll start with something little easier. Ask away! Edited February 18, 2019 by larryllix 1
kclenden Posted February 18, 2019 Posted February 18, 2019 Building on larryllix's post, you could create four programs like that, one for each season. Then simply disable all of them (right-click on the program and choose "disable"). Then when you go on vacation, right-click on one of the programs and enable it. When you return from vacation, right-click on the program and disable it.
BobM99 Posted February 19, 2019 Author Posted February 19, 2019 Thanks for the quick answers! The example above is very helpful, but seems linear. How do I control the activity of multiple lights during the same time period? Do I create a group of programs to be used together? Bob
kclenden Posted February 19, 2019 Posted February 19, 2019 Creating a group of programs would certainly work. The ISY has the concept of folders as well and folders can have an IF statement as well. Programs within the folder only run if the IF of the folder evaluates to TRUE. So you could have a folder for each season, and then within the folder put all the programs you want to run while your on vacation during that season. 1
TexMike Posted February 19, 2019 Posted February 19, 2019 As suggested, I have a vacation folder that only runs when the vacation variable is 1. One thing to be careful of, you still need the if vacation = 1 in each program in addition to any other logic. My normal sunset lighting program checks to make sure vacation and away are 0. Using sunset and random waits as in the example is very effective at making the house look occupied. I also send myself messages if any motion or doors are opened while away, turn on lights and have Alexa scream "intruder alert". My arriving home program sets away and vacation back to 0. I'm still using x-10 too, figured I'd make use of all the gear I had. I used all my x-10 on one side (phase) of the house and did the rest with z-wave. Welcome and enjoy the journey.
larryllix Posted February 19, 2019 Posted February 19, 2019 (edited) 17 minutes ago, TexMike said: As suggested, I have a vacation folder that only runs when the vacation variable is 1. One thing to be careful of, you still need the if vacation = 1 in each program in addition to any other logic. My normal sunset lighting program checks to make sure vacation and away are 0. Using sunset and random waits as in the example is very effective at making the house look occupied. I also send myself messages if any motion or doors are opened while away, turn on lights and have Alexa scream "intruder alert". My arriving home program sets away and vacation back to 0. I'm still using x-10 too, figured I'd make use of all the gear I had. I used all my x-10 on one side (phase) of the house and did the rest with z-wave. Welcome and enjoy the journey. I was using the folder logic but when it turns false it can leave programs inside stopped dead, with lights on in the middle of a "fake occupied" sequence. The "vacation is False" condition in the programs will never be evaluated and run once the folder is disabled. At best you could have a race and randomly execute some lines. Edited February 19, 2019 by larryllix
TexMike Posted February 19, 2019 Posted February 19, 2019 My arriving home program checks to see if it's after sunset and then sets all lighting to my normal occupied status. I haven't seen a problem, but I see your point. Do you know if a wait will still cause the program (not the folder) to reevaluate the if away = 1 and stop running? If it does then I may be dodging the bullet since my vacation lighting is full of waits.
larryllix Posted February 19, 2019 Posted February 19, 2019 18 minutes ago, TexMike said: My arriving home program checks to see if it's after sunset and then sets all lighting to my normal occupied status. I haven't seen a problem, but I see your point. Do you know if a wait will still cause the program (not the folder) to reevaluate the if away = 1 and stop running? If it does then I may be dodging the bullet since my vacation lighting is full of waits. Wait doesn't cause program to be reevaluated. Wait allows the ISY O/S a chance to run other tasks. Another task may be something changed that can cause your If lines to be re-evaluated. When you disable a program it will stop at the next time delay (wait or Repeat) . When a folder is disabled you cannot manually run a Then or Else in a program residing inside the folder. That seems like a bug to me. I have never tested the folder disable to know where it would stop. An easy test could be to design a program with alternating waits and increment a variable and then disable the folder when that variable is >= 3, and see the result.
kclenden Posted February 19, 2019 Posted February 19, 2019 18 minutes ago, larryllix said: When a folder is disabled you cannot manually run a Then or Else in a program residing inside the folder. That seems like a bug to me. At first I thought it seemed like a bug too, but when I thought through all the ramifications, I think the way UD has implemented it makes the most sense. Any time you have a sequence of instructions, especially when you include WAITs, there is a chance that only a portion of the sequence will be completed. This might be because of a power failure, a folder's condition becoming false, a program's conditions changing, or a program being halted by another program. In each case, it's important to know whether remedial action should be taken. If it should, there's generally a way to make it happen, whether it be via THEN/ELSE logic or a state variable that triggers the appropriate remedial program. 1
larryllix Posted February 19, 2019 Posted February 19, 2019 25 minutes ago, kclenden said: At first I thought it seemed like a bug too, but when I thought through all the ramifications, I think the way UD has implemented it makes the most sense. Any time you have a sequence of instructions, especially when you include WAITs, there is a chance that only a portion of the sequence will be completed. This might be because of a power failure, a folder's condition becoming false, a program's conditions changing, or a program being halted by another program. In each case, it's important to know whether remedial action should be taken. If it should, there's generally a way to make it happen, whether it be via THEN/ELSE logic or a state variable that triggers the appropriate remedial program. Huh? I don't understand the relevance of your point at all! It sounds like you are talking about detection of a failed program??? Do you not think we should be able to test run a program manually, inside a False folder? For programs, being disabled means no triggers will activate it. For a folder, the logic means the programs inside will not run and cannot be tested. Either way, some kind of flag should indicate that the program doesn't run instead of appearing to run, leaving the debugging person wondering what happened.
kclenden Posted February 19, 2019 Posted February 19, 2019 (edited) 1 hour ago, larryllix said: Do you not think we should be able to test run a program manually, inside a False folder? For programs, being disabled means no triggers will activate it. For a folder, the logic means the programs inside will not run and cannot be tested. Either way, some kind of flag should indicate that the program doesn't run instead of appearing to run, leaving the debugging person wondering what happened. You can test a program in a FALSE folder... you just have to make the folder condition TRUE. ? You pointed out the distinction between a program that was manually disabled and a program within a FALSE folder. The former won't be triggered automatically but can be manually triggered, while the latter can't be triggered at all. I like having two different capabilities. Besides, let's say that you were able to manually start a program within a FALSE folder - how does the system know when to stop it? If you start the THEN clause should it be able to call its own ELSE clause? If so, what happens if either the THEN or ELSE starts another program in the FALSE folder? Should that program run? What if the THEN or ELSE starts another program outside the FALSE folder, should that "external" program be able to startup up the same or another program within the FALSE folder? If you don't allow all those things to happen, then you can't really completely test all possible programs within a FALSE folder even if you can manually start one up. And if you do allow all those things to happen, then you're not really testing the IF clause of the folder because it should cause a program to stop when it goes FALSE. Edit: But I do agree that there should be some indication that the program didn't actually run when you try to start it manually. Edited February 19, 2019 by kclenden
larryllix Posted February 19, 2019 Posted February 19, 2019 @kclenden Full agreement with your logic there. The lack of indicatio is the only real problem. It seemed like your response was a misunderstading of my point. I still don't understand the relevence yet.
kclenden Posted February 19, 2019 Posted February 19, 2019 (edited) 16 hours ago, larryllix said: I was using the folder logic but when it turns false it can leave programs inside stopped dead, with lights on in the middle of a "fake occupied" sequence. The "vacation is False" condition in the programs will never be evaluated and run once the folder is disabled. At best you could have a race and randomly execute some lines. 14 hours ago, larryllix said: Huh? I don't understand the relevance of your point at all! It sounds like you are talking about detection of a failed program??? 5 hours ago, larryllix said: @kclenden Full agreement with your logic there. The lack of indicatio is the only real problem. It seemed like your response was a misunderstading of my point. I still don't understand the relevence yet. I often misunderstand things, though not intentionally. ? To me, your posts made it sound like using a folder condition to control the execution of programs should be avoided because it can cause a program to be "stopped dead". I was pointing out that there are lots of things that can cause a program to stop before it has completed, and so dealing with that uncertainty when it's caused by a folder going FALSE is really no different than dealing with it being caused by a power failure (or other causes). Edited February 19, 2019 by kclenden
larryllix Posted February 19, 2019 Posted February 19, 2019 (edited) On 2/19/2019 at 2:53 PM, kclenden said: I often misunderstand things, though not intentionally. To me, your posts made it sound like using a folder condition to control the execution of programs should be avoided because it can cause a program to be "stopped dead". I was pointing out that there are lots of things that can cause a program to stop before it has completed, and so dealing with that uncertainty when it's caused by a folder going FALSE is really no different than dealing with it being caused by a power failure (or other causes). Well I was but I'm not going to admit that now. There is a point though people should be aware of...that things can be left in a state not wanted by using folder conditions. I have used a few but mostly aborted the practice due to being a problem with clean up on aisle 2. It is easier and less dangerous to just not use folder conditions and write complete programs with all conditions in plain view, maybe using a properly named variable for common functions. Sent from my SM-G930W8 using Tapatalk Edited February 20, 2019 by larryllix 1
kclenden Posted February 19, 2019 Posted February 19, 2019 1 hour ago, larryllix said: It is easier and less dangerous to just not use folder conditions and write complete programs with all conditions in plain view, maybe using a properly named variable for common functions. I think that's true for most of the things people might want to program. But when it comes to having a selection of programs that you want to enable/disable based on a common set of conditions (admittedly probably an uncommon need), I'll take the simplicity of a folder any day. Reminds me of having to program in LISP in college. If you needed to process a list of items, nothing could be simpler than a LISP program. If you needed to do anything else, LISP would lead you down a dark, dangerous path that would almost certainly lead to derangement.
larryllix Posted February 20, 2019 Posted February 20, 2019 I think that's true for most of the things people might want to program. But when it comes to having a selection of programs that you want to enable/disable based on a common set of conditions (admittedly probably an uncommon need), I'll take the simplicity of a folder any day. Reminds me of having to program in LISP in college. If you needed to process a list of items, nothing could be simpler than a LISP program. If you needed to do anything else, LISP would lead you down a dark, dangerous path that would almost certainly lead to derangement. I confess, I do use the folder switch for my security programs. In that case there really isn't any residue that can happen from killing any program in the middle of a program sequence.Lighting may be a different situation. Mechanical device control could create an even worse situation but the old lesson still stands...don't create dangerous situations by controlling the wrong devices. The rest don't really matter.Sent from my SM-G930W8 using Tapatalk 1
Recommended Posts