MyFabric
Программа для проксирования данных с WebSocket Moonraker в CRM MyFabric.
Быстрая установка
Установка пакета-коннектора
Текущая актуальная версия программы 0.2.28
работает с Python ^3.4
. Для совместимости с Python 2
нужно установить доп. зависимости (см. ниже).
Устанавливаем pip
(менеджер пакетов), если его нет в системе
sudo apt-get install python3-pip
Поддержка python2
# Установить дополнительные зависимости
pip install --upgrade setuptools
pip install --upgrade pathlib
pip install --upgrade wheel
Устанавливаем пакет на сервер с Moonraker
pip install myfabric-connector
pip3 install myfabric-connector
Быстрая установка конфигурационных файлов
Выпоните команду, инициализирующую установку
$HOME/.local/bin/myfabric-connector install
В интерактивном режиме ответьте на следующие вопросы:
- Логин от Moonraker
- Пароль от Moonraker
- Логин (E-mail) от MyFabric
- Пароль от MyFabric
Далее, система предложит заполнить информацию о принтерах. Продолжайте вводить в интерактивном режиме следующую информацию:
- Уникальный идентификатор принтера в системе MyFabric (хэш-строка. пример: 0d6d5fde-078b-4c88-b67f-709a6f210068)
- Локальный путь до moonraker. Например,
localhost:7125
После добавления всех принтеров система автоматически создаст все конфигурационные файлы.
Ручная установка
Запуск проксирования
Запускаем программу, указав в качестве параметров URL WebSocket Moonraker, идентификатор принтера в системе MyFabric (
printer_key), а также логин и пароль от учетной записи MyFabric`.
# myfabric-connector [--log-file LOG_FILE] [--log-level LOG_LEVEL] <moonraker_url> <printer_key> <myfabric_email> <myfabric_password>
myfabric-connector start localhost:7125 my-printer-key user@example.com my_password
Примечание: В URL Moonraker используйте localhost
или IP-адрес сервера Moonraker, вместо 0.0.0.0
, так
как 0.0.0.0
не является корректным адресом для подключения клиента.
Дополнительные опции:
-
--log-file
: Указывает путь к файлу логов. По умолчанию: /var/log/myfabric/myfabric.log
.
-
--log-level
: Указывает уровень логирования. Возможные значения: DEBUG
, INFO
, WARNING
, ERROR
, CRITICAL
. По
умолчанию: INFO
.
Получение версии пакета
myfabric-connector --version
Поддержание процесса
Чтобы процесс автоматически запускался при старте системы и работал в фоновом режиме, рекомендуется настроить службу
systemd.
Настройка службы systemd (в случае если на 1 хосте подключен 1 принтер)
-
Создайте файл службы
Создайте файл myfabric.service
в каталоге /etc/systemd/system/
:
[Unit]
Description=MyFabric Connector Service
After=network.target
[Service]
Type=simple
User=
EnvironmentFile=/etc/myfabric/myfabric.conf
ExecStart=/usr/local/bin/myfabric-connector start $MOONRAKER_URL $PRINTER_KEY $MYFABRIC_LOGIN $MYFABRIC_PASSWORD --log-file $LOG_FILE --log-level $LOG_LEVEL
Restart=on-failure
RestartSec=5s
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
Примечания:
- Убедитесь, что путь к исполняемому файлу
myfabric-connector
корректен. Вы можете определить путь
командой which myfabric-connector
. - Замените
User
на имя пользователя, от которого должен запускаться процесс (например, klipper
). - Использование файла окружения позволяет хранить конфиденциальные данные (например, пароли) отдельно от файла
службы.
-
Создайте файл окружения
Создайте файл /etc/myfabric/myfabric.conf
и добавьте в него следующие строки:
MOONRAKER_URL=localhost:7125
PRINTER_KEY=my-printer-key
MYFABRIC_LOGIN=user@example.com
MYFABRIC_PASSWORD=my_password
LOG_FILE=/var/log/myfabric/myfabric.log
LOG_LEVEL=INFO
Установите права доступа к файлу:
sudo chown root:root /etc/myfabric/myfabric.conf
sudo chmod 600 /etc/myfabric/myfabric.conf
-
Создайте каталог для логов
sudo mkdir -p /var/log/myfabric
sudo chown klipper:klipper /var/log/myfabric
Замените klipper:klipper
на пользователя и группу, от имени которых запускается служба.
-
Запустите и включите службу
sudo systemctl daemon-reload
sudo systemctl enable myfabric.service
sudo systemctl start myfabric.service
sudo systemctl status myfabric.service
Настройка службы systemd (в случае если на 1 хосте подключено более 1 принтера)
-
Создайте файл службы
Создайте файл myfabric_1.service
в каталоге /etc/systemd/system/
:
[Unit]
Description=MyFabric Connector Service
After=network.target
[Service]
Type=simple
User=
EnvironmentFile=/etc/myfabric/myfabric_1.conf
ExecStart=/usr/local/bin/myfabric-connector start $MOONRAKER_URL $PRINTER_KEY $MYFABRIC_LOGIN $MYFABRIC_PASSWORD --log-file $LOG_FILE --log-level $LOG_LEVEL
Restart=on-failure
RestartSec=5s
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
Примечания:
- Убедитесь, что путь к исполняемому файлу
myfabric-connector
корректен. Вы можете определить путь
командой which myfabric-connector
. - Замените
User
на имя пользователя, от которого должен запускаться процесс (например, klipper
). - Использование файла окружения позволяет хранить конфиденциальные данные (например, пароли) отдельно от файла
службы.
-
Создайте файл окружения
Обратите внимание, что в случае наличия более одного принтера, подключенного к одноплатнику, меняется только порт
подключения
Создайте файл /etc/myfabric/myfabric_1.conf
и добавьте в него следующие строки:
MOONRAKER_URL=localhost:7125
MYFABRIC_LOGIN=user@example.com
MYFABRIC_PASSWORD=my_password
LOG_FILE=/var/log/myfabric/myfabric_1.log
LOG_LEVEL=INFO
Установите права доступа к файлу:
sudo chown root:root /etc/myfabric/myfabric_1.conf
sudo chmod 600 /etc/myfabric/myfabric_1.conf
-
Создайте каталог для логов
sudo mkdir -p /var/log/myfabric
sudo chown klipper:klipper /var/log/myfabric
Замените klipper:klipper
на пользователя и группу, от имени которых запускается служба.
-
Запустите и включите службу
sudo systemctl daemon-reload
sudo systemctl enable myfabric_1.service
sudo systemctl start myfabric_1.service
sudo systemctl status myfabric_1.service
Для последующего принтера, повторите действия, меняя _1 (порядковый номер) и порт на котором находится экземпляр
moonraker (обычно это порты по порядку 7125, 7126 и тд)
Логирование работы
По умолчанию программа ведет логирование в файл /var/log/myfabric/myfabric.log
.
-
Просмотр логов в режиме реального времени:
tail -f /var/log/myfabric/myfabric.log
-
Использование journalctl
:
Если вы настроили перенаправление вывода в системный журнал, можете просматривать логи с помощью команды:
sudo journalctl -u myfabric.service -f
Примечание: Убедитесь, что пользователь, от имени которого запускается служба, имеет права на запись в файл логов.
Возможные проблемы
Программа не найдена
klipper@orangepi3-lts-11-12:~$ myfabric-connector --version
myfabric-connector: command not found
Решение:
-
Убедитесь, что пакет установлен и доступен в $PATH
.
-
Проверьте, где находится исполняемый файл:
which myfabric-connector
-
Если команда не найдена, возможно, необходимо добавить директорию с локальными пакетами Python в переменную
окружения $PATH
:
export PATH=$PATH:~/.local/bin
-
Или используйте полный путь к исполняемому файлу:
/home/klipper/.local/bin/myfabric-connector start localhost:7126 my-printer-key user@example.com my_password
Проблемы с правами доступа
Ошибки при подключении к Moonraker
Ошибки аутентификации в MyFabric
Обновление программы
Чтобы обновить программу до последней версии, выполните команду:
pip install --upgrade myfabric-connector
Проверка текущей версии:
myfabric-connector --version
Дополнительная информация
-
Безопасность:
- Не храните пароли в открытом виде в файлах или скриптах. Использование файла окружения с ограниченными правами
доступа помогает защитить конфиденциальные данные.
-
Настройка логирования:
- Вы можете изменить уровень детализации логов, указав параметр
--log-level
. Для отладки используйте
уровень DEBUG
.
-
Остановка службы:
sudo systemctl stop myfabric.service
-
Перезапуск службы:
sudo systemctl restart myfabric.service
-
Просмотр статуса службы:
sudo systemctl status myfabric.service
Связь с поддержкой
Если у вас возникли вопросы или проблемы с использованием программы, пожалуйста, свяжитесь с поддержкой MyFabric.
Примечание: Убедитесь, что все команды и пути соответствуют вашей системе и настройкам. При необходимости,
адаптируйте инструкции под вашу конкретную среду.