Cómo utilizar una API RESTful en Node-RED para automatizar tu hogar

Si alguna vez has subido en la jerarquía de liderazgo, es posible que en algún momento te hayas dado cuenta de que estabas hablando sobre una tecnología que entendías conceptualmente, pero que nunca habías utilizado de manera práctica. Las API RESTful (interfaces de programación de aplicaciones de transferencia de estado representacional) son una de esas tecnologías para mí.

Índice de Contenido
  1. Una breve introducción a las API RESTful
  2. Cómo utilizar una API
  3. Cómo conectar cosas en Node-RED

Una breve introducción a las API RESTful

El concepto es bastante simple. Una aplicación puede "llamar" a una dirección HTTP especial para solicitar o actualizar información y recibir una respuesta a esa solicitud. El poder de las API RESTful radica en que ocultan o abstraen al solicitante de saber cualquier cosa sobre la tecnología utilizada para proporcionar esa respuesta. Si invoco una API RESTful que suma dos números, no tengo que preocuparme de si esa aplicación se está ejecutando en una supercomputadora personalizada, un servidor UNIX o incluso si son una docena de personas mirando una pantalla y respondiendo rápidamente. De manera similar, la API en sí no necesita tener en cuenta ninguna de las consideraciones técnicas de la aplicación que la invoca. El desarrollador de la API proporciona un conjunto de parámetros y resultados esperados, y no importa si mi aplicación está en Python, C++ o utiliza una herramienta de prueba como Postman. Siempre y cuando siga la documentación y proporcione los parámetros adecuados, recibiré una respuesta de la API.

Como puedes imaginar, tener acceso a millones de API, muchas de ellas accesibles de forma gratuita a través de Internet, permite a las personas crear nuevas herramientas y aplicaciones de manera rápida y sencilla utilizando estas API preexistentes.

Cómo utilizar una API

Para este proyecto tecnológico, utilizaremos Node-RED, ya que proporciona una excelente interfaz visual, y crearemos un flujo simple en Node-RED que determina si necesitamos una chaqueta para el día. Podrías "conectar" fácilmente este flujo a una bombilla multicolor para indicar si necesitas tu chaqueta, a un asistente de voz o a una herramienta como Pushover para enviar una notificación a tu teléfono todas las mañanas. Si no has seguido el proyecto de Home Lab o no tienes acceso a Node-RED, hay docenas de herramientas que te permiten interactuar con API RESTful, desde el navegador web Google Chrome hasta la mencionada herramienta Postman.

El primer paso para utilizar una API RESTful es encontrar la que deseas utilizar. Una búsqueda en Google suele ser un buen punto de partida, y una búsqueda rápida de "API de clima gratuita" me llevó a Open Weather Map. La mayoría de las API públicas requieren una clave de acceso. Estas claves rastrean tu uso de la API y, después de un número determinado de usos o "hits" de la API, es posible que se requiera un pago. Los umbrales de pago suelen ser lo suficientemente altos como para que puedas experimentar y utilizar la mayoría de las API públicas para proyectos personales sin incurrir en ningún costo. Una vez que creas una cuenta y verificas tu dirección de correo electrónico, recibirás una clave de API en tu bandeja de entrada.

La mayoría de las API especifican una dirección de punto final, que es la URL que utilizas para invocar la API, y una lista de los parámetros requeridos y los datos que se devuelven. Utilizaremos el punto final de Clima Actual de Open Weather Map, que se encuentra en el sitio.

La importancia de los derechos humanos en las redes sociales

Cómo conectar cosas en Node-RED

Node-RED simplifica la configuración de las aplicaciones basadas en API y es una excelente manera de incorporar APIs en tus rutinas de automatización del hogar o un "block de dibujo" para probar la lógica que podrías querer incorporar en cualquier cosa, desde una nueva habilidad de Amazon Alexa hasta una aplicación móvil. En este caso, comenzaremos colocando un nodo "http request" en un nuevo flujo. Este nodo te permite llamar a cualquier API RESTful y proporcionará los resultados para su posterior procesamiento.

Haciendo doble clic en el nodo, verás sus parámetros. La selección de Método te permite elegir cómo interactuarás con la API, muchas de las cuales ofrecen funcionalidad CRUD (crear, leer, actualizar, eliminar). Desafortunadamente, no podemos crear ni eliminar el clima actual, así que nos quedaremos con el método GET.

La URL es la dirección de la API y los parámetros que deseamos proporcionar. Según la documentación de Open Weather Map, la URL se ve así:

api.openweathermap.org/data/2.5/weather?q={nombre de la ciudad}&appid={clave de API}

