PiControl

PiControl Image de titre

PiControl est une application puissante qui vous permet de contrôler votre Raspberry Pi à distance à partir de n'importe quel navigateur Web.

Cette page vous donne un aperçu de l'application PiControl.

PiControl

Vous remarquerez que, par défaut, trois commandes sont incluses et immédiatement disponibles pour votre Raspberry Pi. A savoir, avec PiControl, vous pouvez éteindre votre Raspberry Pi, redémarrer votre Raspberry Pi et mettre à jour le client PiCockpit.

Personnaliser PiControl

Ce qui rend PiControl particulièrement utile, c'est qu'il est également personnalisable.

Vous pouvez facilement et en toute sécurité définir vos propres commandes en éditant des fichiers JSON sur votre Raspberry Pi.

Voici donc des instructions destinées aux utilisateurs qui n'ont pas d'expérience de la ligne de commande.

Si vous savez utiliser la ligne de commande, vous trouverez peut-être plus facile et plus rapide de créer le fichier et de l'éditer avec Nano ou Vim.

Si ce n'est pas le cas, nous allons suivre les étapes suivantes.

Tout d'abord, vous devez ouvrir le navigateur de fichiers en mode super utilisateur (cette étape permet de protéger vos fichiers de configuration PiCockpit PiControl de tout utilisateur ou application souhaitant les altérer).

Cliquer sur Raspberry Pi OS Menu, et ici cliquer sur la commande "Run..." :

Une boîte de dialogue s'affiche : "Entrez la commande que vous voulez exécuter :". Tapez sudo pcmanfm et cliquez sur OK.

Une nouvelle fenêtre s'ouvre, affichant le contenu du répertoire /home/ :

Le symbole d'avertissement en haut à gauche de l'écran indique que vous êtes en mode Super Utilisateur. En haut à droite, vous souhaitez naviguer dans le répertoire suivant :

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

Cliquez avec le bouton droit de la souris dans la zone vide à côté des fichiers existants et sélectionnez "Nouveau fichier...".

Appelez le nouveau fichier ssh-server.json :

Vous devez maintenant cliquer avec le bouton droit de la souris sur le nouveau fichier, pour faire apparaître le menu contextuel. Choisissez "Geany" :

Vous pouvez maintenant voir le nouveau fichier que nous venons de créer. Cependant, pour le moment, il est vide.

Créons deux nouvelles commandes, l'une pour arrêter le service du serveur SSH, l'autre pour le démarrer. Saisissez ce qui suit dans le champ de texte de 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"]
    }
  }
}

À ce stade, nous devons enregistrer le fichier. Vous pouvez le faire à partir du menu Fichier de Geany, par exemple en sélectionnant Enregistrer ou en appuyant sur Ctrl + S :

À ce stade, nos nouvelles commandes ne sont pas encore apparues dans l'interface web.

Pour cela, vous devez redémarrer le client PiCockpit.

Cliquez à nouveau sur la commande "Exécuter..." dans le menu du Raspberry Pi OS et tapez sudo service picockpit-client restart dans la fenêtre avant de cliquer sur OK :

Jetez maintenant un coup d'oeil à l'interface web de votre PiControl :

Si vous avez tout tapé correctement, les nouvelles commandes du serveur SSH apparaîtront. I

Si vous avez fait une erreur dans votre fichier JSON (par exemple, si vous avez oublié un crochet), PiCockpit ignorera simplement le fichier "cassé".

Vous pouvez maintenant essayer les commandes.

Félicitations ! Vous venez de créer votre propre ensemble de commandes que vous pouvez exécuter à partir de l'interface web.

Restez sur la page pendant que vous exécutez les commandes. L'état sera effacé si vous quittez la page. Pour déterminer si le serveur SSH fonctionne, vous pouvez effectuer un test sur notre application PiDoctor.

PiControl sert uniquement à exécuter des actions à distance sur votre Raspberry Pi.

N'oubliez pas de redémarrer le client PiCockpit lorsque vous ajoutez de nouvelles commandes ou que vous les mettez à jour.

Vous pouvez également supprimer les commandes que vous ne souhaitez pas avoir. Par exemple, si vous souhaitez supprimer la possibilité d'éteindre votre Raspberry Pi à distance, vous pouvez éditer le fichier core.json.

Syntaxe .JSON de PiControl

Le fichier configure un nouveau module pour PiControl.

Comme nous l'avons déjà mentionné, il a une syntaxe .JSON. Par conséquent, vous devez vous assurer que vous ouvrez et terminez les accolades de manière correcte, comme indiqué dans l'exemple ci-dessus.

