Nodos básicos en node red


En este post encontrara los nodos básicos que usaremos para programar con esta plataforma.

oscar Escrito por oscar 12 January 2019 8819 0

Acerca del proyecto

En un post anterior hablamos de node red y explicamos como instalar este software usando la docker, en este post vamos a ver los nodos básicos con los que trabajaremos para crear los proyectos de iot a la par con el esp8266. Antes de iniciar solo vamos a mencionar los bloques y su descripción, en otros post daremos detalle de cada uno de ellos con ejemplos que podamos hacer.

Conocimiento previo

Para realizar este proyecto se requiere conocimiento previo de los siguientes temas, si aun no has trabajado con lo que se menciona en la siguiente tabla, allí están los links a los post para que puedas dar un repaso adicional o puedas recordar el conocimiento necesario para poder realizar este proyecto.

Proyecto Descripción
Qué es node red? Node-RED es una herramienta de programación visual donde muestra visualmente las relaciones y funciones al usuario si tener que aprender un nuevo lenguaje de programación.
Docker comandos En este post encontrara una recopilación de los comandos basicos que usamos con docker, aunque al instalar noder red docker no requerimos todos los comandos si es buenos tenerlos en cuenta.
Instalar node red en docker Para trabajar con node red tenemos varias formas de instalarlo, la que me pareció mas fácil fue con docker y en este post explicamos paso a paso de como usarlo.

Funciones básicas

Comunes

Nodo Nombre Descripción
catch Catch Captura errores lanzados por nodos en la misma pestaña.
comment Comment Un nodo que puede usar para agregar comentarios a sus flujos.
complete Complete Dispara un flujo cuando otro nodo completa su manejo de un mensaje.
debug Debug Muestra las propiedades del mensaje seleccionado en la pestaña de la barra lateral de depuración y, opcionalmente, en el registro de tiempo de ejecución. De forma predeterminada, muestra msg.payload, pero se puede configurar para mostrar cualquier propiedad, el mensaje completo o el resultado de una expresión JSONata.
inject Inject Inyecta un mensaje en un flujo de forma manual o a intervalos regulares. La carga útil del mensaje puede ser de varios tipos, incluidas cadenas, objetos JavaScript o la hora actual.
linkin Linkin El nodo se puede conectar a cualquier nodo de enlace que exista en cualquier pestaña. Una vez conectados, se comportan como si estuvieran conectados juntos. Los cables entre los nodos de enlace solo se muestran cuando se selecciona un nodo de enlace. Si hay cables a otras pestañas, se muestra un nodo virtual en el que se puede hacer clic para saltar a la pestaña correspondiente.
linkout Linkout El nodo se puede conectar a cualquier enlace en el nodo que exista en cualquier pestaña. Una vez conectados, se comportan como si estuvieran conectados juntos. Los cables entre los nodos de enlace solo se muestran cuando se selecciona un nodo de enlace. Si hay cables a otras pestañas, se muestra un nodo virtual en el que se puede hacer clic para saltar a la pestaña correspondiente.
status Status Informe mensajes de estado de otros nodos en la misma pestaña.

Funciones

Nodo Nombre Descripción
change Change Establecer, cambiar, eliminar o mover propiedades de un mensaje, contexto de flujo o contexto global. El nodo puede especificar múltiples reglas que se aplicarán en el orden en que se definen.
delay Delay Retrasa cada mensaje que pasa a través del nodo o limita la velocidad a la que pueden pasar.
exec Exec Ejecuta un comando del sistema y devuelve su salida. El nodo se puede configurar para esperar hasta que se complete el comando o para enviar su salida a medida que el comando lo genera. El comando que se ejecuta puede configurarse en el nodo o proporcionarse mediante el mensaje recibido.
function Function Un bloque de funciones de JavaScript para ejecutarse contra los mensajes que recibe el nodo. Los mensajes se pasan como un objeto JavaScript llamado msg. Por convención, tendrá una propiedad msg.payload que contiene el cuerpo del mensaje. Se espera que la función devuelva un objeto de mensaje (o varios objetos de mensaje), pero puede elegir no devolver nada para detener un flujo.
range Range Asigna un valor numérico a un rango diferente.
rbe rbe Informe por nodo de excepción: solo transfiere datos si la carga útil ha cambiado. También puede bloquear hasta que el valor cambie en una cantidad específica: modos de banda muerta.
switch Switch Enruta mensajes en función de sus valores de propiedad o posición de secuencia.
template Template Establece una propiedad basada en la plantilla proporcionada.
trigger Trigger Cuando se activa, puede enviar un mensaje y, opcionalmente, un segundo mensaje, a menos que se extienda o restablezca.

