Steuern Sie Ihren Raspberry Pi aus der Ferne mit PiControl

PiControl von PiCockpit ist eine leistungsstarke Funktion, mit der Sie Ihren Raspberry Pi von einem beliebigen Webbrowser aus fernsteuern können, indem Sie einfach auf Schaltflächen klicken. Sie werden den Status und die Ausgabe des Befehls sehen. Neue Befehle können durch einfaches Bearbeiten einer JSON-Datei auf Ihrem Raspberry Pi hinzugefügt werden - wir zeigen Ihnen, wie das geht, und geben Ihnen einige Ideen, was Sie mit PiControl bauen können!

Wie sieht das aus?

Standardmäßig sind drei Befehle enthalten und sofort für Ihren Raspi verfügbar: (Ausschalten, Neustart, Client aktualisieren)

Grundlegende Befehle zur Fernsteuerung Ihres Pi über eine Webschnittstelle - von einem beliebigen Browser aus
Dieser Screenshot von PiCockpit PiControl zeigt, wie die Befehle aussehen

Was kann ich mit einem Raspberry Pi und PiControl machen?

Hier sind einige Dinge, die Sie damit bauen können. Diese Ideen erfordern einige Recherchen und möglicherweise Programmier- und/oder Hardware-Kenntnisse Ihrerseits. In jedem Fall wird PiCockpit's PiControl Ihnen mit dem einfach zu bedienenden Web-Interface-Teil Ihres Projekts helfen und Ihnen viel Zeit ersparen, damit dies über das Internet funktioniert 🙂 .

  • mit dem Raspberry Pi-Kameramodul einen Schnappschuss machen und sich diesen zuschicken lassen
  • Starten Sie Ihren Raspberry Pi Minecraft Server, und beenden Sie ihn auch wieder
  • Spielen Sie ein Video mit dem Omxplayer ab (Sie können auch eine Endlosschleife für das Video einrichten und die Schleife anhalten, wenn Sie zu einem anderen Video wechseln möchten)
  • eine einfache Steuerung für eine Stop-Motion-Animationskamera mit dem Raspberry Pi-Kameramodul erstellen
  • einen lokalen Computer im gleichen Netzwerk wie Ihr Raspberry Pi mit der Wake on LAN-Funktionalität aufwecken
  • einen Ton abspielen (z. B. als Streich zu Halloween)
  • ein Tor zu öffnen - zum Beispiel ein Garagentor, indem Sie entsprechende Steuerbefehle über Z-Wave usw. erteilen.
  • Starten Sie den SSH-Dienst auf Ihrem Raspberry Pi und beenden Sie ihn - ein "Klopf-zum-Öffnen"-Ansatz für mehr Sicherheit
  • Steuerung von Modelleisenbahnen
  • ein Relais ein- und ausschalten (dazu sind zwei Tasten erforderlich, oder es kann eine "Umschalttaste" verwendet werden)
  • das Fernsehgerät über eine IR-LED zu steuern (Kanäle umschalten, Lautstärke ändern, ...), z. B. um Aktivität zu simulieren, während Sie unterwegs sind
  • Starten Sie eine Rakete über das Webinterface

Wir werden Schritt-für-Schritt-Anleitungen für einige dieser Projektideen veröffentlichen, damit Sie eine einfache Anleitung für den Einstieg in PiControl und die Fernsteuerung Ihres Raspberry Pi haben.

Wie kann ich mit PiControl zusätzliche Fernbedienungsknöpfe für den Raspberry Pi hinzufügen?

Sie können Ihre eigenen Befehle einfach und sicher definieren, indem Sie JSON-Dateien auf Ihrem Raspberry Pi bearbeiten. Dies geschieht aus Sicherheitsgründen - ich hätte PiCockpit so schreiben können, dass Sie Befehle über das Webinterface hinzufügen können, aber wenn jemand Ihr PiCockpit-Passwort kennen würde, könnte er jeden beliebigen Befehl erstellen, den er möchte. Bitte folgen Sie daher dieser einfachen Anleitung, um eine neue JSON-Datei auf Ihrem Pi zu erstellen.

Hinweis: Diese Anweisungen sind absichtlich so gehalten, dass auch Benutzer, die keine Erfahrung mit der Kommandozeile haben, ihnen folgen können. Wenn Sie wissen, wie man die Kommandozeile benutzt, ist es vielleicht einfacher/schneller, die Datei zu erstellen und mit nano zu bearbeiten.

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 ...":

Raspberry Pi OS Menü, das den Befehl run anzeigt.
Das Raspberry Pi OS Menü. Der Befehl Ausführen befindet sich am unteren Rand

