呼叫中心
PiControl 是一款功能强大的应用程序,可让您通过任何网络浏览器远程控制您的 Raspberry Pi。
本页为您介绍 PiControl 应用程序的概况。
呼叫中心
您会注意到,默认情况下,您的 Raspberry Pi 包含并可立即使用三个命令。也就是说,通过 PiControl,您可以关闭 Raspberry Pi 的电源、重启 Raspberry Pi 和升级 PiCockpit 客户端。
自定义 PiControl
PiControl 的特别之处在于它还可以自定义。
您可以在 Raspberry Pi 上编辑 JSON 文件,轻松安全地定义自己的命令。
因此,这里的说明是为没有命令行经验的用户准备的。
如果你知道如何使用命令行,可能会发现直接创建文件并用 Nano 或 Vim 编辑会更方便快捷。
如果没有,那我们就在这里按步骤进行。
首先,您需要以超级用户模式打开文件浏览器(此步骤可确保 PiCockpit PiControl 配置文件的安全,防止任何用户或应用程序篡改这些文件)。
点击 Raspberry Pi OS 菜单,然后点击 "运行... "命令:
此时会出现一个 "输入您要执行的命令:"的对话框。输入 sudo pcmanfm
然后点击 "确定"。
打开一个新窗口,显示 /home/ 目录的内容:
屏幕左上角的警告标志表示您已进入超级用户模式。在右上方,您要导航到以下目录:
/etc/picockpit-client/apps/com.picockpit/picontrol/modules
右键单击现有文件旁边的空白区域,然后选择 "新建文件..."。
调用新文件ssh-server.json。
现在,你需要右键单击新文件,调出右键菜单。选择 "Geany":
现在你可以看到我们刚刚创建的新文件。不过,目前它还是空的。
让我们创建两条新命令,一条用于关闭 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"]
}
}
}
此时,我们应该保存文件。您可以从 Geany 的文件菜单中选择 "保存 "或按 Ctrl + S 保存文件:
此时,我们的新命令还没有出现在网络界面上。
为此,您需要重新启动 PiCockpit 客户端。
再次点击 Raspberry Pi OS 菜单中的 "运行... "命令,然后键入 sudo service picockpit-client restart
点击 "确定":
现在看看你的 PiControl 网络界面:
如果输入正确,就会出现新的 SSH 服务器命令。I
如果您在 JSON 文件中犯了错误(例如,忘记了一个大括号),PiCockpit 将直接忽略 "损坏 "的文件。
现在您可以尝试执行命令。
祝贺你!你刚刚创建了你自己的一套命令,你可以从网络界面上运行。你刚刚创建了你自己的命令集,你可以从网络界面运行。
运行命令时,请留在页面上。如果您离开页面,状态将被清除。要确定 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 应用程序,您可以轻松编写脚本并创建一个按钮,以便从 [...] 的任何地方运行它。