I would like to report what looks like a bug, I think it should be from the latest update but not sure; the webcore stays function (stay unchanged, was and stay...) does not works anymore. Here the log
here the piston, actually its 2 pistons. That was working great for a while but its not working all the time now...
In the first piston, on the end, I have a for loop that activate a control switch but only after a delay stored in variable. So, wait 1s then if index = variable turn on another switch else next index... and when the for loop end, it toggle the control switch to reactivate the for loop... and the 'other' switch when turned on, allow the first event (each 20s do but only if that switch is on)...
everything is fine and works good exept that one day (I think after an update) the event looks to trigger sometimes but not all the time its supposed.
So, here the second part, when the event get fired, it also call the other piston with the variable that hold the delay as argument. Then, in the other piston I store it the same way and I have the if statment with stay unchanged (if the control switch stay unchanged for that delay, the piston must be stopped so toggle the control switch...) I made a notification to know if it got triggered and it get trigerred each time! Its like it ignore when the switch is toggled but in the log I see the switch and its toggled normally...
I know its a lot of stuff but you can only look at those interesting part, all other stuff is just other event...
*** in piston #2 those if was and stay doesnt work (I saw it working one time but the log tell it cannot retreive the original state... so not sure)
here the log from another piston I made just to follow the same trigger... It looks like it dont know the previous state so send the notification (evaluated to true) but in the log just after, if prepare the timer saying it had not change...
you will need to turn off if optimization if you are going to use triggers as you do with OR statements. basically all the if clauses that are OR'ed together will not run, so many checks for maintenance of stays will not be executed.
I would try disabling condition traversal optimizations.
If you can get this to a smaller scenario, that would help. All my unit tests are passing, so I expect you are not letting the stays execute on every run
Actually, those are working great, I made some test by turning the switch manually on and waiting... I even creating a test piston with those if... and it send a notification with all those timer (I made one at 30 sec. another one at 45...etc..)
Ok, I just found that with the original way (just using the variable : stay unchanged for var) its working. Dont know why the logs tells that it missmatch something but I ll take it! The only thing is, for now its ok to use the same time, I mean, my switch is toggled each x seconds and I use stay unchange for x seconds so maybe somehow it could detect a tinny difference and get trig...so if the need to add some seconds to the variable comes in I dont know then how I could do. Maybe turning number into string in the variable could work, to force it to convert it.
Anyway!