Besoin d'aide avec les Glyphs et les fonts

Bonjour à tous.

Je cherche à incruster le niveau d’une batterie sur un écran E-paper dans un projet ESPHOME.

J’ai trouvé un exemple pour le niveau de Wifi que j’ai implémenté et qui fonctionne très bien.

Il fonctionne avec la célèbre font « materialdesignicons » et je crois avoir compris le fonctionnement pour les font et les caractères standard.

Pour cet exemple les glyph sont fait avec des caractère qui ne s’affiche pas sur mes écrans de PC mais donnent les bons résultats sur le E_Paper ??? du coup je ne sais pas reproduire la chose pour la batterie.

Je joint la configuration du Wifi pour exemple si quelqu’un peut m’expliquer comment créer mes propres glyph je serai moins bête.


  - file: '/config/www/fonts/materialdesignicons-webfont.ttf'
    id:  mdi_wifi
    size: 20
    glyphs: [
      # Wifi
      '󰤫', # mdi-wifi-strength-alert-outline
      '󰤟', # mdi-wifi-strength-1
      '󰤢', # mdi-wifi-strength-2
      '󰤥', # mdi-wifi-strength-3
      '󰤨', # mdi-wifi-strength-4

      ]

Ce qui m’étonne c’est c’est point d’interogation dans un rectangle pour chaque Glyph, toujours le même mai sil semble qu’il aille bien chercher les bonnes icones.

On l’appelle comme cela pour l’écran :

      if(id(wifisignal).has_state()) {
        int x = 296 ;
        y = 128 ;
        if (id(wifisignal).state >= -50) {
            //Excellent
            it.print(x, y, id(mdi_wifi), TextAlign::BASELINE_RIGHT, "󰤨");
            ESP_LOGI("WiFi", "Exellent");
        } else if (id(wifisignal).state  >= -60) {
            //Good
            it.print(x, y, id(mdi_wifi), TextAlign::BASELINE_RIGHT, "󰤥");
            ESP_LOGI("WiFi", "Good");
        } else if (id(wifisignal).state  >= -75) {
            //Fair
            it.print(x, y, id(mdi_wifi), TextAlign::BASELINE_RIGHT, "󰤢");
            ESP_LOGI("WiFi", "Fair");
        } else if (id(wifisignal).state  >= -100) {
            //Weak
            it.print(x, y, id(mdi_wifi), TextAlign::BASELINE_RIGHT, "󰤟");
            ESP_LOGI("WiFi", "Weak");
        } else {
            //Unlikely working signal
            it.print(x, y, id(mdi_wifi), TextAlign::BASELINE_RIGHT, "󰤫");
            ESP_LOGI("WiFi", "Unlikely");
        }
      }

C’est le même caractère etrange partout mais ça sort le bon icone…

Je voudrais faire pareil avec les icones depuis « battery_0_bar » jusque « battery_full ».

D’autre part j’ai un autre exemple mais qui ne fonctionne pas de la même manière mais donne le même résultat :

  - file: '/config/www/fonts/materialdesignicons-webfont.ttf'
    id: icon_font_20
    size: 20
    glyphs:
      - "\U000F050F" # Temp
      - "\U000F029A" # Pressure
      - "\U000F15FA" # Wind
      - "\U000F058C" # Rain
      - "\U000F0597" # Chance pluie 0F0597
      - "\U000F04B9" # Dedans canapé
      - "\U000F09F1" # Dehors tulipe 0F09F1
      - "\U000F0F2F" # Alerte meteo

On l’appel comme ça pour l’écran :

      it.print (175 ,95 , id(icon_font_20), TextAlign::BASELINE_RIGHT,"\U000F09F1"); /* Icone dehors */

Là au moins c’est compréhensible.
Mais je ne vois pas comment sortir du fichier de font les bons codes \U000… pour mon exemple de batterie.

Voila des vrais problèmes de débutant qui n’a aucune connaissance théorique de programmation.

Merci de votre aide.

Philippe

A+

Bonjour, personne pour me renseigner ou m’envoyer vers un tuto ?

Philippe

Bonjour,

Bon et bien finalement j’ai trouvé sur le forum anglais. Merci à deepcore

Je partage ici si ça peut aider.

Esphome and Glyphs

Une traduction approximative donne :

Sur la page de la bibliothèque Material Design Icons Library page vous trouverez les différents glyphes. En cliquant sur l’icône souhaitée, vous obtenez une page de détails, où vous pouvez copier le glyphe et l’insérer dans l’yaml juste en cliquant en haut à gauche . Voir cette capture d’écran…

Et en effet si on clique et que l’on colle dans un fichier ESPHOME cela donne ce caractère étrange mais cela fonctionne Tip-Top. :+1:

Bon après il faut s’y retrouver dans les 7296 icones de la page !!! mais le moteur de recherche est assez intuitif, même si en anglais également.

Bon par contre je n’ai pas encore trouvé la réponse pour l’autre mode.

    glyphs:
      - "\U000F050F" # Temp
      - "\U000F029A" # Pressure
      - "\U000F15FA" # Wind
      - "\U000F058C" # Rain
      - "\U000F0597" # Chance pluie 0F0597
      - "\U000F04B9" # Dedans canapé
      - "\U000F09F1" # Dehors tulipe 0F09F1
      - "\U000F0F2F" # Alerte meteo

A+

Philippe