Illusion Posted August 7, 2009 Posted August 7, 2009 The ISY has no way to deal with waits through a power failure/reboot right? I have 16 temperature management programs that depend on waits in the 4 hour region. If I do not use waits, and I use clock time I have calculated that I will need 256 programs. I am not going to be doing that! Does the ISY know when it was supposed to do something on a wait, and it will pick it up with a schedule catchup like function, or should I be putting the ISY on a UPS in my case?
Brian H Posted August 7, 2009 Posted August 7, 2009 In the configuration tab. Isn't the check box's for Catchup Schedules at restart and Missed Scheduled Grace Period are for?
Illusion Posted August 7, 2009 Author Posted August 7, 2009 I did not think that applied to waits though, unless the ISY saves a marker of when something should happen every time it encounters a wait in a program and internally it makes a "Schedule".
TJF1960 Posted August 8, 2009 Posted August 8, 2009 Can you use "Last Run Time" instead of "Wait" in your programs?
Illusion Posted August 8, 2009 Author Posted August 8, 2009 Tim, Excellent suggestion. Couple of questions and thoughts. If last run is used, will the ISY employ catch up scheduling after a power failure? I have spent hours trying to figure out how to use this feature with my wake programs, but I just do not see it. The main problem I have is that there are 16 different possible temperatures for my room to be at wake up time, and the sequence of events and timing of those events is different for each of the 16 temperatures, and there are 16 different times for those sequences to be initiated. I could use last run for the initial start of the sequence of events, but I do not see a way to streamline the timing of the individual events within the temperature possibilities. See this post: http://forum.universal-devices.com/view ... 2258#22258 Without getting too detailed as I have over 150 interdependant programs dealing with this wake sequence, this is my big problem child: If Status 'Bedroom T-Stat' < 58° (Temperature) Then Set 'Bathroom Floor Heater' On Wait 3 hours Set 'Bathroom Shower Heater' On Set 'Bathroom Sink Heater' On Run Program 'Heat Bedroom Wake ' (If) Wait 30 minutes Run Program 'Heat Liv Wake' (If) Wait 40 minutes Run Program 'Heat Bedroom Sleep' (If) Wait 30 minutes Else Run Program 'Determine Temp is 58 ' (If) I have 16 of these programs, and each one has different waits based on start temperature. To further complicate matters, there are two additional steps that will be added in there when I get some more insteon modules, as well as another 50 interdependent programs. I really like the last run idea, but I cannot figure out how to use it without writing separate "if" programs for each item, and possible start temperature, and now again I am at 256 programs or so just for this part of it. Now if I did that, any time I did not like the timing and I wanted to tweek it a little, think of all the changes I would have to make. As it is now, if I did not like the way things worked when the bedroom was below 58 to start with, I would only have to change a couple of waits in one program. This same program is called on by all the 16 different possible wake times. I am thinking UPS for the ISY but you have a lot more experience using last run, and I think I really like that idea. I just do not see an efficient, clean way to implement that in this case.
TJF1960 Posted August 9, 2009 Posted August 9, 2009 Hi Illusion, You are right, now that I see your program and understanding you have 15 other similar ones along with numerous support programs, I don’t see an easy way to utilize the last run option to keep your wake schedules on track after an outage without rewriting and adding lots more programs. If you wanted to start or restart the correct wake program after power is restored (within a window of time after it was supposed to have run that is) I see a couple of different ways to go. But I think your right, the ups will be the easiest solution to keep the programs on track. But one of the problems with that is, as an example, if power is reapplied during the wake program the only actions which will execute will be the ones after power is reapplied. So if, in your example program, if power is reapplied 10 minutes after the program starts then nothing will happen for 2 hrs and 50 minutes at which time the bathroom shower heater will turn on. I guess it all boils down to what is acceptable, and what is not…… Sorry I wasn’t more help. Tim
Illusion Posted August 9, 2009 Author Posted August 9, 2009 But one of the problems with that is, as an example, if power is reapplied during the wake program the only actions which will execute will be the ones after power is reapplied. So if, in your example program, if power is reapplied 10 minutes after the program starts then nothing will happen for 2 hrs and 50 minutes at which time the bathroom shower heater will turn on. Tim, You are right. As I think more about this, I kinda want a back-up program looking after things. I was thinking of building a couple of "Last Run" safety programs, but as I look at it, it appears that the ISY does not know when a program was last run after reboot. Am I correct on this? If so, it kills that idea. Wake Temperature 6:00AM If Program 'Wake 6:00AM' is True And Time is 2:00:00AM And Program 'Away Flag' is False And Program 'Suspend Temp Programs' is False Then Run Program 'Wake Temperature Sequence' (Then Path) Else - No Actions - (To add one, press 'Action') Wake Temperature Sequence If - No Conditions - (To add one, press 'Schedule' or 'Condition') Then Wait 8 seconds Run Program 'Standby Thermostat Query' (Then Path) Wait 10 seconds Run Program 'Wake Temperature Set Bedroom Cool' (If) Run Program 'Wake Temperature Heat Sequence' (If) Else - No Actions - (To add one, press 'Action') Wake Temperature Heat Sequence If Status 'Bedroom T-Stat' is Mode Heat Then Run Program 'Determine Temp Less 58' (If) Else - No Actions - (To add one, press 'Action') Determine Temp Less 58 If Status 'Bedroom T-Stat' < 58° (Temperature) Then Set 'Bathroom Floor Heater' On Wait 3 hours Set 'Bathroom Shower Heater' On Set 'Bathroom Sink Heater' On Run Program 'Heat Bedroom Wake ' (If) Wait 30 minutes Run Program 'Heat Liv Wake' (If) Wait 40 minutes Run Program 'Heat Bedroom Sleep' (If) Wait 30 minutes Else Run Program 'Determine Temp is 58 ' (If) What if I changed the IF in the 16 different versions of Wake Temperature 6:00AM to say: If Program 'Wake 6:00AM' is True And From 2:00:00AM For 3 hours And Program 'Away Flag' is False And Program 'Suspend Temp Programs' is False Then Run Program 'Wake Temperature Sequence' (Then Path) Else - No Actions - (To add one, press 'Action') Now I do not put a UPS on the ISY. If there is a power failure while the sequence is running at least the events will happen right? The ISY wakes up, reboots, and re-evaluates the programs right? So now this is still true if it is within whatever time window I decide is worth it, like two or three hours. Then it starts the sequence again, so if the power was out for 6 minutes right over one of the sequence commands, that will get picked up, just late. The nice thing about this methodology is that I only need to slightly tweek 16 programs to implement it. The down side of course is that if the power goes out 2 hours after the sequence has started, the whole thing has to start over. No, it is looking like the UPS is the best idea and I will just miss any call that occurs over a power failure. The only other solution I can come up with involves writing more programs than the ISY-26 can handle, and even if it could I do not want to deal with administrating 400 temperature programs!
TJF1960 Posted August 9, 2009 Posted August 9, 2009 I was thinking of building a couple of "Last Run" safety programs, but as I look at it, it appears that the ISY does not know when a program was last run after reboot. Am I correct on this? If so, it kills that idea. Actually, one thing I like about the last run option is that after reboot the isy retains the last run times of programs, so the last run option when called will work after reboot….but you have quite the complex setup and to make the change over would be like starting over and I am not entirely sure it would be a cure all. What if I changed the IF in the 16 different versions of Wake Temperature 6:00AM to say: Code: If Program 'Wake 6:00AM' is True And From 2:00:00AM For 3 hours And Program 'Away Flag' is False And Program 'Suspend Temp Programs' is False Then Run Program 'Wake Temperature Sequence' (Then Path) Else - No Actions - (To add one, press 'Action') Now I do not put a UPS on the ISY. If there is a power failure while the sequence is running at least the events will happen right? The ISY wakes up, reboots, and re-evaluates the programs right? So now this is still true if it is within whatever time window I decide is worth it, like two or three hours. Then it starts the sequence again, so if the power was out for 6 minutes right over one of the sequence commands, that will get picked up, just late. You will probably need something to trigger the program after reboot since the true/false if statements and the 2:00:00AM time probably already occurred before or during the power failure. What I use is a program which runs on reboot. The reboot program when run waits for 30 seconds for the ISY to go thru its reboot process then sends me an email, then waits for 10 more seconds (all the while the program reads true) then turns false. Program "Reboot" If - No Conditions - (To add one, press 'Schedule' or 'Condition') Then Wait 30 seconds Send Notification to All Wait 10 seconds Run Program 'Email at Reboot' (Else Path) Else - No Actions - (To add one, press 'Action') I would insert: “And Program ‘Reboot’ is False†in your If statement of Wake Temp at 6:00AM program (and all the other programs like this). That way when this previous statement turns false again it triggers the program to start. The nice thing about this methodology is that I only need to slightly tweek 16 programs to implement it. The down side of course is that if the power goes out 2 hours after the sequence has started, the whole thing has to start over. No, it is looking like the UPS is the best idea and I will just miss any call that occurs over a power failure. If the power were to go out 2 hours into the process, what would you prefer to happen, the program to resume or quit? Of your 16 main programs, are they mainly the same events, just different timings? I may have a few other ideas which may pan out but I have to take off right now. Tim
Illusion Posted August 10, 2009 Author Posted August 10, 2009 Tim, I think your ISY works differently than mine. I powered it down and upon reboot it does not in fact know the last run time of programs that have not run since the reboot. That field is blank. That said, I think I am strongly leaning towards the UPS. Most power outages in my area are just a couple of minutes long and infrequent at that. I am guessing that I might miss one or two triggers a year if I do it this way. Of your 16 main programs, are they mainly the same events, just different timings? Yea, they are all the same events with different timings. Thanks for all your input. Do let me know if you have a revelation though.
Recommended Posts