Powiadomienie o aktualizacjach HA, HACS

Powiadomienie o dostępnych aktualizacjach w HA i HACS
Jeżeli będą jakieś aktualizacje zostaną one automatycznie wyświetlona w powiadomieniach na pasku bocznym .

Plik ha_monitor_sensors.yaml umieszczamy w katalogu packages
Jak umieszczać pliki w katalogu packages
@macek https://forum.arturhome.pl/t/package-w-home-assistant/707

Screenshot - 22.08.2021 , 01_28_14

---
# https://community.home-assistant.io/t/update-notifications-core-hacs-supervisor-and-addons/182295

sensor:

  # Sensor to track available updates for supervisor & addons
  - platform: command_line
    name: Updater Supervisor
    command: 'curl http://supervisor/supervisor/info -H "Authorization: Bearer $(printenv SUPERVISOR_TOKEN)" | jq ''{"newest_version":.data.version_latest,"current_version":.data.version,"update_available":.data.update_available,"addons":[.data.addons[] | select(.update_available)]}'''
    scan_interval: 600
    value_template: "{{ value_json.addons | length }}"
    unit_of_measurement: pending update(s)
    json_attributes:
    - update_available
    - newest_version
    - current_version
    - addons

# Alternate updater sensor for core since binary_sensor.updater is very slow to recognize updates
  - platform: command_line
    name: Updater Core
    command: 'curl http://supervisor/core/info -H "Authorization: Bearer $(printenv SUPERVISOR_TOKEN)" | jq ''{"newest_version":.data.version_latest,"current_version":.data.version}'''
    scan_interval: 600
    value_template: "{% if value_json.newest_version != value_json.current_version %}on{% else %}off{% endif %}"
    json_attributes:
    - newest_version
    - current_version

# https://community.home-assistant.io/t/update-notifications-core-hacs-supervisor-and-addons/182295/104
    
  - platform: command_line
    name: Updater HassOS
    command: 'curl http://supervisor/os/info -H "Authorization: Bearer $(printenv SUPERVISOR_TOKEN)" | jq ''{"newest_version":.data.version_latest,"current_version":.data.version,"update_available":.data.update_available}'''
    value_template: "{% if value_json.update_available or value_json.newest_version != value_json.current_version %}on{% else %}off{% endif %}"
    json_attributes:
    - newest_version
    - current_version
    - update_available

automation:

  - alias: Updates Pending
    id: 29168124-d520-4d81-a867-e4ca453f0320
    mode: restart
    trigger:
      - platform: state
        entity_id: sensor.updater_core
      - platform: state
        entity_id: sensor.updater_hassos
      - platform: state
        entity_id: sensor.updater_supervisor
      - platform: state
        entity_id: sensor.hacs
      - platform: homeassistant
        event: start
    action:
      - alias: "Update Persistent Notification"
        choose:
          conditions:
          - condition: or
            conditions:
              - condition: template
                value_template: "{{ states('sensor.updater_core') == 'on' }}"
              - condition: template
                value_template: "{{ states('sensor.updater_hassos') == 'on' }}"
              - condition: template
                value_template: "{{ (states('sensor.updater_supervisor') | float) != 0 }}"
              - condition: template
                value_template: "{{ (states('sensor.hacs') | float) != 0 }}"
          sequence:
          - service: persistent_notification.create
            data_template:
              title: Updates Pending
              message: |
                {% set core_entity_id = 'sensor.updater_core' %}
                {% set os_entity_id = 'sensor.updater_hassos' %}
                {% if states(core_entity_id) == 'on' or states(os_entity_id) == 'on' %}
                [Home Assistant](/hassio/dashboard)
                  {% if states(core_entity_id) == 'on' %}
                * **Core** {{ state_attr(core_entity_id,"current_version") }} -> {{ state_attr(core_entity_id,"newest_version") }}  [`PRE-CHECK LOG`](/hassio/addon/core_check_config/logs)
                  {% endif %}
                  {% if states(os_entity_id) == 'on' %}
                * **OS** {{ state_attr(os_entity_id,"current_version") }} -> {{ state_attr(os_entity_id,"newest_version") }}
                  {% endif %}
                {% endif %}

                {% set supervisor_entity_id = 'sensor.updater_supervisor' %}
                {% if (states(supervisor_entity_id) | float) != 0 %}
                [Add-ons](/hassio/dashboard)
                  {% for addon in state_attr(supervisor_entity_id, 'addons') %}
                * [**{{ addon.name }}**](/hassio/addon/{{ addon["slug"] }}/info) {{ addon["version"] }} -> {{ addon["version_latest"] }}
                  {% endfor %}
                {% endif %}

                {% set hacs_entity_id = 'sensor.hacs' %}
                {% if (states(hacs_entity_id) | float) != 0 %}
                [HACS](/hacs/entry)
                  {% for repo in state_attr(hacs_entity_id, 'repositories') %}
                * **{{ repo.display_name }}** {{ repo["installed_version"] }} -> {{ repo["available_version"] }}
                  {% endfor %}
                {% endif %}
                
              notification_id: "updates_pending"
        default:
          - service: persistent_notification.dismiss
            data:
              notification_id: "updates_pending"

  - alias: Check Home Assistant Configuration
    id: 29168124-d520-4d81-a867-e4ca453f03
    mode: single
    trigger:
      - platform: state
        entity_id: sensor.updater_core
        to: 'on'
    action:
      - service: hassio.addon_start
        data:
          addon: core_check_config

