How To Track Home Assistant Updates

In this short guide we are going to show you how you can track your Home Assistant server available updates. This includes OS, core and supervisor updates as well as the Home Assistant Community Store (HACS). We’re going to create actionable notifications and some handy dashboard cards for tracking available updates.

This tutorial can be completely modified to suit you needs and wishes, but if you follow along you will be left with something like this dashboard in the end:

Why track updates?

Home Assistant always notifies you in the settings tab whenever there are available updates. This includes the OS, Core and Supervisor addons. However, HACS is not tracked by default and updates are excluded from the settings screen. To view HACS updates, you need to open the HACS integration page.

The method we are going to show you, brings all updates in one place so you could track all of them and receive a notification on your mobile device whenever there is one available. We will also make them updatable with one click right from your dashboard.

We are going to base our design on Mushroom Cards, because we think they are easiest to work with, especially for beginners. We will provide examples for each card so you can simply copy-paste the YAML and just edit your entities. As an additional overview of our server, we will track the CPU, RAM and a couple of other things thorough the system monitor integration. First we need to enable a couple of things.

Enable System Monitor

The System Monitor platform, will provide us with a few useful sensors which we can use to provide an overview of our server at a glance from the dashboard. To enable this integration, add the following to your configuration.yaml file:

#System Monitor Integration sensor: - platform: systemmonitor resources: - type: disk_use_percent arg: /config - type: disk_use - type: disk_free - type: memory_use_percent - type: memory_use - type: memory_free - type: swap_use_percent - type: swap_use - type: swap_free - type: load_1m - type: load_5m - type: load_15m - type: network_in arg: eth0 - type: network_out arg: eth0 - type: throughput_network_in arg: eth0 - type: throughput_network_out arg: eth0 - type: packets_in arg: eth0 - type: packets_out arg: eth0 - type: ipv4_address arg: eth0 - type: ipv6_address arg: eth0 - type: processor_use - type: processor_temperature - type: last_boot
Code language: YAML (yaml)

These are all the available sensors in the System Monitor integration. You do not need to enable everything, just delete or comment any sensor you do not wish added. It’s also good practice to use includes, to keep your configuration file under control.

Please note, this integration is not required for our purposed tutorial here, we are just going to use some of its provided sensors as a nice information overview placed as chips in some of the mushroom cards (CPU/RAM/Disk usage).

Enable Addon Update Entities

By default, an update entity is enabled for each Supervisor addon. There are a few additional sensors we can enable to be able to use in notifications and in dashboard design. For example, CPU usage, Memory usage, version and a binary_sensor which states if the Addon is running or not.

To enable sensor for a specific addon, Open Settings > Devices & Services > Supervisor > [Addon]. In this window, you will notice only an update entity is enabled, and everything else is disabled:

You click on the sensor you with to enable, such as Newest Version, and enable it in the advanced tab:

You could give it a name and an icon, but it’s not really necessary. All customization will be done later in our dashboard design. You click UPDATE and Home Assistant notifies you that the sensor will be added in 30sec.

Enable HACS Update Entities

HACS updates are not available as a separate entity for each integration. Instead, they are aggregated in one main sensor called sensor.hacs which aggregates available updates simply as a number, i.e. 1 pending update(s).

To enable update entities for each integration, we need to enable HACS Experimental Features.
Open Settings > Devices & Services > click Configure on HACS. This will present a dialog window, in which you check the Experimental Features box and click submit.

A confirmation window will appear, after which you need to restart Home Assistant. When Home Assistant has booted back up, if you head to Developer Tools > States window, you can see all the new update entities:

We can use these entities to create our notifications and dashboard overview cards.

IMPORTANT: Enabling Experimental Features in HACS changes a few other things as well. For example, it changes the UI of HACS to a simple list instead of the Integrations/Frontend design we are already used too. This is purely a cosmetic change, so no need to panic.

Creating Actionable Notifications

Home Assistant can notify you on your mobile device whenever an update is available. Whether this is necessary, it’s up to you to decide. User CentralCommand has shared a pretty awesome blueprint for quick setting of your actionable notifications for available updates. To use is, press the import button bellow:

Once added, you create a new automation based on this blueprint. Head over to Settings > Automations & Scenes > + Create Automation > Use a Blueprint > Update notifications:

The variables are pretty self explanatory, you select your update entities, your notification device (mobile phone), set time and icon. Whenever there is an update available for the monitored entities, Home Assistant will notify you on your phone:

Creating an Overview Dashboard

We are basing our design on Mushroom Cards (Guide: Part1, Part2), so if you wish to copy-paste the YAML code directly, you can install them via HACS.

Creating a Home Assistant Server Update Card

This card will allow you to overview the Operating System, Core and Supervisor versions of Home Assistant and update them with the click of a button. As a chips header, we’ve placed a few entities such a CPU usage and temp, RAM usage, Disk space and network inbound traffic. You can modify these as you please:

Templating is used throughout the card to achieve a little more customization. The icons are dynamic, so whenever an update is available, the badge and color will change to orange/red to notify you about pending updates.
You can click the download button directly, HA will make a backup and update the corresponding entity.

Note: Theme is reeder_dark by dev hekm77.

#Home Assistant Server Update Card type: vertical-stack cards: - type: custom:mushroom-title-card title: Home Assistant Server subtitle: > Core v{{ state_attr('update.home_assistant_core_update', 'installed_version') }} - OS v{{ states('sensor.home_assistant_operating_system_version') }} - Supervisor v{{ state_attr('update.home_assistant_supervisor_update', 'installed_version') }} - type: custom:mushroom-chips-card chips: - type: entity entity: sensor.processor_temperature icon_color: orange - type: entity entity: sensor.processor_use icon_color: blue - type: entity entity: sensor.memory_use_percent icon_color: orange - type: entity entity: sensor.disk_use_percent_config icon_color: deep-purple - type: entity entity: sensor.network_in_eth0 icon_color: green - type: horizontal-stack cards: - type: custom:mushroom-update-card entity: update.home_assistant_core_update name: HA Core show_buttons_control: true icon_type: entity-picture - type: custom:mushroom-template-card primary: Version Information secondary: >- Installed v{{ state_attr('update.home_assistant_core_update', 'installed_version')}} Latest v{{ state_attr('update.home_assistant_core_update', 'latest_version')}} icon: mdi:package-variant-closed multiline_secondary: true fill_container: true entity: update.home_assistant_core_update tap_action: action: more-info icon_color: |- {% if is_state('update.home_assistant_core_update', 'on') %} orange {% else %} green {% endif %} badge_color: |- {% if is_state('update.home_assistant_core_update', 'on') %} red {% else %} blue {% endif %} badge_icon: |- {% if is_state('update.home_assistant_core_update', 'on') %} mdi:help {% else %} mdi:check-bold {% endif %} - type: horizontal-stack cards: - type: custom:mushroom-update-card entity: update.home_assistant_operating_system_update name: HA OS show_buttons_control: true icon_type: entity-picture - type: custom:mushroom-template-card primary: Version Information secondary: >- Installed v{{ states('sensor.home_assistant_operating_system_version')}} Latest v{{ states('sensor.home_assistant_operating_system_newest_version')}} icon: mdi:package-variant-closed multiline_secondary: true fill_container: true entity: update.home_assistant_operating_system_update tap_action: action: more-info icon_color: >- {% if is_state('update.home_assistant_operating_system_update', 'on') %} orange {% else %} green {% endif %} badge_color: >- {% if is_state('update.home_assistant_operating_system_update', 'on') %} red {% else %} blue {% endif %} badge_icon: >- {% if is_state('update.home_assistant_operating_system_update', 'on') %} mdi:help {% else %} mdi:check-bold {% endif %} - type: horizontal-stack cards: - type: custom:mushroom-update-card entity: update.home_assistant_supervisor_update name: HA Supervisor show_buttons_control: true icon_type: entity-picture - type: custom:mushroom-template-card primary: Version Information secondary: >- Installed v{{ state_attr('update.home_assistant_supervisor_update', 'installed_version')}} Latest v{{ state_attr('update.home_assistant_supervisor_update', 'latest_version')}} icon: mdi:package-variant-closed multiline_secondary: true fill_container: true entity: update.home_assistant_core_update tap_action: action: more-info icon_color: |- {% if is_state('update.home_assistant_supervisor_update', 'on') %} orange {% else %} green {% endif %} badge_color: |- {% if is_state('update.home_assistant_supervisor_update', 'on') %} red {% else %} blue {% endif %} badge_icon: |- {% if is_state('update.home_assistant_supervisor_update', 'on') %} mdi:help {% else %} mdi:check-bold {% endif %}
Code language: YAML (yaml)

Creating an Addon update card

To create something similar for addons, we need to alter the card design a little bit. Again, you can include any information you wish here. This is just an example containing most entities for those who would like to recreate it.

Advertisement

In this card, we add the Running binary_sensor in the chips header. CPU and RAM usage are listed, as well as current version information. The update entity is placed at the body of the card, so you can update with a click:

#Addon Update Card - ZigBee2MQTT type: vertical-stack cards: - type: custom:mushroom-title-card title: ZigBee2MQTT subtitle: >- Installed v{{ states('sensor.zigbee2mqtt_version') }} - Latest v{{ states('sensor.zigbee2mqtt_newest_version') }} - type: custom:mushroom-chips-card chips: - type: entity entity: binary_sensor.zigbee2mqtt_running icon_color: green - type: entity entity: sensor.zigbee2mqtt_version icon_color: green icon: mdi:package-variant-closed - type: entity entity: sensor.zigbee2mqtt_cpu_percent icon_color: blue - type: entity entity: sensor.zigbee2mqtt_memory_percent icon_color: orange - type: custom:mushroom-update-card entity: update.zigbee2mqtt_update show_buttons_control: true icon_type: entity-picture layout: horizontal
Code language: YAML (yaml)

Creating a HACS update card

