I’d like to share a small suggestion regarding the ergonomics and interface of Advanced Flows:
The “handles” from which we draw the arrows are currently fixed in such a way that, when a flow becomes even slightly complex, it’s difficult—if not impossible—to avoid a tangle of lines going in all directions. The result is often a flow that quickly becomes unreadable.
If you could implement a feature allowing users to freely position these “handles” anywhere around the edge of a card, it would greatly improve layout flexibility. Flows would look more like structured diagrams rather than a plate of spaghetti
This would significantly enhance both readability and maintainability.
The disadvantage though is not easily knowing what the line is. ATM lines on the left are inputs, on the right are outputs and the bottom are errors. If you can place them anywhere, it could be a nightmare trying to figure out if you are looking at an input or output
That’s a valid concern — and I totally get it.
The current fixed handle positions do help identify the nature of each connection (input, output, error) at a glance. But I think there’s a middle ground that could preserve that clarity while still improving layout flexibility.
For example:
Handles could remain color-coded or labeled (e.g. input = green, output = blue, error = red), regardless of their position.
Or maybe dragging a handle could show a tooltip indicating its type before connecting.
Even a toggle option in the UI to switch between “free placement” and “classic layout” could satisfy both needs.
The goal isn’t to remove clarity — it’s to reduce visual clutter and make complex flows easier to follow. Especially when lines start crossing over each other like spaghetti
Thanks for raising the point — it’s exactly the kind of feedback that helps refine the idea
jlucG
I’m also wondering about the UI. ATM you start the click on the left, it knows you are connecting to the input and will only left you stop on an output, and vice versa. If you can click anywhere how would it know if it’s an input or out you are starting on. It would have to popup a selection for you to specify what it is, which is an extra step.
I guess I’m lucky having a wide screen, so I layout from left to right and spread things out to reduce any lines crossing.
Great point — and I totally see where you’re coming from.
The current behavior is intuitive: left = input, right = output, bottom = error. It’s simple and predictable, which is great.
But if we imagine a more flexible system, it doesn’t have to lose that clarity. For example:
Handles could still be type-bound, even if repositionable. So when you start dragging from a handle, it knows whether it’s input/output/error based on its type, not its position.
Or, as you said, a quick popup selector could appear — but only when ambiguity arises. In most cases, the system could infer the intent based on context.
Another idea: hover labels or icons on each handle to show its type clearly, even if moved.
And yes, having a wide screen definitely helps — but not everyone has that luxury . For users on laptops or tablets, reducing line clutter could make a huge difference in usability.
So maybe it’s not about replacing the current system, but offering an optional “free layout mode” for those who want more control. That way, both styles could coexist.
Thanks for the thoughtful feedback — it’s helping shape the idea into something more robust!
Maybe the way UML editors do it is a good example: use one sided arrows to indicate the flow direction, allow only horizontal and vertical lines, allow extra bend points, have several connection lines like straight, one and two bend points, allow the user to shift horizontal and vertical lines.
While this subject pops up once in a while, I do agree with Adrian here.
People already mis the fact sometimes that the yellow bottom output is the false, and the blue top output is the true for conditions, add the “complexity” of being able to move around the nipples, you’ll only probably create even more chaos.
My advice is, don’t put everything behind each other, try to separate the flows into 2 or 3 (or even more) smaller flows, they can still be on the same canvas.
It won’t add much (if any) latency and won’t create any extra work for Homey.
Thanks for both of your insights — they’re really helpful in refining the idea.
I totally agree that clarity is key, especially when it comes to understanding flow direction and condition outputs. The current system (left = input, right = output, bottom = false/error) is intuitive once you get used to it — and I wouldn’t want to lose that.
That said, I think there’s room to borrow ideas from UML editors, as mentioned:
One-sided arrows to indicate flow direction
Horizontal/vertical lines only
Optional bend points
Ability to shift lines for better layout control
These features wouldn’t necessarily replace the current logic, but could enhance visual clarity, especially in complex flows. Think of it as a layer of layout flexibility, not functional ambiguity.
As for the concern about “moving nipples” (love that term ), I get it — too much freedom can lead to chaos. But maybe a hybrid approach could work:
Keep the current handle logic (input/output/error) intact
Allow repositioning within constraints (e.g. snapping to grid, limited sides)
Use color coding, tooltips, or icons to preserve clarity
And yes, breaking flows into smaller chunks is great advice — I do that already. But even then, when flows grow, visual clutter can creep in. So improving layout tools could help everyone, from beginners to power users.
Thanks again for the thoughtful feedback — this kind of exchange is exactly why I love this community!