Question on timers

Couple of questions:

  1. What does the Timer_Toggle action do? Will this cancel a running timer?
  2. What is the difference between self trigger and self-retrigger?
  3. What happens in this scenario:
  • I have a self-retrigger timer that is set to 20s, which is the default timer for an auto lights off condition. Lights are switched on automatically by motion.
  • I have another condition triggered by a double click of a switch which is meant to extend the lights off… it starts the same timer with 5:00. If I leave the lights on they go off after 5 mins.
    The issue I have seen is if I double click, then manually turn the light off, I would expect when the auto-light condition is satisfied again (motion detect), it will start the timer again and lights would go off after 20s, but it would seem it stays on for longer, so I wonder if the 5 minute timer is still running and it honours that instead? Can you confirm the expected behaviour please?

Cheers

1) What does the Timer_Toggle action do? Will this cancel a running timer?

This is not intended as a user-callable action. It does not stop a running timer. You cannot cancel a PLEG timer once it is running but you can write your Conditions so that the timer stop is ignored unless it is still required.

2) What is the difference between self trigger and self-retrigger?
If you try to start a Self Trigger timer when it is already running, the action is ignored. If you send a start action to a running Self ReTrigger timer, it will be restarted.
3) What happens in this scenario:

Once you start a timer running, it only stops when the full time elapses. If you restart the timer with the same or a longer interval it actually creates a new timer and the completion of the original one is ignored. If you restart a timer with a shorter interval than that remaining then the earliest timer completion will get ignored and you will see only the original timer completion. This can be very confusing so the situation should be avoided.

I find the best approach for multiple time intervals is to use different timers rather than try to re-purpose a single one. Strategic use of Sequence expressions should allow you to ignore the end of redundant timers and only act on those that were started by the most recent trigger.

Thanks. Makes sense now.