Mise a jour des add-on HACS

Sur le principe j’applique une séparation entre les données (entités) et la mise en forme (les cartes) parce que pour tous les tests c’est pénible de devoir refaire le tri entre les 2.
C’est indirectement ce que tu as fait en passant par un sensor intermédiaire mais c’est pas aussi neutre. Puisqu’il y a un sensor alors il y a aussi tous les index que ça crée et tous les historiques… Ça engendre beaucoup de ressources consommées pour ‹ juste une traduction › … De la à penser que c’est la transposition de la méthode à la jeedom avec les virtuels… Il n’y a qu’un pas que je franchi.

Après pour la carte tu as plusieurs choix, un custom button pour faire un template sur le nom ou un markdown… C’est fonction des connaissances et des préférences… Markdown, simple et basique pour commencer

J’ai du mal à comprendre comment tu fais du coup. Tu aurais un exemple ?

le template (les lignes jinja) au lieu de le mettre dans une entité de type sensor, je le met dans une carte qui sait ‹ traduire le jinja ›
Pour un exemple, justement tu en as un beau ici:
ça n’utilise que les sensors officiels et ça gère toute la mise en forme (calcul/affichage/traduction)
https://forum.hacf.fr/t/mise-a-jour-des-add-on-hacs/11593/44

Je te partage mon code pour une carte markdown .
Ca liste les intégrations a mettre a jour , avec ta version actuelle et la nouvelle et un lien github pour le changelog.

{% if is_state('sensor.hacs', '0') or
is_state('sensor.hacs','unknown') %} Aucune mise à jour {% else %}
{{states('sensor.hacs') }} {{ 'mise à jour disponible' if
is_state('sensor.hacs', '1') else 'mises à jour disponibles' }} {{'\U0001f389' }}

{% for repo in state_attr('sensor.hacs', 'repositories') %} -
{{repo.display_name }} - New: {{ repo.available_version }} / Current: {{repo.installed_version }}
https://github.com/{{ repo.name }}/releases 
{% endfor %} 
{% endif %}

hacs

Merci. Je cherche à le faire dans ma card de type glance mais je n’y arrive pas. Cela ne change rien quand je copie le code que j’ai dans mon sensor custom

Card :

type: glance
entities:
  - type: button
    icon: hacs:hacs
    tap_action:
      action: navigate
      navigation_path: ' /hacs/entry'
    entity: sensor.hacs_fr
    name: HACS

HACS_MAJ2

Je vois ce message dans HACS qui ne disparait pas du coup j’ai peur d’avoir encore dégommer quelque chose en jouant avec les sensors…avez vous une idée de ce que c’est et si c’est normal ?

Salut,

En créant des uniquement des sensors et des cartes, aucune chance de casser HACS… Avec le temps ou au prochain restart, ça devrait disparaitre

Ok merci.

Par contre mon sensor custom ne se met pas à jour…j’ai laissé le sensor.hacs à côté pour contrôler
HACS5

Si tu as laissé ça, alors c’est normal… le IF ne sera jamais vrai… Teste ton code et le sensor.hacs avec les outils de dev, tu va vite comprendre

J’essaye mais je ne sais pas me servir des outils de dév en dehors de l’onglet « Etat » pour mettre à jour les états. J’aimerais apprendre à utiliser l’onglet « Modèle ». J’ai essayé de bidouiller mais quoi que je fasse ça reste « A jour » mais je ne vois pas ce qui cloche au niveau du code. Le « pending update(s) » qui ne doit pas être bon puisqu’il faut que je scrute l’état (avec le nombre) ?

C’est pas bien difficile, tu fais déjà ce boulot en créant le template, c’est même plus court

Mets ça dans un modèle

Valeur state {{ states('sensor.hacs') }}
{% if is_state('sensor.hacs', 'pending update(s)') %}
 ligne si vrai : 
 {% set sum=states('sensor.hacs')|int %}{{ sum }} Mise{{ 's' if sum > 1 else '' }} à jour disponible{{ 's' if sum > 1 else '' }}
{% else %}
 ligne si faux :
 A jour
{% endif %}