HACS update entities are a little different, as they are not enabled by default. After enabling them using Experimental Features, we can use them in the card the same way. Considering users tend to have a lot of HACS integrations, we suggest adding them in a list:

When an update is available, the card will turn orange to give you a visual notification. The download button will be clickable and you can update the integration right from the card. The release changelog template chip, will take you to the HACS releases page. Here, you can read the changes if you want, to make sure there are no breaking changes which affect you.

#HACS Updates Card type: vertical-stack cards: - type: custom:mushroom-title-card title: HACS Updates subtitle: >- Installed v{{ state_attr('update.hacs_update', 'installed_version') }} - Latest v{{ state_attr('update.hacs_update', 'latest_version') }} - type: custom:mushroom-chips-card chips: - type: template icon: mdi:web icon_color: blue content: Release Changelog tap_action: action: url url_path: https://github.com/hacs/integration/releases - type: template entity: update.hacs_update content: Installed v{{ state_attr('update.hacs_update', 'installed_version') }} icon_color: green icon: mdi:package-variant-closed tap_action: action: none - type: template entity: update.hacs_update content: Latest v{{ state_attr('update.hacs_update', 'latest_version') }} icon_color: orange icon: mdi:package-variant-closed tap_action: action: none - type: custom:mushroom-update-card entity: update.hacs_update layout: horizontal show_buttons_control: true - type: custom:mushroom-update-card entity: update.scheduler_component_update show_buttons_control: true icon_type: icon layout: horizontal name: Scheduler Component - type: custom:mushroom-update-card entity: update.simple_thermostat_update show_buttons_control: true name: Simple Thermostat layout: horizontal - type: custom:mushroom-update-card entity: update.browser_mod_update name: Browser Mod layout: horizontal show_buttons_control: true - type: custom:mushroom-update-card entity: update.button_card_update name: Button Card layout: horizontal show_buttons_control: true
Code language: YAML (yaml)

Summary

These are just some examples of tackling pending updates in Home Assistant. Power users know they are very frequent and often contain breaking changes, so its good practice always to glance the dialog window to make sure they don’t affect you. If you would like to see more simple guides like these, consider buying us a coffee.



By visiting the Amazon, AliExpress and Banggood stores through the links above, you are shopping through our affiliate links.
This incurs no additional cost to you and supports smarthomescene.com in the form of sales commission.
SmartHomeScene © 2022 All rights reserved Privacy Policy | Contact Us | Support


By visiting the Amazon, AliExpress and Banggood stores through the links above, you are shopping through our affiliate links. This incurs no additional cost to you and supports smarthomescene.com in the form of sales commission.
SmartHomeScene © 2022 All rights reserved
Privacy Policy | Contact Us | Support

8 thoughts on “How To Track Home Assistant Updates”

  1. Excellent article. I didn’t know about that experimental feature in HACS. I found a much simpler way of showing available updates using the auto-entries card. You can remove the state: ‘on’ line if you want to show all update entities. It does combine all of the types of updates into one list, so may not work if you want to seperate them, though there may be some other filtering options that can do it.

    type: custom:auto-entities card: type: vertical-stack card_param: cards filter: include: - entity_id: update.* state: 'on' options: type: custom:mushroom-update-card show_buttons_control: true layout: horizontal entities: - this.entity_id
    Code language: YAML (yaml)
    1. Thank you Justin, this is a great suggestion!

      For readers stumbling upon this comment: Auto-entities filters certain entities based on an exclusive or inclusive variable. In this case, Justin used an entity glob (*) to include all entities in the update domain with a state “on”, meaning pending update.
      This auto-populates a list with updates in your dashboard.

      Thanks again,
      Cheers.

  2. This is a bit rough, but I have found that addon updates always thend to have a entity_picture attribute set, and HACS updates always have a name: null attribute. Using this I was able to filter each type of update into ist’s own list. Sorry for the lack of indentation.

    For addon updates type: custom:auto-entities card: type: vertical-stack card_param: cards filter: include: - entity_id: update.* state: 'on' attributes: entity_picture: '*' options: type: custom:mushroom-update-card show_buttons_control: true layout: horizontal entities: - this.entity_id and HACS updates. type: custom:auto-entities card: type: vertical-stack card_param: cards filter: include: - entity_id: update.* state: 'on' attributes: title: null options: type: custom:mushroom-update-card show_buttons_control: true layout: horizontal entities: - this.entity_id
    Code language: YAML (yaml)
    1. This is a clever way of handling the Auto-entities card. For most users, there may not even be a reason to separate them into categories. Most of them would want the list to populate only when the state is “on” i.e. when an update is available.
      Thanks

  3. After enabling the experimental features, when accessing HACS from the sidebar I only see the my downloaded integrations. I can’t seem to get back to the HACS entry page that lists Integrations, Frontend, Automation, Add-ons, and About. Any idea how I resolve this?

    1. Hello Ken,

      This is a feature of the HACS experimental features. I mention it in the blog post.
      You are still able to install custom cards and integrations, just with a slightly different UI.

      Cheers

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top