Page 1 sur 3

Echec pour avoir les données 'Open Weather Map'

Publié : 09 sept. 2022, 21:23
par gsagsa99
Hello,
Version : 2022.1 build 14477
Platform Windows 10


J’ai commencé récemment avec Domoticz.
J’essaie de configurer une entrée matériel pour ‘Open Weather Map’ (OWM).
J’ai ouvert un compte et j’ai obtenu une clé API.

Pour la configuration, voir fichier ci-joint

Echec au démarrage , voici le log :
2022-09-06 10:01:42.394 Status: Meteo_Local: Using Domoticz home location (Lon 4.988987, Lat 50.7001)!
2022-09-06 10:01:42.523 Status: Meteo_Local: Using specified location (Lon 4.988987, Lat 50.7001) Unable to find nearest City!
2022-09-06 10:01:42.524 Status: Meteo_Local: Started
2022-09-06 10:01:42.523 Error: Meteo_Local: Error getting http data!

J’ai construit l’appel manuellement comme documenté chez OWM, et j’utilise chrome.

https://api.openweathermap.org/data/2.5 ... ic&lang=en

Cela fonctionne très bien et j’obtiens le fichier JSON.

Bien que n’étant pas expert C++, j’ai regardé dans le module ‘OpenWeatherMap.cpp’.
Il me semble que l’appel OWM est construit correctement.

Ensuite il y a appel à ‘HTTPClient::GET’ qui retourne ‘false’
Pour ce code mon expérience C++ est trop légère.
Une idée pour l’appel échoue ?
Merci

Re: Echec pour avoir les données 'Open Weather Map'

Publié : 09 sept. 2022, 21:40
par Keros
Bonjour gsagsa99 et bienvenu sur le forum :)

Le message du log indique que le plugin a du mal à trouver une ville proche de ta position. Comme si tu habitais en plein milieu de nulle part :?

Essaye peut-être de paramétrer une localisation sur Paris pour voir si cela fonctionne.

EDIT :

Le service semble se calculer sur les villes. Les coordonnées données sont une position dans l'océan :
Sans titre.png
Sans titre.png (147.26 Kio) Consulté 2792 fois
Si c'est réellement ta position, je te conseille plutôt une météo marine ;)

Re: Echec pour avoir les données 'Open Weather Map'

Publié : 09 sept. 2022, 22:06
par gsagsa99
Merci Keros

J'avais essayé avec plusieurs villes et cela n'a pas fonctionné. Voici le log avec Paris

2022-09-09 21:49:56.111 Status: Meteo_Local: Worker stopped...
2022-09-09 21:49:56.233 Status: Meteo_Local: Using specified location (Lon 2.3522, Lat 48.8566) Unable to find nearest City!
2022-09-09 21:49:56.234 Status: Meteo_Local: Started
2022-09-09 21:49:56.233 Error: Meteo_Local: Error getting http data!
2022-09-09 21:49:59.354 Error: Meteo_Local: Error getting http data!

L'URL que j'ai construit avec les coordonnées locales (effectivement je suis dans un trou à la campagne) fonctionne et me retourne la ville la plus proche avec ses données météo .

Voici l'URL construit manuellement (avec mes coordonnées locales).

https://api.openweathermap.org/data/2.5 ... ic&lang=en

En entrant cet URL dans chrome, j'obtient en retour (format JSON )

{"coord":{"lon":4.989,"lat":50.7001},"weather":[{"id":500,"main":"Rain","description":"light rain","icon":"10n"}],"base":"stations","main":{"temp":15.83,"feels_like":15.71,"temp_min":14.04,"temp_max":16.79,"pressure":1009,"humidity":86},"visibility":10000,"wind":{"speed":4.12,"deg":200},"rain":{"1h":0.24},"clouds":{"all":75},"dt":1662753281,"sys":{"type":2,"id":2010548,"country":"BE","sunrise":1662699965,"sunset":1662746951},"timezone":7200,"id":2789621,"name":"Orp-le-Grand","cod":200}

Je décode le JSON en ligne et j'obtiens les données météo de la ville la plus proche de chez moi : Orp-le-Grand (voir fichier ci-joint)

Donc je pense que quelque se passe dans le code de 'HTTPClient::GET’

@ Keros , je suis bien sur terre ;) , tu as inversé lon et lat. :P

Merci

Re: Echec pour avoir les données 'Open Weather Map'

Publié : 10 sept. 2022, 07:05
par Keros
Ah, oups désolé :oops:

Tu as essayé en rentrant le nom de la ville ou son ID ?

Re: Echec pour avoir les données 'Open Weather Map'

Publié : 10 sept. 2022, 10:22
par gsagsa99
Bonjour ,

Soit avec le nom , soit avec l'ID, cela ne marche pas.
J'ai pris PARIS , pour éviter mon trou perdu dans la campagne belge

Avec le nom, voici le log

2022-09-10 10:08:13.963 Status: Meteo_Local: Worker stopped...
2022-09-10 10:08:13.963 Status: Meteo_Local: Using specified location (City PARIS)!
2022-09-10 10:08:14.091 Status: Meteo_Local: Started
2022-09-10 10:08:14.090 Error: Meteo_Local: Error getting http data!
2022-09-10 10:08:14.090 Error: Meteo_Local: Unable to resolve City to Latitude/Longitude, please use Latitude,Longitude directly in hardware setup


L'ID de PARIS est 6455259 (voir fichier ci-joint)
Avec l'ID , voici le log
2022-09-10 10:13:01.723 Status: Meteo_Local: Worker stopped...
2022-09-10 10:13:01.724 Status: Meteo_Local: Using specified location (Station ID 6455259)!
2022-09-10 10:13:01.876 Status: Meteo_Local: Started
2022-09-10 10:13:01.875 Error: Meteo_Local: Error getting http data!
2022-09-10 10:13:01.876 Error: Meteo_Local: Unable to resolve City to Latitude/Longitude, please use Latitude,Longitude directly in hardware setup!)

J'ai obtenu l'ID de PARIS en faisant manuellement l'URL suivant

https://api.openweathermap.org/data/2.5 ... ic&lang=en

J'obtiens bien les données météo avec l'ID de PARIS (voir fichier ci-joint)

Je pense qu'il y a un bug dans le code de la méthode HTTPClient::GET, mais mes faibles connaissances C++ ne sont suffisantes pour lire le code.

Y-a-t-il moyen de mettre une trace ?

Merci

Re: Echec pour avoir les données 'Open Weather Map'

Publié : 10 sept. 2022, 11:34
par Keros
Là, cela dépasse mes compétences, je ne pourrais pas t'aider plus.

Re: Echec pour avoir les données 'Open Weather Map'

Publié : 10 sept. 2022, 11:40
par gsagsa99
Merci pour ton aide

Re: Echec pour avoir les données 'Open Weather Map'

Publié : 10 sept. 2022, 14:16
par gsagsa99
Voici (sauf erreurs de ma part), les raisons de l'échec.

OpenWeatherMap à deux APIs :

1. api.openweathermap.org/data/2.5/weather?<paramètres> --> donne la météo actuelle
2 api.openweathermap.org/data/2.5/onecall?<paramètres> --> prévisions

Je ne sais pas depuis quand , mais le deuxième API est passé en version 3.0. La version 2.5 ne fonctionne plus!

De plus il faut souscrire à un 'Base Plan' payant mais qui ne sera facturé qu'après les premiers 1000 appels (journaliers ?) qui restent gratuits.

Pour faire fonctionner cela nécessite un changement de code (voir fichier C++ ci-joint)

Re: Echec pour avoir les données 'Open Weather Map'

Publié : 10 sept. 2022, 14:49
par Neutrino
Dans "Localisation", il faut rentrer les coordonnées sous ce format :

Code : Tout sélectionner

lat=46.XXXXXX&lon=-1.XXXXXX

Re: Echec pour avoir les données 'Open Weather Map'

Publié : 10 sept. 2022, 16:37
par gsagsa99
Bonjour Neutrino
merci
Pourquoi -1.xxxxx pour la longitude ?

Si je veux Paris (lat = 48.8566, lon = 2.3522) que dois-je mettre ?