I notice ML currently performs the delay and sends the off commands regardless of whether it actually turned on or not. In my case for example right now the ML rules don't fire because lux is above the threshold and/or its in the wrong mode, but the logs show the off is being delayed and then the offs are being fired, even though the lights are already off, and weren't even turned on by ML.
I realize it doesn't do any harm to turn off an already off device, but for the sake of optimizing the system as much as possible, it might be better if the ML routing just stopped after figuring out that it won't do anything. Right now it seems to carry on doing the off stuff regardless.
It probably applies to the on also, if we have "dont turn off if already on" and the light was already on, then ML should just exit saying so. instead it will go through all the motions of turning on an already-on light, and then counting the delay and sending the off, only to figure out that "dont turn off if already on" should apply.
Less confusing messages in log, less cpu cycles and less z-wave traffic, all of these must be good things, no?