A priori ça marche merci.

{% if states('sensor.hacs') %}
{% set sum=states('sensor.hacs')|int %}{{ sum }} Mise{{ 's' if sum > 1 else '' }} à jour disponible{{ 's' if sum > 1 else '' }}
{% else %}
 A jour
{% endif %}

Ce qui m’a induit en erreur je suppose c’est le code que j’ai utilisé pour mon badge de sauvegarde

 sauvegarde_fr:
       friendly_name: "Statut de sauvegarde"
       entity_id: sensor.backup_state
       value_template: "{% if is_state('sensor.backup_state', 'backed_up') %}Réussie{% else %}Echouée{% endif %}"

Petite question au passage : comment fait on si on veut changer la couleur des icônes en fonction des conditions (états) ?

Je pense qu’il y a plusieurs 10 aines d’exemples partout sur le forum

J’ai essayé ça mais marche pas…je suis nul
J’ai testé dans le modèle des outils de dev et ça me retourne « yellow »…mais l’icône reste blanche.

hacs_fr:
       friendly_name: "HACS"
       entity_id: sensor.hacs
       value_template: "{% if states('sensor.hacs') %}{% set sum=states('sensor.hacs')|int %}{{ sum }} Mise{{ 's' if sum > 1 else '' }} à jour disponible{{ 's' if sum > 1 else '' }}{% else %}A jour{% endif %}"
       icon_template: >-
        {% if states('sensor.hacs') <= '0' %}
           white
        {% else %}
           yellow
        {% endif %}

Oui, tu mélanges un peu tout là …

C’est pas fondamental (ici), mais autant prendre le pli :
L’indentation du yaml, c’est toujours 2 espaces : pas 3, 4 ou 6. Dans le partie plus critique, si tu ne prends pas l’habitude de bien faire, ça va être pire.

image
Donc ça donne une icone, pas la couleur !

Et pour finir quand tu écrit ça

Tu demandes littéralement à HA de récupérer le chiffre de sensors.hacs, et de comparer s’il est plus petit ou égal à la chaine de caractère 0 … Les choux et le carrotes c’est pas valable ;), donc il faut virer les ’ autour du 0 pour bien faire.
D’ailleurs, il n’y a pas beaucoup de chance pour avoir -1 dans le sensor, donc on peut faire plus simple

{% if states('sensor.hacs') == 0 %}

Pour finir la partie couleur se gère principalement dans la carte, pas dans le template
Par exemple

Je ne sais pas si le fait d’être sur une card type glance fait que cela ne marche pas ?

type: glance
entities:
  - type: button
    tap_action:
      action: navigate
      navigation_path: ' /config/dashboard'
    entity: binary_sensor.updater
    name: HA Core
  - type: button
    tap_action:
      action: navigate
      navigation_path: ' /config/dashboard'
    entity: binary_sensor.home_assistant_operating_system_update_available
    name: HA Superviseur
  - type: button
    icon: hacs:hacs
    styles:
      icon:
        - color: |
            [[[
                if ( (states['sensor.hacs'].state == 0) ) return 'white';
                else return 'yellow';
            ]]]
    tap_action:
      action: navigate
      navigation_path: ' /hacs/entry'
    entity: sensor.hacs_fr
    name: HACS

tu as essayé avec une carte button comme dans l’exemple que tu repris ?

J’ai une carte glance donc j’essaie de l’adapter à ce que j’ai. J’ai essayé ca marche mais c’est pas ce que j’aimerais avoir. Ce doit être possible puisque les 2 icônes que j’ai à côté pour les mises à jour de HAOS et du core passent en jaune automatiquement.

Pourquoi tu utilise pas GitHub - Mariusthvdb/custom-ui: Adapted Custom-ui for HA 110+ / HA 2021.6 ?
comme ca c’est custom-ui qui change la couleur de t’es icones et pas la carte glance ou autre.

dans le customize.yaml

sensor.hacs:
  templates:
    icon_color: "if (state === '0') return 'white'; else return 'yellow';"