Bonjour
Mon plugin meteo-france est en rade depuis minima le 8 avril. En gros, il ne récupère plus les données distantes.
Je ne suis pas persuadé que ce soit un problème directement de ce plugin, mais c’est le seul qui me pose problème.
En gros, voici ce que j’ai dans le log quand je sauvegarde un objet (Les XXX correspondaient bien à des valeurs correctes) :
[2023-04-21 15:27:35]DEBUG : Get https://api-adresse.data.gouv.fr/search/?q=XXXXXXXXX&postcode=XXXXX&limit=1
[2023-04-21 15:27:35]DEBUG : Result {"type":"FeatureCollection","version":"draft","features":[],"attribution":"BAN","licence":"ETALAB-2.0","query":"XXXXXX","filters":{"postcode":"XXXX"},"limit":1}
[2023-04-21 15:27:35]DEBUG : Insee
[2023-04-21 15:27:35]DEBUG : Get https://rpcache-aa.meteofrance.com/internet2018client/2.0/forecast?lat=&lon=&id=&instants=morning,afternoon,evening,night
[2023-04-21 15:27:35]DEBUG : Result {"error":true,"messages":{"position":"Invalid lat/lon parameter"}}
Donc j’ai un peu creusé dans le code, deux remarques :
A côté de [2023-04-21 15:27:35]DEBUG : Insee, il est normalement censé mettre une partie du json décodé, la il ne met tien, et pour cause, il ne reçoit pas un json complet. Si vous regardez la ligne de dessus, features est vide.
A partir de là ca part en vrille, il ne récupère pas la longitude/latitude et le code de la ville, donc sa seconde requête ne peut pas aboutir.
La où ça commence à bien me prendre la tête. Si je copie/colle l’url directement dans le navigateur, j’ai bien un beau json complet, qui contient notamment les données nécessaire dans features, ce même tableau qui aurait du être affiché à coté de Insee dans le log :
{"type":"FeatureCollection","version":"draft","features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[X.XXX,XX.XXX]},"properties":{"label":"XXXXXX","score":0.926291818181818,"id":"XXX","type":"municipality","name":XXXX","postcode":"XXX","citycode":"XXXX"...}],"attribution":"BAN","licence":"ETALAB-2.0","query":"XXX","filters":{"postcode":"XXX"},"limit":1}
En cherchant un peu plus loin, cette partie du code utilise une classe du core « com_http ».
Je me suis dit que j’allais créer un fichier de test et appeler cette classe, même combat, je reçoit en fait ce json incomplet :
string(176) "{"type":"FeatureCollection","version":"draft","features":[],"attribution":"BAN","licence":"ETALAB-2.0","query":"XXX","filters":{"postcode":"XXX"},"limit":1}"
Ici, le features est vide quand il est récupéré par la class.
La class com_http étant en fait essentiellement du curl, j’ai fait la même requète minimaliste et en variant les options, à chaque fois je reçois ce json dans rien dans features.
A tout hasard j’ai essayé en ssh de faire un « curl https://api-adresse.data.gouv.fr/search/… », et là je reçois bien un json complet…
A toutes fins utiles : Jeedom en 4.3.17, tous les plugins à jour.
Php 7.4.33 sur un Debian 11.6.
J’ai également fait un apt update/upgrade, on sait jamais ! Pas de changement.
Dans le doute, j’ai aussi vérifié si il y avait des modifications sur la lib php-curl entre un 7.3 de debian 10 et la 7.4, visiblement rien n’est censé cassé le fonctionnement.
Je ne sais plus bien vers quoi chercher, si quelqu’un aurait une idée ! Comme dit, pas sur que ça vienne du plugin, mais il y a bien quelque chose quelque-part qui coince.
Merci