HowTo: Node Red - Obtenez les données météorologiques actuelles d'OpenWeatherMap

Il n'est pas toujours possible de mesurer directement des données environnementales telles que la température extérieure. Pourtant, c'est parfois pratique. Par exemple, vous pouvez vous assurer que les radiateurs à l'intérieur ne sont allumés que lorsqu'il fait également froid à l'extérieur. Les systèmes de chauffage qui s'allument automatiquement en été coûtent non seulement de l'argent, mais aussi de la sueur. 🙂

Pour obtenir ces données environnementales, vous auriez en fait besoin de votre propre station météo, qui alimente le SmartHome avec les données correspondantes.
Cependant, vous pouvez économiser cet argent. Grâce à des services météo gratuits auprès desquels vous n'avez qu'à obtenir ces données. L'un de ces services météorologiques est OpenWeatherMap.org.

L'article suivant explique comment vous pouvez obtenir des données météorologiques d'OpenWeatherMap.org et les utiliser pour votre SmartHome.


Consignes de sécurité

Je sais que les notes suivantes sont toujours un peu ennuyeuses et semblent inutiles. Malheureusement, de nombreuses personnes qui savaient "mieux" ont perdu des yeux, des doigts ou d'autres choses à cause d'une négligence ou se sont blessées. La perte de données est presque négligeable en comparaison, mais même celles-ci peuvent être vraiment ennuyeuses. Par conséquent, veuillez prendre cinq minutes pour lire les consignes de sécurité. Parce que même le projet le plus cool ne vaut pas une blessure ou d'autres problèmes.
https://www.nerdiy.de/sicherheitshinweise/

Liens d'affiliation/publicitaires

Les liens vers des boutiques en ligne répertoriés ici sont des liens dits d'affiliation. Si vous cliquez sur un tel lien d'affiliation et effectuez un achat via ce lien, Nerdiy.de recevra une commission de la boutique en ligne ou du fournisseur concerné. Le prix ne change pas pour vous. Si vous effectuez vos achats via ces liens, vous aidez Nerdiy.de à pouvoir proposer d'autres projets utiles à l'avenir. 🙂 


Conditions préalables

Articles utiles :
Pour que vous puissiez accepter cette configuration, NodeRed doit bien entendu déjà être installé.
Comment préparer un RaspberryPi puis installer NodeRed dessus est décrit dans les articles suivants.

Les articles suivants décrivent ce qui doit être fait pour préparer le RaspberryPi :
RaspberryPi - configuration pour les nerdiys !
RaspberryPi – La première configuration !
RaspberryPi - Contrôlez le RaspberryPi via SSH
NodeRed – Installer NodeRed sur le RaspberryPi
NodeRed – Installer de nouveaux nœuds

NodeRed - importer et exporter le code du nœud

Outil requis :
-Non-

Matériel requis :

Dans la liste suivante, vous trouverez toutes les pièces dont vous avez besoin pour mettre en œuvre cet article.


Connectez-vous à l'interface de configuration de NodeRed

Avant de pouvoir modifier votre configuration NodeRed, vous devez - si activé - vous connecter d'abord à l'interface de configuration NodeRed.

Vue de la boîte de dialogue de connexion. Ici, vous devez entrer les données de connexion que vous avez spécifiées lors de la configuration de la connexion. Vous trouverez des informations à ce sujet dans l'article NodeRed - configurer la connexion de l'utilisateur.

Enregistrer la clé API openWeatherMap

Pour pouvoir appeler les données météorologiques actuelles d'openWeahterMap.org, vous avez besoin d'une clé API. Comment vous pouvez vous inscrire gratuitement est décrit dans cet article: Enregistrer la clé API OpenWeatherMap.org
Plus tard, cela doit ensuite être stocké dans le nœud openWeatherMap. Alors prenez bonne note de lui. 🙂

Installer le nœud openWeatherMap

Pour pouvoir consulter les données de OpenWeatherMap.Org, vous devez installer le noeud "node-red-node-openweathermap". Comment installer les nodes est expliqué dans l'article NodeRed – Installer de nouveaux nœuds expliqué.

Importer le code du nœud

La configuration suivante devrait vous aider dans les premières étapes. Importez simplement le code de nœud suivant dans votre installation NodeRed. Comment faire cela est dans l'article NodeRed - importer et exporter le code du nœud expliqué.

Immédiatement après, vous devez ajouter la clé API précédemment enregistrée à la configuration, comme décrit ci-dessous.

Visualisation de la configuration sous l'éditeur.

Code nœud :

[{"id":"85dcceee.5ca84","type":"change","z":"5ebf035f.49459c","name":"température extérieure","rules":[{"t":" set ","p":"payload","pt":"msg","to":"data.main.temp-273.15","tot":"jsonata"}],"action":"", " propriété":"","de":"","à":"","reg":false,"x":710,"y":200,"wires":[["6ab6bc17.16a144" ] ]},{"id":"b36beeac.014ba","type":"json","z":"5ebf035f.49459c","name":"","property":"charge utile","action " :"","pretty":false,"x":510,"y":200,"wires":[["85dcceee.5ca84","a0fb594.6e02ea8","7aa148d5.934fb8","8e550228. aae02 ","52536e82.1cb05","b22dec0e.d53f3","bcdf0d32.be17a","95d0a7a8.66b9e8","514584f.458327c"]]},{"id":"34eee9ed.b64d36","type" : "inject","z":"5ebf035f.49459c","name":"Récupérer les données manuellement","topic":"","payload":"","payloadType":"date","repeat" : "","crontab":"","once":false,"onceDelay":0.1,"x":180,"y":260,"wires":[["d5a8c5aa.82b3c8"]]}, { "id":"a0fb594.6e02ea8","type":"change","z":"5ebf035f.49459c","name":"humidité extérieure","rules":[{"t":"set" , "p":"payload","pt":"msg","to":"data.main.humidity","tot":"jsona ta"}],"action":"","property":"","from":"","to":"","reg":false,"x":720,"y":320 ,"wires":[["b9f93625.5051b8"]]},{"id":"7aa148d5.934fb8","type":"change","z":"5ebf035f.49459c","name":" pression d'air externe","rules":[{"t":"set","p":"payload","pt":"msg","to":"data.main.pressure","tot" :" jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":700,"y" :360 ,"wires":[["fbf0a415.6ed9c8"]]},{"id":"d5a8c5aa.82b3c8","type":"openweathermap","z":"5ebf035f.49459c","nom" :" ","wtype":"actuel","lon":"","lat":"","ville":"Bochum","pays":"Allemagne","langue":"de", "x ":410,"y":260,"wires":[["b36beeac.014ba"]]},{"id":"67bf25e3.d1ce1c","type":"openweathermmap in","z" :" 5ebf035f.49459c","name":"","wtype":"current","lon":"","lat":"","city":"Bochum","country":"Allemagne ", "language":"de","x":160,"y":200,"wires":[["b36beeac.014ba"]]},{"id":"8e550228.aae02","type ": "debug","z":"5ebf035f.49459c","name":"Données brutes","active":true,"tosidebar":true,"console":false,"tostatus":false," complete": "true","x":680,"y":160,"fils ":[]},{"id":"6ab6bc17.16a144","type":"debug","z":"5ebf035f.49459c","name":"temperatureexterieure","active":true," tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":990,"y":200,"wires":[]},{"id": "b9f93625.5051b8","type":"debug","z":"5ebf035f.49459c","name":"humidité extérieure","active":true,"tosidebar":true,"console":false , "tostatus":false,"complete":"payload","x":1000,"y":320,"wires":[]},{"id":"fbf0a415.6ed9c8","type": " debug","z":"5ebf035f.49459c","name":"Pression d'air extérieur","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete ":" charge utile","x":980,"y":360,"wires":[]},{"id":"52536e82.1cb05","type":"change","z":" 5ebf035f.49459c ","name":"Vitesse du vent","rules":[{"t":"set","p":"payload","pt":"msg","to":"data .wind.speed ","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false, "x": 690,"y":400,"wires":[["93256619.92a1b8"]]},{"id":"b22dec0e.d53f3","type":"change","z":" 5ebf035f.49459c" ,"name":"Direction du vent","rules":[{"t":"set","p":"payload","pt" :"msg","to":"data.wind.deg","tot":"jsonata"}],"action":"","property":"","from":"","to ":"","reg":false,"x":690,"y":440,"wires":[["d755f34d.fdefa"]]},{"id":"93256619.92a1b8","type ":"debug","z":"5ebf035f.49459c","name":"Force du vent","active":true,"tosidebar":true,"console":false,"tostatus":false," complete ":"payload","x":970,"y":400,"wires":[]},{"id":"d755f34d.fdefa","type":"debug","z": " 5ebf035f.49459c","name":"Direction du vent","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x" :970 ,"y":440,"wires":[]},{"id":"bcdf0d32.be17a","type":"change","z":"5ebf035f.49459c","name": "wetterDescription ","rules":[{"t":"set","p":"payload","pt":"msg","to":"data.weather[0].description"," tot" :"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":720," y" :480,"wires":[["a9876b9d.5e5be8"]]},{"id":"a9876b9d.5e5be8","type":"debug","z":"5ebf035f.49459c"," name" :"weatherDescription","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload" ,"x":1000,"y":480,"wires":[]},{"id":"95d0a7a8.66b9e8","type":"change","z":"5ebf035f.49459c", "name":"outsideTempMin","rules":[{"t":"set","p":"payload","pt":"msg","to":"data.main.temp_min-273.15 ","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x": 700,"y":240,"wires":[["751ba810.fd1938"]]},{"id":"514584f.458327c","type":"change","z":"5ebf035f.49459c ","name":"outsideTempMax","rules":[{"t":"set","p":"payload","pt":"msg","to":"data.main.temp_max -273.15","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x ":700,"y":280,"wires":[["455148a8.ce5168"]]},{"id":"751ba810.fd1938","type":"debug","z":"5ebf035f .49459c","name":"outsideTempMin","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":980, "y":240,"wires":[]},{"id":"455148a8.ce5168","type":"debug","z":"5ebf035f.49459c","name":"outsideTempMax" ,"active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":980,"y":280,"wires":[ ]}]
Votre clé API OpenWeatherMap doit être renseignée dans les nœuds OpenWeatherMap pour que la récupération des données fonctionne.

Informations Complémentaires

https://openweathermap.org/


Amusez-vous avec le projet

J'espère que tout a fonctionné comme décrit. Si ce n'est pas le cas ou si vous avez des questions ou des suggestions, faites-le moi savoir dans les commentaires. Je les ajouterai à l'article si nécessaire.
Les idées de nouveaux projets sont toujours les bienvenues. 🙂

PS Beaucoup de ces projets - en particulier les projets matériels - coûtent beaucoup de temps et d'argent. Bien sûr, je le fais parce que j'aime ça, mais si vous pensez que c'est cool que je partage l'information avec vous, je serais heureux d'un petit don au fonds du café. 🙂

Achetez-moi un café sur ko-fi.com       

10 commentaires

  1. SALUT,
    Cool chose, merci pour vos tutos 🙂

    J'ai un problème.
    Lorsque j'affiche les températures sous forme de texte, j'obtiens trop de décimales derrière....
    Comment puis-je arrondir?

    Merci beaucoup!

    1. Salut Adrien,
      Merci. 🙂
      Je le fais toujours avec un nœud de fonction et du JavaScript. (Je suis sûr qu'il existe d'autres moyens potentiellement meilleurs).
      J'ai téléchargé un exemple pour vous ici: https://pastebin.com/UesZyP2N
      Vous devriez pouvoir importer le code facilement. J'espère que c'est explicite. Sinon, veuillez demander à nouveau. 🙂
      Cordialement
      Fabien

  2. salut tout le monde

    Le post date un peu, mais il m'a beaucoup aidé, merci !
    Je construis actuellement Rhaspy sur un OrangePi, la sortie vocale des données météo
    prendre forme grâce au node code :). Mon problème est que j'ai l'individu
    Je ne peux pas résumer les requêtes dans une sortie, je dois toujours utiliser du texte statique
    comme "Le temps actuel à..." ou "Le vent souffle en direction de..." et les transmettre ensuite au serveur en tant que msg.payload. Je serais très intéressé par un conseil, merci.

    Salutations Michel

  3. Oui exactement Fab, il était sur place avec la pointe, fonctionne très bien, merci beaucoup.
    J'aimerais maintenant arrondir le "data.main.temp-273.15", pour moi c'est le msg.payload2, j'ai repéré ton astuce plus haut "parseFloat(msg.payload).toFixed(2)".
    Pouvez-vous m'aider où aller ou y a-t-il un autre moyen?
    Salutations Michel

    1. Salut Michael,
      vous pouvez essentiellement le mettre dans le même nœud de fonction. Par exemple comme ceci :
      var value=parseFloat(msg.payload2).toFixed(2)
      msg.payload "Ici se trouve la phrase que tu veux éditer avec la valeur arrondie : "+String(value) ;

      J'espère que ça marche.
      Cordialement
      Fabien

Kommentar hinterlassen

Votre adresse e-mail ne sera pas publiée. Erforderliche Felder sind mit * markiert

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.