PiControl

PiControl Titelbild

PiControl ist eine leistungsstarke App, mit der Sie Ihren Raspberry Pi von einem beliebigen Webbrowser aus fernsteuern können.

Diese Seite gibt Ihnen einen Überblick über die PiControl App.

PiControl

Sie werden feststellen, dass standardmäßig drei Befehle enthalten und sofort für Ihren Raspberry Pi verfügbar sind. Mit PiControl können Sie Ihren Raspberry Pi ausschalten, Ihren Raspberry Pi neu starten und den PiCockpit Client aktualisieren.

PiControl anpassen

Was PiControl besonders nützlich macht, ist, dass es auch anpassbar ist.

Sie können Ihre eigenen Befehle einfach und sicher definieren, indem Sie JSON-Dateien auf Ihrem Raspberry Pi bearbeiten.

Die folgenden Anweisungen richten sich also an Benutzer, die keine Erfahrung mit der Befehlszeile haben.

Wenn Sie mit der Kommandozeile umgehen können, ist es vielleicht einfacher und schneller, die Datei zu erstellen und mit Nano oder Vim zu bearbeiten.

Wenn nicht, dann gehen wir hier die Schritte durch.

Zuerst müssen Sie den Dateibrowser im Superuser-Modus öffnen (dieser Schritt schützt Ihre PiCockpit PiControl-Konfigurationsdateien vor jedem Benutzer oder jeder Anwendung, die sie manipulieren möchte).

Klicken Sie auf Raspberry Pi OS Menu, und hier auf den Befehl "Run...":

Es erscheint ein Feld mit der Aufschrift "Geben Sie den Befehl ein, den Sie ausführen möchten:". Geben Sie ein sudo pcmanfm und klicken Sie auf OK.

Es öffnet sich ein neues Fenster, in dem Sie den Inhalt des Verzeichnisses /home/ sehen:

Das Warnsymbol oben links auf dem Bildschirm zeigt an, dass Sie sich im Superuser-Modus befinden. Oben rechts möchten Sie zum folgenden Verzeichnis navigieren:

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

Klicken Sie mit der rechten Maustaste in den leeren Bereich neben den vorhandenen Dateien und wählen Sie "Neue Datei...".

Nennen Sie die neue Datei ssh-server.json:

Nun müssen Sie mit der rechten Maustaste auf die neue Datei klicken, um das Kontextmenü aufzurufen. Wählen Sie "Geany":

Sie können nun die neue Datei sehen, die wir gerade erstellt haben. Im Moment ist sie jedoch noch leer.

Lassen Sie uns zwei neue Befehle erstellen, einen zum Herunterfahren des SSH-Serverdienstes und einen zum Starten desselben. Geben Sie das Folgende in das Textfeld in Geany ein:

{
  "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"]
    }
  }
}

An diesem Punkt sollten wir die Datei speichern. Sie können dies über das Dateimenü von Geany tun, indem Sie z.B. Speichern wählen oder Strg + S drücken:

Zu diesem Zeitpunkt sind unsere neuen Befehle noch nicht in der Weboberfläche erschienen.

Dazu müssen Sie den PiCockpit Client neu starten.

Klicken Sie erneut auf den Befehl "Ausführen..." im Menü des Raspberry Pi OS und geben Sie sudo service picockpit-client restart in das Fenster ein, bevor Sie auf OK klicken:

Werfen Sie nun einen Blick auf Ihre PiControl-Weboberfläche:

Wenn Sie alles richtig eingegeben haben, werden die neuen SSH-Server-Befehle angezeigt. I

Wenn Sie einen Fehler in Ihrer JSON-Datei gemacht haben (z. B. wenn Sie eine geschweifte Klammer vergessen haben), ignoriert PiCockpit die "fehlerhafte" Datei einfach.

Sie können nun die Befehle ausprobieren.

Herzlichen Glückwunsch! Sie haben soeben Ihren eigenen Befehlssatz erstellt, den Sie über die Weboberfläche ausführen können.

Bleiben Sie auf der Seite, während Sie Befehle ausführen. Der Status wird gelöscht, wenn Sie weg navigieren. Um festzustellen, ob der SSH-Server läuft, können Sie einen Test mit unserer PiDoctor App erstellen.

