The future of YAML

It’s simple, when yaml will be totaly removed. i will change my domotic system to an other one.
Any idea of nice domotic system ? Gladys ?

Do some reading. YAML is not going away in most areas.

They also said it wasn’t going away, and then it went away in some areas.

4 Likes

That is either one of the following;

  • A trust issue
  • A conspiracy theory

Th path that the project is following has been documented on this part. One can like it or not, which is fine.

Basing and drawing conclusions on things you think “might” happen is just your mind and I’ll point back to the first point made in this post:

If it is a trust issue, sorry to hear that, time will tell. If it is a conspiracy theory, I would say there is no place for that is this community.

Talking from my personal POV:

I think it’s both (1) a dissatisfaction on the direction of certain areas on a project we love and use every day; and (2) a lack of trust due to a potentially inadequate communication strategy.

Let’s see if there are precedent for not trusting “YAML is going away”:

In May 2019, the first UI configurations were added to version 0.94. Paulus tweeted about it. Bart Pit said please do not make this as the first step to remove YAML. The reply was “It won’t go away”.

September 2019, some key contributors start removing YAML support. You can still see references to “Config yaml is not going away” on Github discussions.

ADR-007 has official discussions around this topic in the same month:

On more than one occasion Home Assistant official representatives have said that config YAML will not go away as a way of configuring Home Assistant, even after introducing config flow. If we are serious about that promise, Home Assistant needs to take responsibility for the way that integrations offer ways of configuration. If we do not require integrations to offer YAML as a way of configuring, we have to change what we say to users and inform them that we can not promise that YAML will stay.

April 14, 2020, about ~7 months after that post, YAML went away for integrations. Ironically, with a very pointy “Is YAML going away? No!, but… [YES]”.

Do not take me wrong. I do think you have the right to change your opinion and change to new circumstances. However, one year ago we were 100% certain that YAML was not going away anywhere. Today, it has gone (and will go) away on most integrations. How can we be sure that in 1y time, we will not have loss YAML capabilities in more and more areas.

Step by step, we are adding more and more UI (which is brilliant). I do think there’s precedent to be at the very least wary. And I think I am not alone on that feeling.

Has the Home-Assistant team reacted well to feedback?

Now, opinions have changed in the past. In ADR-007, YAML was still a first class citizen. In ADR-0010 is not. However, instead of listening; the response is closing down threads where people are voicing concerns, splitting threads away from the main discussion (there are more), and having very very encouraging responses.

I know you’re smart bunch. I hope you understand why we worry and lack some level of trust.

20 Likes

Time will tell.

1 Like

You are right “Time will tell”.

Météo France components remove it’s YAML option

Logger: homeassistant.components.meteo_france
Source: helpers/config_validation.py:752
Integration: Météo-France (documentation, issues)
First occurred: 2 septembre 2021, 14:06:14 (1 occurrences)
Last logged: 2 septembre 2021, 14:06:14

The 'meteo_france' option near /config/configuration.yaml:0 is deprecated, please remove it from your configuration

Synology remove it’s YAML option :

Logger: homeassistant.components.synology_dsm
Source: helpers/config_validation.py:752
Integration: Synology DSM (documentation, issues)
First occurred: 2 septembre 2021, 14:06:17 (1 occurrences)
Last logged: 2 septembre 2021, 14:06:17

The 'synology_dsm' option near /config/configuration.yaml:0 is deprecated, please remove it from your configuration
1 Like

It is expected.

1 Like

Sadly… When i started out with HA it was a steep curve, but i came to love yaml. Easy to write, easy to maintain, super easy to clone, fast to read for checking.
I could read most of my stuff in one go.
I’m a typical dumb user in many ways, and love UI. BUT: I’m already missing parts of my yaml really hard. especially since UI is slow, und finding every single option takes ages. not to mention the fact that i can’t even change some things without deleting and setting up new, or that the system keeps setting up *_2 and *_3 instances of items.

As said: I Love the UI, but we really need both. I’ve resorted to editing .storage files manually after setting up things rudimentally in the UI, but i thing that’s not the best way to go
I would love to be able to edit every detail in yaml again.
Greetings

10 Likes

The latest version removed some more yaml stuff. Octoprint config has deprecated yaml now as well. I am coming from 7 years working with openhab and using config files exclusively. I know not everything in homeassistant could be done with yaml and I am ok with that. But now im starting to worry that everything is going to go UI and that makes it harder to use in my use case. Also seems to complicate doing ci/cd (granted, not everyone does that, but I like to test things before rolling them into the house).

2 Likes

Just edit the config files in .storage, that’s what I do. JSON is not that great to edit by hand, but at least it’s not the abomination that is yaml. You can bootstrap the settings over the UI and then fine tune by hand. JSON is easily machine parseable, so you can create external tools to manage and modify your HA config.

2 Likes

I was wondering about that. I have 1 thing i had messed around with in the .storage. But I guess i could go that route, and do a local “dev” install to configure things and get it how i want then move that stuff to prod.

Do not take this advice.

1 Like

And why is that ?

It’s all undocumented of course, so have a backup ready when editing the json. The format used for the various settings are pretty simple and mostly self explanatory. If not, a quick look into the respective sources will tell. Just keep in mind that the format may change from one version of HA to the other, but that shouldn’t be an issue if you only do one-off changes, like automated mass-renaming of entities and such. And dealing with undocumented breaking changes is a skill you’ll have to learn with HA anyway :yum:

1 Like

Why would you?

It is machine generated and you definitely should not f+++ with it

1 Like

Because some things can only be done efficiently by editing config files. Try renaming hundreds of entities over the UI. Good luck.

Why shouldn’t I ? Most config files are machine generated and machine managed in some way. That’s not a reason not to edit them by hand (or by using external scripts). That’s common practice and even required in pretty much any advanced Linux setup. There’s nothing special about them. Editing by hand is not an issue at all if you know what you’re doing, don’t break the json structure and don’t touch the GUIDs. And I had the feeling that @brunkj knows how to safely edit a json file :slightly_smiling_face:

2 Likes

Because it’s easy to f**k them up and the devs tell you not to touch them. It should be very rare for you to touch them as a last resort only.

1 Like

That’s not a valid reason. There’s the UI for people who might not feel comfortable editing config files. And that’s a good thing. For advanced users, especially for developers (brunkj seems to be one judging by his title) editing json files by hand or by using external tools is a very basic standard operation. They’re one of the most popular ways to store config data after all. When developing code using json config storage, REST or any kind of JS really, you’ll be hand editing json all day long, especially while debugging.

It’s my standard go-to way to change any kind of config setting in HA when the UI becomes annoying due to its lack of efficiency. And I have a feeling that I’m not the only one doing this…

1 Like

It’s a totally valid reason and this should not be promoted to people who may not know what they are doing. It’s very easy to break json file and if you do that then your HA won’t start at all.

(I’m not saying I have never done it BTW just that it’s a last resort and I have f**k’ed up HA and it wouldn’t start when I did that until I restored a backup)

You mean like forgetting a space in yaml and having all hell break lose ?

If the devs don’t want us to edit the config files directly, then maybe they should give us advanced users a better way to manage our configurations. Because the current highly inefficient UI doesn’t cut it. Until then, I will absolutely continue to promote the editing of these files, as it has been working very well for me. And there’s no reason it won’t work for others.

And in this specific case, let’s leave the decision to @brunkj, as he’s the one I replied to, in how he wants to manage his config, shall we ?

1 Like