HowTo: Node Red: muestra los datos del sistema de Raspberry Pi en el tablero

Además de los datos interesantes que genera un SmartHome, también debes prestar un poco de atención al estado del corazón del SmartHome. Si ha instalado su instalación de NodeRed en una Raspberry Pi (u otro sistema Linux), puede utilizar el siguiente ejemplo para mostrar parte de la información más importante sobre la Raspberry Pi en el tablero.

Lo que tienes que hacer se explica en el siguiente artículo.


Instrucciones de seguridad

Sé que las siguientes notas siempre son un poco molestas y parecen innecesarias. Desafortunadamente, muchas personas que sabían "mejor" han perdido ojos, dedos u otras cosas debido a un descuido o se lesionaron. La pérdida de datos es casi insignificante en comparación, pero incluso estos pueden ser realmente molestos. Por lo tanto, tómese cinco minutos para leer las instrucciones de seguridad. Porque incluso el proyecto más genial no vale la pena lesionarse u otros problemas.
https://www.nerdiy.de/sicherheitshinweise/

Enlaces afiliados / enlaces publicitarios

Los enlaces a las tiendas en línea enumerados aquí son los llamados enlaces de afiliados. Si hace clic en dicho enlace de afiliado y realiza una compra a través de este enlace, Nerdiy.de recibirá una comisión de la tienda en línea o el proveedor correspondiente. El precio no cambia para usted. Si realiza sus compras a través de estos enlaces, ayuda a Nerdiy.de a poder ofrecer otros proyectos útiles en el futuro. 🙂 


Requisitos

Artículos útiles:
Para que pueda instalar nuevos nodos, por supuesto, NodeRed ya debería estar instalado.
En los siguientes artículos se describe cómo preparar una RaspberryPi y luego instalar NodeRed en ella.

Los siguientes tres artículos describen lo que se debe hacer para preparar la RaspberryPi:
RaspberryPi: ¡configuración para nerdiys!
RaspberryPi – ¡La primera configuración!
RaspberryPi: controle el RaspberryPi a través de SSH
NodeRed: instalación de NodeRed en RaspberryPi
NodeRed – Instalar nuevos nodos
NodeRed: cree una interfaz de usuario con nodos de tablero

Material requerido:
-No-

Material requerido:

En la siguiente lista encontrará todas las piezas que necesita para implementar este artículo.


Inicie sesión en la interfaz de configuración de NodeRed

Antes de que pueda editar su configuración de NodeRed, debe, si está activado, primero iniciar sesión en la interfaz de configuración de NodeRed.

Vista del cuadro de diálogo de inicio de sesión. Aquí debe ingresar los datos de inicio de sesión que especificó durante la configuración del inicio de sesión. Puedes encontrar información al respecto en el artículo NodeRed: configurar el inicio de sesión del usuario.

código de nodo

Además del nodo del panel de control, para esta pantalla solo se utilizan nodos estándar y los comandos de Linux correspondientes. Simplemente agregue el siguiente código de nodo y luego no olvide colocar los elementos del tablero correctamente en su tablero.

También puede encontrar información al respecto en el artículo NodeRed: cree una interfaz de usuario con nodos de tablero.

Su tablero con la información de RaspberryPi puede verse así.
Vista de los nodos vinculados.

Código de nodo:

