Forum eedomus http://forum.eedomus.fr/ |
|
Récupérer le nombre d'heures de soleil API weatherstack http://forum.eedomus.fr/viewtopic.php?f=15&t=12308 |
Page 1 sur 1 |
Auteur: | bigjohn007 [ 06 Juil 2024 06:25 ] |
Sujet du message: | Récupérer le nombre d'heures de soleil API weatherstack |
Bonjour, J'utilise l'API de Merguez pour récupérer la météo sur Weatherstack. Hélas je suis incapable de modifier le script php pour aller chercher le nombre d'heures de soleil du lendemain. J'ai tenté de créer un capteur HTTP qui lit bien les données mais impossible d'extraire celle qui m'interesse dans la réponse reçue de l'API. Pouvez-vous m'aider ? Voici l'url utilisée dans le capteur: http://api.weatherstack.com/forecast?ac ... query=Lyon J'obtiens cette réponse du serveur: {"request":{"type":"City","query":"Lyon, France","language":"en","unit":"m"},"location":{"name":"Lyon","country":"France","region":"Rhone-Alpes","lat":"45.750","lon":"4.850","timezone_id":"Europe\/Paris","localtime":"2024-07-06 07:17","localtime_epoch":1720250220,"utc_offset":"2.0"},"current":{"observation_time":"05:17 AM","temperature":22,"weather_code":302,"weather_icons":["https:\/\/cdn.worldweatheronline.com\/images\/wsymbols01_png_64\/wsymbol_0018_cloudy_with_heavy_rain.png"],"weather_descriptions":["Rain Shower"],"wind_speed":22,"wind_degree":170,"wind_dir":"S","pressure":1009,"precip":0,"humidity":65,"cloudcover":62,"feelslike":25,"uv_index":5,"visibility":10,"is_day":"yes"},"forecast":{"2024-07-05":{"date":"2024-07-05","date_epoch":1720137600,"astro":{"sunrise":"05:58 AM","sunset":"09:33 PM","moonrise":"04:47 AM","moonset":"09:51 PM","moon_phase":"New Moon","moon_illumination":1},"mintemp":14,"maxtemp":28,"avgtemp":21,"totalsnow":0,"sunhour":15.3,"uv_index":7}}} Dans le capteur, je demande le xpath suivant: //sunhour Et le résultat pour l'eedomus est en erreur: Résultat XPath : ERREUR: Valeur lue vide |
Auteur: | opa95 [ 06 Juil 2024 09:14 ] |
Sujet du message: | Re: Récupérer le nombre d'heures de soleil API weatherstack |
Bonjour bigjohn007
L'erreur vient du champ "forecast":{"2024-07-05" qui crée un en-tête de champ XML <2024-07-05>et </2024-07-05> qui n'est pas acceptable par l'eedomus : il faudrait ajouter un caractère alphabétique pour avoir "forecast":{"_2024-07-05". donc remplacer dans la chaine "forecast":{" par "forecast":{"_ ou plus simplement {"2 par {"_2 (valable jusqu'en 2999). Le plugin de Merguez utilise l'appel à http://api.openweathermap.org/data/2.5/ ... =xxxxxxxxx qui ne renvoie pas d'information sur sur le nombre d'heures d'ensoleillement. |
Auteur: | opa95 [ 06 Juil 2024 10:58 ] |
Sujet du message: | Re: Récupérer le nombre d'heures de soleil API weatherstack |
Bonjour bigjohn007 (suite et fin?) Voici une version du script qui fonctionne et est un peu mieux protégée : les données sont mises en cache et le polling réel vers le site limité par défaut à 250 par mois (limite de l'abonnement gratuit) (un appel toutes les 3 heures). Elle te permet d'accéder à tous les champs. Sauve le script sous le nom "weatherstack.php" Crée un capteurr HTTP avec une requête :
VAR1 -> commune (Lyon pour toi) VAR2 -> cle weatherstack VAR3 -> quota mensuel (250 si vide, pas de limite si valeur 0) XPATH -> //sunhour ou ce que tu veux et tu obtiens 15.3 pour aujourd'hui Active la transformation JSON -> XML dans les paramètres expert Tu peux déboguer dans la fenêtre "test" en ajoutant &debug=1 à la chaine de commande et éventuellement remplacer "a= par "a=0 (mais tu vas "bouffer" une connexion à chaque essai) Code
et tu obtiens cela:
|
Auteur: | bigjohn007 [ 21 Juil 2024 05:09 ] |
Sujet du message: | Re: Récupérer le nombre d'heures de soleil API weatherstack |
Bonjour Opa, Un immense merci, cela fonctionne à merveille !! Mes connaissances en XML/PHP sont bien trop limitées, je n'y serais pas arrivé sans toi. Bien amicalement, Jean |
Page 1 sur 1 | Le fuseau horaire est UTC+1 heure |
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/ |