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 à
grenobleet àtoulon.un nœud
http requestconfiguré 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
debugpour 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 :
msg.payload = msg.payload.current_condition.tmp;
return msg;
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 :
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.
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
:
var temp = msg.payload.current_condition.tmp;
var ma_phrase = "La température vaut " + temp + "°C";
node.log(ma_phrase); // On affiche la phrase "La température vaut xx°C" dans la console

