There are many work around on this forum about integrating some third party devices and applications, (for example rainforest energy monitors or life360), but there is no component for them on home assistant. Wondering why people with the know how just don’t submit them as components?
Some people do. For example, Life360 will become a native component in the next version of Home Assistant.
Awesome can’t wait for it.
There’s a non-trivial submission process in place designed to vet all contributions. That’s a good thing. However, it does present a hurdle for casual, hobbyist programmers. It requires an investment of time and effort to learn the tools used for testing and qualifying the code. Then, when your code passes all automated checks, it must be scrutinized by one of the ‘inner circle’ of developers before it can be merged into the main code-base.
In contrast, one can create a custom component with no oversight and no knowledge of the code submission process nor its tool set. The product you create is for yourself (and anyone you share it with). In addition, you are free to employ techniques that are expedient and effective but may not be acceptable for inclusion in the main code-base.
For example, I need additional features for MQTT HVAC so I created a custom version of it and added what I needed. One of the techniques I used would not be accepted if I were to submit it for inclusion in the main code-base (I know this for a fact because someone else tried and was rejected). Nevertheless, it suits my purposes and I’ve been using it successfully since last October.
Interesting, I didn’t know the submission process is as complicated. I am learning about HA everyday.
Another reason for custom components is functionality that’s not easily reproducible. Here’s a great example: Image processing with USB acceleration - all pi! – this functionality is amazing, but there’s more work to implementing it than merely adding lines to configuration.yaml
.
@bachya my plan for that project is to release a Hassio addon that will run the required services.
To weigh in on this discussion, for me I publish custom components when:
- The code is a ‘work in progress’ and likely to have many breaking changes, but I want it to be available for the adventurous to try out and help steer development
- I think the component is very limited/niche interest
RE the submission process, it is exactly the same processes as any professional software development. Believe me if this process were less rigorous, HA would have been an unusable mess a long time ago
I think in future developments if they categorize components into “beta” and “certified” would be a great idea. This way popular components get more attention for review and people can do bug reports on them before they become part of the native components.
Well they kind of are already, If core than they are ‘certified’ and if a custom_component they are beta… and bugs for both will be done by raising an issue on github…
@fxcoolby this is exactly how complexity creeps in However if you find a custom component you want to see as an official integration you can always do this, its open source afterall
This is very interesting. Actually it should find its away into the official addons. Or implement into the HA core so people have two “component stores”, one for custom components and the other for the native ones and brows and add to config right from the HA itself.
By any chance do you when the next update to Hassio going to be released?
June 26th is the expected release date per http://rc.home-assistant.io
edit: I’m an idiot. lol web address corrected
Should that not be .io or something else since that url doesn’t work.