I’m surprised you learned about it here from me because it’s been mentioned, at the very least, in the two threads that discussed the deprecation prior to the introduction of the Release Notes and in the discussion attached to the Release Notes announcement.
The difference between an official and a custom integration is:
- An official one successfully passes the development team’s vetting process and becomes incorporated into official releases of Home Assistant.
- A custom one doesn’t do any of that. It’s not vetted by anyone and isn’t included in the official release.
What the two have in common is the integration’s author maintains it and typically accepts improvements from others. If the author abandons it, unless someone else takes over, it remains static and might continue to work … unless something in its environment changes and renders it non-functional.
You can copy all of an official integration’s code into the custom_components directory, restart Home Assistant and now it will use the copy of the integration instead of the original version. You are free to modify this instance of the code to suit your needs.
I did this shortly after I started using Home Assistant, back in October 2018, when the MQTT HVAC integration didn’t meet my needs and I modified it (had to learn more than just a little bit of python to do that). Eventually, the official MQTT HVAC integration got the features I wanted so I stopped using my customized version of it.