PiControl

Immagine del titolo di PiControl

PiControl è una potente applicazione che consente di controllare il Raspberry Pi in remoto da qualsiasi browser web.

Questa pagina offre una panoramica dell'applicazione PiControl.

PiControl

Noterete che, per impostazione predefinita, tre comandi sono inclusi e immediatamente disponibili per il vostro Raspberry Pi. In particolare, con PiControl è possibile spegnere il Raspberry Pi, riavviare il Raspberry Pi e aggiornare il client PiCockpit.

Personalizzazione di PiControl

Ciò che rende PiControl particolarmente utile è che è anche personalizzabile.

È possibile definire in modo semplice e sicuro i propri comandi modificando i file JSON sul Raspberry Pi.

Ecco quindi le istruzioni per gli utenti che non hanno esperienza con la riga di comando.

Se sapete usare la riga di comando, potreste trovare più facile e veloce creare il file e modificarlo con Nano o Vim.

Se non è così, allora seguiamo i passi qui indicati.

Per prima cosa, è necessario aprire il browser dei file in modalità superutente (questo passaggio consente di proteggere i file di configurazione di PiCockpit PiControl da qualsiasi utente o applicazione che voglia manometterli).

Fare clic sul menu del sistema operativo Raspberry Pi e fare clic sul comando "Esegui...":

Verrà visualizzata una casella con scritto "Inserire il comando che si desidera eseguire:". Digitare sudo pcmanfm e fare clic su OK.

Si apre una nuova finestra che mostra il contenuto della directory /home/:

Il simbolo di avvertimento in alto a sinistra indica che ci si trova in modalità Super User. In alto a destra, si desidera navigare nella seguente directory:

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

Fare clic con il tasto destro del mouse nell'area vuota accanto ai file esistenti e selezionare "Nuovo file...".

Chiama il nuovo file ssh-server.json:

A questo punto, è necessario fare clic con il tasto destro del mouse sul nuovo file, per richiamare il menu contestuale. Scegliere "Geany":

Ora è possibile vedere il nuovo file appena creato. Tuttavia, al momento è vuoto.

Creiamo due nuovi comandi, uno per spegnere il servizio server SSH e uno per avviarlo. Inserite quanto segue nel campo di testo di 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"]
    }
  }
}

A questo punto è necessario salvare il file. È possibile farlo dal menu File di Geany, per esempio selezionando Salva o premendo Ctrl + S:

A questo punto i nuovi comandi non sono ancora apparsi nell'interfaccia web.

A questo scopo è necessario riavviare il client PiCockpit.

Fare nuovamente clic sul comando "Esegui..." nel menu del sistema operativo Raspberry Pi e digitare sudo service picockpit-client restart nella finestra prima di fare clic su OK:

Ora date un'occhiata all'interfaccia web di PiControl:

Se avete digitato tutto correttamente, appariranno i nuovi comandi del server SSH. I

Se si è commesso un errore nel file JSON (ad esempio, se si è dimenticata una parentesi graffa), PiCockpit ignorerà semplicemente il file "rotto".

Ora è possibile provare i comandi.

Congratulazioni! Hai appena creato il tuo set di comandi che puoi eseguire dall'interfaccia web.

Rimanere sulla pagina mentre si eseguono i comandi. Lo stato verrà cancellato se ci si allontana. Per determinare se il server SSH è in funzione, si può eseguire un test sull'applicazione PiDoctor.

PiControl serve esclusivamente per eseguire azioni remote sul vostro Raspberry Pi.

Ricordate di riavviare il client PiCockpit quando aggiungete nuovi comandi o aggiornate i comandi.

È anche possibile rimuovere i comandi che non si desidera avere. Ad esempio, se si vuole rimuovere la possibilità di spegnere il Raspberry Pi da remoto, si può modificare il file core.json.

Sintassi .JSON di PiControl

Il file configura un nuovo modulo per PiControl.

Come già detto, ha una sintassi .JSON. Pertanto, è necessario assicurarsi di aprire e terminare le parentesi graffe in modo corretto, come presentato nell'esempio precedente.

C'è una testa, che configura il modulo stesso, e i comandi (nella sezione "comandi"). Essi condividono alcune voci comuni:

nome

Le voci "nome" sono nomi leggibili dall'uomo che vengono mostrati nell'interfaccia web

