C’est la chose la plus curieuse, dans le navigateur, j’obtiens le json sans problème. C’est le texte que j’ai collé dans le premier message
Le navigateur fait des choses que ne fait pas le script.
Avez-vous essayé en cochant Vérifier SSL dans les options de la commande ?
Et en renseignant user/password que le navigateur connait et ne redemande plus. Il a un cookie.
Même en navigation privée ?
Veuillez ne plus tag une personne / dev en direct d’autant plus quand rien ne dis que le plug-in soit en cause.
C’est extrêmement intrusif et contraire aux règles de community.
Ce n’est pas un nom d’utilisateur et un mot de passe, c’est une clé API.
La demande fonctionne correctement via n’importe quel navigateur.
C’est jeedom qui n’interprète pas bien json
Je crois sincèrement qu’il s’agit d’une erreur de plugin script
Désolé.
Qui est le développeur du plugin script pour demander de l’aide ?
Et pourtant avec votre json:
Je reste persuadé que c’est un problème de récupération du json.
C’est Correct. C’est le plugin qui est chargé de récupérer le json. Le plugin ne doit pas bien récupérer.
Pour vous aider, il faudrait fournir (en Message direct) l’URL qui permet de récupérer le json .
https://opendata.aemet.es/opendata/sh/12bd2a6d
vous devez utiliser l’url rapide. Parce que les données expirent. Si c’est le cas, je le génère à nouveau avec ma clé API
https://opendata.aemet.es/opendata/sh/12bd2a6d de nouveau disponible
Je rafraîchis régulièrement pour qu’il n’expire pas
Il y a des caractères utf8 invalides dans le json:
Le json ne devrait contenir que des caractères utf8 et là il y a des iso8859/windows.
Il faudrait pouvoir ajouter un flag JSON_INVALID_UTF8_SUBSTITUTE ou JSON_INVALID_UTF8_IGNORE à json_decode ce qui n’est pas possible sans modifier le plugin script.
Pouvez- vous faire corriger le json qui est incorrect ? Je vois qu’en face c’est un organisme d’état donc pas de solution rapide de ce coté.
Sinon il faudrait faire un script intermédiaire qui corrigerait le json
ou demander l’ajout des flags dans le plugin script.
Vous n’avez pas compris: vous êtes sur un forum communautaire, vous n’avez donc pas à interpeller l’auteur d’un plug-in directement.
De plus ici c’est un plug-in officiel, c’est donc l’équipe jeedom qui est responsable.
Un petit rappel des règles: Comment nous aider à vous aider - ou Comment poser une bonne question?
La modif qu’il faudrait faire dans le plugin script pour que les caractères UTF8 invalides soient supprimés des fichiers json :
C’est dans le fichier core/class/script.class.php
, fonction execute
switch ($this->getConfiguration('requestType')) {
....
case 'json':
Avant:
// $json_str = str_replace(": nan ", ": null ",$json_str);
$json = json_decode($json_str, true);
if ($json === null) {
throw new Exception(__('Json invalide ou non décodable : ', __FILE__) . $json_str);
}
Après:
// $json_str = str_replace(": nan ", ": null ",$json_str);
$json = json_decode($json_str, true);
if ($json === null) {
$json = json_decode($json_str, true, 512, JSON_INVALID_UTF8_IGNORE);
if ($json === null) {
throw new Exception(__('Json invalide ou non décodable : ', __FILE__) . $json_str);
}
}
ou directement
// $json_str = str_replace(": nan ", ": null ",$json_str);
$json = json_decode($json_str, true, 512, JSON_INVALID_UTF8_IGNORE);
if ($json === null) {
throw new Exception(__('Json invalide ou non décodable : ', __FILE__) . $json_str);
}
Il faut php 7.2 minimum pour cette modif.
Le résultat avec une requête 0>origen>productor
qui contient des UTF8 invalides
Wow merci.
je vais le modifier mais
Que faudrait-il faire pour que l’équipe Jeedom prenne en compte votre suggestion de façon définitive ?
Bonjour,
Faire un PR sur git jeedom et qu’il soit accepter
je ne suis pas à ce niveau de connaissances
J’ai fait la PR en beta:
Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.