Управление удаленным пи GPIO с Domoticz
В этой настройке есть 2 пи:
- PI-domo: работает домотикз
- PI-pump: управление насосом с помощью одного GPIO
Те пи далеко, но могут общаться через сеть. PI-domo имеет некоторые настройки входа по ssh без пароля для pi-pump и содержит три сценария:
- pump_on.sh: отправляет значение в gpio с помощью ssh для включения насоса и возвращает 1
`ssh pi@pi-pump -n "echo 0 > /sys/class/gpio/gpio18/value" && echo 1`
pump_off.sh: отправляет значение в gpio с помощью ssh для выключения насоса и возвращает 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 не работает ни с одним из них. и при этом я не мог найти место, чтобы прочитать статус...
Любая идея или ссылка на ПОСЛЕДНИЙ (рабочий) учебник будет приветствоваться!
2 ответа
Нашел вопрос: тупой я.
Оказывается, процесс domoticz был запущен от имени пользователя root, и у root не было настройки ключа для ssh без пароля.
Я знаю, что это старая ветка, и на нее уже есть ответы, но я наткнулся на ту же проблему и обнаружил, что в онлайн-ответах не хватает подробностей. Итак, вот оно:
- На PI-domo run
sudo su
стать корнем - Создайте новый ключ, используя
ssh-keygen -t rsa -b 4096 -C "nameofyourkey"
- Скопируйте свой ключ в PI-pump с помощью
ssh-copy-id -i /root/.ssh/yourkey.pub pi@pi-pump
- ssh в pi-pump, чтобы проверить, что агент ssh для root работает, и если все в порядке, выйдите и вернитесь, чтобы стать пользователем pi.
Примечание 1. Несмотря на то, что вы входите в систему как root PI-domo, важно, чтобы pump_off и pump_status.sh содержали а не [email protected],[email protected], иначе этот подход не сработает.
Примечание 2: журнал Domoticz указывает, что в вышеупомянутом процессе есть ошибка, выводя
Error: Error executing script command (/home/pi/domoticz/scripts/pump_off.sh). returned: 65280
. Обратите внимание на ошибку 65280, в частности