Cómo: Nodo rojo: obtener datos meteorológicos actuales de OpenWeatherMap

No siempre es posible medir directamente datos ambientales como la temperatura exterior. Aún así, a veces resulta útil. Por ejemplo, puede asegurarse de que los radiadores del interior solo se enciendan cuando hace frío afuera. Los calefactores que se encienden automáticamente en verano no sólo cuestan dinero sino también sudor. 🙂

Para obtener estos datos ambientales, necesitará su propia estación meteorológica, que alimentará al SmartHome con los datos correspondientes.
Sin embargo, puedes ahorrar este dinero. Gracias a servicios meteorológicos gratuitos de los que sólo tendrás que obtener estos datos. Uno de estos servicios meteorológicos es OpenWeatherMap.org.

En el siguiente artículo se explica cómo puede obtener datos meteorológicos de OpenWeatherMap.org y utilizarlos para su SmartHome.


Instrucciones de seguridad

Sé que las siguientes notas siempre son un poco molestas y parecen innecesarias. Desafortunadamente, muchas personas que sabían "mejor" han perdido ojos, dedos u otras cosas debido a un descuido o se lesionaron. La pérdida de datos es casi insignificante en comparación, pero incluso estos pueden ser realmente molestos. Por lo tanto, tómese cinco minutos para leer las instrucciones de seguridad. Porque incluso el proyecto más genial no vale la pena lesionarse u otros problemas.
https://www.nerdiy.de/sicherheitshinweise/

Enlaces afiliados / enlaces publicitarios

Los enlaces a las tiendas en línea enumerados aquí son los llamados enlaces de afiliados. Si hace clic en dicho enlace de afiliado y realiza una compra a través de este enlace, Nerdiy.de recibirá una comisión de la tienda en línea o el proveedor correspondiente. El precio no cambia para usted. Si realiza sus compras a través de estos enlaces, ayuda a Nerdiy.de a poder ofrecer otros proyectos útiles en el futuro. 🙂 


Requisitos

Artículos útiles:
Para que pueda aceptar esta configuración, por supuesto, NodeRed ya debería estar instalado.
En los siguientes artículos se describe cómo preparar una RaspberryPi y luego instalar NodeRed en ella.

Los siguientes artículos describen lo que se debe hacer para preparar la RaspberryPi:
RaspberryPi: ¡configuración para nerdiys!
RaspberryPi – ¡La primera configuración!
RaspberryPi: controle el RaspberryPi a través de SSH
NodeRed: instalación de NodeRed en RaspberryPi
NodeRed – Instalar nuevos nodos

NodeRed - código de nodo de importación y exportación

Herramienta requerida:
-No-

Material requerido:

En la siguiente lista encontrará todas las piezas que necesita para implementar este artículo.


Inicie sesión en la interfaz de configuración de NodeRed

Antes de que pueda editar su configuración de NodeRed, debe, si está activado, primero iniciar sesión en la interfaz de configuración de NodeRed.

Vista del cuadro de diálogo de inicio de sesión. Aquí debe ingresar los datos de inicio de sesión que especificó durante la configuración del inicio de sesión. Puedes encontrar información al respecto en el artículo NodeRed: configurar el inicio de sesión del usuario.

Registre la clave API de openWeatherMap

Para acceder a los datos meteorológicos actuales desde openWeahterMap.org, necesita una clave API. En este artículo se describe cómo puede registrarlo de forma gratuita: Registre la clave API de OpenWeatherMap.org
Posteriormente debe almacenarse en el nodo openWeatherMap. Así que recuérdalo bien. 🙂

Instalar el nodo openWeatherMap

Para poder recuperar los datos de OpenWeatherMap.Org, debe instalar el nodo “node-red-node-openweathermap”. Cómo instalar nodos está en el artículo. NodeRed – Instalar nuevos nodos explicado.

Importar código de nodo

La siguiente configuración debería ayudarle a comenzar. Para hacer esto, simplemente importe el siguiente código de nodo a su instalación de NodeRed. Cómo hacer esto está en el artículo. NodeRed - código de nodo de importación y exportación explicado.

Inmediatamente después hay que añadir a la configuración la clave API previamente registrada, como se describe a continuación.

Vista de la configuración en el editor.

Código de nodo:

