Hey folks, I’m fairly new to HASS but have been diving head-first since I finally got it loaded on my rPi a few weeks ago. I’d like to get my power readings into HASS but there is no existing integration for it. So I started to look into how one goes about creating an integration. I’m super confused when it comes to the various ways to add custom integrations/addons. Can someone help me understand the difference between the following:
- add-on - how is this different than an integration?
- integration - how is this different than an add on?
- official add-on - how does one get something added to that?
- add-on repository
- add-on registry - ???
- Home Assistant Community Add-ons - a default “community” add on repo?
- HACS integrations - how does one get something added to that?
- HACS custom repositories - how does one create on?
I’ll take a stab at answering the above; please correct me as appropriate:
As far as I can tell an add-on is essentially a container that runs on your HASS instance. It exposes integrations which in turn can expose services, devices, and entities. The official add-ons are maintained by the Home Assistant team in an add-on repository here: https://github.com/home-assistant/addons
. If you want to create your own add-ons you have to create your own add-on repository and you can use the official one as a reference. There’s documentation here: https://developers.home-assistant.io/docs/add-ons/publishing
. The add-on registry might be a Docker thing? Not sure. Home Assistant Community Add-ons is simply a add-on repository located at https://github.com/hassio-addons/repository
. It looks like you can’t add new add-ons to that repo anymore. It is enabled by default by HASS. HACS is the Home Assistant Community Store. It can be found here: https://hacs.xyz/. It installs itself somehow as an add on. I’m not sure why it doesn’t use the add-on repo model for installation but /shrug. Once installed HACS provides a bunch of custom integrations and UI elements you can use. You can add custom repositories to HACS. It’s documented here: https://hacs.xyz/docs/faq/custom_repositories
. It’s not clear me why you would go this route over a non-HACS add-on repository.
Ultimately, I’m trying to answer: I have a NodeJS-based library for accessing power consumption via my power company’s API. What’s the best way for me to integrate that library with HASS while also making it re-usable for others?