Node Graph based Configuration Suggestion

I did a quick search and did not find any threads about this.

I wonder if any work, research or at least discussions are going about making a node-based graph editor for home assistant configuration?

While more technical people like us can easily setup their configuration.yaml files, or even write Python Apps for AppDaemon, the majority of people would still prefer other home automation systems to HASS because the core feature of it - Automation - is so hard to grasp.

For example, I can’t imagine how I would explain my wife, mom, etc how to set up their own automations, but I can easily imagine how they would like to do some of those themselves.

So the idea is simple. Realisation… Well, I don’t have enough front-end development experience to judge.

Make a node-based graph editor for configuration yaml files. I believe that the ability to import multiple yaml files into the main config, should really benefit this approach.

How it works. I’ll layout the idea as I see it. As mentioned, I don’t know if it was already suggested, thought about, and all of this may seem too trivial for most people here, but I’ll write it anyway.

Workflow:

  1. User is presented with an interface, the majority of which is an empty grid. Front end loads as much entities as possible. Each entity can have inputs and outputs. Or they can be split into input-only and output-only nodes.

  2. For example user finds “door sensor” and drags this node onto the graph. “Door sensor” has two output events - “Door opened” and another one “Door closed”.

  3. User then drags the “Hue Light 1” node onto the graph. This node has multiple inputs: On, Off, Switch, Brightness, Hue, etc, as much as supported.

  4. Then User drags a connection-line from “Door opened” output of “Door sensor” to the “On” input of the Hue Light, and another one from “Door closed” to “Off”, accordingly.

  5. Now user types in the name of the automation, and saves it. It creates new .yaml file, which is also added\imported into the configuration.yaml.

And there we go, we have a new automation created in a few seconds with a few simple clicks, which even a child could do.

Examples of other node-graph editors include, but not limited to:

  • Unreal Engine 4 Blueprints - is probably the most powerful node-editor right now, and the best example, since it’s basically a C++ workflow translation into nodes, with functions, variables, events, loops, conditions and ton of other things. All UE4 games now utilize this node-based development system, and you basically can’t even make a game with pure C++, you’ll have to use nodes at least somewhere.
  • The Foundry Nuke \ Eyeon Fusion \ Houdini \ Maya \ 3ds Max MCG - these CG-cretion tools (3d editors, compositing programs) include powerful node-based tools and workflows which proven their worth over the years
  • Raspberry Pi (Raspbian) has some built-in node-based scripting tools
  • Node-Red?

and a lot of others.

Thanks!

Actually, there’s a few threads on the subject, in particular with Node Red. You might be interested in checking them out and participating there.

2 Likes

Thanks, seems like Node-RED may be a good solution. However it’s still worth to think about integrating something into HASS itself, I think.

1 Like