I’m no expert here with this…but I ran into the same problem and I believe after doing a bit of tinkering that I’ve figured out what is happening. Please test for yourself to confirm though.
What it looks like is going on to me is that the Restriction is not being checked when the Timer triggers (meaning Every Day at 7:00AM). The restriction is only checked when the Timer is initiated (when the Piston starts).
Basically what I’m seeing is that the piston will execute at the Time if the Restriction WAS false, not if the Restriction IS false.
So…for the long-winded explanation… When you started the Piston, Vacation Mode was likely Off. So the Piston put in a Task to Start and fully execute at 7AM. Later on you turned on Vacation Mode. But the task was already set to happen at 7AM and it does not look like (from what I can tell) that the Piston cares that the Restriction changed after the task was set to initiate.
I don’t know if there is a fix for this…or if you’re supposed to design your piston in a different way… Such as:
Every day at 7AM
Do
IF location mode is not vacation
Turn on your lights…or whatever…
But it certainly seems like to me that Restrictions are evaluated when the Piston STARTS the Timer not when the Piston EXECUTES the Timer…which certainly is backed up by the results I’m seeing and from this post as well.