icona

Le voci "icona" sono opzionali per decorare i vostri pulsanti e moduli. Sono nomi di icone del Material Design, per esempio "mdi-ssh".

Potete controllare un elenco completo delle icone del Material Design qui. Copiate semplicemente il nome dell'icona (incluso il mdi- all'inizio).

descrizione

Le voci "description" sono opzionali e permettono di aggiungere un po' più di informazioni per il comando o il modulo.

maniglia

La voce "handle" è esplicita per il modulo, e deve essere unica tra i moduli. Nel caso dei comandi, l'handle è implicito. "ssh-stop" e "ssh-start"Sono le due maniglie che ho usato per i comandi nel mio esempio.

Potete scegliere qualsiasi cosa come maniglia, purché non includa i caratteri "/", "+", "$", "*". Raccomando di attenersi ai caratteri ASCII minuscoli di base, e di usare il "-". La maniglia è richiesto.

Il tuo file può, a proposito, avere un nome diverso da quello dell'handle - ti incoraggio a usare almeno nomi correlati per il nome del file e l'handle, così puoi identificare facilmente il file .JSON del modulo sul tuo disco rigido.

I comandi vanno nella cartella "comandi"e hanno ulteriori possibilità di configurazione:

confermare

Se "confermare" è presente e impostato su true, l'interfaccia web di PiControl mostrerà una finestra di dialogo di conferma prima di eseguire effettivamente il comando. Questo è utile per assicurarsi che i comandi "pericolosi" non vengano eseguiti da un tocco o da un clic accidentale.

utente

Se "utente" è presente, il comando verrà eseguito come questo particolare utente (come radice nel nostro esempio, per assicurarci di avere sufficienti privilegi).

PiControl eseguirà i comandi come utente "pi" di default. Potete anche impostarlo su altri utenti con meno privilegi di "pi“.

Se cercate di eseguire comandi GPIO, o di riprodurre video usando omxplayer, potreste dover dare al vostro nuovo utente capacità aggiuntive. L'utente pi ha questi privilegi richiesti per impostazione predefinita. Di solito questi privilegi sono impostati aggiungendo l'utente a un gruppo speciale.

comando

Questo è il comando effettivo da eseguire sul vostro Raspberry Pi. Si noti che è necessario sostituire gli spazi nel comando rispetto a come lo si eseguirebbe alla riga di comando. Ad esempio,

servizio ssh start

dovrebbe essere scritto come:

["service", "ssh", "start"]

PiControl supporta anche il concatenamento di una sequenza di comandi (ad esempio la solita sequenza apt-get update, apt-get upgrade). Controlla il core.json per un esempio di come viene fatto.

Conclusione

Per qualsiasi domanda o problema, non esitate a contattarci e vi aiuteremo a rendere PiControl operativo!

