62vetteefp Posted February 14, 2014 Posted February 14, 2014 I have a folder named Thermostats with three folders (3 tstats) and then 3 programs within each. I do not have any specific button keypads to use. I would like to have one light switch set so that if I do a fast off (quick double tap down) it goes into vacation mode and the above programs do not run. Folder Conditions for 'Thermostats' Add conditions to limit when programs in this folder are allowed to run. If Control '24.7A.16.1 outside driveway' is switched Fast Off Then Allow the programs in this folder to run. How do I change the Then statement to not run? I cannot get it to give me any other choices.
Xathros Posted February 14, 2014 Posted February 14, 2014 Hi 62vetteefp- Here is how I would do this: Define a State variable: s.Vacation and set it's value to 0 Then write a program to manage the variable: If Control '24.7A.16.1 outside driveway' is switched Fast Off and Control '24.7A.16.1 outside driveway' is not switched Fast On Then s.Vacation = 1 Else s.Vacation = 0 Then Change your Folder conditions to: If s.Vacation = 0 Then Allow the programs in this folder to run. Tapping the switch FastOff will put the house in vacation mode (s.Vacation = 1) and the programs in that folder will not run. Tapping the switch FastOn will take the house out of vacation mode (s.Vacation=0) and the programs will once again run. You can use the s.Vacation variable in other programs as necessary. Hope this helps. -Xathros
62vetteefp Posted February 14, 2014 Author Posted February 14, 2014 thanks, now I have done that. Only issue so far is that I get a $ sign which you do not have? What did I do wrong? If Control '24.7A.16.1 outside driveway' is switched Fast Off And Control '24.7A.16.1 outside driveway' is not switched On Then $s.Vacation = 1 Else $s.Vacation = 0
62vetteefp Posted February 14, 2014 Author Posted February 14, 2014 OK, Now I want to revise the program so that when I fast off all tstats are set to 60. Do I make a whole new folder and add Folder Conditions for 'thermostat vacation Program' Add conditions to limit when programs in this folder are allowed to run. If $s.Vacation is 1 Then Allow the programs in this folder to run. If - No Conditions - (To add one, press 'Schedule' or 'Condition') Then Set 'Kitchen Thermostat-Main' 60° (Heat Setpoint) Set 'Master Thermostat - Main' 60° (Heat Setpoint) Set 'Upstairs Thermostat - Main' 60° (Heat Setpoint) Else - No Actions - (To add one, press 'Action')
KMan Posted February 14, 2014 Posted February 14, 2014 Only issue so far is that I get a $ sign which you do not have? What did I do wrong? Nothing. The '$' is just the ISY syntax for a variable. Xathros must have typed his program in here (instead of copy/paste from ISY), and just missed the $.
LeeG Posted February 14, 2014 Posted February 14, 2014 "Only issue so far is that I get a $ sign which you do not have? What did I do wrong?" The ISY puts a $ in front of variable names to indicate a variable is being used. It is not uncommon for posted examples to be manually typed rather than entered as actual Programs and copied. Expect to see some variation in what ISY produces versus posted examples. Many posted examples are not absolutely correct syntax.
Xathros Posted February 14, 2014 Posted February 14, 2014 OK, Now I want to revise the program so that when I fast off all tstats are set to 60. Do I make a whole new folder and add Folder Conditions for 'thermostat vacation Program' Add conditions to limit when programs in this folder are allowed to run. If $s.Vacation is 1 Then Allow the programs in this folder to run. If - No Conditions - (To add one, press 'Schedule' or 'Condition') Then Set 'Kitchen Thermostat-Main' 60° (Heat Setpoint) Set 'Master Thermostat - Main' 60° (Heat Setpoint) Set 'Upstairs Thermostat - Main' 60° (Heat Setpoint) Else - No Actions - (To add one, press 'Action') KMan- Thanks, Yes I just missed typing the $ prefix on the variables. 62vetteefp- You don't really need another folder - just a program: If $s.Vacation is 1 Then Set 'Kitchen Thermostat-Main' 60° (Heat Setpoint) Set 'Master Thermostat - Main' 60° (Heat Setpoint) Set 'Upstairs Thermostat - Main' 60° (Heat Setpoint) Else - No Actions - (To add one, press 'Action') -Xathros
KMan Posted February 14, 2014 Posted February 14, 2014 lol ... If I'd looked to see who was online (LeeG and Xathros), I wouldn't have spent time crafting another response to the question about the set to 60!
62vetteefp Posted February 14, 2014 Author Posted February 14, 2014 Here is the program I added. name: tstats at 60 If $s.Vacation is 1 Then Set 'Kitchen Thermostat-Main' 60° (Heat Setpoint) Set 'Master Thermostat - Main' 60° (Heat Setpoint) Set 'Upstairs Thermostat - Main' 60° (Heat Setpoint) Else - No Actions - (To add one, press 'Action') The s.vacation variable says 1 on the Variables page. On the summary page it says "tstats at 60" is true. but none of the tstats changed. Is there a time lag?
LeeG Posted February 14, 2014 Posted February 14, 2014 No time lag. What thermostats are being used? Does the Programs | Summary page show the Program was triggered? If the Variable was set to 1 before the Program was created the Variable has not changed value which is required for the Program to trigger. Change the Variable to 0, then back to 1.
62vetteefp Posted February 14, 2014 Author Posted February 14, 2014 Insteon 2441th I set the variable to 0 in the Program / Variables page. Then fast down the switch. variable Value is now 1 in the Program / Variables page. program says false in the Program / Summary page. So it is not being triggered? If $s.Vacation is 1 Then Set 'Kitchen Thermostat-Main' 60° (Heat Setpoint) Set 'Master Thermostat - Main' 60° (Heat Setpoint) Set 'Upstairs Thermostat - Main' 60° (Heat Setpoint) Else - No Actions - (To add one, press 'Action')
LeeG Posted February 14, 2014 Posted February 14, 2014 It is likely in a Folder that is False. Yes, it was not triggered. Or if the Last Run Time is when the Variable was changed to 1 there is something perhaps not Saved as the Program should have triggered True if the Folders above it are True.
62vetteefp Posted February 14, 2014 Author Posted February 14, 2014 I put the tstats at 60 into a new folder under the My Programs folder. Now the summary says true when I fast off. BUT the tstats did not change to 60!!
62vetteefp Posted February 14, 2014 Author Posted February 14, 2014 what does that mean? in the variables page it has Init which is 0 and Value which is now 1.
LeeG Posted February 14, 2014 Posted February 14, 2014 Run Tools | Diagnostics | Event Viewer at LEVEL 3. Change the Set Point values in the Program to something other than 60 as the ISY will not send 60 if it thinks that is the value in the thermostat. Be sure to Save the Program change. Fast Off the the switch and post the event trace. To the question of Init versus current value, the Init value is what the ISY will set the Variable to when the ISY is rebooted. If you want the Variable to be set to the current value when the ISY is rebooted set the Init value whenever the Variable value is changed.
Xathros Posted February 14, 2014 Posted February 14, 2014 On the variables page, there are two tabs (integer and State) this variable needs to have been created on the State tab for a change in value to trigger a program. Integer variables do not trigger on value changes. The init is the initial value the variable will be given at power up or reboot of the ISY. Both Integer and State variables have both a value and an init value. -Xathros
62vetteefp Posted February 14, 2014 Author Posted February 14, 2014 It is likely in a Folder that is False. Yes, it was not triggered. Or if the Last Run Time is when the Variable was changed to 1 there is something perhaps not Saved as the Program should have triggered True if the Folders above it are True. Not at home now but the file was under the main My Folder. One issue I am having is when I exit the program. And close the webpage I do not get the user / password when I restart the isy software. I have to reset the isy module by powering down. Could hhis be related?
62vetteefp Posted February 14, 2014 Author Posted February 14, 2014 On the variables page, there are two tabs (integer and State) this variable needs to have been created on the State tab for a change in value to trigger a program. Integer variables do not trigger on value changes. The init is the initial value the variable will be given at power up or reboot of the ISY. Both Integer and State variables have both a value and an init value. -Xathros Well that was it. I have never used variables before and had no idea that there was the right tab and a wrong tab!! What is the difference between and Integer and State variables? Maybe integers are for counting and State are 0 or 1 (yes/ne)?
Xathros Posted February 15, 2014 Posted February 15, 2014 Based on their names, that would be a good guess and I must admit that was my first impression as well. The actual difference is: A state variable will trigger an if statement when its value changes. An integer variable will not. Otherwise they are the same. -Xathros Sent from my iPhone using Tapatalk
62vetteefp Posted February 15, 2014 Author Posted February 15, 2014 A state variable will trigger an if statement when its value changes. An integer variable will not. Otherwise they are the same. -Xathros Huh? Guess I better keep watching the tutorials I just found.
LeeG Posted February 15, 2014 Posted February 15, 2014 This link to the first post in the Variables forum category may be helpful viewtopic.php?f=68&t=6063
Recommended Posts