Jump to content

All Disabled Programs Suddenly Become Enabled


btreinders

Recommended Posts

  • 2 weeks later...

If you're using enabling/disabling programs for state management of a finite state machine, I recommend to use a variable instead. The unexpected enabling of disabled programs has been happening intermittently with every firmware version in the last few years. It's time consuming and cumbersome to double-check all disabled programs every time the firmware changes. You have to document every program that needs to be disabled, or come up with some clever organization/naming of disabled programs.

Straw man example using pseudo code:

Instead of:

Program A: IF condition A THEN do something; enable program B; run program B;

Program B (normally disabled):  IF condition B THEN Wait 60 s; do something; disable program B;

Use a state variable:

Program A: IF sState is 0 AND condition A THEN do something; sState = 1;

Program B:  IF sState is 1 AND condition B THEN Wait 60 s; do something; sState = 0;

 

Link to comment
1 hour ago, btreinders said:

@Michel Kohanim  Any ideas?  Third time now.  Very frustrating.

If you want help from UDI, go through the proper channels for support and submit a ticket. While UDI does chime in from time to time, this is not their preferred method for support related questions (forums are for members who want to help troubleshoot). 

You could also upgrade your ISY to 5.3 or 5.3.1 to see if that helps since you are on an older firmware

Link to comment
1 hour ago, jfai said:

Program A: IF condition A THEN do something; enable program B; run program B;

Program B (normally disabled):  IF condition B THEN Wait 60 s; do something; disable program B;

You don't need to (and probably don't want to) enable program B in order to run it.  Just make a call to run it while still disabled.

Link to comment

It isn't happening during an upgrade, it is happening while the ISY is just running.  

In the past this was the best way to get UDI to address issues, I guess that has changed.  I will submit a ticket.

I am not enabling and disabling on he fly, I just have many programs that are disabled for many different reasons and using variables iMO would be far more complicated.

For example, I have a light program that is disabled because the condition is if the light is on then turn it off and if it is off then turn it on.  When it suddenly becomes enabled if cycles on and off continuously.  When you have over 200 of those going on and off it crushes the ISY.  

Thank you for the replies.

 

Link to comment
4 hours ago, carealtor said:

You don't need to (and probably don't want to) enable program B in order to run it.  Just make a call to run it while still disabled.

I've seen programs with all kinds of "clever" use of enabling/disabling of programs. This was just an example... The point is, don't use program enable/disable for state machine control.

Link to comment
20 minutes ago, btreinders said:

... I just have many programs that are disabled for many different reasons and using variables iMO would be far more complicated.

Could you elaborate why you think that the use of variables would be more complicated? 

Link to comment

Personally, I dont see a need to use variables for something like this either. I've never had an issue with disabled programs becoming enabled or vice versa for any system that i've installed. I've seen programs disappear but not enabling or disabling (outside of those upgrading to 5.0). 

Is it the same programs? Have you noticed a pattern? Depending on your answers, you may have something inadvertently triggering that to happen. 

Link to comment

I would typically use enable/disable to control a one function/one program style permission but use a variable for multiple purpose/multi-program functions.

I do find programs being enabled or disabled from time to time also but always assume it is is due to ISY rebooting or complex interactions creating some condition not foreseen by the programmer that left programs in the wrong state. I do find enable/disable more obscure than variable permissions but it takes less elements for some usages and that usually makes it more clear how it functions two years from now, when the insanity clears away more.

Link to comment
11 hours ago, jfai said:

Could you elaborate why you think that the use of variables would be more complicated? 

I just counted and I have 246 programs disabled out of about 1300 programs total.  Now not all of them would cause issues I suspect but I'd bet 200 of them would.  That would mean 200 more variables to contend with and managing their initial states as well if the ISY reboots.

One example I use a disabled program other than device toggling based on state of the device is to not trigger certain programs but do trigger other ones when a state variable changes.  I run the if condition on the disabled programs based on other things.  I have a variable called GUESTS and I set it manually or with a voice assistant like Alexa or Google Home when we have guests.  I don't want it to execute some of the programs but do want it execute others when it changes.  I could create a duplicate integer guests but again I have many of these types of situations and would need integer variables for a lot of them.  Maybe I could use a state variable with different values too but that would take a lot of effort as well.

Another example would be ceiling fan speeds, I adjust them based on outside temperatures and other conditions.  I don't want them turning on every time the outside temp changes 1 degree since I might have turned them off manually.  Could be taken care of with a new variable as well but more work and testing involved to get it right.

I already have over 100 integer variables and 275 states ones to deal with.  To me, changing all of that would take far longer than just dealing with the issue.  Even though when the issue happens I have to hard reset the ISY and restore it.

I just hope UDI can figure out what is causing it.  I will submit a ticket.

10 hours ago, lilyoyo1 said:

Personally, I dont see a need to use variables for something like this either. I've never had an issue with disabled programs becoming enabled or vice versa for any system that i've installed. I've seen programs disappear but not enabling or disabling (outside of those upgrading to 5.0). 

Is it the same programs? Have you noticed a pattern? Depending on your answers, you may have something inadvertently triggering that to happen. 

When this happens it is every single program that was disabled so I don't think it is something in the programming that could be triggering it.  I finally wrote a program that if becomes enabled will try to stop the ISY from executing and notify me.  It sets a variable that the top level ISY folder needs to be false to execute.  Problem is that it is so overwhelmed it never get the notification to me and I just have to figure it out by seeing issues first. It at least lets me log in to the admin console to see what happened.  Without it I cannot even do that and have to just guess that is what happened and hard reset.

Link to comment
1 hour ago, btreinders said:

I just counted and I have 246 programs disabled out of about 1300 programs total.  Now not all of them would cause issues I suspect but I'd bet 200 of them would.  That would mean 200 more variables to contend with and managing their initial states as well if the ISY reboots.

One example I use a disabled program other than device toggling based on state of the device is to not trigger certain programs but do trigger other ones when a state variable changes.  I run the if condition on the disabled programs based on other things.  I have a variable called GUESTS and I set it manually or with a voice assistant like Alexa or Google Home when we have guests.  I don't want it to execute some of the programs but do want it execute others when it changes.  I could create a duplicate integer guests but again I have many of these types of situations and would need integer variables for a lot of them.  Maybe I could use a state variable with different values too but that would take a lot of effort as well.

Another example would be ceiling fan speeds, I adjust them based on outside temperatures and other conditions.  I don't want them turning on every time the outside temp changes 1 degree since I might have turned them off manually.  Could be taken care of with a new variable as well but more work and testing involved to get it right.

I already have over 100 integer variables and 275 states ones to deal with.  To me, changing all of that would take far longer than just dealing with the issue.  Even though when the issue happens I have to hard reset the ISY and restore it.

I just hope UDI can figure out what is causing it.  I will submit a ticket.

When this happens it is every single program that was disabled so I don't think it is something in the programming that could be triggering it.  I finally wrote a program that if becomes enabled will try to stop the ISY from executing and notify me.  It sets a variable that the top level ISY folder needs to be false to execute.  Problem is that it is so overwhelmed it never get the notification to me and I just have to figure it out by seeing issues first. It at least lets me log in to the admin console to see what happened.  Without it I cannot even do that and have to just guess that is what happened and hard reset.

Do you happen to have a lot of 1101 codes, of any shade or colour, beside a lot of your devices in the admin console device tree?

I think UDI would like to see this problem. IMHO the firmware has become less stable in later versions.

Link to comment
9 minutes ago, larryllix said:

 IMHO the firmware has become less stable in later versions.

I agree with this statement. I had to back out of 5.3.1 and thinking about going back to 5.0.16. I've messed with my Isy more since this new firmware than I did all year with the other ones combined

Link to comment
15 minutes ago, larryllix said:

Do you happen to have a lot of 1101 codes, of any shade or colour, beside a lot of your devices in the admin console device tree?

I think UDI would like to see this problem. IMHO the firmware has become less stable in later versions.

What is an 1101 code?  Polyglot devices?  If so, yes, I have a lot of them.

Link to comment
3 hours ago, btreinders said:

I just counted and I have 246 programs disabled out of about 1300 programs total.

If this statement is true, you have more programs than the ISY is designed to handle, which is 1024.  

I don't know what happans when you hit this limit.  I do know that when you hit the node limit between non-pro and pro, someone has to guess that's the problem because there isn't a hard discrete error message stating it's time to upgrade.

Link to comment
42 minutes ago, MrBill said:

If this statement is true, you have more programs than the ISY is designed to handle, which is 1024.  

I don't know what happans when you hit this limit.  I do know that when you hit the node limit between non-pro and pro, someone has to guess that's the problem because there isn't a hard discrete error message stating it's time to upgrade.

I'm with you on that. If it does let you go past 1024, I'm wondering if that's his issue....I would think it would disable programs vs enabling them though. I've never come close to the limit to find out though. 

It's probably contributing to the situation regardless

Link to comment
2 hours ago, MrBill said:

If this statement is true, you have more programs than the ISY is designed to handle, which is 1024.  

I don't know what happans when you hit this limit.  I do know that when you hit the node limit between non-pro and pro, someone has to guess that's the problem because there isn't a hard discrete error message stating it's time to upgrade.

I have deleted enough to get below 1024, will give it a shot.  Thanks!

Link to comment
5 hours ago, btreinders said:

Well, I guess I was counting programs from Topology and I just realized that is not programs at all.  Anyone know an easy way to count them?

Check the summary, eyeball the bottom program in the list, scroll it to the top and count the number of scrolls time the length of each page full.

or

Copy a backup file, double unzip it, and check the directory file count of the programs in that directory.

Link to comment

Thanks Larry!  I could not get the second zip file to show anything in it but I used the first method.  With folders and programs I counted 53 per page and 22 pages.  Plus 30 more on the last page.  That's 1196 after deleting all my irrigation programs yesterday (I bought a Rachio last summer).  I did see in another thread that Chris Jahn had stated they doubled the amount of programs you could have a while back.  Sounds like once you hit the limit (which is really memory) it will not allow new ones to be created.  Right now the SM command in the serial interface shows I have more free than used.  410 used, 624 free.  Guess I will just work with Michel on the ticket I submitted.  Thanks to all!

Link to comment
29 minutes ago, btreinders said:

Thanks Larry!  I could not get the second zip file to show anything in it but I used the first method.  With folders and programs I counted 53 per page and 22 pages.  Plus 30 more on the last page.  That's 1196 after deleting all my irrigation programs yesterday (I bought a Rachio last summer).  I did see in another thread that Chris Jahn had stated they doubled the amount of programs you could have a while back.  Sounds like once you hit the limit (which is really memory) it will not allow new ones to be created.  Right now the SM command in the serial interface shows I have more free than used.  410 used, 624 free.  Guess I will just work with Michel on the ticket I submitted.  Thanks to all!

Those zip files are too large for PKzip. You must use 7zip to unpack them.

Link to comment

Archived

This topic is now archived and is closed to further replies.


  • Recently Browsing

    • No registered users viewing this page.
  • Forum Statistics

    • Total Topics
      36.9k
    • Total Posts
      370.2k
×
×
  • Create New...