[LUA-DzVents] Données Météo avec API Openweathermap

Vous avez créé un script LUA dont vous êtes fier, un .sh génial, un programme Python hors du commun, un Tuto, c'est ici que vous pouvez les partager.
Vianncy
Messages : 27
Inscription : 16 janv. 2021, 18:30

Re: [LUA] Données Météo avec API Openweathermap

Message par Vianncy »

Merci de ton accueil ! :D
J'avais regardé assez brièvement sur le site pour les alertes. Mais en voyant le JSON, ça me correspond pas (pour les raisons que j'ai cité). J'avoue ne pas avoir creusé plus loin car j'ai vu qu'on pouvait récupérer ces infos avec Meteo-France directement.
Il y a peut-être moyen de les récupérer en français via OpenWeatherMap. Mais j'ai pas trouvé dans ce que j'ai cherché.

Oui pour la date, je connais ce format et j'avais déjà regardé sur comment l'utiliser en LUA. Rien de compliqué pour cette partie. C'est plus les problèmes de niveau et de traduction qui m'ont orienté vers cette autre solution. ;)
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: [LUA] Données Météo avec API Openweathermap

Message par Keros »

Je viens d'y regarder et je n'ai pas vu de configuration particulière pour la langue des alertes. Domage.

Il y aura peut-être une évolution de l'API dans quelques temps ...
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
Vianncy
Messages : 27
Inscription : 16 janv. 2021, 18:30

Re: [LUA] Données Météo avec API Openweathermap

Message par Vianncy »

Peut-être, on peut toujours espérer (en sachant que j'ai bien définie la langue française de l'URL d'appel) :mrgreen:

Autre petit point, le JSON ne contient que les informations qui "existent". J'avais vu le problème avec la pluie (cf. le post de joebuz viewtopic.php?p=82725#p82725), il existe le même problème avec la neige (logique). ;)
Rien de bien compliqué, il suffit d'utiliser le même principe que pour la pluie :

Code : Tout sélectionner

    if (jsonValeur.daily[1].snow) then 
	    snow = jsonValeur.daily[1].snow
    else
	    snow = 0
    end
Vianncy
Messages : 27
Inscription : 16 janv. 2021, 18:30

Re: [LUA] Données Météo avec API Openweathermap

Message par Vianncy »

Il me semble ne pas l'avoir vu posté ici. Petit lien sympa qui connaitre l'ensemble des id possibles des conditions météo (weather dans le JSON), leurs correspondances et leurs icônes: https://openweathermap.org/weather-conditions ;)

Example:
Dans le site
Dans le site
image_2021-01-17_102540.png (2.4 Kio) Consulté 3747 fois
Dans le JSON
Dans le JSON
image_2021-01-17_102331.png (3.51 Kio) Consulté 3747 fois

NB: Pour la ligne "icon" dans le JSON vous voyez qu'il est inscrit "13n" et pourtant sur la capture d'écran du site c'est inscrit "13d". Kesako ? En fait "d" représente les icone "jour" et "n" les icônes "nuit". Le tableau d'équivalence entre les icones jour et nuit se trouve sur le lien donné plus haut (premier tableau, "How to get icon URL") ;)
Doudy
Messages : 457
Inscription : 07 mai 2016, 17:23

Re: [LUA] Données Météo avec API Openweathermap

Message par Doudy »

Lorsque je mets les deux lignes suivantes en remarque :

Code : Tout sélectionner

--    proba_pluie_h = jsonValeur.hourly[i].rain
--    proba_neige_h = jsonValeur.hourly[i].snow
je n'ai plus d'erreur et les données de probabilités sont mises à jour

Image

Le Log :

Code : Tout sélectionner

2021-01-17 10:14:05.603 Status: LUA: [Meteo] >>> Il fait 2.86 degres et la meteo indique nuageux avec un point de rose a 1.84 degres.
2021-01-17 10:14:05.603 Status: LUA: [Meteo] >>> Le 01/17/21 a 21:00:00, il fera 2.71 degres et la meteo prevoit couvert.
2021-01-17 10:14:05.603 Status: LUA: [Meteo] MAJ capteur station meteo 284 : 2.86 C |93 % |1019 hPa
2021-01-17 10:14:05.603 Status: LUA: [Meteo] MAJ capteur vent 285 : 2.86|-0.64 C ; 2.57|2.57 m/s O
2021-01-17 10:14:05.603 Status: LUA: [Meteo] MAJ capteur pluie 286 : 0 mm
2021-01-17 10:14:05.603 Status: LUA: [Meteo] MAJ capteur UV 287 : 0.2
Pourquoi ?

A quoi sert

Code : Tout sélectionner

proba_pluie_h = jsonValeur.hourly[i].rain
    proba_neige_h = jsonValeur.hourly[i].snow
?

Les % sont toujours bizarres !
RaspberryPi - RFLink - Zwave - WH2600
Domoticz : 2020.2 | Dashticz : V3.12 Master | dzvents : 3.0.2 | Python : 3.7.3
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: [LUA] Données Météo avec API Openweathermap

Message par Keros »

Ce script vient de garycooper qui l'a adapté d'un autre API (voir le message). D'après ce que je vois, l'API d'OpenWeather ne donne pas cette info de probabilité de pluie ... Peut-être que garycooper pourra nous dire s'il a réussi à faire fonctionner ce script :?
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
garycooper
Messages : 453
Inscription : 07 août 2017, 23:58

Re: [LUA] Données Météo avec API Openweathermap

Message par garycooper »

Salut, je confirme que je n'ai pas réussi à intégrer les probabilités de pluie et de neige. C'est d'ailleurs pour ça que je l'avais soumis pour avoir un coup de main. En réalité, tel qu'il est écrit, le script rappatrie les numéros d'IDX au lieu des probabilités de pluie et de neige.
Vianncy
Messages : 27
Inscription : 16 janv. 2021, 18:30

Re: [LUA] Données Météo avec API Openweathermap

Message par Vianncy »

Doudy a écrit : 17 janv. 2021, 10:55 Lorsque je mets les deux lignes suivantes en remarque :

Code : Tout sélectionner

--    proba_pluie_h = jsonValeur.hourly[i].rain
--    proba_neige_h = jsonValeur.hourly[i].snow
je n'ai plus d'erreur et les données de probabilités sont mises à jour

Image

Le Log :

Code : Tout sélectionner

2021-01-17 10:14:05.603 Status: LUA: [Meteo] >>> Il fait 2.86 degres et la meteo indique nuageux avec un point de rose a 1.84 degres.
2021-01-17 10:14:05.603 Status: LUA: [Meteo] >>> Le 01/17/21 a 21:00:00, il fera 2.71 degres et la meteo prevoit couvert.
2021-01-17 10:14:05.603 Status: LUA: [Meteo] MAJ capteur station meteo 284 : 2.86 C |93 % |1019 hPa
2021-01-17 10:14:05.603 Status: LUA: [Meteo] MAJ capteur vent 285 : 2.86|-0.64 C ; 2.57|2.57 m/s O
2021-01-17 10:14:05.603 Status: LUA: [Meteo] MAJ capteur pluie 286 : 0 mm
2021-01-17 10:14:05.603 Status: LUA: [Meteo] MAJ capteur UV 287 : 0.2
Pourquoi ?

A quoi sert

Code : Tout sélectionner

proba_pluie_h = jsonValeur.hourly[i].rain
    proba_neige_h = jsonValeur.hourly[i].snow
?

Les % sont toujours bizarres !
De ma faible expérience, je dirais que les deux lignes que tu donnes n'existe pas le JSON s'il n'y a pas de pluie (ou de neige dans l'autre cas) prévu.
Essaie de remplacer par ces lignes :

Code : Tout sélectionner

    if (jsonValeur.hourly[1].rain) then 
	    rain = jsonValeur.hourly[1].rain
    else
	    rain = 0
    end
    if (jsonValeur.hourly[1].snow) then 
	    snow = jsonValeur.hourly[1].snow
    else
	    snow = 0
    end
Par contre ces lignes donne une quantité de précipitation (en mm). Pas une probabilité. D'où tes pourcentages étrange selon moi.

Par exemple, avec le code que tu as mis, c'est cette ligne que tu récupères dans le JSON:
JSON Hourly 1
JSON Hourly 1
image_2021-01-17_111706.png (9.05 Kio) Consulté 3722 fois
Source:
https://openweathermap.org/api/one-call-api
image_2021-01-17_112230.png
image_2021-01-17_112230.png (9.5 Kio) Consulté 3721 fois
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: [LUA] Données Météo avec API Openweathermap

Message par Keros »

garycooper a écrit : 17 janv. 2021, 11:09 Salut, je confirme que je n'ai pas réussi à intégrer les probabilités de pluie et de neige. C'est d'ailleurs pour ça que je l'avais soumis pour avoir un coup de main. En réalité, tel qu'il est écrit, le script rappatrie les numéros d'IDX au lieu des probabilités de pluie et de neige.
Merci garycooper pour ton retour.

Donc OpenWeatherMap ne permets pas d'obtenir les probabilités de pluie et neige comme le script de Papoo.

Le script peut néanmoins être adapté pour afficher les quantités de précipitations mais l'info sera pour chaque heure.

Edit : les probabilités sont accessibles. Voir ci-dessous.
Dernière modification par Keros le 17 janv. 2021, 11:57, modifié 1 fois.
Raison : Correction
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
Vianncy
Messages : 27
Inscription : 16 janv. 2021, 18:30

Re: [LUA] Données Météo avec API Openweathermap

Message par Vianncy »

En jetant de plus prêt un œil à la documentation, il semble bien que la probabilité de pluie et neige existe:

Toujours dans la doc (https://openweathermap.org/api/one-call-api) on a cette ligne:
image_2021-01-17_114222.png
image_2021-01-17_114222.png (2.37 Kio) Consulté 3710 fois
Ca me semble correspondre à ça ;)
Pour différencier pluie et neige, il faut se rapporter aux prévisions données dans "Weather"
image_2021-01-17_114438.png
image_2021-01-17_114438.png (4.25 Kio) Consulté 3710 fois
Ici par exemple, on voit que la probabilité de pluie, pour l'heure qui vient, est de 0.63. La probabilité pour la journée, daily, existe aussi dans le JSON et peut être récupérée. ;)


Pour les quantités de précipitation, il est tout à fait possible de les obtenir pour la journée. Pour cela il faut utiliser daily (et non hourly) ;)
Dernière modification par Vianncy le 17 janv. 2021, 11:57, modifié 2 fois.
Répondre