HACS 2.0 - The best way to share community-made projects just got better

They’d have to find and know what they were installing first. Most non tech users would just look for the name of the widget they want to manage. No particular reason they would look for HACS in amongst Hue and Google and Sonos and etc.

Anyway, it all works fine for me, so I’m happy.

I was using sensor.hacs in an entities card. This no longer works. I figured out how to get the same functionality with the new method. Sharing in case someone finds it useful.

First I made a helper: Settings->Devices & services, Helpers tab, click Create Helper button, select Template->Template a sensor, give it a name, and paste the following into the State template field.

{{ states.update
  | selectattr('state', 'eq', 'on')
  | rejectattr('attributes.in_progress', 'true')
  | rejectattr('entity_id', 'eq', 'update.home_assistant_supervisor_update')
  | rejectattr('entity_id', 'eq', 'update.home_assistant_core_update')
  | rejectattr('entity_id', 'eq', 'update.home_assistant_operating_system_update')
  | map(attribute='entity_id') | list | count }}

Here’s how I’m using it in a entities card:

  - entity: sensor.hacs_updates
    tap_action:
      action: navigate
      navigation_path: /config/updates
    icon: mdi:update
    card_mod:
      style: |
        :host {
          --card-mod-icon-color:
            {% if states(config.entity) | int != 0 %} 
               var(--orange-color);
            {% endif %}
        }
4 Likes

Just so I have it right: the release notes on github mention a number of breaking changes. Do any of these affect custom integrations installed with HACS 1.x? In other words, is there a chance that if I install HACS 2.0, some of my current custom integrations or frontend components will no longer work? AFAICT none of the custom stuff I use interacts with HACS in any other way than reporting there is an update, but I don’t know what is under the hood.

The update was shown on my side once I restarted, but I am on the latest HA version (2024.8.x)

Is your HA version up to date ?

Under the hood? This is a perfect analogy for HACS. Think of it as a store for car parts and upgrades you can’t get from the dealer because some freelance mechanics made it. But one day maybe that upgrade and part will be recognized by the dealer and appear in their store. It is just a store, they upgraded it to work better in the new and improving neighborhood, but the things you got from the store are the same, just the store is prettier now with nicer shelves.

The items you have will work the same, as long as they continue to upgrade it with HA or they remain compatible with HA, which has nothing to do with the store.

4 Likes

Congrats on this release! It’s awesome. Now, can we get serious about reducing the backlog for integrations to make it to the Hacs default list please? The current backlog of about 1.5 to 2 years (based on rough math of number of PRs divided by number of additions per month) negates hacs value prop. Yes custom integrations option exist but that’s just a cop out which severely rescues discoverability for the hard work the various contributors put in.

I see the pointer “hacsfiles” is removed for themes
Will my resources also break?

i have a lot like below

  - url: /hacsfiles/button-card/button-card.js
    type: module

Untill you start adding other integrations which provide update entities like ESPHome or ZHA/Zigbee2MQTT

Better to start with only the entities provided by the HACS integration itself:

{{
  integration_entities('hacs')
    | select('search', '^update.')
    | select('is_state', 'on')
    | list
    | count
}}

That 2nd line is not really needed, as the intergration now only provides update entities, but you never know if that might change in the future. There are switch entities as well (which are disabled by default)

6 Likes

Thanks for this great update. Now I don´t have to look on the HACS page for updates. That is indeed a game change.

I have had HA update notifications for HACS integrations, and lovelace and other stuff it is used for, for ages. Is that because I had experimental features turned on?

No, that is the sensor.hacs that is removed in version 2.0

1 Like

Yeah I think it is Nick…I’ve had experimental on for ages and have had update notifications in the same way your saying…
(sensor.hacs was unavailable with experimental turned on for me anyway)

1 Like

It doesn’t look like repositories are being added to the default repos list anymore. Is there any chance of this coming back? I’ve had a couple of PRs open on hacs/default for 8+ months…

I see the following asked a lot and I don’t see an answer – if /hacsfiles/ is removed, what’s replacing it? How do I access files in what was the hacsfiles folder?
Several examples –
In my theme (dark_teal) I’m defining icons and referencing a folder that’s inside the theme folder, so I have many lines similar to this:

weather-icon-clear-night: url("/hacsfiles/themes/dark_teal/icons/clear-night.svg")

Furthermore, in my configuration.yaml mine starts with:

# Loads default set of integrations. Do not remove.
default_config:

# Load frontend themes from the themes folder
frontend:
  themes: !include_dir_merge_named themes
  extra_module_url:
    - /hacsfiles/lovelace-card-mod/card-mod.js

Looking at card-mod documentation (GitHub - thomasloven/lovelace-card-mod: 🔹 Add CSS styles to (almost) any lovelace card) they’re still recommending the /hacsfiles/ folder, check out the “Installing” section on their guide.
So, what’s replacing it now?

Would love to get some assistance here, I’m waiting with the upgrade until I figure out what will need changing, I don’t feel like breaking my setup…

/local would be my guess. That’s what it pointed to.

mine was using /local/community/ for the extra_module_url and is working fine after the update.

  extra_module_url:
    - /local/community/lovelace-card-mod/card-mod.js
    - /local/community/custom-brand-icons/custom-brand-icons.js
    - /local/community/template-entity-row/template-entity-row.js

1 Like

This works for card-mod.js in configuration.yaml but it doesn’t work for the icons in my theme.

weather-icon-clear-night: url("/hacsfiles/themes/dark_teal/icons/clear-night.svg")

Here I can’t replace with /local/ or with /local/community/. Looking at the file structure I see the theme folder dark_teal is in /homeassistant/themes/dark_teal folder.
So how do I access the icons that are in a subfolder there? Or should I just move the icons folder someplace else?

NetDaemon apps are no longer in HACS.

It’s strange to single out one thing. I use NetDaemon but don’t especially care about the plugin (unless I am confused). Do I need to uninstall before upgrading HACS?

Thanks for the improvement! I’m very much a templating beginner. I wasn’t aware of integration_entitiesintegration_entities - very happy to know about that!

No you don’t. But you won’t find Netdeamon items anymore in Hacs 2.0