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.
¡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
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).
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?
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
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
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 🙂 .
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.
Hola,
¿Cómo puedo, por ejemplo, hacer una pregunta como (¿Desea continuar? [Y/n]) sobre el script con "Y"?
¡Vielen Dank!
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 'sí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!
Hola, ¿se puede usar el terminal RPi desde picockpit?
aún no, previsto para una próxima versión. (a partir de 19.4.2023)
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'?
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.
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.
[...] HAGA CLIC AQUÍ: Aprenda cómo puede configurar sus propios comandos en PiControl. [...]
[...] 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í. [...]
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\"}'"
]
]
}
}
}
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"]
},
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"]
}
}
}
[...] 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. [...]
[...] 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 [...]