Führen Sie pcmanfm als root (sudo pcmanfm) aus, indem Sie "sudo pcmanfm" (ohne Anführungszeichen) in das sich öffnende Dialogfeld ein und klicken Sie auf OK:

Befehlsdialog auf dem Raspberry Pi OS ausführen
Der Befehl run, der die Ausführung von pcmanfm als root vorbereitet

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

pcmanfm-Screenshot mit Superuser-Rechten
pcmanfm, der Dateimanager, der als Superuser läuft

Hinweis: Sie sollten dieses Symbol sehen, direkt unter dem Menü "Datei". Es zeigt an, dass Sie pcmanfm als Benutzer root verwenden und daher besonders vorsichtig sein sollten (da root jede Datei bearbeiten / löschen / verschieben kann! sogar Dateien, die für den normalen Systembetrieb wichtig sind).

Root-Modus-Anzeige

Keine Sorge, wir fassen nur die Dateien an, die Sie hier brauchen 🙂

Öffnen Sie das folgende Verzeichnis auf Ihrem Raspberry Pi:

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

Zeigt das Konfigurationsverzeichnis für PiCockpit's PiControl. Beachten Sie, dass Sie bei einer Neuinstallation von PiCockpit nur die core.json sehen werden. Die anderen Module wurden von mir für Test- und Demonstrationszwecke (Fernsteuerungsexperimente) erstellt.

Tipp: Sie können auch den Pfad, den ich oben angegeben habe, kopieren und einfügen und die Eingabetaste drücken, um zu dem Verzeichnis zu navigieren.

Raspi Berrys hilfreiche Raspberry Pi Tipps

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

Erstellen einer neuen Datei mit Raspbian OS
Raspberry Pi OS Menü für einen Rechtsklick zum Erstellen einer neuen Datei

Nennen Sie die neue Datei ssh-server.json:

Ein Dialogfeld fragt nach dem Namen für die neue Datei.
Erstellen einer neuen Datei als root-Benutzer mit pcmanfm
ssh-server.json wird nun in diesem Ordner erstellt.

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

Kontextmenü, das Geany, den Editor für Programmierer, auf Raspberry Pi OS zeigt
Geany ist ein Editor, mit dem Sie die Datei bearbeiten können
Screenshot des Geany Programmiereditors
Geany zeigt die Datei ssh-server.json an - noch nichts drin

Jetzt können Sie die neue Datei sehen, die wir gerade erstellt haben. Sie ist bisher noch leer.

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

{
  "Name": "SSH-Befehle",
  "icon": "mdi-ssh",
  "handle": "ssh",
  "description": "Steuerung des SSH-Servers",
  "Befehle": {
    "ssh-stop": {
      "name": "SSH-Server aus",
      "icon": "mdi-server-minus",
      "description": "Schaltet den SSH-Dienst aus",
      "bestätigen": true,
      "Benutzer": "root",
      "command": ["service", "ssh", "stop"]
    },
    "ssh-start": {
      "name": "SSH-Server ein",
      "icon": "mdi-server-plus",
      "description": "Startet den SSH-Dienst",
      "Benutzer": "root",
      "command": ["service", "ssh", "start"]
    }
  }
}
Hinzufügen des Textes in Geany. Achten Sie auf die Klammern, die Dokumentstruktur und die korrekte Schreibweise der Wörter, damit es funktioniert.

An dieser Stelle sollten wir die Datei speichern. Dies können Sie z.B. über das Dateimenü von Geany tun, indem Sie Speichern wählen. (Oder verwenden Sie Strg + S):

Geanys Dateimenü

Zu diesem Zeitpunkt sind unsere neuen Befehle noch nicht im Webinterface erschienen. Hierfür müssen wir den picockpit-client neu starten. Klicken Sie im Menü des Raspberry Pi OS auf den Befehl "Ausführen ..." und geben Sie "sudo service picockpit-client neu starten" in das Fenster ein, bevor Sie auf OK klicken:

Neustart des picockpit-client Dienstes über den Ausführen-Dialog
Neustart eines Dienstes über das Dialogfeld Ausführen

Werfen Sie nun einen Blick auf Ihr PiControl Webinterface:

PiControl Webinterface zur Fernsteuerung Screenshot
Eine neue Schaltfläche zum schnellen Aufrufen der neuen SSH-Befehle wurde eingeführt
Die neuen Befehle (Buttons), die wir dem Webinterface hinzugefügt haben, um Remote-Befehle auf dem Raspi auszuführen!

Wenn Sie alles richtig getippt haben, erscheinen die neuen Befehle. Wenn Sie einen Fehler in Ihrer JSON-Datei gemacht haben (z. B. eine geschweifte Klammer vergessen haben), ignoriert PiCockpit die "fehlerhafte" Datei einfach.

