PiControl

PiControl titelafbeelding

PiControl is een krachtige app waarmee je je Raspberry Pi op afstand kunt bedienen vanaf elke webbrowser.

Deze pagina geeft je een overzicht van de PiControl App.

PiControl

Je zult zien dat er standaard drie commando's zijn opgenomen en direct beschikbaar zijn voor je Raspberry Pi. Met PiControl kun je namelijk je Raspberry Pi uitschakelen, je Raspberry Pi herstarten en de PiCockpit Client upgraden.

PiControl aanpassen

Wat PiControl bijzonder handig maakt, is dat het ook aanpasbaar is.

Je kunt eenvoudig en veilig je eigen commando's definiëren door JSON-bestanden op je Raspberry Pi te bewerken.

Dus hier zijn instructies voor gebruikers die geen ervaring hebben met de opdrachtregel.

Als je weet hoe je de opdrachtregel moet gebruiken, vind je het misschien makkelijker en sneller om gewoon het bestand te maken en het te bewerken met Nano of Vim.

Zo niet, dan doorlopen we hier de stappen.

Eerst moet je de bestandsbrowser openen in supergebruikersmodus (deze stap zorgt ervoor dat je PiCockpit PiControl configuratiebestanden veilig zijn voor gebruikers of toepassingen die ermee willen knoeien).

Klik op Raspberry Pi OS Menu en klik hier op de opdracht "Uitvoeren...":

Er verschijnt een venster met de tekst "Voer het commando in dat je wilt uitvoeren:". Typ in sudo pcmanfm en klik op OK.

Er wordt een nieuw venster geopend met de inhoud van de map /home/:

Het waarschuwingssymbool linksboven in het scherm geeft aan dat je in Super User modus bent. Rechtsboven wilt u naar de volgende map navigeren:

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

Klik met de rechtermuisknop in het lege gebied naast de bestaande bestanden en selecteer "Nieuw bestand...".

Noem het nieuwe bestand ssh-server.json:

Klik nu met de rechtermuisknop op het nieuwe bestand om het contextmenu te openen. Kies "Geany":

Je kunt nu het nieuwe bestand zien dat we zojuist hebben gemaakt. Op dit moment is het echter leeg.

Laten we twee nieuwe commando's maken, één om de SSH-server af te sluiten en één om hem te starten. Voer het volgende in het tekstveld in Geany in:

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

Op dit punt moeten we het bestand opslaan. Je kunt dit doen via het bestandsmenu van Geany, bijvoorbeeld door Opslaan te selecteren of door op Ctrl + S te drukken:

Op dit moment zijn onze nieuwe commando's nog niet verschenen in de webinterface.

Hiervoor moet je de PiCockpit Client opnieuw opstarten.

Klik nogmaals op de opdracht "Uitvoeren..." in het menu van het Raspberry Pi OS en typ sudo service picockpit-client restart in het venster voordat je op OK klikt:

Kijk nu naar je PiControl webinterface:

Als je alles goed hebt getypt, verschijnen de nieuwe SSH-serveropdrachten. I

Als u een fout hebt gemaakt in uw JSON-bestand (bijvoorbeeld als u een accolade bent vergeten), zal PiCockpit het "kapotte" bestand gewoon negeren.

Je kunt nu de commando's proberen.

Gefeliciteerd! U hebt zojuist uw eigen set commando's gemaakt die u kunt uitvoeren vanuit de webinterface.

Blijf op de pagina terwijl je commando's uitvoert. De status wordt gewist als je wegnavigeert. Om te bepalen of de SSH-server draait, kun je een test bouwen op onze PiDoctor App.

PiControl is uitsluitend voor het uitvoeren van acties op afstand op je Raspberry Pi.

Vergeet niet om de PiCockpit Client opnieuw te starten als je nieuwe commando's toevoegt of commando's bijwerkt.

Je kunt ook commando's verwijderen die je niet wilt hebben. Als je bijvoorbeeld de mogelijkheid wilt verwijderen om je Raspberry Pi op afstand uit te schakelen, kun je het bestand core.json bewerken.

PiControl's .JSON syntaxis

Het bestand configureert een nieuwe module voor PiControl.

Zoals eerder gezegd, heeft het een .JSON syntaxis. Daarom moet je ervoor zorgen dat je op de juiste manier opent en eindigt met accolades, zoals in het bovenstaande voorbeeld.

Er is een hoofd, dat de module zelf configureert, en de commando's (in de sectie "commando's"). Ze hebben een aantal gemeenschappelijke regels:

naam

De "name" entries zijn menselijk leesbare namen die aan u getoond worden in de web-interface

