PiControl

PiControl Titelbild

PiControl är en kraftfull app som gör att du kan fjärrstyra din Raspberry Pi från vilken webbläsare som helst.

På den här sidan får du en översikt över PiControl-appen.

PiControl

Du kommer att märka att tre kommandon ingår som standard och är omedelbart tillgängliga för din Raspberry Pi. Med PiControl kan du nämligen stänga av din Raspberry Pi, starta om din Raspberry Pi och uppgradera PiCockpit-klienten.

Anpassa PiControl

Det som gör PiControl särskilt användbart är att det också går att anpassa.

Du kan enkelt och säkert definiera dina egna kommandon genom att redigera JSON-filer på din Raspberry Pi.

Så här är instruktionerna för användare som inte har erfarenhet av kommandoraden.

Om du vet hur man använder kommandoraden kan det vara enklare och snabbare att bara skapa filen och redigera den med Nano eller Vim.

Om inte, så går vi igenom stegen här.

Först måste du öppna filbläddraren i superanvändarläge (detta steg skyddar dina PiCockpit PiControl-konfigurationsfiler från alla användare eller program som vill manipulera dem).

Klicka på Raspberry Pi OS Menu, och klicka här på kommandot "Run...":

En ruta visas med texten "Ange det kommando du vill utföra:". Skriv in sudo pcmanfm och klicka på OK.

Ett nytt fönster öppnas och visar innehållet i katalogen /home/:

Varningssymbolen längst upp till vänster på skärmen indikerar att du befinner dig i läget Super User. Längst upp till höger vill du navigera till följande katalog:

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

Högerklicka i det tomma området bredvid de befintliga filerna och välj "Ny fil...".

Kalla den nya filen ssh-server.json:

Nu måste du högerklicka på den nya filen för att visa snabbmenyn. Välj "Geany":

Du kan nu se den nya filen som vi just skapade. För tillfället är den dock tom.

Låt oss skapa två nya kommandon, ett för att stänga av SSH-servertjänsten och ett för att starta den. Skriv in följande i textfältet i 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"]
    }
  }
}

Nu bör vi spara filen. Du kan göra detta från Geanys filmeny, till exempel genom att välja Spara eller genom att trycka på Ctrl + S:

Vid denna tidpunkt har våra nya kommandon ännu inte visats i webbgränssnittet.

Du måste starta om PiCockpit Client för detta.

Klicka på kommandot "Kör..." i Raspberry Pi OS-menyn en gång till och skriv sudo service picockpit-client restart i fönstret innan du klickar på OK:

Ta nu en titt på PiControls webbgränssnitt:

Om du har skrivit allt korrekt kommer de nya SSH-serverkommandona att visas. I

Om du har gjort ett misstag i din JSON-fil (till exempel om du har glömt en lockig parentes), kommer PiCockpit helt enkelt att ignorera den "trasiga" filen.

Du kan nu prova kommandona.

Grattis! Du har just skapat din egen uppsättning kommandon som du kan köra från webbgränssnittet.

Stanna kvar på sidan medan du kör kommandon. Statusen kommer att rensas om du navigerar bort. För att avgöra om SSH-servern är igång kan du bygga ett test i vår PiDoctor-app.

PiControl är enbart till för att utföra fjärrstyrda åtgärder på din Raspberry Pi.

Kom ihåg att starta om PiCockpit Client när du lägger till nya kommandon eller uppdaterar kommandon.

Du kan också ta bort kommandon som du inte vill ha. Om du till exempel vill ta bort möjligheten att stänga av din Raspberry Pi på distans kan du redigera filen core.json.

PiControls .JSON-syntax

Filen konfigurerar en ny modul för PiControl.

Som redan nämnts har den en .JSON-syntax. Därför måste du se till att du öppnar och avslutar med curly braces på ett korrekt sätt, som presenteras i exemplet ovan.

Det finns ett huvud, som konfigurerar själva modulen, och kommandon (i avsnittet "kommandon"). De delar några gemensamma poster:

namn

"Name"-posterna är människoläsbara namn som visas för dig i webbgränssnittet.

ikon

Ikonerna är valfria för att dekorera dina knappar och moduler. Det är materialdesign-ikonnamn, till exempel "mdi-ssh".

