Savoir si une mise à jour UniFi est disponible

Bonsoir à tous,

J’avais commencé un post il y a quelques temps sur le forum officiel HA, mais ça c’était avant de savoir qu’une communauté FR existait :slight_smile:

Je souhaitais avoir sur mon dashboard, dans la partie monitoring/système, une grille avec tous mes équipements UniFi et un « indicateur » (le bouton d’une autre couleur) si une mise à jour était disponible.

J’utilise pour cela l’intégration « Ubiquiti UniFi » qui me créé des entités device_tracker pour tous les équipements UniFi et absolument tout ce qui est connecté sur le réseau. Pour les équipements UniFi, j’ai ceci.

En discutant sur le forum HA, je me suis rendu compte qu’il y avait un attribut « upgradable : true » qui apparaissait dans l’entité device_tracker de l’équipement UniFi concerné par une mise à jour.

Exemple ci-dessous pour une borne Wifi ajoutée récemment. Je ne l’ai volontairement pas encore mise à jour pour effectuer des tests.

Et confirmé sous UniFi Network :

Du coup, cela me semblait « facile » de créer une carte Lovelace en vérifiant l’état de cet attribut pour chaque équipement et en mettant mon custom:button-card d’une autre couleur, orange en l’occurrence.

J’avais créé un bout de code même si je n’étais pas vraiment sur de moi… :slight_smile:

      - name: AP Garage
        type: 'custom:button-card'
        icon: 'mdi:access-point'
        styles:
          card:
            - background-color: |
                [[[ 
                  if (states['device_tracker.unifi_ap_garage'].attributes.upgradable === 'true')
                    return 'orange';
                  else
                    return 'none';
                ]]]
          name:
            - font-size: 13px

Et bien, ça ne marche pas du tout ! :smiley:
Le bouton de ma nouvelle borne Wifi (AP Garage) n’apparait pas en orange comme espéré.

Auriez-vous une idée svp ?

Je précise bien qu’un équipement UniFi qui ne nécessite pas de mise à jour de firmware n’a tout simplement pas cet attribut « upgradable », comme illustré pour une borne déjà à jour.

Merci pour votre aide :slight_smile:

1 J'aime

Enlève les quottes autour de true (et enlève le else return none car none n’est pas une valeur admissible et tu veux seulement modifier le fond sur la valeur true et pas false.)

name: AP Garage
type: custom:button-card
icon: 'mdi:access-point'
styles:
  card:
    - background-color: |
        [[[
          if (states["device_tracker.unifi_ap_garage"].attributes.upgradable == true) return 'orange';
        ]]]  
  name:
    - font-size: 13px
1 J'aime

Parfait, cela marche effectivement beaucoup mieux comme cela ! Merci @Clemalex :slight_smile:

1 J'aime

Bonjour,

Et il y avait un peu trop de signe = pour la comparaison :wink: 3 c’est toujours mieux mais 2 c’est bien :wink:

Tout ton réseau est en UNIFI alors :wink: TOP

non cela fonctionne aussi…et c’est dans la documentation de la carte.

Entièrement d’accord :+1:

Oui oui, mais ca alourdit tellement le code ;-), enfin c’est juste un avis :wink:

2 J'aime

C’est pour être sûr de sûr que c’est bien égal :stuck_out_tongue:

1 J'aime

C’est du javascript, le === est une égalité stricte, donc tu dois vraiment avoir une chaine de caractère de chaque coté. Ce n’est pas ‹ mieux › ou ‹ bien ›, c’est un opérator avec son comportement !
ex :
0 == false => true (conversion de type pour avoir un bool ou int de chaque coté)
0 === false => false (pas de conversion de type)

Excusez ma minute Me Capelo :smiley:

2 J'aime