pictogram

De "icon" entries zijn optioneel om je knoppen en module te versieren. Dit zijn Material Design Icon namen, bijvoorbeeld "mdi-ssh".

U kunt een volledige lijst van Material Design-pictogrammen hier. Kopieer gewoon de naam van het icoon (inclusief de mdi- aan het begin).

beschrijving

De "beschrijving" is optioneel en geeft u de mogelijkheid om wat meer informatie over het commando of de module toe te voegen.

handvat

Het "handle" gegeven is expliciet voor de module, en moet uniek zijn onder de modules. In het geval van de commando's is het handvat impliciet. "ssh-stop" en "ssh-start"zijn de twee handvatten die ik heb gebruikt voor de commando's in mijn voorbeeld.

U kunt om het even wat als handvat kiezen, zolang het maar niet de tekens "/", "+", "$", "*" bevat. Ik raad aan om het bij gewone ASCII karakters te houden, en de "-" te gebruiken. Het handvat is vereist.

Uw bestand kan, tussen haakjes, een andere bestandsnaam hebben dan het handvat - ik moedig u aan om tenminste verwante namen te gebruiken voor de bestandsnaam en het handvat, zodat u het module .JSON bestand gemakkelijk kunt identificeren op uw harde schijf.

De commando's gaan in de "commando's" blok, en hebben extra configuratiemogelijkheden:

bevestigen

Als "bevestigen" aanwezig is en ingesteld is op waar, zal de PiControl webinterface een bevestigingsvenster tonen voordat het commando daadwerkelijk wordt uitgevoerd. Dit is handig om ervoor te zorgen dat "gevaarlijke" commando's niet per ongeluk worden uitgevoerd door een tik of klik.

gebruiker

Als "gebruiker" aanwezig is, wordt de opdracht uitgevoerd als deze specifieke gebruiker (als root in ons voorbeeld, om er zeker van te zijn dat we voldoende privileges hebben).

PiControl zal commando's uitvoeren als gebruiker "pi" standaard. U kunt het ook instellen op andere gebruikers met minder rechten dan "pi“.

Als je probeert GPIO commando's uit te voeren, of video's af te spelen met omxplayer, moet je misschien je nieuwe gebruiker extra mogelijkheden geven. De gebruiker pi heeft standaard deze vereiste rechten. Gewoonlijk worden deze rechten ingesteld door de gebruiker toe te voegen aan een speciale groep.

commando

Dit is het eigenlijke commando dat je op je Raspberry Pi moet uitvoeren. Merk op dat je de spaties in het commando moet vervangen door zoals je het op de commandoregel zou uitvoeren. Bijvoorbeeld,

service ssh start

moet worden geschreven als:

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

PiControl ondersteunt ook het chainen van een serie commando's (b.v. de gebruikelijke apt-get update, apt-get upgrade sequentie). Kijk in core.json voor een voorbeeld van hoe dat gedaan wordt.

Conclusie

Als je vragen hebt of tegen problemen aanloopt, aarzel dan niet om contact met ons op te nemen en we helpen je PiControl aan de praat te krijgen!

