Jump to content

Recommended Posts

Posted

We know solid green image.png.df895eb7ba4a0329320bc4dc04dabb87.png means the program is running. 

A green arrow      image.png.9dbcf4e7fbcf81b8a184c468e3a60d52.png means the program has changes that need to be saved.

We are not sure what the red and green shades on the left image.png.1789f0ca6bc675faaa3ef271e20096ac.png indicate?

Thank you.

Posted

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.

image.png.61b764e096fd6f695afec43c4eba0877.png  Also means "Running" specifically running ELSE, whereas the all green version in your example is Running THEN.

  • Like 1
Posted (edited)

I should add that you can use that program state, True or False in the IF statement of another program.

image.png.16c8fc06b7f72f0c46fe3886f7d6b403.png

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 by MrBill
  • Like 1
Posted

@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.

 

Posted

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.

 

  • Like 1
Posted (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 by MrBill
Posted

@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.

Posted
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.

  • Like 2
Posted

@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. 

Posted

@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.

Posted
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.

 

  • Like 1
Posted
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.

Posted
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.

 

 

Posted
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.

Guest
This topic is now closed to further replies.

×
×
  • Create New...