Issues with Controlling Automations Through Piston Pause/Resume


#1

1) Give a description of the problem
I have a piston that handles all the automation controls for my house. For each automation piston, I have a virtual device as a representative of the piston being paused or resumed. It works. One at a time, if I tell alexa to turn off living room automations, it works perfectly. Same when I ask her to turn them back on. This works with controlling the automations through other pistons as well.

The problem seems to be when I attempt to turn off multiple virtual switches to turn off to pause multiple pistons. I have even tried putting a 10 second wait between the commands. The results are hit or miss. Some of them will fire, some won’t; it’s never consistent. I get the same results if I setup routine to shut off the automations with 10 second waits in between or if I group the automation virtual switches and tell them to all be on or all be off, it will never work right.

2) What is the expected behaviour?
My expected behavior is to be able to pause multiple pistons either simultaneously or at least allow me to fire them in rapid succession. The use case is for when the cleaning people come, I want to turn off all the lighting automations in the house. and when they leave, I want to turn them back on. There’s probably 15 pistons in total that I’m trying to pause/resume simultaneously and I can never get them to reliably pause together or in rapid succession but one at a time ALWAYS works.

3) What is happening/not happening?
Not all the pistons pause/resume for each of the virtual switches that are turned off/on. It’s only some of them and it’s never the same ones.

4) Post a Green Snapshot of the pistonimage

5) Attach logs after turning logging level to Full
I’ve never done any webcore logging and I’d need minimal guidance. I know how to do it in HE, just never needed it in WC.

REMOVE BELOW AFTER READING
If a solution is found for your question then please mark the post as the solution.


#2

It looks to me like your piston is a sequence of if blocks which don’t interact and so could be written as independent pistons. As that is the case you might benefit from enabling parallelism in the piston settings so each switch event starts its own instance.

Without that the piston will try to serialise execution and that could get messy with timers all over the place.

It is a lot happening at once though so you might also like to slow down the events a little. That is to say put a little bit of a delay between the virtual switch changes. I don’t know if that would be necessary though.


#3

Hilariously, that worked. That was definitely not a piston setting I was aware of but as soon as I made the change, a singular command was pausing/resuming all the defined pistons.

Thank you for your help!