PiControl

Imagem do título do PiControl

O PiControl é uma aplicação poderosa que lhe permite controlar o seu Raspberry Pi remotamente a partir de qualquer navegador Web.

Esta página dá-lhe uma visão geral da aplicação PiControl.

PiControl

Irá reparar que, por defeito, três comandos estão incluídos e imediatamente disponíveis para o seu Raspberry Pi. Nomeadamente, com o PiControl, pode desligar o seu Raspberry Pi, reiniciar o seu Raspberry Pi, e atualizar o PiCockpit Client.

Personalização do PiControl

O que torna o PiControl particularmente útil é o facto de também ser personalizável.

Pode definir os seus próprios comandos de forma fácil e segura, editando ficheiros JSON no seu Raspberry Pi.

As instruções destinam-se a utilizadores que não têm experiência com a linha de comandos.

Se souber utilizar a linha de comandos, poderá achar mais fácil e rápido criar o ficheiro e editá-lo com o Nano ou o Vim.

Se não, então vamos seguir os passos aqui.

Primeiro, é necessário abrir o navegador de ficheiros em modo de superutilizador (este passo mantém os ficheiros de configuração do PiCockpit PiControl a salvo de qualquer utilizador ou aplicação que os queira manipular).

Clique no menu Raspberry Pi OS e, em seguida, clique no comando "Executar...":

Aparecerá uma caixa com a indicação "Introduza o comando que pretende executar:". Escreva sudo pcmanfm e clique em OK.

Abre-se uma nova janela que mostra o conteúdo do diretório /home/:

O símbolo de aviso no canto superior esquerdo do ecrã indica que se encontra no modo Super Utilizador. No canto superior direito, pretende navegar para o seguinte diretório:

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

Clique com o botão direito do rato na área vazia junto aos ficheiros existentes e seleccione "Novo ficheiro...".

Chame o novo arquivo ssh-server.json:

Agora, tem de clicar com o botão direito do rato no novo ficheiro, para abrir o menu de contexto. Seleccione "Geany":

Agora pode ver o novo ficheiro que acabámos de criar. No entanto, de momento, está vazio.

Vamos criar dois novos comandos, um para encerrar o serviço do servidor SSH e outro para iniciá-lo. Introduza o seguinte no campo de texto do 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"]
    }
  }
}

Neste ponto, devemos guardar o ficheiro. Pode fazê-lo a partir do menu de ficheiros do Geany, por exemplo, seleccionando Guardar ou premindo Ctrl + S:

Nesta altura, os nossos novos comandos ainda não apareceram na interface Web.

Para isso, é necessário reiniciar o PiCockpit Client.

Clique mais uma vez no comando "Executar..." no menu do Raspberry Pi OS e escreva sudo service picockpit-client restart na janela antes de clicar em OK:

Agora dá uma vista de olhos à tua interface web PiControl:

Se escreveu tudo corretamente, aparecerão os novos comandos do servidor SSH. I

Se cometeu um erro no seu ficheiro JSON (por exemplo, se se esqueceu de um parêntesis), o PiCockpit irá simplesmente ignorar o ficheiro "quebrado".

Pode agora experimentar os comandos.

Parabéns! Você acabou de criar o seu próprio conjunto de comandos que você pode executar a partir da interface web.

Permaneça na página enquanto executa comandos. O status será apagado se você sair da página. Para determinar se o servidor SSH está a funcionar, podes construir um teste na nossa aplicação PiDoctor.

O PiControl destina-se exclusivamente à execução de acções remotas no seu Raspberry Pi.

Lembra-te de reiniciar o PiCockpit Client quando adicionares novos comandos ou actualizares comandos.

Também podes remover comandos que não queres ter. Por exemplo, se quiser remover a capacidade de desligar o seu Raspberry Pi remotamente, pode editar o ficheiro core.json.

Sintaxe .JSON do PiControl

O ficheiro configura um novo módulo para o PiControl.

Como já foi referido, tem uma sintaxe .JSON. Por conseguinte, é necessário certificar-se de que abre e termina com chavetas de forma correcta, tal como apresentado no exemplo acima.

Existe um cabeçalho, que configura o módulo propriamente dito, e os comandos (na secção "commands"). Partilham algumas entradas comuns:

nome

As entradas "nome" são nomes legíveis por humanos que lhe são mostrados na interface web

ícone

As entradas "ícone" são opcionais para decorar os seus botões e módulo. Estes são nomes de ícones de desenho de material, por exemplo "mdi-ssh".

Você pode verificar um lista completa de ícones de design de materiais aqui. Basta copiar o nome do ícone (incluindo o mdi- no início).

descrição

As entradas de "descrição" são opcionais e permitem adicionar um pouco mais de informação para o comando ou módulo.

manípulo

A entrada "handle" é explícita para o módulo, e tem de ser única entre os módulos. No caso dos comandos, o handle está implícito. “ssh-stop" e "ssh-start"são as duas pegas que usei para os comandos no meu exemplo.

Você pode escolher qualquer coisa como cabo, desde que não inclua os caracteres "/", "+", "$", "*". Eu recomendo que se mantenha os caracteres ASCII básicos do downcase, e que use o "-". O manípulo é necessário.

Seu arquivo pode, por sinal, ter um nome de arquivo diferente do handle - eu o encorajo a usar pelo menos nomes relacionados para o nome do arquivo e o handle, para que você possa identificar facilmente o arquivo .JSON do módulo no seu disco rígido.

Os comandos vão para o "comandos"bloco, e têm possibilidades de configuração adicionais:

confirmar

Se "confirmar" estiver presente e definido como true, a interface web do PiControl mostrará uma caixa de diálogo de confirmação antes de executar o comando. Isso é útil para garantir que comandos "perigosos" não sejam executados por um toque ou clique acidental.

usuário

Se "usuário" estiver presente, o comando será executado como esse utilizador específico (como raiz no nosso exemplo, para garantir que temos privilégios suficientes).

PiControl irá executar comandos como usuário "pi"por omissão. Você também pode defini-lo para outros usuários com menos privilégios do que "pi“.

Se você tentar executar comandos GPIO, ou reproduzir vídeos usando o omxplayer, você pode ter que dar ao seu novo usuário capacidades adicionais. O usuário pi tem estes privilégios requeridos por defeito. Normalmente estes privilégios são definidos adicionando o usuário a um grupo especial.

comando

Este é o comando real que deve ser executado no seu Raspberry Pi. Note que tem de substituir os espaços no comando em comparação com a forma como o executaria na linha de comandos. Por exemplo,

início do serviço ssh

deve ser escrito como:

["serviço", "ssh", "começar"]

O PiControl também suporta encadear uma sequência de comandos (por exemplo, o habitual apt-get update, apt-get upgrade sequence). Confira core.json para um exemplo de como isso está sendo feito.

Conclusão

Se tiver dúvidas ou problemas, não hesite em contactar-nos e nós ajudamo-lo a pôr o PiControl a funcionar!

22 comentários

  1. Max em Maio 12, 2021 às 5:30 pm

    Olá!
    Quero executar o seguinte comando com um botão picontrol: cd /home/pi/Sensoren ; python3 SCRIPT.py
    Eu fiz como descrito e posso pressionar o botão mas o comando não é executado e também o processo não pode ser parado.
    Algum conselho?
    Obrigado

    • raspi berry em Julho 1, 2021 às 5:22 pm

      lembre-se que o picontrol não é uma shell - todos os comandos são executados independentemente. você tem que usar caminhos absolutos (cd - change directory - é inútil no contexto do picontrol).

  2. Alex em Agosto 16, 2021 às 6:34 pm

    Começar um roteiro de pitão funciona bem, por exemplo:
    "comando": ["python3", "/home/pi/do_something.pyc"]
    Mas eu tenho problemas se o script iniciar mais tarde um aplicativo com uma GUI como o Chromium ou se o Chromium for iniciado diretamente:
    "comando": resulta em "Incapaz de abrir o X display". “.

    Como posso iniciar scripts ou aplicativos que requerem um display X?

    • PiCaptain em Agosto 19, 2021 às 5:08 pm

      Eu escrevi um pouco mais sobre isto aqui:
      https://pi3g.com/2020/05/19/chromium-exit-code-5/

      basicamente você precisa dizer ao aplicativo qual X exibir para usar.
      No caso do Crómio, é feito com uma bandeira

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

      nota, -kiosk inicia o navegador em modo quiosque. Atirando isso como uma informação extra.
      nota II: estes são dois traços para os parâmetros - o WordPress altera-os para um único traço longo, creio eu.

      Para outras aplicações, você precisará verificar. Frequentemente, isto é feito através da definição de uma variável de ambiente.
      Possivelmente para o PiCockpit você precisaria escrever um script bash que definisse a variável e depois iniciasse a aplicação.
      E depois, corre o guião do bash.

      Se você tiver algum sucesso com isso, por favor, compartilhe conosco.

      Max

      • PiCaptain em Agosto 19, 2021 às 5:09 pm

        Como imagem

    • PiCaptain em Agosto 19, 2021 às 5:11 pm

      Veja também estes dois links para mais comutadores de linha de comando para o Chromium:

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

  3. Sri em Outubro 13, 2021 às 1:23 pm

    Olá, basta configurar um comando usando o seu software e infra-estrutura e é fantástico! Muito obrigado por este software simples e fácil de usar. Eu queria um pouco de conselho se você estiver livre. Basicamente, tenho a minha configuração Pi para acordar o meu pc do sono, e o vosso software permitindo uma interface web simples para acordar o pc com um comando etherwake está a funcionar, no entanto gostaria de uma forma mais rápida de executar este único comando imediatamente. Você acha que há alguma maneira de tornar isso possível? Atualmente para apenas acordar o meu pc, eu tenho que fazer login e depois ir ao meu comando e depois escolher o botão na caixa pop-up, mas se houvesse uma api ou um atalho para basicamente executar o comando com um clique, isso seria útil. De qualquer forma, muito obrigado por isto. Muito bom 🙂

    • PiCaptain em Outubro 23, 2021 às 1:41 pm

      Obrigado pela sugestão da funcionalidade, eu adicionei-a. Estamos a planear fazer um velório na aplicação lan algum tempo, talvez seja um pouco mais conveniente.

  4. Hager em Março 31, 2022 às 12:26 pm

    Olá,
    wie kann ich zum Beispiel Abfragen wie (Quer continuar? [S/n]) über das Script mit "Y" bestätigen?

    Vielen Dank!

    • Hanno em Abril 20, 2022 às 7:30 am

      Olá, Herr Hager,

      das ist eine sehr gute Frage! Einige Kommandozeilen Programme wie zum etwa apt-get haben eine bereits integrierte -assume-yes Option, die es ermöglicht sie 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 'simProgramm mit Sie das selbe Ergebnis erzielen können. Beispielsweise mit:
      yes | sudo apt upgrade
      Abhängig von Ihrem konkretem Anwendungsfall sollte eigentlich eine dieser zwei Möglichkeiten eine gute Lösung darstellen. Ansonsten können Sie uns uns gerne noch einmal schreiben!

  5. Jaka em Março 30, 2023 às 7:32 am

    Olá, pode usar o terminal RPi do picockpit?

    • raspi berry em Abril 19, 2023 às 7:48 pm

      ainda não, planeado para um lançamento futuro. (a partir de 19.4.2023)

  6. DGDodo em Abril 25, 2023 às 10:09 pm

    Nem todos os ícones do sítio Web mencionado estão disponíveis/funcionam.
    Como utilizar ícones mais recentes do que a versão 4.9.95, por exemplo, "mdi-lamps-outline"?

    • PiCaptain em Maio 10, 2023 às 12:33 pm

      estamos a atualizar o código do frontend. Vou partilhar o seu comentário com o nosso programador, que poderá analisar a questão antes da próxima atualização para atualizar os ícones para a versão mais recente.

    • PiCaptain em Maio 19, 2023 às 11:54 am

      Olá, actualizámos o frontend, o que significa que agora pode utilizar todos os ícones até à versão mais recente dos ícones do Material Design. Também manteremos a versão da fonte actualizada no futuro.

  7. [...] CLICA AQUI: Aprende como podes configurar os teus próprios comandos no PiControl. [...]

  8. Expanding PiCockpit to 64 Bit Pi OS em Agosto 28, 2023 às 9:32 am

    [...] As ferramentas administrativas que o ajudam a controlar o seu Pi estão todas a funcionar. Isso inclui os aplicativos GPIO, PiControl, PiDoctor e PiStats. Talvez configurar sua nova instalação de 64 bits com uma maneira fácil de alternar seu servidor SSH? Ou iniciar e parar aquele centro de mídia que você configurou? Enviar uma mensagem WoL? Podes encontrar uma boa introdução às possibilidades que o nosso software oferece aqui. [...]

  9. chris l em Setembro 4, 2023 às 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 INSTALADO: $2 DISPONÍVEL: $3\n"}'

    O comando acima funciona muito bem com o SSH, mas o PiControl tem um problema e reporta-o:
    (100) E: A opção de linha de comando 'n' [de -ne] não é compreendida em combinação com as outras opções.

    Penso que escapei o meu JSON corretamente, pois o comando apresentado no PiControl é o mesmo que escapei e dividi os espaços em cadeias separadas.

    JSON:
    {
    "nome": "Comandos de atualização CISO",
    "ícone": "mdi-update",
    "handle": "CISO",
    "descrição": "CISO instala todas as actualizações",
    "comandos": {
    "ciso-updates": {
    "nome": "Actualizações CISO",
    "ícone": "mdi-server-minus",
    "description": "Actualiza a lista de todos os pacotes no repositório e actualiza todos os pacotes instalados",
    "confirmar": verdadeiro,
    "utilizador": "root",
    "comando": [
    [
    "apt-get",
    "atualizar"
    ],
    [
    "apt-get",
    "atualização",
    "-y"
    ],
    [
    "apt-get",
    "-just-print",
    "atualização",
    "2>&1",
    “|”,
    "perl",
    "-ne",
    "'se",
    “(/Inst\\s([\\w,\\-,\\d,\\.,~,:,\\+]+)\\s\\[([\\w,\\-,\\d,\\.,~,:,\\+]+)\\]\\s\\(([\\w,\\-,\\d,\\.,~,:,\\+]+)\\)?”,
    "/i)",
    "{impressão",
    "\"PACKAGE:",
    “$1”,
    "INSTALADO:",
    “$2”,
    "AVAILABLE:",
    "$3\\n\"}'"
    ]
    ]
    }
    }
    }

  10. Bruchpilot em Outubro 8, 2023 às 12:28 pm

    Olá,
    Eu tentei os primeiros passos com o picockpit. No entanto, não me parece que exista uma aplicação para a gestão de ficheiros. z.B. chromium-browser, dillo, geany
    Ao aceder ao terminal, as utilizações são diretamente transferidas

    "geany": {
    "nome": "EditorG",
    "ícone": "mdi-application-edit-outline",
    "descrição": "Editor de texto",
    "confirmar": verdadeiro,
    "notermination": verdadeiro,
    "utilizador": "root",
    "comando": ["geany"]
    },

    • Adam em Janeiro 25, 2024 às 4:28 pm

      Olá, o seguinte erro deve ser corrigido: "-display=:0"

      Dann sieht es so aus:
      {
      "nome": "Geany Opener",
      "ícone": "mdi-application-edit-outline",
      "handle": "open-geany",
      "descrição": "Launch Geany",
      "comandos": {
      "open-geany": {
      "nome": "Open Geany",
      "ícone": "mdi-application-edit-outline",
      "descrição": "Launches Geany",
      "confirmar": verdadeiro,
      "utilizador": "“,
      "comando": ["geany", "-display=:0"]
      }
      }
      }

  11. [...] O Raspberry Pi pode ser integrado em sistemas de gestão de inventário para monitorizar os níveis de stock, acompanhar os activos e automatizar os processos de reordenamento. Se quiseres encontrar formas de desenvolver um sistema de gestão de inventário personalizado, podes desenvolver scripts que poderás depois executar com a nossa aplicação PiControl através do PiCockpit. [...]

  12. [...] torna a criação de scripts para o seu Raspberry Pi intuitiva e fácil de gerir. Com a nossa aplicação PiControl, pode facilmente escrever um script e criar um botão para o executar a partir de qualquer ponto do [...]

Deixe um comentário