How to force fixed point (delaying execution) after random triggering

I want to delay some flow triggering to exact minutes, so tested with this flow

, where:

  • “Transition” rep. steps (every 3min) I would allow to finally execute flow, if triggered (xx:00, xx:03 etc.
  • Every 3 min just acting like test-trigger
  • fixed delay used to test if any effect

(I know using “and” looks strange on triggering, but) based on test even same time 2 triggers not creating message. Non of 3 coming thru… only basic message OK…

Reason for trial: cannot find dynamic wait-card and testing,testing

Better ideas how to make same functionality?

For each ALL-card you have two triggers. This will never work.

Yes, thus looking for better ideas

If I understand your problem correctly you want a flow that triggers at 12:01 waits till 12:03 before continuing?.

I would create a YES/NO variable ‘all conditions are met’ and set this to YES when the flow triggers and conditions are true.

WHEN
transition reaches a step
AND
‘all conditions are met’ is YES
THEN
set ‘al conditions are met’ to NO
proceed with the rest of the flow

1 Like

For each ALL-card you have two triggers. This will never work.

After many delay-cards etc. can confirm was not able to find “cheat”…

YES/NO variable ‘all conditions are met’

Thank you for idea - unfortunately I have decided long back to avoid all variables on my flows (long story)…

After further testing ended up with bit (too/) more complicated solution at the end:

15min timer is already existing on my Homey set-up for other purposes, so used that on my testing:

Seems to do exact what I wanted… each flow executes only every 3 min - even if triggered twice within 3min (and easy to adjust as/if needed):

(Update just in case someone is still interested / has similar ambition of “simplification” )

Finally landed with very simple :grimacing: but greatly stabilizing my Homey (and its HomeyScript challenges) by creating “full re-usable” sub-flow:
(I am sure not fully optimal, but seems to address all my own needs perfectly)

Part 1:

Part 2: (cont., error reporting for testing left outside as zero errors in last 2 days :innocent:)

Now all my “randomly” triggered (heavier) flows can be timed to exact slot on desired cycle length (using 5min / 15min / 60min / 6hUTC / 24hUTC) while improved my main flows greatly to be more simple than before (had many if/delay etc. cards) while sticking on my zero-variants policy :slight_smile:

Below example of main flow: each main task will only run if :

  • triggered randomly (by any to all triggers)
  • forced call (w/o parameters, resetting also earlier triggers)

Random triggering results execution:

  • at 3min cycle + 1min/2min
  • … but never before every 15min +2,9min and latest +15min-5,2min (protected time)
  • only once per cycle independent at what time / how many times it has been was trigged.
    (showing 2 separately controlled “zones”, separate actions for each with one common trigger)

Sidenotes:

  • here main-flow is calculating optimal heating expectation only, while final heater decision on separate flow not to change mind too often :slight_smile:
  • Tested also that “Timer id finished” triggering only once (to be on safe side)…