[{"id":"85dcceee.5ca84","type":"change","z":"5ebf035f.49459c","name":"outsideTemperature","rules":[{"t":"set ","p":"carga útil","pt":"msg","to":"data.main.temp-273.15","tot":"jsonata"}],"action":""," propiedad":"","from":"","to":"","reg":false,"x":710,"y":200,"wires":[["6ab6bc17.16a144"] ]},{"id":"b36beeac.014ba","type":"json","z":"5ebf035f.49459c","name":"","property":"carga útil","acción" :"","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":"Obtener datos manualmente","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":"humedad exterior","rules":[{"t":"set", "p":"payload","pt":"msg","to":"data.main.humidity","tot":"jsonata"}],"action":"","property":" ","from":"","to":"","reg":false,"x":720,"y":320,"wires":[["b9f93625.5051b8"]]},{ "id":"7aa148d5.934fb8","type":"change","z":"5ebf035f.49459c","name":"presión del aire exterior","rules":[{"t":"set ", "p":"carga útil","pt":"msg","to":"data.main.pression","tot":"jsonata"}],"action":"","property" :" ","from":"","to":"","reg":false,"x":700,"y":360,"wires":[["fbf0a415.6ed9c8"]]} ,{ "id":"d5a8c5aa.82b3c8","type":"openweathermap","z":"5ebf035f.49459c","name":"","wtype":"actual","lon":" ", "lat":"","ciudad":"Bochum","país":"Alemania","idioma":"de","x":410,"y":260,"cables":[ [" b36beeac.014ba"]]},{"id":"67bf25e3.d1ce1c","type":"openweathermap in","z":"5ebf035f.49459c","name":"","wtype" :" actual","lon":"","lat":"","ciudad":"Bochum","país":"Alemania","idioma":"de","x":160," y" :200,"wires":[["b36beeac.014ba"]]},{"id":"8e550228.aae02","type":"debug","z":"5ebf035f.49459c"," name" :"Datos sin procesar","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","x":680,"y": 160," cables":[]},{"id":"6ab6bc17.16a144","type":"debug","z":"5ebf035f.49459c","name":"outsideTemperature","active" :true, "tosidebar":true,"console":false,"tostatus":false,"complete":"carga útil","x":990,"y":200,"wires":[]},{ "id" :"b9f93625.5051b8","type":"debug","z":"5ebf035f.49459c","name":"humedad exterior","active":true,"tosidebar":true,"consola ":false ,"tostatus":false,"complete":"carga útil","x":1000,"y":320,"wires":[]},{"id":"fbf0a415.6ed9c8"," type": "debug","z":"5ebf035f.49459c","name":"presión de aire exterior","active":true,"tosidebar":true,"console":false,"tostatus":false ,"completa": "carga útil","x":980,"y":360,"wires":[]},{"id":"52536e82.1cb05","type":"cambiar","z ":"5ebf035f. 49459c","name":"Fuerza del viento","rules":[{"t":"set","p":"carga útil","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":"cambiar","z ":"5ebf035f.49459c ","name":"Dirección del viento","rules":[{"t":"set","p":"payload","pt":"msg","to" :"data.wind.deg ","dead":"jsonata"}],"action":"","property":"","from":"","to":"","reg" :false,"x": 690,"y":440,"wires":[["d755f34d.fdefa"]]},{"id":"93256619.92a1b8","type":"debug","z ":"5ebf035f.49459c" ,"name":"Fuerza del viento","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"carga útil"," x":970,"y" :400,"wires":[]},{"id":"d755f34d.fdefa","type":"debug","z":"5ebf035f.49459c","name ":"Dirección del viento","active ":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":970,"y":440 ,"wires":[]}, {"id":"bcdf0d32.be17a","type":"change","z":"5ebf035f.49459c","name":"weatherDescription","reglas": [{"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":"carga útil" ,"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":" carga útil","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":"carga útil","x":980,"y":240,"wires":[]},{"id":" 455148a8.ce5168","type": "debug","z":"5ebf035f.49459c","name":"outsideTempMax","active":true,"tosidebar":true,"console":false," tostatus":false,"complete": "carga útil","x":980,"y":280,"wires":[]}]
Su clave API de OpenWeatherMap debe ingresarse en los nodos de OpenWeatherMap para que la recuperación de datos funcione.

Información adicional

https://openweathermap.org/


Diviértete con el proyecto.

Espero que todo te haya funcionado como se describe. Si no es así, o si tiene alguna pregunta o sugerencia, hágamelo saber en los comentarios. Si es necesario, lo añadiré al artículo.
Las ideas para nuevos proyectos siempre son bienvenidas. 🙂

PS Muchos de estos proyectos, especialmente los proyectos de hardware, cuestan mucho tiempo y dinero. Por supuesto que hago esto porque lo disfruto, pero si crees que es genial que comparta la información contigo, me encantaría hacer una pequeña donación al fondo del café. 🙂

Cómprame un café en ko-fi.com       

10s comentarios

  1. HOLA,
    Genial, gracias por tus tutoriales 🙂

    Tengo un problema.
    Cuando muestro las temperaturas como texto, obtengo demasiados decimales detrás...
    ¿Cómo puedo redondear?

    ¡Muchas gracias!

    1. Hola Adrián,
      Gracias. 🙂
      Siempre hago esto con un nodo de función y algo de JavaScript. (Estoy seguro de que hay otras formas potencialmente mejores).
      Te subí un ejemplo aquí: https://pastebin.com/UesZyP2N
      Debería poder importar el código fácilmente. Esperemos que se explique por sí mismo. De lo contrario, vuelva a preguntar. 🙂
      Atentamente
      Fabian

  2. hola a todos

    El post es un poco viejo, pero me ayudó mucho, ¡gracias!
    Actualmente estoy construyendo Rhasspy en un OrangePi, la salida de voz de los datos meteorológicos.
    toma forma gracias al código del nodo :). Mi problema es que tengo el individuo
    No puedo resumir consultas en una salida, todavía tengo que usar texto estático
    agregue algo como "El clima actual en..." o "El viento sopla desde la dirección..." y luego reenvíelo al servidor como msg.payload. Estaría muy abierto a un consejo, gracias.

    saludos miguel

  3. Sí, exactamente Fab, acertó con la punta, funciona muy bien, muchas gracias.
    Ahora me gustaría completar "data.main.temp-273.15", para mí ese es msg.payload2, vi su consejo arriba "parseFloat(msg.payload).toFixed(2)".
    ¿Me pueden ayudar a dónde ir o hay otra manera?
    saludos miguel

    1. Hola Michael,
      básicamente puedes poner eso en el mismo nodo de función. Por ejemplo como este:
      var value=parseFloat(msg.payload2).toFixed(2)
      msg.payload “Aquí está la oración que desea generar con el valor redondeado: “+Cadena(valor);

      Espero que funcione.
      Atentamente
      Fabian

Kommentar hinterlassen

Tu dirección de correo electrónico no será publicada. Erforderliche Felder sind mit * markiert

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.