22 commenti

  1. Max in Maggio 12, 2021 il 5:30 pm

    Ciao a tutti!
    Voglio eseguire il seguente comando con un pulsante picontrol: cd /home/pi/Sensoren ; python3 SCRIPT.py
    Ho fatto come descritto e posso premere il pulsante ma il comando non viene eseguito e anche il processo non può essere fermato.
    Qualche consiglio?
    Grazie

    • raspi berry in Luglio 1, 2021 il 5:22 pm

      Ricordate che picontrol non è una shell - tutti i comandi sono eseguiti indipendentemente. dovete usare percorsi assoluti (cd - cambiare directory - è inutile nel contesto di picontrol).

  2. Alex in Agosto 16, 2021 il 6:34 pm

    Avviare uno script python funziona bene, esempio:
    "comando": ["python3", "/home/pi/do_something.pyc"]
    Ma ho problemi se lo script avvia successivamente un'app con un'interfaccia grafica come Chromium o se Chromium viene avviato direttamente:
    "comando": ["chromium-browser"] dà come risultato "Impossibile aprire il display X. ".

    Come faccio ad avviare script o applicazioni che richiedono un display X?

    • PiCaptain in Agosto 19, 2021 il 5:08 pm

      Ho scritto un po' di più su questo argomento qui:
      https://pi3g.com/2020/05/19/chromium-exit-code-5/

      In pratica devi dire all'applicazione quale display X usare.
      Nel caso di Chromium è fatto con un flag

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

      nota, -kiosk avvia il browser in modalità kiosk. Lo inserisco solo come informazione extra.
      nota II: questi sono due trattini per i parametri - WordPress li cambia in un singolo trattino lungo credo.

      Per altre applicazioni dovrete controllare. Spesso questo viene fatto impostando una variabile d'ambiente.
      Forse per PiCockpit dovreste scrivere uno script bash che imposta la variabile e poi avvia l'applicazione.
      E poi eseguire lo script bash.

      Se hai successo con questo, per favore condividilo con noi.

      Max

      • PiCaptain in Agosto 19, 2021 il 5:09 pm

        Come immagine

    • PiCaptain in Agosto 19, 2021 il 5:11 pm

      Vedi anche questi due link per saperne di più sugli interruttori della linea di comando per Chromium:

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

  3. Sri in Ottobre 13, 2021 il 1:23 pm

    Ciao, ho appena impostato un comando utilizzando il vostro software e la vostra infrastruttura ed è fantastico! Grazie mille per questo software semplice e facile da usare. Volevo un consiglio se sei libero. Fondamentalmente, ho il mio Pi impostato per svegliare il mio pc dal sonno, e il tuo software che permette una semplice interfaccia web per svegliare il pc con un comando etherwake funziona, tuttavia mi piacerebbe un modo più veloce di eseguire questo comando immediatamente. Pensi che ci sia un modo per renderlo possibile? Attualmente per svegliare il mio pc, devo fare il login e poi andare al mio comando e poi scegliere il pulsante nella casella pop-up, ma se ci fosse una api o una scorciatoia per eseguire fondamentalmente il comando in un clic, sarebbe utile. In ogni caso, grazie mille per questo. Davvero fantastico 🙂

    • PiCaptain in Ottobre 23, 2021 il 1:41 pm

      Grazie per il suggerimento, l'ho aggiunto. Stiamo pianificando di fare una veglia sull'app lan prima o poi, forse potrebbe essere un po' più conveniente.

  4. Hager in Marzo 31, 2022 il 12:26 pm

    Ciao,
    Come posso fare, ad esempio, per continuare (Vuoi continuare? [Y/n]) su questo script con "Y"?

    Vielen Dank!

    • Hanno in Aprile 20, 2022 il 7:30 am

      Hallo Herr Hager,

      questo è un problema molto serio! Einige Kommandozeilen Programme wie zum etwa apt-get haben eine bereits integrierte -assume-yes Option, die es ermöglicht sie in einem nicht-interaktivem Modus zu nutzen. Questo è possibile anche in Skripten ausgenutzt, che non hanno bisogno di Bestätigungen a mano. In alternativa c'è il classico Unix 'Programm mit Sie das selbe Ergebnis erzielen können. Beispielsweise mit:
      yes | sudo apt upgrade
      Abhängig von Ihrem konkretem Anwendungsfall sollte eigentlich eine dieser zöglichkeiten eine gute Lösung darstellen. Ansonsten können Sie uns gerne noch einmal schreiben!

  5. Jaka in Marzo 30, 2023 il 7:32 am

    Salve, è possibile utilizzare il terminale RPi da picockpit?

    • raspi berry in Aprile 19, 2023 il 7:48 pm

      non ancora, previsto per una release futura. (a partire dal 19.4.2023)

  6. DGDodo in Aprile 25, 2023 il 10:09 pm

    Non tutte le icone del sito web citato sono disponibili/funzionanti.
    Come utilizzare icone più recenti della versione 4.9.95, ad esempio 'mdi-lamps-outline'?

    • PiCaptain in Maggio 10, 2023 il 12:33 pm

      stiamo aggiornando il codice del frontend. Condividerò il tuo commento con il nostro sviluppatore, che forse potrà occuparsene prima del prossimo aggiornamento per portare le icone alla versione più recente.

    • PiCaptain in Maggio 19, 2023 il 11:54 am

      Salve, abbiamo aggiornato il frontend, il che significa che ora è possibile utilizzare tutte le icone fino alla versione più recente di Material Design Icons. In futuro terremo aggiornata anche la versione del font.

  7. [...] FARE CLIC QUI: Imparare a impostare i propri comandi in PiControl. [...]

  8. Expanding PiCockpit to 64 Bit Pi OS in Agosto 28, 2023 il 9:32 am

    [...] Gli strumenti amministrativi che vi aiutano a controllare il vostro Pi sono tutti funzionanti. Questo include le applicazioni GPIO, PiControl, PiDoctor e PiStats. Magari configurare la vostra nuova installazione a 64 bit con un modo semplice per attivare il server SSH? Oppure avviare e arrestare il media center che avete impostato? Inviare un messaggio WoL? Qui potete trovare una buona introduzione alle possibilità offerte dal nostro software. [...]

  9. chris l in Settembre 4, 2023 il 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 "PACKAGE: $1 INSTALLATO: $2 DISPONIBILE: $3\n"}'

    Il comando di cui sopra funziona perfettamente con SSH, ma PiControl ha un problema e lo segnala:
    (100) E: L'opzione della riga di comando 'n' [da -ne] non è compresa in combinazione con le altre opzioni.

    Credo di aver eseguito correttamente l'escape del mio JSON, poiché il comando visualizzato in PiControl è lo stesso che ho eseguito con l'escape e la suddivisione degli spazi in stringhe separate.

    JSON:
    {
    "nome": "Comandi di aggiornamento CISO",
    "icona": "mdi-update",
    "maniglia": "CISO",
    "descrizione": "CISO installa tutti gli aggiornamenti",
    "comandi": {
    "ciso-updates": {
    "nome": "Aggiornamenti CISO",
    "icona": "mdi-server-minus",
    "descrizione": "Aggiorna l'elenco di tutti i pacchetti presenti nel repository e aggiorna tutti i pacchetti installati",
    "conferma": vero,
    "utente": "root",
    "comando": [
    [
    "apt-get",
    "aggiornamento"
    ],
    [
    "apt-get",
    "aggiornamento",
    "-y"
    ],
    [
    "apt-get",
    "-just-print",
    "aggiornamento",
    "2>&1",
    “|”,
    "perl",
    "-ne",
    "se",
    “(/Inst\\s([\\w,\\-,\\d,\\.,~,:,\\+]+)\\s\\[([\\w,\\-,\\d,\\.,~,:,\\+]+)\\]\\s\\(([\\w,\\-,\\d,\\.,~,:,\\+]+)\\)?”,
    "/i)",
    "{stampa}",
    "PACKAGE:",
    “$1”,
    "INSTALLATO:",
    “$2”,
    "DISPONIBILE:",
    "$3\n" }'"
    ]
    ]
    }
    }
    }

  10. Bruchpilot in Ottobre 8, 2023 il 12:28 pm

    Ciao,
    Ho provato le prime schermate con picockpit. ma non riesco a capire quale sia l'utilizzo per la gestione del traffico.
    Con l'inserimento nel terminale si possono utilizzare direttamente le funzioni.

    "geany": {
    "nome": "EditorG",
    "icona": "mdi-application-edit-outline",
    "descrizione": "Editor di testo",
    "conferma": vero,
    "notermination": vero,
    "utente": "root",
    "comando": ["geany"]
    },

    • Adam in Gennaio 25, 2024 il 4:28 pm

      Hallo, der folgende Befehl muss hinzugefügt werden: "-display=:0"

      Dann sieht es so aus:
      {
      "nome": "Geany Opener",
      "icona": "mdi-application-edit-outline",
      "handle": "open-geany",
      "descrizione": "Lancia Geany",
      "comandi": {
      "open-geany": {
      "nome": "Open Geany",
      "icona": "mdi-application-edit-outline",
      "descrizione": "Lancia Geany",
      "conferma": vero,
      "utente": "“,
      "comando": ["geany", "-display=:0"].
      }
      }
      }

  11. [...] Raspberry Pi può essere integrato nei sistemi di gestione dell'inventario per monitorare i livelli delle scorte, tracciare i beni e automatizzare i processi di riordino. Se volete trovare il modo di sviluppare un sistema di gestione dell'inventario personalizzato, potete sviluppare degli script da eseguire con la nostra App PiControl attraverso PiCockpit. [...]

  12. [...] rende lo scripting per il vostro Raspberry Pi intuitivo e facile da gestire. Con la nostra App PiControl, potete facilmente scrivere uno script e creare un pulsante per eseguirlo da qualsiasi punto del [...]

Lascia un commento