22 Opmerkingen

  1. Max op mei 12, 2021 op 5:30 pm

    hallo daar!
    Ik wil de volgende comand uitvoeren met een picontrol knop: cd /home/pi/Sensoren ; python3 SCRIPT.py
    Ik heb het gedaan zoals beschreven en ik kan op de knop drukken maar de opdracht wordt niet uitgevoerd en ook het proces kan niet worden gestopt.
    Enig advies?
    Bedankt

    • raspi berry op juli 1, 2021 op 5:22 pm

      Onthoud dat picontrol geen shell is - alle commando's worden onafhankelijk uitgevoerd. Je moet absolute paden gebruiken (cd - change directory - is nutteloos in de context van picontrol).

  2. Alex op augustus 16, 2021 op 6:34 pm

    Een python script starten werkt prima, voorbeeld:
    "commando": ["python3", "/home/pi/do_something.pyc"]
    Maar ik heb problemen als het script later een app start met een GUI zoals Chromium of als Chromium direct wordt gestart:
    "commando": ["chromium-browser"] resulteert in "Unable to open X display. ".

    Hoe start ik scripts of apps die een X-scherm vereisen?

    • PiCaptain op augustus 19, 2021 op 5:08 pm

      Ik heb er hier wat meer over geschreven:
      https://pi3g.com/2020/05/19/chromium-exit-code-5/

      In principe moet je de applicatie vertellen welk X scherm gebruikt moet worden.
      In het geval van Chromium wordt dit gedaan met een vlag

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

      Let op, -kiosk start de browser in kiosk modus. Dat is gewoon wat extra informatie.
      noot II: dit zijn twee streepjes voor de parameters - WordPress verandert ze in een enkel lang streepje geloof ik.

      Voor andere toepassingen moet u dat controleren. Vaak wordt dit gedaan door een omgevingsvariabele in te stellen.
      Mogelijk zou u voor PiCockpit een bash-script moeten schrijven dat de variabele instelt en dan de toepassing start.
      En voer dan het bash script uit.

      Als je hier succes mee hebt, deel het dan met ons.

      Max

      • PiCaptain op augustus 19, 2021 op 5:09 pm

        Als afbeelding

    • PiCaptain op augustus 19, 2021 op 5:11 pm

      Zie ook deze twee links voor meer informatie over opdrachtregel-switches voor Chromium:

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

  3. Sri op oktober 13, 2021 op 1:23 pm

    Hallo, ik heb net een commando opgezet met jullie software en infrastructuur en het is geweldig! Heel erg bedankt voor deze eenvoudige en makkelijk te gebruiken software. Ik wilde een beetje advies als je vrij bent. In principe, heb ik mijn Pi ingesteld om mijn pc uit de slaap te wekken, en uw software die een eenvoudige webinterface toestaat om de pc met een etherwake commando te wekken werkt, maar ik zou een snellere manier willen om dit ene commando onmiddellijk uit te voeren. Denk je dat er een manier is om dit mogelijk te maken? Op dit moment moet ik, om mijn pc wakker te maken, inloggen en dan naar mijn commando gaan en dan de knop in het pop-upvenster kiezen, maar als er een api of een snelkoppeling was om in principe het commando met één klik uit te voeren, zou dat nuttig zijn. Hoe dan ook, heel erg bedankt voor dit. Zeer geweldig 🙂 🙂 🙂 ♥

    • PiCaptain op oktober 23, 2021 op 1:41 pm

      Bedankt voor de suggestie, ik heb het toegevoegd. We zijn van plan om een keer een wake on lan app te doen, misschien is het dan wat handiger.

  4. Hager op maart 31, 2022 op 12:26 pm

    Hallo,
    Wie kan ik zum Beispiel Abfragen wie (Wilt u doorgaan? [Y/n]) über das Script mit "Y" bestätigen?

    Vielen Dank!

    • Hanno op april 20, 2022 op 7:30 am

      Hallo, meneer Hager,

      das ist eine sehr gute Frage! Sommige Kommandozeilen programma's, zoals bijvoorbeeld apt-get, hebben al een geïntegreerde -aanvaarden-ja Optie, die es ermöglicht sie in einem nicht-interaktivem Modus zu nutzen. Dit wordt vaak gebruikt in scripts, die zonder Bestätigungen per hand kunnen worden uitgevoerd. Als alternatief is er de klassieke Unix 'ja' Programm mit Sie das selbe Ergebnis erzielen können. Beispielsweise mit:
      yes | sudo apt upgrade
      Afhankelijk van uw moeilijke gebruiksomstandigheden, moet elk van deze twee mogelijkheden een goede oplossing bieden. In het beste geval kunt u ons alstublieft nog een keer schrijven!

  5. Jaka op maart 30, 2023 op 7:32 am

    Hallo, kun je RPi terminal van picockpit gebruiken?

    • raspi berry op april 19, 2023 op 7:48 pm

      nog niet, gepland voor een toekomstige versie. (vanaf 19.4.2023)

  6. DGDodo op april 25, 2023 op 10:09 pm

    Niet alle pictogrammen van de genoemde website zijn beschikbaar / werken.
    Hoe gebruik je nieuwere iconen dan versie 4.9.95, bijvoorbeeld 'mdi-lamps-outline' ?

    • PiCaptain op mei 10, 2023 op 12:33 pm

      we zijn bezig met het updaten van de frontend code. Ik zal uw opmerking delen met onze ontwikkelaar, mogelijk kunnen zij hiernaar kijken voor de volgende update om de pictogrammen naar de meest recente versie te brengen.

    • PiCaptain op mei 19, 2023 op 11:54 am

      Hallo, we hebben de voorkant bijgewerkt, wat betekent dat je nu alle pictogrammen tot en met de nieuwste versie van Material Design Icons kunt gebruiken. We zullen in de toekomst ook de versie van het lettertype up-to-date houden.

  7. [...] KLIK HIER: Leer hoe je je eigen commando's kunt instellen in PiControl. [...]

  8. Expanding PiCockpit to 64 Bit Pi OS op augustus 28, 2023 op 9:32 am

    [...] De beheertools waarmee je je Pi kunt besturen werken allemaal. Hieronder vallen de GPIO, PiControl, PiDoctor en PiStats apps. Misschien je nieuwe 64 Bit-installatie instellen met een gemakkelijke manier om je SSH-server aan te zetten? Of dat mediacenter dat je hebt opgezet starten en stoppen? Een WoL-bericht versturen? Je kunt hier een goede introductie vinden in de mogelijkheden die onze software biedt. [...]

  9. chris l op september 4, 2023 op 11:11 am

    apt-get -just-print upgrade 2>&1 | perl -ne 'als (/Inst.([\w,\d,\d.,~,:,\+]+)\[([\w,\d,\d.,~,:,\+]+)\? /i) {print "PACKAGE: $1 GEÏNstalleerd: $2 BESCHIKBAAR: $3"}".

    Het bovenstaande commando werkt prima met SSH, maar PiControl heeft een probleem en rapporteert:
    (100) E: Commandoregeloptie 'n' [van -ne] wordt niet begrepen in combinatie met de andere opties.

    Ik denk dat ik mijn JSON correct heb geëscaped, aangezien het weergegeven commando in PiControl hetzelfde is dat ik heb geëscaped en spaties heb opgesplitst in afzonderlijke strings.

    JSON:
    {
    "naam": "CISO update commando's",
    "pictogram": "mdi-update",
    "handvat": "CISO",
    "description": "CISO installeer alle updates",
    "commando's": {
    "ciso-updates": {
    "naam": "CISO Updates",
    "pictogram": "mdi-server-minus",
    "description": "Updates van de lijst van alle pakketten in het archief en upgrades van alle geïnstalleerde pakketten."
    "bevestigen": waar,
    "gebruiker": "root",
    "commando": [
    [
    "apt-get",
    "update"
    ],
    [
    "apt-get",
    "upgrade",
    "-y"
    ],
    [
    "apt-get",
    "-just-print",
    "upgrade",
    "2>&1",
    “|”,
    "perl",
    "-ne",
    "'als',
    “(/Inst\\s([\\w,\\-,\\d,\\.,~,:,\\+]+)\\s\\[([\\w,\\-,\\d,\\.,~,:,\\+]+)\\]\\s\\(([\\w,\\-,\\d,\\.,~,:,\\+]+)\\)?”,
    "/i)",
    "{afdruk,
    "PAKKET:",
    “$1”,
    "INSTALLED:",
    “$2”,
    "BESCHIKBAAR:",
    "$3\n"}".
    ]
    ]
    }
    }
    }

  10. Bruchpilot op oktober 8, 2023 op 12:28 pm

    Hallo,
    Ik heb de eerste stappen geprobeerd met picockpit. Ik heb echter geen gebruik gemaakt van die Fernsteuerung zu öffnen. z.B. chromium-browser, dillo, geany
    Over die Eingabe im terminal lassen sich die Anwendungen direktöffnen

    "geany": {
    "naam": "EditorG",
    "pictogram": "mdi-toepassing-edit-outline",
    "beschrijving": "Teksteditor",
    "bevestigen": waar,
    "notermination": waar,
    "gebruiker": "root",
    "commando": ["geany"].
    },

    • Adam op januari 25, 2024 op 4:28 pm

      Hallo, het volgende antwoord moet worden ingezugefügt: "-display=:0"

      Dann sieht es so aus:
      {
      "naam": "Geany Opener",
      "pictogram": "mdi-toepassing-edit-outline",
      "handvat": "open-geany",
      "beschrijving": "Launch Geany",
      "commando's": {
      "open-geany": {
      "naam": "Open Geany",
      "pictogram": "mdi-toepassing-edit-outline",
      "beschrijving": "Launches Geany",
      "bevestigen": waar,
      "gebruiker": "“,
      "commando": ["geany", "-display=:0"]
      }
      }
      }

  11. [Raspberry Pi kan worden geïntegreerd in voorraadbeheersystemen om voorraadniveaus te controleren, activa te volgen en herbestellingsprocessen te automatiseren. Als je manieren wilt vinden om een aangepast voorraadbeheersysteem te ontwikkelen, kun je scripts ontwikkelen die je vervolgens kunt uitvoeren met onze PiControl App via PiCockpit. [...]

  12. [...] maakt het maken van scripts voor je Raspberry Pi zowel intuïtief als eenvoudig te beheren. Met onze PiControl App kun je eenvoudig een script schrijven en een knop maken om het uit te voeren vanaf elke [...]

Laat een reactie achter