saflight Posted October 27, 2011 Posted October 27, 2011 I am trying to create a program where a light "family room key ceiling" is turned on at a specific time only if other lights are turned off. Then I want to eventually turn off the "family room key ceiling" if certain other lights are also turned off. I have run the program below and find no issues with the "turn on" part. My issues are that I can never turn off the family room ceiling. If the other test lights in the initial program are off the family room key ceiling will never turn off, even if I push the control button on the keylinc. Any ideas? Folder Conditions for ' Family Ceiling ON' Add conditions to limit when programs in this folder are allowed to run. If Time is Sunset + 15 minutes Then Allow the programs in this folder to run. If ( Status 'Fam Rm Key - Ceiling' is Off And Status 'Kitchen Ceiling Keypad - A' is Off And Status 'Fam Rm Table' is Off ) Then Set Scene 'Fam Rm Ceiling' On Else - No Actions - (To add one, press 'Action') In a separate folder I have the following to test/turn off the fam rm key ceiling Folder Conditions for 'Family Rm Off' Add conditions to limit when programs in this folder are allowed to run. If Time is 10:21:00PM Then Allow the programs in this folder to run. If Status 'Fam Rm Table' is On Or Status 'Kitchen Ceiling Keypad - A' is On Or Status 'Kitchen Ceiling Keypad - A / Kitchen Cabinets Upper - B' is On Or Status 'Kitchen Pool' is On Then - No Actions - (To add one, press 'Action') Else Run Program '2Family Rm End' (Then Path) If - No Conditions - (To add one, press 'Schedule' or 'Condition') Then Set 'Fam Rm Key - Ceiling' Off Else - No Actions - (To add one, press 'Action')
apostolakisl Posted October 27, 2011 Posted October 27, 2011 I assume what you want here is for at sunset plus 15, you want the status of the lights checked and the scene turned on. You can not use a folder like you have done. At sunset plus 15 the folder condition triggers and the folder evaluates to true. The folder stays true, as there is no other trigger to make the folder evaluate to false. So all of the programs in your folder will be active all the time. You could manually make the folder false, but the next day at 15 minutes past sunset it will become true again and stay that way. Your programs themselves are thus active all the time. You have three lines in the first program all of which evaluates the status of those three lights. When the status of any of those lights changes, the program triggers. I will assume the "family room key - ceiling" is part of your family room ceiling scene. Here is the scenario. Assume 1) "kitchen ceiling keypad - a" and "family room table" are both off. 2) "fam rm key - ceiling" is on You push to turn "fam rm key - ceiling" off, either by directly hitting its button or by a scene. The status of the light changes to off The program triggers becuase "status" is a program trigger wheneve the status changes The program sees that all three lights are "off" The program runs the then and turns the ceiling scene "on" In short what you want is this instead. (without the folder conditions) If Time is sunset + 15 minutes And Status 'Fam Rm Key - Ceiling' is Off And Status 'Kitchen Ceiling Keypad - A' is Off And Status 'Fam Rm Table' is Off Then Set Scene 'Fam Rm Ceiling' On This program is only true at sunset +15 mintes when the status of the other three lights is off. The program will also trigger at sunset +15 minutes because a time statment is a trigger at the specified time. It will also trigger every time the status of one of those lights changes, but that will have no affect since the time is wrong (making it false) and thus the "else" will run (which is empty). What you used to have is a folder that is always true, so the folder was useless. Every time someone changed the status of one of those lights, the program ran. So if the other two lights were off, and you shut off the over head light, it would turn right back on.
oberkc Posted October 27, 2011 Posted October 27, 2011 I am trying to create a program where a light "family room key ceiling" is turned on at a specific time only if other lights are turned off. I assume your "other lights" are 'Kitchen Ceiling Keypad - A' and 'Fam Rm Table'. Correct? If the other test lights in the initial program are off the family room key ceiling will never turn off, even if I push the control button on the keylinc. Any ideas? Yes, I have some ideas. Your family room ceiling turns itself back on because it is a condition in your first program. Turning this device off triggers an evaluation, which turns it back on. I don't see why it needs to be there. My suspicion is that it is going to be very easy to get complicated quick with your approach (folders and such). Why not a single, simple program something like: If Time is from sunset + 15 minutes to 10:21pm And Status 'Kitchen Ceiling Keypad - A' is Off And Status 'Fam Rm Table' is Off Then Set Scene 'Fam Rm Ceiling' On No folders. No second program. If the family room light was already on, it will stay on. If it was off, it will turn on. But only between sunset and 10:21pm (adjust to suit your needs).
apostolakisl Posted October 27, 2011 Posted October 27, 2011 oberck, Why Time is from sunset + 15 minutes to 10:21pm Instead of Time is sunset + 15 minutes Doing the time interval will make the program true any time someone tries to shut off all the lights during that time and cause it to flip back on again. I would assume you only want the light to automatically come on at sunset plus 15, not block you from shutting it off between the two time slots.
saflight Posted October 28, 2011 Author Posted October 28, 2011 Advanced wins the prize. That program is dead on correct. Thx
oberkc Posted October 28, 2011 Posted October 28, 2011 oberck, Why Time is from sunset + 15 minutes to 10:21pm Instead of Time is sunset + 15 minutes There are couple of assumptions here. First, I assumed that he wanted the family room light to be automatically on generally during periods of darkness, and not 24 hours per day. Second, given the second program (which turns the lights out at 10:21pm), that he originally wanted the program to operate only between those two time periods. Of course, this period is configurable. I also don't believe the simple condition: time is sunset + 15 minutes, will accomplish the goal. This condition will be true only for an infintessimal time (at sunset +15) and false the rest of the 24 hours. I believe it to be necessary to make this true over a measurable period of time, whether that be from sunset to 10:21, sunset to sunrise, or some other period of time.
apostolakisl Posted October 31, 2011 Posted October 31, 2011 oberck, Why Time is from sunset + 15 minutes to 10:21pm Instead of Time is sunset + 15 minutes I also don't believe the simple condition: time is sunset + 15 minutes, will accomplish the goal. This condition will be true only for an infintessimal time (at sunset +15) and false the rest of the 24 hours. I believe it to be necessary to make this true over a measurable period of time, whether that be from sunset to 10:21, sunset to sunrise, or some other period of time. The two programs have this in common: At Sunset plus 15, if the other two devices are off, the ceiling light will turn on. Difference: In your program, between Sunset +15 and 10:21, changing the status of either the table lamp or keypad to "off", provided the other is already "off", will cause the ceiling light to turn "on". Personally, it seems like an odd thing to turn a light off and have another turn on, but maybe that is what he wants. The fact that my program is only true at sunset plus 15 for an "infentessimal" period of time is of no consequence. ISY will trigger the program at that moment in time and either go to "true" if the other 2 conditions are met and run the "then" or false if the other two conditions aren't met, and run "else". A trigger statement , which is what a time statement like this is, need not have a range to cause the program to run true. It is only if you want other statements in that program to run a "then" statement that you need a range (like manually turning the table lamp off)
oberkc Posted October 31, 2011 Posted October 31, 2011 The two programs have this in common:At Sunset plus 15, if the other two devices are off, the ceiling light will turn on. Difference: In your program, between Sunset +15 and 10:21, changing the status of either the table lamp or keypad to "off", provided the other is already "off", will cause the ceiling light to turn "on". On this, I think we agree. Personally, it seems like an odd thing to turn a light off and have another turn on, but maybe that is what he wants. This was my understanding of what he wanted. I perceived that the OP wanted the family room ceiling to act as a night light sort-of thing, coming on during the night-time whenever the other two lights were off. But re-reading the original post, I am no longer confident of this understanding. If, as you understand, the purpose is to turn one light on at a single point of time of the day, and only if the other two lights happened to be off at that single time, then I think we are in violent agreement that the correct program would be: If Time is sunset + 15 And Status 'Kitchen Ceiling Keypad - A' is Off And Status 'Fam Rm Table' is Off Then Set Scene 'Fam Rm Ceiling' On
apostolakisl Posted October 31, 2011 Posted October 31, 2011 OK, I am glad that we violently agree. Not sure which we the OP actually wanted it, he says that "advanced's" program does what he wants, but that is both of us. I guess I can see having it so that if you turn all the floor lights off in a room, that the overhead comes on, but it wouldn't be my choice. I could see the other way around perhaps. The overheads are typically for the "full blast" lighting of a room and the other lights are for background "don't trip" lights.
Recommended Posts