Il y a une tête, qui configure le module lui-même, et les commandes (dans la section "commandes"). Elles partagent certaines entrées communes :

nom

Les entrées "nom" sont des noms lisibles par l'homme qui vous sont montrés dans l'interface web.

icône

Les entrées "icon" sont facultatives pour décorer vos boutons et votre module. Il s'agit de noms d'icônes Material Design, par exemple "mdi-ssh".

Vous pouvez consulter un Liste complète des icônes Material Design ici. Il suffit de copier le nom de l'icône (y compris le mdi- au début).

description

Les entrées "description" sont facultatives et vous permettent d'ajouter un peu plus d'informations sur la commande ou le module.

poignée

L'entrée "handle" est explicite pour le module, et doit être unique parmi les modules. Dans le cas des commandes, le handle est implicite. "ssh-stop" et "ssh-start"sont les deux poignées que j'ai utilisées pour les commandes dans mon exemple.

Vous pouvez choisir n'importe quoi comme poignée, tant que cela ne comprend pas les caractères "/", "+", "$", "*". Je recommande de s'en tenir aux caractères ASCII minuscules de base, et d'utiliser le "-". L'identifiant est requis.

Votre fichier peut d'ailleurs avoir un nom différent de celui de l'identifiant. Je vous encourage à utiliser au moins des noms apparentés pour le nom du fichier et l'identifiant, afin de pouvoir identifier facilement le fichier .JSON du module sur votre disque dur.

Les commandes sont placées dans la section "commandes"et offrent des possibilités de configuration supplémentaires :

confirmer

Si "confirmer" est présent et défini à true, l'interface web PiControl affichera une boîte de dialogue de confirmation avant d'exécuter la commande. Ceci est utile pour s'assurer que les commandes "dangereuses" ne sont pas exécutées par un tapotement ou un clic accidentel.

utilisateur

Si "utilisateur" est présent, la commande sera exécutée en tant qu'utilisateur particulier (en tant que racine dans notre exemple, pour s'assurer que nous disposons de privilèges suffisants).

PiControl exécutera les commandes en tant qu'utilisateur "pi"par défaut. Vous pouvez également le définir sur d'autres utilisateurs ayant moins de privilèges que "pi“.

Si vous essayez d'exécuter des commandes GPIO, ou de lire des vidéos à l'aide d'omxplayer, vous devrez peut-être donner à votre nouvel utilisateur des capacités supplémentaires. L'utilisateur pi possède ces privilèges par défaut. Habituellement, ces privilèges sont définis en ajoutant l'utilisateur à un groupe spécial.

commande

Voici la commande que vous devez exécuter sur votre Raspberry Pi. Notez que vous devez remplacer les espaces dans la commande comparée à comme vous le feriez sur la ligne de commande. Par exemple,

service ssh start

devrait être écrit comme suit :

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

PiControl prend également en charge le chaînage d'une séquence de commandes (par exemple, la séquence habituelle apt-get update, apt-get upgrade). Consultez le fichier core.json pour un exemple de la façon dont cela est fait.

Conclusion

Si vous avez des questions ou rencontrez des problèmes, n'hésitez pas à nous contacter et nous vous aiderons à faire fonctionner PiControl !