Sie können die Befehle nun ausprobieren. Wenn Sie auf die Schaltfläche SSH SERVER OFF klicken, werden Sie gefragt, ob Sie den Befehl wirklich ausführen wollen. Klicken Sie auch hier auf ssh server off, um den Befehl tatsächlich auszuführen (oder klicken Sie auf Abbrechen, wenn Sie es doch nicht wollen).

Ein Schutz, der Sie davor bewahrt, durch versehentliches Anklicken gefährliche Befehle auszuführen

PiCockpit führt nun das Kommando aus, Sie sehen eine Fortschrittsanzeige - und wenn es fertig ist, sehen Sie die folgende Erfolgsanzeige:

PiControl hat erfolgreich "service ssh stop" auf Ihrem Pi ausgeführt.

Wenn Sie jetzt versuchen, sich mit SSH mit Ihrem Pi zu verbinden, wird die Verbindung abgelehnt:

PuTTYNG zeigt einen schwerwiegenden Fehler an.
Netzwerkfehler: Verbindung verweigert

Starten Sie den SSH-Server wieder, indem Sie auf "SSH SERVER ON" klicken. Nun ist wieder eine Verbindung möglich.

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 derzeit gelöscht, wenn Sie wegnavigieren. Um festzustellen, ob der SSH-Server läuft, könnten Sie einen PiDoctor-Test erstellen - PiControl ist einfach dazu da, Remote-Aktionen auf Ihrem Pi auszuführen.

Raspi Berrys hilfreiche Raspberry Pi (und PiCockpit) Tipps

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 möchten, z. B. wenn Sie die Möglichkeit, Ihren Raspberry Pi aus der Ferne herunterzufahren, entfernen möchten.

Erläuterung der Syntax des Remote-Befehls

Die Datei konfiguriert ein neues Modul für PiControl. Sie hat eine .JSON-Syntax, bitte stellen Sie sicher, dass Sie die Datei korrekt mit geschweiften Klammern öffnen und beenden, wie in meinem Beispiel dargestellt.

Es gibt einen Kopf, der das Modul selbst konfiguriert, und die Befehle (im Teil "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).

Raspi Berrys hilfreiche Raspberry Pi (und PiCockpit) Tipps

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.

Raspi Berrys hilfreiche Raspberry Pi (und PiCockpit) Tipps

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.

Raspi Berrys hilfreiche Raspberry Pi (und PiCockpit) Tipps

Befehl

Dies ist der eigentliche Befehl, der auf Ihrem Raspberry Pi ausgeführt werden sollte. Beachten Sie, dass Sie die Leerzeichen im Befehl im Vergleich zu ersetzen, wie Sie es auf der Kommandozeile ausführen würden. 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.

Raspi Berrys hilfreiche Raspberry Pi (und PiCockpit) Tipps

Schlussfolgerung: PiControl für Ihre Raspberry Pi Fernsteuerungsbedürfnisse

Mit PiCockpit und PiControl ist es sehr einfach, jeden beliebigen Befehl, den Sie auf Ihrem Raspi ausführen möchten, hinzuzufügen und Ihren Pi über ein Webinterface zu steuern. Damit dies funktioniert, benötigt der Raspberry Pi lediglich eine Internetverbindung - Sie müssen sich nicht im selben Netz befinden.

Was würdest du gerne mit PiCockpit und PiControl bauen? Kommentieren Sie unten, und ich werde versuchen, Ihnen bei Ihrem Projekt zu helfen 🙂

PiControl-Screenshot mit Schaltflächen zur Fernsteuerung des Omxplayers und Steuerung des Chrome-Webbrowsers über das Webinterface
Dieser PiControl-Screenshot zeigt ein benutzerdefiniertes Modul, das ich eingerichtet habe: Chrome (Chromium) steuern, Videos in einer Schleife mit omxplayer laufen lassen, YouTube-Videos auf dem Pi anzeigen

Mit großer Macht kommt große Verantwortung - seien Sie vorsichtig, wem Sie Zugang zu Ihrer PiCockpit Oberfläche geben, bewahren Sie Ihr Passwort und Ihre API-Schlüssel sicher auf. Stellen Sie außerdem sicher, dass Sie gefährliche Befehle, wie oben beschrieben, "schützen", damit sie nicht durch versehentliches Anklicken ausgeführt werden können.

Raspi Berrys hilfreiche Raspberry Pi (und PiCockpit) Tipps

10 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:
      ja | 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!

Hinterlassen Sie einen Kommentar