PiControl

Imagen del título de PiControl

PiControl es una potente aplicación que le permite controlar su Raspberry Pi de forma remota desde cualquier navegador web.

Esta página le ofrece una visión general de la aplicación PiControl.

PiControl

Usted notará que, por defecto, tres comandos están incluidos e inmediatamente disponibles para su Raspberry Pi. A saber, con PiControl, puede apagar su Raspberry Pi, reiniciar su Raspberry Pi y actualizar el PiCockpit Client.

Personalización de PiControl

Lo que hace que PiControl sea especialmente útil es que también es personalizable.

Puedes definir tus propios comandos de forma fácil y segura editando archivos JSON en tu Raspberry Pi.

Así que aquí están las instrucciones son para los usuarios que no tienen experiencia con la línea de comandos.

Si sabes utilizar la línea de comandos, puede que te resulte más fácil y rápido crear el archivo y editarlo con Nano o Vim.

Si no, seguiremos los pasos aquí.

En primer lugar, es necesario abrir el explorador de archivos en modo superusuario (este paso mantiene los archivos de configuración de PiCockpit PiControl a salvo de cualquier usuario o aplicación que quiera manipularlos).

Haga clic en el menú Raspberry Pi OS, y aquí haga clic en el comando "Ejecutar...":

Aparecerá un cuadro que dice "Introduzca el comando que desea ejecutar:". Escriba sudo pcmanfm y haz clic en Aceptar.

Se abre una nueva ventana que muestra el contenido del directorio /home/:

El símbolo de advertencia que aparece en la parte superior izquierda de la pantalla indica que se encuentra en modo Superusuario. En la parte superior derecha, desea navegar hasta el siguiente directorio:

/etc/picockpit-client/apps/com.picockpit/picontrol/modules

Haga clic con el botón derecho del ratón en el área vacía junto a los archivos existentes y seleccione "Nuevo archivo...".

Llama al nuevo archivo ssh-server.json:

Ahora, tienes que hacer clic con el botón derecho del ratón en el nuevo archivo, para que aparezca el menú contextual. Elige "Geany":

Ahora puede ver el nuevo archivo que acabamos de crear. Sin embargo, por el momento, está vacío.

Vamos a crear dos nuevos comandos, uno para apagar el servicio del servidor SSH, y otro para iniciarlo. Introduce lo siguiente en el campo de texto en Geany:

{
  "name": "SSH commands",
  "icon": "mdi-ssh",
  "handle": "ssh",
  "description": "Control the SSH server",
  "commands": {
    "ssh-stop": {
      "name": "SSH Server off",
      "icon": "mdi-server-minus",
      "description": "Shuts the SSH service down",
      "confirm": true,
      "user": "root",
      "command": ["service", "ssh", "stop"]
    },
    "ssh-start": {
      "name": "SSH Server on",
      "icon": "mdi-server-plus",
      "description": "Starts the SSH service",
      "user": "root",
      "command": ["service", "ssh", "start"]
    }
  }
}

En este punto debemos guardar el archivo. Puedes hacerlo desde el menú archivo de Geany, por ejemplo, seleccionando Guardar o pulsando Ctrl + S:

En este punto, nuestros nuevos comandos aún no han aparecido en la interfaz web.

Para ello es necesario reiniciar el Cliente PiCockpit.

Haga clic en el comando "Ejecutar..." en el menú Raspberry Pi OS una vez más y escriba sudo service picockpit-client restart en la ventana antes de pulsar OK:

Ahora eche un vistazo a su interfaz web PiControl:

Si has escrito todo correctamente, aparecerán los nuevos comandos del servidor SSH. I

i ha cometido un error en su archivo JSON (por ejemplo, si ha olvidado una llave), PiCockpit simplemente ignorará el archivo "roto".

Ahora puedes probar los comandos.

¡Enhorabuena! Acabas de crear tu propio conjunto de comandos que puedes ejecutar desde la interfaz web.

Permanece en la página mientras ejecutas comandos. El estado se borrará si te alejas. Para determinar si el servidor SSH se está ejecutando, puede realizar una prueba en nuestra aplicación PiDoctor.

PiControl es únicamente para ejecutar acciones remotas en su Raspberry Pi.

Recuerde reiniciar el Cliente PiCockpit cuando añada nuevos comandos o actualice comandos.

También puede eliminar los comandos que no desea tener. Por ejemplo, si desea eliminar la capacidad de apagar su Raspberry Pi de forma remota, puede editar el archivo core.json.

Sintaxis .JSON de PiControl

