Периферия JetHub в MQTT через mqtt-io в Linux
Для проброса ресурсов контроллеров в MQTT можно использовать проект mqtt-io.
Установка
sudo apt install python3-pip
sudo pip3 install mqtt-io
Ручной запуск
Перед запуском нужно сделать unexport всех GPIO из sysfs:
Предупреждение
Пример для D1/D1+ basic. См. Конфигурационные файлы для других контроллеров.
echo 436 452 453 454 455 456 462 467 469 470 471 472 | xargs -n 1 echo >/sys/class/gpio/unexport
Запуск:
python3 -m mqtt_io /etc/mqtt-io.yaml
Автоматический запуск через systemd
Примечание
Подразумеваем, что сам mqtt-io и /etc/mqtt-io.yaml
уже установлены.
Запускам редактор:
sudo nano /etc/systemd/system/mqtt-io.service
Вставляем в него следующее:
Предупреждение
Пример для D1/D1+ basic. Для других контроллеров
ExecStartPre
нужно заменить.См. Конфигурационные файлы для других контроллеров.
[Unit] Description=mqtt-io After=network.target [Service] ExecStartPre=sh -c "echo 436 452 453 454 455 456 462 467 469 470 471 472 | xargs -n 1 echo >/sys/class/gpio/unexport; exit 0" ExecStart=python3 -m mqtt_io /etc/mqtt-io.yaml StandardOutput=inherit StandardError=inherit Restart=always User=root [Install] WantedBy=multi-user.target
Запускаем сервис:
sudo systemctl enable mqtt-io sudo systemctl start mqtt-io
Смотрим логи:
sudo journalctl -u mqtt-io -f
Конфигурационные файлы
Примечание
Не забудьте изменить host
, user
, password
в соответствии с настройками вашего MQTT сервера.
JetHub D1/D1+ basic
Unexport
echo 436 452 453 454 455 456 462 467 469 470 471 472 | xargs -n 1 echo >/sys/class/gpio/unexport
Ограничения
Загрузка одного из ядер CPU может достигать 40-60% (github issue).
Невозможность одновременного использования GPIO через sysfs.