[{ "id": "fbbafb8d.8c3818", "type": "exec", "z": "ae220e4a.3c49d", "command": "vcgencmd medida_temp", "addpay": false, "append": " ", "useSpawn": "", "timer": "", "oldrc": false, "name": "Temperatura RPi", "x": 440, "y": 200, "wires": [ [" 17fa85a3.c0a5fa"], [], [] ] }, { "id": "610a759f.da34ec", "type": "inject", "z": "ae220e4a.3c49d", "name": "update 10sec ", "topic": "", "payload": "", "payloadType": "fecha", "repeat": "10", "crontab": "", "once": false, "onceDelay": " ", "x": 200, "y": 200, "cables": [ ["fbbafb8d.8c3818", "6b5302eb.fe0fbc", "f8494c08.39fe8"] ] }, { "id": "17fa85a3.c0a5fa ", "tipo": "función", "z": "ae220e4a.3c49d", "nombre": "cutString", "func": "str = msg.payload\r\nmsg.payload = str.substring(5 ,9);\r\nreturn msg;", "outputs": 1, "noerr": 0, "x": 660, "y": 200, "wires": [ ["e8f154dc.299398", "71f38a1c .ca6f64"] ] }, { "id": "4070b9bd.5796b8", "type": "exec", "z": "ae220e4a.3c49d", "command": "sudo reboot", "addpay": false , "append": "", "useSpawn": "", "timer": "", "oldrc": false, "name": "Reiniciar", "x": 430, "y": 540, "cables ": [ [], [], [] ] }, { "id": "77a93271.11eabc", "type": "exec", "z": "ae220e4a.3c49d", "command": "sudo Shutdown -h ahora", "addpay": false, "append": "", "useSpawn": "", "timer": "", "oldrc": false, "name": "Apagar", "x": 440, "y": 620, "cables": [ [], [], [] ] }, { "id": "6b5302eb.fe0fbc", "type": "exec", "z": "ae220e4a. 3c49d", "comando": "arriba -d 1 -b -n2 | grep ", "s": "|cola -n 1 | awk '{print $2 + $4}'", "addpay": false, "append": "", "useSpawn": "", "timer": "", "oldrc": false, "name": "CPU Último", "x": 420, "y": 280, "cables": [ ["97612f41.a7f6e"], [], [] ] }, { "id": "f8494c08.39fe8", "tipo" : "exec", "z": "ae220e4a.3c49d", "command": "gratis | meme grep | awk '{print 100*(($3+$5)/$2)}'", "addpay": false, "append": "", "useSpawn": "", "timer": "", "oldrc": falso, "nombre": "RAM", "x": 410, "y": 360, "cables": [ ["6ce43c7.2c89bc4"], [], [] ] }, { "id": "7b744c14 .050354", "type": "exec", "z": "ae220e4a.3c49d", "command": "df -h", "addpay": false, "append": "", "useSpawn": " ", "timer": "", "oldrc": false, "name": "Espacio de almacenamiento", "x": 440, "y": 440, "wires": [ ["403e1890.2fbab8"], [ ] , [] ] }, { "id": "403e1890.2fbab8", "type": "function", "z": "ae220e4a.3c49d", "name": "modifyString", "func": "var re = /([0-9]{2})%/\r\nvar idx = msg.payload.search(re);\r\nvar str = msg.payload;\r\nif (idx >=0) { \r\n str = msg.payload.substring(idx, idx + 2);\r\n}\r\nmsg.payload = str;\r\nreturn msg;", "salidas": 1, "noerr " : 0, "x": 670, "y": 440, "cables": [ ["f574e160.da0f1"] ] }, { "id": "da61973.d30f268", "type": "inject", " z": "ae220e4a.3c49d", "nombre": "actualización 1min", "tema": "", "carga útil": "", "tipo de carga útil": "fecha", "repetición": "60", " crontab ": "", "once": false, "onceDelay": "", "x": 200, "y": 440, "wires": [ ["7b744c14.050354"] ] }, { "id" : "37bde909.05a676", "tipo": "ui_button", "z": "ae220e4a.3c49d", "nombre": "", "grupo": "5fe5a9b.a8a6158", "orden": 3, "ancho " : 0, "altura": 0, "passthru": false, "label": "Reiniciar", "color": "", "bgcolor": "", "icon": "", "payload": " ", "payloadType": "str", "topic": "", "x": 230, "y": 540, "wires": [ ["4070b9bd.5796b8"] ] }, { "id": " 12fa2be3.80e824", "tipo": "ui_button", "z": "ae220e4a.3c49d", "nombre": "", "grupo": "5fe5a9b.a8a6158", "orden": 4, "ancho": 0, "altura": 0, "passthru": falso, "etiqueta": "Apagar", "color": "", "bgcolor": "rojo", "icono": "", "carga útil": "" , "payloadType": "str", "topic": "", "x": 240, "y": 620, "wires": [ ["77a93271.11eabc"] ] }, { "id": "e8f154dc .299398", "tipo": "ui_gauge", "z": "ae220e4a.3c49d", "nombre": "", "grupo": "5fe5a9b.a8a6158", "orden": 1, "ancho": 0 , "altura": 0, "gtype": "medidor", "título": "temperatura de la CPU", "etiqueta": "C", "formato": "{{valor}}", "min": 0, "max": "100", "colores": ["#00b500", "#e6e600", "#ca3838"], "seg1": "", "seg2": "", "x": 910, "y": 180, "cables": [] }, { "id": "638024a7.6ca05c", "tipo": "ui_gauge", "z": "ae220e4a.3c49d", "nombre": "", "grupo": "6b432a4a.06ad54", "orden": 1, "ancho": 0, "alto": 0, "gtype": "calibrador", "título": "CPU", "etiqueta": "CPU", "formato ": "{{value}}%", "min": 0, "max": "100", "colores": ["#00b500", "#e6e600", "#ca3838"], "seg1": "", "seg2": "", "x": 870, "y": 300, "wires": [] }, { "id": "d80d6326.88202", "type": "ui_gauge", "z": "ae220e4a.3c49d", "nombre": "", "grupo": "6b432a4a.06ad54", "orden": 1, "ancho": 0, "alto": 0, "gtipo": "calibrador", " title": "Memoria", "label": "RAM", "format": "{{value}}%", "min": 0, "max": "100", "colors": ["#00b500" , "#e6e600", "#ca3838"], "seg1": "", "seg2": "", "x": 880, "y": 360, "wires": [] }, { "id": " f574e160.da0f1", "tipo": "ui_gauge", "z": "ae220e4a.3c49d", "nombre": "", "grupo": "6b432a4a.06ad54", "orden": 1, "ancho": 0, "altura": 0, "gtype": "medidor", "título": "Disco", "etiqueta": "Almacenamiento", "formato": "{{valor}}%", "min": 0 , "max": "100", "colores": ["#00b500", "#e6e600", "#ca3838"], "seg1": "", "seg2": "", "x": 870, "y" : 440, "cables": [] }, { "id": "71f38a1c.ca6f64", "tipo": "ui_chart", "z": "ae220e4a.3c49d", "nombre": "", "grupo" : "5fe5a9b.a8a6158", "order": 2, "width": 0, "height": 0, "label": "Historial de temperatura de la CPU", "chartType": "line", "legend": "false" , "xformat": "HH:mm:ss", "interpolate": "linear", "nodata": "", "dot": false, "ymin": "", "ymax": "", "removeOlder ": "24", "removeOlderPoints": "", "removeOlderUnit": "3600", "cutout": 0, "useOneColor": false, "colors": ["#1f77b4", "#aec7e8", "#ff7f0e", "#2ca02c", "#98df8a", "#d62728", "#ff9896", "#9467bd", "#c5b0d5"], "useOldStyle": true, "x": 930, "y": 240, "wires": [ [] , [] ] }, { "id": "6ce43c7.2c89bc4", "type": "function", "z": "ae220e4a.3c49d", "name": "deleteWhitespace", "func": "var str = msg.payload\r\nstr = str.trim();\r\nvar nr=parseInt(str);\r\nmsg.payload = nr.toFixed(1);\r\nreturn msg;", "salidas ": 1, "noerr": 0, "x": 690, "y": 360, "cables": [ ["d80d6326.88202"] ] }, { "id": "97612f41.a7f6e", "tipo ": "función", "z": "ae220e4a.3c49d", "nombre": "deleteWhitespace", "func": "str = msg.payload\r\nmsg.payload = str.trim();\r\ nreturn msg;", "outputs": 1, "noerr": 0, "x": 690, "y": 280, "wires": [ ["638024a7.6ca05c"] ] }, { "id": " 75f679fd.1125a8", "type": "inject", "z": "ae220e4a.3c49d", "name": "Shutdown", "topic": "", "payload": "", "payloadType": " date", "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "x": 260, "y": 680, "wires": [ ["77a93271. 11eabc"] ] }, { "id": "5fe5a9b.a8a6158", "type": "ui_group", "z": "ae220e4a.3c49d", "name": "2", "tab": "7e8708a2. 0fc408", "order": 2, "disp": false, "width": "6", "collapse": false }, { "id": "6b432a4a.06ad54", "type": "ui_group", " z": "ae220e4a.3c49d", "name": "1", "tab": "7e8708a2.0fc408", "order": 1, "disp": false, "width": "6", "collapse" : false }, { "id": "7e8708a2.0fc408", "type": "ui_tab", "z": "ae220e4a.3c49d", "name": "Raspi data", "icon": "dashboard", "orden": 1 }]

Diviértete con el proyecto.

Espero que todo te haya funcionado como se describe. Si no es así, o si tiene alguna pregunta o sugerencia, hágamelo saber en los comentarios. Si es necesario, lo añadiré al artículo.
Las ideas para nuevos proyectos siempre son bienvenidas. 🙂

PS Muchos de estos proyectos, especialmente los proyectos de hardware, cuestan mucho tiempo y dinero. Por supuesto que hago esto porque lo disfruto, pero si crees que es genial que comparta la información contigo, me encantaría hacer una pequeña donación al fondo del café. 🙂

Cómprame un café en ko-fi.com       

6s comentarios

  1. Hola, muy buen flujo. Soy un principiante con node-red y puedo aprender mucho con él.
    Ejecutando la temperatura y el historial de la CPU. Para la RAM del nodo reemplacé “mem” por “memoria” (Raspian alemán :-), también funciona. Pero los comandos de “espacio de almacenamiento” y “CPU” no funcionan y lamentablemente mis conocimientos no son suficientes para realizar un cambio. ¿Podrías adaptar esto para una versión alemana?
    Gracias y saludos, Hajo.

    1. hola jajo,
      Acabo de probar todo de nuevo. “Desafortunadamente” todo me funciona. ¿Puedes darme más información sobre lo que no te funciona? 🙂
      Atentamente
      Fabian

  2. Hola nerd,
    Descargué e instalé el flujo (también soy un principiante).
    Funcionó muy bien...

    Ahora que he transferido el sistema de la tarjeta SD a un disco duro, ya no se muestran valores en la CPU, la memoria ni el disco...
    La temperatura de la CPU funciona.

    tal vez tengas ¿un consejo para mí?

    Atentamente

    jürgen

    1. Hola Juergen,
      Sí, lo más probable es que eso se deba a que el disco duro tiene un punto/ruta de montaje diferente al de la tarjeta SD.
      ¿Puedes enviarme el resultado de “df -h” (simplemente escríbelo en la consola)? Luego puedo decirles cuál es el punto de montaje actual y podemos adaptar el código de NodeRed en consecuencia. 🙂
      Atentamente
      Fabian

  3. Hola, lamentablemente se ha producido un error en el nodo de carga de la CPU:
    El comando correcto en el nodo exec debe tener este aspecto:
    top -d 1 -b -n2 | grep "%Cpu" | tail -n 1 | awk '{print $2 + $4}'
    Así funcionaba el anuncio

Kommentar hinterlassen

Tu dirección de correo electrónico no será publicada. Erforderliche Felder sind mit * markiert

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.