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 | Captura errores lanzados por nodos en la misma pestaña. | |
Comment | Un nodo que puede usar para agregar comentarios a sus flujos. | |
Complete | Dispara un flujo cuando otro nodo completa su manejo de un mensaje. | |
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 | 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 | 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 | 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 | Informe mensajes de estado de otros nodos en la misma pestaña. |
Funciones
Nodo | Nombre | Descripción |
---|---|---|
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 | Retrasa cada mensaje que pasa a través del nodo o limita la velocidad a la que pueden pasar. | |
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 | 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 | Asigna un valor numérico a un rango diferente. | |
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 | Enruta mensajes en función de sus valores de propiedad o posición de secuencia. | |
Template | Establece una propiedad basada en la plantilla proporcionada. | |
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 |
---|---|---|
http in | Crea un punto final HTTP para crear servicios web. | |
http request | Envía solicitudes HTTP y devuelve la respuesta. | |
httpresponse | Envía respuestas a solicitudes recibidas de un nodo de entrada HTTP. | |
mqtt in | Se conecta a un agente MQTT y se suscribe a mensajes del tema especificado. | |
mqtt out | Se conecta a un agente MQTT y publica mensajes. | |
tcp in | Proporciona una opción de entradas TCP. Puede conectarse a un puerto TCP remoto o aceptar conexiones entrantes. | |
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. | |
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. | |
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. | |
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. | |
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. | |
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 | Crea secuencias de mensajes basadas en varias reglas. | |
join | Une secuencias de mensajes en un solo mensaje. | |
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 | Divide un mensaje en una secuencia de mensajes. |