Conditions and Triggers: The difference?



Is there a time when a Condition becomes a Trigger?

I have a piston where I turn on a virtual switch, but within the piston, I use the state of the switch as a condition. But when I turn it on, I get a timed event that executes the piston. This seems to cause a

Piston waited at a semaphore for 10022ms

message since nothing was waiting on this event to occur.

Here is the log at the time that this occurs.

Here is the piston.

Any insights would be appreciated.


If you have no triggers in a piston (like this one), then all conditions become triggers. Notice all the lightning bolts in the left margin. Each one of those are acting like triggers, and executing the piston at any event.


Pistons have timeout handlers set on them so they are “time monitored” pretty regularly

During piston executions these timeout handlers try to recover the piston. When a piston is idle the timeout handlers check if the piston missed some early time setting. I expect this code was added during the ST platform issues in regards to schedules, run-in, etc.


I thought the On Events at the top is the Trigger, and all other IS’s are Conditions. I did see the lightning bolts for the Conditions, which is why I was asking.

I just changed the On Events power statement to If power changes, and that seems to have fixed the IS-becoming-a-trigger problem. Now the only lightning bolt is for the power change Trigger and not any of the Conditions later.