Du kan kolla in en fullständig lista över Material Design-ikoner här. Kopiera helt enkelt ikonens namn (inklusive mdi- i början).

beskrivning

Posterna "description" är valfria och gör det möjligt att lägga till lite mer information om kommandot eller modulen.

handtag

"Handle"-posten är explicit för modulen och måste vara unik bland modulerna. När det gäller kommandon är handtaget implicit. "ssh-stop" och "ssh-start" är de två handtag som jag har använt för kommandona i mitt exempel.

Du kan välja vad som helst som handtag, så länge det inte innehåller tecknen "/", "+", "$", "*". Jag rekommenderar att du håller dig till enkla ASCII-tecken med gemener och använder "-". Handtaget är krävs.

Din fil kan förresten ha ett annat filnamn än handtaget - jag uppmuntrar dig att använda åtminstone relaterade namn för filnamnet och handtaget, så att du lätt kan identifiera modulens JSON-fil på din hårddisk.

Kommandon går in i "kommandon", och har ytterligare konfigurationsmöjligheter:

bekräfta

Om "bekräfta" finns och är inställd på true, kommer PiControls webbgränssnitt att visa en bekräftelsedialog innan kommandot faktiskt körs. Detta är användbart för att se till att "farliga" kommandon inte utförs genom ett oavsiktligt tryck eller klick.

användare

Om "användare" är närvarande kommer kommandot att köras som just denna användare (som rot i vårt exempel, för att se till att vi har tillräckliga rättigheter).

PiControl kör kommandon som användare "pi" som standard. Du kan också ställa in den på andra användare med mindre rättigheter än "pi“.

Om du försöker köra GPIO-kommandon eller spela upp videor med omxplayer kan du behöva ge din nya användare ytterligare möjligheter. Användaren pi har som standard dessa nödvändiga privilegier. Vanligtvis fastställs dessa privilegier genom att användaren läggs till i en särskild grupp.

Kommando

Detta är det faktiska kommandot som du ska köra på din Raspberry Pi. Observera att du måste ersätta mellanslagen i kommandot med så som du skulle köra det på kommandoraden. Till exempel,

service ssh start

ska skrivas som:

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

PiControl stöder också kedjning av en sekvens av kommandon (t.ex. den vanliga sekvensen apt-get update, apt-get upgrade). Kolla in core.json för ett exempel på hur detta görs.

Slutsats

Om du har några frågor eller stöter på problem, tveka inte att kontakta oss så hjälper vi dig att få igång PiControl!

