Where are helpers stored when created in the gui?

I moved ALL my helpers from WebUI to YAML like a few weeks ago.

That’s because I don’t trust the WebUI – I cannot track what it does in behind. It’s for a particular reason:

  1. I have a device added via integration
  2. I’ve created a “helper” via WebUI (switch as x - mentioned earlier)
  3. I’ve removed the device
  4. MY helper disappeared. Vanished. It wasn’t disabled, it wasn’t “broken” → it just VANISHED → without any info, warning, whatsoever.

I recovered a backup, did it again, confirmed it’s repeatable “problem”.

Actually, I call it a “bug”, other people (on discord) called it a “feature” (with the logic: you remove the device, u don’t need the helper anymore: I disagree).

I hate when stuff like that happens → with git version control of my config files I can clearly see what happens and why. Nothing disappears without my knowledge.

Yes, please <3

3 Likes

Thanks for replying. I never meant to mess GUI helpers with yaml written ones, @DvdNwk gave me the prspective I needed. It just seemed very strange to me that such an important feature of HA like helpers isn’t manageable outside GUI like almost everything else. You can’t even get a list of them through REST API

Thanks again, you were very helpful :pray:

Well, “everyting else” also gets less manageable outside the user interface, such as integrations. Less and less of them can be configured in yaml.

1 Like

In yaml maybe this is the case but in core.* files are very well manageable, in terms of enabling, disabling, ignoring, entities, devices, integrations, even changing entity or device names. Also, from API, I can get and manage all kind of logs. Never tried to delete integration or device though outside GUI.

It’s strange a bit, that most of things can be yaml made/edited/duplicated and with helper you don’t have this option. However, within existing helper you can already partially edit it in yamls… Therefore, making multiple similar helpers in GUI is rather time consuming and has big potential for mistakes.

Having in mind, that integrations are going away from yamls, it would be nice to have yaml support for helpers in GUI.

2 Likes

Sorry, there isn’t a ‘Delete’ there …

Can you post an image where you’re looking. There’s one for me on all helpers that are built in the UI. Anything built in yaml will have a disabled delete button.

Why are helpers not synchronized like automations with YAML? I can understand that that would mean introduction of unique ID, but can’t this be done?

You can’t delete anything included in HA via yaml files through the UI, even automations. So I’m not sure what you mean with your comment.

Automations that you edit in UI are available in automations.yaml file. You can later modify this file and reload automations in HA and have direct sync.

I am kinda sure that you can modify automations in UI and yaml.

You cannot modify automations that are included via yaml files. You can only modify automations that reside in the specifically named automations.yaml.

Note the word included. This has meaning in HA.

Thanks to clarify this. But if I create an automation in the UI, I can later open automations.yaml file and continue modifying it there. This is not possible with helpers today.

Yes, and automations are the only integration in all of HA that does this.

Scripts defined in YAML can be edited via GUI as well:

script: !include scripts.yaml

One step further is managing Labels via YAML. Here a Workaround is suggested with Spook Labels.

To conclude, many folks still want to configure standard entities in Home Assistant via YAML to take avantage of e.g. Packages.

I don’t know that I would go so far as to say that counts as “managing Labels via YAML”. It’s managing Labels via Actions.

So what happens if the same group name with different entries is created in the GUI by one person and yaml by another? Yaml cannot see what the GUI has done and the GUI cannot see what the UI did.

A major part of the confusion is why the same data is being handled by 2 different processes that have no knowledge that the other exists?

I have no idea what you’re asking. The only difference between the includes this way is that you cannot modify the yaml automations in the UI. You can still see them and look at traces, you just can’t edit them via the UI.

If there are 2 people modifying groups, one by GUI and the other in YAML, you can create a data collision. For example, you could have each person creating a group FOO, but there is no way to tell the users that there are duplicate groups

No, there’s a system in place that makes each entity_id unique in the system. If you create a collision, another entity with an _2 will be created.