Maj de HACS version 1.34, vers la version 2.0. procédure d'installation?

Salut :wave:t2:
Moi j’ai ça depuis plusieurs mois, mais je n’ai pas eu l’occasion de tester avec la nouvelle version de HACS :

type: custom:stack-in-card
mode: vertical
keep:
  box_shadow: true
  margin: true
  border_radius: true
  background: true
  outer_padding: false
cards:
  - type: custom:mushroom-title-card
    title: HA & Addons updates (if presents)
  - 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
  - type: custom:mushroom-title-card
    title: HACS updates (if presents)
  - 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

Ton code est mal copier :wink:

Effectivement c’est un module complémentaire, merci :wink:

Oui j’ai vu la copie colle depuis l’iPhone marche mal… j’ai du coller d’abord dans un éditeur de texte.

Et voilà ce que j’ai pour HACS seul :


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

Ça rend comme ça :

Ma page update ressemble à ça :

3 « J'aime »

Ah ouais, bien joué !
Respect, et je vais m’y pencher sérieusement !

1 « J'aime »

J’ai reçu un code sur le groupe HA anglais Facebook qui donne ça:

C’est sympa, mais je cherche à afficher que les maj disponible. Ça fais beaucoup la :wink:

Effectivement c’est un peu trop détaillé !
Je mets quand même le code :

<table>
  <tr>
    <td><td align="left"; valign="top"; td width="64%"><font size=2>
      <b>Addon:<font color='gray'>   <hr>
    </td>
    <td><td align="left"; valign="top"; td width="18%"><font size=2>
      Installed<font color='gray'>   <hr>
    </td>
    <td><td align="left"; valign="top"; td width="18%"><font size=2>
      Current<font color='gray'>   <hr>
    </td>
      {%- for x in expand(states.update
          | selectattr('entity_id','in',integration_entities('hacs'))
          | selectattr('state','contains','o')
          | sort(attribute='entity_id', reverse=true)) %}
  <tr>
    <td><td align="left"; valign="top"; td width="18%"><font size=2>
      <b>
         {%- if (x.state) == 'on' %}
          <font color='red'>
         {%- else %} <font color='green'>
         {%- endif %}
        {{x.name[:29]}}..
    </td>
    <td><td align="left"; valign="top"; td width="18%"><font size=2>
      <b><font color='gray'>
        {{- state_attr(x.entity_id,'installed_version')}}
     </td>  
    <td><td align="left"; valign="top"; td width="18%"><font size=2>
      <b><font color='gray'>
        {{state_attr(x.entity_id,'latest_version')}}
    </td>
{%-endfor %}
</table>
<hr>

A mettre dans une carte mark-down
Phil

Salut,

voici mon code. à peaufiné

type: custom:auto-entities
card:
  square: false
  type: grid
  columns: 2
  title: Mise à jour
filter:
  include:
    - domain: update
      state: 'on'
      options:
        show_name: true
        show_icon: true
        show_entity_picture: true
        variables:
          url: |
            [[[
              return entity.attributes.release_url
            ]]]
          sensor: |
            [[[
              let name = Object.values(entity)
             return name[0]
              ]]]
        type: custom:button-card
        tap_action: none
        name: |
          [[[
            return [entity.attributes.friendly_name.replace('update','')] +'<span style="font-size:60%;"> '+[entity.attributes.installed_version]+'</span>'
          ]]]
        show_state: true
        custom_fields:
          url:
            card:
              type: custom:button-card
              show_icon: false
              name: |
                [[[
                 if (variables.url == null)return ""
                 else
                  {return '<a style="color:white" href="'+[variables.url]+'">'+[variables.url.substr(19,18)]+'</a>'}
                 endif
                ]]]
              tap_action:
                action: url
                url_path: |
                  [[[
                   return variables.url
                  ]]]
              styles:
                card:
                  - background: rgba(100,150,255,0.5)
                  - width: 120%
                  - box-sizing: border-box
                  - padding: 1px
                name:
                  - font-size: 0.7em
                  - font-weight: bold
          upload:
            card:
              show_name: true
              show_icon: true
              type: custom:button-card
              icon: |
                [[[
                 if(entity.attributes.in_progress == false)
                 return 'mdi:upload-circle'
                 else return 'mdi:rotate-right'
                ]]]
              styles:
                card:
                  - border: none
                  - background: none
                icon:
                  - animation: |
                      [[[
                       if(entity.attributes.in_progress == false)
                        return '' 
                       else return 'rotating 1s linear infinite'
                      ]]]
                  - color: rgb(85,252,252)
                  - left: 15%
              tap_action:
                action: perform-action
                perform_action: update.install
                target:
                  entity_id: '[[[return variables.sensor]]]'
        styles:
          grid:
            - grid-template-columns: 0.6fr 0.8fr 1.8fr 1fr;
            - grid-template-rows: repeat(2, 50%);
            - gap: 0px 0px;
            - grid-template-areas: '"i n n upload" "i s url upload"'
          card:
            - padding: 0px
            - height: 100%
            - width: 100%
          icon:
            - align-self: center
            - left: 25%
            - width: 50%
          name:
            - justify-self: start
          state:
            - justify-self: start
            - font-size: 0.6em
          custom_fields:
            url:
              - justify-self: center
  exclude: []
