ST Alarm send repeated text messages

Trying to create a piston that will trigger when my ST alarm goes off and send me repeated txt messages about what sensors are being activated. I have a virtual switch that ST turns on which is what the piston is listening to. I originally tried to use the “switch changes to On” type of logic but it didn’t seem to fire all of the time so I’m using “switch is on” with a blocking variable to keep it from running constantly.

The problem is with the while loop and the device list. I’m experimenting with the motion sensors which is why they are set the “changes to active” instead of “is active”.

When the alarm goes off and the lights all come on like expected, I’ll get anywhere from 4 to 6 text messages for a single motion sensor when it changes to active rather than just a single text like I would expect. Also I don’t get text messages from the other motion sensors when I trigger them. When it was set to is active instead, I would get multiple texts per sensor.

Should I dump the while loop and just use the blocking variable with changes to active / open on the sensors?