So, firstly I was of the opinion that converting integrations to the UI on the basis that they were 'set-up-and-leave-alone’, was a not unreasonable direction…
…however…
I installed the Smart Irrigation Integration to have a play with it.
Having decided that right now it is not for me I tried to uninstall it via the UI.
The very fact that I can show you those screen shots tells you that it didn’t work. Or maybe it did because now I get this error in my log every time I restart
What can I do?
Apart from edit .storage which we all know is not good advice.
It looks it might be a ‘FAIL’ for the UI.
And yes, I know this is not a ‘core’ integration but should that matter?
Long answer: No but it’s not necessarily a flaw in config flow’s architecture but in how this integration implemented it. Whether it’s an official integration or a custom one, if deleting it causes an error that means there’s a bug (I’ve deleted integrations without causing errors). Report it to the integration’s author.
If you think about it, it works perfectly with the core integrations because you’re not going to remove the files
Once you delete the config_flow.py it doesn’t know how to “uninstall” anymore. One thing I could think of is a check put into Home Assistant that if the config flow file goes MIA to maybe disable the integration in the screen ie gray’ed out (since you may have deleted it on accident).
Maybe HACS could check to see if it’s still loaded in the config and block you for uninstalling it as well
Perhaps you have exercised a failure scenario that was not anticipated when config flow was designed. Deleting the integration’s files prior to uninstalling it will often break established associations (try doing that with an installed app on most operating systems and the result can be equally problematic). Alternatively, it was anticipated but the integration’s developer didn’t implement the mitigation procedure. That’s why it’s best to report it to the author so that it can be improved.