WTH are the essential configs of integrations impossible to edit

I think the recent YAML-gate discussion is focusing too much on YAML

My issue with the move from YAML config to GUI configuration has nothing to do with YAML … or GUI.

It is lack of control. I am fine with the new way integrations implement configuration. I have no problem with not doing it in YAML.

I have a problem with not being able to control how the integration is configured. It is hidden in JSON file now and there is no UI to alter it.

Example, my Brother printer. It gets discovered and I can see in the JSON that it is configured with a mDNS entry. This sometimes fails. I do not know why. But when I restart HA I often get an error message and then some minutes later the Printer is discovered and works.

I have fixed IP addresses on everything I can because I am a geek and because I like things to be stable and predictable. So my printer has a fixed IP.
So I hacked JSON and replaced the mDNS with IP address. Problem gone! Printer always found.

A lot of my integrations used to be defined in YAML with its IP address. I did this with MQTT. I did it with Deconz. Before that Philips Hue. And I have been living without a lot of the connectivity issue many are discussing on the forum. It is not for normal people. This is geek territory.

You can do the configuration manually when you add most integrations. But once added you cannot edit them from the UI. And that is what I miss from the YAML. Not the darn YAML. I miss being able to reconfigure if I decide to move my Deconz or Mosquitto to another machine.

I can do it. I hack yet another JSON file.

But I would prefer an expert UI where I can edit the configuration. I think the process of adding the integrations are fine and most normal people will want no more. But us geeks that have many computers in the house (I juts passed 100 manually configured IP addresses) an access changing the discovered config and changing an mDNS address to a fixed IP is what I miss. Not the YAML.

I agree with the move to configuration via the GUI, but I also agree with your points in that maintenance of the configuration after the initial setup is really lacking and/or not intuitive. Even the initial setup is not that great, especially for configurations that require a lot of settings beyond the initial configuration and auto discovery of devices. ESPHome, Chromecast are all fine via the current configuration, but the Monoprice 6 channel integration and maintenance is difficult to update or maintain and even setup.

Once the configuration is complete, the ability to edit needs to be enhanced significantly. On most integrations you have to click in 3+ different areas to adjust and some the connectivity is not adjustable via the GUI.

It would be great if after the initial setup flow that there was one screen for maintenance where entities or devices associated to an integration could be added or removed, other configuration options could be adjusted as well as the connectivity to the integration. Obviously not all integrations would have all the options to set but something that is much more intuitive not only to use as a user but to add as a maintainer. I’m not a programmer, but I’ve been able to create a couple custom integrations myself, but the config flow I just don’t quite get. It would be nice to be able to set the pieces that need to be configured and then a good way in the integration on the GUI to maintain them.

The integration programmer would just have to specify parts the integration which require configuration and what that configuration is. The GUI/Backend would handle the flow, and setup.

I agree, and as an example, I just set up GDACS integration from the GUI, and while there are many configuration options in the documentation, the only option I could configure from the GUI was radius (with no units btw, I assumed it wasn’t millimeters …). And after installing I can see no way to change the optional configurations. The extended menu on the integrations page is unhelpful, except for the uninstall…

1 Like

Ditto. The integration ought to provide a means of configuring post-installation. At the moment, many of the integrations require that you re-install them if you wish to modify their configuration. That’s often more than just a little inconvenient because you may lose all the friendly_names you laboriously added to each entity.

The development team sets requirements for accepting new integrations. One such requirement should be that the integration allows configuration without having to re-install it. At the moment it’s a “oh just re-install it” situation. Plus, some parameters aren’t even exposed to configuration during the installation process whereas they were readily available when they used YAML configuration. The new way of doing things should be at par with the old way.

3 Likes

I just looked at all my integrations

And I would say that in almost all of them all I would need to be possible to edit is

Host (IP address or domain) including PORT!
Username
Password

For Z-wave it is Network Key and device name

For Deconz it is host, and API key

For Unifi it is Host, username, password

For EspHome it is host (incl port) and password

My Samsung TV: host

My Harmony it is host

Printer: Host

Synology: Host/port, username, password

One thing to think about is the usual, watch out what you ask for, you may get it.
Passwords are stored in clear in core.config_entries which is already a bit bad. But it is even worse if you can see it in a UI. So if someone follows my WTH proposal and actually add these configs to their Integration, then it may be a good idea to allow changing the password but not display it.

I agree with this one.
One example is the recent AccuWeather amazing integration. I setup, disabled/renamed some entities and then I had an issue with the API Key. The API key is only asked at the initial setup and there is no way to change without removing and adding the integration again.
The SpeedTest integration won’t let me setup “Manual mode” through the UI.
For the Tuya one, I can’t change my password without removing and adding again.

IMO, there are workarounds and this is not a bug and fits perfectly the WTH theme.

At the time when I implemented the GDACS integration it was fashionable to only expose the absolute minimum parameters that a user would likely need to configure and auto-configure the other parameters, and keep the more advanced parameters purely for the YAML configuration.
In the last couple of months I believe this trend has now changed more towards adding the ability for more configuration parameters to be changed from within the UI. I have started looking into this for a different integration, but have to admit that this requires quite a bit of development (and testing) to get it right.

Basically to summarize there needs to be a “Reconfigure” ability added along side the “Options”.

Some integrations utilized the Options flow as a means to reconfigure an integration. Hacky but provides a better UX.

1 Like

So any news about how to (easy) change an IP’s integration ?

1 Like

Is this being tracked anywhere?

If an IP address changes of a remote device, for whatever reason: Rip it up and start again! :frowning:
Ye Olde yaml files didn’t suffer this problem.

2 Likes

or edit/change IP on .storage/core.config_entries AND restart.
not good

1 Like

I do not get why there no way to use YAML configuration file along with UI configuration.

I raised several bug reports for integrations that have this problem, or have some undocumented workarounds. And these reports just gets rejected. I am a bit dissapointed. I did not expect the issue fixed in a rush. I never do. But right out rejecting ever fixing the problem is not what I expected. Security is obvioisly not a high priority on this project. Home Assistant expects us to never change any passwords and it is not even worth documenting work arounds.

1 Like

I changed my lan router and i need to change the ip address of my 100+ Shelly devices…
So i need to remove them and add them back in HA… do all automations again because it loose settings when a device is removed.
Waaaaaaaaaaaaaaste of time… my old Homey had the ip edit, this is an easy feature to add !

1 Like

Edit your .storage config_entries to the new IP/host.

+1 on this.
The ability to edit a device’s IP via the UI would be good.

I had an IP conflict, so I had to:

  1. Install the SSH add on
  2. Go to ~/config/.storage/
  3. Edit (using nano) core.config_entries
  4. Restart Home Assistant

I know the situation is rare, but having the ability to edit this in the UI would save a lot of time, or to get HA to re-detect IPs via MAC address if a device somehow goes offline.
It could also report on possible IP conflicts in theory.

1 Like