Loving Home Assistant So Far! But *Finding* Things Is Hard - Does It Get Easier?

I’m loving HA! I’m surprised how easy it is to setup in a lot of ways.

That said, probably the only major wrinkle I have so far is keeping track of what’s an integration, what’s an app, what’s a part of HACs, what’s a device, etc. I find I end up tuning something in my config and I have to go through a carousel of “do I restart the system; nope - is it an addon? hrmmm, no? integration?”.

Does this get easier with time? Is there a way to create shortcuts to go back and forth between things?

As a more concrete example: I’m often tuning things in the vscode plugin (which is awesome), but then I need to restart appdaemon, and I can’t remember if I need to go to addons, devices, hacs or something else, and I go through all of them to restart the thing. Ideally I’d love to have a button in the vscode UI to restart things, or a command line I can run in the terminal - dunno if that’s possible?

Anyhow - if that’s the only thing I have to vent about I’m in a pretty good place. Thanks for everyone doing such great work on it!

Yes it does.

“add-on” not “plugin” :slight_smile:

I’m not familiar with appdaemon so cant help there but here are a few pointers:

Addon: usually a server of some description installed in it’s own Docker container from the supervisor add-on store. The docker side of things is all taken care of for you. There are system add-ons, Community Add-ons (now managed by Nabu Casa team, previously third party), and third party add-ons.

Integration: usually a client of some description, can be a core integration (supplied as part of the home assistant core install and only needs to be configured, not installed). Or a third party integration which you can install manually or though HACS. HACS itself is a third party integration.

Integrations provide services (do things), entities, and devices (collections of entities).

Integrations can be set up through a config flow in the UI or manually using YAML. All new core integrations must be set up via the UI, YAML is an optional addition. Some core integrations are slowly being moved over to the UI, some will remain as YAML.

Integrations may support more than one platform (think: “type”). e.g. the sensor integration has a restful platform, a template platform, an mqtt platform, etc…

Here’s an example showing the difference between a platform and an integration, this is a rest sensor configured using the sensor integration and rest platform:

sensor:
  - platform: rest
    resource: http://IP_ADRRESS:61208/api/2/mem/used
    name: Used mem
    value_template: "{{ value_json.used| multiply(0.000000954) | round(0) }}"
    unit_of_measurement: MB

Here is a rest sensor configured using the rest integration.

rest:
  - resource: http://IP_ADRRESS:61208/api/2/mem/used
    sensor:
      - name: Used mem
        value_template: "{{ value_json.used| multiply(0.000000954) | round(0) }}"
        unit_of_measurement: MB

Both of these provide the same sensor.used_mem entity.

The rest integration was introduced after the rest sensor platform but both still exist for backward compatibility. Like this, template sensors now have their own integration as well as a template sensor platform.

As for reloading or restarting, if you add or edit an integration using the UI a restart is not required (with a few exceptions that the UI will tell you about). If you add an integration using YAML, you can reload that integration if exists in the Server Controls Reload menu. If it does not, then a restart is required.

Updating frontend items in HACS requires a frontend reload. Installing frontend items via HACS requires a restart. Updating or installing integrations in HACS requires a restart. HACS will tell you which is required. No need to remember.

Editing the Lovelace frontend via YAML requires the frontend to be reloaded, editing via the UI does not (though you will be prompted to reload other copies of pages that were open when editied).

Frontend: Lovelace, and the web pages the system provides.

Backend: All your configuration excluding Lovelace and the system that supports it.

2 Likes