呼叫中心
![PiControl 标题图片](https://picockpit.com/raspberry-pi/wp-content/uploads/2020/11/PiControl-Title-Image-1024x322.png)
PiControl 是一款功能强大的应用程序,可让您通过任何网络浏览器远程控制您的 Raspberry Pi。
本页为您介绍 PiControl 应用程序的概况。
呼叫中心
您会注意到,默认情况下,您的 Raspberry Pi 包含并可立即使用三个命令。也就是说,通过 PiControl,您可以关闭 Raspberry Pi 的电源、重启 Raspberry Pi 和升级 PiCockpit 客户端。
![](https://picockpit.com/raspberry-pi/wp-content/uploads/2024/01/image-3-1024x376.png)
自定义 PiControl
PiControl 的特别之处在于它还可以自定义。
您可以在 Raspberry Pi 上编辑 JSON 文件,轻松安全地定义自己的命令。
因此,这里的说明是为没有命令行经验的用户准备的。
如果你知道如何使用命令行,可能会发现直接创建文件并用 Nano 或 Vim 编辑会更方便快捷。
如果没有,那我们就在这里按步骤进行。
首先,您需要以超级用户模式打开文件浏览器(此步骤可确保 PiCockpit PiControl 配置文件的安全,防止任何用户或应用程序篡改这些文件)。
点击 Raspberry Pi OS 菜单,然后点击 "运行... "命令:
![](https://picockpit.com/raspberry-pi/wp-content/uploads/2024/01/image-4.png)
此时会出现一个 "输入您要执行的命令:"的对话框。输入 sudo pcmanfm
然后点击 "确定"。
![](https://picockpit.com/raspberry-pi/wp-content/uploads/2024/01/Screenshot-from-2024-01-08-12-34-02.png)
打开一个新窗口,显示 /home/ 目录的内容:
![](https://picockpit.com/raspberry-pi/wp-content/uploads/2024/01/image-6.png)
屏幕左上角的警告标志表示您已进入超级用户模式。在右上方,您要导航到以下目录:
/etc/picockpit-client/apps/com.picockpit/picontrol/modules
![](https://picockpit.com/raspberry-pi/wp-content/uploads/2024/01/image-7.png)
右键单击现有文件旁边的空白区域,然后选择 "新建文件..."。
![](https://picockpit.com/raspberry-pi/wp-content/uploads/2024/01/image-8.png)
调用新文件ssh-server.json。
![](https://picockpit.com/raspberry-pi/wp-content/uploads/2024/01/image-9.png)
现在,你需要右键单击新文件,调出右键菜单。选择 "Geany":
![](https://picockpit.com/raspberry-pi/wp-content/uploads/2024/01/image-10.png)
现在你可以看到我们刚刚创建的新文件。不过,目前它还是空的。
![](https://picockpit.com/raspberry-pi/wp-content/uploads/2024/01/image-11.png)
让我们创建两条新命令,一条用于关闭 SSH 服务器服务,另一条用于启动它。在 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"]
}
}
}
![](https://picockpit.com/raspberry-pi/wp-content/uploads/2024/01/image-12.png)
此时,我们应该保存文件。您可以从 Geany 的文件菜单中选择 "保存 "或按 Ctrl + S 保存文件:
此时,我们的新命令还没有出现在网络界面上。
为此,您需要重新启动 PiCockpit 客户端。
再次点击 Raspberry Pi OS 菜单中的 "运行... "命令,然后键入 sudo service picockpit-client restart
点击 "确定":
![](https://picockpit.com/raspberry-pi/wp-content/uploads/2024/01/image-13.png)
现在看看你的 PiControl 网络界面:
![](https://picockpit.com/raspberry-pi/wp-content/uploads/2024/01/image-14-1024x800.png)
如果输入正确,就会出现新的 SSH 服务器命令。I
如果您在 JSON 文件中犯了错误(例如,忘记了一个大括号),PiCockpit 将直接忽略 "损坏 "的文件。
现在您可以尝试执行命令。
![](https://picockpit.com/raspberry-pi/wp-content/uploads/2024/01/image-15-1024x800.png)
祝贺你!你刚刚创建了你自己的一套命令,你可以从网络界面上运行。你刚刚创建了你自己的命令集,你可以从网络界面运行。
运行命令时,请留在页面上。如果您离开页面,状态将被清除。要确定 SSH 服务器是否正在运行,可以在我们的 PiDoctor 应用程序上进行测试。
PiControl 仅用于在 Raspberry Pi 上执行远程操作。
添加新命令或更新命令时,请记住重新启动 PiCockpit 客户端。
你还可以删除不需要的命令。例如,如果你想删除远程关闭 Raspberry Pi 的功能,可以编辑 core.json 文件。
PiControl 的 .JSON 语法
该文件为 PiControl 配置了一个新模块。
如前所述,它采用 .JSON 语法。因此,您需要确保以正确的方式打开和结束大括号,如上例所示。
有一个头部(配置模块本身)和命令(在 "命令 "部分)。它们共享一些共同条目:
名称
名称 "条目是人类可读的名称,会在网络界面上显示给你。
图示
图标 "条目是可选的,用于装饰你的按钮和模块。这些是Material Design图标名称,例如 "mdi-ssh"。
你可以查看一下 材料设计图标的完整列表,请点击这里.只需复制图标的名称(包括开头的mdi-)。
描述
描述 "条目是可选的,允许你为命令或模块添加更多信息。
处理
"句柄 "条目对模块来说是明确的,而且在各模块中必须是唯一的。在命令的情况下,手柄是隐含的。"ssh-stop"和"ssh-start"是我在例子中用于命令的两个手柄。
你可以选择任何东西作为手柄,只要不包括"/"、"+"、"$"、"*"等字符。我建议坚持使用基本的小写ASCII字符,并使用"-"。句柄是 需要.
顺便说一下,你的文件可以有一个与手柄不同的文件名--我鼓励你对文件名和手柄至少使用相关的名字,这样你就可以很容易地识别你硬盘上的模块.JSON文件。
这些命令进入""。命令"块,并有额外的配置可能性。
确认
如果 "确认" 并设置为 "true "时,PiControl 网页界面将在实际运行命令前显示一个确认对话框。这对于确保 "危险 "命令不会因意外点击或单击而执行非常有用。
用户
如果 "用户" 存在时,命令将以该特定用户的身份运行(如 根 在我们的例子中,以确保我们有足够的权限)。
PiControl将以用户""的身份运行命令。pi"的默认值。你也可以将其设置为其他权限小于" "的用户。pi“.
如果你试图运行GPIO命令,或使用omxplayer播放视频,你可能必须给你的新用户提供额外的能力。该用户 pi 默认情况下拥有这些必要的权限。通常情况下,这些权限是通过将用户添加到一个特殊组来设置的。
指挥部
这是您应该在 Raspberry Pi 上运行的实际命令。请注意,您必须将命令中的空格替换为在命令行上运行时的空格。例如
service ssh start
应写为:
["服务", "ssh", "启动"]
PiControl还支持链式的命令序列(例如通常的apt-get update、apt-get upgrade序列)。请看core.json中的一个例子,它是如何实现的。
总结
如果您有任何疑问或遇到任何问题,请随时联系我们,我们将帮助您启动并运行 PiControl!
你们好!
我想用picontrol按钮运行以下命令: cd /home/pi/Sensoren ; python3 SCRIPT.py
我按照描述做了,我可以按下按钮,但命令没有被执行,也不能停止进程。
有什么建议吗?
谢谢
记住,picontrol不是一个shell--所有的命令都是独立执行的。你必须使用绝对路径(cd--改变目录--在picontrol中没有用)。
启动一个Python脚本可以正常工作,例如。
"命令"。["python3", "/home/pi/do_something.pyc"]
但是,如果这个脚本后来启动了一个像Chromium这样的图形用户界面的应用程序,或者直接启动了Chromium,我就会遇到问题。
"命令"。["chromium-browser"] 结果是 "无法打开X显示器。".
如何启动需要X显示的脚本或应用程序?
我在这里写过更多关于这个问题的文章。
https://pi3g.com/2020/05/19/chromium-exit-code-5/
基本上你需要告诉应用程序使用哪种X显示器。
在Chromium的情况下,它是通过一个标志来完成的
Chromium-browser -display=:0 -kiosk https://picockpit.com
注意,-kiosk是在kiosk模式下启动浏览器。只是把它作为一个额外的信息扔进去。
注二:这些参数是两个破折号--WordPress把它们改成一个长破折号,我相信。
对于其他应用程序,你将需要检查。这通常是通过设置一个环境变量来完成的。
对于PiCockpit来说,你可能需要写一个bash脚本来设置这个变量,然后启动应用程序。
然后运行bash脚本。
如果你在这方面有任何成功经验,请与我们分享。
最大
另外,关于Chromium的命令行开关,请看这两个链接。
http://peter.sh/experiments/chromium-command-line-switches/
https://www.chromium.org/developers/how-tos/run-chromium-with-flags
嗨,我刚刚用你们的软件和基础设施设置了一个命令,它非常棒!我很高兴。非常感谢你的这个简单而又易于使用的软件。如果你有空的话,我想得到一点建议。基本上,我把我的Pi设置为从睡眠中唤醒我的电脑,你的软件允许一个简单的网络界面用etherwake命令来唤醒电脑,这很有效,但是我想有一个更快的方法来立即执行这一个命令。你认为有什么方法可以做到这一点吗?目前,为了唤醒我的电脑,我必须登录,然后进入我的命令,然后在弹出的对话框中选择按钮,但如果有一个api或一个快捷方式,基本上可以一键运行命令,那将会很有帮助。无论如何,非常感谢你的帮助。非常棒 🙂
谢谢你的功能建议,我已经把它加上了。我们正计划在一段时间内做一个唤醒的应用程序,也许它可能会更方便一些。
Hallo,
wie kann ich zum Beispiel Abfragen wie (Do you want to continue? [Y/n]) über das Script mit "Y" bestätigen?
谢谢你!
你好,哈格先生。
这是一个非常好的问题。有一些程序,如apt-get,已经有了一个完整的程序。 -假设-是 选项,它可以让你在非交互式模式下使用。这通常是在脚本中使用,而不是在手写的情况下使用。另外还有经典的Unix系统。是'程序,使你能够实现自己的结果。例如,通过以下方式。
yes | sudo apt upgrade
根据我的实际情况,我应该把这两种方法中的一种变成一种好的解决方案。Ansonsten können Sie uns gerne noch einmal schreiben!
你好,你能从picockpit使用RPi终端吗?
还没有,计划在未来的版本中推出。(截至19.4.2023)
并非上述网站的所有图标都可以使用/工作。
如何使用4.9.95版之后的新图标,例如'mdi-lamps-outline'?
我们正在更新前台的代码。我将与我们的开发人员分享您的意见,可能他们会在下次更新之前研究这个问题,以使图标达到最新的版本。
您好,我们已经更新了前端,这意味着您现在可以使用最新版本的 Material Design Icons 图标。今后,我们还将不断更新字体版本。
[...] 点击此处:了解如何在 PiControl 中设置自己的命令。[...]
[...]帮助您控制 Pi 的管理工具全部正常工作。其中包括 GPIO、PiControl、PiDoctor 和 PiStats 应用程序。也许你可以用一种简单的方法来设置新安装的 64 位 SSH 服务器?或者启动和停止你设置的媒体中心?发送 WoL 消息?你可以在这里找到我们的软件提供的各种可能性的详细介绍。[...]
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"}'
上述命令在 SSH 下运行正常,但 PiControl 出现问题并报告:
(100) E:命令行选项 "n"[来自 -ne]与其他选项组合时无法理解。
我认为我正确地转义了 JSON 格式,因为 PiControl 中显示的命令与我转义并将空格分割成不同字符串的命令相同。
JSON:
{
"名称":"CISO 更新命令"、
"图标":"mdi-更新"、
"把手":"CISO"、
"描述":"CISO安装所有更新"、
"命令":{
"ciso-更新":{
"名称":"CISO 更新"、
图标"mdi-server-minus"、
"描述":"更新软件源中所有软件包的列表,并升级所有已安装的软件包"、
"确认":true、
"用户":"root"、
"命令":[
[
"apt-get"、
"更新"
],
[
"apt-get"、
"升级"、
"-y"
],
[
"apt-get"、
"-just-print"、
"升级"、
"2>&1",
“|”,
"perl"、
"-ne"、
"'如果'"、
“(/Inst\\s([\\w,\\-,\\d,\\.,~,:,\\+]+)\\s\\[([\\w,\\-,\\d,\\.,~,:,\\+]+)\\]\\s\\(([\\w,\\-,\\d,\\.,~,:,\\+]+)\\)?”,
"/i)",
"{打印
"PACKAGE:"、
“$1”,
"安装:"、
“$2”,
"可用:"、
"$3\n\"}'"
]
]
}
}
}
Hallo,
我尝试了使用 picockpit 的前几个步骤,但仍无法在 Fernsteuerung 上运行。
在终端上直接连接应用程序
"geany":{
"名称":"EditorG"、
"图标":"mdi-application-edit-outline"、
"描述":"文本编辑器"、
"确认":true、
"notermination": true、
"用户":"root"、
"命令":["geany"]["geany"]
},
您好,下面的错误信息可能会被删除:"-display=:0"
Dann sieht es so aus:“,
{
"名称":"Geany Opener"、
"图标":"mdi-application-edit-outline"、
"句柄":"open-geany"、
"描述":"启动 Geany"、
"命令":{
"open-geany":{
"名称":"Open Geany"、
"图标":"mdi-application-edit-outline"、
"描述":"Launches Geany"、
"确认":true、
"用户":"
"命令":["geany", "-display=:0"]
}
}
}
[...] Raspberry Pi 可以集成到库存管理系统中,以监控库存水平、跟踪资产并自动执行再订购流程。如果您想找到开发定制库存管理系统的方法,您可以开发脚本,然后通过 PiCockpit 使用我们的 PiControl 应用程序运行这些脚本。[...]
[...]使您的 Raspberry Pi 的脚本编写既直观又易于管理。使用我们的 PiControl 应用程序,您可以轻松编写脚本并创建一个按钮,以便从 [...] 的任何地方运行它。