IoT Avanzado (Sesión 1)
Ajuste de pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
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:
- 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