btreinders Posted December 30, 2020 Posted December 30, 2020 (edited) This has happened twice in the last month. Running 5.2.0. The only way to recover is to restore the ISY. Anyone have any idea why this could happen? Thanks! @Michel Kohanim Edited December 30, 2020 by btreinders
btreinders Posted January 7, 2021 Author Posted January 7, 2021 @Michel Kohanim Any ideas? Third time now. Very frustrating.
jfai Posted January 7, 2021 Posted January 7, 2021 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;
lilyoyo1 Posted January 7, 2021 Posted January 7, 2021 (edited) 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 Edited January 7, 2021 by lilyoyo1 2
carealtor Posted January 7, 2021 Posted January 7, 2021 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. 1
btreinders Posted January 8, 2021 Author Posted January 8, 2021 (edited) 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. Edited January 8, 2021 by btreinders
jfai Posted January 8, 2021 Posted January 8, 2021 (edited) 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. Edited January 8, 2021 by jfai
jfai Posted January 8, 2021 Posted January 8, 2021 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?
lilyoyo1 Posted January 8, 2021 Posted January 8, 2021 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.
larryllix Posted January 8, 2021 Posted January 8, 2021 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.
btreinders Posted January 8, 2021 Author Posted January 8, 2021 (edited) 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. Edited January 8, 2021 by btreinders 1
DennisC Posted January 8, 2021 Posted January 8, 2021 Out of curiosity, does your firmware and UI match? Are you using the ISY Launcher?
btreinders Posted January 8, 2021 Author Posted January 8, 2021 1 minute ago, DennisC said: Out of curiosity, does your firmware and UI match? Are you using the ISY Launcher? Yes, both are 5.2.0. I do use the launcher.
larryllix Posted January 8, 2021 Posted January 8, 2021 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.
lilyoyo1 Posted January 8, 2021 Posted January 8, 2021 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
btreinders Posted January 8, 2021 Author Posted January 8, 2021 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.
Bumbershoot Posted January 8, 2021 Posted January 8, 2021 56 minutes ago, btreinders said: What is an 1101 code? It means that there are updates waiting to be written to a device. See screenshot.
btreinders Posted January 8, 2021 Author Posted January 8, 2021 No, I do not have any devices waiting for an update to be written. Thanks Bumbershoot
MrBill Posted January 8, 2021 Posted January 8, 2021 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. 1
lilyoyo1 Posted January 8, 2021 Posted January 8, 2021 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
btreinders Posted January 8, 2021 Author Posted January 8, 2021 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!
btreinders Posted January 8, 2021 Author Posted January 8, 2021 5 hours ago, btreinders said: I have deleted enough to get below 1024, will give it a shot. Thanks! 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?
larryllix Posted January 9, 2021 Posted January 9, 2021 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.
btreinders Posted January 9, 2021 Author Posted January 9, 2021 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!
larryllix Posted January 9, 2021 Posted January 9, 2021 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.
Recommended Posts