Network

Nodo Nombre Descripción
httpin http in Crea un punto final HTTP para crear servicios web.
httprequest http request Envía solicitudes HTTP y devuelve la respuesta.
httpresponse httpresponse Envía respuestas a solicitudes recibidas de un nodo de entrada HTTP.
mqttin mqtt in Se conecta a un agente MQTT y se suscribe a mensajes del tema especificado.
mqttout mqtt out Se conecta a un agente MQTT y publica mensajes.
tcpin tcp in Proporciona una opción de entradas TCP. Puede conectarse a un puerto TCP remoto o aceptar conexiones entrantes.
tcpout tcp out Proporciona una opción de salidas TCP. Puede conectarse a un puerto TCP remoto, aceptar conexiones entrantes o responder a mensajes recibidos de un nodo TCP In. Solo se envía el msg.payload. Si msg.payload es una cadena que contiene una codificación Base64 de datos binarios, la opción de decodificación Base64 hará que se vuelva a convertir en binario antes de enviarse. Si msg._session no está presente, la carga útil se envía a todos los clientes conectados.
tcprequest tcp request Un simple nodo de solicitud TCP: envía msg.payload a un puerto tcp del servidor y espera una respuesta. Se conecta, envía la "solicitud" y lee la "respuesta". Puede contar una cantidad de caracteres devueltos en un búfer fijo, hacer coincidir un carácter específico antes de regresar, esperar un tiempo de espera fijo desde la primera respuesta y luego regresar, sentarse y esperar datos, o enviar y cerrar la conexión inmediatamente, sin esperar un respuesta. La respuesta se generará en msg.payload como un búfer, por lo que es posible que desee .toString(). Si deja en blanco el host tcp o el puerto, deben configurarse utilizando las propiedades msg.host y msg.port.
udpin udp in Un nodo de entrada UDP, que produce un msg.payload que contiene un Buffer, una cadena o una cadena codificada en base64. Soporta multicast. También proporciona msg.ip y msg.port establecidos en la dirección IP y el puerto desde el que se recibió el mensaje.
udpout udp out Este nodo envía msg.payload al host y puerto UDP designados. Soporta multicast. También puede usar msg.ip y msg.port para establecer los valores de destino, pero los valores configurados estáticamente tienen prioridad. Si selecciona la transmisión, establezca la dirección en la dirección IP de transmisión local o pruebe 255.255.255.255, que es la dirección de transmisión global.
websocketin websocket in Nodo de entrada de WebSocket. Por defecto, los datos recibidos de WebSocket estarán en msg.payload. El socket se puede configurar para esperar una cadena JSON formada correctamente, en cuyo caso analizará el JSON y enviará el objeto resultante como el mensaje completo.
websocketout websocket out WebSocket fuera del nodo. Por defecto, msg.payload se enviará a través de WebSocket. El socket se puede configurar para codificar todo el objeto msg como una cadena JSON y enviarlo a través del WebSocket. Si el mensaje que llega a este nodo comenzó en un nodo WebSocket In, el mensaje se enviará de vuelta al cliente que activó el flujo. De lo contrario, el mensaje se transmitirá a todos los clientes conectados. Si desea difundir un mensaje que comenzó en un nodo WebSocket In, debe eliminar la propiedad msg._session dentro del flujo.

Secuencia

Nodo Nombre Descripción
batch batch Crea secuencias de mensajes basadas en varias reglas.
join join Une secuencias de mensajes en un solo mensaje.
sort sort Una función que ordena la propiedad del mensaje o una secuencia de mensajes. Cuando se configura para ordenar la propiedad del mensaje, el nodo ordena los datos de la matriz a los que apunta la propiedad del mensaje especificada. Cuando se configura para ordenar una secuencia de mensajes, reordenará los mensajes.
split split Divide un mensaje en una secuencia de mensajes.

Comentario

Debe aceptar antes de enviar