I prefer to a bit more proactive.
For the run-of-the-mill, turn-on-the-lights automation, yaml will get the job done. but as soon as it is time to pass context, manipulate workflow, and do more, nodered is more capable.
I have just completed an irrigation system that is driven off of an iCloud calendar, supports unlimited combinations of run times and valve combinations (i.e. {āgroupā:[{āvalveā:1,ādurationā:10.0},{āvalveā:11,ādurationā:15}]} ), posts mqtt messages to an esp32 to drive the irrigation hardware, logs to Splunk for runtime and water consumption metrics, and sends status messages (āHey, the system has been off for more than a week now. Better do something about that.ā) using twillio. I canāt even imagine trying to implement it in yaml. well, actually, i can, which is why it is in nodered.
there is a learning curve. nodered can be quirky sometimes. most of the interesting nodes are contributed, and sometimes have breaking changes. but, it is a more productive development platform than yaml. builtin version control to bitbucket ot github. runtime debugging window. global catch method that can write to the debug window.
I think you havenāt tried to do enough complex things. The HA yaml is very limited in what it can support. Python scripts, Node-Red and Appdaemon wouldnāt exist if yaml was great.
Itās not just the syntax, itās the limitations on flow control, error handling, complex actionsā¦ it goes on.
Yaml works for very simple actions, anything more complex becomes difficult to manage.
this post made me decide to give node red a tryā¦ iām VERY happy that i didā¦
i got to learn new software and a new way of doing things.
i find it allot easier to put together complex automationās AND i have done a ton more automation not only with/for HA but used it for other external automationās. I defiantly wouldnāt replace HA with it, but together they are great.
I doubt thereās much that you can do in one platform that you canāt in the other. As I said, I use both and use mqtt to talk to each other. I am basically lazy and use whichever is easier to implement. Which is most often Node-Red.