Image non téléchargé

Bonjour,

J’ai rajouté plusieurs capteurs de luminosité (GZCGQ11LM) dans le plugin-z2m. J’ai toutes les commandes qui remontes.

La seule chose qui manque, c’est l’image :

Dans zigbee2mqtt, elle est bien présente :

Quand je regarde le code :

Code
public function getImgFilePath() {
    if(method_exists($this,'getCustomImage')){
      $customImage = $this->getCustomImage();
      if($customImage !== null){
         return $customImage;
      }
    }
    $model = str_replace(array('/', ' '), array('-', '-'), $this->getConfiguration('model'));

    if ($this->getConfiguration('isgroup', 0) == 1) {
      return 'plugins/z2m/plugin_info/z2m_icon.png';
    }
    if ($this->getConfiguration('model') == '') {
      return 'plugins/z2m/plugin_info/z2m_icon.png';
    }
    $filename = __DIR__ . '/../../data/img/' . $model . '.jpg';
    if (!file_exists($filename) || filesize($filename) < 2) {
      if (file_exists($filename)) {
        unlink($filename);
      }
      file_put_contents($filename, file_get_contents('https://www.zigbee2mqtt.io/images/devices/' . $model . '.png', 0, stream_context_create(["http"=>["timeout"=>1]])));
      if(filesize($filename) < 2){
        if (file_exists($filename)) {
          unlink($filename);
        }
        file_put_contents($filename, file_get_contents('https://www.zigbee2mqtt.io/images/devices/' . $model . '.jpg', 0, stream_context_create(["http"=>["timeout"=>1]])));
      }
    }
    if (!file_exists($filename) || filesize($filename) < 2) {
      return 'plugins/z2m/plugin_info/z2m_icon.png';
    }
    return 'plugins/z2m/data/img/' . $model . '.jpg';
  }

La variable $model est bien égale à GZCGQ11LM et le lien de l’image https://www.zigbee2mqtt.io/images/devices/GZCGQ11LM.png existe bien.

Mes compétences s’arrêtent là.

Avez-vous une piste à étudier pour faire afficher l’image ?

Merci d’avance.


Informations Jeedom

Core : 4.4.19 (master)
DNS Jeedom : oui

Plugin : JeeZigbee
Version : 2025-01-15 01:01:47 (stable)
Statut Démon : Démarré - (2025-01-24 09:25:56)

Salut,

file_put_contents($filename, file_get_contents('https://www.zigbee2mqtt.io/images/devices/' . $model . '.png', 0, stream_context_create(["http"=>["timeout"=>1]])));
      if(filesize($filename) < 2){
        if (file_exists($filename)) {
          unlink($filename);
        }
        file_put_contents($filename, file_get_contents('https://www.zigbee2mqtt.io/images/devices/' . $model . '.jpg', 0, stream_context_create(["http"=>["timeout"=>1]])));
      }
    }
    if (!file_exists($filename) || filesize($filename) < 2) {
      return 'plugins/z2m/plugin_info/z2m_icon.png';
    }
    return 'plugins/z2m/data/img/' . $model . '.jpg';
  }

Si l’image téléchargée est inférieure à 2 octets (ce qui signifie qu’elle est vide ou corrompue), elle est supprimée.
Le code télécharge en priorité une image .png.
Si cela échoue, il tente une version .jpg.
Si aucune image n’est valide, il retourne une image par défaut.

Merci pour ta réponse.

J’ai un peu avancé sur mon problème, ce n’est pas que mes capteurs GZCGQ11LM qui posent problème mais tous. Si je supprime une image d’un capteur déjà inclus (depuis longtemps), l’image n’arrive pas à être téléchargé.