[FAQ] [Advanced Flow] Infinite canvas. Infinite creativity

As I see some questions on “Performance” I tested some delays that the different conditions take in execution. We all see the nice animations during developing but what takes a Delay of 0 seconds? a Any or an All?
Luck the Copy - Paste works great and 5 x 5 is 25 …

Here the flows and the results:
25 x Delay 0 Seconds: On Canvas ~ 29 seconds , Normal 53 ms.

25x Any: On Canvas ~ 29 seconds , Normal 20ms.

25x All: On Canvas ~ 35 seconds , Normal 39 ms.

So I guess we don’t need to worry about speed
(Homey Early 2016)

10 Likes

Hi

Updated to 8.0.1 and it works, though it takes around 45 seconds after the mark I set in the flow before the lights actually turns off. I tried with a very simple advanced flow, and it was about the same, so I guess this could be modified even better. But at least the inactivity cards triggers the advanced flow now :slight_smile:

Nice Question @FKey @Ralf_Groot

I am afraid some members will be a little disappointed reading this or call it Less Advanced Flows :wink:

̶N̶o̶t̶ ̶y̶e̶t̶ ̶v̶e̶r̶i̶f̶i̶e̶d̶,̶ but I guess I can Explain it this way: (Edit: verified, I think I got a 9+ :wink: )

  • A Flow runs from the Trigger until all cards in the chain have been evaluated, or the chain stops.

So when (following the Flow Chain) all triggered conditions (cards and Operators) have been evaluated and all triggered Actions triggered by the Flow have been done and all delays are done the flow will stop.
So a flow should be able to run at least ~16 hours (One Delay from 999 Min.) or maybe multiple chained Delays, up until Homey Restarts :wink:

You could try that this way:

But I can’t change the input of the ALL during the execution. If one of the input’s was No it will never become Yes during that Flow execution.

BIG MISCONCEPTION
A Condition can’t change from outside the flow during that it runs. cq Once it was triggered.

From within the flow it can,
fe: Then: Toggle MyYesNo-Tag, then if MyYesNo-Tag is YES then… but these actions and conditions are chained.

WHAT DOESNT Work:

The second Timeline notification “End” will NEVER run,
I Start it as Favorite Flow or by turning a Light ON.
But it is impossible to start Both triggers the same time.
So even if the Light is Off and within ~ ms it is turned ON, that triggers the Flow to run a second time.
But that runs a New Flow evaluation
You see it here: After starting it turns on the Light and in a Second (1 Sec.) it tries an ALL with 3 inputs.


But the 3rd input WAS triggered in a separate Execution, (See Notification: Light Was Turned ON!)
So both Flow Executions will stop. The First Started by hand after ~ 1 second delay. The second is started if the Light was turned ON but also stopped after a couple of ms.

1 Like

Amazing feature. I just replaced like 20 flows into one view for all my light automations. Exactly what was missing.

Monetization of this feature is a bit weird though. I get that they need to make money, so maybe a sub of a 2-3 euro would make more sense, and bundle it with their backup sub…

This was advanced flows 2 years ago :wink:

Just trying to get used to the concept a little more. I think I have been a bit over-enthusiastic in combining flows on one canvas.

Do I understand these things correct? :

  • The “start” card in a flow is what was the “this flow was started” card in the “old” flows;
  • You can combine flows that have an automated trigger (condition change or whatever) on one canvas. That would be, flows that you would never want to start manually from the app or with a switch;
  • For flows with the “start” card, you should better not have more than 1 trigger card / flows on the canvas;

Other questions:

  • For structural and overview reasons it looks nice to combine flows on one canvas. But from a performance point of view I can imagine that separate flows would be better?

:white_check_mark: Correct

:white_check_mark: Correct

:white_check_mark: Correct, There is only one “Start” for fe if You make it a Favorite Flow.

I haven’t tested anything but cant imaging any performance thing in execution except editing a very Large combined Flow in the Browser. And Disable/Enable will work more global if you combine more.

1 Like

I do this with flow event bus, eg: create an event with value
event loop, value motion alarm name.
then trigger loop with when event with value received.

1 Like

Is it possible start a flow with multiple variables? Like Start flow Test(Text,Number).

You can use different triggers to start a single flow. But you can’t use several triggers as a condition to start a flow. eg:

when trigger x and trigger y start at the same time run flow won’t work.
neither will when trigger x fired wait for trigger y to fire to run flow.

I hope this isn’t chinese ;D

Isn’t chinese, i’m wondering if it was possible with the advange flow and get two parameters.

This lamp (design) was definately “advanced” a lot more than 2 years ago… :slight_smile:

1 Like

This is great guys, is there a possibility to migrate my current flows to advanced ones, so I can start reducing flows from there?

kr, Rob

We wish there was, but currently the answer seems “no”.

Hopefully Athom sees the need for it too and can provide us with it at some point.
Let’s hope they answer this question in the upcoming Ask Me Anything, next tuesday, 19.00 CEST

Hm I might have been too enthusiastic. After combining my light flows nothing triggers properly anymore. I guess there is some kind of limit to how much an advanced flow can do, or I have a bug?
Only flows I have in there is stuff that happens after motion sensors trigger.

EDIT: Seems to be a bug with the ‘countdown’ app in the store. I informed the dev.

We can’t check what’s going wrong if you don’t share the flow here :grimacing::wink:

I edited my post, it’s a bug with another app. I wonder if devs will have to adjust their apps to work with advanced flows? Or just bad luck with a bugged app? :stuck_out_tongue:

Shouldn’t that work with the ‘All’ card?

Or does that only work with states instead of triggers (while a trigger is just a temporary state)

Correct, but I guess you could store things in a variable to get around that.
This case is actually in the original post by dijker as an example of what doesnt work.

2 Likes

For a flow with 8 "WHERE"s, of which only one of them can be true, which would be the preferred way to connect them?

nr.1:

nr.2: