PiControl
PiControl to potężna aplikacja, która umożliwia zdalne sterowanie Raspberry Pi z dowolnej przeglądarki internetowej.
Ta strona zawiera przegląd aplikacji PiControl.
PiControl
Zauważysz, że domyślnie trzy polecenia są dołączone i natychmiast dostępne dla Twojego Raspberry Pi. Mianowicie, za pomocą PiControl można wyłączyć Raspberry Pi, zrestartować Raspberry Pi i zaktualizować klienta PiCockpit.
Dostosowywanie PiControl
To, co sprawia, że PiControl jest szczególnie przydatny, to możliwość dostosowania go do własnych potrzeb.
Możesz łatwo i bezpiecznie definiować własne polecenia, edytując pliki JSON na swoim Raspberry Pi.
Oto instrukcje dla użytkowników, którzy nie mają doświadczenia z wierszem poleceń.
Jeśli wiesz, jak korzystać z wiersza poleceń, łatwiej i szybciej będzie po prostu utworzyć plik i edytować go za pomocą Nano lub Vima.
Jeśli nie, przejdziemy przez kolejne kroki tutaj.
Po pierwsze, musisz otworzyć przeglądarkę plików w trybie superużytkownika (ten krok zabezpiecza pliki konfiguracyjne PiCockpit PiControl przed jakimkolwiek użytkownikiem lub aplikacją, która chciałaby przy nich manipulować).
Kliknij menu Raspberry Pi OS, a następnie kliknij polecenie "Run...":
Pojawi się okno "Wprowadź polecenie, które chcesz wykonać:". Wpisz sudo pcmanfm
i kliknij OK.
Otworzy się nowe okno pokazujące zawartość katalogu /home/:
Symbol ostrzeżenia w lewym górnym rogu ekranu wskazuje, że jesteś w trybie Super User. W prawym górnym rogu należy przejść do następującego katalogu:
/etc/picockpit-client/apps/com.picockpit/picontrol/modules
Kliknij prawym przyciskiem myszy pusty obszar obok istniejących plików i wybierz opcję "Nowy plik...".
Nazwij nowy plik ssh-server.json:
Teraz musisz kliknąć prawym przyciskiem myszy nowy plik, aby wyświetlić menu kontekstowe. Wybierz "Geany":
Możesz teraz zobaczyć nowy plik, który właśnie utworzyliśmy. W tej chwili jest on jednak pusty.
Utwórzmy dwa nowe polecenia, jedno do wyłączenia usługi serwera SSH, a drugie do jej uruchomienia. Wprowadź następujące dane w polu tekstowym w 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"]
}
}
}
W tym momencie powinniśmy zapisać plik. Można to zrobić z menu plików Geany, na przykład wybierając Zapisz lub naciskając Ctrl + S:
W tym momencie nasze nowe polecenia nie pojawiły się jeszcze w interfejsie internetowym.
W tym celu należy ponownie uruchomić klienta PiCockpit.
Kliknij ponownie polecenie "Run..." w menu Raspberry Pi OS i wpisz sudo service picockpit-client restart
w oknie przed kliknięciem OK:
Teraz spójrz na interfejs sieciowy PiControl:
Jeśli wszystko wpisałeś poprawnie, pojawią się nowe polecenia serwera SSH. I
Jeśli popełniłeś błąd w pliku JSON (na przykład zapomniałeś o nawiasie klamrowym), PiCockpit po prostu zignoruje "uszkodzony" plik.
Możesz teraz wypróbować polecenia.
Gratulacje! Właśnie utworzyłeś swój własny zestaw poleceń, które możesz uruchamiać z poziomu interfejsu WWW.
Pozostań na stronie podczas uruchamiania poleceń. Status zostanie wyczyszczony, jeśli odejdziesz. Aby ustalić, czy serwer SSH jest uruchomiony, można utworzyć test w naszej aplikacji PiDoctor.
PiControl służy wyłącznie do wykonywania zdalnych działań na Raspberry Pi.
Pamiętaj, aby ponownie uruchomić PiCockpit Client po dodaniu nowych lub zaktualizowaniu poleceń.
Możesz także usunąć polecenia, których nie chcesz mieć. Na przykład, jeśli chcesz usunąć możliwość zdalnego wyłączania Raspberry Pi, możesz edytować plik core.json.
Składnia .JSON aplikacji PiControl
Plik konfiguruje nowy moduł dla PiControl.
Jak już wspomniano, ma on składnię .JSON. W związku z tym należy upewnić się, że nawiasy klamrowe są otwierane i kończone w prawidłowy sposób, jak pokazano w powyższym przykładzie.
Istnieje nagłówek, który konfiguruje sam moduł, oraz polecenia (w sekcji "polecenia"). Mają one kilka wspólnych wpisów:
nazwa
Wpisy "name" są nazwami czytelnymi dla człowieka, które są wyświetlane w interfejsie sieciowym.
ikona
Wpisy "icon" są opcjonalne, aby udekorować swoje przyciski i moduł. Są to nazwy ikon Material Design, na przykład "mdi-ssh".
Możesz sprawdzić pełna lista ikon Material Design tutaj. Po prostu skopiuj nazwę ikony (łącznie z mdi- na początku).
opis
Wpisy "description" są opcjonalne i pozwalają dodać nieco więcej informacji do polecenia lub modułu.
uchwyt
Wpis "handle" jest jawny dla modułu i musi być unikalny wśród modułów. W przypadku komend, uchwyt jest niejawny. "ssh-stop" i "ssh-start" to dwa uchwyty, których użyłem dla poleceń w moim przykładzie.
Możesz wybrać cokolwiek jako uchwyt, pod warunkiem, że nie zawiera znaków "/", "+", "$", "*". Zalecam trzymanie się podstawowych znaków ASCII pisanych małą literą, oraz używanie "-". Uchwyt to. wymagane.
Twój plik może, nawiasem mówiąc, mieć inną nazwę niż uchwyt - zachęcam do używania co najmniej pokrewnych nazw dla nazwy pliku i uchwytu, dzięki czemu łatwo zidentyfikujesz plik modułu .JSON na swoim dysku twardym.
Polecenia trafiają do "polecenia", a także posiadają dodatkowe możliwości konfiguracji:
potwierdź
Jeśli "potwierdzić" i ustawiona na true, interfejs PiControl wyświetli okno dialogowe potwierdzenia przed faktycznym uruchomieniem polecenia. Jest to przydatne, aby upewnić się, że "niebezpieczne" polecenia nie zostaną wykonane przez przypadkowe dotknięcie lub kliknięcie.
użytkownik
Jeśli "użytkownik" jest obecne, polecenie zostanie uruchomione jako ten konkretny użytkownik (jako źródło w naszym przykładzie, aby upewnić się, że mamy wystarczające uprawnienia).
PiControl będzie uruchamiał komendy jako użytkownik "pi" domyślnie. Możesz również ustawić ją na innych użytkowników z mniejszymi uprawnieniami niż "pi“.
Jeśli próbujesz uruchamiać komendy GPIO lub odtwarzać filmy za pomocą omxplayera, być może będziesz musiał dać swojemu nowemu użytkownikowi dodatkowe możliwości. Użytkownik pi domyślnie posiada te wymagane uprawnienia. Zazwyczaj te uprawnienia są ustawiane poprzez dodanie użytkownika do specjalnej grupy.
polecenie
To jest rzeczywiste polecenie, które należy uruchomić na Raspberry Pi. Zwróć uwagę, że musisz zastąpić spacje w poleceniu w porównaniu do tego, jak uruchomiłbyś je w wierszu poleceń. Na przykład,
service ssh start
powinno być zapisane jako:
["service", "ssh", "start"].
PiControl obsługuje również łańcuchowanie sekwencji poleceń (np. zwykła sekwencja apt-get update, apt-get upgrade). Sprawdź core.json, aby zobaczyć przykład, jak to jest zrobione.
Wniosek
Jeśli masz jakiekolwiek pytania lub napotkasz jakiekolwiek problemy, nie wahaj się z nami skontaktować, a my pomożemy Ci uruchomić PiControl!
witam!
Chcę uruchomić następującą komendę z przyciskiem picontrol: cd /home/pi/Sensoren ; python3 SCRIPT.py
Zrobiłem to zgodnie z opisem i mogę nacisnąć przycisk, ale komenda nie jest wykonywana, a także proces nie może zostać zatrzymany.
Jakieś rady?
Dzięki
należy pamiętać, że picontrol nie jest powłoką - wszystkie polecenia wykonywane są niezależnie. należy używać ścieżek bezwzględnych (cd - change directory - jest bezużyteczne w kontekście picontrol).
Uruchomienie skryptu python działa dobrze, przykład:
"command": ["python3", "/home/pi/do_something.pyc"].
Ale mam problemy, jeśli skrypt później uruchamia aplikację z GUI jak Chromium lub jeśli Chromium jest uruchamiany bezpośrednio:
"command": ["chromium-browser"] skutkuje "Unable to open X display. ".
Jak uruchomić skrypty lub aplikacje, które wymagają wyświetlacza X?
Pisałem o tym nieco więcej tutaj:
https://pi3g.com/2020/05/19/chromium-exit-code-5/
Zasadniczo musisz powiedzieć aplikacji, który wyświetlacz X ma być używany.
W przypadku Chromium odbywa się to za pomocą flagi
chromium-browser -display=:0 -kiosk https://picockpit.com
Uwaga, -kiosk uruchamia przeglądarkę w trybie kiosku. Po prostu wrzucam to jako dodatkową informację.
Uwaga II: to są dwa myślniki dla parametrów - WordPress zmienia je na pojedynczy długi myślnik, jak sądzę.
W przypadku innych aplikacji trzeba będzie sprawdzić. Często odbywa się to poprzez ustawienie zmiennej środowiskowej.
Ewentualnie dla PiCockpit trzeba by napisać skrypt bash, który ustawia zmienną i uruchamia aplikację.
A następnie uruchom skrypt bash.
Jeśli masz jakieś sukcesy z tym, proszę podzielić się z nami.
Max
Zobacz również te dwa linki, aby dowiedzieć się więcej o przełącznikach wiersza poleceń dla Chromium:
http://peter.sh/experiments/chromium-command-line-switches/
https://www.chromium.org/developers/how-tos/run-chromium-with-flags
Cześć, właśnie skonfigurowałem polecenie przy użyciu waszego oprogramowania i infrastruktury i jest super! Dziękuję bardzo za to proste i łatwe w użyciu oprogramowanie. Chciałem trochę porady, jeśli jesteś wolny. Zasadniczo, mam mój Pi skonfigurować obudzić mój pc z uśpienia, a twoje oprogramowanie pozwalające prosty interfejs sieciowy, aby obudzić pc z polecenia etherwake działa, jednak chciałbym szybszy sposób wykonywania tego jednego polecenia natychmiast. Czy uważasz, że jest jakiś sposób, aby to możliwe? Obecnie, aby po prostu obudzić mój komputer, muszę się zalogować, a następnie przejść do mojego polecenia, a następnie wybrać przycisk w wyskakującym okienku, ale jeśli było api lub skrót do w zasadzie uruchomienia polecenia jednym kliknięciem, to byłoby pomocne. Tak czy inaczej, dziękuję bardzo za to. Bardzo niesamowite 🙂
Dzięki za sugestię funkcji, już ją dodałem. Planujemy zrobić wake on lan app jakiś czas, może to może być trochę bardziej wygodne.
Hallo,
w jaki sposób można ich zum Beispiel Abfragen wie (Do you want to continue? [Y/n]) über das Script mit "Y" bestätigen?
Vielen Dank!
Hallo Herr Hager,
das ist eine sehr gute Frage! Niektóre programy komandosów, jak np. apt-get, mają już zintegrowane -assume-yes Opcja, która pozwala na pracę w trybie nieinteraktywnym. Jest to szczególnie przydatne w skryptach, które nie wymagają obsługi ręcznej. Alternatywą jest klasyczny Unix 'tak' Programm mit Sie das selbe Ergebnis erzielen können. Beispielsweise mit:
yes | sudo apt upgrade
Niezależnie od konkretnego przypadku zastosowania, każdy z tych dwóch sposobów może zapewnić dobre rozwiązanie. W takim razie możesz nas jeszcze raz zaprosić do współpracy!
Witam, czy można użyć terminala RPi z picockpitu?
jeszcze nie, planowane w przyszłym wydaniu. (stan na 19.4.2023)
Nie wszystkie ikony z wymienionej strony są dostępne / działają.
Jak używać nowszych ikon niż wersja 4.9.95, na przykład 'mdi-lamps-outline' ?
jesteśmy w trakcie aktualizacji kodu frontend. Podzielę się twoim komentarzem z naszym deweloperem, być może będą mogli przyjrzeć się temu przed następną aktualizacją, aby doprowadzić ikony do najnowszej wersji.
Cześć, zaktualizowaliśmy frontend, co oznacza, że teraz możesz używać wszystkich ikon do najnowszej wersji Material Design Icons. W przyszłości będziemy również aktualizować wersję czcionki.
[...] KLIKNIJ TUTAJ: Dowiedz się jak możesz skonfigurować własne komendy w PiControl. [...]
[...] Wszystkie narzędzia administracyjne, które pomagają kontrolować Pi, działają. Obejmuje to aplikacje GPIO, PiControl, PiDoctor i PiStats. Może skonfigurować nową 64-bitową instalację z łatwym sposobem przełączania serwera SSH? Albo uruchamianie i zatrzymywanie skonfigurowanego centrum multimedialnego? Wysyłanie wiadomości WoL? Dobre wprowadzenie do możliwości oferowanych przez nasze oprogramowanie można znaleźć tutaj. [...]
apt-get -just-print upgrade 2>&1 | perl -ne 'if (/Inst\s([\w,\-,\d,\.,~,:,\+]+)\s\[([\w,\-,\d,\.,~,:,\+]+)\]\s\(([\w,\-,\d,\.,~,:,\+]+)\)? /i) {print "PAKIET: $1 ZAINSTALOWANY: $2 DOSTĘPNY: $3\n"}
Powyższe polecenie działa dobrze z SSH, ale PiControl ma problem i zgłasza:
(100) E: Opcja wiersza poleceń "n" [z -ne] nie jest rozumiana w połączeniu z innymi opcjami.
Myślę, że poprawnie uciekłem z mojego JSON, ponieważ wyświetlana komenda w PiControl jest taka sama, jak ta, którą uciekłem i rozdzieliłem spacje na oddzielne ciągi.
JSON:
{
"name": "Polecenia aktualizacji CISO",
"icon": "mdi-update",
"uchwyt": "CISO",
"description": "CISO zainstaluj wszystkie aktualizacje",
"polecenia": {
"ciso-updates": {
"name": "CISO Updates",
"icon": "mdi-server-minus",
"description": "Aktualizuje listę wszystkich pakietów w repozytorium i aktualizuje wszystkie zainstalowane pakiety",
"Potwierdź": prawda,
"user": "root",
"polecenie": [
[
"apt-get",
"aktualizacja"
],
[
"apt-get",
"aktualizacja",
"-y"
],
[
"apt-get",
"-just-print",
"aktualizacja",
"2>&1",
“|”,
"perl",
"-ne",
"'if",
“(/Inst\\s([\\w,\\-,\\d,\\.,~,:,\\+]+)\\s\\[([\\w,\\-,\\d,\\.,~,:,\\+]+)\\]\\s\\(([\\w,\\-,\\d,\\.,~,:,\\+]+)\\)?”,
"/i)",
"{print",
"PAKIET:",
“$1”,
"INSTALLED:",
“$2”,
"DOSTĘPNE:",
"$3\\n\"}"
]
]
}
}
}
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
Po wejściu do terminala można bezpośrednio uruchomić aplikacje
"geany": {
"name": "EditorG",
"icon": "mdi-application-edit-outline",
"description": "Edytor tekstu",
"Potwierdź": prawda,
"notermination": true,
"user": "root",
"polecenie": ["geany"].
},
Hallo, der folgende Befehl muss hinzugefügt werden: "-display=:0"
Dann sieht es so aus:“,
{
"name": "Geany Opener",
"icon": "mdi-application-edit-outline",
"handle": "open-geany",
"description": "Launch Geany",
"polecenia": {
"open-geany": {
"name": "Open Geany",
"icon": "mdi-application-edit-outline",
"description": "Launches Geany",
"Potwierdź": prawda,
"użytkownik": "
"command": ["geany", "-display=:0"].
}
}
}
[...] Raspberry Pi można zintegrować z systemami zarządzania zapasami w celu monitorowania poziomu zapasów, śledzenia zasobów i automatyzacji procesów zmiany kolejności. Jeśli chcesz znaleźć sposób na opracowanie niestandardowego systemu zarządzania zapasami, możesz opracować skrypty, które możesz następnie uruchomić za pomocą naszej aplikacji PiControl za pośrednictwem PiCockpit. [...]
[...] sprawia, że tworzenie skryptów dla Raspberry Pi jest intuicyjne i łatwe w zarządzaniu. Dzięki naszej aplikacji PiControl możesz łatwo napisać skrypt i utworzyć przycisk, aby uruchomić go z dowolnego miejsca w [...]