2 Likes

Fajna sprawa. Wydaje się, że zrobiłem wszystko wg instrukcji a powiadomień nie otrzymuję.

W pliku configuration.yaml dodałem:

homeassistant:
  packages: !include_dir_named packages
  allowlist_external_dirs:
    - /config

Utworzyłem katalog packages i wrzuciłem do niego Twoja zawartość. O czym zapomniałem ?
Restarty oczywiście porobione.

Dodałeś do configuration.yaml:

logger:
  default: warn
  logs:
    homeassistant.bootstrap: info

Tak, mam to również.

To może poczekaj na nową wersją HA :slight_smile:

# Name of the location where Home Assistant is running

  name: Home

  # Location required to calculate the time the sun rises and sets

  latitude: !secret latitude_home

  longitude: !secret longitude_home

    

  # Impacts weather/sunrise data (altitude above sea level in meters)

  elevation: 0

  # metric for Metric, imperial for Imperial

  unit_system: metric

  currency: PLN

# Pick yours from here: http://en.wikipedia.org/wiki/List_of_tz_database_time_zones

  time_zone: Europe/Warsaw

  customize: !include customize.yaml

# Load packages

  packages: !include_dir_named packages/

  

    #!include_dir_named integrations

# Configure a default setup of Home Assistant (frontend, api, etc)

default_config:

# Uncomment this if you are using SSL/TLS, running in Docker container, etc.

# http:

#   base_url: example.duckdns.org:8123

# Discover some devices automatically

#custom 

#custom_updater:

#  customizer:

#    custom_ui: local

Twoje
packages: !include_dir_named packages
Tak powinno być
packages: !include_dir_named packages/

1 Like

Słuszna uwaga, dzięki. Poprawione jednak nadal brak powiadomień:

Przechwytywanie1
Przechwytywanie2

Poprawny zapis to także bez / na końcu jeżeli katalog packages nie zawiera podkatalogów, patrz dokumentacja Packages - Home Assistant, również komentarz w mojej konfiguracji to wyjaśnia:

In the packages directory you can store any number of packages in a YAML file but not subfolders (use: packages: !include_dir_merge_named packages/)

Sprawdź czy zdefiniowane sensory z pliku ha_sensors istnieją w twoim HA
sensor.core_updates
sensor.supervisor_updates
sensor.ha_uptime_mod itd.

Tak, widać:

image

Przepraszam wkleiłem kod z poprzedniej wersji sensorów bez automatyzacji powiadomień.
Kod poprawiony, stary należy wykasować i wkleić nowy .

2 Likes

Od razu lepiej :slight_smile:

image

Coś mi w tym kodzie właśnie nie pasowało. Dziwne, że pozostałym działało :smiley:
Dzięki raz jeszcze.

U mnie też poprawiony kod działa :slight_smile:

U Was też automatyzacja pokazuje oczekującą aktualizację, pomimo że jest zainstalowana najnowsza wersja HAOS?

obraz

U mnie też. Wywala mimo ze wersja juz zaktualizowana do 6.3

U mnie jest ok, instalacja na Debian GNU/Linux 10 (buster)
core-2021.9.4
supervisor-2021.09.0
Wersja dockera 20.10.2

Może dlatego, że nie masz HassOS :slight_smile:

Ewidentnie ta kontrolka świruje:

image

Jeśli komuś uda się naprawić będę wdzięczny :wink:

Nie jest to błąd integracji, ktoś zapomniał zaktualizować stronę statusu:

https://community.home-assistant.io/t/update-notifications-core-hacs-supervisor-and-addons/182295/228

2 Likes

Zauważyłem taką informację w logach. Wy też tak macie?

Source: helpers/template.py:1291
First occurred: 13:15:13 (1 occurrences)
Last logged: 13:15:13

Template warning: 'float' got invalid input 'unknown' when rendering template '{{ (states('sensor.hacs') | float) != 0 }}' but no default was specified. Currently 'float' will return '0', however this template will fail to render in Home Assistant core 2022.1```