Debemos reemplazar el nombre de la ciudad y la clave de API con parámetros que indiquen a la API qué ciudad queremos obtener para el clima y nuestra clave de API. En mi caso, para encontrar el clima de Charlotte, la URL se ve así (utilizando una clave ficticia):

api.openweathermap.org/data/2.5/weather?q=Charlotte, NC, US&appid=123456

Colocaré esto en el campo "URL" de mi nodo. El siguiente elemento clave es el campo de retorno, que especifica cómo Node-RED procesará la respuesta de la API. En general, la opción "un objeto JSON analizado" es la elección correcta. JSON (notación de objetos JavaScript) devolverá los datos de una API en un formato estructurado que te permite manipular los datos y enviarlos a otros nodos. Dale un nombre al nodo y haz clic en "Hecho" para cerrar los parámetros. En mi caso, el nodo se ve como Figura A.

Figura A

¡Impulsando el resurgimiento de 2021! Descubre las startups tecnológicas y scaleups que están contratando en el Reino Unido

Tu nodo de solicitud HTTP probablemente se vea un poco solitario, y si eres nuevo en Node-RED, es posible que te preguntes cómo activarlo. Observarás que los nodos tienen un conector en el lado izquierdo (entrada) y/o derecho (salida), y nuestro nodo de solicitud HTTP tiene ambos. Esto significa que necesita un disparador en el lado izquierdo para activar el nodo, que luego enviará un resultado por el lado derecho del nodo. Al igual que los diagramas de flujo requieren conexiones para representar cómo fluyen los datos, Node-RED utiliza conectores para dirigir los datos a través del flujo.

Para realizar pruebas, el disparador más sencillo es un nodo Inject, que envía una marca de tiempo cuando presionas el cuadrado en el lado izquierdo. La salida más sencilla es un nodo Debug, que muestra los datos que recibe. Si agrego estos dos nodos y los conecto entre sí mediante la conexión de los conectores, ahora tengo un flujo simple y funcional en Node-RED, como se muestra en Figura B:

Figura B

Cómo utilizar una API RESTful en Node-RED para automatizar tu hogar - CXO | Imagen 1 Newsmatic

Con estos cambios en su lugar, haz clic en el botón "Deploy" en la parte superior derecha de la ventana de Node-RED. Esto guarda tus cambios en el servidor y te permite probar tu flujo.

Zoom es la plataforma de videollamadas más popular del mundo

Para probar el flujo, puedo abrir la pestaña Debug en el menú de la derecha haciendo clic en el pequeño icono de Bug. Con el panel de depuración abierto, al hacer clic en el botón del nodo de marca de tiempo se obtendrá una salida de nuestra API, que se muestra como un objeto. Para aquellos que no están familiarizados, un objeto es una colección de partes relacionadas que están organizadas por la persona que diseñó el objeto. Por ejemplo, podría tener un objeto Bicicleta que contenga Ruedas y Cadena. Cada uno de estos objetos se podría desglosar aún más. Por ejemplo, nuestro objeto Rueda podría tener objetos Radios, Neumáticos y Tubos. Este es un elemento fundamental de las aplicaciones modernas, y Node-RED nos permite ver y acceder fácilmente a estos objetos.

En Node-RED, los nodos generalmente crean un objeto de mensaje y almacenan sus datos en un payload, de ahí que el nodo de depuración muestre "msg.payload" como su descripción. En este caso, msg.payload contiene un objeto de clima basado en la documentación de la API de Open Weather, y al hacer clic en el icono de Expansión, podemos ver todos los datos proporcionados por Open Weather (Figura C):

Figura C

Cómo utilizar una API RESTful en Node-RED para automatizar tu hogar - CXO | Imagen 2 Newsmatic

Espero que navegar por las diferentes partes del objeto comience a demostrar el poder de las APIs: con un par de minutos de búsqueda y una URL HTTP relativamente sencilla, pudimos acceder a un conjunto amplio de datos sobre el clima actual en una ubicación de nuestra elección. Existencia APIs para todo, desde datos demográficos y populacionales proporcionados por gobiernos locales y nacionales hasta seguimiento de paquetes, lo que permite a los desarrolladores construir rápidamente nuevas funcionalidades conectando diferentes APIs. En la próxima entrega, utilizaremos los datos de la API para tomar una decisión.

El trabajo remoto: un análisis de sus impactos y cómo mejorar la experiencia

En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre CXO, allí encontraras muchos artículos similares a Cómo utilizar una API RESTful en Node-RED para automatizar tu hogar , tenemos lo ultimo en tecnología 2023.

Artículos Relacionados

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.