22 commentaires

  1. Max sur mai 12, 2021 à 5:30 pm

    Bonjour à tous !
    Je veux exécuter la commande suivante avec un bouton picontrol : cd /home/pi/Sensoren ; python3 SCRIPT.py
    Je l'ai fait comme décrit et je peux appuyer sur le bouton mais la commande n'est pas exécutée et le processus ne peut pas être arrêté.
    Des conseils ?
    Merci

    • raspi berry sur juillet 1, 2021 à 5:22 pm

      rappelez-vous que picontrol n'est pas un shell - toutes les commandes sont exécutées indépendamment. vous devez utiliser des chemins absolus (cd - changer de répertoire - est inutile dans le contexte de picontrol).

  2. Alex sur août 16, 2021 à 6:34 pm

    Le lancement d'un script python fonctionne bien, par exemple :
    "commande" : ["python3", "/home/pi/do_something.pyc"]
    Mais j'ai des problèmes si le script lance ensuite une application avec une interface graphique comme Chromium ou si Chromium est lancé directement :
    "commande" : ["chromium-browser"] résulte en "Unable to open X display. ".

    Comment lancer des scripts ou des applications qui nécessitent un affichage X ?

    • PiCaptain sur août 19, 2021 à 5:08 pm

      J'ai écrit un peu plus sur ce sujet ici :
      https://pi3g.com/2020/05/19/chromium-exit-code-5/

      En fait, vous devez indiquer à l'application quel affichage X utiliser.
      Dans le cas de Chromium, cela se fait avec un drapeau

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

      note, -kiosk démarre le navigateur en mode kiosque. Je le mentionne juste comme information supplémentaire.
      note II : il s'agit de deux tirets pour les paramètres - WordPress les change en un seul long tiret je crois.

      Pour d'autres applications, vous devrez vérifier. Cela se fait souvent en définissant une variable d'environnement.
      Pour PiCockpit, il faudrait peut-être écrire un script bash qui définit la variable et lance ensuite l'application.
      Et ensuite exécuter le script bash.

      Si vous avez du succès avec cette méthode, partagez avec nous.

      Max

      • PiCaptain sur août 19, 2021 à 5:09 pm

        Comme image

    • PiCaptain sur août 19, 2021 à 5:11 pm

      Consultez également ces deux liens pour en savoir plus sur les commutateurs de ligne de commande pour Chromium :

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

  3. Sri sur octobre 13, 2021 à 1:23 pm

    Bonjour, je viens de mettre en place une commande en utilisant votre logiciel et votre infrastructure et c'est génial ! Merci beaucoup pour ce logiciel simple et facile à utiliser. Je voulais un petit conseil si vous êtes libre. En gros, j'ai configuré mon Pi pour réveiller mon PC de son sommeil, et votre logiciel permettant une interface web simple pour réveiller le PC avec une commande etherwake fonctionne, cependant j'aimerais un moyen plus rapide d'exécuter cette commande immédiatement. Pensez-vous qu'il existe un moyen de rendre cela possible ? Actuellement, pour réveiller mon PC, je dois me connecter, puis aller dans ma commande et ensuite choisir le bouton dans la boîte pop-up, mais s'il y avait une API ou un raccourci pour exécuter la commande en un seul clic, ce serait utile. Quoi qu'il en soit, je vous remercie beaucoup pour cela. C'est très impressionnant 🙂 .

    • PiCaptain sur octobre 23, 2021 à 1:41 pm

      Merci pour la suggestion de fonctionnalité, je l'ai ajoutée. Nous prévoyons de faire une application de réveil sur lan un jour, cela pourrait être un peu plus pratique.

  4. Hager sur mars 31, 2022 à 12:26 pm

    Bonjour,
    Comment puis-je, par exemple, obtenir des informations telles que (Voulez-vous continuer ? [Y/n]) sur le script avec "Y" ?

    Vielen Dank !

    • Hanno sur avril 20, 2022 à 7:30 am

      Hallo Herr Hager,

      C'est une très bonne question ! Einige Kommandozeilen Programme wie zum etwa apt-get haben eine bereits integrierte -assumez-oui Option, qui vous permet d'utiliser un mode non interactif. Cette option est souvent utilisée dans les scripts qui ne nécessitent pas d'ajustements manuels. Il existe une alternative à l'Unix classique.ouiProgramme avec lequel vous pouvez obtenir votre propre résultat. Par exemple, avec :
      yes | sudo apt upgrade
      En fonction de l'utilisation que vous souhaitez en faire, l'une de ces deux possibilités doit être considérée comme une bonne solution. Alors, n'hésitez pas à nous contacter !

  5. Jaka sur mars 30, 2023 à 7:32 am

    Bonjour, pouvez-vous utiliser le terminal RPi à partir de picockpit ?

    • raspi berry sur avril 19, 2023 à 7:48 pm

      pas encore, prévu pour une prochaine version. (à partir du 19.4.2023)

  6. DGDodo sur avril 25, 2023 à 10:09 pm

    Toutes les icônes du site web mentionné ne sont pas disponibles / fonctionnelles.
    Comment utiliser des icônes plus récentes que la version 4.9.95, par exemple 'mdi-lamps-outline' ?

    • PiCaptain sur mai 10, 2023 à 12:33 pm

      nous sommes en train de mettre à jour le code de l'interface utilisateur. Je vais faire part de votre commentaire à notre développeur, qui pourra peut-être se pencher sur la question avant la prochaine mise à jour, afin d'adapter les icônes à la version la plus récente.

    • PiCaptain sur mai 19, 2023 à 11:54 am

      Bonjour, nous avons mis à jour le frontend, ce qui signifie que vous pouvez maintenant utiliser toutes les icônes jusqu'à la dernière version de Material Design Icons. Nous mettrons également à jour la version de la police à l'avenir.

  7. [...] CLIQUEZ ICI : Apprenez comment vous pouvez configurer vos propres commandes dans PiControl. [...]

  8. Expanding PiCockpit to 64 Bit Pi OS sur août 28, 2023 à 9:32 am

    [...] Les outils d'administration qui vous aident à contrôler votre Pi fonctionnent tous. Cela inclut les applications GPIO, PiControl, PiDoctor, et PiStats. Peut-être configurer votre nouvelle installation 64 Bit avec un moyen facile de basculer votre serveur SSH ? Ou démarrer et arrêter le media center que vous avez mis en place ? Envoyer un message WoL ? Vous pouvez trouver une bonne introduction aux possibilités offertes par notre logiciel ici. [...]

  9. chris l sur septembre 4, 2023 à 11:11 am

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

    La commande ci-dessus fonctionne parfaitement avec SSH mais PiControl a un problème et le signale :
    (100) E : L'option de ligne de commande 'n' [de -ne] n'est pas comprise en combinaison avec les autres options.

    Je pense que j'ai échappé mon JSON correctement car la commande affichée dans PiControl est la même que celle que j'ai échappée et dont j'ai séparé les espaces en chaînes distinctes.

    JSON :
    {
    "nom" : "Commandes de mise à jour CISO",
    "icône" : "mdi-update",
    "poignée" : "CISO",
    "description" : "CISO installe toutes les mises à jour",
    "commandes" : {
    "ciso-updates" : {
    "nom" : "Mises à jour CISO",
    "icon" : "mdi-server-minus",
    "description" : "Met à jour la liste de tous les paquets dans le référentiel et met à niveau tous les paquets installés",
    "confirmer" : vrai,
    "user" : "root",
    "commande" : [
    [
    "apt-get",
    "mise à jour"
    ],
    [
    "apt-get",
    "upgrade",
    "-y"
    ],
    [
    "apt-get",
    "-just-print",
    "upgrade",
    "2>&1",
    “|”,
    "perl",
    "-ne",
    "'si",
    “(/Inst\\s([\\w,\\-,\\d,\\.,~,:,\\+]+)\\s\\[([\\w,\\-,\\d,\\.,~,:,\\+]+)\\]\\s\\(([\\w,\\-,\\d,\\.,~,:,\\+]+)\\)?”,
    "/i)",
    "{print}",
    "\"PACKAGE :",
    “$1”,
    "INSTALLED :",
    “$2”,
    "DISPONIBLE :",
    "$3\n\n"}""
    ]
    ]
    }
    }
    }

  10. Bruchpilot sur octobre 8, 2023 à 12:28 pm

    Bonjour,
    j'ai essayé les premières étapes avec picockpit. mais il n'y a pas d'application pour l'utilisation de Fernsteuerung. z.B. chromium-browser, dillo, geany
    Les applications sont directement transférées sur l'écran du terminal.

    "geany" : {
    "nom" : "EditorG",
    "icon" : "mdi-application-edit-outline",
    "description" : "Éditeur de texte",
    "confirmer" : vrai,
    "notermination" : true,
    "user" : "root",
    "commande" : ["geany"]
    },

    • Adam sur janvier 25, 2024 à 4:28 pm

      Bonjour, l'erreur suivante doit être corrigée : "-display=:0"

      Le résultat est très satisfaisant :
      {
      "nom" : "Geany Opener",
      "icon" : "mdi-application-edit-outline",
      "handle" : "open-geany",
      "description" : "Lancer Geany",
      "commandes" : {
      "open-geany" : {
      "nom" : "Open Geany",
      "icon" : "mdi-application-edit-outline",
      "description" : "Launches Geany",
      "confirmer" : vrai,
      "utilisateur" : "“,
      "commande" : ["geany", "-display=:0"]
      }
      }
      }

  11. [...] Le Raspberry Pi peut être intégré dans des systèmes de gestion des stocks pour surveiller les niveaux de stock, suivre les actifs et automatiser les processus de réapprovisionnement. Si vous souhaitez trouver des moyens de développer un système de gestion des stocks personnalisé, vous pouvez développer des scripts que vous pouvez ensuite exécuter avec notre application PiControl via PiCockpit. [...]

  12. [...] rend l'écriture de scripts pour votre Raspberry Pi à la fois intuitive et facile à gérer. Avec notre application PiControl, vous pouvez facilement écrire un script et créer un bouton pour l'exécuter depuis n'importe quel [...]

Laissez un commentaire