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…
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.
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.
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.
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 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:
Install the SSH add on
Go to ~/config/.storage/
Edit (using nano) core.config_entries
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.