Jeedom ne voit pas de Teleinfo de EcoCompteur

C’est ces valeurs qu’il n’aime pas:
image

La correction est d’ajouter une ligne $corrected = preg_replace('/\:000000000,/', ': 0,', $corrected);
et un message de warning pour signaler qu’il y a une erreur de décodage du json

La fonction corrigée et masquée:
  public function getData() {
    $devAddr = 'http://' . $this->getConfiguration('addr', '') . '/data.json';
    $request_http = new com_http($devAddr);
    $devResult = $request_http->exec(30);
    log::add('legrandeco', 'debug', 'getInformations ' . $devAddr);
    if ($devResult === false) {
      log::add('legrandeco', 'info', 'problème de connexion ' . $devAddr);
    } else {
      $devResbis = utf8_encode($devResult);
      $corrected = preg_replace('/\s+/', '', $devResbis);
      $corrected = preg_replace('/\:000000000,/', ': 0,', $corrected);
      $corrected = preg_replace('/\:0,/', ': 0,', $corrected);
      $corrected = preg_replace('/\:[0]+/', ":", $corrected);
      $devList = json_decode($corrected, true);
      log::add(__CLASS__, 'debug', print_r($devList, true));
      if (json_last_error() == JSON_ERROR_NONE) {
        foreach($devList as $name => $value) {
          if (strpos($name,'type_imp') !== false || strpos($name,'label_entree') !== false || strpos($name,'entree_imp') !== false) {
            // pas de traitement sur ces données
          } else {
            $this->checkCmdOk('teleinfo', $name, '<i class="fas fa-flash"></i>');
            $this->checkAndUpdateCmd($name, $value);
          }
        }
      }
      else {
        log::add(__CLASS__, 'warning', __FUNCTION__ .' Json_decode error: ' .json_last_error_msg());
      }
    }
    $this->refreshWidget();
  }