Météo du jour avec OpenWeather

OpenWeather fournit des informations météorologiques

Le script a été codéveloppé par dommarion et opa95.

Il utilise openweather ''http://api.openweathermap.org/data/2.5/onecall'' (données météo) et ''http://api.openweathermap.org/data/2.5/air_pollution'' (qualité de l'air) pour la collecte des données et ''http://api-adresse.data.gouv.fr/'' ou (''http://api.openweathermap.org/geo/1.0/'') pour la localisation.

L'utilisation des api openweather nécessite l'ouverture (gratuite) d'un compte pour l'obtention d'une clé (''https://openweathermap.org/home/sign_up'') qui peut se faire à partir de l'installateur du PLUGIN. Se connecter sur le site OpenWeather.com avec le lien. Créer son compte. Ensuite cliquer sur API, et cliquer sur "Subscribe" de l'API "Current Weather Data", après scrolling vers le bas cliquer sur Get API Key de la colonne "Free". L'accès à cette page est le suivant https://openweathermap.org/price/

La description des informations est donnée sur le site ''https://openweathermap.org/'' (''https://openweathermap.org/api/one-call-api'' pour les données météo et ''https://openweathermap.org/api/air-pollution'' pour la qualité de l'air).

Les données récupérées sont nombreuses et toutes accessibles,

pour la qualité de l'air :   Indice de qualité, taux CO, NO, NO2, O3, SO2, NH3, particules 2.5 et 10 microns

pour les données météo :   Les données du jour, les prévisions horaires sur les 48h suivantes et les prévisions journalières sur la semaine. Dans chaque cas, on obtient la température, la température ressentie, l'humidité, le point de rosée, le vent, l'état météo, le lever et coucher du soleil et de la lune, DJU prévu pour le lendemain, les alertes météo...

Le plugin proposé permet d'obtenir les informations et opérations de base.

Versions

Installation du plugin

Depuis le store eedomus, cliquez sur le bouton « Créer » situé sous l'icone du plugin.

Cela vous donnera ensuite accès à l'interface d'installation du périphérique qu'il vous faudra paramétrer.

Par défaut le périphérique principal sera nommé Ville station météo, mais il pourra être renommé plus tard.

N'oubliez pas de lui affecter une pièce si vous voulez trouver facilement votre périphérique

Choisir une commune en donnant ses coordonnées GPS (lat,lon) (séparateur ',')ou son nom ou son code postal (zip). On peut en changer plus tard. S'il existe plusieurs communes avec le même nom ou correspondant au même code postal, on peut mettre le nom suivi du code postal (séparateur ',').

Choisir un pays (code ISO 3166, 2 Lettres https://www.atlas-monde.net/codes-iso/) ou un état et un pays (USA, séparateur ','). On peut en changer plus tard. Par défaut, le code pays est 'FR', il est indispensable si la commune n'est pas définie par ses coordonnées GPS.

Renseigner la clé OpenWeather ou la demander en cliquant sur le lien et la recopier dans le champ prévu à cet effet.

Quelques codes pays

Allemagne : DE, Andorre : AD, Antarctique : AQ, Belgique : BE, Danemark : DK, Espagne : ES, Etats-Unis : US, Finlande : FI, France FR, Guyane française GF, Guadeloupe : GP, Guernesey : GG, Irlande : IE, Jersey : JE, Luxembourg : LU, Madagascar : MG, Martinique : MQ, Maurice : MU, Monaco : MC, Nouvelle-Calédonie : NC, Réunion : RE, Royaume-Uni : GB, Saint-Barthélemy : BL, Saint-Martin (France) : MF, Saint-Pierre-et-Miquelon : PM, Suisse : CH, Terres Australes : TF.

Fonctionnement

Le device Maître (Ville station météo) interroge régulièrement les diverses api (toutes les 2 minutes par défaut, ne pas mettre moins) et met les résultats en mémoire. Les autres devices ne font que relire la mémoire sans appels aux api. Si la commune n'a pas changé, le device principal ne redemande pas la localisation et utilise les coordonnées déjà mémorisées, sinon il la redemande.

Le nombre d'appels aux api est donc de 30 par heure (météo et qualité de l'air), soit 720 par jour par API, inférieur au nombre autorisé (1000 pour la version gratuite de OpenWeather).

Devices créés

L'installation du plugin crée :

1 device maître Ville station météo

Il permet aussi de vérifier si la commune correspond bien à la position souhaitée (sinon il faudra modifier VAR1 et VAR3 dans le device).

9 devices qualité air ##

20 devices pour la météo :

Il est possible, par la suite de dupliquer des devices et de modifier le XPATH pour avoir d'autres informations.

Utilisation avancée

