Log reports that something happened, but it didn't. Need to perform the action twice


#1

I have a simple piston that has been during firing happily for months, and now it’s misbehaving. When WS100 turns on, execute HOME piston.

The problem is that I have to turn it back off and on again for it to actually work. You can see from the first log that it reports executing at 6:39:17, then off at 6:39:45, then executing the Home piston again at 6:39:47 when I turned it back on again.

However when you look at the log from the Home piston, it’s only been executed at 6:39:47.

Any idea why?


#2

Is it possible your HOME piston was paused during the 6:39:17 execution?

Another possibility is, if this happened when you first walked in the house, and you have many complex things happening at that time, that somehow that one command got lost in all the commotion. I try to keep only one piston firing at a time, whenever possible.


#3

Definitely not paused. The complex stuff starts once the HOME piston fires. At the time of the first “miss” there would have been nothing else happening.


#4

Do you have any pistons with conditions similar to:
IF Presence sensor presence is present
???

Because depending on your wording, those pistons may have all been actively doing things…

Each time a subscribed device changes (in either direction) the entire piston runs top to bottom.


#5

I do, but the first log definitely says that it sent the execute command. The “if present…” Parts are all in the first piston. THAT one executes, which then executes the “Home” piston.

FIRST PISTON:
IF X OR Y CHANGE TO PRESENT, TURN ON SWITCH

SECOND:
IF SWITCH TURNS ON, ACTIVATE “HOME”

THIRD (HOME) PISTON:
TURN ON LIGHTS, HEAT, ETC.


#6

I have no doubt that the execute command was sent, but my hunch is it was not received because of other pistons that I alluded to. This is incredibly hard to troubleshoot without looking at all of your pistons. How often does it happen? Can you take a look at pistons that you created or modified at the same approximate time period as when the issues started cropping up?


#7

You would also need to post the events happening at that time from LiveLogging. That’s the only way to know if something else is actually the cause of the issue and not this piston. It would also be helpful to see your piston. If you have wait statements in there and something is causing the state to change, that will interrupt the execution and start over again. Do you have multiple triggers and first one fires, then the other? Can’t tell without seeing your piston.