IT Solutions Posted March 1, 2021 Posted March 1, 2021 We know solid green means the program is running. A green arrow means the program has changes that need to be saved. We are not sure what the red and green shades on the left indicate? Thank you.
MrBill Posted March 1, 2021 Posted March 1, 2021 They show the state of the program, True or False... another way of thinking about it is which ran last Then or Else... very much similar to the full green or red folder, except they have already finished everything they will do until triggered again. Also means "Running" specifically running ELSE, whereas the all green version in your example is Running THEN. 1
MrBill Posted March 1, 2021 Posted March 1, 2021 (edited) I should add that you can use that program state, True or False in the IF statement of another program. If you have a program that should always be True or always be False or be True or False at a certain time, or certain time period, or maybe if variable $Test = 1 AND Program XYZ is False.... then..... else and so on...... Caveat: Watch out for Programs with identical names for example i have 8 or 12 programs all with the name "Alexa.on" but in different folder.... the If Program 'Alexa.on" is True phrase won't work. It Finds the first instance, not necessarily the instance you meant. Edited March 1, 2021 by MrBill 1
IT Solutions Posted March 1, 2021 Author Posted March 1, 2021 @MrBillThank you for that information. If I right click on a program that has green on the left and click Run Else, it should run the Else part of the program and turn red, right? I tried that and it does not run the else part of the program (a variable does not change). I also tried right click on a program that has red on the left and Run Then. It did run the then (value changed), but it did not turn green. Is there something one must do to refresh the screen to see the color changes? Thank you.
MrBill Posted March 1, 2021 Posted March 1, 2021 I can't get mine to behave the way you're saying. Specifically i used this Program to Test: AA TEST - [ID 0103][Parent 0001] If Program 'AAA TEST' is True Then $stemp_test += 1 Else $stemp_test += 1000 When I started AAA TEST was false. Clicking this programs Run Then and Run Else from the RIght click context menu changed the color of the left bar on the icon every time. then I changed the value of AAA TEST to true and repeated alternating Run Then and Run Else, every time I did so it worked as expected changing the color of the left bar. Then I disabled the program above and continued to test... still not seeing the observations you are reporting. What is the content of the IF statement of the program that you don't think is changing? Perhaps its being re-evaluated immediately? I also just tried it with a schedule 8:00AM to 5:00PM and then clicked run Else and the band as expected turned red, even tho the schedule is still true. (Because the IF portion of a simple schedule is only evaluated AT 8:00 and AT 5:00PM and NOT constantly between those times. 1
MrBill Posted March 1, 2021 Posted March 1, 2021 (edited) 27 minutes ago, IT Solutions said: If I right click on a program that has green on the left and click Run Else, it should run the Else part of the program and turn red, right? I tried that and it does not run the else part of the program (a variable does not change). After I read that sentence a second time, it made me wonder about Folder Conditions... If the folder the program is in or ANY FOLDER ABOVE IT is False, Right click Run, Run Then or Run Else will be prevented. That's about the only way for a right click Run, Run Then or Run Else to not run. Edited March 1, 2021 by MrBill
IT Solutions Posted March 1, 2021 Author Posted March 1, 2021 @MrBill We got burned on a folder rule last month so definitely no folder rules. I checked again after your post and no folder rules. We have 6 programs that check 6 different ELK Zones. They are all the same except for the Zone they check and the integer they change. 1=Violated; 0=Secure. Here is one of them: FH Garage - [ID 000A][Parent 000F] If Elk Zone 'Fl Heat Garage' is Violated And Elk Zone 'Fl Heat Garage' is not Normal Then $I.FH.LLGarage = 1 $S.FH.Zone.Count += 1 Else $I.FH.LLGarage = 0 $S.FH.Zone.Count -= 1 With my understanding of ISY, when the zone becomes violated, the THEN should run, the integer should change to 1 and the zone count should increment by one. At this point, the program should show green on the left since THEN ran last. When the zone is no longer violated (secure), the ELSE should run, the integer should change to 0 and the zone count should go down by one. It works most of the time, but not all the time. We need it to work all the time. We have zones that are violated but showing 0, not 1. The Zone count is frequently off, but it only changes in these programs. We only see two statuses for these zones, Normal or Violated. We are having an issue with another program: Turn ON Floor Heat When Delay is LE Zero - [ID 001E][Parent 0010] If $S.Floor.Heat.Delay <= 0 And Elk Zone 'Outside Temp' 'Temperature' < 55° And $S.FH.Zone.Count > 0 Then Set Elk Output 'Floor Heat Contr' On Else - No Actions - (To add one, press 'Action') There is a delay timer that counts down from 50 to zero. When it hits zero the above program should run. Sometimes it does, sometimes it does not. or maybe it runs, but the ISY does not turn on the ELK output. Other programs are triggered by the ELK output getting turned on, and they don't get triggered. I can add an email to the above program to see if it is running, but the ELK output is not turning on. We get status emails whenever the zone count changes (but not more than once every 5 minutes) so I can see the Delay counter counting down way below zero, the outside temperature is in the 20s or 30s, and the Zone Count is more than zero, but the above program does not run. Any ideas on these? This is getting very frustrating. Thank you.
kclenden Posted March 2, 2021 Posted March 2, 2021 9 hours ago, IT Solutions said: I also tried right click on a program that has red on the left and Run Then. It did run the then (value changed), but it did not turn green. Is there something one must do to refresh the screen to see the color changes? You shouldn't have to do anything for the program status color to change in the Admin Console. So a couple questions. In the cases where you manually run the THEN or ELSE and the program color doesn't change, does the Last Run Time change? In your six programs that check for a zone violation, the last statement of both the THEN and ELSE seems to change the value of a state variable (e.g. $S.FH.Zone.Count += 1). Could that variable be part of the IF of another program that does something to halt the zone violation program? It seems most likely that a strange interaction between your set of programs is the cause of the issues you're seeing, so you may have to post all of your programs. 2
MrBill Posted March 2, 2021 Posted March 2, 2021 @IT Solutions I can only say... I don't have ELK, so I can't comment on how ELK interacts within the IF statement, I do know how ISY works tho and I'd find it unusual that the 3 right click run don't behave as expected unless a folder condition was turning them off.
IT Solutions Posted March 2, 2021 Author Posted March 2, 2021 @kclenden & @MrBill Thank you for your posts. When I tried to click on Tools in the Admin Console and nothing happened then tried to backup the ISY and it did not work, I closed the admin console and reopened it and it is now working as expected now. I disabled the delay timer and let the system run on just turning on the floor heat when 4 zones were on and it ran fine all night, but this morning the zone counts were not matching what was violated on the ELK, again. We are definitely dealing with multiple problems. It is working now so not much I can do to troubleshoot it. I did manually change a thermostat to change the ELK zone and monitored the traffic from the ELK to the ISY and when I tested it, everything was working correctly. I will test the communication with the ELK again next time the counts are off. Thank you for your help on this.
MrBill Posted March 2, 2021 Posted March 2, 2021 10 minutes ago, IT Solutions said: 1) When I tried to click on Tools in the Admin Console and nothing happened then tried to backup the ISY and it did not work, I closed the admin console and reopened it and it is now working as expected now. 2) but this morning the zone counts were not matching what was violated on the ELK, again. 1) You may already know this but, close the admin console when your not using it, it's not meant to be a 24/7 system monitor. Anytime something doesn't make sense to me the first thing i do is close the admin console and re-open it. 2) A good exercise to help troubleshoot your counts being off is to click on "my programs" at the top of the program tree, then right click and choose "Find/Replace" use Find to "step-thru" all uses of your variable $S.FH.Zone.Count and just step thru each place it's used to see if you've accidentally done something like used = where you meant += or -= or used += or -= in both then Then and Else of some program. I find it helps to step through each usage of the variable using that method rather than clicking between programs staring at each one. You might also find an entirely unrelated program where you accidentally selected the wrong variable. Another trick you can use to "log" every time a state variable changes for debugging is to create a temporary program using a condition that will always be true and then either email the change or send it to pushover. the program below will run THEN each time the count changes. If $S.FH.Zone.Count > -9999 then Resource send_count If you create a second application token at pushover to use with this program only the app will organize these all together in a separate folder. Of course send the value of the variable. You could also include not only the value of the variable but have separate lines with the state of each node that changes it. 1
kclenden Posted March 3, 2021 Posted March 3, 2021 4 hours ago, MrBill said: Another trick you can use to "log" every time a state variable changes for debugging is to create a temporary program using a condition that will always be true and then either email the change or send it to pushover. Changes to state variables also appear in the Event Viewer.
IT Solutions Posted March 3, 2021 Author Posted March 3, 2021 5 hours ago, MrBill said: 1) You may already know this but, close the admin console when your not using it, it's not meant to be a 24/7 system monitor. Anytime something doesn't make sense to me the first thing i do is close the admin console and re-open it. 2) A good exercise to help troubleshoot your counts being off is to click on "my programs" at the top of the program tree, then right click and choose "Find/Replace" use Find to "step-thru" all uses of your variable $S.FH.Zone.Count and just step thru each place it's used to see if you've accidentally done something like used = where you meant += or -= or used += or -= in both then Then and Else of some program. I find it helps to step through each usage of the variable using that method rather than clicking between programs staring at each one. You might also find an entirely unrelated program where you accidentally selected the wrong variable. Another trick you can use to "log" every time a state variable changes for debugging is to create a temporary program using a condition that will always be true and then either email the change or send it to pushover. the program below will run THEN each time the count changes. If $S.FH.Zone.Count > -9999 then Resource send_count If you create a second application token at pushover to use with this program only the app will organize these all together in a separate folder. Of course send the value of the variable. You could also include not only the value of the variable but have separate lines with the state of each node that changes it. 1. I did not know this, but closing and opening it did clear up those issues. Are there any know cases of the Admin Console being open causing problems with ISY programs running correctly? 2. Thank you for this suggestion. I have done this and did not find anything that should not be there. I have logging setup and have taken off the rule where it only sends every 5 minutes until this problem is found.
IT Solutions Posted March 3, 2021 Author Posted March 3, 2021 1 hour ago, kclenden said: Changes to state variables also appear in the Event Viewer. Good to know. Thank you. Just saw a change to the run timer, followed by a zone turning off, followed by a change to the zone count, followed by and email, followed by a change to the run timer, so right now things are running great.
Recommended Posts