Obtenir la météo d'une ville donnée

Node-RED peut également se comporter comme un navigateur ou un serveur et ainsi émettre ou recevoir des requêtes http.

Dans la barre d'addresse de Firefox saisissez l'URL suivante :

https://www.prevision-meteo.ch/services/json

Cette action revient à faire une requête http vers

le service web prevision-meteo.ch.

Complétez l'URL par /<une ville de votre choix>.

Exemple : /perpignan

La réponse du serveur s'affiche, il s'agit de données au format JSON qui structurent l'information par des couples (nom, valeur).

Pour faire la même chose avec node-RED :

Créez un nouveau flux et nommez-le météo.

Placez sur la feuille :

  • deux nœuds inject et modifier la propriété payload par une chaîne de caractères (string) égale respectivement à grenoble et à toulon.

  • un nœud http request configuré avec l'url :

    https://www.prevision-meteo.ch/services/json/{{payload}}

  • un nœud json configuré avec l'option Convert between JSON String & Object.

  • et enfin un nœud debug pour visualiser le résultat.

Déployez le flow puis vérifier que les informations s'affichent bien dans la fenêtre debug en fonction de la ville choisie.

Ajoutez un nœud function à la sortie du nœud json puis ajouter le code javascript suivant :

1
msg.payload = msg.payload.current_condition.tmp;
2
return msg;
3

Placez un nœud debug en sortie du nœud function, déployez puis observez la valeur dans la fenêtre debug.

Modifier le code javascript pour afficher la phrase suivante :

1
Aujourd'hui à <nom de la ville> la température est de <valeur de la température>°C, l'humidité de <valeur de l'humidité>% et le vent soufle à <valeur du vent> km/h.
2

Conseil

En javascript il est facile de construire une chaîne de caractères avec d'autres chaînes de caractères ou des variables, il suffit de relier chaque chaîne par le signe +, on parle de concaténation. Exemple à taper dans le nœud function  :

1
var temp = msg.payload.current_condition.tmp;
2
var ma_phrase = "La température vaut " + temp + "°C";
3
node.log(ma_phrase); // On affiche la phrase "La température vaut xx°C" dans la console
4