Piston waited at a semaphore


#1

1) Give a description of the problem
I get a lot of these statements in a number of my pistons:

12/20/2018, 11:56:09 AM +47ms
+10224ms ║Piston waited at a semaphore for 10065ms

What does it mean? Could it be because a 2nd async event comes into a piston while it is still processing a 1st event? If yes, then how can I eliminate this issue?

BTW, all of these Waited statements seem to be for 10secs +/- 1/2sec. Why is that significant?


#2

10 seconds (or 10,000 milliseconds) is the standard duration before webCoRE timeouts.
It could be harmless, but I often try to streamline pistons that do this repeatedly.


#3

Here’s a little more info about one of my pistons that give this statement.

When it happened, the Piston state had this displayed.

image

Here is what the logs said.

image

Here is the portion of the piston that displays the Piston state.

Is there a limit to the number of devices that can be associated with a piston? This one has 46 devices tied to it.


#4

That is a great question!
I’m not sure of the official limit, but I try to keep as few triggers as possible in each piston.


EDIT :
Just to clarify, each of my pistons may use many conditions, and send commands to many devices, but I try to limit my triggers to only one or less per piston.
(I will occasionally use two triggers if it’s the same device. IE: Switch on & Switch off)