Tabla de contenido:
- Suministros
- Paso 1: Protocolo REST JSON Http (s)
- Paso 2: Flujo
- Paso 3: Panel de control
- Paso 4: Importar flujo (proyecto, script, etc.)
- Paso 5: cómo funciona todo junto
- Paso 6: HTTP POST y GET
- Paso 7: Nodos de botones
- Paso 8: Nodo de función
- Paso 9: nodo JSON e inyectar nodo
- Paso 10: nodo de texto y nodo de depuración
- Paso 11: nodo de gráfico
- Paso 12: Nodo de calibre y nodos de enlace
- Paso 13: Gracias por leer mi Instructable
Video: Cómo trabajar con JSON en Node-RED: 13 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
Este instructivo le enseñará cómo trabajar con JSON en node-RED. Le mostraré cómo controlar las tomas de corriente en red con la transferencia de archivos json a través de http get and post. Y puede utilizar este conocimiento más adelante para controlar cualquier dispositivo que admita el protocolo JSON.
Con fines didácticos, utilizaré NETIO 4 Todas las tomas de corriente en red, pero no se preocupe, no es necesario que compre nada. NETIO tiene una increíble demostración en línea de 4All que puedes usar.
Suministros
NETIO 4Todos los tomacorrientes en red o 4All demostración en línea:
Nodo-RED
Paso 1: Protocolo REST JSON Http (s)
Esta parte es un poco técnica, pero tengan paciencia conmigo. Si no explico esta parte, entonces tendrías problemas para entender los valores en los archivos json que enviaremos en node-RED.
Acciones aplicables a cada salida (toma de corriente):
En todos los protocolos M2M, las tomas de corriente NETIO utilizan las mismas acciones que se pueden aplicar a salidas individuales. Por ejemplo, una acción Alternar o Cortar apagado se puede escribir en cualquier salida.
Sin embargo, la variable Acción solo se puede usar para escribir valores, no se puede usar para leer el estado actual de la salida.
Estas son acciones que puede aplicar a cada salida:
0 = Salida desconectada (Off)
1 = Salida activada (On)
2 = Salida desconectada brevemente (desconexión breve)
3 = Salida encendida por un tiempo corto (encendido corto)
4 = Salida conmutada de un estado a otro (alternar)
5 = Estado de salida sin cambios (sin cambios)
6 = ignorado
Ejemplo: archivo JSON para alternar el número de salida. 1:
{
"Salidas": [{
"ID": 1, "Acción": 4
}]
}
ID: este número indica qué salida usaremos
Acción: esta parte es la acción que realizará la salida (por ejemplo, 1 (Activar la salida))
Paso 2: Flujo
Y ahora la parte principal. Así es como se ve el entorno de node-RED.
Hemos importado el flujo de API de URL (el proyecto que ves. Más adelante te mostraré cómo importar flujos y este proyecto) Este proyecto consta de dos partes:
- Flujo NETIO AN30 (JSON REST API)
- Panel de control (interfaz gráfica mediante la cual puede operar su programa)
Paso 3: Panel de control
Así es como se ve el tablero en node-RED para este instructable. Puedes personalizarlo si quieres que se adapte a tu gusto.
El tablero de este proyecto se divide en 4 partes:
- Estado del dispositivo: muestra información del dispositivo, como el modelo, la dirección mac o la versión de firmware.
- (POST) Salida de control 1: contiene 5 botones que controlan la salida 1. Cada botón ejecuta una acción diferente
- (OBTENER) O1 - O4 Estados de salida: esta parte muestra el estado actual de cada salida de su dispositivo.
- Administración de dispositivos: en esta parte puede encontrar todo tipo de gráficos y medidores que muestran los valores medidos actuales del dispositivo NETIO 4Aall
Paso 4: Importar flujo (proyecto, script, etc.)
En el menú (esquina superior derecha) seleccione Importar y luego Portapapeles.
Luego, copie el texto a continuación en el campo indicado y haga clic en Importar.
Instalación de nodos faltantes
Los nodos se cargan en el flujo seleccionado. Es posible que se muestre un mensaje de error con una lista de nodos que se están importando pero que aún no están instalados en Node-RED. En este caso, es necesario instalar los nodos que faltan.
Si faltan nodos, seleccione Administrar paleta en el menú, haga clic en Instalar y busque e instale los nodos que faltan.
Importar texto:
[{"id": "56b9510c.98c6f", "type": "tab", "label": "NETIO AN30 (REST JSON)", "disabled": false, "info": ""}, {"id ":" 6a66b637.da1558 "," tipo ":" solicitud http "," z ":" 56b9510c.98c6f "," nombre ":" Solicitud HTTP (POST) "," método ":" POST "," ret ": "txt", "url": "https://netio-4All.netio-products.com:8080/netio.json", "tls": "", "x": 430, "y": 100, "cables":
Paso 5: cómo funciona todo junto
El flujo se divide básicamente en dos partes: POST y GET.
POST: Escribiendo a O1
- Los cinco botones creados en el Tablero en el flujo se muestran en el Tablero.
- Después de hacer clic en el botón Salida 1 = ENCENDIDO en el Tablero, la carga útil se establece en el archivo netio.json que especifica la salida y la acción (definida para cada uno de los botones).
- El bloque HTTP Request (POST) envía el archivo netio.json como una solicitud a una dirección IP.
- La respuesta del servidor (estado) se devuelve como salida.
- El bloque Msg.payload muestra el resultado de la solicitud HTTP (POST).
OBTENER: Lectura de O1 - O4
- El bloque de repetición de 1 segundo activa, con un período de un segundo, el bloque de solicitud HTTP (GET), que a su vez envía netio.json como una solicitud GET y devuelve un archivo JSON completo con el estado del socket tal como se recibió del servidor.
- El bloque JSON Parse transforma el archivo JSON del bloque HTTP Request (GET) en un objeto JSON para que sea posible manipular las propiedades en el archivo JSON.
- El bloque de funciones toma partes individuales del objeto JSON y las transforma en propiedades de un objeto msg para su uso posterior.
- El bloque Gráfico actual establece msg.payload en la propiedad msg. TotalCurrent del objeto msg, porque el bloque Gráfico actual (dispositivo) subsiguiente solo puede mostrar el valor msg.payload.
- Luego, siguen varios nodos de salida para mostrar las propiedades seleccionadas del objeto msg, como se tomaron del objeto JSON, en el Tablero.
El objeto msg y msg.payload
Para obtener una explicación simple y concisa, consulte aquí:
www.steves-internet-guide.com/node-red-mess…
Paso 6: HTTP POST y GET
Solicitud HTTP (POST)
Este nodo envía un archivo de comando netio.json como una solicitud HTTP (POST) para controlar el dispositivo NETIO 4All.
Solicitud HTTP (GET)
Este nodo envía una solicitud HTTP (GET) y devuelve la respuesta de estado.
La dirección precargada apunta a la demostración en línea de NETIO 4All, donde puede probar la conexión sin tener un dispositivo NETIO en su escritorio.
netio-4all.netio-products.com
Es posible configurar su propia dirección IP en estos nodos; sin embargo, la IP debe cambiarse en los nodos de solicitud HTTP, POST y GET.
Paso 7: Nodos de botones
Al hacer clic en el nodo del botón, se genera un mensaje que contiene un archivo netio.json (imagen de la derecha) que luego se envía a través del nodo de publicación http a la toma de corriente inteligente netio.
Paso 8: Nodo de función
Un nodo de función es un nodo especial que permite escribir una función de JavaScript personalizada.
En este instructable, la función selecciona valores del archivo JSON analizado (ahora un objeto JSON) y los asigna a las propiedades del objeto msg.
El código se divide en cuatro secciones:
- Asignar valores del objeto JSON a las propiedades individuales del objeto msg
-
Manejo de errores en caso de que la toma de corriente en red no admita mediciones globales
Si la toma de corriente en red no admite la medición de valores globales, Node-RED mostraría errores porque esta función no encontraría la propiedad respectiva, p. Ej. msg.payload. GlobalMeasure. Voltage, ya que no estaría presente en el objeto JSON. En este caso, la propiedad del objeto msg, p. Ej. msg. Voltage, se establece en 0 y el error se detecta y se maneja.
- Asignar valores de estado de salida
- Configuración de los colores de los valores de estado de salida mostrados de acuerdo con los estados de salida
Paso 9: nodo JSON e inyectar nodo
Nodo JSON
El nodo JSON analiza el archivo JSON y lo transforma en un objeto JSON.
Como respuesta del servidor a la solicitud GET, el nodo de solicitud HTTP devuelve un archivo JSON que contiene el estado actual del dispositivo NETIO 4x, pero es simplemente un archivo de texto, por lo que para trabajar con los datos, el archivo JSON necesita para ser analizado en un objeto JSON.
Inyectar nodo
Cada segundo, este nodo activa el nodo Solicitud HTTP que envía una solicitud GET.
Como resultado, los valores en el Tablero se actualizan con un período de un segundo
Paso 10: nodo de texto y nodo de depuración
Nodo de texto
Muestra un campo de texto en el panel. En este instructable, los nodos de texto muestran la corriente, voltaje, modelo, versión de firmware o versión JSON.
La Etiqueta se muestra en el Tablero y el Nombre es el nombre del nodo que se muestra en el flujo en Node-RED.
Nodo de depuración
Muestra el mensaje msg.payload.
Paso 11: nodo de gráfico
Este nodo traza el gráfico actual en el tablero de acuerdo con el valor de carga útil.
Este nodo solo puede trazar gráficos de acuerdo con el valor de carga útil.
Por esta razón, se utiliza un nodo de función para establecer msg.payload en el valor que debe mostrarse.
msg.payload = msg. TotalCurrent;
Paso 12: Nodo de calibre y nodos de enlace
Nodo de calibre
Este nodo agrega un widget de indicador al tablero.
En este instructable, cada medidor visualiza una propiedad del objeto de mensaje: voltaje [V], corriente [A], frecuencia [Hz] y el factor de potencia real (TPF) general.
Nodos de enlace
Los nodos de enlace y enlace funcionan como un túnel. Msg.payload llega al enlace en el nodo y sale del enlace de salida del nodo.
Lo usé para que el flujo sea un poco más claro y fácil de leer.
Paso 13: Gracias por leer mi Instructable
Espero que hayas disfrutado de mi instructable y espero que hayas aprendido algo nuevo.
Este instructivo es solo una versión abreviada de una guía diferente que hice
La guía original es más larga y está mucho más detallada y, en general, está mejor estructurada. Si no entendiste algo o crees que me perdí o no expliqué lo suficiente, definitivamente puedes encontrarlo allí.
Te prometo que no te decepcionará
Original:
También hay guías similares sobre varios usos denode-RED, por lo que si está interesado, no dude en explorar:
Trabajar con la API de URL REST en node-RED
www.netio-products.com/en/application-notes/an29-node-red-example-of-url-api-communication-with-netio-4x
Trabajando con REST XML en node-RED
www.netio-products.com/en/application-notes/an31-node-red-example-of-rest-xml-communication-with-netio-4x
Trabajando con TCP / Modbus en node-RED
Viene muy pronto:)
Recomendado:
Trabajar desde casa con el registrador de tiempo con una Raspberry Pi: 7 pasos
Grabador de tiempo de trabajo desde casa con una Raspberry Pi: durante el año pasado, tuve la oportunidad de trabajar desde casa. Para lo cual necesitaba hacer un seguimiento de las horas que trabajo. Comenzando por usar una hoja de cálculo de Excel e ingresando las horas de "entrada" y "salida" manualmente, pronto descubrí que esto era qu
Kcam- Webcam con micrófono y altavoz (usb) para trabajar desde casa: 5 pasos
Kcam- Webcam con micrófono y altavoz (usb) para trabajar desde casa: este es mi primer instructivo y este es el momento de bloqueo cuando está trabajando desde casa y este proyecto también es parte del desafío del trabajo desde casa para esto, por favor vote yo para poder ganar el concurso. Pero vota si te gustó
Trabajar con LCD (Arduino): 4 pasos
Trabajando con LCD (Arduino): Hola, Hoy voy a mostrar cómo trabajar con un LCD simple con la ayuda de Arduino Uno. Para esto, voy a usar TinkerCAD, que es bastante fácil de usar para probar proyectos simples como este. Si quieres saber cómo usar TinkerCAD, puedes marcar el
Trabajar con LED usando Arduino UNO en circuitos TinkerCAD: 7 pasos
Trabajar con LED usando Arduino UNO en circuitos TinkerCAD: este proyecto demuestra cómo trabajar con LED y Arduino en circuitos TinkerCAD
Cómo trabajar con Arduino y diferentes LED RGB: 3 pasos
Cómo trabajar con Arduino y diferentes LED RGB: Arduino es un pequeño dispositivo increíble. Pero una de las aplicaciones más utilizadas para este pequeño y poderoso dispositivo es a menudo hacer parpadear o hacer parpadear un LED. Este tutorial le mostrará tres formas de trabajar con LED RGB y Arduino. La primera forma es usar un simple