22 Kommentarer

  1. Max den maj 12, 2021 kl 5:30 e m

    Hej där!
    Jag vill köra följande kommando med en picontrol-knapp: cd /home/pi/Sensoren ; python3 SCRIPT.py
    Jag gjorde som beskrivet och jag kan trycka på knappen, men kommandot utförs inte och processen kan inte heller stoppas.
    Har du några råd?
    Tack

    • raspi berry den juli 1, 2021 kl 5:22 e m

      Kom ihåg att picontrol inte är ett skal - alla kommandon utförs oberoende av varandra. du måste använda absoluta sökvägar (cd - ändra katalog - är värdelöst i picontrols sammanhang).

  2. Alex den augusti 16, 2021 kl 6:34 e m

    Det fungerar bra att starta ett pythonskript, till exempel:
    "kommando": ["python3", "/home/pi/do_something.pyc"]
    Men jag har problem om skriptet senare startar en app med ett grafiskt gränssnitt som Chromium eller om Chromium startas direkt:
    "kommando": ["chromium-browser"] resulterar i "Unable to open X display. ".

    Hur startar jag skript eller appar som kräver en X-skärm?

    • PiCaptain den augusti 19, 2021 kl 5:08 e m

      Jag har skrivit lite mer om detta här:
      https://pi3g.com/2020/05/19/chromium-exit-code-5/

      I princip måste du tala om för programmet vilken X-display som ska användas.
      I fallet Chromium görs det med en flagga

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

      notera att -kiosk startar webbläsaren i kioskläge. Det är bara en extra upplysning.
      not II: det är två streck för parametrarna - WordPress ändrar dem till ett enda långt streck tror jag.

      För andra tillämpningar måste du kontrollera. Ofta görs detta genom att ställa in en miljövariabel.
      För PiCockpit skulle du eventuellt behöva skriva ett bash-skript som ställer in variabeln och sedan startar programmet.
      Kör sedan bash-skriptet.

      Om du har lyckats med detta, dela gärna med dig till oss.

      Max

      • PiCaptain den augusti 19, 2021 kl 5:09 e m

        Som bild

    • PiCaptain den augusti 19, 2021 kl 5:11 e m

      Se även de här två länkarna för mer information om kommandoradsväxlar för Chromium:

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

  3. Sri den oktober 13, 2021 kl 1:23 e m

    Hej, jag har just installerat ett kommando med hjälp av din programvara och infrastruktur och det är fantastiskt! Tack så mycket för denna enkla och lättanvända programvara. Jag ville ha lite råd om du är ledig. I grund och botten har jag min Pi inställd för att väcka min dator från vila, och din programvara som tillåter ett enkelt webbgränssnitt för att väcka datorn med ett etherwake-kommando fungerar, men jag skulle vilja ha ett snabbare sätt att utföra detta enda kommando omedelbart. Tror du att det finns något sätt att göra detta möjligt? För närvarande måste jag för att väcka min dator logga in och sedan gå till mitt kommando och välja knappen i popup-rutan, men om det fanns ett api eller en genväg för att i princip köra kommandot med ett klick skulle det vara till hjälp. Hur som helst, tack så mycket för detta. Väldigt häftigt 🙂 .

    • PiCaptain den oktober 23, 2021 kl 1:41 e m

      Tack för förslaget, jag har lagt till det. Vi planerar att göra en Wake on Ian-app någon gång, kanske det kan bli lite mer bekvämt.

  4. Hager den mars 31, 2022 kl 12:26 e m

    Hej,
    Wie kann ich zum Beispiel Abfragen wie (Vill du fortsätta? [Y/n]) über das Script mit "Y" bekräfta?

    Vielen Dank!

    • Hanno den april 20, 2022 kl 7:30 f m

      Hej Herr Hager,

      das ist eine sehr gute Frage! Vissa kommandotekniska program som exempelvis apt-get har redan integrerats i programmet. -assume-yes Alternativ, som gör det möjligt för dem att använda i ett icke interaktivt läge. Detta kommer ungefär gärna att användas i skripten, som inte har några begränsningar per hand och som ska köras. Alternativt finns det klassiska Unix 'ja' Programm mit Sie das selbe Ergebnis erzielen können. Exempelvis med:
      yes | sudo apt upgrade
      Abhängig av ditt konkreta tillämpningsfall bör egentligen en av dessa två möjligheter utgöra en bra lösning. Ansonsten können Sie uns gerne noch einmal schreiben!

  5. Jaka den mars 30, 2023 kl 7:32 f m

    Hej, kan du använda RPi-terminalen från picockpit?

    • raspi berry den april 19, 2023 kl 7:48 e m

      inte ännu, planeras för en framtida version. (från och med 19.4.2023)

  6. DGDodo den april 25, 2023 kl 10:09 e m

    Alla ikoner från den nämnda webbplatsen är inte tillgängliga/fungerande.
    Hur använder man nyare ikoner än version 4.9.95, till exempel "mdi-lamps-outline"?

    • PiCaptain den maj 10, 2023 kl 12:33 e m

      Vi håller på att uppdatera koden för frontend. Jag ska dela din kommentar med vår utvecklare, så att de kanske kan titta på detta innan nästa uppdatering för att få ikonerna till den senaste versionen.

    • PiCaptain den maj 19, 2023 kl 11:54 f m

      Hej, vi har uppdaterat frontenden, vilket innebär att du nu kan använda alla ikoner upp till den senaste versionen av Material Design Icons. Vi kommer även att hålla versionen av Font uppdaterad framöver.

  7. [...] KLICKA HÄR: Lär dig hur du kan ställa in dina egna kommandon i PiControl. [...]

  8. Expanding PiCockpit to 64 Bit Pi OS den augusti 28, 2023 kl 9:32 f m

    [...] Alla administrativa verktyg som hjälper dig att styra din Pi fungerar. Detta inkluderar apparna GPIO, PiControl, PiDoctor och PiStats. Du kanske vill konfigurera din nya 64-bitarsinstallation med ett enkelt sätt att växla din SSH-server? Eller starta och stoppa det mediacenter du har satt upp? Skicka ett WoL-meddelande? Du hittar en bra introduktion till de möjligheter som vår programvara erbjuder här. [...]

  9. chris l den september 4, 2023 kl 11:11 f m

    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"}'

    Kommandot ovan fungerar bra med SSH men PiControl har ett problem och rapporterar:
    (100) E: Kommandoradsalternativet 'n' [från -ne] förstås inte i kombination med de andra alternativen.

    Jag antar att jag undkom min JSON korrekt eftersom det visade kommandot i PiControl är detsamma som jag undkom och delade mellanslag i separata strängar.

    JSON:
    {
    "Namn": "CISO uppdateringskommandon",
    "ikon": "mdi-uppdatering",
    "handtag": "CISO",
    "Beskrivning": "CISO installerar alla uppdateringar",
    "kommandon": {
    "ciso-uppdateringar": {
    "Namn": "CISO uppdateringar",
    "ikon": "mdi-server-minus",
    "Beskrivning": "Uppdaterar listan över alla paket i arkivet och uppgraderar alla installerade paket",
    "bekräfta": sant,
    "Användare": "root",
    "Kommando": [
    [
    "apt-get",
    "uppdatering"
    ],
    [
    "apt-get",
    "Uppgradering",
    "-y"
    ],
    [
    "apt-get",
    "-just-print",
    "Uppgradering",
    "2>&1",
    “|”,
    "perl",
    "-ne",
    "'om",
    “(/Inst\\s([\\w,\\-,\\d,\\.,~,:,\\+]+)\\s\\[([\\w,\\-,\\d,\\.,~,:,\\+]+)\\]\\s\\(([\\w,\\-,\\d,\\.,~,:,\\+]+)\\)?”,
    "/i)",
    "{utskrift",
    "\"PACKAGE:",
    “$1”,
    "INSTALLERAD:",
    “$2”,
    "TILLGÄNGLIG:",
    "$3\\n\"}'"
    ]
    ]
    }
    }
    }

  10. Bruchpilot den oktober 8, 2023 kl 12:28 e m

    Hej,
    jag försöker de första stegen med picockpit. tyvärr gelingt det mig ingen tillämpning över den fjärrstyrning att öppna. z.B. chromium-browser, dillo, geany
    Över ingången i terminalen kan du direkt öppna applikationerna

    "geany": {
    "Namn": "EditorG",
    "ikon": "mdi-applikation-edit-outline",
    "Beskrivning": "Textredigerare",
    "bekräfta": sant,
    "notermination": sant,
    "Användare": "root",
    "Kommando": ["geany"]
    },

    • Adam den januari 25, 2024 kl 4:28 e m

      Hej, följande Befehl måste läggas till: "-display=:0"

      Dann sieht es so aus:
      {
      "Namn": "Geany Opener",
      "ikon": "mdi-applikation-edit-outline",
      "Handtag": "open-geany",
      "Beskrivning": "Lansera Geany",
      "kommandon": {
      "öppen-geany": {
      "Namn": "Öppna Geany",
      "ikon": "mdi-applikation-edit-outline",
      "Beskrivning": "Lanserar Geany",
      "bekräfta": sant,
      "Användare": "“,
      "Kommando": ["geany", "-display=:0"]
      }
      }
      }

  11. [...] Raspberry Pi kan integreras i lagerhanteringssystem för att övervaka lagernivåer, spåra tillgångar och automatisera återbeställningsprocesser. Om du vill hitta sätt att utveckla ett anpassat lagerhanteringssystem kan du utveckla skript som du sedan kan köra med vår PiControl-app via PiCockpit. [...]

  12. [...] gör scripting för din Raspberry Pi både intuitivt och lätthanterligt. Med vår PiControl-app kan du enkelt skriva ett skript och skapa en knapp för att köra det från var som helst i [...]

Lämna en kommentar