oskrypuch Posted February 3, 2011 Posted February 3, 2011 If Module 'Climate' Temperature High .LT/E. 60 °F And Module 'Climate' Temperature High .GT. 40 °F Then Run Program 'var season spring/fall' (Then Path) Else Run Program 'var season spring/fall' (Else Path) (had to replace the inequality symbols, the board doesn't like them) Will the above ever execute, that is will the Module 'Climate' parameters changing trigger a program? If so, will it execute continually and repeatedly and hog ISY execution time (the Else clause), or only on the Climate parameters update, which I have set to every 30min? What might be a better way to do this? I was first going to reset all the var season variables at 3:00:00pm, and then test for each season condition at 3:00:05pm to set the correct one. That avoids the Else issue, but seems very sloppy. * Orest
apostolakisl Posted February 3, 2011 Posted February 3, 2011 I plead ignorance on the climate module, however, it goes against how everything else in iSY works to have the if continually evaluate. It probably works like status where every time the temp changes it re-evaluates. The other possibility is that it never triggers and that you need something else to act as a trigger. Just write your program and watch the program summary page. It will tell you every time it runs and from that you can figure out the trigger.
fitzpatri8 Posted February 3, 2011 Posted February 3, 2011 The program will evaluate once every time the WeatherBug station is queried (you set the Weatherbug Polling Interval on the Configuration...Climate screen). I normally AND some other limiting condition (program status, current status of a light or relay, or time) and avoid using ELSE actions in order to avoid undue system load. What actions are you planning in response to the temperature condition?
TJF1960 Posted February 3, 2011 Posted February 3, 2011 Hello oskrypuch, It should trigger. The only problem I see may be (depending on the programs it is calling) that everytime weatherbug updates status, it will cause the program(s) to re-evaluate. Tim
oskrypuch Posted February 3, 2011 Author Posted February 3, 2011 Well, the story so far, I have five program variables defined ... summer hot summer spring/fall winter winter cold The intent is to have toggled TRUE only one of those, at all times. It would be triggered by the high temp, perhaps the current temp, as well as high average wind velocity would affect the winter assessment. That is a work in progress. Those variables in turn control a number of things, including VenStar setpoints and mode, early curtain closing in the summer, that sort of thing. If the temp changing triggers an assessment, then that will make it easy. I currently have these parameters reassessed at 3pm and 3am. * Orest
oskrypuch Posted February 3, 2011 Author Posted February 3, 2011 Wrote a short test program, and it looks like to trigger a re-evaluation, you need BOTH a parameter refresh PLUS that parameter must have changed value. So, even when the parameters refresh, if that particular value did not change, then no trigger. If that proves out for sure, it will be just what I need. If anyone feels that is contrary to their experience, please post. I am just exploring all this at the moment. * Orest
fitzpatri8 Posted February 4, 2011 Posted February 4, 2011 Last time I tried it, I found that changing numbers caused the program to reevaluate even if the change didn't alter the outcome. If I set the program to trigger if the light level was less than x, and the light level changed from x-2 to x-1 or x-3, the program would evaluate again as true and execute the Then branch.
oskrypuch Posted February 4, 2011 Author Posted February 4, 2011 Right, so to trigger a re-evaluation, the result TRUE or FALSE of the IF clause does not need to change, just one of the input values in the inequality. A range of inputs (as you note) might keep the result as TRUE, or FALSE, whatever it was. * Orest
Recommended Posts