El archivo configura un nuevo módulo para PiControl.

Como ya se ha mencionado, tiene una sintaxis .JSON. Por lo tanto, debe asegurarse de abrir y terminar con llaves de forma correcta, como se presenta en el ejemplo anterior.

Hay una cabecera, que configura el propio módulo, y los comandos (en la sección "comandos"). Comparten algunas entradas comunes:

nombre

Las entradas de "nombre" son nombres legibles que se muestran en la interfaz web

icono

Las entradas de "icono" son opcionales para decorar sus botones y módulo. Son nombres de iconos de Material Design, por ejemplo "mdi-ssh".

Puede consultar un lista completa de iconos de Material Design aquí. Basta con copiar el nombre del icono (incluyendo el mdi- del principio).

descripción

Las entradas de "descripción" son opcionales y le permiten añadir un poco más de información para el comando o módulo.

manija

La entrada "handle" es explícita para el módulo, y tiene que ser única entre los módulos. En el caso de los comandos, el "handle" es implícito. "ssh-stop" y "ssh-start" son los dos manejadores que he utilizado para los comandos en mi ejemplo.

Puedes elegir cualquier cosa como asa, siempre que no incluya los caracteres "/", "+", "$", "*". Te recomiendo que te ciñas a los caracteres ASCII básicos en minúsculas, y que utilices el "-". El asa es requerido.

Su archivo puede, por cierto, tener un nombre de archivo diferente al del handle - le animo a utilizar al menos nombres relacionados para el nombre del archivo y el handle, para que pueda identificar fácilmente el archivo .JSON del módulo en su disco duro.

Los comandos van en la sección "comandos", y tienen posibilidades de configuración adicionales:

confirmar

Si "confirmar" está presente y es verdadero, la interfaz web de PiControl mostrará un diálogo de confirmación antes de ejecutar el comando. Esto es útil para asegurarse de que los comandos "peligrosos" no se ejecuten por un toque o clic accidental.

usuario

Si "usuario" está presente, el comando se ejecutará como este usuario en particular (como raíz en nuestro ejemplo, para asegurarnos de que tenemos suficientes privilegios).

PiControl ejecutará los comandos como usuario "pi" por defecto. También puede establecerlo para otros usuarios con menos privilegios que "pi“.

Si intentas ejecutar comandos GPIO, o reproducir videos usando omxplayer, puede que tengas que dar a tu nuevo usuario capacidades adicionales. El usuario pi tiene estos privilegios necesarios por defecto. Normalmente estos privilegios se establecen añadiendo el usuario a un grupo especial.

comando

Este es el comando real que debe ejecutar en su Raspberry Pi. Tenga en cuenta que debe reemplazar los espacios en el comando en comparación con como lo ejecutaría en la línea de comandos. Por ejemplo,

servicio ssh start

debería escribirse como:

["servicio", "ssh", "inicio"]

PiControl también soporta el encadenamiento de una secuencia de comandos (por ejemplo, la secuencia habitual de apt-get update, apt-get upgrade). Consulte core.json para ver un ejemplo de cómo se hace.

Conclusión:

Si tiene alguna pregunta o se encuentra con algún problema, no dude en ponerse en contacto con nosotros y le ayudaremos a poner PiControl en funcionamiento.

