Maybe one should look how OT-PLC programmers use their (visual) programs. In Siemens you can switch from visual program from FBD (Function Block Diagram) ↔ LAD (ladder logic) which is relative user friendly.
In my opinion ladder logic is very useable to read/understand and could be a nice option to start visual programming.
For example to switch --| |-- an output/lamp —( )— , read it from left to right:
|------| |------( )
Just quick search on the internet as an example:.
EDIT: in school this was the basis what was taught.
I assume this Month of WTH is some kind of brainstorming.
And then I think that marking a statement as “this is the solution” — except if it REALLY and OBVIOUSLY is the solution — is a bit against the goals of brainstorming.
If you read the posts, then some are in favor, others aren’t. So clearly there is no consensus. And still I think “kind of” squelching other opinions by marking someone as a solution that the OP didn’t want is not nice.
Personally, I detest graphical programming — but I’m a programmer. So if the graphical programming items have a textual representation (that people can exchange, e.g. here in this forum) … when why not!!! It’s like currently the GUI editing of Home-Assistant doesn’t take much away from the YAML preferrer.
So not, what is marked as a solution is just a personal opinion (like mine above). It’s not the solution.
EDIT: Just to start the discussion, 2 panels, left the trace (flow), right panel to select which ‘symbol’ to add/delete with drag/drop. Maybe a button on the top to change to the trace view <—> ‘normal’ automation view and a button to simulate?
EDIT2: Maybe colors can be used to see the actual states of each symbol?
Node red isn’t what op is asking for. Node red is suboptimal for this, as while it’s a great automation emgine, it’s not tailored for home assistant or smart home. Built in flow editor in home assistant would be much more intuitive for use with home assistant. And I’d have to rebuild automations from scratch to move them to node red.
Flow systems help to visualize large automations. If I do anything more complicated than turn on a light with a couple conditions, it becomes really hard to see what is what, it becomes a wall of cards (or wall of text if using yaml) which makes it hard to easily visualize where the automation branches of when using building blocks like choose or if-then etc. That frustratingly increases the time spent troubleshooting simple problems, when I could have just looked at a node tree and almost instantly see that action I placed in the wrong spot in the automation.
I agree, I am a very visual person so I use Node-Red, and not the built in automations.
I find NR to be a bit overwhelming though, so a simpler interface like your Homey example would be much appreciated.
I came from SmartThings and Hubitat, when they got automation builders they were like Home Assistants, and WebCoRE.
The tabular widget block by block automation builder doesn’t work that well with my brain.
Hi, just here to throw my 2 cents. I have a very delicate home automation for my climate. With time and refinement it got so complicated that the automation was complitely unreadable. I switched to an orchestrator, a main automation that switched on or off other automations. The debug was a pain. Then I simply give up and rewrote all of it in a python script. I am a developer, so it wasn’t really a problem, but I’d liked if i could done all of it with the native software. I would really like a solution like this because, even if I prefer to write my code instead drag and drop some blocks, it give the user with one glance how the flow of the actions is, and how the steps are correlated to each other.
I’ve been using HA for a couple of years and started automating using NodeRed as I was already familiar with it. It is certainly capable and I used it for more than 90% of my automations.
Eventually I got round to learning native automations with YAML and found them to be more responsive. I am now migrating a lot of flows over to YAML just to get a little more performance.
Where I am struggling is orchestration. Describing something like - open the shades when it gets light, but not before the alarm goes off - is ugly in YAML - split between triggers, conditions, and actions.
An orchestration service could start with implementing simple logic and then use more advanced techniques such as Bayesian or even AI.
With the current automations and scripts, more and more of them call other scripts or trigger automations.
e.g.
turn off lighting in the living room - also turns on the lighting in the hallway.
turning on the heating - 15 minutes before the alarm goes off
open the shades after the alarm but only if it is getting light.
holiday schedule.
All of these can be written in automations, but keeping track of them and debugging is quickly becoming a real challenge.
I believe there are a few things to consider when thinking about a graphical editor for automations:
Mobile Usability / Responsiveness
As a Home Assistant (HA) user, I want to be able to edit automations as easily as possible on my mobile device (smartphone, tablet).
Anyone who has ever used Node-RED on their phone knows what I mean.
Semantics
The semantics (and structure/syntax) of HA automations differ from those in Homey or Node-RED. While systems like Node-RED use data pipelines to process data streams, HA has a different semantics more tailored to specific use cases. In HA automations, trigger variables can also be used, but I believe non-programmers rarely make use of them.
I think the fundamental structure of automations should be preserved. This structure consists of three main blocks: Trigger, Condition, and Action.
Each of these blocks has its own structure:
Triggers are organized as a list.
Conditions represent declarative logic.
The Action block corresponds to imperative programming, rather than being data-oriented.
I believe there are some issues with the current automation editor, but they do not necessitate a complete redesign of HA’s automation philosophy. In particular, it will not work to replace HA’s fundamental event-driven paradigm.
Goals I See:
More Insight
As a user, I want to understand which states lead to which results, so I can comprehend the effects of the automation and identify potential errors.
As a user, I want to detect error situations to fix them easily.
As a user, I want to quickly grasp the purpose of each step in an automation to understand what it specifically does.
More Context
As a user, I want to recognize the logical connections within an automation at a glance to understand it as a whole.
As a user, I want to identify related elements (e.g., triggers and their effects), as they are currently spatially distant from each other.
More Assistance
As a user, I want reasonable suggestions at every step when creating an automation to be guided through the process.
As a user, I want to complete trivial tasks with a single click (e.g., linking a switch to a light).
I’m not sure whether a graphical editor, as envisioned by the original poster, is necessary or even meaningful.
I believe a specialized LLM (large language model) that creates automations from natural language and guides the user through their creation and modification in a conversational manner could be a valuable addition.
That’s the beauty of open source, it’s all about choice. If you don´t like it you free to chose not to use it. If you like it then it’s your choice to use it.
Let’s wait and see where the community/future goes, you never know and it could be the solution you never thought of before.
A workflow editor should absolutely be considered as an entry-level tool for beginners to handle simple to moderately advanced tasks.
Currently, there’s a HUGE inconsistency in how things are implemented in the existing GUI. What initially seems straightforward often turns into a confusing and overly complex process for the average home user (i.e., non-techies).
If regular home users are a target audience, Home Assistant has a long way to go in making automation more intuitive and user-friendly. A well-designed visual editor could bridge this gap without intimidating beginners or alienating advanced users.
@madelena - Just to clarify: Are non-techie, regular home users actually a target audience for HA?
–
P.s.
@iARv, have you changed your mind and decided not to push for this anymore? Is that why this request has been “resolved”? There are over 200 votes for it, after all…
When a thread has a solution, it will say “Solved by” with link to a post in the thread with the solution. Boiler is assuming that means the WTH is closed and nothing will be done.