Saltar navegación

IoT Avanzado (Sesión 1)

Ajuste de pantalla

El ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:

Subido el 14 de abril de 2023 por Tic ctif madrideste

5 visualizaciones

Descargar la transcripción

Vale, más cosillas que tenía para contaros. Esto, bueno casi todos lo sabéis ya. El micrófono, 00:00:00
si lo podéis tener muteado, pues genial. A no ser que tengáis un entorno especialmente 00:00:11
tranquilo que sepáis que no va a haber niños por ahí interrumpiendo o televisiones o gente 00:00:15
que entra en el departamento o lo que sea. Vale, más cosillas. Sí, también repetir, 00:00:20
esta vez no ha estado, no puede estar para la presentación Elías, que es el contacto 00:00:29
que tenemos dentro de la Real Academia de Ingeniería. Bueno, digamos que comento desde 00:00:35
su parte, pues que la Real Academia de Ingeniería es la que patrocina y esponsoriza este curso 00:00:44
y también Ferrovial, pues aporta los fondos para que se pueda realizar. Vale, y nada, 00:00:50
pues que disfrutéis el curso nuevamente. Y nada, y poquillo más. Yo creo que no tenía 00:00:58
nada más así preliminar que contar. Sí, un último apunte. Las sesiones se van a grabar, 00:01:06
vale, lo digo para que, como nos obligan a decirlo cuando hay una grabación, que sepáis 00:01:12
que se están grabando. ¿Estás grabando tú? Espera, voy a poner el OBS de hecho. Le he dado 00:01:17
ya a iniciar la grabación, como me has hecho moderador, lo he podido hacer. Pero es cuestión 00:01:24
de que se sepa. También indico que, como siempre, aunque las grabaciones están hechas, 00:01:32
no están disponibles para verlas, a no ser que hayáis perdido clase o las necesitéis 00:01:44
para algo concreto, las pidáis, es proceso, entonces se os habilitan. Es decir, no se van 00:01:50
a poner en un repositorio donde las podáis acceder por defecto, a no ser que las solicitéis por 00:01:55
alguna razón. Esto también es normal de este tipo de cursos, ya lo sabréis de otros. 00:02:00
Bueno, me tenéis que estar viendo ahora de comparte de pantalla, me tenéis que estar viendo en pantalla completa. 00:02:08
Y ahora tenéis que ver un poco mi pantalla. 00:02:14
Los que hicierais el curso conmigo anteriormente sabéis que en la última sesión o en las últimas sesiones, 00:02:19
en función de que edición hicierais, estuvimos jugando con Node-RED y estuvimos haciéndolo con unas 00:02:26
instancias, con un servidor de Node-RED que habíamos preparado nosotros para que pudiéramos 00:02:32
entrar directos a el grano. En este caso, sin embargo, sí que considero muy importante que cada 00:02:37
uno de los participantes tenga instalado Node-RED en su propio ordenador. De esa forma, por un lado, 00:02:43
aprende cómo se hace y está, digamos, capacitado para poder hacerlo en cualquier ordenador que 00:02:48
tenga por ello su alcance, incluso en el aula. Y por otro lado, no depende de nadie que pueda 00:02:53
llegar a tirar el servidor abajo o que nos pueda pasar cualquier cosa. Entonces vamos a empezar el 00:03:00
curso con la instalación de Node-RED cada uno en su ordenador. Sí que quería preguntaros antes de 00:03:06
hacer eso, en realidad para Mac, ¿cuántos estáis con Mac? Lo digo porque la instalación debería ser 00:03:13
sencilla pero no he podido comprobarlo. ¿Podéis avanzar a mano los que estéis con un Mac? 00:03:20
Vale, estupendo. Ah, vale, sí. Ángel. Vale, pues ahora te digo cómo se hace porque eso no lo he puesto en la 00:03:25
documentación porque no tenía forma de contrastarlo. Pero debería ser muy sencillo. Ahora te lo cuento. 00:03:39
Para los demás, ahora os digo dónde se puede descargar la documentación. De eso vamos a verlo. 00:03:45
Ahora estoy haciendo... 00:03:53
Si entráis en el... 00:04:08
Perdóname un segundo. ¿Cuánto tienes por ahí en el enlace? ¿Del aula virtual? Sí, te lo paso ahora mismo. 00:04:10
Un segundito. Aquí está. Te lo paso por el chat. Vale. 00:04:32
Ahí lo tienes. 00:04:41
Vale, sí, para los que preguntáis, para Ángel, para Juan Luis, sí, se puede utilizar en Mac, por lo menos lo que he visto. 00:04:48
Lo que pasa es que no he podido validarlo. No he podido comprobar que efectivamente funciona, pero no debería haber ningún problema. 00:04:58
Bueno, os cuento dónde he subido la documentación. Si entramos en la página del aula virtual, a la izquierda, 00:05:05
donde pone materiales y recursos, tenemos un enlace que pone temario. 00:05:13
Y aquí tenemos los diferentes temas que vamos a ir siguiendo. No me da tiempo a terminar de maquetar todos. 00:05:22
Solo están disponibles los que vamos a ver la sesión de hoy y creo que la primera sesión de la semana que viene. 00:05:30
Por ahora nos interesa el anexo 1, que es el que vamos a ver ahora mismo, que es el de instalación. 00:05:39
Si descargamos ese PDF nos encontraremos con esto. 00:05:47
Entonces la idea es que, y esto sí que es importante, que vayamos siguiéndolo todos a la vez. 00:05:52
Y que si hay alguna duda, pues que me vayáis diciendo para que os pueda echar una mano y terminar de instalarlo. 00:05:58
Podéis decirme, vamos a empezar con lo que sea más mayoritario. 00:06:04
¿Podéis levantar la mano los que estéis con Windows, por favor? 00:06:07
La mano del entorno, porque no todo el mundo tiene la cámara activada. 00:06:12
Vale, pues Windows parece ser que es mayoritario. 00:06:23
Vamos a empezar con la instalación en Windows. 00:06:26
La instalación en Windows es muy sencilla, en Linux es un poquito más complicada. 00:06:31
Y entonces tenéis que iros, os voy a ir pasando los enlaces, si queréis. 00:06:38
Si tenéis el documento, es cuestión de ir haciendo clic en los diferentes enlaces. 00:06:41
Nos vamos aquí, a nodejs.org. 00:06:47
Nos tiene que cargar esta página. 00:06:53
En vuestro caso, en lugar de aparecer Descargar para Linux, os tiene que aparecer Descargar para Windows o algo así. 00:06:58
Y es importante que elijamos la opción de la izquierda, la que pone LTS. 00:07:05
La 18.15.0 LTS. 00:07:10
Vale, pues le hacemos clic, se va a descargar un instalador. 00:07:13
De ese instalador, como aparece en el manual, básicamente lo único que tenemos que hacer es siguiente, siguiente, siguiente. 00:07:18
Creo que en un momento dado nos pregunta que si queríamos instalar un cierto software adicional. 00:07:30
Le decimos que no, se ha calificado. 00:07:35
Y cuando haya terminado, me avisáis. 00:07:37
Supongo que nos debería tardar... 00:07:39
¿Podéis dejar la mano ahora, por favor? 00:07:41
Ahora voy con los de Linux. 00:07:43
Ah, por cierto, los de Mac podéis hacer lo mismo. 00:07:47
¿Le damos a que instalen las herramientas necesarias? 00:07:55
No, no, no, no. 00:07:58
No, no hace falta. Viene por defecto desmarcado, ¿verdad? 00:08:00
Sí. 00:08:02
Sí, pues lo dejamos desmarcado. 00:08:03
Vale, los que tengáis Mac, es lo mismo. 00:08:07
Entráis también en esta página, nodejs.org, le dais a la izquierda, LTS, y seguid esas instrucciones de instalación. 00:08:09
Según lo vayáis teniendo, por favor, levantad la mano para que pueda enterarme yo más o menos de cuál es el avance. 00:08:19
Los que tenéis Linux, si queréis, para no estar perdiendo tiempo mirando a los demás, 00:08:25
en el manual aparecen los comandos que tenéis que ir tecleando en el terminal. 00:08:30
En el terminal podéis ver los comandos que tenéis que ir tecleando. 00:08:35
En el terminal podéis ver los comandos que tenéis que ir tecleando. 00:08:38
En el terminal podéis ver los comandos que tenéis que ir tecleando. 00:08:41
Además, en el manual aparecen los comandos que tenéis que ir tecleando en la shell. 00:08:44
Si sabéis cómo hacerlo, pues id haciéndolo. 00:08:50
Si no os queda claro o tenéis que dar un poco de reparo, pues no esperáis y ahora os lo cuento. 00:08:52
Jorge. 00:09:03
Sí. 00:09:04
Bueno, yo me lo acabo de instalar siguiendo las instrucciones de la página de NodeRed. 00:09:06
Tienen aquí un enlace. 00:09:11
Entonces, no sé si es lo mismo o es algo parecido. 00:09:12
Debería ser idéntico, sí. 00:09:15
Vale. 00:09:18
Si no, de todas formas, cuando lancemos el... 00:09:23
¿Has llegado a lanzar el NodeRed y has desconectado la página web? 00:09:26
Sí, sí, sí. 00:09:30
Vale, y se muestra algo parecido a esto, ¿verdad? 00:09:32
Sí. 00:09:37
Vale, pues entonces está bien. 00:09:38
Vale, ¿qué tal? ¿Se ha terminado de instalar el NodeJS? 00:09:45
¿Alguien de los que esté con Windows no ha terminado todavía? 00:09:53
Vale. 00:10:02
El mío aún me queda un poquito. 00:10:03
Ah, vale, vale. Pues vamos a esperar. 00:10:05
Creo que alguien por el chat también ha comentado algo. 00:10:11
Vale. 00:10:16
Yo. 00:10:18
Ángel, de todas formas, no te debería hacer falta cambiar de ordenador con el Mac. 00:10:36
Siguiendo las mismas instrucciones que en Windows debería funcionar. 00:10:40
Lo digo por si prefieres seguir con el que estabas utilizando. 00:10:43
O sea, con Mac no es que no funcione, sino que no he podido desactivarlo. 00:10:57
O sea, con Mac no es que no funcione, sino que no he podido validar la instalación. 00:11:02
Por eso no lo he dejado bien escrito, por escrito. 00:11:07
Ah, vale. 00:11:14
Bueno, Fernando, ¿por ahí terminaste? ¿Terminó el proceso? 00:11:21
Terminó, pero cuando me he cargado el PROM de NodeJS, pero no me hace nada. 00:11:26
Me apantea en negro. 00:11:31
Ah, vale, sí. No hay que hacer... 00:11:33
O sea, has hecho click, una vez instalado NodeJS has hecho click en el programa, por así decirlo, ¿no? 00:11:35
Sí. 00:11:42
Vale, no hay que hacer eso, ¿vale? 00:11:43
Ahora, lo que hacemos es, en Windows, le damos a... 00:11:45
Abrimos una aplicación que se llama CMD. 00:11:49
Esto lo podemos hacer con Control-R... 00:11:52
Perdona, Windows-R. 00:11:54
La tecla de Windows y la R. 00:11:56
Y en una ventanita pequeña que nos aparece escribimos CMD. 00:11:58
Y nos tiene que aparecer la ventana de MS-DOS de hace 30 años, 40 años. 00:12:02
¿Vale? ¿La tenemos? 00:12:08
Sí. 00:12:10
Vale. Pues ahí, en esa ventana, es donde tenemos que ejecutar este primer comando. 00:12:11
Que lo que nos dice es una especie de validación de que todo está bien instalado. 00:12:19
Es Node-version, que lo podemos hacer por separado, o todo junto. 00:12:23
Node-version, ampersand, ampersand. 00:12:28
Espacio, npm-version. 00:12:31
Por cierto, eso es una rata. 00:12:33
Aquí me la ha liado el OpenOffice. 00:12:35
Esto es-version también. 00:12:39
Vale. Y el resultado que tiene que aparecer tiene que ser algo parecido o idéntico a lo que veis aquí en esta captura. 00:12:41
Que la versión de Node es la 18.15.0 y que la versión de npm es la 9.5.0. 00:12:54
Eso pone exactamente. 00:13:00
Estupendo. 00:13:01
Pues una vez que tengamos eso, significa que ya podemos instalar Node-RED. 00:13:02
Node-RED, como está basada en Node, pues digamos que en Node hay un montón de programas escritos en Node. 00:13:08
Y hay un instalador que se llama npm, que es el que permite instalar, sin tener que hacer nada especial, diferentes paquetes. 00:13:15
En este caso, si hacemos npm install-g- esto también me lo ha puesto mal. 00:13:23
Esto es un guión-guión. 00:13:29
Donde pone un safe es guión-guión un save. 00:13:31
No sé por qué en LibreOffice los dobles guiones se transforman en un guión largo. 00:13:35
Yo he puesto uno solo y me lo ha instalado bien. 00:13:41
Bueno, no sé si ha ido bien. A mí me ha puesto todo bien. 00:13:49
Vale. Bueno, ahora veremos a la hora de ejecutarlo. 00:13:52
A ver si te da algún problema. 00:13:55
No, no me ha dado ninguno. Vale. 00:13:58
Jorge, a mí sí que me da un problema. 00:14:03
Me pone... la Node-RED versión no se reconoce como un comando interno o externo. 00:14:05
Npm... 00:14:11
A ver, espera, ¿podés compartir tu pantalla, Javier? 00:14:17
Sí, a ver, vamos a ver cómo lo podemos hacer. 00:14:21
Esto... ¿dónde está para compartir? 00:14:25
Sí, es a la derecha del micro. 00:14:29
Sí, me tendréis que dar, me parece, algún tipo de permiso, me parece. 00:14:34
Solo los organizadores y moderadores de la reunión pueden compartir contenido. 00:14:43
Vale, a ver si te queda algo... 00:14:47
Vale, me la graba. 00:14:51
Vale, ahí está. 00:14:54
Vale, ahora tendrás que elegir la ventana o la pantalla completa. 00:15:08
Vale. 00:15:17
A mí me pasaba lo mismo que está diciendo el compañero, pero ahora lo he vuelto a intentar y ya sí que me ha funcionado. 00:15:24
A lo mejor es solo cuestión de tiempo. 00:15:35
Qué raro. O sea, si es el comando de npm-version... 00:15:38
Ah, porque faltan los espacios. 00:15:43
Ah, bien, perdón. 00:15:46
Node-espacio-version... 00:15:47
Vale. 00:15:50
Si le das a la flecha de arriba, te debería repetir el comando y con los cursores arriba e izquierda... 00:15:52
Mira, espera, borra eso. 00:15:58
Ah, eso es. 00:16:00
Y ahora simplemente hay que poner espacios entre node y version y entre npm y version. 00:16:01
Esos deberían ser opcionales. 00:16:09
Y a ti, María, ¿te pasaba lo mismo? 00:16:16
No sé cuál era el problema, pero ya se ha solucionado. 00:16:20
Vale, aparece lo mismo que en el manual, ¿verdad? 00:16:24
Sí, sí, está bien. Gracias. 00:16:26
Vale, estupendo. Por cierto, Javier, a ti el segundo no te ha funcionado porque has dejado un espacio adicional entre el guión-guión y el version de la segunda parte. 00:16:28
Ah, vale. Sí, gracias. 00:16:39
Vale, vale. 00:16:42
Vale. Entonces, una pregunta de los que estéis con Windows. 00:16:44
¿Hasta aquí todo bien? ¿Ha salido bien la parte de las versiones del node y del npm? 00:16:49
Vale. ¿Habéis hecho ya la parte de instalación? Que ese es el que comentaba de npm install menos g, un save, no sé tantos cuantos. 00:16:57
Sí. 00:17:09
A mí me está instalando el Chocolaterie y el Python 3.0. 00:17:10
Ah, eso es porque le has dicho a que sí cuando te preguntaba que si querías traer las cosas extras. 00:17:18
Sí. 00:17:27
Vale. Bueno, ahí había que decir que no. Lo único, te va a ocupar más espacio en disco, ¿no? No creo que influya en que luego funcione. 00:17:28
Entonces, me está instalando ahora todo eso, entonces todavía no he podido entrar para darle a lo del node versión. 00:17:36
Vale. Bueno, de todas formas, como ahora tengo que ver con los de Linux, cuando acabe esa parte de la instalación, ejecutas este comando y después este otro comando. 00:17:44
Que, por cierto, con el un save... Vale, sí, ya lo he comentado. Aquí cuidado porque es guión-guión, un save. No es un guión. 00:17:55
Vale, para los que sí que os ha terminado esta parte de instalación del node de red, que os aparezca ya esta... 00:18:06
No vemos nada ahora tuyo. No sé si estás queriendo que veamos todo o no lo vemos. 00:18:14
Comparte. 00:18:18
Es que después de compartirlo con otra persona se me quitan. 00:18:19
Yo ya estoy en el servidor local y me ha funcionado fenomenal. En el puerto que te lo he puesto y ya está. 00:18:25
Vale, o sea, tú ya estás viendo esto. 00:18:30
Sí. 00:18:32
Vale, pues nada, es como veis en seguir las instrucciones. Una vez que esté instalado esto, simplemente en el cmd, justo a continuación, escribimos node-red y ya debería estar listo. 00:18:33
Esa ventana, por cierto, no se puede cerrar. Esa ventana la tenemos que minimizar y no se puede cerrar. Si la cerramos deja de ejecutarse node-red. 00:18:43
Una vez que está ya ejecutado este comando, nos preguntará que si queremos darle permiso y le decimos que sí. 00:18:52
Y ya con el navegador accedemos a esta URL. 00:18:59
Yo no imagino hacer puntuación de redes públicas, no pasa nada, ¿no? 00:19:04
No lo sé si te funciona o no. 00:19:12
Vale. 00:19:14
Vale, para los que estáis con Linux. ¿Habéis ido avanzando mientras los de Windows estaban con el suyo? ¿Alguien no ha empezado que esté con Linux? 00:19:16
Yo sí he empezado, Jorge, pero me ha dado un error en la primera instrucción. Después de leer la lista de paquetes, he empezado con un warning y ya hay errores. 00:19:30
El repositorio tal, tal, tal, no está firmado, no se puede actualizar un repositorio y al final me dice error executing command y exciting. O sea que ya se ha ido. 00:19:41
La primera instrucción directamente ya no ha podido. 00:19:50
¿Qué Linux estás utilizando? 00:19:53
Ubuntu y debe ser la última o tal vez la penúltima versión. 00:19:55
Vale, vale. ¿Me puedes compartir por favor tu pantalla? 00:20:00
No, Jorge, lo siento, no puedo porque estoy trabajando viéndote por el iPad y al mismo tiempo que tengo un Linux mi ordenador es cristocénico y no tiene cámara, por eso estoy haciéndolo así. 00:20:03
Vale, a ver cómo lo podemos hacer. 00:20:18
¿Y si apuntas la cámara de la tablet con la pantalla? 00:20:25
Se va a ver muy mal. 00:20:32
Se va a ver muy mal, sí, eso. 00:20:34
Lo que estaba pensando es utilizar algún tipo de acceso remoto. 00:20:35
¿Tienes el... cómo se llama este, para Windows? 00:20:40
Es que me sale de Teams. 00:20:47
¿El escritorio remoto? 00:20:56
No, no, pero el de... ay, no me sale el nombre. 00:20:58
Joder. 00:21:08
Bueno, para conectarte a ordenadores en remoto. 00:21:10
VNC. 00:21:15
Pero es que hace falta que se abra el puerto. 00:21:18
Hay uno. 00:21:21
El TeamViewer a lo mejor. 00:21:22
Eso, TeamViewer. 00:21:24
¿Puedes hacer a TeamViewer? 00:21:26
Lo puedo intentar. 00:21:28
Y mientras voy a ir echando una mano a alguien más. 00:21:34
¿Alguien más está con Linux o con Windows está dando problemas? 00:21:37
A mí no me inicia. 00:21:42
Me dice que el comando no de guión red no me lo reconoce. 00:21:43
¿Puedes compartir la pantalla? 00:21:49
No. 00:21:54
Ah, vale, sí, me estabas contestando por el chat. 00:21:58
Sí, en iDesk también me podrían. 00:22:01
Solo moderadores y... 00:22:05
Ah, perdón. 00:22:06
Rosa, ¿eh? 00:22:17
Sí, es que eres Fernando en minúscula. 00:22:19
Ah, vale. 00:22:22
Ahora. 00:22:25
Ahora. 00:22:26
Aquí tengo la ventana que tengo que poner. 00:22:32
¿Toda la pantalla? 00:22:37
Sí. 00:22:39
Y si me pones todo en la pantalla pues sale a la consola nada más. 00:22:53
¿Veis algo? 00:23:02
Está en ella, vale. 00:23:04
Ah, porque... 00:23:06
Me he dado unos errores. 00:23:08
Ah, vale, vale, claro. 00:23:09
Porque te has saltado un comando. 00:23:10
Mira, después de... 00:23:11
Después de... 00:23:12
No de... 00:23:13
Menos menos version y npm menos menos version. 00:23:14
Falta otro comando. 00:23:17
Que es... 00:23:18
Te lo dicto. 00:23:19
Es npm... 00:23:20
npm... 00:23:23
Espacio. 00:23:24
Install. 00:23:25
Lo tenía arriba, ¿no? 00:23:29
Sí, sí, sí. 00:23:31
Tiene que estar justo entre medias de... 00:23:32
Install. 00:23:35
Espacio menos g. 00:23:36
Espacio guión guión. 00:23:39
Guión guión. 00:23:42
Unsafe. 00:23:43
Había salido un guión antes, ¿verdad? 00:23:44
Guión perm. 00:23:46
Sí. 00:23:47
No, no. 00:23:49
Guión perm va seguido ahí. 00:23:50
Espacio. 00:23:53
Guión perm. 00:23:55
Perm, con m. 00:23:56
Con m. 00:23:57
Eso es. 00:23:58
Espacio. 00:23:59
Node. 00:24:00
Guión red. 00:24:02
Vale, y esto tardará... 00:24:08
Pues nada, apenas un minutito y debería estar ya... 00:24:09
Ya lista. 00:24:11
Eso no me lo hizo antes. 00:24:12
Que yo lo recuerdo ahí. 00:24:13
Vale. 00:24:17
Dejo de compartir. 00:24:18
Sí, espérate si quieres. 00:24:20
Como esto tarda muy poquito... 00:24:21
Vale. 00:24:22
...ya comprobamos que sería. 00:24:23
Que efectivamente se instala. 00:24:25
¿Tú, Juanra, también lo estás haciendo? 00:24:28
No. 00:24:32
Vale, si quieres te dejo una instancia de... 00:24:34
...de mi servidor. 00:24:37
Ah, como quieras. 00:24:39
Sí, te mando por correo. 00:24:41
Vale. 00:24:43
Vale, 40... 00:24:45
...292 paquetes. 00:24:47
Vale. 00:24:52
Ya la pongo el de... 00:24:53
Ahora te voy a poner... 00:25:04
...versión... 00:25:06
NPM version. 00:25:07
NPM version. 00:25:09
NPM version. 00:25:11
NPM version. 00:25:12
Directamente no de Red. 00:25:16
Ahora tienes que... 00:25:18
Ahora tienes que poner... 00:25:20
...no de Guion Red. 00:25:22
Vale. 00:25:30
Esto tiene buena pinta. 00:25:31
Y ahora si abres... 00:25:32
Esto ya no lo voy a poder ver... 00:25:33
...porque no estás compartiendo la pantalla completa. 00:25:35
Pero si abres un navegador... 00:25:37
...y entras en esa... 00:25:38
...en esa URL que aparece ahí... 00:25:39
...ya debería estar listo. 00:25:41
Vale. 00:25:45
Podéis, para que me vaya haciendo una idea... 00:25:46
...podéis levantar, por favor, la mano... 00:25:48
...que los que ya tengáis... 00:25:50
...completamente instalado el... 00:25:53
...el no de Red y estéis viendo esto... 00:25:55
...en vuestra... 00:25:57
Ah, bueno, perdón. 00:25:58
¿Podéis dejar de compartir, por favor? 00:26:03
Jorge, y de los que... 00:26:04
...cuando se salta el Firewall de Windows... 00:26:05
...lo que no hayamos explicado... 00:26:07
...las dos opciones... 00:26:09
...que yo al hacerlo solamente... 00:26:10
...he dejado a la pública... 00:26:11
...¿pasaría algo? 00:26:12
Pues no debería. 00:26:14
No debería. 00:26:17
Vale. 00:26:21
Vale, me falta... 00:26:24
Bueno, Fernando... 00:26:25
...como queréis confirmar si esto funciona... 00:26:26
Vale. 00:26:29
Vale. 00:26:31
Fernando, como queréis confirmar si esto funciona... 00:26:32
Ángel... 00:26:37
Me faltan los dos Ángel... 00:26:41
...Carlos Gustavo... 00:26:45
...José Miguel... 00:26:47
...y Manuel. 00:26:48
¿Qué problemas os está dando? 00:26:50
Sí, a ver, a mí me sigue... 00:26:53
...ahora mismo me sigue... 00:26:54
...yo soy Carlos... 00:26:55
...me sigue instalando... 00:26:56
...pues como le di lo de... 00:26:57
...le cliqué en el... 00:26:59
...pero me sigue... 00:27:01
...todavía sigue ahí. 00:27:02
Vale. 00:27:04
Prefiero parar la instalación... 00:27:05
...porque, bueno... 00:27:06
...pues ya que termine. 00:27:07
Vale, vale, vale. 00:27:09
¿Quién más? 00:27:14
¿No tiene la mano levantada? 00:27:15
Yo voy con retraso, Jorge... 00:27:17
...pero estoy en ello. 00:27:18
Es que... 00:27:19
...con lo de los guiones que faltaban... 00:27:20
...me ha... 00:27:21
...se me ha bloqueado el CMD... 00:27:22
...y estoy en ello... 00:27:23
...pero vamos que... 00:27:24
...no te preocupes, eh. 00:27:25
Vale. 00:27:27
Jorge, yo tengo ya... 00:27:28
...el TeamViewer... 00:27:29
...instalado. 00:27:30
Ah, estupendo. 00:27:31
Vale, pues... 00:27:32
...eh... 00:27:33
...si quieres... 00:27:34
...eh... 00:27:35
...dime el numerito... 00:27:36
...eh... 00:27:37
...el ID... 00:27:38
...y la clave... 00:27:39
...me la mandas por correo. 00:27:40
Vale. 00:27:41
El ID es... 00:27:43
...1-7-3... 00:27:44
...7-3-7. 00:27:45
1-7-3-7. 00:27:47
9-8-8. 00:27:49
9-8-8. 00:27:50
6-6-0. 00:27:52
6-6-0. 00:27:53
Vale, pues... 00:27:55
...cuando puedas... 00:27:56
...tienes mi dirección de correo... 00:27:57
...¿verdad? 00:27:58
Sí. 00:27:59
Eh... 00:28:04
...sin dormir, ¿no Jorge? 00:28:05
Sí. 00:28:06
Vale... 00:28:07
...y... 00:28:08
...me falta una persona más. 00:28:09
¿Manuel creo que es? 00:28:10
Eeeh... 00:28:29
...a lo mejor... 00:28:30
...creo que es... 00:28:31
...Manuel de la Box. 00:28:32
Sí es... 00:28:34
...señor Jorge Sanchez. 00:28:35
A lo mejor soy yo. 00:28:36
Sí. 00:28:37
Eeeh... 00:28:38
...ya lo tengo instalado en Linux ya, ¿eh? 00:28:39
Tengo ya instalado en una máquina con Linux. 00:28:41
Vale, vale, vale, pues... 00:28:44
...eeeh... 00:28:45
...vale. 00:28:49
Sí, pues nada, si puedes levantar la mano... 00:28:50
...para que me sea más fácil distinguir... 00:28:52
...los que son de los que no... 00:28:53
...pues te lo agradezco. 00:28:54
Vale. 00:28:55
Vale, estupendo. 00:28:56
Eeeh... 00:28:57
...y correr... 00:28:58
...vale, ya me ha llegado la clave. 00:28:59
Un segundito... 00:29:02
...vale. 00:29:07
Si no te importa... 00:29:08
...lo voy a poner... 00:29:09
...así en pantalla completa... 00:29:10
...y así... 00:29:11
...los demás van viendo... 00:29:12
...lo que voy haciendo. 00:29:13
Eeeh... 00:29:16
...vale. 00:29:17
Vale. 00:29:23
Vale. 00:29:24
Vale. 00:29:25
Vale. 00:29:26
Vale. 00:29:27
Vale. 00:29:28
Vale. 00:29:29
Vale. 00:29:30
Vale. 00:29:31
Vale. 00:29:32
Vale. 00:29:33
Vale. 00:29:34
Eeeh... 00:29:36
...pero esto no tiene mala pinta, eh... 00:29:37
...esto yo creo que es un error de otra... 00:29:38
...otro tipo... 00:29:41
...pero cuando le dí a la segunda orden... 00:29:42
...eeeh... 00:29:43
...ya no la ejecutó... 00:29:44
...entonces supuse que estaba de... 00:29:45
...eeeh... 00:29:46
...eeeh... 00:29:47
...reaccionado con esto. 00:29:48
Vale. 00:29:49
Quiero decir, si... 00:29:50
...mira... 00:29:51
...eeeh... 00:29:52
...esta es la segunda orden, ¿de acuerdo? 00:29:53
La voy a ejecutar. 00:29:54
Sí. 00:29:55
Y me dice... 00:29:56
...no se encontró la orden. 00:29:57
No, porque... 00:29:59
...porque falla el dólar... 00:30:00
...de verdad. 00:30:02
Porque falla el dólar... 00:30:03
...el dólar hay que quitarlo. 00:30:04
Ah, ah, ah. 00:30:05
Fíjate que no te llega, por favor. 00:30:06
O sea, el dólar en... 00:30:07
...en Linux es como el... 00:30:08
Sí, sí. 00:30:09
...la indicación de que lo que viene a continuación... 00:30:10
...es un comando. 00:30:11
Sí, sí. 00:30:12
Pues obviamente... 00:30:13
Pues este error... 00:30:14
...básicamente lo que te está diciendo... 00:30:15
...es que una de las... 00:30:16
...de las fuentes de paquetes... 00:30:17
...que tienes en tu ordenador... 00:30:18
...eeeh... 00:30:19
...concretamente la del emulador... 00:30:20
...de programas de Windows... 00:30:21
...el Wine... 00:30:22
...está desactualizada. 00:30:23
Pero no se estaba quejando... 00:30:24
...no. 00:30:25
No se estaba quejando... 00:30:26
Vale. 00:30:27
Espera un segundito... 00:30:28
...esto. 00:30:29
No, no, no me deja. 00:30:30
¿Puedo parar? 00:30:31
No. 00:30:32
No me deja pararte. 00:30:33
Tienes aquí el... 00:30:34
...el... 00:30:35
...el... 00:30:36
...el... 00:30:37
...el emulador. 00:30:38
Sí. 00:30:39
El emulador de... 00:30:40
...de programas de Windows. 00:30:41
El emulador de... 00:30:42
...de programas de Windows. 00:30:43
Pues... 00:30:44
...aquí lo tienes. 00:30:45
El emulador del emulador... 00:30:46
...que es un emulador... 00:30:47
...de paquetes... 00:30:48
...que... 00:30:49
...que a lo mejor... 00:30:50
...a lo mejor es... 00:30:51
...que lo han agotado... 00:30:52
...de... 00:30:53
...de... 00:30:54
...de... 00:30:55
...complatos. 00:30:56
¿Tienes aquí el... 00:30:57
...el .pdf en estornudado? 00:30:58
Ya. 00:30:59
Sí. 00:31:00
Ahora... 00:31:01
Este es el tema cero. 00:31:03
A ver... 00:31:05
Lo que quería... 00:31:06
Esto es lo que estás pidiendo, ¿no? 00:31:07
Vale. 00:31:08
Vale. 00:31:25
Vale. 00:31:33
Mientras hace esto, que tardará como un minutillo o un par de minutos... 00:31:57
Vale. 00:32:01
¿Quién me queda? 00:32:02
Me queda... 00:32:03
Vale. 00:32:05
Miguel ya está. 00:32:06
Vale. 00:32:07
Carlos, Gustavo y los dos Ángel. 00:32:08
Sí. 00:32:12
A ver... 00:32:13
Yo quiero... 00:32:14
A ver, a mí... 00:32:15
Está en la pantalla del PowerShell y ahora, bueno, pues me sigue. 00:32:17
Es que me ha quedado ahí parado porque... 00:32:20
Ajá. 00:32:22
Es como si estuviera revisando... 00:32:23
Pues... 00:32:25
Resultados. 00:32:26
Verifes. 00:32:27
Verifes. 00:32:28
Resolve. 00:32:29
Si me ha cambiado el estado a no update. 00:32:31
Bueno, me está haciendo una serie de cosas y ahora se me ha quedado parado. 00:32:33
Me han salido algunos mensajes de error. 00:32:36
Y, bueno, yo creo que esto lo voy a parar. 00:32:40
Vale. 00:32:42
¿Puedes compartir la pantalla, por favor? 00:32:43
Sí. 00:32:47
A ver cómo comparto la pantalla. 00:32:48
Es que ahora te tengo que dar permiso. 00:32:49
Eres... 00:32:51
Eres Ángel, ¿verdad? 00:32:53
Carlos. 00:32:55
Carlos Gustavo. 00:32:56
Ah, Carlos. 00:32:57
Vale. 00:32:58
Vale. 00:33:00
Vale. 00:33:05
Ahora deberías poder compartir. 00:33:06
Puedo compartir. 00:33:08
Ahora, para compartir una serie de cosas. 00:33:09
¿Puedes compartir conmigo? 00:33:15
Vamos a ver. 00:33:16
Compartir. 00:33:19
No sé si lo estás viendo ahora. 00:33:31
Espera, que estoy con... 00:33:34
Estoy con el otro compañero. 00:33:37
A ver. 00:33:40
Vale. 00:33:42
Un segundito. 00:33:45
Vale. 00:33:53
A ver. 00:33:54
No está compartiendo nada. 00:33:55
¿Te aparece una ventanita en algún sitio preguntándote qué quieres compartir? 00:33:56
¿Tienes que elegir la pantalla completa o la ventana que estás utilizando en la instalación? 00:34:00
¿Te aparece una pantalla completa o la ventana que estás utilizando en la instalación? 00:34:06
Compartir. 00:34:12
Compartir el contenido. 00:34:15
Vale. 00:34:16
Pantalla. 00:34:21
Vale. 00:34:22
Pantalla. 00:34:23
Es que así lo compartís todo, ¿no? 00:34:31
Sí, puedes compartir todo. 00:34:34
No lo compré ahora. 00:34:57
Vale. 00:35:03
Ahora sí. 00:35:33
Ahora sí. 00:35:40
Ahora estás viendo el... 00:35:44
Sí. 00:35:45
Vale. 00:35:46
Estoy viendo el navegador. 00:35:47
El navegador. 00:35:52
Pero no el PowerShell. 00:35:53
Vale. 00:35:57
Y mientras tanto, no sé si me escucháis. 00:35:58
¿Ángel o Ángel Vázquez? 00:36:00
¿Estáis por ahí? 00:36:02
¿Se me oye? 00:36:09
Sí. 00:36:10
Sí, yo estoy. 00:36:11
Vale. 00:36:12
¿Cómo van vuestras instalaciones? 00:36:13
Yo estoy ahí con la parte de Windows. 00:36:15
Como tengo que cambiar de ordenadores, estoy aquí en ello. 00:36:18
Yo estoy instalando también. 00:36:23
Es que me ha salido la de chocolate y este también. 00:36:24
Le doy a todo y está instalando. 00:36:26
Vale. 00:36:28
Vale, pues me falta... 00:36:33
Y Carlos Gustavo, ¿puedes compartir al final la ventana de PowerShell? 00:36:42
Pues es que, vamos a ver. 00:36:46
Yo aquí en las opciones que es compartir contenido, 00:36:48
pues es que no sé dónde ponerle. 00:36:52
Le doy a pantalla, ventana o pestaña. 00:36:54
¿No? 00:36:56
Y entonces solamente me aparecen tres. 00:36:57
Pero justo la del administrador del PowerShell no me deja compartirla. 00:37:00
Qué raro. 00:37:13
No me deja compartirla. 00:37:23
Me deja solamente compartir el navegador. 00:37:25
Pero lo que es el PowerShell no me deja compartirlo. 00:37:27
Y toda la pantalla tampoco. 00:37:33
Me pone ahí compartir pantalla, ventana o pestaña. 00:37:37
Entonces le doy ahí. 00:37:40
Pantalla, sí. 00:37:41
Pantalla, ventana o pestaña, pues. 00:37:43
Pantalla. 00:37:45
Vale, pero dentro de... 00:37:46
Le doy a ventana o pestaña, 00:37:47
pero después me dice que especifique cuál de ellas quiero compartir. 00:37:49
Y entonces, bueno, pues tengo que seleccionar una. 00:37:56
Pero no me ha dado la opción de seleccionar el PowerShell. 00:37:58
Sí, pero me refiero. 00:38:01
La opción de compartir la pantalla no te aparece. 00:38:02
No me aparece ahí. 00:38:07
Ah, bueno. 00:38:10
Pantalla completa. 00:38:11
Espera, vamos a ver. 00:38:12
Eso es, sí. 00:38:13
Pantalla completa. 00:38:14
Vale. 00:38:16
Para Ángel. 00:38:17
Dice que no reconoce el comando de Node. 00:38:18
No, Jorge. 00:38:21
Ya he encontrado lo que ocurría. 00:38:22
Que es que no me reconocía por defecto. 00:38:24
Jorge, ¿me oyes? 00:38:27
Sí, sí, te escucho. 00:38:28
Ah, vale. 00:38:29
Es que no me reconocía por defecto el comando de Node. 00:38:30
Me he tenido que meter en el directorio donde me ha instalado el programa. 00:38:32
Y ahí así que me reconoce el comando Node. 00:38:36
Desde user barra ángel no me reconocía. 00:38:38
Entonces, hasta que he llegado ahí. 00:38:40
Pero estoy ya siguiendo el manual. 00:38:43
Vale, perdonad que ya te digo. 00:38:45
Que el cambio este de ordenador me está retrasando. 00:38:46
Vale, vale. 00:38:48
Sin problema. 00:38:49
A ver, Carlos. 00:38:50
Gustavo... 00:38:51
Sí, ahora me tienes que... 00:38:52
Sí. 00:38:54
Vale, haz una cosa. 00:38:55
Porque las opciones que yo he cogido eran para hacerlo en CMD. 00:38:56
No en PowerShell. 00:38:59
Dale Control-C, por favor. 00:39:00
Control-C. 00:39:05
Vale, y ahora abre... 00:39:09
O sea, dale a Windows-R. 00:39:11
Y escribes CMD. 00:39:16
No. 00:39:18
Windows-R. 00:39:24
Y escribes CMD y lees el intro. 00:39:32
Vale. 00:39:42
Vale. 00:39:43
Y entonces... 00:39:44
Vamos a empezar a ejecutar los comandos desde el principio. 00:39:45
Bueno, Node-R... 00:39:49
Eso. 00:39:50
Node-Guión-Guión-Versión. 00:39:51
Perfecto. 00:39:52
Dale al intro ya directamente. 00:39:53
¿Opción N? 00:39:57
¿No me he visto el Undersound y... 00:39:58
Nada, nada. 00:40:00
Ahora lo hacemos aparte. 00:40:01
No, no. 00:40:02
El version sí. 00:40:03
Node-Guión-Guión-Versión. 00:40:04
Intro. 00:40:06
Vale. 00:40:14
Y ahora NPM es Guión-Guión-Espacio-Guión-Guión-Versión. 00:40:15
Está todo lentillo el ordenador. 00:40:35
No tengo... 00:40:44
No tengo que ahora... 00:40:49
Viro la versión. 00:40:51
Vale, perfecto. 00:40:52
Y entonces ahora, desde aquí ya sí que echamos el install. 00:40:54
O sea, NPM espacio-install-espacio-g. 00:40:57
Esa. 00:41:05
Esa que ves ahí. 00:41:06
Cuidado porque no es Guión-unsaje, 00:41:08
sino que es Guión-Guión-unsaje. 00:41:10
Hay que corregirlo antes de darle al intro. 00:41:12
Vale, y eso te puedes ir otra vez al CML, 00:41:23
que lo tenéis ahí abajo. 00:41:25
No, antes de darle al intro te decía que tienes que cambiar... 00:41:32
Dale Ctrl-C, por favor. 00:41:37
Sí, diré que sí. 00:41:42
Ese. 00:41:45
Vale. 00:41:46
Y ahora, flecha de arriba, 00:41:47
y con las cursores de la izquierda 00:41:49
te pones a la izquierda del unsaje. 00:41:51
Y ahí le metes... 00:41:55
No, a la izquierda del unsaje. 00:41:59
Es decir, hacia la derecha. 00:42:01
Y ahí mételo en Guión-más. 00:42:05
Vale, intro. 00:42:09
Vale, y esto lo dejamos ahí a ver si... 00:42:13
A ver si se deja. 00:42:16
Vale, pues ahora vuelvo con... 00:42:23
Ahora vuelvo contigo, ¿vale? 00:42:25
En los puntos de echar sementes. 00:42:27
Vale, de acuerdo. 00:42:28
Jorge, te comparto pantalla para verlo. 00:42:42
Yo creo que he terminado la instalación en CMD, 00:42:44
pero no sé luego cómo arrancar desde Windows. 00:42:46
Directamente... 00:42:48
Vale. 00:42:49
...te enseño la última pantalla que tengo. 00:42:50
Escribes ahora nos-de-guión-3, 00:42:52
le das al intro, 00:42:54
y me dices si aparece algo en la pantalla. 00:42:55
Sí, sí, sí, eso ya ha aparecido. 00:43:08
Ahora que aparece... 00:43:09
Bueno, el 12 de abril. 00:43:10
El servidor ahora está running en el HTTP 127.0.0.1.1880. 00:43:11
Perfecto. 00:43:17
Starting flow, starting flow. 00:43:18
Pues si pones esa dirección, esa URL en el navegador, 00:43:20
deberías poder ver una pantalla como... 00:43:23
Bueno, la de 9-3. 00:43:26
Vamos a ver. 00:43:28
A ver que te funcione, Ángel. 00:43:29
Vale, y entonces me faltan... 00:43:31
Que no he levantado la mano. 00:43:33
El otro Ángel, José Miguel y Javier. 00:43:36
¿Cómo lo lleváis? 00:43:41
No lo tengo instalado. 00:43:43
Se me ha salido antes del team 00:43:44
y ha estado un buen rato hasta que he podido volver a entrar. 00:43:46
Si estáis con las instalaciones todavía... 00:43:48
Sí. 00:43:50
...creo que no me he perdido nada. 00:43:51
Levanto ahora la mano porque se me debe haber bajado al salir. 00:43:52
Vale. 00:43:55
Fallo mío, fallo mío. 00:43:56
Perdona. 00:43:57
No, no te preocupes. 00:43:58
Fallo mío de haber salido. 00:43:59
Vale, entonces me falta... 00:44:02
Bueno, uno de los Ángeles. 00:44:04
Yo estoy en el proceso de... 00:44:06
El que tienes mostrándose en pantalla. 00:44:09
Instal, menos G, A, C... 00:44:11
Estoy en eso. 00:44:13
Que, de hecho, ya me ha dicho que he acabado. 00:44:14
Así que continúo con el siguiente paso. 00:44:16
Vale, que es básicamente escribir node-res de la letra. 00:44:18
Vale, y me falta entonces solo José Miguel. 00:44:24
Vale, ahora otra vez nuevamente me dice que node... 00:44:28
Ah, espera, que a José Miguel le tengo aquí. 00:44:33
José Miguel me está dando por nuestro ordenador. 00:44:35
¿De cuándo es? 00:44:38
A ver. 00:44:39
Pues es una 24, no sé por qué. 00:44:42
No es muy antigua. 00:44:45
Jorge, una pregunta. 00:44:48
A mí estoy dando ahora el comando node-res 00:44:51
y nuevamente me dice que no me reconoce nuevamente node. 00:44:55
Aunque estoy en el directorio de node.js. 00:44:58
Este no me ha dado ningún problema. 00:45:00
¿Me tengo que cambiar en algún directorio? 00:45:04
Se supone que donde tengo instalado el node.js, ¿no? 00:45:06
No, no te debería... 00:45:11
Es que estoy ahora en otro ordenador 00:45:12
y no me puedo conectar a la sesión. 00:45:15
Ah, pues tendremos que hacerlo con TeamViewer también. 00:45:19
¿Por qué? 00:45:23
Sí que estoy en el directorio de node.js. 00:45:24
Y le he dejado... 00:45:27
Es un buen directorio. 00:45:28
...node-version-aftersand-npm 00:45:30
y ahora en cambio me dice que no me reconoce otra vez el node. 00:45:32
Pero digo, ¿estás con Windows o con Linux? 00:45:36
¿Hola? 00:45:43
Te he perdido, no te he escuchado. 00:45:47
Vale, a ver, José Miguel, a ver si consigo... 00:46:07
Qué raro. 00:46:22
Vale. 00:46:36
No, no, no. 00:47:06
No sé por qué se instala la versión... 00:47:37
Vale, vamos a hacer una cosa, José Miguel. 00:47:52
En lugar de utilizar la instancia propia, 00:47:56
luego, si te parece, 00:47:59
nos podemos seguir unos minutos cuando acabe la sesión. 00:48:01
Me quedo contigo y te ayudo a instalarlo, ¿vale? 00:48:04
Muy bien, sí, muy bien. 00:48:07
Conéctate a la instancia que tenía preparada de SinDormir. 00:48:09
Te doy de alta. 00:48:17
1882. 00:48:19
Pues ahí ya lo que quieras, entiendo que sí, ¿no? 00:48:35
Bueno, luego lo hacemos. 00:48:40
Luego te mando por correo... 00:48:42
Un segundo, por favor. 00:48:44
Te mando por correo la... 00:48:45
...la contraseña. 00:48:50
Te cuento. 00:48:52
Te cuento. 00:48:53
Te cuento. 00:48:54
Te cuento. 00:48:57
Vale. 00:49:00
Sí, que me querías contar algo. 00:49:01
No, no, una cosilla. 00:49:03
Que nada, que no he utilizado al final lo que me has mandado 00:49:07
porque me lo he instalado aquí en un MAX que tenía... 00:49:10
Ah. 00:49:12
Sí. 00:49:13
En un ratín. 00:49:14
Vale. 00:49:15
Así que nada, que lo tengo aquí instalado. 00:49:16
Lo digo por si quieres reutilizar la que me has mandado. 00:49:19
Sí, no se utiliza, no gasta, por así decirlo. 00:49:23
Vale, ok. 00:49:27
Vale, estoy viendo la pantalla de Carlos Gustavo. 00:49:29
Vale, pues en principio esto está bien. 00:49:32
Dale a minimizar esta ventana. 00:49:33
Pero, vamos a ver, se me ha abierto esta y aquí... 00:49:36
No, esto se ha abierto porque antes ejecutaste otro comando. 00:49:42
Esta la puedes cerrar. 00:49:45
¿Hay alguien que está rascando el micro contra la chaqueta o algo así? 00:49:47
Vale. 00:49:51
Esta ventana, mínimízala, no la cierres. 00:49:52
Eso es. 00:49:57
Vale, y ahora vete al navegador. 00:49:58
Vale. 00:50:04
Y ahora en la pestaña nueva pones local host. 00:50:05
Sí, bueno. 00:50:08
Vale, y ahora local host. 00:50:09
Ah, vale, eso vale también, sí. 00:50:11
127.0.0.1. 00:50:15
Dos puntos. 00:50:21
18.80. 00:50:25
18.80. 00:50:30
18.80. 00:50:31
18.80. 00:50:34
Perfecto. 00:50:42
No sé quién está... 00:50:45
Vale. 00:50:49
Esta página os recomiendo que la pongáis en favoritos 00:50:51
porque la estaremos utilizando bastante habitualmente. 00:50:54
Vale, le dais a control D. 00:50:58
Es el atajo para meter una página en favoritos en los navegadores. 00:51:00
Y... 00:51:04
Y ya se queda. 00:51:06
Vale, pues, ¿quién me queda? 00:51:08
¿Está todo el mundo ya? 00:51:10
Yo, Jorge, a la hora de lanzar el programa, 00:51:13
cuando dices, bueno, 00:51:17
ejecutamos el comando siguiente node-red, 00:51:19
no me reconoce ahora el node-red. 00:51:22
Vale. 00:51:24
No doy con... 00:51:25
Vale, ¿y tú me puedes compartir la pantalla? 00:51:27
Es lo que te he comentado. 00:51:29
Es que estoy en otro ordenador porque he tenido problemas 00:51:30
y no consigo abrir la sesión nuevamente. 00:51:33
Estoy con dos ordenadores ahora aquí en plan Nacho Cano. 00:51:36
Vale, ¿y puedes instalarte el TeamViewer 00:51:40
para que pueda tratarte de conectarme? 00:51:43
Vale, a ver. 00:51:45
Sí, ahora que lo he instalado, espera. 00:51:46
A ver, yo te lo instalo esto. 00:51:49
Vale, ya puedes dejar de compartir si quieres. 00:51:52
Carlos Gustavo. 00:51:59
Esta primera parte del curso es un poco rollo. 00:52:12
Sobre todo para los que lo habéis instalado de primera. 00:52:18
Pero necesitamos que esté todo el mundo con la instalación correcta. 00:52:20
Vale. 00:52:50
¿Cómo que no ha hecho él? 00:53:20
Vale. 00:53:50
Jorge, ya tengo instalado el TeamViewer. 00:54:20
Vale, pues dime... 00:54:33
No sé si voy a poder conectarme a dos a la vez. 00:54:36
Vale, dime el numerito. 00:54:44
Uno espacio siete tres ocho espacio uno cero uno espacio tres cuatro dos. 00:54:46
Vale, y la contrasenya si quieres me la puedes mandar por correo. 00:55:00
Y así nos la decimos en alto. 00:55:04
Vale. 00:55:06
A ver, pues tu correo por aquí. 00:55:10
Te lo envío al de Ducamadrid, a Jorge Guión Gómez Arenas. 00:55:16
Sí, por ejemplo. 00:55:20
Vale. 00:55:45
Ya te lo he enviado al correo de Ducamadrid. 00:56:16
Vale, un segundito que... 00:56:20
A ver si consigo... 00:56:25
Vale. 00:56:29
Vale, la tengo. 00:56:32
Vale. 00:56:35
Vale. 00:56:38
Vale. 00:56:40
Vale. 00:56:43
Vale. 00:56:46
Vale, pero aún así no se deja. 00:57:00
A ver. 00:57:02
Mirad cómo me estoy tomando ese ejecutado. 00:57:03
Vale. 00:57:07
Esto funciona. 00:57:08
Claro que como me ha dejado los anteriores, pues es lo que no entiendo. 00:57:10
Sí, pero aquí falta uno por ejecutar. 00:57:14
Aquí falta... 00:57:16
Y falta el npm install, yo creo. 00:57:20
Sí. 00:57:26
Vale. 00:57:35
No, pero el npm... 00:57:36
Este diría que no... 00:57:43
Que no lo tenías hecho. 00:57:45
Ese va a estar haciendo... 00:57:46
Va a estar haciendo... 00:57:48
Bueno, como lo veis ahí se ha quedado. 00:57:49
Y sí que ha estado haciendo eso mismo antes. 00:57:51
Vale, ahora lo reviso un segundito. 00:57:53
Vale. 00:57:55
Vale, así. 00:58:00
Pero si te tarda como un minutillo... 00:58:01
Vale, aquí. 00:58:03
Y aquí otra. 00:58:10
Vale. 00:58:31
Vale. 00:58:33
Vale, esto está bien. 00:58:59
Vale. 00:59:02
Vale, pues te la tomo un minutillo. 00:59:12
O sea, Miguel, no te está dejando... 00:59:17
Algo raro con la instalación. 00:59:22
Pero luego esto cuando acabemos la clase te lo reviso. 00:59:25
Para seguir la de hoy te vale con utilizar esto. 00:59:28
Y luego lo reviso para no... 00:59:32
De acuerdo. 00:59:35
De acuerdo, gracias. 00:59:36
Vale. 00:59:37
Vamos a seguir aquí. 00:59:38
Esto parece que ya está. 00:59:44
No he llegado a mi red. 00:59:46
Vale. 00:59:50
No he llegado a mi red. 00:59:51
¿Y por qué no deja? 00:59:54
¿Qué cosa más rara? 01:00:05
Jorge, en el anísimo hay una segunda parte que habla de securización de la red. 01:00:07
¿Eso no lo vamos a hacer? 01:00:12
Eso no lo vamos a hacer. 01:00:14
Eso es por si lo queréis implementar en el aula. 01:00:16
Por si queréis montar un servidor de red en el colegio. 01:00:19
Para que podáis crear nombres de usuarios y claves y demás. 01:00:23
Vale, de acuerdo. 01:00:27
Pero para este curso no vamos en detalle. 01:00:28
O sea, el anexo 1 ya en principio lo podemos cerrar. 01:00:31
Sí, eso es. 01:00:34
¿Qué Windows es este? 01:00:42
Pues Windows 10 entiendo. 01:00:44
Tengo muy claro la verdad. 01:00:49
Esto no me hace caso. 01:01:15
No me deja lanzar más símbolos del sistema. 01:01:17
A ver, ¿puedes lanzar tú el símbolo del sistema que no me está dejando? 01:01:39
¿Se abre? 01:01:45
No se deja, ¿verdad? 01:01:56
No. 01:01:58
Vale, hace una cosa un poco rara. 01:02:02
Si yo le pegaría un reinicio al Windows este. 01:02:05
A ver si después sí que se deja lanzar el node-red. 01:02:09
Vale. 01:02:14
Vale, lo arreglé. 01:02:15
Te esperamos un par de minutos antes de salir, ¿vale? 01:02:17
Venga, vale, gracias. 01:02:19
Vale, ¿y me queda alguien más que no haya ayudado? 01:02:30
¿Alguien más que no rompa la manga de esta locura? 01:02:34
Vale. 01:02:44
Bueno, pues nada. 01:02:47
Vamos a esperar a que termine de iniciar el compañero. 01:02:49
Y mientras nos aseguramos que hemos cargado ya esta página y que la tenemos visualizándola. 01:02:56
Vale, vamos a dar un minutillo más. 01:03:05
Mientras tanto, ¿alguien tiene alguna duda o lo que quiera comentar? 01:03:07
Bueno, yo te quería preguntar. 01:03:14
Yo no hice el otro curso. 01:03:16
O sea, me quedé en esta espera. 01:03:18
Y no sé si los materiales están accesibles para que le pueda echar un vistazo y dar un repaso. 01:03:20
No sé si esa posibilidad está. 01:03:26
¿Los materiales te refieres a la documentación? 01:03:29
Sí. 01:03:32
Sí, te la puedo enviar. 01:03:33
Vale, fenomenal. 01:03:36
Si me escribes un correo para regalarme, te lo dejo aquí. 01:03:38
Vale, te lo mando. 01:03:42
¿A dónde te lo mando? 01:03:44
Si puedes, a jorge.sindormir.net. 01:03:46
Ese correo lo reviso todos los días. 01:03:49
Vale, te lo mando. Gracias. 01:03:56
Está bien. 01:03:58
Vale, ¿podéis dejar ya la mano todas? 01:04:01
Y si queréis ir cargando también ya el PDF del tema 1, del tema 0, perdón. 01:04:03
Bueno, la primera parte explica un poco de dónde viene el nodo de red. 01:04:34
Bueno, básicamente fue un proyecto creado por IBM. 01:04:40
Y luego se liberó. 01:04:45
Y ahora lo lleva una fundación que hace temas de software libre. 01:04:47
Es libre, podemos investigar cómo está escrito, podemos colaborar, podemos traducir, podemos hacer documentación. 01:04:52
Y bueno, básicamente lo que nos permite es realizar códigos que digamos que de otra manera serían complejos, pero sin necesidad de escribir código. 01:05:03
Sino que va a ser todo mediante unión de bloques con diferentes ígneses que nos van a permitir como expresarnos un poco de qué queremos hacer. 01:05:15
Supongo que todos y todas conocéis el Scratch. 01:05:25
Vale, pues no es ese tipo de lenguaje de bloques. 01:05:29
En Scratch básicamente lo que hace es, digamos, representar mediante dibujitos o mediante bloques estructuras de código de programación tradicionales. 01:05:32
Si tengo un if, pues el if abraza lo que tenga dentro. 01:05:43
Vale, aquí no. Aquí cambia el paradigma. 01:05:46
No es tan inmediata la asociación de ideas de lo que yo quiero hacer con un programa a cómo se hace el nodo. 01:05:48
Me voy a ir a... 01:05:56
El compañero que había estado reiniciando, no sé si ha vuelto ya. 01:06:02
Sí, estoy... 01:06:05
Me lo está todavía reiniciando y está en ello. 01:06:10
Sigue, sigue, Jorge, yo ya te aviso. 01:06:14
Avísame si no te... 01:06:17
Lo intento yo y ya te digo. Si no me funciona, te digo. 01:06:19
Vale, y si no te paso una instancia para que puedas hacer el... 01:06:22
Para que lo puedas hacer desde... 01:06:26
Desde la instancia de... 01:06:29
Perdón, desde el nodo. 01:06:30
Bueno, pues básicamente... 01:06:32
Perdona, la parte de securización que está en el adexo no hay que hacerla, ¿no? 01:06:35
No. 01:06:39
Vale. 01:06:40
No, eso lo preguntaba hace un par de minutos un compañero. 01:06:41
Eso es por si se quiere llevar al aula y queremos que haya usuarios y contraseñas para que los alumnos no se... 01:06:45
No se... 01:06:53
Digamos, molesten entre ellos. 01:06:55
Vale, pues entonces lo que vamos a empezar a ver va a ser básicamente un poco la organización, cómo se organiza el entorno. 01:07:01
Si nos vamos a la página de NodeRED, veis que tiene como varias áreas diferentes. 01:07:09
Por un lado tenemos lo que parece en la documentación como barra superior, que está de aquí. 01:07:17
Aquí básicamente tenemos como un botón muy muy importante, que es el de deploy. 01:07:22
Que ahora veremos con un poco más de detalle. 01:07:29
Que básicamente sería el equivalente a compilar. 01:07:32
Es decir, una vez que yo aquí haya creado mis diferentes bloques, cuando quiera que eso entre en funcionamiento, le damos a deploy. 01:07:36
Tenemos que ver si alguien está tecleando con un teclado de los buenos. 01:07:44
Voy a mutear. 01:07:48
Si alguien quiere hablar que recuerde desmutearse. 01:07:55
Sí, como comentaba. 01:08:00
Pues de aquí, de esta barra superior, básicamente lo que nos importa por ahora es este botón de deploy. 01:08:01
Que deploy es desplegar o digamos hacer que funcione lo que sea que yo vaya a ir creando en la ventana principal. 01:08:06
A la izquierda tenemos lo que se conoce como paleta. 01:08:15
Esta paleta se puede ir ampliando con diferentes bloques adicionales, como también se puede hacer con Scratch. 01:08:19
De forma que vamos a ir podiendo hacer cosas de una forma más sencilla. 01:08:29
En principio esta paleta es suficientemente completa como para poder hacer miles de cosas. 01:08:34
Pero por ejemplo, una de las actividades que haremos en el curso, que será guardar información en una base de datos SQL. 01:08:40
Y luego recuperarla. 01:08:48
Pues aquí no aparece. 01:08:50
No hay nada que tenga que ver con SQL. 01:08:53
Entonces habrá que instalar unos nuevos bloques que ya veremos más adelante cómo se hace. 01:08:55
Los bloques más importantes son los que aparecen en el bloque de common y de función. 01:08:59
Y de estos iremos viendo poco a poco los más importantes. 01:09:06
No los vamos a ver todos porque no todos son imprescindibles. 01:09:11
Pero sí los más relevantes aquí. 01:09:14
Por otro lado tenemos esto que se conoce como espacio de trabajo. 01:09:18
Todo el área principal. 01:09:22
Básicamente nosotros iremos juntando unos bloques con otros mediante unas líneas de conexión en este área. 01:09:24
No lo he comentado, pero aquí por ejemplo hay una pequeña ventanita de búsqueda. 01:09:33
Que yo puedo, por ejemplo, si estoy buscando el bloque de función, puedo escribir la f y la u. 01:09:40
Y ya me limita la cantidad de bloques a los que empiecen por f. 01:09:45
En cualquier caso yo esto no lo utilizo nunca. 01:09:51
Porque ahora os enseñaré un atajo bastante más potente que el de la ventanita esta de aquí arriba a la izquierda. 01:09:54
Entonces digamos que si yo quiero sacar un bloque. 01:10:01
Supongamos que quiero sacar por ejemplo el bloque inject, por ser el primero. 01:10:04
Pues lo arrastro y lo suelto. 01:10:08
Puedo hacerlo tantas veces como quiera. 01:10:10
Y los bloques, luego entraremos un poco más en detalle. 01:10:13
Pero digamos que tienen como varias anclas. 01:10:17
En este caso este bloque solo tiene una ancla de salida. 01:10:20
Y yo si arrastro desde aquí me permite unirlo a un bloque que tenga una ancla de entrada. 01:10:23
Que estaría como a su izquierda. 01:10:30
Como este bloque solo tiene ancla de salida no puedo unirlo a otros del mismo tipo. 01:10:32
No puedo unir dos salidas y tampoco puedo unir dos entradas. 01:10:36
Con lo cual este bloque tal y como lo tengo aquí no puedo unirlo con nada más. 01:10:40
Entonces, sí que es importante que según vaya yo haciendo estas pruebas. 01:10:45
Si podéis, que vayáis haciendo lo mismo para ir practicando. 01:10:50
Por cierto, para eliminar un bloque lo seleccionamos y le damos a suprimir. 01:10:56
Aquí no funciona como un scratch lo de llevarlo hacia la izquierda. 01:11:01
Hacia la barra de paleta. 01:11:05
Seleccionamos izquierda y suprimir. 01:11:08
Podemos marcar varios y darle a suprimir. 01:11:11
Por lo tanto nos vamos a dejar uno. 01:11:15
Sacamos uno en caso de que hubiéramos eliminado a todos. 01:11:17
Porque esto nos va a permitir ver un poco lo que tenemos en la parte de la derecha. 01:11:19
Me voy a mover un segundo. 01:11:24
Vale. Ahora ya no estoy compartiendo nada, ¿verdad? 01:11:41
Ahora no. 01:11:53
Vale. ¿Y ahora? 01:12:01
Tu pantalla. 01:12:05
Vale. Perfecto. 01:12:08
Vale. Entonces, como decía, la barra de derecha o la barra lateral 01:12:11
digamos que tiene como varias pestañas que nos van a ser muy útiles a lo largo de todo el curso. 01:12:17
Entonces, por ejemplo, si yo elijo este bloque que acabo de sacar, el de inject. 01:12:24
Aquí tenemos varias cosas que nos pueden ser como de utilidad, por un lado. 01:12:29
Estando en la I, que es de información, aquí digamos que yo puedo ver información de cada uno de los nodos que tengo seleccionados. 01:12:34
En este caso, como tengo seleccionado un nodo de inject, pues me dice cuál es el nodo. 01:12:42
Cada nodo que yo saco le da un identificador. 01:12:47
Si saco otro, aquí veis que este es el nodo que empieza con 046 y este es el nodo que empieza con D762. 01:12:50
Esto sería importante más adelante porque cuando tengamos flujos muy grandes nos interesará saber 01:12:59
por qué nodo se ha pasado un determinado flujo. 01:13:06
Este numerito cobrará cierta relevancia. 01:13:09
Ahora, simplemente por ahora, que sepáis que cuando yo hago click en un objeto, me dice cuál es el tipo, 01:13:13
me dice cuál es su numerito, su identificador. 01:13:19
¿Más cosillas que tengo en la pestaña de información? 01:13:22
Yo puedo, de los diferentes flujos, ver todos los elementos que hay. 01:13:26
Esto, ya os digo, tiene más sentido cuando tenga varias cosas. 01:13:32
Por ejemplo, si tengo tres, yo puedo incluso venir aquí y con este botón puedo desactivarlo. 01:13:40
¿Veis que se queda como sombreado? 01:13:46
Significa que ese bloque, cuando yo le dé a deploy, que ahora se me ha activado, le habrá añadido un elemento. 01:13:49
Cuando le dé a deploy, este no va a tener efecto. Va a estar como sombreado. 01:13:56
Si lo quiero volver a poner, le hago click ahí y ya vuelve a estar activo. 01:14:00
Esto con respecto a los flows, con respecto a subflows y a nodos de configuración, lo veremos un poquito más adelante. 01:14:06
Por ahora, con respecto a info, nada más. 01:14:14
¿Más pestañas que tenemos? 01:14:18
Tenemos la pestaña de ayuda. 01:14:20
Esta pestaña es muy importante, no tanto ahora, porque en el manual ya veréis que cuando se habla de un nodo en concreto 01:14:23
vamos a ir detallando paso por paso todas las entradas, todas las Ls que tiene, las entradas, cómo se interactúa, 01:14:31
qué tipo de datos proporciona, qué tipo de datos le gusta la entrada, etc. 01:14:38
Pero cuando juguéis por vuestra cuenta con determinados nodos que sean nuevos, esta ventana de ayuda os será muy útil para saber cómo se maneja un determinado nodo. 01:14:42
Según yo vaya haciendo click en un nodo o en otro, me lleva la ayuda de cómo se maneja ese determinado nodo. 01:14:52
Repito, por favor, interrumpidme si algo de lo que cuento no queda claro. 01:15:04
¿Más pestañas que tenemos en la barra lateral? 01:15:11
Esta cucaracha, lo que nos va a mostrar van a ser los mensajes de depuración. 01:15:14
Esto, haciendo una analogía con Arduino, sería, por así decirlo, como nuestro puerto serie. 01:15:21
Cuando la aplicación que estamos creando tenga algo que decirnos, aparecerá aquí. 01:15:27
Esto lo veremos en 10 minutos. 01:15:32
¿Qué más? 01:15:36
Estos son los nodos de configuración. 01:15:39
Ahora nos va a aparecer vacío, pero más adelante, según vayamos haciendo configuraciones, por ejemplo, con la parte de base de datos o con la parte de MQTT, 01:15:42
aparecerán las configuraciones que son necesarias para que yo me pueda conectar con un servidor de SQL, con un servidor de MQTT, etc. 01:15:50
Y por último, o por lo menos por último por ahora, porque más adelante aparecerá una pestaña nueva cuando juguemos con la parte de los entornos gráficos, 01:16:00
pero por ahora este es el último bloque que tenemos, esta última pestaña. 01:16:10
Aquí lo que aparecen son las variables de contexto. 01:16:14
Este es el contexto, esto lo contaré un poquito más adelante. 01:16:17
Pero, como en cualquier otro lenguaje de programación, nosotros podemos crear variables que van a servir para contener información que más adelante pueda modificar. 01:16:20
Y en concreto Node-RED, por cómo está diseñado, pues tiene tres tipos de variables. 01:16:30
Variables de nodo, variables de flujo y variables globales. 01:16:34
Hasta aquí lo voy a dejar, no voy a contar nada más de esto porque lo veremos un poquito más adelante con detalle. 01:16:37
¿Vale? 01:16:45
Vale, más cosillas que tenemos. Dejadme un segundo que revise. 01:16:48
Vale, si os fijáis... 01:16:53
Si os fijáis, este tipo de bloques presentan a la izquierda lo que se conoce como un pulsador. 01:17:02
Este pulsador, como este es un bloque de Inyect, digamos que es un iniciador. 01:17:10
Es un elemento el cual genera un mensaje. 01:17:16
Ya iremos viendo, seguiréis dando cuenta de que este lenguaje de programación se basa exclusivamente en el paso de mensajes. 01:17:19
Más concretamente en el paso de mensajes de tipo JSON, como le queráis llamar. 01:17:27
Ahora lo que veremos también a continuación es cómo se formatean ese tipo de mensajes y veremos cómo se componen. 01:17:33
Bueno pues, estos nodos de Inyect deberían ser pulsables. 01:17:40
Cada vez que yo pulso este mensaje, se debería generar algo a su salida. 01:17:48
¿Por qué no lo está haciendo? 01:17:53
Bueno pues, nos da una pequeña pista del entorno arriba del todo. 01:17:55
Y dice, precaución, este nodo no se ha desplegado, con lo cual no va a hacer nada. 01:18:00
Si yo quiero que este nodo realmente haga su trabajo, tengo que venirme aquí arriba a la derecha y darle a desplegar. 01:18:06
Y veréis que ahora, cuando yo paso el ratón por encima del cuadradito que tiene a la izquierda... 01:18:17
Ahora ya sí que es clickable y me dice que ha sido capaz de inyectar el timestamp, una fecha. 01:18:25
Probadlo por favor y me decís si funciona. 01:18:36
Funciona. 01:18:39
Ahora no estamos viendo nada de nada. 01:18:42
Vale. 01:18:47
A ver. 01:18:52
Voy a dejar que compruebe que no me responde nada importante por explicar. 01:18:54
Disculpa, Jorge. ¿Cómo decías que se hacía el desplegar el nodo? ¿Cómo se hacía para desplegarlo? 01:18:59
Una vez que tú tienes cambios en tu código, en tu ojo de trabajo, esto se tiene que activar. 01:19:26
Este botón rojo que pone Deploy. 01:19:33
Vale. 01:19:38
Entonces, aprovecho para explicar por qué aparecen diferentes Deploys. 01:19:40
Básicamente, esto tiene que ver un poco con las pestañas y con cómo se recargan las cosas. 01:19:47
¿Veis que arriba aparece como que el área de trabajo corresponde con el flujo 1? 01:19:55
Si yo hago clic aquí, hago doble clic en flujo 1, aquí puedo cambiar el nombre. 01:20:02
Podríamos poner, por ejemplo, ejercicio 1. 01:20:08
Esto, como estamos en un curso, van a ser ejercicios las diferentes pestañas. 01:20:13
Pero cuando estemos haciendo proyectos de verdad, cada pestaña que utilicemos, conviene ponerle el nombre 01:20:19
de lo que hace esa pestaña, de los nodos que están contenidos. 01:20:27
Aquí sucede igual que en todos los enfoques de programación. 01:20:30
Conviene no tener una única función, por así decirlo, que lo haga todo. 01:20:35
Y en este caso conviene no tener una única pantalla, una única pestaña, que tenga absolutamente todo. 01:20:39
Por eso, si yo me vengo aquí a la derecha y hago clic en más, me parece añadir nuevo flujo. 01:20:45
Y ahora tengo otra pestaña diferente en la que puedo empezar a trabajar. 01:20:53
Aquí, por ejemplo, puedo poner este nodo. 01:20:57
Y tengo una pestaña por aquí, con un código, y una pestaña por aquí. 01:21:00
Entonces, ¿qué es lo que hace Deploy? 01:21:05
Deploy, por defecto, aparecerá marcado como full. 01:21:07
Full lo que significa es que va a desplegar, va a recargar todos los nodos de todas las pestañas que tenga. 01:21:11
Si hacemos clic y elegimos en Modify Flows, es decir, la segunda opción, 01:21:21
solo desplegará aquellas pestañas en cuyo interior se haya modificado uno de los nodos. 01:21:27
¿En qué me puede influir esto? 01:21:36
Por ejemplo, si en una pestaña tengo una conexión con una base de datos, 01:21:38
y modifico nodos de otra pestaña, si yo la voy a desplegar y lo tengo marcado como full, 01:21:42
lo que va a suceder es que mi aplicación se va a desconectar de la base de datos 01:21:50
y a continuación se va a volver a conectar. 01:21:54
Eso, en ciertas ocasiones, no pasará nada, pero en otros casos puede ser problemático. 01:21:57
Entonces, el Deploy, que solo despliegue las cosas que han sido modificadas, 01:22:03
que eso aplica tanto aquí como aquí, es interesante para que no se rompan conexiones. 01:22:08
La diferencia entre Modify Flows y Modify Nodes es evidente. 01:22:14
Solo con el Modify Nodes, solo se van a recargar aquellos nodos que hayan sufrido modificaciones. 01:22:20
El resto de la pestaña, el resto del flujo que tenemos aquí, no se verá alterado. 01:22:27
Entonces, normalmente nosotros en este curso, para simplificar, 01:22:34
vamos a trabajar siempre, vamos a dejar marcada la parte de full. 01:22:38
¿Dónde se ha estado aquí? 01:22:48
Pues, si os parece, son las seis y media. 01:22:57
Hacemos un pequeño descansito de cinco minutillos. 01:23:01
Perfecto, perfecto. 01:23:05
Y continuamos. 01:23:07
Son las seis y media, pues hay cuarenta y tres, nos vemos. 01:23:09
Intentad, por favor, ser puntuales porque tenemos poquitos horarios del curso. 01:23:12
Y, bueno, hay que aprovechar. 01:23:17
Cinco minutillos, hay cuarenta y tres, nos vemos. 01:23:20
Os lo dejo aquí apuntado. 01:23:22
Vale. 01:23:25
Venga, esperad. 01:23:26
Subtítulos por la comunidad de Amara.org 01:23:54
Subtítulos por la comunidad de Amara.org 01:24:24
Subtítulos por la comunidad de Amara.org 01:24:54
Subtítulos por la comunidad de Amara.org 01:25:24
Subtítulos por la comunidad de Amara.org 01:25:54
Subtítulos por la comunidad de Amara.org 01:26:24
Subtítulos por la comunidad de Amara.org 01:26:54
Subtítulos por la comunidad de Amara.org 01:27:24
Subtítulos por la comunidad de Amara.org 01:27:54
Subtítulos por la comunidad de Amara.org 01:28:24
Subtítulos por la comunidad de Amara.org 01:28:54
Subtítulos por la comunidad de Amara.org 01:29:24
Bueno, ¿ya estamos? 01:29:42
Ya estamos. 01:29:45
Venga, perfecto. 01:29:48
Pues nada, vamos a seguir. 01:29:50
Entonces, como os comentaba, 01:29:52
básicamente este lenguaje de programación 01:29:54
lo que se fundamenta es en enviar mensajes 01:29:58
de un nodo a otro. 01:30:03
Y con eso vamos a ir, con ciertos nodos intermedios, 01:30:05
vamos a ir determinando cuál es el comportamiento 01:30:09
que debe tener el programa. 01:30:14
Entonces, en concreto, el tipo de mensajes 01:30:16
que se van a transmitir 01:30:18
son mensajes JSON, ¿vale? 01:30:20
¿Qué es un JSON? 01:30:23
Pues básicamente, bueno, JSON es el... 01:30:25
las siglas de notación de objetos de JavaScript. 01:30:29
Básicamente es una forma como de describir un objeto 01:30:35
en programación orientada a objetos. 01:30:38
Pues un objeto en JSON digamos que es un objeto 01:30:40
en contexto legible que permite intercomunicar información. 01:30:42
Por ejemplo, un JSON sería este. 01:30:47
Vamos a simplificarlo un poquito. 01:30:51
Me he dejado viendo la pantalla. 01:30:54
¿No lo estoy compartiendo? 01:30:56
Ay, perdón, perdón, perdón. 01:30:58
Ahora sí. 01:31:03
Pues este de aquí sería un JSON. 01:31:05
Vamos a simplificarlo. 01:31:07
Y así vemos un poquito los campos que tiene. 01:31:10
¿Cierto? ¿Hay alguien queriendo entrar en el chat? 01:31:13
Posiblemente. Un segundo. 01:31:15
Bueno, pues esto básicamente es un objeto JSON. 01:31:28
Y siempre tienen la misma forma. 01:31:33
Siempre es una llave de apertura, una llave de cierre 01:31:36
y entre medias digamos que yo voy definiendo 01:31:40
lo que son las propiedades y los valores. 01:31:45
Por ejemplo, si yo quisiera hacer un objeto 01:31:49
que hiciera constar el día de la semana o el día del mes 01:31:53
pues yo lo podría poner día. 01:31:56
Este es el nombre de la propiedad. 01:31:58
Y a continuación escribo lo que corresponda. 01:32:01
En este caso este JSON ya sería completo. 01:32:05
Si queremos que el JSON, que el objeto 01:32:09
contenga varias propiedades 01:32:11
pues las separamos por comas. 01:32:13
Pongo una coma y aquí podría poner, por ejemplo, mes. 01:32:16
Aquí en este caso, bueno, los JSON siempre 01:32:22
la parte de la izquierda, el nombre de la propiedad 01:32:26
siempre va con dobles comillas. 01:32:29
Porque es un texto, algo textual. 01:32:32
Mientras que la parte derecha va a depender 01:32:34
de lo que sea que esté almacenando 01:32:37
dentro de esa propiedad. 01:32:39
Esto lo veremos con más calma un poquito más adelante. 01:32:41
Simplemente que sepáis que se pueden almacenar 01:32:43
diferentes cosas. 01:32:46
Cuando veamos la parte de Javascript 01:32:48
tenemos que ver un pelín para poder 01:32:50
controlar un poco con más detalle el nodo de red. 01:32:52
Lo veremos con más calma. 01:32:56
Pero que sepáis que el JSON mínimo sería este. 01:32:58
Llave de apertura, llave de cierre 01:33:03
y en el medio una propiedad con un valor. 01:33:05
Bien hasta aquí. 01:33:10
En la página 5 del manual 01:33:18
tenéis un ejemplo un poco más complejo. 01:33:22
Y donde además aparecen los distintos tipos de datos 01:33:27
que puede contener cada una de las propiedades. 01:33:33
Por ejemplo, esta sería la ficha personal de alguien. 01:33:36
En la propiedad nombre es Alicia, Alice. 01:33:42
El nombre del medio es null. 01:33:46
Null es algo válido. 01:33:50
Null significa que no hemos querido rellenarlo. 01:33:52
Aquí en este caso no podemos poner middle name, 01:33:55
dos puntos y una coma. 01:33:58
Y ya está. 01:34:00
Si queremos que no figure nada 01:34:01
pues se pone un campo de tipo null. 01:34:03
Esto es un tipo de dato en Javascript. 01:34:05
Aquí tenemos como parte de la edad un 30. 01:34:08
Que este 30 como pasa con Arduino, con el CP32 01:34:12
no es lo mismo un 30 así que un 30 con comillas. 01:34:15
Es decir, si yo pongo esto 01:34:20
no es lo mismo que esto. 01:34:25
En este caso esto lo voy a interpretar como un número 01:34:32
y esto lo voy a interpretar como una string, 01:34:34
como un conjunto de caracteres. 01:34:37
¿Qué más cosas podemos tener dentro de un Json? 01:34:41
Bueno, pues podemos tener Arrays. 01:34:44
Los Arrays los hemos visto, 01:34:46
los que hayáis participado en cursos míos 01:34:50
sabéis lo que son los Arrays porque los hemos utilizado. 01:34:52
Los que no, ¿os suenan? 01:34:55
¿Los que sois nuevos conmigo sabéis lo que es un Array? 01:35:00
Sí. 01:35:04
Sí, sí. 01:35:05
Bueno, básicamente es una colección de elementos. 01:35:07
A diferencia de los Arrays en sí 01:35:12
que tienen que ser elementos del mismo tipo 01:35:15
aquí como veis, por ejemplo, un Array 01:35:18
que se utiliza el símbolo del colchete 01:35:22
no tiene por qué contener elementos del mismo tipo. 01:35:26
Aquí, por ejemplo, estamos metiendo dentro del Array 01:35:30
llamados favoritos el valor 5, que es un valor numérico 01:35:33
y el valor blue, que es un valor de tipo string, 01:35:37
de tipo cadena de texto. 01:35:42
¿Más cosillas que podemos tener? 01:35:45
Podemos tener... 01:35:47
Vale. 01:35:56
Podemos tener esto que hemos dicho que era al principio. 01:35:57
¿Vale? 01:36:06
La llave de apertura. 01:36:07
Exactamente. 01:36:09
Exactamente. 01:36:10
Yo puedo tener dentro de un JSON, puedo tener otro JSON. 01:36:11
Entonces, digamos que aquí en este ejemplo que os hemos puesto 01:36:15
la lista de gatos que alguien puede tener es un Array 01:36:19
y en su interior tiene diferentes objetos. 01:36:24
Tiene otro objeto que como propiedad nombre se llama Bob 01:36:27
y como edad 7. 01:36:31
Otro objeto que como propiedad nombre se llama Charlie 01:36:33
y como edad tiene 3. 01:36:36
Y aquí podemos poner tantos objetos 01:36:38
como quisiéramos dentro de este Array. 01:36:40
Es decir, esto es un Array de objetos JSON. 01:36:42
¿Vale? 01:36:46
Y lo último que podemos tener dentro de un JSON 01:36:47
es valores de tipo booleano. 01:36:51
¿Vale? 01:36:54
Es decir, sí o no. 01:36:55
¿Vale? 01:36:56
Verdadero o falso. 01:36:57
Se pone siempre con true o false. 01:36:58
¿Vale? 01:37:01
Pues esto básicamente es con lo que trabaja NodeRED. 01:37:02
Siempre va a pasarse este tipo de mensajes. 01:37:06
Normalmente cuando se mandan los objetos JSON 01:37:10
no se mandan así tan bonitos 01:37:15
sino que se mandan de esta manera. 01:37:17
Se mandan minimizados. 01:37:19
¿Vale? 01:37:21
Es decir, se quitan todos los intros, todos los espacios 01:37:22
y de esa manera se tarda menos en transmitir esa información. 01:37:25
¿Vale? 01:37:33
Este ejemplo de plataformas que estamos viendo aquí 01:37:34
es bastante complejo. 01:37:36
Los JSON con los que iremos trabajando son bastante más sencillitos. 01:37:38
Y los iremos viendo poco a poco. 01:37:44
No os asustéis por el ejemplo este. 01:37:46
Vale. 01:37:54
Con respecto a los nodos. 01:37:55
Aquí veis todos los posibles elementos gráficos 01:37:59
que un nodo puede presentar. 01:38:02
Antes os he enseñado el nodo de Inyect. 01:38:04
¿Vale? 01:38:09
Que lo tenemos aquí. 01:38:10
¿Vale? 01:38:12
Y de aquí os he contado que tenía como varias partes. 01:38:13
Teníamos por ejemplo este tirador. 01:38:15
¿Vale? 01:38:17
Que es el conector de salida. 01:38:18
Por aquí saldrá este nodo sacar información. 01:38:19
Si fuera un nodo de entrada, como por ejemplo el de Bug. 01:38:22
Este tiene entrada a la izquierda. 01:38:25
¿Vale? 01:38:27
Y no proporciona ninguna salida. 01:38:28
¿Vale? 01:38:30
Es el conector de la entrada. 01:38:31
A la izquierda o a la derecha en este caso. 01:38:32
Tenemos lo que es el icono. 01:38:36
¿Vale? 01:38:38
Estos iconos son modificables. 01:38:39
Yo puedo cambiarlos haciendo doble clic en un determinado objeto. 01:38:40
Yo puedo venirme aquí. 01:38:45
¿Vale? 01:38:49
Y elegir un icono que represente mejor lo que sea que esté haciendo. 01:38:50
¿Vale? 01:38:55
Esto no es muy relevante. 01:38:56
¿Vale? 01:38:58
Yo no perdería mucho el tiempo cambiando los iconos de los nodos. 01:38:59
Porque al final básicamente te vas orientando por el color. 01:39:03
O por el texto que aparece en su interior. 01:39:07
¿Vale? 01:39:09
Que ahora vemos cómo cambiarlo. 01:39:10
Eh, perdona Jorge. 01:39:11
Es que he hecho doble clic y no me ha salido eso exactamente. 01:39:12
¿Cómo has hecho...? 01:39:15
Doble clic. 01:39:16
Y ahora aquí... 01:39:17
Ah, en el... 01:39:18
Vale, vale. 01:39:19
Aquí tienes tres pestañas. 01:39:20
La rueda. 01:39:21
Sí. 01:39:23
La descripción. 01:39:24
Vale. 01:39:25
Y la apariencia. 01:39:26
Ya le he visto la apariencia. 01:39:27
¿Vale? 01:39:29
Eh... 01:39:31
Entonces pues nada. 01:39:32
Tenemos el icono. 01:39:33
Que básicamente es algo visual. 01:39:34
No afecta en absolutamente nada. 01:39:35
En el interior tenemos el nombre del nodo. 01:39:37
Que en este caso, el nodo Inyect. 01:39:39
En lugar de tener la palabra Inyect. 01:39:43
Lo que tiene como nombre es lo que sea que va a inyectar. 01:39:45
Es decir, el tipo de información que va a transmitir. 01:39:49
¿Vale? 01:39:53
Que ahora lo veremos. 01:39:54
Eh... 01:39:55
Más cositas que tenemos. 01:39:56
Vale. 01:39:57
Este triángulo naranja todavía no lo hemos visto. 01:39:58
Pero desafortunadamente nos saldrá a lo largo del curso. 01:40:01
Cuando veamos un icono naranja en el medio de un nodo. 01:40:04
Indica que hay algo que no hemos configurado correctamente. 01:40:09
¿Vale? 01:40:12
Ese nodo va a dar un error. 01:40:13
Y cuando hagamos el deploy no se comportará como estábamos esperando. 01:40:15
Eh... 01:40:20
Sin embargo, un circulito justo a la derecha. 01:40:21
Lo que nos viene a decir es que este nodo no está desplegado. 01:40:23
Es decir, que desde el último despliegue hasta este momento. 01:40:28
Ese nodo ha cambiado. 01:40:32
¿Vale? 01:40:33
Vamos a hacer una prueba. 01:40:34
Voy a coger este nodo de TimeStamp. 01:40:35
Y este nodo de... 01:40:36
Perdón. 01:40:37
Este nodo de Inyect. 01:40:38
Y este nodo de Debug. 01:40:39
Y despliegue. 01:40:40
Como veis se han quitado los bloques azules. 01:40:41
Los circulitos azules. 01:40:43
Pero si yo modifico cualquier cosa. 01:40:44
De cualquiera de los dos. 01:40:47
Por ejemplo, del nodo de Debug. 01:40:48
Por ejemplo si lo desplazo. 01:40:51
Esto ya le cuenta como que hemos modificado este nodo. 01:40:53
¿Vale? 01:40:58
De forma que vuelve a aparecer, vuelve a activarse la pestaña de Deploy. 01:40:59
Por cierto, esto para mí es un fallo. 01:41:03
Es decir, cuando tú tienes esto. 01:41:06
Y mueves este sitio. 01:41:09
Esto no debería requerir. 01:41:10
O no debería avisarnos de que se tiene que desplegar. 01:41:12
En las versiones nuevas que estéis utilizando también pasa. 01:41:16
¿Podéis probar? 01:41:19
Arrastrar un bloque y comprobar si aparece el circuito. 01:41:20
Esto podéis probarlo todos. 01:41:27
Excepto los que estéis con mi instancia de sin dormir. 01:41:29
De nodo de red. 01:41:32
No debería pasar. 01:41:39
Porque en realidad no hemos cambiado nada del comportamiento. 01:41:40
O sea, que ya mueva algo de sitio. 01:41:43
No cambia el comportamiento. 01:41:45
Va a seguir funcionando igual. 01:41:47
Vale. 01:41:51
Voy a dejar esto como estaba. 01:41:52
Por cierto, para borrar una conexión. 01:41:54
Aquí veis que he podido unir una salida de un elemento con una entrada. 01:41:56
¿Vale? 01:42:00
Para borrar esa conexión simplemente hago clic. 01:42:01
Y le doy a suprimir. 01:42:04
Y el orden inverso también funciona. 01:42:05
Yo puedo coger una salida y conectarlo con una entrada. 01:42:07
Vale. 01:42:10
Más cosas que nos podemos encontrar. 01:42:11
Pues poco más. 01:42:14
Nos podemos encontrar con los estados. 01:42:15
Hay algunos iconos, hay algunos nodos, perdón. 01:42:18
Que aparecen tanto un indicador de estado. 01:42:21
Como un mensaje de estado. 01:42:24
¿Vale? 01:42:26
Por ejemplo. 01:42:27
Los que se conectan a base de datos. 01:42:28
O los que se conectan a MQTT. 01:42:30
O los que se conectan a Telegram. 01:42:32
Normalmente estos nodos aparecen abajo. 01:42:34
Normalmente estos nodos aparecen abajo. 01:42:37
Un circulito. 01:42:40
Un cuadradito azul. 01:42:42
O rojo. 01:42:44
O verde. 01:42:45
En función de si está conectándose. 01:42:46
Si está con error. 01:42:48
O si se ha conectado. 01:42:49
¿Vale? 01:42:50
Y aquí aparecerá también un mensajito indicando que está conectado. 01:42:51
Lo iremos viendo un poco más adelante. 01:42:55
Por ahora esto no os lo puedo enseñar. 01:42:57
Y por último. 01:43:02
Aquí no aparece. 01:43:03
Pero algunos nodos. 01:43:05
Permiten activarse y desactivarse. 01:43:07
Mediante el uso del ratón. 01:43:09
Es el caso en concreto. 01:43:11
Del Intent y del Debug. 01:43:13
¿Vale? 01:43:15
Que tienen a su izquierda. 01:43:16
Respectivamente y a su derecha. 01:43:17
Dos como tiradores. 01:43:21
Por así decirlo. 01:43:23
Dos como botones. 01:43:24
Que permiten activar y desactivar. 01:43:25
¿Vale? 01:43:35
Pues vamos a ver. 01:43:36
Vamos a hacer nuestro primer flujo. 01:43:38
Y así veis un poco como son los mensajes que se pasan. 01:43:40
De un sitio a otro. 01:43:44
Y aprendemos a manejar los dos nodos más importantes. 01:43:46
Que son el Intent y el Debug. 01:43:50
Vale. 01:43:52
Pues si no lo tenéis hecho. 01:43:53
Por favor. 01:43:54
Sacad un nodo de Intent. 01:43:55
Y otro de Debug. 01:43:57
Y os voy a enseñar. 01:43:58
¿Vale? 01:43:59
Vale. 01:44:00
Pues si no lo tenéis hecho. 01:44:01
Por favor. 01:44:02
Sacad un nodo de Intent. 01:44:03
Y otro de Debug. 01:44:04
Y los vamos a unir entre sí. 01:44:05
Una pregunta solo. 01:44:09
Jorge. 01:44:11
¿Por qué ahí me pone Debug? 01:44:12
Es verdad que entro adentro y me pone MSG Payload. 01:44:14
En el Output. 01:44:16
Pero. 01:44:17
Me pone Debug y no pone MSG Payload. 01:44:18
Porque tienes una versión diferente a la mía. 01:44:22
Probablemente. 01:44:24
O sea tú sales Debug. 01:44:25
Lo sueltas. 01:44:26
Y aquí aparece otra cosa diferente. 01:44:27
¿No? 01:44:28
Me pone Debug. 01:44:29
Debug 2. 01:44:30
Debug 3. 01:44:31
O sea me pone cada uno de los Debug que voy poniendo. 01:44:32
Imagino que a todo el mundo si está en la última versión le pasa da igual. 01:44:34
No me va a pasar nada. 01:44:37
Sí. 01:44:38
Puede ser. 01:44:39
Yo estoy utilizando una versión antigua. 01:44:40
A mí también. 01:44:41
Vale. 01:44:42
A mí también me pasa. 01:44:43
Vale. 01:44:44
Vale. 01:44:45
Bueno. 01:44:46
Pues ya está. 01:44:47
Este es el flujo que quiero que hagáis. 01:44:48
¿Vale? 01:44:49
Un único Intent. 01:44:50
Que va a dos Debugs. 01:44:52
Y cuando lo tengáis. 01:44:55
Le dais a Deploy. 01:44:56
Por cierto. 01:45:00
Se me ha perdido la conexión al servidor. 01:45:01
Eso es como... 01:45:03
He salido y no puedo volver a entrar. 01:45:04
A ver. 01:45:10
¿Con qué...? 01:45:11
Estoy con Windows. 01:45:13
¿Puede ser que hayas cerrado la ventana de donde has puesto NoDeGuiónRed? 01:45:16
Pues sí. 01:45:22
Claro. 01:45:23
Es que esa ventana... 01:45:24
La tenía que haber cerrado. 01:45:25
Claro. 01:45:26
Lo comenté antes. 01:45:27
Tienes que mantenerla activa todo el rato porque si cerras la ventana se apaga el servidor. 01:45:28
Pero no pasa nada. 01:45:33
Abres otra vez el CMD y escribes NoDeGuiónRed. 01:45:34
No hay que hacer nada más. 01:45:37
Ah, vale, vale. 01:45:38
No hay que volver a hacer todo el proceso de instalación. 01:45:39
Ok. 01:45:42
Compruébalo y me dices. 01:45:44
Sí, sí, sí. 01:45:45
Jorge. 01:45:48
Sí. 01:45:49
¿No se puede que cuando arranques la máquina se apriete el servidor? 01:45:50
¿No de red? 01:45:55
O hay que cargarlo desde el terminal siempre. 01:45:56
Sí. 01:45:59
En Linux. 01:46:00
Tienes por ahí. 01:46:01
Están en la propiedad, en la propiedadía para hacer que arranque, o sea, que se inicie el arranque. 01:46:04
Y en Windows se hace con los servicios de Windows. 01:46:10
Que ahí me pilláis. 01:46:13
Sé que se puede hacer. 01:46:14
Sé que se puede crear un servicio con el arranque pero no sé cómo se hace. 01:46:15
Vale, gracias. 01:46:20
Vale. 01:46:24
Eh. 01:46:27
A ver, perdón. 01:46:30
Aquí. 01:46:33
Vale. 01:46:34
Una vez que tengamos hecho esto y le hemos dado al deploy, ya no tenemos que ver ningún 01:46:35
circulito azul encima de los nodos. 01:46:39
Y entonces os voy a pedir que vayáis en la ventana, en la barra lateral, os voy a pedir 01:46:42
que vayáis a la cucaracha. 01:46:48
Donde pone debujo. 01:46:52
Una vez que tengamos esto así, hacemos clic a la izquierda en el nodo de inject. 01:46:56
Un segundo que estoy diciendo. 01:47:01
Hacéis clic a la izquierda en el nodo de inject. 01:47:06
Y tiene que aparecer esto a la derecha. 01:47:11
¿Verdad? 01:47:14
¿A alguien no le aparece? 01:47:15
Vale. 01:47:17
Lo que sí me sale es un error al principio de Flow Credentials File que está encriptado 01:47:25
que usa un sistema de llave y tal, de clave y eso. 01:47:31
A ver, ¿me puedes? 01:47:36
Pero no te funciona lo que he pedido. 01:47:37
No, no, sí, sí funciona. 01:47:39
Pero lo pone abajo y pone como... 01:47:40
En vez de poner msgp-add-number, también me pone alguna información más de note.debug. 01:47:43
Pero bueno, yo creo que está bien. 01:47:50
Tendría que aparecerte a la derecha. 01:47:54
Pues esto, el nodo del que viene la información, lo que está llegando, o sea, el tipo de lo 01:47:58
que está llegando y qué está llegando. 01:48:04
Vale, vale, sí, está genial. 01:48:06
Así que yo creo que está bien. 01:48:09
Lo que pasa es que sale un msg más para que lo supieras. 01:48:10
Que sale un msg también de otra cosa. 01:48:14
Pero bueno, que va bien, va bien. 01:48:17
¿Puede ser que tengas algún otro bloque que yo no haya pedido en tu flujo? 01:48:19
Ah, tengo otro Flow que si eso lo hago lo elimino y ya está. 01:48:24
Claro, es que es posible que ese otro Flow sea el que está generando ese msg. 01:48:27
¿Cómo elimino el Flow? 01:48:32
¿Le pincho y le he llevado o no? 01:48:33
Para eliminar el Flow haces doble clic. 01:48:35
Sí. 01:48:38
Y le das a delete. 01:48:39
Vale. 01:48:40
Yo no puedo darle porque solo tengo uno. 01:48:41
Pues ya está, gracias. 01:48:43
Vale. 01:48:45
Entonces, primera cosa que quiero que veáis. 01:48:46
Pues lo que hace Timestamp es generar un numerito con la fecha actual. 01:48:50
¿Qué es este numerito? 01:48:56
Bueno, pues este número básicamente es el número de milisegundos que han transcurrido 01:48:58
desde el 1 de enero de 1970. 01:49:04
¿Vale? 01:49:07
Que se considera como el punto de partida, por así decirlo, de la informática moderna. 01:49:08
Entonces, a mí esto no me dice... 01:49:12
O sea, este es el número que se transmite. 01:49:15
Cuando veamos el JSON que se está mandando, este es el número que realmente se está transmitiendo. 01:49:17
Pero, como yo soy humano y me llevo muy mal con números tan grandes, 01:49:21
a mí me interesaría saber a qué fecha se corresponde esto. 01:49:26
Entonces, no de red. 01:49:30
Lo que nos permite es que, siempre que tengamos un valor numérico, eres capaz de traducirlo a diferentes cosas. 01:49:31
Entonces, si yo hago clic sobre el propio número que aparece a la derecha... 01:49:37
¿Vale? 01:49:44
Veis que me lo va rotando en diferentes... 01:49:45
O sea, todo es lo mismo. 01:49:48
Lo puedo ver el número en decimal. 01:49:49
Lo puedo ver traducido a... 01:49:51
Este es el ISO no sé cuántos. 01:49:54
Una forma de representar las fechas. 01:49:56
Lo puedo ver en formato humano. 01:49:58
12.04.2023 a las 19.01.55. 01:50:00
Con 12 más 2. 01:50:03
O lo puedo ver en hexadecimal, si quiero. 01:50:04
¿Vale? ¿No os funciona? 01:50:08
Sí. 01:50:11
Es importante que tengáis en cuenta que esto no cambia lo que se ha recibido. 01:50:12
Cambia la forma en la que la página web nos lo está mostrando a nosotros. 01:50:17
Es decir, lo que se transmite es este número. 01:50:21
Tal cual. 01:50:23
Vale, otra cosa que quiero que os fijéis. 01:50:25
Cuando yo paso el ratón por un mensaje que aparece en el nodo de debug. 01:50:28
A la vez se marca el nodo de debug responsable de haber impreso eso. 01:50:33
¿Lo veis? 01:50:40
Según me pongo encima de uno o de otro. 01:50:42
Yo voy viendo quién es el nodo de debug que ha generado ese mensaje. 01:50:45
Sí. 01:50:51
Y esto puede parecer una tontería. 01:50:54
Pero en realidad es muy útil. 01:50:56
Porque muchas veces a mí no me interesa tanto saber cuál es el mensaje que ha llegado. 01:50:58
Sino de dónde me ha llegado ese mensaje. 01:51:03
Para saber cuál está siendo el flujo de la información. 01:51:05
¿Vale? 01:51:08
Entonces tener varios debugs para ver por dónde van las cosas. 01:51:09
Pues facilita un poco la resolución de problemas o incluso el desarrollo. 01:51:12
¿Bien hasta aquí? 01:51:18
Sí. 01:51:22
Jorge, una pregunta. 01:51:23
Sí. 01:51:25
¿La sesión se puede salvar? 01:51:27
¿Se puede guardar lo que estamos haciendo? 01:51:29
¿O se queda automáticamente registrado? 01:51:31
Se queda automáticamente guardado. 01:51:34
Sí. 01:51:37
Otra cosa es que tú quieras, por ejemplo, hacerte una copia de seguridad adicional. 01:51:38
Y entonces en ese caso puedes venirte aquí. 01:51:44
Arriba a la derecha. 01:51:47
Y le das a exportar. 01:51:48
Y esto es curioso porque por defecto te va a seleccionar todo. 01:51:51
Le pones aquí en all flows. 01:51:57
Le das a JSON. 01:52:01
Y fíjate cómo representa a él la información. 01:52:03
En realidad todo el trabajo que estamos haciendo es un array de objetos. 01:52:09
Un corchete. 01:52:15
Y aquí viene un objeto. 01:52:16
Aquí viene otro objeto. 01:52:17
Aquí viene otro objeto. 01:52:19
Aquí viene otro objeto. 01:52:20
Entonces yo puedo copiarlo y lo guardo como un fichero. 01:52:21
¿Vale? 01:52:28
O darle a descargar. 01:52:29
O copiarlo al clipboard. 01:52:30
Y pegarlo en otra instancia. 01:52:33
Pero no es necesario. 01:52:35
O sea, por defecto, si yo no toco nada, la siguiente vez que arranque mi servidor de 01:52:36
red, va a estar todo como lo dejo. 01:52:41
Espera, perdonad. 01:52:45
Voy a motearos porque hay alguien con mi impresora o algo así funcionando. 01:52:46
Sí, perdonad. 01:52:49
Que soy yo que lo he dejado abierto. 01:52:50
Perdonad. 01:52:52
Vale. 01:52:53
Vale. 01:52:59
Entonces, ¿bien con eso? 01:53:00
Entonces, fijaros en una cosa. 01:53:06
¿Veis que los nodos de depuración tienen a su derecha un botón verde? 01:53:07
Haced clic en uno de ellos para que se convierta en gris. 01:53:13
Y no le deis a deploy. 01:53:19
¿Vale? 01:53:20
Vamos a dejar este nodo con el circulito azul arriba a la derecha. 01:53:21
Y ahora, a continuación, le vamos a dar de nuevo a timestamp. 01:53:26
A generar el timestamp. 01:53:29
¿Qué es lo que sucede? 01:53:34
Se ha anulado uno de ellos. 01:53:39
Eso es. 01:53:42
Digamos que esto lo que nos permite es, de forma rápida y sin tener que desplegar, 01:53:43
a pesar de que aparezca aquí el simbolito azul, 01:53:47
sin tener que desplegar yo puedo decidir que ciertos nodos de depuración 01:53:50
no quiero que me molesten. 01:53:54
No quiero que aparezcan en la pestaña de depuración. 01:53:56
¿Vale? 01:54:00
Puedo hacerlo dinámicamente sin tener que recompilar. 01:54:01
Ahora no aparece ninguno. 01:54:03
Ahora quiero que aparezca solo el de arriba. 01:54:05
Ahora quiero que aparezcan los dos. 01:54:07
Y se mantiene lo que os comentaba antes. 01:54:10
Yo puedo ir pasando por encima de cada mensaje 01:54:12
y voy viendo quién es el responsable de generar cada mensaje. 01:54:15
Hasta aquí fácil, ¿verdad? 01:54:20
Vale. 01:54:25
Pues aprovecho, como ya tenemos que tener unos cuantos, 01:54:26
aprovecho para enseñaros otro icono que aparece arriba a la derecha, 01:54:28
que es el de borrar la ventana de depuración. 01:54:31
Vale. 01:54:34
Hay una papelera arriba a la derecha. 01:54:35
Le hacemos clic. 01:54:36
Y esto borra todos los mensajes. 01:54:37
Porque ahora quiero cambiar una de las vistas 01:54:39
de los mensajes de debug. 01:54:42
Bueno, repito, ahora vuelvo a borrar. 01:54:46
Fijaos que yo antes os he comentado 01:54:48
que en este lenguaje de programación 01:54:51
o en este entorno de programación 01:54:53
todo lo que se transmite son mensajes JSON. 01:54:55
Pero aquí yo lo que estoy viendo es que me ha llegado un número. 01:54:58
¿Verdad? 01:55:02
Entonces, ¿por qué está pasando? 01:55:03
¿Os he mentido? 01:55:05
La respuesta es que no. 01:55:07
La respuesta es que en realidad 01:55:09
cuando mandamos un mensaje 01:55:13
a través de entorno de red 01:55:17
se suele mandar como... 01:55:19
O sea, es un objeto llamado msg 01:55:21
y dentro va otro objeto llamado payload. 01:55:24
Y dentro de payload va lo que queramos transmitir. 01:55:28
¿Vale? 01:55:33
Entonces, en este caso, como el debug 01:55:34
aparece msg.payload 01:55:37
solo nos va a mostrar... 01:55:40
Vamos a volver al ejemplo de antes. 01:55:42
Si yo me vengo aquí... 01:55:44
O sea, si yo pongo msg que hace referencia al objeto completo 01:55:46
si yo le pido a Node-RED 01:55:49
que me muestre msg.departamento 01:55:53
lo que me mostrará será simplemente un 8. 01:55:56
Pero, si le pido que me muestre msg 01:56:00
me mostrará todo este churro completo. 01:56:03
Vamos a verlo. 01:56:06
Creo que voy a quedar un poco más claro. 01:56:07
Entonces, para hacer eso, hacemos doble clic 01:56:09
en cualquiera de los dos nodos de decoración que tenemos. 01:56:12
Yo voy a hacerlo en el de abajo, por ejemplo. 01:56:16
Y nos tiene que aparecer este desplegable por la derecha. 01:56:19
¿Estamos aquí? 01:56:21
Sí. 01:56:25
Vale. 01:56:27
¿Veis que arriba del todo 01:56:28
nos aparece una selección 01:56:30
que nos permite elegir cual es la salida que queremos representar. 01:56:33
Y por defecto, nos está mostrando el payload del mensaje. 01:56:36
Hacemos clic en donde pone msg, que aparece un desplegable. 01:56:43
Y le vamos a pedir que nos muestre el mensaje completo, 01:56:47
el objeto completo. 01:56:51
Solo eso, no cambiamos nada más. 01:56:53
De forma que ahora tenemos 01:56:56
un debug que aparece msg.payload 01:56:58
y otro debug que es solo msg. 01:57:01
Y ahora sí que debemos desplegar. 01:57:04
Yo voy también a borrar los mensajes antiguos. 01:57:08
Y entonces, una vez que tenemos un mensaje con msg.payload 01:57:12
y otro debug con msg, 01:57:15
y el debug borrado, le hacemos clic en el inyector. 01:57:17
Y aquí es donde se explica un poco 01:57:22
lo que os he comentado antes con respecto a los mensajes JSON. 01:57:25
Fijaos que el debug de arriba, 01:57:29
el que está como estaba, 01:57:32
sigue mandando la misma información, que es la fecha. 01:57:34
Pero sin embargo, al debug de abajo, 01:57:37
al que le he pedido que me muestre el objeto completo, 01:57:39
me va a decir qué es lo que contiene. 01:57:42
De hecho, visto así, 01:57:44
si yo le doy a la flechita hacia arriba, 01:57:46
esto que tenemos aquí, es un JSON. 01:57:49
Si yo lo edito en un editor de texto, 01:57:52
¿vale? Veis que es un JSON que contiene este campo, 01:57:59
o este objeto, 01:58:02
perdón, este mensaje. 01:58:04
Y si yo le doy a la flechita hacia arriba, 01:58:06
esto que tenemos aquí es un JSON. 01:58:09
Si yo lo edito en un editor de texto, 01:58:12
perdón, esta propiedad, esta propiedad y esta propiedad. 01:58:15
Eso es lo que se ha transmitido, eso es lo que ha generado 01:58:20
el nodo de Inject cuando le hemos hecho clic. 01:58:23
Ay, perdón, no estáis viendo nada, ¿verdad? 01:58:27
Aquí. ¿Veis? 01:58:33
Esto es una propiedad llamada MSGID, 01:58:37
que esto básicamente es un, cada vez que se genera un mensaje 01:58:40
dentro del nodo de red, a cada mensaje en concreto se le genera 01:58:43
un número. Es como la trazabilidad de los alimentos. 01:58:46
Cada mensaje que se genera recibe un número. 01:58:49
Y ese mensaje va transcurriendo 01:58:52
por todos los nodos intermedios hasta que llegue al final. 01:58:55
Entonces, esto es una de las propiedades que tiene este objeto. 01:58:58
Otra de las propiedades que tiene, pues es el payload. 01:59:01
Y otra de las propiedades que tiene es el topic. 01:59:04
El topic, en este caso, está vacío. 01:59:07
Eso es lo que se ha transmitido, en realidad. 01:59:10
Cuando yo he hecho clic en 01:59:13
en Inject. 01:59:16
Al hacer clic en la parte 01:59:19
de Debug, en Despegar, me lo pinta ya bonito. 01:59:22
Podemos ir indicando, o ir viendo 01:59:27
más fácilmente que es lo que se ha transmitido. 01:59:30
¿Viene en la diferencia de ver 01:59:33
el mensaje completo o ver solo una de las partes? 01:59:36
Jorge, no sé si 01:59:39
será algo también de la versión, pero por lo menos a mí 01:59:42
en mi caso, cuando he cambiado el tipo de mensaje 01:59:45
no se me aparece en el 01:59:48
cuadradito. Yo sigo teniendo Debug 1. 01:59:51
Aunque me muestra el mensaje 01:59:54
ampliado. Ah, que no cambia el nombre. 01:59:57
No. Vale. 02:00:00
Puede ser de la versión, sí. Otras formas, los nombres que aparecen 02:00:03
los podemos machacar. Podemos poner el que 02:00:06
nosotros queramos aquí abajo. Si hacemos click 02:00:09
aquí podemos poner mensaje completo. 02:00:12
Y aquí podemos poner... 02:00:18
O sea, que por defecto esta versión 02:00:21
de no de red aparezcan igual 02:00:24
no significa que no los puedas cambiar tú a mano. 02:00:27
A mí, personalmente, me gusta más que lo haga 02:00:30
automáticamente el Debug 02:00:33
muestra lo que va a ser capaz de transmitir 02:00:36
en el cuadro de depuración. 02:00:39
Pero sí, igual hay más 02:00:42
diferencias como estas de una versión a otra. 02:00:45
¿Bien hasta aquí? 02:00:48
Sí, bien bien. 02:00:51
Ahora que hemos visto la parte 02:00:54
del Debug, aunque nos quedan algunas cosas por 02:00:57
ver todavía, que veremos un poquito más adelante. Quiero que le echemos 02:01:00
un vistazo a qué opciones tenemos 02:01:03
dentro del Inyect. Así que vamos a hacer doble click 02:01:06
en el Inyect. 02:01:09
Y aquí vemos un poco parecido a lo que teníamos antes. 02:01:12
Yo puedo darle un nombre. 02:01:15
Pues le podemos poner... ¿Qué es esto? 02:01:18
Generar entrada. 02:01:21
Esto lo que me va a hacer es cambiar el nombre 02:01:24
a lo que sea que yo le vaya a escribir. 02:01:27
Esto cuando vayamos haciendo flujos más complejos 02:01:30
suele ser interesante que le pongamos nombres a las cosas 02:01:33
para que nos sea más fácil localizarlas. 02:01:36
Vale. Y aquí lo que tenemos 02:01:39
un Inyect lo podemos entender 02:01:42
como un generador de JSON. 02:01:45
Como un generador de JSON. Y aquí vamos a ir 02:01:48
pudiendo elegir qué tipo de... 02:01:51
qué propiedades va a tener y de qué tipo. 02:01:55
Entonces, por ejemplo, veis que por defecto 02:01:58
él guarda dentro de payloads 02:02:01
guarda el timestamp. 02:02:04
El timestamp es ese número que os he dicho que representa 02:02:07
el número de milisegundos transcurridos desde no sé qué año. 02:02:10
Pero yo puedo decir que 02:02:13
en vez de mandar este payload, mande otro diferente. 02:02:16
Y si os fijáis, yo aquí tengo 02:02:19
varias cosas para elegir. 02:02:22
Vamos a comentar muy por encima 02:02:25
qué es cada una de las cosas, sobre todo las más complicadas, porque veremos más adelante. 02:02:28
Y hacemos una pruebecilla. 02:02:31
Por ejemplo, flow y global son para mandar 02:02:34
el contenido de una variable. Estas las vamos a ver más adelante. 02:02:37
Un string, que esto lo podemos 02:02:40
seleccionar, pues es para escribir un texto. 02:02:43
Y ahora ya 02:02:46
en payload, si yo hago clic 02:02:49
en done, despliego 02:02:52
y envío, pues ahora 02:02:55
veremos que el nodo de debug superior 02:02:58
me muestra la palabra hola exclusivamente 02:03:01
y aquí el de abajo me dice que como payload 02:03:04
como parte de payload, es la cadena 02:03:07
de texto hola. Esta es la forma de 02:03:10
cambiar el que se genera cuando yo hago clic 02:03:13
en ese inyecte. ¿Qué más cosas puedo 02:03:16
inyectar? Básicamente es lo que os expliqué antes. 02:03:19
Los tipos de elementos que os expliqué antes. Podemos mandar también un número. 02:03:22
En este caso, esto nos va a dejar 02:03:25
¿Veis? Aquí tenemos el triangulito 02:03:28
que os quería enseñaros antes. Este nodo está defectuoso 02:03:31
porque le he pedido que, de hecho, si 02:03:34
trato de desplegar, me va a generar una advertencia 02:03:37
y luego 02:03:40
me va a mostrar un error. Lo que me está diciendo es que 02:03:44
estoy mandando un número y sin embargo 02:03:47
lo que le he pedido que mande es un texto. 02:03:50
A mí me ha dejado, Jorge. 02:03:53
Sí, sí. Dejarte te deja. 02:03:56
No, quédense que no me ha salido el cosito rojo. 02:03:59
¿Le has puesto string? ¿Le has puesto hola? 02:04:02
¿Le has puesto número? ¿Le has puesto hola? 02:04:05
Un broma contigo, pero vamos a ver... 02:04:08
Eso sí. 02:04:12
Lo que no puedes hacer es poner un número 02:04:15
y escribir un texto. 02:04:18
Pero poner un texto 02:04:21
y escribir un número, sí. 02:04:24
Pero fijaos la diferencia. 02:04:27
La diferencia es que cuando yo mando esto 02:04:30
va a aparecer entre comillas 02:04:33
¿Lo veis? Que payload es 02:04:36
623 entre comillas y sin embargo 02:04:39
si le pongo 623 como parte 02:04:42
indicándole que es de tipo número y lo vuelvo a mandar 02:04:45
lo que va a llegar ahora 02:04:48
va a ser un 623 sin comillas. 02:04:51
En el primer caso era un texto, una string 02:04:54
una cadena de caracteres y en el segundo 02:04:57
caso es un número. 02:05:00
Lo que no te tiene que dejar es como parte 02:05:03
de un tipo de dato numérico 02:05:06
escribir un texto. 02:05:09
¿Vale? Compruébalo y eso te tiene que decir que... 02:05:12
Sí, está comprobado, está perfecto. 02:05:15
Más cosillas que podemos meter dentro 02:05:18
de un objeto cotasón mediante el 02:05:21
inyector, pues podemos meter un booleano. 02:05:24
Y aquí básicamente ya no te deja escribir, solo te deja 02:05:27
seleccionar si queremos un true o un false. 02:05:30
Más cosas. Podemos escribir un cotasón 02:05:36
y aquí para el ejemplo 02:05:39
voy a coger este que aparece en la wikipedia y así lo veis. 02:05:42
Hemos ido a la wikipedia, a la parte de cotasón 02:05:45
cogemos este ejemplo 02:05:48
lo voy a coclear y lo voy a pegar 02:05:51
tal cual donde estaba. 02:05:54
De hecho aquí si no os fiais 02:05:57
de que esto esté bien hecho 02:06:00
le podéis dar a estos tres puntitos que aparecen 02:06:03
a la derecha y aparece un editor de 02:06:06
cotasón. Aquí en este caso 02:06:09
nos va a ir dando como una 02:06:12
referencia visual de que está todo bien. 02:06:15
Entonces cuando ya tengo el cotasón... 02:06:18
Ahora os dejo un minuto para que lo hagáis vosotros. Primero 02:06:21
os enseñáis como lo hago y luego os dejo que lo practiquéis. Le damos a Done 02:06:24
le damos a Done y ahora voy a 02:06:27
borrar esto para que no nos moleste. Cuando le de 02:06:30
a Desplegar y a Emitir 02:06:33
fijaos que ahora 02:06:36
si yo evalúo primero el nodo de debug 02:06:39
que aparecía el mensaje completo, aparecerá 02:06:42
el identificador de mensaje 02:06:45
el topic vacío y en Payload me dirá que hay un objeto. 02:06:48
¿Qué objeto hay dentro? Pues el que he creado 02:06:51
que venía de la wikipedia. Departamento 8, Ventas 02:06:54
de Juan Rodríguez. Como empleados tiene 02:06:57
este elemento que es un objeto y este elemento que es otro objeto. 02:07:00
Si yo evalúo por otro lado el otro 02:07:03
debug, que es el que no tenía, no es el mensaje 02:07:06
completo, sino que solo me muestra la parte de Payload, pues es solo lo que cuelga 02:07:09
de aquí. Por eso veo 02:07:12
lo que he copiado directamente de la wikipedia sin nada más. 02:07:15
Así que ahora os dejo un minutito para que 02:07:18
practiquéis con los tipos de datos que hemos visto hasta el momento. 02:07:21
Cualquier cosa me vais diciendo. 02:07:24
No he entendido yo lo último que ha dicho. 02:07:54
En un objeto me tiene que aparecer en el Payload, ¿no? 02:07:57
¿Ha dicho? 02:08:00
Sí. 02:08:03
Claro, en un nodo de debug te tiene que aparecer 02:08:06
el Payload que contiene otro objeto. 02:08:09
Eso, el Payload pone Object y luego me pone 02:08:12
Departamento, Nombre de Venta, sí. 02:08:15
Y luego también sale el Payload que contiene otro objeto. 02:08:18
Departamento, Nombre de Venta, sí. 02:08:21
Array 2, 0, 1, Object y en el otro 02:08:24
me tiene que salir, ¿cómo? ¿Qué diferencia hay? 02:08:27
En el que tienes el mensaje completo 02:08:30
te tiene que aparecer también el msgid 02:08:33
y también el topic. 02:08:36
Es decir, uno es un subconjunto del otro. 02:08:39
Vale. 02:08:42
En el otro mapa es el msgid, ¿verdad? 02:08:45
Y el topic. 02:08:48
En el que es el mensaje completo aparece todo el JSON 02:08:51
con todo lo que cuelga de él. Mientras que en el que has puesto 02:08:54
msg.payload solo te muestra esa rama. 02:08:57
Vale, claro. 02:09:00
Porque te muestra solo el objeto, o sea, lo que es el Payload 02:09:03
claro, el objeto. 02:09:06
De este objeto estás viendo la pantalla, ¿verdad? 02:09:09
Yo podría, no quiero ver Payload 02:09:12
en este tal, quiero ver msg.payload.director 02:09:15
Vale, vamos a ver qué pasa. 02:09:20
Hago el deploy. 02:09:23
Género. 02:09:26
Y fíjate lo que ha aparecido ahora. 02:09:29
Es decir, de esta forma 02:09:32
yo puedo ir seleccionando 02:09:35
qué aparece, o sea, qué información 02:09:38
quiero realmente que aparezca por la ventana de depuración. 02:09:41
Desde que me muestre el mensaje completo 02:09:44
como aquí en este caso, hasta que me muestre solo una rama 02:09:47
hasta que me muestre solo una rama de la rama. 02:09:50
Vale, genial. 02:09:53
Gracias. 02:09:56
Es más, yo podría continuar, por ejemplo, si quiero ver 02:09:59
empleados. 02:10:02
Si muestro esto, ¿qué aparecerá? 02:10:05
Pues a ver, espérate que tengo aquí el JSON 02:10:08
Si muestro empleados, pues aparecerán los dos 02:10:11
Pedro y Jacinto, ¿no? 02:10:14
Y si quisiera que me apareciera solo el nombre de Pedro 02:10:17
el nombre del primer empleado 02:10:20
¿Tendrías que poner corchetes 1 o 0? 02:10:23
¿Corchetes 0 puede ser? 02:10:26
Vamos a probarlo. 02:10:29
¿Así? 02:10:32
Sí. 02:10:35
Míralo Juan Rodríguez, ¿no? 02:10:39
No, Pedro, eso. Pedro, sí, sí, que me estoy equivocando ahora. 02:10:42
Juan Rodríguez está en el otro. Ah, pues sí, es como, claro, 02:10:45
JavaScript, puro duro para hacer, y JavaScript son para, en fin. 02:10:48
Vale, vale, guay. 02:10:51
Es más o menos intuitivo. 02:10:54
Qué guay. 02:10:57
Vengo a hacer un curso de VueJS 02:11:00
que me he tirado tres meses 02:11:03
y no he aprendido nada, nada. 02:11:06
Tenía una depresión, digo, menos mal que el curso 02:11:09
no empiece contigo, porque, joder, de verdad, qué horror. 02:11:12
Y bueno, tú ya me contestas un poco, yo soy original, que me interesa mucho, 02:11:15
he llegado a pensar, digo, ¿será que soy tonto? No, ya sé que no soy tonto. 02:11:18
Pero es que es exagerar por ser qué malo era, o sea, qué desastre, de verdad. 02:11:21
Y presencial y todo, o sea, horroroso. Y era doctor en no sé qué. 02:11:24
O sea, guay. Bueno, perdona. 02:11:27
Qué pena. 02:11:30
Bueno, que no quiero entretener, ya te contaré. 02:11:33
Muy bien. 02:11:36
Vale, ¿qué tal las pruebas de los demás? ¿Os ha funcionado? 02:11:39
¿Habéis podido copiar el JSON de la Wikipedia, metérselo dentro 02:11:42
del inject como un JSON 02:11:45
y se ve los campos que va generando y mandando? 02:11:48
Vale, estupendo. 02:11:51
Venga, pues vamos a continuar viendo el resto de cosillas que permite 02:11:54
de tipo de dato 02:11:57
un index. 02:12:00
Tenemos el JSON. Tenemos el buffer, este no lo vamos a ver. 02:12:03
Esto es por si yo quiero mandar un 02:12:06
fichero, por ejemplo. Si quiero mandar un fichero binario. 02:12:09
Esto no lo vamos a utilizar 02:12:12
en el curso, pero se podría hacer para mandar, por ejemplo, 02:12:15
una foto. 02:12:18
Timestamp, ya lo hemos visto. 02:12:21
Outtraspersion lo veremos 02:12:24
el lunes, que es la siguiente clase. 02:12:27
Y estos son variables. 02:12:30
Vale, variables de entorno que no vamos a utilizar 02:12:33
por ahora. Y msg. 02:12:36
Pues podemos hacer que esto 02:12:39
aquí en este caso no tiene mucho sentido, pero 02:12:42
podríamos hacer que se mandara como parte del payload 02:12:45
el contenido de otra propiedad que estuviera previamente. 02:12:48
Esto es un poco raro. 02:12:51
Puesto en la primera posición no tiene sentido. 02:12:54
Pero, por ejemplo, topic básicamente 02:12:57
se utiliza cuando juguemos con MQTT. 02:13:00
Sabéis que la palabra topic 02:13:03
nos debería sonar de MQTT. Es el lugar en el que 02:13:06
yo hago una publicación. 02:13:09
Si yo le digo que la publicación va a ser 02:13:12
prueba. 02:13:15
Cuando yo mando 02:13:18
este mensaje 02:13:21
dentro de topic aparecerá la palabra prueba 02:13:24
y dentro de payload aparecerá lo que sea que tenga aquí puesto. 02:13:27
Si aquí pongo 02:13:30
que como payload 02:13:33
me muestra el contenido topic, esto no va a funcionar. 02:13:36
¿Alguien intuye por qué? 02:13:39
Vamos a 02:13:42
hacerlo para que lo veáis. 02:13:45
¿Por qué no ha funcionado? 02:13:51
O sea, porque payload también debería ser prueba, ¿verdad? 02:13:58
Porque es secuencial. 02:14:01
Exactamente. 02:14:04
De hecho, ¿veis estos tiradores que tiene a la izquierda? 02:14:07
Si yo modifico para que topic se establezca 02:14:13
antes que payload 02:14:16
ahora sí que funciona. 02:14:21
Topic vale prueba y payload vale lo mismo 02:14:24
que lo que valía msg.topic. 02:14:27
¿Vale? 02:14:34
En este caso el inject no tiene mucho 02:14:37
sentido. 02:14:40
Lo de hacer que una propiedad 02:14:43
se herede de otra propiedad que ya venía tiene sentido 02:14:46
en otros bloques que vamos a ver más adelante, en otros nodos. 02:14:49
Pero en el inject no tiene sentido porque tú estás configurando 02:14:52
como quieres que sea cada una de las propiedades que estás 02:14:55
inyectando. 02:14:58
¿Dudas con esto? 02:15:05
Por cierto, recordad que no os pase como a mí. 02:15:14
Si hemos cambiado, si hemos hecho muy específico un determinado 02:15:17
debug, como por ejemplo este que estaba preparado para el ejemplo de la Wikipedia 02:15:20
ahora cuando le dé a enviar 02:15:23
me parecerá un definido. 02:15:26
Un definido. 02:15:29
¿Vale? Que no existe dentro de payload 02:15:32
ningún array 02:15:35
que tenga después nombre. 02:15:38
Esto habría que volver a ponerlo como payload 02:15:41
para que se comporte como estaba originalmente. 02:15:44
Este muestra el payload que había establecido 02:15:50
como un booleano. 02:15:53
Y este me muestra el mensaje completo que incluía el topic y el payload. 02:15:56
¿Qué tal hasta aquí? 02:16:02
Contadme dudas. 02:16:05
O consultas. A ver el chat. 02:16:08
Vale. 02:16:15
Vale, parece que todo bien. 02:16:25
Vamos a continuar con un par de cosillas más que tiene interesantes 02:16:28
el Inyect. 02:16:31
Hasta ahora el Inyect 02:16:34
nos permitía hacer una inserción manual. 02:16:37
Y esto 02:16:40
viene genial para prototipar. 02:16:43
Para hacer nuestra programación. 02:16:46
Yo quiero ver como se comporta un determinado nodo ante un estímulo. 02:16:49
Imaginemos por ejemplo que estamos haciendo 02:16:52
relacionado con hacia donde queremos que esto 02:16:55
converja, que es hacia el tema de IoT. 02:16:58
Imaginemos que estamos simulando un sensor que nos manda todo el rato 02:17:01
cada 5 minutos la temperatura y la humedad. 02:17:04
Y yo quiero registrarlos y meterlos en una base de datos 02:17:07
sobre ciertos elementos. 02:17:10
Yo antes de tener ese sensor funcionando 02:17:13
puedo simular como se comportaría 02:17:16
ese sensor generando diferentes 02:17:19
index. 02:17:22
Por ejemplo, vamos a ver un ejemplo. 02:17:25
Sensor prueba 1. 02:17:28
Entonces voy a decir que payload 02:17:31
vamos a decir que temperatura 02:17:34
es igual a, por ejemplo vamos a ponerle 02:17:37
un número 02:17:40
27 y que humedad 02:17:43
es igual a 02:17:46
40. 02:17:49
Y este voy a hacer uno que tenga 12 grados 02:18:02
y que tenga 70 de humedad. 02:18:05
Aquí evidentemente no estoy 02:18:11
aplicando ninguna lógica todavía, pero 02:18:14
sin tener el sensor realmente hecho 02:18:17
todavía ni funcionando ni emitiendo nada, yo ya puedo 02:18:20
ir simulando como se va a comportar mi 02:18:23
código, lo que sea que ponga aquí entre medias 02:18:26
haciendo clic en diferentes botones. 02:18:29
De forma que puedo ir trabajando en la lógica del comportamiento 02:18:32
del backend, por así decirlo, de la parte de 02:18:35
lógica del cacharro sin tener el cacharro físicamente hecho. 02:18:38
Entonces los injects son fundamentales para 02:18:44
las primeras partes del desarrollo 02:18:47
de aplicaciones en NodeRED. 02:18:50
¿Se entiende esto? 02:18:53
Vale. 02:18:57
Vamos a ver, a coger un inject normal. 02:19:00
Porque os quiero contar 02:19:03
otra cosilla. Vale, entonces hemos visto 02:19:06
de la parte de los injects hemos visto 02:19:09
que yo le puedo dar el nombre en concreto 02:19:12
que quiera, que me resulte fácil de acordarme. 02:19:15
Puedo poner información dentro de 02:19:18
payload o dentro de topic o puedo crear mi propia 02:19:21
información, como hemos visto antes, que pueda ser 02:19:24
humedad. Puedo crear tantas como quiera. 02:19:27
Por cierto, esto que acabo de hacer 02:19:30
no es lo recomendable. Es decir, 02:19:33
crear, digamos, 02:19:36
dentro del mensaje, humedad y temperatura, no es lo suyo. 02:19:39
Lo suyo es crear, como hemos visto antes, 02:19:42
dentro de payload y decirle que 02:19:45
queremos enviar un JSON. ¿Qué JSON 02:19:48
queremos enviar? Pues temperatura. 02:19:51
Temperatura. 02:19:54
2.17 02:19:57
Humedad 2.30 02:20:00
Y esto es más adecuado porque esto viaja 02:20:08
dentro de payload. Que es, digamos, 02:20:11
está en la línea de la 02:20:14
filosofía de cómo se ha pensado 02:20:17
cómo funciona en modern red. Todos los mensajes 02:20:20
que sean importantes para nosotros deben ir 02:20:23
dentro de payload. ¿Vale? Pero no hay nada que nos impida 02:20:26
hacerlo de la manera que os acabo de enseñar. 02:20:29
¿Sí? ¿Se entiende la diferencia? 02:20:32
Y no os cortéis con las preguntas, 02:20:35
por favor, porque luego esto se va complicando. 02:20:38
Vale. 02:20:42
Sí. Más cosas. 02:20:45
Yo aquí puedo añadir tantos campos como quiera. 02:20:48
No hace falta que me ciña 02:20:51
a los dos que aparecen por defecto, 02:20:54
sino que puedo meter todos como me dé la gana. 02:20:57
Y aquí, cuando estoy en la ventana de edición, 02:21:00
no tengo por qué salir para probar qué es lo que sucede, 02:21:03
sino que tengo aquí un pequeño icono, 02:21:06
que es el de Inyect, que me permite ver 02:21:09
cómo se comporta sin tener que hacer nada. 02:21:12
Y luego, en la parte de abajo, también aparece algo 02:21:15
que vamos a utilizar un poquito más adelante en el curso, 02:21:18
que es la capacidad 02:21:21
de los nodos de Inyect, que esto es muy potente, 02:21:24
de decidir que se ejecuten 02:21:27
al arranque, o que se ejecuten 02:21:30
al cabo de X segundos después de haber arrancado, o incluso 02:21:33
que se ejecuten de forma periódica. Vamos por ejemplo. 02:21:36
Por ejemplo, imaginemos que 02:21:39
estamos haciendo 02:21:42
un sistema automótico. 02:21:45
Yo lo tengo basado en NodeRED 02:21:48
y, por lo que sea, la luz se suele ir a mi casa. 02:21:51
El servidor lo tengo configurado para que arranque solo. 02:21:54
Pero quiero aún así que notifique, que me mande 02:21:57
un telegram, o que me mande un correo, o que haga 02:22:00
lo que sea, cada vez que vuelve a arrancar. 02:22:03
Yo podría configurar un nodo Inyect para que 02:22:06
0,1 segundo después 02:22:09
de haber arrancado el flow, me mande ese correo. 02:22:12
O me mande ese mensaje de telegram, o haga esa inserción en base 02:22:15
de datos, o lo que sea. ¿Cómo hago eso? Bueno, es muy sencillo. 02:22:18
Me vengo a 02:22:21
al mensaje, 02:22:24
al Inyect, que yo quiera modificar, y le puedo decir 02:22:27
Inyectamelo justo después de 02:22:30
0,1 segundos. Por cierto, no conviene 02:22:33
poner un número más bajo de esto, porque 02:22:36
entonces no se mandan, o puede que no se manden. 02:22:39
Más alto sí, y puedo decir que este mensaje 02:22:42
se inyecte 0,1 segundos. Y este, que 02:22:45
por cierto, los mensajes se pueden copiar. Cuando yo tengo seleccionado 02:22:48
un nodo, puedo hacer 02:22:51
Ctrl-C y Ctrl-V 02:22:54
y lo pego. Y entonces, este mensaje 02:22:58
le voy a decir que lo mande 5 segundos después 02:23:01
y este mensaje se va a mandar inmediatamente. 02:23:07
Entonces aquí voy a cambiar solo para que quede claro. 02:23:10
Voy a poner que este quiero que sea un string 02:23:13
que sea 02:23:16
al arranque 02:23:19
y este lo voy a cambiar por un string 02:23:23
que sea después. Ahora, como antes, 02:23:26
lo hago yo y os dejo un minutillo para que lo practiquéis. 02:23:29
De forma que si yo 02:23:32
borro aquí, despliego y no toco 02:23:35
nada 02:23:38
¿Veis lo que ha pasado? 02:23:41
Según he dado a desplegar, se ha generado 02:23:44
este mensaje y exactamente 02:23:47
aquí lo tenemos porque los mensajes dejan huellas de cuando 02:23:51
son generados, exactamente 5 segundos después 02:23:54
se ha mandado el mensaje de después. 02:23:57
¿Podéis probarlo en vuestros ordenadores? 02:24:00
Por favor. 02:24:03
Va perfecto. 02:24:21
Lo que pensaba es que creía que lo iba a hacer 02:24:29
cada uno todo el rato y otro cada 5 segundos 02:24:32
pero no lo hace una sola vez, ¿no? 02:24:35
Ahora vamos con eso. Hay otra configuración 02:24:38
que vamos a hacer. 02:24:41
Vamos a poner aquí 02:24:44
Ahora vamos con eso. Hay otra configuración 02:24:47
que tienen los modos de Inyect que lo permiten 02:24:50
gestionar periodicidades. 02:24:53
Pero antes sí que quería 02:24:56
demostraros una cosa que os comenté muy al principio 02:24:59
que es la parte del Deploy. 02:25:02
Si queréis lo podéis practicar pero no es 02:25:05
muy necesario. Por ejemplo, si yo 02:25:08
me creo un segundo Flow 02:25:11
y aquí voy a generarme el arranque 02:25:17
2 y después 02:25:20
2. ¿Vale? ¿Qué es lo que va a suceder 02:25:23
si yo le doy... Vale, tengo dos Flows. 02:25:26
Los dos tienen dos Inyect. ¿Qué es lo que va a suceder 02:25:29
si yo le doy a Deploy? 02:25:32
Pues que lo va a hacer de todos, ¿no? 02:25:35
Eso es. Vamos a comprobarlo. 02:25:38
Ahí lo tenemos. Al arranque exactamente al mismo tiempo. 02:25:47
Al 40 y 27 02:25:50
ha generado el del arranque y el arranque 2 02:25:53
y después de 5 segundos genera el después y el después 2. 02:25:56
¿Vale? Pues si yo 02:25:59
en lugar de decirle que queremos el Deploy 02:26:02
total, le decimos que sólo queremos 02:26:05
sólo el de los flujos modificados 02:26:08
Voy a borrar aquí y voy a modificar 02:26:11
sólo este flujo. 02:26:14
¿Vale? Hago así. 02:26:17
Le doy a Deploy. 02:26:20
Ah, vale. Es que creo que no considera 02:26:23
que esto sea 02:26:26
una modificación. 02:26:29
Al arranque 1 02:26:32
y después 1. 02:26:35
Ya lo voy a despegar. 02:26:38
Ahí está. 02:26:41
Este ya sólo ha desplegado 02:26:44
sólo reinicia, por así decirlo, este flow. 02:26:47
Mientras que el flow 2 no lo ha ejecutado 02:26:50
que debería haber mandado el mensaje del arranque 2 02:26:53
porque no se ha modificado. 02:26:56
¿Vale? Y la tercera opción 02:26:59
que es la de 02:27:02
sólo desplegar 02:27:05
los nodos modificados, la podemos ver también con este ejemplo. 02:27:08
Si vengo a modificar nodos 02:27:11
modificados y modifico 02:27:14
este de después 02:27:17
voy a borrar aquí, le doy a Desplegar 02:27:20
si todo va bien, sólo debería 02:27:23
aparecer este después. 02:27:26
¿Vale? Pero sin embargo, este nodo que está en la misma pestaña 02:27:29
que ésta, que se ha desplegado, he hecho el cambio 02:27:32
no se ha visto alterado, no se ha redesplegado 02:27:35
no ha ejecutado la acción 02:27:38
al arranque. 02:27:41
¿Se entienden mejor las diferentes opciones 02:27:44
de despliegue que tenemos? 02:27:47
Pues nada, que no se nos olvide. 02:27:58
En realidad podríamos sobrevivir fácilmente 02:28:01
dejándolo en nodos modificados 02:28:04
pero casi prefiero que lo dejemos 02:28:07
en full, para que se termine todo. 02:28:10
Bueno, si queréis os dejo 02:28:16
un minutillo para que practiquéis esto. 02:28:19
A mí no sé por qué cuando le he dado esto no me funciona. Me he metido en el sensor 02:28:22
del Flow 2 que he puesto y en vez de rápido 02:28:25
le he puesto rápido como más 02:28:28
largo, le he dado ya al Done y ahora al Deploy le doy 02:28:31
a Modify Flows, ¿no? 02:28:34
Flows, lo doy aquí 02:28:37
y ahora no me hace nada. 02:28:40
¡Qué raro! 02:28:43
Sí, sí, lo que pasa es que lo que antes no me dejaba. 02:28:46
No me deja compartir. Solo los organizadores y modeladores 02:28:49
de la reunión pueden compartir. 02:28:52
Vale. 02:28:56
Ahí estás. 02:28:59
Vale, a ver si me aparece. 02:29:02
Ya está. Compartir. 02:29:05
La ves ya? 02:29:08
Está en ella. 02:29:11
Vale, pues mira, yo me he metido aquí 02:29:14
en el 2 y en vez de rápido, bueno voy a quitar esto y voy a ponerlo solo rápido 02:29:17
le voy a dar Done y ahora al Deploy le he dado 02:29:20
a Modify Flows y no me sale nada. 02:29:23
A ver, si le doy al Deploy 02:29:26
Normal, pues tampoco me sale nada. 02:29:29
No sé por qué. Espera, hay que esperar 5 segundos, ¿no? 02:29:32
Sí, ahora no me sale nada. 02:29:35
No sé por qué. 02:29:38
Hace doble clic en el Sensor Prova 2, el de abajo. 02:29:41
Sí, Sensor Prova 2, vale. Este es el que le he puesto 02:29:44
aquí, 01. 02:29:47
El rápido debería inyectarse 02:29:50
Payloads. 02:29:53
Hace doble clic en Primer Debug, por favor. 02:29:56
Ah, Primer Debug, perdón. 02:29:59
Claro. 02:30:05
Yo creo que así es como me ha vuelto a salir, que antes me ha pasado algo parecido. 02:30:08
Le voy a poner así, le voy a poner Done, ya le voy a poner 02:30:11
Deploy y Normal. Y ahora sí sale. 02:30:14
Y a los 5 segundos sale el otro. 02:30:18
O sea, que no sé, es rarísimo lo que me acaba de pasar, no lo entiendo. 02:30:21
Y te ha pasado solo con el 02:30:24
despliegue parcial, ¿no? 02:30:27
Eso es, pero como para reiniciar todo antes he tenido que 02:30:30
volver a hacer un cambio y volver a darle Deploy Full porque 02:30:33
el parcial, de hecho ahora, por ejemplo, si lo pongo aquí 02:30:36
voy a tratar lo mismo que he hecho antes, voy a poner 02:30:39
Después. 02:30:42
Done. Y ahora le voy a dar Deploy. 02:30:45
Bueno, voy a borrar esto primero también, voy a borrarlo y le digo 02:30:48
Modify Flows. 02:30:51
A ver si hace algo, por algún lado. Pero además este es el 0,1 02:30:54
no tenía que esperar nada, ¿no? 02:30:57
Es instantáneo, sí. 02:31:00
Hay una cosa que puede pasarte, si el ordenador lo tienes muy petado 02:31:03
o va muy cargado, 0,1 segundos igual no es suficiente tiempo. 02:31:06
Bueno, luego voy a poner eso. 02:31:10
Si un mensaje se genera 02:31:13
y no da tiempo a que 02:31:16
el motor de Node-RED se haya cargado 02:31:19
se pierde. Entonces puede ser que sea eso lo que te esté pasando. 02:31:22
Ya, bueno, ¿cómo pongo un segundo ahora y tampoco? 02:31:25
Pero no has dado Deploy. 02:31:28
Le he dado Deploy, mira, le doy Deploy a Modify, ¿no? 02:31:31
Claro, pero eso no hace nada. 02:31:34
O sea, hacer click ahí no hace nada. 02:31:37
Ahí solo eliges el tipo de Deploy que quieres. 02:31:40
Pero para que despliegue le tienes que dar al botón rojo de encima. 02:31:43
Ah, vale, vale. 02:31:46
Vale, vale, vale. 02:31:49
Vale, vale, claro, estaba haciendo mal, claro, entonces... 02:31:52
Vale, vale, sí, esto no lo había explicado bien ya. 02:31:55
Vale, no, no, pues me lo estabas viendo tú que no te había dado cuenta. 02:31:58
Pero fíjate que estaba haciéndolo todo el rato mal porque pensaba que solo con el hecho de darle 02:32:01
o sea, de hacer así, de quitar, cambio esto, 02:32:04
le digo Done, ahora me voy a quitar esto de aquí para que no se vea 02:32:07
y pensaba que dándole a Modify Flows te iba a salir algo. 02:32:10
No, eso solo selecciona 02:32:13
el tipo de despliegue que quieres. 02:32:16
Pero el despliegue en sí no se lleva a cabo 02:32:19
hasta que no haces click en Deploy en rojo arriba de todo. 02:32:22
O sea, que yo primero selecciono el tipo de despliegue y luego cuando le doy a Deploy 02:32:25
al haberlo seleccionado es cuando me va a hacerlo de esa manera. 02:32:28
Eso es. 02:32:31
Y ahora va a salir porque lo he puesto a 3 segundos. 02:32:34
Esto lo puedes ver 02:32:37
porque siguen apareciendo los círculos azules. 02:32:40
Si tú ves círculos azules, ¿ves? En tu nodo de la izquierda. 02:32:43
Cambia el tipo de despliegue. 02:32:46
No, el círculo azul que tiene el sensor probados. 02:32:49
Sí, sí. 02:32:52
Ese circulito significa que ese nodo no está desplegado. 02:32:55
O sea, que los cambios que se hagan hasta que se hayan hecho sobre él 02:32:58
no van a tener efecto. 02:33:01
Mira, dale a la flechita después del Deploy. 02:33:04
Selecciona el tipo de Deploy diferente. 02:33:07
Vale, ¿y ahora cuál selecciono? 02:33:10
El primero, el Full, por ejemplo. 02:33:13
¿Ves que el circulito azul sigue estando ahí? 02:33:16
Sí. 02:33:19
Eso significa que no se ha desplegado, que ese cambio sigue sin estar aplicado. 02:33:22
No sé cómo quiero que se despliegue, pero hasta que no le doy a Deploy no lo hace. 02:33:25
Exactamente. 02:33:28
Eso ha sido falla mía porque no lo he explicado del todo bien. 02:33:31
Y ahora ya sí que tiene que ir. 02:33:34
Sí, sí, ahora ya va fenomenal y además van todos los que tenían que ir. 02:33:37
Vamos, los del ejercicio 1 también. 02:33:40
O sea, vale. 02:33:43
Descomparto. 02:33:46
Voy a compartir ahora. 02:33:49
A ver. 02:33:52
Ah, no, salí. 02:33:55
Dejar de compartir, ya lo he visto. 02:33:58
¿Había más con alguna duda? 02:34:01
Que no le haya funcionado esta última parte. 02:34:04
Sí, José, yo una pregunta. 02:34:07
Si yo quiero inyectar dos cosas, o sea, cuando estoy en... 02:34:10
He editado el nodo Inject 02:34:13
y entonces tengo el primero que es el Payload 02:34:16
que tengo puesto en Jotason, pero quiero que después de eso inyecte otra cosa. 02:34:19
Pero es el mismo nodo. 02:34:22
O sea, simplemente cuando añado una nueva 02:34:25
cosa para enviar 02:34:28
y tengo dos, una encima y otra debajo, 02:34:31
¿cómo hago para enviarlas dos? 02:34:34
Ah, no con lo que sabemos por ahora. 02:34:37
O sea, tú quieres que se malen dos mensajes consecutivos. 02:34:40
Sí, exactamente. Eso todavía no sabemos hacerlo. 02:34:43
De acuerdo. Vale, gracias. Por eso no me paría. 02:34:46
Sí. Vale. 02:34:49
Y nada, lo último que nos queda por explicar... Estoy viendo mi pantalla, ¿verdad? 02:34:52
Sí. 02:34:58
Lo último que queda por explicar es, bueno, si os fijáis, no sé si se ve, 02:35:01
pero al haber 02:35:04
activado que el mensaje se active automáticamente 02:35:07
aparece un 1. ¿Lo ves? 02:35:10
Ese 1 que aparece ahí, 02:35:13
os lo voy a explicar a esta. 02:35:16
Este 1 que aparece arriba a la derecha indica que se va a ejecutar 02:35:19
solo una vez. Pero, si yo activo 02:35:22
la parte de abajo del todo, donde pone Repetición, 02:35:25
esto lo que me permite es 02:35:28
elegir diferentes opciones. Puedo hacer, por ejemplo, 02:35:31
que un determinado mensaje se inyecte cada dos segundos. 02:35:34
O cada segundo, o cada dos minutos, o cada dos horas. 02:35:37
Esto me permite 02:35:40
hacer automatizaciones. 02:35:43
Vamos a cambiar el nombre para que quede... 02:35:46
Periódico... 02:35:49
Ahí veis que 02:35:52
a intervalos de un segundo 02:35:55
va a generarme 02:35:58
el mensaje periódico. 02:36:01
Supongamos que yo estoy haciendo... 02:36:04
Tenemos este sensor... Os pongo un poco en contexto. 02:36:07
Tenemos un sensor que está hecho con una SP32 02:36:10
y ese sensor, digamos que queremos 02:36:13
que mande temperatura y humedad. Pero, ¿cada cuánto 02:36:16
quiere que lo mande? 02:36:19
¿Cómo os ocurre que lo podéis hacer? 02:36:22
El determinar cada cuánto va a mandar la información. 02:36:25
Porque habrá veces que me interesa que lo mande de forma muy seguida 02:36:28
y otras veces, como por ejemplo, a lo mejor por la noche, que quiero que sea 02:36:31
cada dos horas o cada cuatro horas. 02:36:34
Una primera aproximación podría ser 02:36:40
que nuestro dispositivo, nuestro sensor 02:36:43
no mande nunca, de modo propio, 02:36:46
ningún mensaje de Stalag que no mande nunca la temperatura 02:36:49
ni la humedad. Sino que, por ejemplo, que esté a la espera 02:36:52
de que le llegue por MQTT un mensaje de 02:36:55
dame la información. De forma que 02:36:58
cada vez que le llegue el mensaje de dame la información 02:37:01
él publica su temperatura y su humedad. 02:37:04
De esa manera, el dispositivo no 02:37:07
tiene que tener programada una periodicidad. No tiene por qué saber 02:37:10
cada cuánto tiene que emitir. Él simplemente emite 02:37:13
cada vez que le llegue un mensaje de emite. 02:37:16
De esa forma, desde el servidor, desde NodeRED, que va a ser 02:37:19
nuestro cerebro, por así decirlo, podemos 02:37:22
decidir si se le pide a ese sensor 02:37:25
que publique muy rápidamente, muy seguido, o que publique 02:37:28
muy lento. Bueno, pues en ese caso, en ese 02:37:31
escenario, un nodo de INYECT 02:37:34
podría servir justamente para eso. 02:37:37
El mensaje podría ser dame temperatura 02:37:40
y decirle que este dame temperatura se genere 02:37:45
una vez por minuto. Y luego 02:37:48
cambiarlo en función de ciertas reglas, pues que en lugar de ser cada minuto 02:37:51
que sea cada hora, o cada dos horas, o la temperatura cada minuto 02:37:54
pero la humedad como varía menos, pues que en la de cada hora. 02:37:57
Lo que sea. 02:38:00
Lo que nos permite es el intervalo. 02:38:03
¿Intervalo entre fechas? 02:38:06
Bueno, pues esto es ajustable, un poco más ajustado. 02:38:09
De la otra manera, yo era todos los minutos 02:38:12
de cada minuto, de cada hora, de cada día, de cada mes, de cada año. 02:38:15
Pero me puede interesar 02:38:18
que algo se haga cada cinco minutos 02:38:21
entre las doce de la noche y las diez de la mañana 02:38:24
los lunes y miércoles 02:38:27
y viernes. 02:38:30
Tenemos aquí una capacidad de configurar 02:38:33
cada cuando se mandan los mensajes repetitivos 02:38:36
bastante grande. 02:38:39
La otra opción es, vale, yo solo quiero 02:38:42
que esto se mande a las doce de la mañana 02:38:45
todos los días de la semana. O a la una, o cuando sea. 02:38:48
Una pregunta. 02:38:54
¿Me oís? Sí, sí, sí, te escucho. 02:38:57
¿Se pueden cambiar las propiedades de un nodo 02:39:00
desde otro nodo? Sí. 02:39:03
Pero no en el caso del InYip. 02:39:06
Porque tú cuando cambias 02:39:09
digamos que hay determinados mensajes 02:39:12
que alteran el comportamiento 02:39:15
de un determinado nodo. 02:39:18
Pero esos mensajes que alteran el comportamiento 02:39:21
tienen que entrarle al mensaje. O sea, tienen que 02:39:24
entrarle al nodo en concreto. Y entonces 02:39:27
InYip no tiene la capacidad 02:39:30
de que un nodo le inyecte cosas. 02:39:33
Con lo cual el 02:39:40
InYip no puede ser 02:39:43
no puedes determinar su comportamiento 02:39:46
de por lo menos con la parte de repeticiones 02:39:49
o lo de inyectar después de no sé cuánto tiempo 02:39:52
no puedes modificarlo mediante mensajes provenientes de otros nodos. 02:39:55
Lo que sí que puedes hacer, como comentaba antes 02:40:00
es hacer que el contenido 02:40:03
por ejemplo, que su contenido, el contenido prueba 02:40:06
mensaje.prueba, provenga 02:40:09
de una variable. 02:40:12
Ahí elegiríamos el flow o el global. 02:40:15
Pero no la periodicidad. 02:40:20
¿Dudas con respecto a esto? 02:40:27
Bueno, por cierto, nos hemos saltado sin querer 02:40:30
al tema 1. El tema 0 02:40:33
déjame un segundito, quedan 5 minutos. 02:40:36
Pero déjame comprobar que no me ha dejado nada importante del tema 0. 02:40:39
Lo que estábamos empezando a ver ahora es 02:40:50
esta parte del tema 1 02:40:53
que es el nodo InYip. Yo creo que lo hemos visto 02:40:56
casi por completo. Y el de Debug 02:40:59
me falta por ver una 02:41:02
pequeña cosilla que creo que ya os voy a contar 02:41:05
el lunes. 02:41:08
Vale. 02:41:12
¿Dudas o comentarios o cosas que me hayan quedado 02:41:15
claras que queréis que le dé una vuelta? 02:41:18
Ah, sí, es verdad. 02:41:25
Juan Ramón, ¿el enlace de salida? 02:41:28
Marchando. 02:41:35
Así me gusta, que estéis atentos. 02:41:39
Darío ha estado ahí. 02:41:42
A ver un segundito. Tardo 02:41:46
un nanosegundo. 02:41:49
Bueno, mientras lo encuentras, comentaros una cosa. 02:41:52
A diferencia de otros cursos 02:41:55
en este no os voy a mandar 02:41:58
ejercicios para hacer en casa. Todos los ejercicios 02:42:01
los vamos a resolver durante las clases. 02:42:04
Las horas del curso 02:42:08
son las horas que incluyen tanto la parte 02:42:11
del tema de lo que se explica, la explicación en teoría, de práctica 02:42:14
y de ejercicio. 02:42:17
Jorge, ahora cuando acabe 02:42:23
voy a acordarte que me tienes que echar una mano. 02:42:26
Sí, lo tengo presente. Vale, gracias. 02:42:29
Acabo de poner en el chat la clave para la salida. 02:42:32
Y funciona correctamente. 02:42:38
Perfecto. Ahora me perdí un poco 02:42:41
la cuenta de si todos habéis podido hacerlo bien 02:42:44
instalar el node red en vuestro ordenador. Si alguien 02:42:47
más ha tenido algún problema y no le funciona del todo bien, que se quede 02:42:50
ahora unos minutillos, por favor, y les una mano 02:42:53
para dejarlo funcionar. En caso de que no podamos por lo que sea, 02:42:56
podéis utilizar las instancias de Sendormir sin ningún problema. 02:42:59
El próximo día, Jorge, 02:43:03
el node red y... 02:43:06
Te escucho muy, muy bajito. 02:43:09
¿Me oyes muy bajito, dices? 02:43:12
Sí, ahora mejor. Ahora mejor. Que digo que 02:43:15
ahora cerramos el node red y demás. Si el próximo día nos dice 02:43:18
bien cómo arrancarlo, pues hay que entrar por CMD o 02:43:21
directamente desde la pestaña o habrá que tener 02:43:24
CMD, ¿no? 02:43:27
Eso mismo, sí. Para arrancar el CMD solo es el último paso 02:43:30
de lo que hemos hecho al principio de la sesión. Es decir, 02:43:33
arrancarse el CMD y escribir el node red intro. 02:43:36
Vale. Perfecto. No tiene más misterio. 02:43:39
Y debería conservar todo lo que has hecho ahora. 02:43:42
Perfecto. Gracias. 02:43:45
Estupendo. ¿Vamos a utilizar 02:43:48
MQTT también? Sí. Sí, sí, claro, porque 02:43:51
es básicamente lo que permite o la forma más cómoda 02:43:54
de permitir la integración de microcontroladores 02:43:57
SP32 fundamentalmente con todo el tema 02:44:00
de node red. Lo que pasa es que en lugar de utilizar 02:44:03
SP32 vamos a hablarnos entre nosotros. 02:44:06
Vamos a hacer pruebas de un alumno 02:44:09
manda mensajes a otro alumno y con eso jugaremos. 02:44:12
Y el servidor MQTT lo vamos 02:44:15
a instalar dentro de cada ordenador, ¿verdad? 02:44:18
El servidor de MQTT, mi idea es que 02:44:21
sí. Lo que pasa es que tengo que ver si Windows permite 02:44:24
instalar servidores MQTT. 02:44:27
Que ya no lo tengo, pero... 02:44:30
Vamos a utilizar todos al mismo tiempo. 02:44:33
Eh... 02:44:36
Sí, o sea, para las prácticas que sean comunes 02:44:39
cuando yo quiera comunicarme con otro compañero 02:44:42
necesitaremos que el servidor MQTT sea común. Pero sí que me gustaría 02:44:45
como parte del curso que se instalara ese servidor MQTT 02:44:48
siempre y cuando se pueda instalarlo en Windows, que es una cosa que tengo que revisar. 02:44:51
Cuando tenga esa parte terminada os lo digo. 02:44:54
Y si no, os daré un enlace de un servidor MQTT 02:44:57
que se puede utilizar de forma gratuita. 02:45:00
Una cosa, Jorge. ¿Me escuchas? 02:45:03
Quería preguntarte porque 02:45:06
cuando ya la sensórica es 02:45:09
amplia, esto se convierte 02:45:12
en una sopa de fideos. 02:45:15
Cambias un sensor 02:45:18
y como no tengas en cuenta 02:45:21
dónde se cambia, o sea, puede ser 02:45:24
totalmente 02:45:27
buscar una aguja en un pajar, todos los cambios que generan. 02:45:30
¿Vas a decir 02:45:33
algún tipo de forma de programar esto 02:45:36
de tal manera que si haces un cambio no tengas que cambiarlo 02:45:39
en 50 flujos? 02:45:42
Fundamentalmente el tema de las variables 02:45:45
es para eso. 02:45:48
Establecer bloques que generen variables que luego 02:45:51
otros bloques leen nos permite hacer eso. 02:45:54
Bueno, bueno, me estoy adelantando quizá demasiado. 02:45:57
Sí, sí, sí, ya lo vemos. 02:46:00
No tan orientado al ejemplo que nos has comentado 02:46:03
pero sí que es extrapolable. 02:46:06
Ángel Sánchez no ha firmado y 02:46:09
Félix tampoco. 02:46:12
¿Y están aquí todavía? No lo sé. 02:46:15
Por eso lo digo. 02:46:18
Hay un ángel pero no sé si es 02:46:21
si es Ángel Vázquez. 02:46:24
No, Ángel Luis ya se ha firmado. 02:46:27
Pero sí que estaba en el curso. 02:46:33
Sí, sí, y Félix también pero 02:46:36
se han debido de marchar y me han dejado aquí tirado. 02:46:39
Estaban esperando que dijera 02:46:42
bueno, con esto ya clic. 02:46:45
En fin. 02:46:48
Les marcaré yo como que han estado. 02:46:51
Que sé que han estado. 02:46:54
Sin que sirva el precedente. 02:46:57
Bueno, más dudas. Creo que estáis todavía unos cuantos por aquí. 02:47:03
Sí, yo una. 02:47:06
No encuentro el script para que al encender 02:47:09
la máquina virtual se me habilite el no de red. 02:47:12
El servicio de no de red. 02:47:15
Dijiste que estaban los PDF. 02:47:18
¿Estás con Linux o con Windows? Con Linux. 02:47:21
Espera, te enseño dónde se hace eso. 02:47:24
A ver, en el PDF del anexo 1. 02:47:31
¿Dónde están las variables de JavaScript? 02:47:35
No. 02:47:38
Anexo 1 es la instalación. 02:47:41
Yo me salgo ya. Hasta el lunes. 02:47:48
Venga, yo también. Hasta luego. 02:47:51
Hasta luego. 02:47:54
¿Lo tienes, Darío? 02:48:00
No te veo. No veo la pantalla tuya. 02:48:04
Ah, no, no, no. En el compartidor. Era por si tenías tú el PDF. 02:48:07
Sí, sí, lo tengo, sí. 02:48:10
Vale. En la página... 02:48:13
No hay página. 02:48:16
Vale. ¿Dónde? ¿Justo encima donde pone 02:48:19
instalación para Windows 10? 02:48:22
Sí. 02:48:25
Vale. 02:48:28
Eso es. Ese es el que hace 02:48:31
que tu Linux, a partir del siguiente reinicio, 02:48:34
cargue automáticamente el no de red. 02:48:37
Vale, eso es lo que quiero. 02:48:40
Un segundito, Jorge. ¿Qué vamos a ver el próximo día? 02:48:43
Para mirármelo, adelantarme un poquillo 02:48:46
a ver qué es lo que vas a hacer. 02:48:49
Bueno, pues vamos a tener que ver el tema 1 02:48:52
y el tema 2. 02:48:55
Vale. 02:48:59
A lo mejor quizás da tiempo a ver algo del tema 3. 02:49:02
En cualquier caso, lo subiría antes a la plataforma. 02:49:05
Vale. ¿Es posible que no puedas venir? 02:49:08
No, no, no. En absoluto. Vamos, entre más. 02:49:11
No, simplemente para, pues bueno... 02:49:14
¿Para adelantar? 02:49:17
Adelantar, sí. Yo, al parecer, este tema me encanta 02:49:20
y, bueno, pues soy un apasionado del no de red. 02:49:23
Pues sí, en principio, por ahora puedes revisar 02:49:27
el resto de los documentos que has subido. 02:49:30
Vale. 02:49:33
Y en cuanto tengas siguientes temas, los voy publicando. 02:49:36
¿Y del JsonNata vamos a ver algo? 02:49:39
Sí, veremos un poquito 02:49:42
el lunes, sí. 02:49:45
Espera, me voy a juntar para que no se me olvide. 02:49:48
Vale. 02:49:56
Vale. Bueno, pues yo también me despido. 02:50:08
Venga, hasta el próximo día. Un saludo. Vale, estupendo. 02:50:11
Venga, que tengas buen fin de semana. 02:50:14
Igualmente, chao. 02:50:17
Juanra, pregunta 02:50:20
Ángel que si está confirmado... 02:50:23
Ah, vale, ya estáis hablando de vosotros. 02:50:26
Hasta luego, Jorge. Vale, hasta luego. 02:50:29
Un saludo a todos. 02:50:32
Vale, cojo 02:50:35
el control de tu ordenador. 02:50:38
De acuerdo. 02:50:41
¿Tienes idea de lo que está pasando? ¿De qué es lo que ocurre? 02:50:44
Pues no lo sé. Lo que sí que voy a tratar es 02:50:47
arreglar este problema. A ver si este puede estar ocasionando 02:50:50
que no se deje hacer lo otro. 02:50:53
Entonces, ¿el window lo utilizas? 02:50:56
No. 02:50:59
Vale, ¿puedes poner tu clave de usuario, por favor? 02:51:02
Sí, sí. 02:51:05
Espera, voy a detener la 02:51:08
grabación. 02:51:11
Yo voy a pararla también, ¿vale? 02:51:14
Vale. 02:51:17
Idioma/s:
es
Autor/es:
CTIF Madrid-Este
Subido por:
Tic ctif madrideste
Licencia:
Todos los derechos reservados
Visualizaciones:
5
Fecha:
14 de abril de 2023 - 9:42
Visibilidad:
Clave
Centro:
C.TER.INN.Y FORM CTIF MADRID-ESTE
Duración:
2h′ 51′ 23″
Relación de aspecto:
1.78:1
Resolución:
1920x1080 píxeles
Tamaño:
1.12

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid