wwat Posted December 8, 2010 Posted December 8, 2010 I have a Venstar T1900, and a wood stove which I an using instead of the electric furnace. I'd like to turn on the fan for 10 minutes every hour if the temperature is above 71°F. Note: if the temp continues to rise within the hour I dont want the fan turned on a second or third time, just the once per hour. The program below ran each time the temperature changed after reaching 72°F so the fan turned on multiple times each hour. If Status 'Living Room / Venstar House' > 71° (Temperature) Then Repeat Every 1 hour Set 'Living Room / Venstar House' Fan On Wait 10 minutes Set 'Living Room / Venstar House' Fan Auto Else Set 'Living Room / Venstar House' Fan Auto thanks, Wayne
io_guy Posted December 8, 2010 Posted December 8, 2010 Check under the howtos. I posted a code example for my bathroom fan that does exactly what your looking for.
wwat Posted December 9, 2010 Author Posted December 9, 2010 Check under the howtos. I posted a code example for my bathroom fan that does exactly what your looking for. io_guy, I've adapted your code for my situation but there remains the problem that the program restarts during the 50 minute wait period if there is a change in temperature. It appears you put the wait period first and then turn on the fan but I need the fan to come on immeditely when the temp rises above 71. If the temp changes from 71 to 72 then the programs are executed however if the temp changes from 72 to 73 during the 50 minute wait period then the programs restarts and the fan comes on before the 50 minutes are up. The other interesting thing is that the code will not wait 50 minutes if I do not add a command after the wait 50 minutes command. So I added the command to turn off the fan for a second time. There must be something I'm doing wrong here. -W. [Furnace Fan - Hourly Cycle Condition] If Status 'Living Room / Venstar House' > 71° (Temperature) Then Run Program 'Furnace Fan - Cycle Heat' (Then Path) Else - No Actions - (To add one, press 'Action') [Furnace Fan - Cycle Heat] If - No Conditions - (To add one, press 'Schedule' or 'Condition') Then Set 'Living Room / Venstar House' Fan On Wait 10 minute Set 'Living Room / Venstar House' Fan Auto //turn fan off Wait 50 minutes Set 'Living Room / Venstar House' Fan Auto Else - No Actions - (To add one, press 'Action')
garybixler Posted December 9, 2010 Posted December 9, 2010 Hi, Maybe this would work. [Furnace Fan - Hourly Cycle Condition] If Status 'Living Room / Venstar House' > 71° (Temperature) Then Run Program 'Furnace Fan - Cycle Heat' (Then Path) Else - No Actions - (To add one, press 'Action') [Furnace Fan - Cycle Heat] If - No Conditions - (To add one, press 'Schedule' or 'Condition') Then Program Disable Furnace Fan - Hourly Cycle Condition Set 'Living Room / Venstar House' Fan On Wait 10 minute Set 'Living Room / Venstar House' Fan Auto //turn fan off Wait 50 minutes Program Enable Furnace Fan - Hourly Cycle Condition Else - No Actions - (To add one, press 'Action') Gary
wwat Posted December 9, 2010 Author Posted December 9, 2010 That looks good Gary, I'm in the process of testing it now. With the first program disabled it wont be doing anything until its re-enabled after the 50 minute wait. Thanks again to both you and io_guy for your assistance. Wayne
oberkc Posted December 9, 2010 Posted December 9, 2010 Being unsure if the garybixler solution worked for you, perhaps there is an alternative. Given that it appears the the program condition evaluates every time the temperature changes (forcing a restart of programs with a wait condition), I thought that there was an alternative. I am also a fan of folders, so I tend to favor them, even if alternatives exist. Folder condition: If Status 'Living Room / Venstar House' > 71° (Temperature) the run the programs in this folder Program in the folder: if time is 0000 or time is 0100 or time is 0200 or time is 0300 . . . or time is 2300 then Set 'Living Room / Venstar House' Fan On Wait 10 minute Set 'Living Room / Venstar House' Fan Auto //turn fan off else While it is not quite as elegant, taking the temperature out of the program conditions will avoid the re-triggering of the program every time the temperature changes a degree.
art Posted December 9, 2010 Posted December 9, 2010 Agree with the above solutions, another answer can be found in the Weather Bug thread where programs would retrigger every time the outdoor temperature changed by a 100th of a degree. Some of us use a code similiar to the following (copied from the thread) If Module 'Climate' Temperature <= 40 °F And Program 'Cold Flg' is False Then Run Program 'Cold Flg' (Then Path) Else - No Actions - (To add one, press 'Action') You then write another program to set program false by testing if it is true and temperature is higher, then run the else. Your programs would be opposite for a warm flag, but the concept is the same. In this way the status of the program changes once from false to true if the temperature drops below 40. This solution is better for some (including me) because the two little programs that change the flag status don't have to have a one degree temperature band (as a folder permissions solution would). You can have your WARM flag set true at greater than 71, but not reset to false until less then 68. This will prevent false triggering if your fans disturb the air layering in your home and momentarity create a termperature inversion and cause your program to retrigger as the temperature rises again.
wwat Posted December 9, 2010 Author Posted December 9, 2010 Gary's solution worked perfectly, there was one modification required to the code. The last line in the 'Then' part needed a statement to recall the [Furnace Fan - Hourly Cycle Condition] program. Another thought, if we had a power outage or ISY went offline during execution when the program was disabled then it would never run again so i would need something that run on ISY startup that enabled the program if it was disabled. Because of this I'll take a look at the other solutions to see if there is an even more simpler elegant method. -W. [Furnace Fan - Cycle Heat] If - No Conditions - (To add one, press 'Schedule' or 'Condition') Then Disable Program 'Furnace Fan - Hourly Cycle Condition' Set 'Living Room / Venstar House' Fan On Wait 10 minutes Set 'Living Room / Venstar House' Fan Auto Wait 50 minutes Enable Program 'Furnace Fan - Hourly Cycle Condition' Run Program 'Furnace Fan - Hourly Cycle Condition' (If) Else - No Actions - (To add one, press 'Action')
wwat Posted December 10, 2010 Author Posted December 10, 2010 Arts solution worked and is quite a nice piece of code although due to ISY's programming model it can be difficult to understand why it works if you are use to other event driven languages like Visual Basic. I wouldn't call myself a beginner at programming however I did find this code somewhat difficult to get my head around (at first) however its nice and compact. Once I understood (recalled) the rules regarding calling 'Then' and 'Else' paths it all came together. Many thanks for the assistance, Wayne [Cycle Fan] - Run at startup ON If - No Conditions - (To add one, press 'Schedule' or 'Condition') Then Run Program 'Cycle Fan Temp Condition' (If) Else Set 'Living Room / Venstar House' Fan On Wait 10 minutes Set 'Living Room / Venstar House' Fan Auto Wait 50 minutes Run Program 'Cycle Fan' (Then Path) [Cycle Fan Temp Condition] If Status 'Living Room / Venstar House' > 71° (Temperature) And Program 'Cycle Fan' is True Then Run Program 'Cycle Fan' (Else Path) Else - No Actions - (To add one, press 'Action')
Recommended Posts