Oh please do compare them.
I have been programming for about 30 years, as Petro says reusable code exist.
What control block types are you missing?
More intuitive? With some code in this node and some in that node and then there’s some configuration in another… nah… Your joking, you must be!
With greater finesse, sure I can to some degree relate to that, but is that worth all the hassle with a completely unusable gui when you are using anything but a computer. So many times I have wanted to just fix something quick and tried to do so in my phone.
Those are macros for templates only, not yaml blocks. I suppose you cannot create a macro replacing the whole automation.
It’s far from being comparable with reusable flows or JS methods in NR.
I’m not speaking about about it’s still a hack on top of jinja. Every such functionality has to be exclusively added by HA developers (while exist in proper programming/scripting languages). It’s a dead-end you refuse to see.
Fair enough if editing on mobile phone is a case.
Today I tried to edit a dashboard yaml using my iPhone. The experience was pathetically terrible. If the automation editor works the same way, I would rather not touch anything critical until I get to my desktop PC.
I think you’re confusing me with someone else, I haven’t been involved in this discussion outside a few “you can do this” comments. I think you’re taking all these posts a little too seriously and you might want to tone down your aggression. Some people aren’t going to like NodeRed and that’s ok.
I would say you are taking my posts as aggressive while there is not aggression in them intended at all. Just facts.
There will be always personal preferences on the table. You can always find one not liking NR.
But the whole discussion is about something else than personal preferences which unfortunately add lot of noise to the main topic.
BTW I’m the only one who reacted on question about “what can we do for newcomers struggling with yaml/jinja”.
These are opinions not facts, and the aggression coming from your posts is based around your assumption that these are facts.
Every aspect of Node Red has feature parity in comparison to Home Assistant Automation combined with various integrations & helpers. There are no gaps. So it purely comes down to what you prefer. The choice basically comes down to: Do you want a flow chart or do you want if-then logic.
I’m sorry that facts influence you so much that you feel there is aggression behind.
JS is a programming language, yaml/jinja is not. This is the fact.
In NR you can encapse everything in reusable blocks (using subflows or just methods in JS) while reusability in yaml|jinja is limited only to jinja templates. This is the fact.
I would risk the statement that programming with the use of “picture”-based language is easier for beginners than in yaml|jinja.
So it purely comes down to what you prefer.
Yes, it is. But this WTH is not about preferences (especially within skilled HA users) but about making it easier for newcomers or users who don’t want or have the capacity to be yaml/jinja geeks.
Every aspect of Node Red has feature parity in comparison to Home Assistant Automation combined with various integrations & helpers.
Nobody said the opposite.
The difference lies in the level of usage complexity (hence your “combined with various…”)
Scripts, yaml anchors, python_scripts, global jinja macros are all ways to reuse various areas in the automation engine. All built into HA, all readily available.
I have been using Home (HA) for three years and I must admit that I quite agree with the original poster (OP). In my opinion, YAML is by no means a real programming language and it is difficult to master, not only because of indentation, dashes and so on, but also when it comes to implementing logic in the actions area. I cannot afford to build an automation for every tiny bit of entity_ids, so thanks to the outstanding help of the community, I managed to factorize a lot of code. Therefore, I use the automation GUI to build a canvas with the necessary logic. I come from Domoticz and had a similar difficult experience with the original implementation until some genius implemented what is called dzvents, which was a major in Domoticz architecture. Personally, I would be much more comfortable programming everything directly with Python, which I believe is possible, though this option has yet to be explored. Besides that, HA is truly a treat.
Ah, so now that I mention the ways to reuse areas of HA automations, the facts are out the window and we are back to opinions?
Please, take a step back for a moment from the thread, this isn’t an argument to win. Lets let other people discuss ways to improve HA’s ease of use. This off topic “I must win and prove Node Red is best” tangent has continued on far too long. Thanks.
Hi everyone, I’ve asked maxym to move on from the NodeRed conversation, I am now asking everyone else who has been replying to his posts to move on as well.
Lets have other conversations about improving HA to satisfy this WTH.
Thinking way back to when I started with home assistant I thought YAML and the way it was used to configure Home Assistant was utterly fantastic.
Instead of having to learn Python and write a program to notify me when my (snail) mailbox was full all I had to do was look up some options in the documentation and fill them in. It was dead easy in comparison to what I was initially planning. Instead of spending weeks learning a programming language all I had to do was follow a recipe of sorts and choose “ingredients”.
Configuration of integrations and using the simple trigger/condition/action (service) layout was a breeze.
YAML was used for configuration markup. And it excelled at it.
It did take a bit longer to get the hang of jinja.
The use of automation/script YAML has evolved since then and the syntax now includes loops and branching instructions and I can see how some find that unusual for a markup language. But having been along for the ride learning as it was introduced I have no problem with it.
Has HA outgrown YAML’s usefulness?
I don’t think so (my opinion).
Sure the graphical editors have an even easier entry point for new users and I think that’s great (no rocket science degree required) but YAML can still be used effectively to supply options for some integrations (including automations) and is a lot easier than learning JavaScript or Python.
Andreas spiess made a good comparison between ESP-Home and the alternative in a recent video.
It summarizes both ESP-Home and any yaml configuration in HA in my opinion.
I’m going to suggest an alternative to the “YAML vs whatever” approach to the new user problem and instead offer another idea. I think the answer is not to change anything about the way Home Assistant is constructed but instead to just prioritize some new user friendly features.
Home Assistant is often compared to a box of lego blocks that let you can easily put together to create useful automations but new users feel the Visual Editor is missing some of the really basic blocks that they are used to using on other platforms.
So what if the Home Assistant team simply set aside some resources to review and update basic GUI functionality. This might involve looking at other popular platforms such as Homekit, Hubitat, Homeseer, Universal Devices Eisy, etc. just to see what features they offer in their GUI interface. These companies would not waste resources providing features that nobody wants so there is a good argument that if it exists in these systems that it would be welcome in Home Assistant.
Once there is parity between the Home Assistant graphical editor and all of the core tools offered on most other systems then it is more than fair to ask users to invest time in learning YAML for more advanced stuff.
Another approach would be to review the features offered within dashboards that are not exposed in the graphical editor for use in automations and notifications. The dashboards are great but helpers and features that can only be leveraged to display things in dashboards are bit frustrating if you need that functionality for something else.
Just to add to the mix, there is the ability to use python to create automations. People who want a “proper” programming language can use it. AppDaemon and pyscript come to mind.