22 Comentarios

  1. Max el mayo 12, 2021 a las 5:30 pm

    ¡Hola!
    Quiero ejecutar el siguiente comando con un botón de picontrol: cd /home/pi/Sensoren ; python3 SCRIPT.py
    Lo hice como se describe y puedo presionar el botón pero el comando no se ejecuta y tampoco se puede detener el proceso.
    ¿Algún consejo?
    Gracias

    • raspi berry el julio 1, 2021 a las 5:22 pm

      recuerda que picontrol no es un shell - todos los comandos se ejecutan de forma independiente. tienes que utilizar rutas absolutas (cd - cambiar de directorio - es inútil en el contexto de picontrol).

  2. Alex el agosto 16, 2021 a las 6:34 pm

    El inicio de un script en python funciona bien, por ejemplo:
    "comando": ["python3", "/home/pi/do_something.pyc"]
    Pero tengo problemas si el script inicia posteriormente una aplicación con una GUI como Chromium o si se inicia directamente Chromium:
    "comando": ["chromium-browser"] da como resultado "Imposible abrir la pantalla X. ".

    ¿Cómo puedo iniciar scripts o aplicaciones que requieren una pantalla X?

    • PiCaptain el agosto 19, 2021 a las 5:08 pm

      He escrito un poco más sobre esto aquí:
      https://pi3g.com/2020/05/19/chromium-exit-code-5/

      Básicamente tienes que decirle a la aplicación qué pantalla X debe utilizar.
      En el caso de Chromium se hace con una bandera

      chromium-browser -display=:0 -kiosk https://picockpit.com

      nota, -kiosk inicia el navegador en modo kiosco. Solo lo digo como información extra.
      nota II: son dos guiones para los parámetros - WordPress los cambia a un solo guión largo creo.

      Para otras aplicaciones tendrá que comprobarlo. Con frecuencia esto se hace estableciendo una variable de entorno.
      Posiblemente para PiCockpit habría que escribir un script bash que establezca la variable y luego inicie la aplicación.
      Y luego ejecutar el script bash.

      Si tienes algún éxito con esto, por favor compártelo con nosotros.

      Max

      • PiCaptain el agosto 19, 2021 a las 5:09 pm

        Como imagen

    • PiCaptain el agosto 19, 2021 a las 5:11 pm

      También vea estos dos enlaces para más información sobre los interruptores de línea de comandos para Chromium:

      http://peter.sh/experiments/chromium-command-line-switches/
      https://www.chromium.org/developers/how-tos/run-chromium-with-flags

  3. Sri el octubre 13, 2021 a las 1:23 pm

    Hola, acabo de configurar un comando utilizando su software e infraestructura y es impresionante. Muchas gracias por este software simple y fácil de usar. Quería un poco de consejo si estás libre. Básicamente, tengo mi configuración Pi para despertar a mi PC de sueño, y su software que permite una interfaz web simple para despertar el PC con un comando etherwake está trabajando, sin embargo, me gustaría una forma más rápida de ejecutar este comando inmediatamente. ¿Cree usted que hay alguna manera de hacer esto posible? Actualmente para despertar mi PC, tengo que iniciar sesión y luego ir a mi comando y luego elegir el botón en el cuadro emergente, pero si había una api o un acceso directo a la ejecución básicamente el comando en un solo clic, que sería útil. De cualquier manera, muchas gracias por esto. Muy impresionante 🙂 .

    • PiCaptain el octubre 23, 2021 a las 1:41 pm

      Gracias por la sugerencia de la función, la he añadido. Estamos planeando hacer una aplicación wake on lan en algún momento, tal vez podría ser un poco más conveniente.

  4. Hager el marzo 31, 2022 a las 12:26 pm

    Hola,
    ¿Cómo puedo, por ejemplo, hacer una pregunta como (¿Desea continuar? [Y/n]) sobre el script con "Y"?

    ¡Vielen Dank!

    • Hanno el abril 20, 2022 a las 7:30 am

      Hola Herr Hager,

      Esta es una buena pregunta. Algunos programas de gestión, como por ejemplo apt-get, han integrado ya una -asumir-sí Opción que le permite utilizar en un modo no interactivo. Esto puede ser utilizado en programas que no necesitan ser modificados manualmente. Como alternativa existe el clásico Unix 'Programa con el que podrá obtener sus propios resultados. Por ejemplo, con:
      yes | sudo apt upgrade
      Dependiendo de su situación de uso, puede que una de estas dos opciones sea una buena solución. Por lo tanto, ¡puede enviarnos un mensaje!

  5. Jaka el marzo 30, 2023 a las 7:32 am

    Hola, ¿se puede usar el terminal RPi desde picockpit?

    • raspi berry el abril 19, 2023 a las 7:48 pm

      aún no, previsto para una próxima versión. (a partir de 19.4.2023)

  6. DGDodo el abril 25, 2023 a las 10:09 pm

    No todos los iconos del sitio web mencionado están disponibles / funcionan.
    ¿Cómo utilizar iconos más recientes que la versión 4.9.95, por ejemplo 'mdi-lamps-outline'?

    • PiCaptain el mayo 10, 2023 a las 12:33 pm

      Estamos actualizando el código del frontend. Voy a compartir su comentario con nuestro desarrollador, posiblemente pueden mirar en esto antes de la próxima actualización para llevar los iconos a la versión más reciente.

    • PiCaptain el mayo 19, 2023 a las 11:54 am

      Hola, hemos actualizado el frontend, lo que significa que ahora usted es capaz de utilizar todos los iconos hasta la última versión de Material Design Icons. También mantendremos actualizada la versión de la Fuente en el futuro.

  7. [...] HAGA CLIC AQUÍ: Aprenda cómo puede configurar sus propios comandos en PiControl. [...]

  8. Expanding PiCockpit to 64 Bit Pi OS el agosto 28, 2023 a las 9:32 am

    [...] Las herramientas administrativas que te ayudan a controlar tu Pi funcionan. Esto incluye las aplicaciones GPIO, PiControl, PiDoctor y PiStats. ¿Quizás configurar tu nueva instalación de 64 bits con una forma fácil de activar tu servidor SSH? ¿O iniciar y detener ese centro multimedia que has configurado? ¿Enviar un mensaje WoL? Puedes encontrar una buena introducción a las posibilidades que ofrece nuestro software aquí. [...]

  9. chris l el septiembre 4, 2023 a las 11:11 am

    apt-get -just-print upgrade 2>&1 | perl -ne 'if (/Inst\s([\w,\-,\d,\.,~,:,\+]+)\s[([\w,\-,\d,\.,~,:,\+]+)\]\s(([\w,\-,\d,\.,~,:,\+]+)\)? /i) {print "PAQUETE: $1 INSTALADO: $2 DISPONIBLE: $3\n"}'

    El comando anterior funciona bien con SSH pero PiControl tiene un problema e informa:
    (100) E: La opción de línea de comandos 'n' [de -ne] no se entiende en combinación con las otras opciones.

    Creo que escapé mi JSON correctamente ya que el comando mostrado en PiControl es el mismo que escapé y dividí los espacios en cadenas separadas.

    JSON:
    {
    "nombre": "Comandos de actualización CISO",
    "icono": "mdi-update",
    "handle": "CISO",
    "descripción": "CISO instalar todas las actualizaciones",
    "comandos": {
    "ciso-updates": {
    "name": "CISO Updates",
    "icono": "mdi-server-minus",
    "descripción": "Actualiza la lista de todos los paquetes del repositorio y actualiza todos los paquetes instalados",
    "confirmar": true,
    "usuario": "root",
    "comando": [
    [
    "apt-get",
    "actualizar"
    ],
    [
    "apt-get",
    "actualizar",
    "-y"
    ],
    [
    "apt-get",
    "-just-print",
    "actualizar",
    "2>&1",
    “|”,
    "perl",
    "-ne",
    "'si",
    “(/Inst\\s([\\w,\\-,\\d,\\.,~,:,\\+]+)\\s\\[([\\w,\\-,\\d,\\.,~,:,\\+]+)\\]\\s\\(([\\w,\\-,\\d,\\.,~,:,\\+]+)\\)?”,
    "/i)",
    "{print",
    "\"PAQUETE:",
    “$1”,
    "INSTALADO:",
    “$2”,
    "DISPONIBLE:",
    "$3\\n\"}'"
    ]
    ]
    }
    }
    }

  10. Bruchpilot el octubre 8, 2023 a las 12:28 pm

    Hola,
    ich versuche die Ersten Schritte mit picockpit. leider gelingt es mir keine Anwendung über die Fernsteuerung zu öffnen. z.B. chromium-browser, dillo, geany
    Las aplicaciones se conectan directamente a la tarjeta del terminal

    "geany": {
    "name": "EditorG",
    "icon": "mdi-application-edit-outline",
    "descripción": "Editor de texto",
    "confirmar": true,
    "noterminación": true,
    "usuario": "root",
    "command": ["geany"]
    },

    • Adam el enero 25, 2024 a las 4:28 pm

      Hola, el siguiente error debe ser corregido: "-display=:0"

      Dann sieht es so aus:
      {
      "Nombre": "Geany Opener",
      "icon": "mdi-application-edit-outline",
      "handle": "open-geany",
      "Descripción": "Lanzar Geany",
      "comandos": {
      "open-geany": {
      "name": "Open Geany",
      "icon": "mdi-application-edit-outline",
      "descripción": "Lanza Geany",
      "confirmar": true,
      "usuario": "“,
      "command": ["geany", "-display=:0"]
      }
      }
      }

  11. [...] Raspberry Pi se puede integrar en los sistemas de gestión de inventario para controlar los niveles de existencias, realizar un seguimiento de los activos y automatizar los procesos de reorden. Si desea encontrar formas de desarrollar un sistema de gestión de inventario personalizado, puede desarrollar scripts que luego podría ejecutar con nuestra PiControl App a través de PiCockpit. [...]

  12. [...] hace que la creación de scripts para su Raspberry Pi sea intuitiva y fácil de gestionar. Con nuestra PiControl App, puede escribir fácilmente un script y crear un botón para ejecutarlo desde cualquier lugar de la [...]

Deja un comentario