Advanced Flow — Community Q&A (from Ask Me Anything 05-07-2022)

I converted my standard flows to advanced a few weeks ago and while I’m overall very happy with the improvement, but I am really missing a few things. They probably have been mentioned before, but I just wanted to mention the list of things I ran into during migration:

  1. Huge issue: obvious #1 is the lack of a mobile editor, especially while still tuning the new flows it’s very inconvenient having to go to a PC for small tweaks or even look at a flow.
  2. Annoying Issue: no option to temporarily disable cards (or connections). That one should not be too hard to implement, just pretend the connection was deleted, but save it in a different state until it gets enabled again.
  3. Issue: no option to connect an ELSE/NOT to an ALL block (e.g. right bottom, similar to AND cards). That’s a common use case, and with an additional ANY block + all connections it gets messy:
  4. image
  5. Small issue: would be nice to have a WHEN card to assign a custom flow name to start an automation section on the canvas by name. I know you can use the “Flow started with…” card and the “Start value” tag, but that felt counter intuitive to me. Might be for backward compatibility, but a canvas is not a flow after all…
  6. Request: improve deleting connections that are located/hidden behind cards. I had to do a lot of moving back and forth just to delete connections. Maybe it should move to the foreground while selected, or add a context menu option to delete it?
  7. Request: exit the test mode automatically after completing the test, and a configurable delay of the test animation would be handy (takes too long IMO).

Just my thoughts. :slight_smile:

2 Likes

I think this will not work.
Say you have three connections to the ALL card.
First being just an “if A less than 10”. That will be a quick check.
Second could be a delay card followed by a if-greater card. This will reach the ALL card delayed.
Third could be multiple cards in seriel and might not even reach the card before the ALL card.
So when should the ELSE part of the ALL card be activated? The logic for the ALL card needs to know everything of the logic before it.

I do agree with all your other thoughts. I hope the Athom guys checks this thread.
I guess they are working to improve the advanced flows, as they said in the presentation; they didn’t want us to have to wait too long for advanced flow. So they did not fix everything. :slight_smile:

I would love to have:

  • drag&drop a line endpoint from one connector to another and
  • drag a line endpoint from a connector and drop it on a free canvas to delete the line
1 Like

I mean something like: NOT (A and B and C and …)

It might not be optimal performance-wise because it needs to wait for at least the first false result (A, B or C) in the ALL, but it then it should work?

So if the ALL part (A and B and C and …) evaluates as false, the NOT connection activates.

The ALL element is waiting for input and only executes the outbound connection if ALL inputs are true.
The ALL element doesn’t know about a previously executed element with a false state.

To get a “all false” state (A and B and C) == false, you need to connect all false lines to a second ALL element.

To get a “one or more false” state, your example is right. All true lines together at the ALL and the false lines to the ANY (only one false is enough for it, so it’s a NOT (A=true AND B=true…).

I think I see what you mean now. But isn’t there supposed to be just one trigger in any given flow, and all the other components just being AND (conditions) and THEN (actions)? I don’t think the ANY will wait for the execution result of another called child flow, does it?

For example: this does not complete if “Lamp JH” is turned on while waiting. It just evaluates the current state at the time the flow is started.
image

I think that’s described here:

It depends on your flow.
I general you have ont trigger whichbstarts the flow. Then you can have several conditions you check and perhaps actions, wherebyou are checking the return.

So you have one start, but the flow prozessing can ve asynchronous. That means every condition is checked idependent and some lines can take longer (if you have actions waiting for a response).
So for example tve ALL element is just waiting for input. Only if all inputs are true it’s executed.
Same for the ANY. If the first input comes, it’s executed.
All other states are not relevant for that.

So you have a AND and a OR check at all.
And the NOT(true) would be easier realized as a OR/ANY(error/false)

I agree with JeeHaa (and with Anders_Gregow’s comment on point 3+4)

About the “messy” part in these points 3+4, I fully agree. I had to get used to the extreme curved lines used on the canvas.

IDEA: Maybe it’s possible, to make the lines only curve forwards unless the next card is placed backwards? (talking only in X-axis direction) This would make the canvas be more neat…
And of course the deleting of connections behind cards (as mentioned also by JeeHaa) needs to be simplified for sure.

Maybe there is a possibility to change the color of the lines when you hover over them to see where it goes. With very complex flows it is easyer to see.
And maybe when you hover over them that the line gets in front of the card so that the line easyer can be deleted.

Another improvement to simplify things a bit: merge the separate cards shown below “This flow is started with a text-tag” + Logic card using “Start value” into one new card: “This flow is started with [Type] [Operator] [Value]” (e.g. … with Text is exactly MyValue).

1 Like

good day.

Does anyone know why you can’t go from an and card back to a when card?

Now I have to create multiple advance flows to be able to achieve everything. If you could go back from the and card to the when card, I think it saves a lot of flows in the end. And you can eventually make everything on 1 canvas. Now if an and card in your flow is wrong. Because of the time, I think you have to quickly switch to another flow. see example how it might be easier?

When cards are not conditions, they are triggers and only meant for starting a flow.
Some have arguments that get validated, but get validated to the value that triggers that card, flows can’t put a value there.
In your example, it will even never be the same 2 times, at the same time, so even if it did work, it will never continue.
You could put the line after the when card though, which does practically the same you want it to go.

You can also put several When cards in 1 advanced flow, so no need to create several flows for that.

You could do it by calling a start-flow card, and have the current flow also started by this flow-trigger. But everytime you start a flow it will be a new instance running in parallell and not knowing of any of the tag from the starting flow as it is another instance of the same flow.

The problem by calling the same flow is that you might end up in an infinit loop, and the flow will be disabled.

Thank you for the answers.

I’ve been fiddling with the shutters at home for a while now.
Now I’ve gotten it right so far by starting different flows.

Only now that I’ve made the switch to advance flows I want to add some extra things and see if it can be easier and clearer.
And that’s where I get stuck. I will add the link of my post.
to create more clarity.

Do you have examples of how I can best build/make my idea?

(sorry my english is not so good. but google translate helps me well.) :wink:

Hi Ron, I gave it a shot, not tested but maybe it’s a nice starting point:

thank you peter.

Should I now throw away the advance flows I had created? :wink:

And create some logics with the names you put in your example?

I’m also just curious how you come to such an advance flow.

Did you have so many in a row, is that to keep it clear?

So that the lines don’t intersect?

edit:

Is it true that if our daughter is not there the shutters open at sunrise or 9:00 am?

Is it now also possible if the daughter is not there that they open at 7:15 am on weekdays and 9:00 am on weekends?

Or is this not possible because I am sitting at sunrise?

1 Like

Use Advanced Triggers App to do this.

1 Like

i can not open advanced flows in Shortcuts (apple) I would like to start a flow using siri but i can only see my “basic” flows" that i have put in favorite. Is this correct?

Have you included the “Start” trigger in the flow?
This is the only trigger that allow you to start a advanced flow from a shortcut.

1 Like

@Anders_Gregow I added a Start trigger but the Flow is not showing up in my favorites.