Se rendre dans l'interface du device pour le dupliquer et/ou le modifier en agissant directement sur la requête ou le XPATH.

Duplication du master

Le master ne doit pas être dupliqué, sauf si l'on veut connaître les données météo dans plusieurs communes.

Dans ce cas, on peur recopier le second master en lui affectant un nom différent et une mémoire de sauvegarde différente (voir plus bas &mem=xxx). Il faudra aussi changer la fréquence de requête de tous les masters pour ne pas dépasser la limite autorisée (1000 par jour, donc environ 40 par heure : 3 ou 4 minutes pour 2 masters, 5 minutes pour 3 masters... ).

Les autres devices, liés au nouveau master, devront faire référence à la même mémoire.

On pourrait tenter d'installer un second ensemble complet en l'affectant à une autre pièce et en changeant les noms des devices (même remarque que précédemment pour la mémoire et les fréquences de requête).

Url de la requête

Device maître Ville station météo

La device maître correspond à tout nom commençant par Master (majuscules ou minuscules); tout autre nom correspond à un Sensor.

Requête simple

http://localhost/script/?exec=openweather.php&device=Master&commune=[VAR1]&key=[VAR2]

Requête complète

http://localhost/script/?exec=openweather.php&device=Master&commune=[VAR1]&key=[VAR2]&country=[VAR3]

Requêtes complexes

http://localhost/script/?exec=openweather.php&device=Master&commune=[VAR1]&key=[VAR2]&country=[VAR3]&state=xxx&mem=xml&debug=0&reloc=0&format=short

Paramètres complémentaires (directement dans l'url)

Autres devices

Requête simple

http://localhost/script/?exec=openweather.php

Requête complète

http://localhost/script/?exec=openweather.php&device=Sensor&mem=xml&mode=_xxx&device_id=yyyyyyyy

Par défaut &device=Sensor (ou n'importequoi différent de Master), &mem=xml , &mode= et &periph_id= (vides). Normalement, le champ &device est inutile, sauf évolution future.

Paramètres complémentaires (directement dans l'url)

Variables

Utilisées seulement pour le master.

En cas de conflit, Commune est prioritaire sur Country et sur State et donc [VAR1] est prioritaire sur [VAR3].

Résultats

Le script affiche les résultats de la requête sous forme XML dont les données pourront ensuite être exploitées par le XPATH. Passer en mode test pour explorer les diverses valeurs et tester le résultat. Faire une première lecture en restant dans le mode Utiliser l'URL : puis faire les essais suivants dans le mode Utiliser le résultat XML, ce qui évite des appels au device.

La description des informations est donnée sur le site ''https://openweathermap.org/'' (''https://openweathermap.org/api/one-call-api'' pour les données météo et ''https://openweathermap.org/api/air-pollution'' pour la qualité de l'air).

organisation des données

Les données sont sorties par bloc

XPATH

Format short

Pour le format long, il suffit de supprimer les '@'.

Résultat du XML (le résultat peut être différent, format short)

```xml ... ... ````

Bloc 1 : Données générales

```xml ````

Bloc 2 : Erreurs de connexion

```xml ou ou ou ... ````

Bloc 3 : Données actuelles

```xml ````

Bloc 4 : Alertes

```xml ````

Bloc 5 : Précipitations

```xml ````

Bloc 6 : Prévisions horaires (cf bloc 2)

Bloc 7 : Prévisions journalières (cf bloc 2)

Bloc 8 : Qualité de l'Air

xml <donnees_qualite dt="1663225810" air_aqi="2" air_no="0.87" air_no2="8.74" air_o3="26.82" air_so2="0.84" air_co="216.96" air_pm2_5="11.23" air_pm10="13.18" air_nh3="1.92" />

Passage de la version 1.x à la version 2.x

Il est préférable de tout supprimer et de recharger, mais on peut modifier les devices existants.

Device Ville Station Météo

On peut passer la fréquence de la requête à 2 minutes (valeur minimale).

URL de la requête : http://localhost/script/?exec=openweather.php&commune=[VAR1]&key=[VAR2]&country=[VAR3]&device=MasterData
XPATH : //@city_GPS

Autres devices météo

URL de la requête : http://localhost/script/?exec=openweather2.php&mode=_cur

modifier XPATH en rajoutant un @ après les //
XPATH exemple //@temperature Pour la météo, les //code_weather deviennent //@weather_id et les autres //xxxx_weather deviennent //@weather_xxxx (xxxx = main ou xxxx=desc).

Devices qualité de l'air

URL de la requête : http://localhost/script/?exec=openweather2.php&mode=_qua
modifier XPATH en rajoutant un @ après les //
XPATH exemple //@air_co
Remplacer les unités de ppm ou ppb en µg/m3