PiControl ist ausschließlich für die Ausführung von Fernaktionen auf Ihrem Raspberry Pi gedacht.

Denken Sie daran, den PiCockpit Client neu zu starten, wenn Sie neue Befehle hinzufügen oder Befehle aktualisieren.

Sie können auch Befehle entfernen, die Sie nicht haben wollen. Wenn Sie zum Beispiel die Möglichkeit, Ihren Raspberry Pi aus der Ferne herunterzufahren, entfernen möchten, können Sie die Datei core.json bearbeiten.

PiControls .JSON-Syntax

Die Datei konfiguriert ein neues Modul für PiControl.

Wie bereits erwähnt, hat es eine .JSON-Syntax. Daher müssen Sie darauf achten, dass Sie die geschweiften Klammern korrekt öffnen und beenden, wie im obigen Beispiel dargestellt.

Es gibt einen Kopf, der das Modul selbst konfiguriert, und die Befehle (im Abschnitt "Befehle"). Sie haben einige gemeinsame Einträge:

Name

Die "name"-Einträge sind menschenlesbare Namen, die Ihnen im Web-Interface angezeigt werden

Symbol

Die "Icon"-Einträge sind optional, um Ihre Schaltflächen und Module zu dekorieren. Dies sind Material Design Icon Namen, zum Beispiel "mdi-ssh".

Sie können sich eine vollständige Liste der Material Design Icons hier. Kopieren Sie einfach den Namen des Symbols (einschließlich des mdi- am Anfang).

Beschreibung

Die "description"-Einträge sind optional und ermöglichen es Ihnen, weitere Informationen zu dem Befehl oder Modul hinzuzufügen.

Griff

Der Eintrag "Handle" ist für das Modul explizit und muss unter den Modulen eindeutig sein. Bei den Befehlen ist das Handle implizit. "ssh-stop" und "ssh-start" sind die beiden Handles, die ich für die Befehle in meinem Beispiel verwendet habe.

Sie können alles als Handle wählen, solange es nicht die Zeichen "/", "+", "$", "*" enthält. Ich empfehle, sich an einfache ASCII-Zeichen in Kleinbuchstaben zu halten und das "-" zu verwenden. Das Handle lautet erforderlich.

Ihre Datei kann übrigens einen anderen Dateinamen haben als das Handle - ich empfehle Ihnen, zumindest verwandte Namen für den Dateinamen und das Handle zu verwenden, damit Sie die JSON-Datei des Moduls auf Ihrer Festplatte leicht identifizieren können.

Die Befehle werden in das Verzeichnis "BefehleBlock" und haben zusätzliche Konfigurationsmöglichkeiten:

bestätigen.

Wenn "bestätigen" vorhanden und auf true gesetzt ist, zeigt das PiControl-Webinterface einen Bestätigungsdialog an, bevor der Befehl tatsächlich ausgeführt wird. Dies ist nützlich, um sicherzustellen, dass "gefährliche" Befehle nicht durch ein versehentliches Tippen oder Klicken ausgeführt werden.

Benutzer

Wenn "Benutzer" vorhanden ist, wird der Befehl als dieser bestimmte Benutzer ausgeführt (als Wurzel in unserem Beispiel, um sicherzustellen, dass wir über ausreichende Berechtigungen verfügen).

PiControl führt Befehle als Benutzer "pi" standardmäßig. Sie können ihn auch auf andere Benutzer mit weniger Rechten als "pi“.

Wenn Sie versuchen, GPIO-Befehle auszuführen oder Videos mit dem omxplayer abzuspielen, müssen Sie Ihrem neuen Benutzer möglicherweise zusätzliche Fähigkeiten geben. Der Benutzer pi verfügt standardmäßig über diese erforderlichen Berechtigungen. Normalerweise werden diese Berechtigungen durch Hinzufügen des Benutzers zu einer speziellen Gruppe festgelegt.

Befehl

Dies ist der eigentliche Befehl, den Sie auf Ihrem Raspberry Pi ausführen sollten. Beachten Sie, dass Sie die Leerzeichen im Befehl im Vergleich zu dem, was Sie auf der Kommandozeile ausführen würden, ersetzen müssen. Zum Beispiel,

