telljcl Posted November 3, 2014 Posted November 3, 2014 Still struggling with my programming here. I seem to be having several issues, stemming from variables that I think should be "changing" in real-time actually NOT changing, so my programs don't work right. For example: (all are now "state" variables) IF: from 12am to 11:59:59pm, same day Then: $den temp difference cool = $stat den indoor temp $den temp difference cool -= $stat den cool setpoint I don't get the proper $den temp diff cool number all the time. It always works if I manually run the program. Also, do any programs that act on the value of $den temp diff cool "see" the moving number as it is being calculated? I.e. before the calculation is "finished"? Because I feel like that may be happening as well. Similarly, I need a number to constantly be calculated so the result can drive program starts. IF: from 12am to 11:59:59pm same day Then: $Number of High TD Units Running = $AC Den is High TD $Number of High TD Units Running += $AC Upstairs is High TD $Number of High TD Units Running += $Kitchen is High TD Doesn't seem to provide a correct number of running units most of the time. The units are "high TD" as determined by the below program: IF: $AC Den Cool Temp Diff >=2 or $AC Den Heat Temp Diff >=2 THEN: $AC Den is High TD=1 ELSE: $AC Den is High TD=0 Again, all of these variables are "state". Any suggestions on what I'm doing wrong or a more streamlined approach? Thanks for any help.
Goose66 Posted November 3, 2014 Posted November 3, 2014 (edited) A program with: IF from 12am to 11:59:59pm, same day will run precisely two time a day - at 12:00:00 am where it will execute the "Then" branch and at 11:59:59 pm where it will execute the "Else" branch. I think what you want is to add a Wait and a Repeat at the end of your Then branch to have it repeat every five minutes or so or change the condition so that it runs when the value of the $stat den indoor temp or $stat den cool setpoint variables change. Edited November 3, 2014 by kingwr
larryllix Posted November 3, 2014 Posted November 3, 2014 (edited) You need to find something that will trigger the whole mess. This would usually be your thermostat sensor. If thermostat_temp < 9999 AND from 12am to 11:59:59pm same day Then ...this runs every time the temperature changes and is less than 9999 degrees AND time is between 12 - 11:59:59PM ...do your temperature stuff here Run ...this runs at 11:59:59 PM every day. You can avoid code here. Time spans act as program triggers twice per day. Time spans act as true conditions between the times. Edited November 3, 2014 by larryllix
telljcl Posted November 3, 2014 Author Posted November 3, 2014 A program with: IF from 12am to 11:59:59pm, same day will run precisely two time a day - at 12:00:00 am where it will execute the "Then" branch and at 11:59:59 pm where it will execute the "Else" branch. I think what you want is to add a Wait and a Repeat at the end of your Then branch to have it repeat every five minutes or so or change the condition so that it runs when the value of the $stat den indoor temp or $stat den cool setpoint variables change. Wow - my logic and that of ISY programming are way out of sync! I just thought it would run if it was in that time period. I guess I've only used specific times before, and not run into this. Larry - thanks - that makes sense. So can I "tabulate" a variable that another program is using to make a decision or do I have to use a second variable to equal the one I'm adding up so it changes to the proper value all at once ? Hope this makes sense - see above.
Recommended Posts