bjohnson Posted December 6, 2016 Posted December 6, 2016 (edited) Hi all, I didn't see info about this in my searches, but if my search-fu is not strong, please point me in the proper direction. My question/issue is in regards to the 'From' scheduling option in Programs. I have a scene that consists of a living room light and some controllers. I have it programmed thusly: if: from [early evening] to [later at night] then: set scene on else: set scene off Why is the 'else' statement required in this case? Without the 'else' statement, my scene does not turn off at the end of the 'from' schedule. It would seem that all the 'from' does is guarantee that the scene will be active during those hours. It does not reset any scenes to their pre-program levels. Now, in most cases, this (with 'else' statement included) works fine. The light comes on at the scheduled time and turns off at the scheduled time. Here's the problem: If I want some extra light in my living room during the day, naturally I would desire to turn on the living room scene and bathe in the illuminating glory. However, when I do, the program above understands that any time during the day is explicitly not within the 'from' schedule and activates the 'else' statement turning my living room light off. As mentioned above, removing the 'else' clause prevents the program from turning the scene off at the normally scheduled time. This seems counterintuitive. I would think the 'from' statement would be meant to simplify turning a scene on and off at specific times, but it's just complicated it. Shouldn't it be meant to replace separate programs for on and off (turn on early evening, turn off later at night) with a single unified one? I find myself needing to add Folder conditions to prevent the program from running or another 'disable' program each with their own duplicated 'from' statements to compensate. Anyone have any thoughts on this? Thanks. Edited December 6, 2016 by bjohnson
larryllix Posted December 6, 2016 Posted December 6, 2016 (edited) Your program will do what it is designed to do regardless of what any other program does. From runs Then To runs Else There are several ways to handle this Manual Override. You can use change your program to call another disabled program with conditions in it. You could write a Manual Override program that temporarily disables your auto-program and then re-enables it when you are done. Probably many other methods but those are the two method I would use. Warning. I always put a failsafe long timer (like 6 hours) in my manual override programs because people get used to lights turning themselves off, and will walk-away from the On light, expecting it to look after itself. Edited December 6, 2016 by larryllix
ldb Posted December 6, 2016 Posted December 6, 2016 The simple solution is two programs. One for on and one for off using the times you want the scene acted upon. Your time range is not relevant because the "then" action will always trigger at the start time of the "if" range. I find the use of "else" actions to be limited for the very reason you describe. The time range feature is best used when you want to control the time frame when an action is triggered by some other event.
oberkc Posted December 6, 2016 Posted December 6, 2016 (edited) To/from conditions will trigger twice (and only twice)...once at from-time and once at to-time. It will evaluate TRUE at all times between those two point in time, and false at all other times. Your specific program will simply turn the lights ON at early evening and OFF later at night. I believe you misunderstand how this program will work. Your program will NOT turn your lights off in the middle of the day, nor will it turn the back on after the initial trigger (should you manually turn them off early). Your program will simply turn them on once and off once. Edited December 6, 2016 by oberkc
user181 Posted December 12, 2016 Posted December 12, 2016 bjohnson, Did you find a solution to your problem yet? I have an implementation for this same situation.
apostolakisl Posted December 14, 2016 Posted December 14, 2016 (edited) To/from conditions will trigger twice (and only twice)...once at from-time and once at to-time. It will evaluate TRUE at all times between those two point in time, and false at all other times. Your specific program will simply turn the lights ON at early evening and OFF later at night. I believe you misunderstand how this program will work. Your program will NOT turn your lights off in the middle of the day, nor will it turn the back on after the initial trigger (should you manually turn them off early). Your program will simply turn them on once and off once. oberkc is correct. I do not understand the problem the OP is having. The OP's program does not know the status of the device/scene and does not respond to the status or change in status. You can turn the lights on/off as many times as you want during the day or night, the OP's program will not care about any of that and will leave the lights alone excepting that it: 1) Run "then" statement at "from" time 2) Run "else" statement at "to" time In fact, the then and else could both turn things on, or each could do things completed unrelated to each other. If the problem is that you want to temporarily disable the program so that it does not execute the then or else, then you can add additional clauses to allow for an override, or you can write a second program that disables this program. For example, I have a background light scene in my house which turns on scattered lights throughout the house at sunset and turns them off at 11pm. If I am having a party, I don't want the lights to shut off at 11pm. So, I have a kpl with a button I use as override. A second program monitors the status of that button, if the button is on, it disables the from/to program. Edited December 14, 2016 by apostolakisl
Recommended Posts