service ssh start

sollte geschrieben werden als:

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

PiControl unterstützt auch die Verkettung einer Sequenz von Befehlen (z.B. die übliche apt-get update, apt-get upgrade Sequenz). In core.json finden Sie ein Beispiel dafür, wie das gemacht wird.

Schlussfolgerung

Wenn Sie Fragen haben oder auf Probleme stoßen, zögern Sie nicht, uns zu kontaktieren und wir helfen Ihnen, PiControl zum Laufen zu bringen!

22 Kommentare

  1. Veröffentlich von Max am Mai 12, 2021 um 5:30 pm

    Guten Tag!
    Ich möchte das folgende Kommando mit einer picontrol Schaltfläche ausführen: cd /home/pi/Sensoren ; python3 SCRIPT.py
    Ich habe es wie beschrieben gemacht und ich kann die Taste drücken, aber der Befehl wird nicht ausgeführt und der Prozess kann auch nicht gestoppt werden.
    Haben Sie einen Rat?
    Danke

    • Veröffentlich von raspi berry am Juli 1, 2021 um 5:22 pm

      Denken Sie daran, dass picontrol keine Shell ist - alle Befehle werden unabhängig voneinander ausgeführt. Sie müssen absolute Pfade verwenden (cd - change directory - ist im Kontext von picontrol nutzlos).

  2. Veröffentlich von Alex am August 16, 2021 um 6:34 pm

    Das Starten eines Python-Skripts funktioniert gut, Beispiel:
    "Befehl": ["python3", "/home/pi/do_something.pyc"]
    Aber ich habe Probleme, wenn das Skript später eine Anwendung mit einer grafischen Benutzeroberfläche wie Chromium startet oder wenn Chromium direkt gestartet wird:
    "Befehl": ["chromium-browser"] führt zu "Unable to open X display. ".

    Wie starte ich Skripte oder Anwendungen, die eine X-Anzeige erfordern?

    • Veröffentlich von PiCaptain am August 19, 2021 um 5:08 pm

      Ich habe hier ein wenig mehr darüber geschrieben:
      https://pi3g.com/2020/05/19/chromium-exit-code-5/

      Grundsätzlich müssen Sie der Anwendung mitteilen, welche X-Anzeige sie verwenden soll.
      Im Fall von Chromium wird dies mit einem Flag gemacht

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

      Hinweis: -kiosk startet den Browser im Kioskmodus. Ich füge das nur als zusätzliche Information ein.
      Anmerkung II: Dies sind zwei Bindestriche für die Parameter - WordPress ändert sie in einen einzigen langen Bindestrich, glaube ich.

      Bei anderen Anwendungen müssen Sie dies überprüfen. Häufig geschieht dies durch Setzen einer Umgebungsvariablen.
      Möglicherweise müssen Sie für PiCockpit ein Bash-Skript schreiben, das die Variable setzt und dann die Anwendung startet.
      Und führen Sie dann das Bash-Skript aus.

      Wenn Sie damit Erfolg haben, lassen Sie uns bitte daran teilhaben.

      Max

      • Veröffentlich von PiCaptain am August 19, 2021 um 5:09 pm

        Als Bild

    • Veröffentlich von PiCaptain am August 19, 2021 um 5:11 pm

      Siehe auch diese beiden Links für weitere Informationen zu Kommandozeilenoptionen für Chromium:

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

  3. Veröffentlich von Sri am Oktober 13, 2021 um 1:23 pm

    Hallo, ich habe gerade einen Befehl mit Ihrer Software und Infrastruktur eingerichtet und es ist großartig! Vielen Dank für diese einfache und leicht zu bedienende Software. Ich wollte ein wenig Beratung, wenn Sie frei sind. Grundsätzlich habe ich meinen Pi so eingerichtet, dass er meinen PC aus dem Ruhezustand aufweckt, und Ihre Software ermöglicht eine einfache Webschnittstelle, um den PC mit einem etherwake-Befehl aufzuwecken, aber ich hätte gerne eine schnellere Möglichkeit, diesen einen Befehl sofort auszuführen. Glauben Sie, dass es eine Möglichkeit gibt, dies zu ermöglichen? Derzeit muss ich mich anmelden, um meinen PC aufzuwecken, dann zu meinem Befehl gehen und dann die Schaltfläche im Pop-up-Fenster auswählen. Wenn es jedoch eine API oder eine Verknüpfung gäbe, um den Befehl mit einem Klick auszuführen, wäre das hilfreich. Wie auch immer, vielen Dank dafür. Sehr genial 🙂

    • Veröffentlich von PiCaptain am Oktober 23, 2021 um 1:41 pm

      Danke für den Funktionsvorschlag, ich habe ihn aufgenommen. Wir planen, irgendwann eine Weckfunktion für die Lan-App einzurichten, vielleicht ist das dann etwas bequemer.

  4. Veröffentlich von Hager am März 31, 2022 um 12:26 pm

    Hallo,
    wie kann ich zum Beispiel Abfragen wie (Do you want to continue? [Y/n]) über das Script mit "Y" bestätigen?

    Vielen Dank!

    • Veröffentlich von Hanno am April 20, 2022 um 7:30 am

      Hallo Herr Hager,

      das ist eine sehr gute Frage! Einige Kommandozeilen-Programme wie zum Beispiel apt-get haben eine bereits integrierte -Annahme- Ja Option, die es ihnen ermöglicht in einem nicht-interaktivem Modus zu nutzen. Das wird etwa gerne in Skripten ausgenutzt, die ohne Bestätigungen per Hand laufen sollen. Alternativ gibt es das klassische Unix 'ja' Programm mit dem Sie das selbe Ergebnis erzielen können. Beispielsweise mit:
      yes | sudo apt upgrade
      Abhängig von Ihrem konkreten Anwendungsfall sollte eigentlich eine dieser zwei Möglichkeiten eine gute Lösung darstellen. Ansonsten können Sie uns gerne noch einmal schreiben!

  5. Veröffentlich von Jaka am März 30, 2023 um 7:32 am

    Hallo, kann man das RPi-Terminal von picockpit aus benutzen?

    • Veröffentlich von raspi berry am April 19, 2023 um 7:48 pm

      noch nicht, geplant für eine zukünftige Version. (Stand: 19.4.2023)

  6. Veröffentlich von DGDodo am April 25, 2023 um 10:09 pm

    Nicht alle Icons von der genannten Website sind verfügbar/funktionieren.
    Wie kann man neuere Icons als die Version 4.9.95 verwenden, z.B. 'mdi-lamps-outline'?

    • Veröffentlich von PiCaptain am Mai 10, 2023 um 12:33 pm

      wir sind gerade dabei, den Code des Frontends zu aktualisieren. Ich werde Ihren Kommentar an unsere Entwickler weiterleiten. Möglicherweise können sie sich vor dem nächsten Update darum kümmern, um die Icons auf den neuesten Stand zu bringen.

    • Veröffentlich von PiCaptain am Mai 19, 2023 um 11:54 am

      Hallo, wir haben das Frontend aktualisiert, was bedeutet, dass Sie nun alle Icons bis zur neuesten Version von Material Design Icons verwenden können. Wir werden auch die Version der Schriftart in Zukunft auf dem neuesten Stand halten.

  7. [...] KLICKEN SIE HIER: Erfahren Sie, wie Sie Ihre eigenen Befehle in PiControl einrichten können. [...]

  8. Veröffentlich von Expanding PiCockpit to 64 Bit Pi OS am August 28, 2023 um 9:32 am

    [...] Die Verwaltungstools, mit denen Sie Ihren Pi steuern können, funktionieren alle. Dazu gehören die GPIO-, PiControl-, PiDoctor- und PiStats-Anwendungen. Vielleicht möchten Sie Ihre neue 64-Bit-Installation mit einer einfachen Möglichkeit zum Umschalten Ihres SSH-Servers einrichten? Oder das Media Center starten und stoppen, das Sie eingerichtet haben? Eine WoL-Nachricht verschicken? Eine gute Einführung in die Möglichkeiten, die unsere Software bietet, finden Sie hier. [...]

  9. Veröffentlich von chris l am September 4, 2023 um 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 INSTALLED: $2 AVAILABLE: $3\n"}'

    Der obige Befehl funktioniert problemlos mit SSH, aber PiControl hat ein Problem und meldet es:
    (100) E: Die Kommandozeilenoption 'n' [aus -ne] wird in Kombination mit den anderen Optionen nicht verstanden.

    Ich vermute, dass ich mein JSON korrekt escaped habe, da der angezeigte Befehl in PiControl derselbe ist, den ich escaped und Leerzeichen in getrennte Strings aufgeteilt habe.

    JSON:
    {
    "Name": "CISO Update-Befehle",
    "Symbol": "mdi-update",
    "Griff": "CISO",
    "Beschreibung": "CISO installiert alle Updates",
    "Befehle": {
    "ciso-updates": {
    "Name": "CISO Updates",
    "Symbol": "mdi-server-minus",
    "Beschreibung": "Aktualisiert die Liste aller Pakete im Repository und führt ein Upgrade aller installierten Pakete durch",
    "Bestätigen": wahr,
    "Benutzer": "root",
    "Befehl": [
    [
    "apt-get",
    "aktualisieren"
    ],
    [
    "apt-get",
    "Upgrade",
    "-y"
    ],
    [
    "apt-get",
    "-just-print",
    "Upgrade",
    "2>&1",
    “|”,
    "Perl",
    "-ne",
    "wenn",
    “(/Inst\\s([\\w,\\-,\\d,\\.,~,:,\\+]+)\\s\\[([\\w,\\-,\\d,\\.,~,:,\\+]+)\\]\\s\\(([\\w,\\-,\\d,\\.,~,:,\\+]+)\\)?”,
    "/i)",
    "{Druck",
    "\"PACKAGE:",
    “$1”,
    "INSTALLIERT:",
    “$2”,
    "VERFÜGBAR:",
    "$3\\n\"}'"
    ]
    ]
    }
    }
    }

  10. Veröffentlich von Bruchpilot am Oktober 8, 2023 um 12:28 pm

    Hallo,
    ich versuche die Ersten Schritte mit picockpit. leider gelingt es mir keine Anwendung über die Fernsteuerung zu öffnen. z.B. chromium-browser, dillo, geany
    Über die Eingabe im Terminal lassen sich die Anwendungen direkt öffnen

    "geany": {
    "Name": "EditorG",
    "icon": "mdi-application-edit-outline",
    "Beschreibung": "Texteditor",
    "Bestätigen": wahr,
    "notermination": true,
    "Benutzer": "root",
    "Befehl": ["geany"]
    },

    • Veröffentlich von Adam am Januar 25, 2024 um 4:28 pm

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

      Dann sieht es so aus:
      {
      "Name": "Geany Opener",
      "icon": "mdi-application-edit-outline",
      "Griff": "open-geany",
      "Beschreibung": "Launch Geany",
      "Befehle": {
      "open-geany": {
      "Name": "Open Geany",
      "icon": "mdi-application-edit-outline",
      "Beschreibung": "Startet Geany",
      "Bestätigen": wahr,
      "Benutzer": "“,
      "Befehl": ["geany", "-display=:0"]
      }
      }
      }

  11. Veröffentlich von 10 Uses for a Raspberry Pi in Manufacturing | PiCockpit am Januar 24, 2024 um 4:20 pm

    [...] Der Raspberry Pi kann in Lagerverwaltungssysteme integriert werden, um Lagerbestände zu überwachen, Vermögenswerte zu verfolgen und Nachbestellungsprozesse zu automatisieren. Wenn Sie Wege finden wollen, ein individuelles Lagerverwaltungssystem zu entwickeln, können Sie Skripte entwickeln, die Sie dann mit unserer PiControl App über PiCockpit ausführen können. [...]

  12. Veröffentlich von Easily Write a Script on Your Raspberry Pi with PiCockpit | PiCockpit am Januar 25, 2024 um 3:35 pm

    [...] macht das Skripting für Ihren Raspberry Pi sowohl intuitiv als auch einfach zu verwalten. Mit unserer PiControl App können Sie ganz einfach ein Skript schreiben und eine Schaltfläche erstellen, um es von überall auf dem [...]

Hinterlassen Sie einen Kommentar