Инструменты пользователя

Инструменты сайта


mqtt-io  

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
mqtt-io [2021/09/15 16:25]
Pavel Sokolov создано
mqtt-io [2021/09/29 09:18] (текущий)
Pavel Sokolov
Строка 4: Строка 4:
 Для проброса ресурсов контроллеров в MQTT можно использовать проект [[https://github.com/flyte/mqtt-io/|mqtt-io]]. Для проброса ресурсов контроллеров в MQTT можно использовать проект [[https://github.com/flyte/mqtt-io/|mqtt-io]].
  
-Известные проблемы: 
  
-  * Загрузка одного из ядер CPU может достигать 40-60% ([[https://github.com/flyte/mqtt-io/issues/236|Issue на github]])+основным преимуществом данного способа является использование Home Assistant MQTT discovery (сущности появятся в HA без необходимости прописывания их вручную в yaml)
  
 +
 +Известные проблемы и ньюансы:
 +
 +  * Загрузка одного из ядер CPU может достигать 40-60% ([[https://github.com/flyte/mqtt-io/issues/236|Issue на github]])
 +  * Невозможность одновременного использования GPIO через sysfs.
  
 ===== Установка и ручной запуск ===== ===== Установка и ручной запуск =====
Строка 23: Строка 27:
 </code> </code>
  
-После этого конфигурационный файл для вашей модели контроллера нужно скопировать в **/etc/mqtt-io-config.yaml** (<color #ed1c24>не забудьте изменить host/user/password</color>+Конфигурационный файл для вашей модели контроллера нужно скопировать в **/etc/mqtt-io-config.yaml** (<color #ed1c24>не забудьте изменить host/user/password в соответствии с настройками вашего MQTT сервера</color> 
 + 
 +Перед запуском mqtt-io нужно <color #ed1c24>удалить export всех GPIO в sysfs</color> (команда для конкретной модели JetHub указана в соответствующем разделе ниже) 
 + 
 +Пример для JetHub D1: 
  
-Выполнить команды из секции **Unexport** для вашего контроллера. Пример для JetHub D1:  
 <code bash> <code bash>
 # echo 436 452 453 454 455 456 462 467 469 470 471 472 | xargs -n 1 echo >/sys/class/gpio/unexport # echo 436 452 453 454 455 456 462 467 469 470 471 472 | xargs -n 1 echo >/sys/class/gpio/unexport
 </code> </code>
 +
  
 Запустить mqtt-io: Запустить mqtt-io:
 +
 <code bash> <code bash>
 # python3 -m mqtt_io /etc/mqtt-io-config.yaml # python3 -m mqtt_io /etc/mqtt-io-config.yaml
Строка 37: Строка 46:
 ===== Запуск через systemd ===== ===== Запуск через systemd =====
  
-TODO.+Подразумеваем, что сам mqtt-io и /etc/mqtt-io-config.yaml уже установлены.
  
-===== Конфигурационные файлы =====+Запускаем редактор:
  
-  * В конфигурациооных файлах <color #ed1c24>host/user/password</color> нужно изменить в соответствии с вашим MQTT сервером.  +<code bash> 
-  Перед запуском mqtt-io нужно <color #ed1c24>удалить export всех GPIO в sysfs</colorоманда для конкретной модели JetHub указана в соответствующей секции)+sudo nano /etc/systemd/system/mqtt-io.service 
 +</code> 
 + 
 +Копируем туда (<color #ed1c24>Если у вас не JetHub D1, то ExecStartPre нужно заменить</color>): 
 + 
 +<code ini> 
 +[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-config.yaml 
 +StandardOutput=inherit 
 +StandardError=inherit 
 +Restart=always 
 +User=root 
 + 
 +[Install] 
 +WantedBy=multi-user.target 
 +</code> 
 + 
 + 
 +Запускаем сервис: 
 + 
 +<code bash> 
 +sudo systemctl start mqtt-io 
 +</code> 
 + 
 +Проверяем статусоги: 
 + 
 +<code bash> 
 +sudo systemctl status mqtt-io 
 +</code> 
 + 
 +Добавляем в автозагрузку: 
 + 
 +<code bash> 
 +sudo systemctl enable mqtt-io.service 
 +</code> 
 + 
 +Смотрим лог: 
 + 
 +<code bash> 
 +sudo journalctl -u mqtt-io.service -f 
 +</code> 
 +===== Конфигурационные файлы и unexport для контроллеров JetHub =====
  
 +  * [[mqtt-io-jethub-d1]]
  
mqtt-io.1631712303.txt.gz · Последнее изменение: 2021/09/15 16:25 — Pavel Sokolov