show_empty: true
card_param: cards

Le marckdown m’indique quel integration nécessite un redémarrage.

Après, je me pose la question à simplement faire un bouton qui renvoie vers la page de mise à jour et juste un Markdown pour afficher des notifications de redémarrage ou de mise à jour disponible.

Salut,
Essayez ça, c’est fonctionnel en carte Markdown:

<span><ha-icon icon="hacs:hacs"></ha-icon> <b>Hacs Community Store</b> v{{states('sensor.hacs_version') }}</span>
</br>{% if is_state('update.hacs_update', 'off') or is_state('update.hacs_update','unknown') %} Aucune mise à jour {% else %} {{states('update.hacs_update') }} {{ 'mise à jour disponible' if is_state('update.hacs_update', '1') else 'mises à jour disponibles' }} {{'\U0001f389'}}

{% for repo in state_attr('update.hacs_update', 'repositories') %} - <b>{{repo.display_name }}</b> - Disponible: {{ repo.available_version }} / Installée: {{repo.installed_version }} https://github.com/{{ repo.name }}/releases 
{% endfor %} {% endif %}

image

En revanche, comme je n’ai pas de mise à jour en attente, je ne sais pas si le code {{ 'mise à jour disponible' if is_state('update.hacs_update', '1') doit rester avec « 1 » ou être mis avec « on ».

chez moi {{states('sensor.hacs_version') }} ne fonctionne pas.

remplacé par {{state_attr('update.hacs_update','installed_version') }}

1 « J'aime »

voici ce que j’ai fait:

un template sensor:

    mises_a_jour_disponibles:
      friendly_name: "Mises à jour disponibles"
      value_template: >
        {% set updates = states.update | selectattr('state', 'eq', 'on') | list %}
        {% if updates | length == 0 %}
          Aucune mise à jour disponible.
        {% else %}
          {{ updates | length }} mises à jour disponibles.
        {% endif %}
      attribute_templates:
        updates_list: >
          {% set updates = states.update | selectattr('state', 'eq', 'on') | list %}
          {% if updates | length == 0 %}
            Aucune mise à jour disponible.
          {% else %}
            {% for update in updates %}
              {{ update.attributes.friendly_name }}: ==> {{ update.attributes.latest_version }} <br>
            {% endfor %}
          {% endif %}

et une simple carte markdown:

type: markdown
content: >
  ## Détails des mises à jour disponibles

  {% set updates = state_attr('sensor.mises_a_jour_disponibles',
  'updates_list') %}

  {% if updates == 'Aucune mise à jour disponible.' %}
    Aucune mise à jour disponible.
  {% else %}
    {{ updates | replace('<br>', '\n') }}
  {% endif %}

Voila, si cela peut aider quelqu’un…

resultat:

Capture d’écran 2024-08-22 à 16.30.58

Fait a la « va-vite »
faut ameliorer la carte bien sur !

Moi, voila comment cela se presente dans ma carte:

Capture d’écran 2024-08-22 à 16.34.06

Pas mal aussi comme idée !
Comment fais-tu pour avoir la notif de mise à jour de ton serveur Plex ?
Merci

C’est dans mes mises a jour des integrations HA.
je ne mets pas que les mises a jour HACS, mais aussi celle de HA core, HA systeme, HA supervisor.
Donc, c’est normal qu’il affiche plex, car j’ai une mise a jour de plex dans mes integrations.

Oui ça je me doute, mais c’est parce que tu as installé l’intégration PLEX ?

Salut @MilesTEG1 ! J’aime bien ton dashboard, tu accepterais de nous passer le code ?

Salut,

Moi j’y suis aller simple, une Badge apparaît sur ma page principale qui indique le nombre de mises-à-jour à faire .

 # Nombre de mise à jour total

      - name: "Nombre de mise à jour total"
        unique_id: "nombre_de_mise_a_jour_total"
        state: >
          {{ states.update
              |selectattr('state', 'eq', 'on')
              |list
              |count
          }}
   - type: entity
        entity: sensor.nombre_de_mise_a_jour_total
        icon: mdi:update
        color: red
        visibility:
          - condition: state
            entity: sensor.nombre_de_mise_a_jour_total
            state_not: '0'
        name: MAJ
2 « J'aime »

Pas mal… pas mal ! On ne pas supprimer le « update » dans le nom sans passer par Mushroom ?

Mon code pour enlever le update dans le nom est avec button-card.
Pas essayer avec mushroom, mais doit y avoir moyen.

voila sans le mot « update » :

type: markdown
content: >
  ## Détails des mises à jour disponibles

  {% set updates = state_attr('sensor.mises_a_jour_disponibles', 'updates_list') %}

  {% if updates == 'Aucune mise à jour disponible.' %}
    Aucune mise à jour disponible.
  {% else %}
    {{ updates | replace('update', '') | replace('<br>', '\n') }}
  {% endif %}

resultat:

Ne regarder que les mises a jour HACS, pas les autres !