Advanced Flows - Structuring of flows

With the “old” flows, I ended up with some kind of structure to get a grip on the large number of flows.
I divided them in “actions” and “triggers”. The trigger-flows started one or more action-flows.

Now with the Advanced Flows, it brings nice possibilities to re-structure flows and make things way more insighful.

My first idea would be to combine all flows on a “subject” (for example “sunscreens”) in 1 Advanced Flow. That will work for all flows that are triggered by an event other than a manual start.
I am in doubt what to do with a manual start, as an advanced flow can only have one “start” element. For instance with the sunscreens, if you have multiple sunscreens and would like to manually start a flow to open close only one of them, that would be hard to achieve. Or is there a way to start a flow with an additional parameter? E.g. “start flow Sunscreens action=close item=front-window”?

I am very curious on how you guys structure your flows. All ideas are welcome!

2 Likes

Below is a nice example I think.
Replace the Fibaro switches (they trigger the 2 flows at the bottom) by virtual switches and you can manually control the screens

In case you’d like to use the mobile phone fav flow widgets, you can create flows with “this flow has started” which
control the created virtual switches, one for up and one for down.
Then add them to fav flows.

Source

3 Likes

Hi there,

to start: nice flow on your sunscreen! With Advanced Homey, we can make ‘art’ :slight_smile:

I had the same idea as yourself, structure per function. SO “Light living room”, “Sonos, follow me” (about Sonos joining when I arrive upstairs with music downstairs and leaving it when I leave again), “TV downstairs” (On and Off, only to keep it simple. The lowering of the temp outside the TV room, I want to place in another flow, as also Pausing Sonos, and dimming lights in other rooms etc).

So, till now, clustering ‘same’ functions.

Keep up the fun with these Advanced flows!

Michel

Hi, I really like the advanced flows.
If I have a flow that can be started with a parameter, is it possible to also add a when-card that triggers at a specific time and gives the parameter (“Start tag”) a value, or would I need to have that timer card in a different flow?

Not entirely sure what you mean but you can have multiple When cards in a flow.

Yes, but can you create a value for the “Start tag” from a timer when-card?
I just tried to start the same flow again using a “Start flow card” with a parameter, and that worked,
but is there a way to do the same thing without doing that?

This is how I can do it by having the flow start itself. What I’m wondering is if there is a way to instead use some card to set the “Start tag” and draw a line to the “Logic card”.

Like this?

Nice, I’d missed that there was a way to create constant tags.
But still, it’s then a “Converted tag”. I tried transforming the “Start tag” to a “Converted tag” as well,
but even if they have the same name, they’re not the same tags apparently.
Is there a way to merge tags from different paths into one tag?
Otherwise probably the only way is to convert them to a chosen arrow by duplicating the logic condition.

Still building here, but will keep trigger- and action-flows separately. Action-flows will be merged. For example one flow for lights in one room, instead of one flow for lights on, one for lights off, one for lights in movie-setting, one for lights for reading, and so on.
I’m going to do (try) the samething for sunscreens, Sonos and more.

Triggers I will merge to all the same type of triggers in one advanced flow, from there I will start te action-flows. For example al zone activities on one canvas.

Today I activated Advanced Flows on my Homey Pro and I am now trying to rewrite standard flows to AF’s. I have a question and hope I am allowed to ask it here…

This was the standard flow:

In AF I made it like this:

But could also make it like this:

Is this correct??

Also, in the old flow I could run a test and visually see which of the conditions failed. In AF I can run a test, but only the second AF shows proper feedback. Here:

The other AF shows feedback in the ALL box, but it does not follow with an action. Why is that?

In your first example, you should connect the start tag to all the “And” tags.
So you either connect them parallel (connections from the start to all the And), or you do it serial, like in your second example (which should work).
Testing of all the conditions can only be done if you connect in parallel, because otherwise the cards are only executed one after another. So if the first is false, the flow stops.

1 Like

Aha…thanks :slight_smile:

You mean like this:

(the other AND conditions had no input / were not connected in the first flow… stupid me…)

What is the ‘best’ way: parallel or serial?

Yep, that is the way. Or at least, if you want them to run parallel. Otherwise your other approach would also be good.

I have most of my “and’s” in parallel. Mostly a matter of taste in my opinion, but sometimes it makes more sense to check something first before you check something else, that is where in serial works well.

1 Like

I think it acts like this

  • serial: like Standard flow AND cards (they all have to be True to continue)
  • parallel: like SF OR cards (one has to be True to continue)

Correct about parallel, with the addition that you make it an “all have to be true” again by applying an “ALL” to all of them.
And then, I don’t see much difference other that the one or the other way might be slightly faster or slighly better on resources.

Do you use some sort of “room presence” for this flow, so Homey can detect when you leave and enter specific rooms in your house? (For example with BLE beacons)

Or do you use NFC tags? Or a button?

Hi @Hamster yes indeed. Most of my rooms are ‘follow me’ rooms. Whenever I enter a room (on movement or on activating zone, I use the latter) and music is playing downstairs in the living room, I join the Sonos in that room. And whenever that zone is unactive for 1 minute, I have the Sonos of the room leave the group.

When I’m working I block it, by ‘checking in’. I press a remote and a variable is set. When that variable is set, I do not join . I canb ‘check-out’ again, or leave the room for at least 15 minutes. Same effect.

Does this help? If not, let me know.

Good luck!

Michel

1 Like

So that only works if only one person is in the house? (Checking for activity in a zone)

(@Hamster Although it is not a part of this topic: it indeed works work when a zone is (de)activated regardless of the number of people present. Maybe you want something else? Then I suggest to create a new topic. This one is about how to structure Advanced flows…so it’s not about content per se ;-))

1 Like