1

此设置中有 2 个 pi:
- PI-domo:运行 domoticz
- PI-pump:使用一个 GPIO 控制泵

那些pi很远,但可以通过网络进行通信。PI-domo 对 pi-pump 有一些无密码 ssh 登录设置,并包含三个脚本:
- pump_on.sh:使用 ssh 向 gpio 发送值以打开泵并返回 1

  `ssh pi@pi-pump -n "echo 0 > /sys/class/gpio/gpio18/value" && echo 1`
  • pump_off.sh:使用 ssh 向 gpio 发送值以关闭泵并返回 0

    ssh pi@pi-pump -n "echo 1 > /sys/class/gpio/gpio18/value" && echo 0

  • pump_status.sh:如果泵打开则返回 1,如果泵关闭则返回 0。

在 bash 中启动时,所有三个脚本都按预期工作,但我找不到如何使用 domoticz 调用它们。我创建了一个虚拟开关并将它们设置为 script:///.....[on off].sh 但 domoticz 似乎没有运行它们中的任何一个。我也找不到阅读状态的地方...

欢迎任何想法或链接到最近(工作)教程!

4

2 回答 2

0

我知道这是一个旧线程并且已经回答了,但是我偶然发现了同样的问题,发现在线答案缺乏细节。所以,这里是:

  1. 在 PI-domo 上运行 sudo su成为 root
  2. 使用生成新密钥ssh-keygen -t rsa -b 4096 -C "nameofyourkey"
  3. 通过使用将您的密钥复制到 PI-pumpssh-copy-id -i /root/.ssh/yourkey.pub pi@pi-pump
  4. ssh 到 pi-pump 以测试 root 的 ssh 代理是否正常工作,如果一切正常,请退出并返回成为 pi 用户。

注意 1:虽然以 PI-domo 的 root 身份登录,但 pump_off 和 pump_status.sh 必须包含 pi@pi-pump 而不是 root@pi-pump,否则此方法将失败。

注2: Domoticz 日志输出 . 表示上述过程有一些错误Error: Error executing script command (/home/pi/domoticz/scripts/pump_off.sh). returned: 65280。特别注意 65280 错误

于 2021-08-15T05:30:42.230 回答
0

发现问题:愚蠢的我。
事实证明 domoticz 进程以 root 身份运行,而 root 没有无密码 ssh 的密钥设置。

于 2017-12-28T23:59:34.923 回答