# MyFabric
Программа для проксирования данных с WebSocket Moonraker в CRM MyFabric.
## Установка
Текущая актуальная версия программы `0.1.32` работает с `Python 3`.
```bash
# Устанавливаем пакет на сервер с Moonraker
pip install myfabric-connector
```
## Команды
### Запуск проксирования
Запускаем программу, указав в качестве параметров URL WebSocket Moonraker, идентификатор принтера в системе MyFabric (channel_name), а также логин и пароль от учетной записи MyFabric в формате `email:password`.
```shell
# myfabric-connect [--log-file LOG_FILE] [--log-level LOG_LEVEL] <moonraker_url> <channel_name> <login> <password>
myfabric-connect ws://localhost:7125/websocket my-printer-id 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`.
### Получение версии пакета
```shell
myfabric-connect --version
```
## Поддержание процесса
Чтобы процесс автоматически запускался при старте системы и работал в фоновом режиме, рекомендуется настроить службу systemd.
### Настройка службы systemd (в случае если на 1 хосте подключен 1 принтер)
1. **Создайте файл службы**
Создайте файл `myfabric.service` в каталоге `/etc/systemd/system/`:
```ini
[Unit]
Description=MyFabric Connector Service
After=network.target
[Service]
Type=simple
User=klipper
EnvironmentFile=/etc/myfabric/myfabric.conf
ExecStart=/usr/local/bin/myfabric-connect $MOONRAKER_URL $CHANNEL_NAME $LOGIN $PASSWORD --log-file $LOG_FILE --log-level $LOG_LEVEL
Restart=on-failure
RestartSec=5s
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
```
**Примечания:**
- Убедитесь, что путь к исполняемому файлу `myfabric-connect` корректен. Вы можете определить путь командой `which myfabric-connect`.
- Замените `User` на имя пользователя, от которого должен запускаться процесс (например, `klipper`).
- Использование файла окружения позволяет хранить конфиденциальные данные (например, пароли) отдельно от файла службы.
2. **Создайте файл окружения**
Создайте файл `/etc/myfabric/myfabric.conf` и добавьте в него следующие строки:
```bash
MOONRAKER_URL=ws://localhost:7125/websocket
CHANNEL_NAME=my-printer-id
LOGIN=user@example.com
PASSWORD=my_password
LOG_FILE=/var/log/myfabric/myfabric.log
LOG_LEVEL=INFO
```
**Установите права доступа к файлу:**
```bash
sudo chown root:root /etc/myfabric/myfabric.conf
sudo chmod 600 /etc/myfabric/myfabric.conf
```
3. **Создайте каталог для логов**
```bash
sudo mkdir -p /var/log/myfabric
sudo chown klipper:klipper /var/log/myfabric
```
Замените `klipper:klipper` на пользователя и группу, от имени которых запускается служба.
4. **Запустите и включите службу**
```bash
# Перезагрузите конфигурацию systemd
sudo systemctl daemon-reload
# Включите службу для автоматического запуска при старте системы
sudo systemctl enable myfabric.service
# Запустите службу
sudo systemctl start myfabric.service
# Проверьте статус службы
sudo systemctl status myfabric.service
```
### Настройка службы systemd (в случае если на 1 хосте подключено более 1 принтера)
1. **Создайте файл службы**
Создайте файл `myfabric_1.service` в каталоге `/etc/systemd/system/`:
```ini
[Unit]
Description=MyFabric Connector Service
After=network.target
[Service]
Type=simple
User=klipper
EnvironmentFile=/etc/myfabric/myfabric_1.conf
ExecStart=/usr/local/bin/myfabric-connect $MOONRAKER_URL $CHANNEL_NAME $LOGIN $PASSWORD --log-file $LOG_FILE --log-level $LOG_LEVEL
Restart=on-failure
RestartSec=5s
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
```
**Примечания:**
- Убедитесь, что путь к исполняемому файлу `myfabric-connect` корректен. Вы можете определить путь командой `which myfabric-connect`.
- Замените `User` на имя пользователя, от которого должен запускаться процесс (например, `klipper`).
- Использование файла окружения позволяет хранить конфиденциальные данные (например, пароли) отдельно от файла службы.
2. **Создайте файл окружения**
**Обратите внимание, что в случае наличия более одного принтера, подключенного к одноплатнику, меняется только порт подключения**
Создайте файл `/etc/myfabric/myfabric_1.conf` и добавьте в него следующие строки:
```bash
MOONRAKER_URL=ws://localhost:7125/websocket
CHANNEL_NAME=my-printer-id
LOGIN=user@example.com
PASSWORD=my_password
LOG_FILE=/var/log/myfabric/myfabric_1.log
LOG_LEVEL=INFO
```
**Установите права доступа к файлу:**
```bash
sudo chown root:root /etc/myfabric/myfabric_1.conf
sudo chmod 600 /etc/myfabric/myfabric_1.conf
```
3. **Создайте каталог для логов**
```bash
sudo mkdir -p /var/log/myfabric
sudo chown klipper:klipper /var/log/myfabric
```
Замените `klipper:klipper` на пользователя и группу, от имени которых запускается служба.
4. **Запустите и включите службу**
```bash
# Перезагрузите конфигурацию systemd
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`.
- **Просмотр логов в режиме реального времени:**
```bash
tail -f /var/log/myfabric/myfabric.log
```
- **Использование `journalctl`:**
Если вы настроили перенаправление вывода в системный журнал, можете просматривать логи с помощью команды:
```bash
sudo journalctl -u myfabric.service -f
```
**Примечание:** Убедитесь, что пользователь, от имени которого запускается служба, имеет права на запись в файл логов.
## Возможные проблемы
### Программа не найдена
```shell
klipper@orangepi3-lts-11-12:~$ myfabric-connect --version
myfabric-connect: command not found
```
**Решение:**
- Убедитесь, что пакет установлен и доступен в `$PATH`.
- Проверьте, где находится исполняемый файл:
```bash
which myfabric-connect
```
- Если команда не найдена, возможно, необходимо добавить директорию с локальными пакетами Python в переменную окружения `$PATH`:
```bash
export PATH=$PATH:~/.local/bin
```
- Или используйте полный путь к исполняемому файлу:
```shell
/home/klipper/.local/bin/myfabric-connect ws://localhost:7125/websocket my-printer-id user@example.com:my_password
```
### Проблемы с правами доступа
- **Описание:**
Ошибки, связанные с недостаточными правами доступа к файлам или сетевым портам.
- **Решение:**
- Убедитесь, что пользователь, от имени которого запускается служба, имеет необходимые права доступа.
- Проверьте права на файлы конфигурации и логов.
- Если необходимо, настройте соответствующие разрешения с помощью команд `chown` и `chmod`.
### Ошибки при подключении к Moonraker
- **Описание:**
Программа не может установить соединение с Moonraker.
- **Решение:**
- Убедитесь, что Moonraker запущен и доступен по указанному адресу и порту.
- Проверьте правильность указания URL Moonraker в файле конфигурации или при запуске программы.
- Убедитесь, что нет сетевых ограничений или брандмауэров, блокирующих соединение.
### Ошибки аутентификации в MyFabric
- **Описание:**
В логах появляются сообщения об ошибке аутентификации при подключении к MyFabric.
- **Решение:**
- Проверьте правильность указанных учетных данных (email и пароль).
- Убедитесь, что учетная запись активна и имеет доступ к необходимым ресурсам.
- Попробуйте войти в MyFabric через веб-интерфейс с этими же учетными данными, чтобы убедиться в их корректности.
## Обновление программы
Чтобы обновить программу до последней версии, выполните команду:
```bash
pip install --upgrade myfabric-connector
```
**Проверка текущей версии:**
```bash
myfabric-connect --version
```
## Дополнительная информация
- **Безопасность:**
- Не храните пароли в открытом виде в файлах или скриптах. Использование файла окружения с ограниченными правами доступа помогает защитить конфиденциальные данные.
- **Настройка логирования:**
- Вы можете изменить уровень детализации логов, указав параметр `--log-level`. Для отладки используйте уровень `DEBUG`.
- **Остановка службы:**
```bash
sudo systemctl stop myfabric.service
```
- **Перезапуск службы:**
```bash
sudo systemctl restart myfabric.service
```
- **Просмотр статуса службы:**
```bash
sudo systemctl status myfabric.service
```
## Связь с поддержкой
Если у вас возникли вопросы или проблемы с использованием программы, пожалуйста, свяжитесь с поддержкой MyFabric.
---
**Примечание:** Убедитесь, что все команды и пути соответствуют вашей системе и настройкам. При необходимости, адаптируйте инструкции под вашу конкретную среду.
Raw data
{
"_id": null,
"home_page": "https://github.com/myfabric-ru/ws-connector",
"name": "myfabric-connector",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": null,
"keywords": null,
"author": "Khonik",
"author_email": "khonikdev@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/f8/97/6da25fd5336300e8d9fdcbbac3415fe0a83c95cfe78990b500ea45483a7e/myfabric_connector-0.1.32.tar.gz",
"platform": null,
"description": "# MyFabric\n\n\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0434\u043b\u044f \u043f\u0440\u043e\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 WebSocket Moonraker \u0432 CRM MyFabric.\n\n## \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430\n\n\u0422\u0435\u043a\u0443\u0449\u0430\u044f \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b `0.1.32` \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 `Python 3`.\n\n```bash\n# \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u043a\u0435\u0442 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440 \u0441 Moonraker\npip install myfabric-connector\n```\n\n## \u041a\u043e\u043c\u0430\u043d\u0434\u044b\n\n### \u0417\u0430\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\n\n\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443, \u0443\u043a\u0430\u0437\u0430\u0432 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 URL WebSocket Moonraker, \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u043f\u0440\u0438\u043d\u0442\u0435\u0440\u0430 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 MyFabric (channel_name), \u0430 \u0442\u0430\u043a\u0436\u0435 \u043b\u043e\u0433\u0438\u043d \u0438 \u043f\u0430\u0440\u043e\u043b\u044c \u043e\u0442 \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 MyFabric \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 `email:password`.\n\n```shell\n# myfabric-connect [--log-file LOG_FILE] [--log-level LOG_LEVEL] <moonraker_url> <channel_name> <login> <password>\n\nmyfabric-connect ws://localhost:7125/websocket my-printer-id user@example.com my_password\n```\n\n**\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435:** \u0412 URL Moonraker \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 `localhost` \u0438\u043b\u0438 IP-\u0430\u0434\u0440\u0435\u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 Moonraker, \u0432\u043c\u0435\u0441\u0442\u043e `0.0.0.0`, \u0442\u0430\u043a \u043a\u0430\u043a `0.0.0.0` \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u043c \u0430\u0434\u0440\u0435\u0441\u043e\u043c \u0434\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a\u043b\u0438\u0435\u043d\u0442\u0430.\n\n\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043e\u043f\u0446\u0438\u0438:\n\n- `--log-file`: \u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043f\u0443\u0442\u044c \u043a \u0444\u0430\u0439\u043b\u0443 \u043b\u043e\u0433\u043e\u0432. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e: `/var/log/myfabric/myfabric.log`.\n \n- `--log-level`: \u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f: `DEBUG`, `INFO`, `WARNING`, `ERROR`, `CRITICAL`. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e: `INFO`.\n\n### \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 \u043f\u0430\u043a\u0435\u0442\u0430\n\n```shell\nmyfabric-connect --version\n```\n\n## \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430\n\n\u0427\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043b\u0441\u044f \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0432 \u0444\u043e\u043d\u043e\u0432\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435, \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0441\u043b\u0443\u0436\u0431\u0443 systemd.\n\n### \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0441\u043b\u0443\u0436\u0431\u044b systemd (\u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0435\u0441\u043b\u0438 \u043d\u0430 1 \u0445\u043e\u0441\u0442\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d 1 \u043f\u0440\u0438\u043d\u0442\u0435\u0440)\n\n1. **\u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0444\u0430\u0439\u043b \u0441\u043b\u0443\u0436\u0431\u044b**\n\n \u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0444\u0430\u0439\u043b `myfabric.service` \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 `/etc/systemd/system/`:\n\n ```ini\n [Unit]\n Description=MyFabric Connector Service\n After=network.target\n\n [Service]\n Type=simple\n User=klipper\n EnvironmentFile=/etc/myfabric/myfabric.conf\n ExecStart=/usr/local/bin/myfabric-connect $MOONRAKER_URL $CHANNEL_NAME $LOGIN $PASSWORD --log-file $LOG_FILE --log-level $LOG_LEVEL\n Restart=on-failure\n RestartSec=5s\n StandardOutput=journal\n StandardError=journal\n\n [Install]\n WantedBy=multi-user.target\n ```\n\n **\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u044f:**\n\n - \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u043f\u0443\u0442\u044c \u043a \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u043e\u043c\u0443 \u0444\u0430\u0439\u043b\u0443 `myfabric-connect` \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0435\u043d. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043f\u0443\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 `which myfabric-connect`.\n - \u0417\u0430\u043c\u0435\u043d\u0438\u0442\u0435 `User` \u043d\u0430 \u0438\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u043e\u0442 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0434\u043e\u043b\u0436\u0435\u043d \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, `klipper`).\n - \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u0430 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0434\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0430\u0440\u043e\u043b\u0438) \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u043e\u0442 \u0444\u0430\u0439\u043b\u0430 \u0441\u043b\u0443\u0436\u0431\u044b.\n\n2. **\u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0444\u0430\u0439\u043b \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f**\n\n \u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0444\u0430\u0439\u043b `/etc/myfabric/myfabric.conf` \u0438 \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0432 \u043d\u0435\u0433\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0441\u0442\u0440\u043e\u043a\u0438:\n\n ```bash\n MOONRAKER_URL=ws://localhost:7125/websocket\n CHANNEL_NAME=my-printer-id\n LOGIN=user@example.com\n PASSWORD=my_password\n LOG_FILE=/var/log/myfabric/myfabric.log\n LOG_LEVEL=INFO\n ```\n\n **\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u043f\u0440\u0430\u0432\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0444\u0430\u0439\u043b\u0443:**\n\n ```bash\n sudo chown root:root /etc/myfabric/myfabric.conf\n sudo chmod 600 /etc/myfabric/myfabric.conf\n ```\n\n3. **\u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0434\u043b\u044f \u043b\u043e\u0433\u043e\u0432**\n\n ```bash\n sudo mkdir -p /var/log/myfabric\n sudo chown klipper:klipper /var/log/myfabric\n ```\n\n \u0417\u0430\u043c\u0435\u043d\u0438\u0442\u0435 `klipper:klipper` \u043d\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438 \u0433\u0440\u0443\u043f\u043f\u0443, \u043e\u0442 \u0438\u043c\u0435\u043d\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0443\u0436\u0431\u0430.\n\n4. **\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u0438 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u0435 \u0441\u043b\u0443\u0436\u0431\u0443**\n\n ```bash\n # \u041f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e systemd\n sudo systemctl daemon-reload\n\n # \u0412\u043a\u043b\u044e\u0447\u0438\u0442\u0435 \u0441\u043b\u0443\u0436\u0431\u0443 \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b\n sudo systemctl enable myfabric.service\n\n # \u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u0441\u043b\u0443\u0436\u0431\u0443\n sudo systemctl start myfabric.service\n\n # \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u0441\u0442\u0430\u0442\u0443\u0441 \u0441\u043b\u0443\u0436\u0431\u044b\n sudo systemctl status myfabric.service\n ```\n\n### \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0441\u043b\u0443\u0436\u0431\u044b systemd (\u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0435\u0441\u043b\u0438 \u043d\u0430 1 \u0445\u043e\u0441\u0442\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043e \u0431\u043e\u043b\u0435\u0435 1 \u043f\u0440\u0438\u043d\u0442\u0435\u0440\u0430)\n\n1. **\u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0444\u0430\u0439\u043b \u0441\u043b\u0443\u0436\u0431\u044b**\n\n \u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0444\u0430\u0439\u043b `myfabric_1.service` \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 `/etc/systemd/system/`:\n\n ```ini\n [Unit]\n Description=MyFabric Connector Service\n After=network.target\n\n [Service]\n Type=simple\n User=klipper\n EnvironmentFile=/etc/myfabric/myfabric_1.conf\n ExecStart=/usr/local/bin/myfabric-connect $MOONRAKER_URL $CHANNEL_NAME $LOGIN $PASSWORD --log-file $LOG_FILE --log-level $LOG_LEVEL\n Restart=on-failure\n RestartSec=5s\n StandardOutput=journal\n StandardError=journal\n\n [Install]\n WantedBy=multi-user.target\n ```\n\n **\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u044f:**\n\n - \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u043f\u0443\u0442\u044c \u043a \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u043e\u043c\u0443 \u0444\u0430\u0439\u043b\u0443 `myfabric-connect` \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0435\u043d. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043f\u0443\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 `which myfabric-connect`.\n - \u0417\u0430\u043c\u0435\u043d\u0438\u0442\u0435 `User` \u043d\u0430 \u0438\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u043e\u0442 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0434\u043e\u043b\u0436\u0435\u043d \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, `klipper`).\n - \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u0430 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0434\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0430\u0440\u043e\u043b\u0438) \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u043e\u0442 \u0444\u0430\u0439\u043b\u0430 \u0441\u043b\u0443\u0436\u0431\u044b.\n\n2. **\u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0444\u0430\u0439\u043b \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f**\n\n **\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u0431\u043e\u043b\u0435\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043d\u0442\u0435\u0440\u0430, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u043a \u043e\u0434\u043d\u043e\u043f\u043b\u0430\u0442\u043d\u0438\u043a\u0443, \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0440\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f**\n \u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0444\u0430\u0439\u043b `/etc/myfabric/myfabric_1.conf` \u0438 \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0432 \u043d\u0435\u0433\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0441\u0442\u0440\u043e\u043a\u0438:\n\n ```bash\n MOONRAKER_URL=ws://localhost:7125/websocket\n CHANNEL_NAME=my-printer-id\n LOGIN=user@example.com\n PASSWORD=my_password\n LOG_FILE=/var/log/myfabric/myfabric_1.log\n LOG_LEVEL=INFO\n ```\n\n **\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u043f\u0440\u0430\u0432\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0444\u0430\u0439\u043b\u0443:**\n\n ```bash\n sudo chown root:root /etc/myfabric/myfabric_1.conf\n sudo chmod 600 /etc/myfabric/myfabric_1.conf\n ```\n\n3. **\u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0434\u043b\u044f \u043b\u043e\u0433\u043e\u0432**\n\n ```bash\n sudo mkdir -p /var/log/myfabric\n sudo chown klipper:klipper /var/log/myfabric\n ```\n\n \u0417\u0430\u043c\u0435\u043d\u0438\u0442\u0435 `klipper:klipper` \u043d\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438 \u0433\u0440\u0443\u043f\u043f\u0443, \u043e\u0442 \u0438\u043c\u0435\u043d\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0443\u0436\u0431\u0430.\n\n4. **\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u0438 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u0435 \u0441\u043b\u0443\u0436\u0431\u0443**\n\n ```bash\n # \u041f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e systemd\n sudo systemctl daemon-reload\n\n # \u0412\u043a\u043b\u044e\u0447\u0438\u0442\u0435 \u0441\u043b\u0443\u0436\u0431\u0443 \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b\n sudo systemctl enable myfabric_1.service\n\n # \u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u0441\u043b\u0443\u0436\u0431\u0443\n sudo systemctl start myfabric_1.service\n\n # \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u0441\u0442\u0430\u0442\u0443\u0441 \u0441\u043b\u0443\u0436\u0431\u044b\n sudo systemctl status myfabric_1.service\n ```\n\u0414\u043b\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u043f\u0440\u0438\u043d\u0442\u0435\u0440\u0430, \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f, \u043c\u0435\u043d\u044f\u044f _1 (\u043f\u043e\u0440\u044f\u0434\u043a\u043e\u0432\u044b\u0439 \u043d\u043e\u043c\u0435\u0440) \u0438 \u043f\u043e\u0440\u0442 \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 moonraker (\u043e\u0431\u044b\u0447\u043d\u043e \u044d\u0442\u043e \u043f\u043e\u0440\u0442\u044b \u043f\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0443 7125, 7126 \u0438 \u0442\u0434)\n\n\n## \u041b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u044b\n\n\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0432\u0435\u0434\u0435\u0442 \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 \u0444\u0430\u0439\u043b `/var/log/myfabric/myfabric.log`.\n\n- **\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u043b\u043e\u0433\u043e\u0432 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438:**\n\n ```bash\n tail -f /var/log/myfabric/myfabric.log\n ```\n\n- **\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 `journalctl`:**\n\n \u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u044b\u0432\u043e\u0434\u0430 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u0436\u0443\u0440\u043d\u0430\u043b, \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0440\u043e\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u043b\u043e\u0433\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u044b:\n\n ```bash\n sudo journalctl -u myfabric.service -f\n ```\n\n**\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435:** \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c, \u043e\u0442 \u0438\u043c\u0435\u043d\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0443\u0436\u0431\u0430, \u0438\u043c\u0435\u0435\u0442 \u043f\u0440\u0430\u0432\u0430 \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u0444\u0430\u0439\u043b \u043b\u043e\u0433\u043e\u0432.\n\n## \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b\n\n### \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u0430\n\n```shell\nklipper@orangepi3-lts-11-12:~$ myfabric-connect --version\nmyfabric-connect: command not found\n```\n\n**\u0420\u0435\u0448\u0435\u043d\u0438\u0435:**\n\n- \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u043f\u0430\u043a\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0432 `$PATH`.\n \n- \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435, \u0433\u0434\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0439 \u0444\u0430\u0439\u043b:\n\n ```bash\n which myfabric-connect\n ```\n\n- \u0415\u0441\u043b\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u0430, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0441 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u043f\u0430\u043a\u0435\u0442\u0430\u043c\u0438 Python \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f `$PATH`:\n\n ```bash\n export PATH=$PATH:~/.local/bin\n ```\n\n- \u0418\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043f\u043e\u043b\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u043a \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u043e\u043c\u0443 \u0444\u0430\u0439\u043b\u0443:\n\n ```shell\n /home/klipper/.local/bin/myfabric-connect ws://localhost:7125/websocket my-printer-id user@example.com:my_password\n ```\n\n### \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0441 \u043f\u0440\u0430\u0432\u0430\u043c\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u0430\n\n- **\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435:**\n \n \u041e\u0448\u0438\u0431\u043a\u0438, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u044b\u043c\u0438 \u043f\u0440\u0430\u0432\u0430\u043c\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0444\u0430\u0439\u043b\u0430\u043c \u0438\u043b\u0438 \u0441\u0435\u0442\u0435\u0432\u044b\u043c \u043f\u043e\u0440\u0442\u0430\u043c.\n\n- **\u0420\u0435\u0448\u0435\u043d\u0438\u0435:**\n\n - \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c, \u043e\u0442 \u0438\u043c\u0435\u043d\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0443\u0436\u0431\u0430, \u0438\u043c\u0435\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043f\u0440\u0430\u0432\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430.\n - \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u043f\u0440\u0430\u0432\u0430 \u043d\u0430 \u0444\u0430\u0439\u043b\u044b \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0438 \u043b\u043e\u0433\u043e\u0432.\n - \u0415\u0441\u043b\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e, \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u0442\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u043c\u0430\u043d\u0434 `chown` \u0438 `chmod`.\n\n### \u041e\u0448\u0438\u0431\u043a\u0438 \u043f\u0440\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u043a Moonraker\n\n- **\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435:**\n \n \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0441 Moonraker.\n\n- **\u0420\u0435\u0448\u0435\u043d\u0438\u0435:**\n\n - \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e Moonraker \u0437\u0430\u043f\u0443\u0449\u0435\u043d \u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043f\u043e \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u043c\u0443 \u0430\u0434\u0440\u0435\u0441\u0443 \u0438 \u043f\u043e\u0440\u0442\u0443.\n - \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044f URL Moonraker \u0432 \u0444\u0430\u0439\u043b\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0438\u043b\u0438 \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b.\n - \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u043d\u0435\u0442 \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439 \u0438\u043b\u0438 \u0431\u0440\u0430\u043d\u0434\u043c\u0430\u0443\u044d\u0440\u043e\u0432, \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u044e\u0449\u0438\u0445 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435.\n\n### \u041e\u0448\u0438\u0431\u043a\u0438 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0432 MyFabric\n\n- **\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435:**\n \n \u0412 \u043b\u043e\u0433\u0430\u0445 \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043f\u0440\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u043a MyFabric.\n\n- **\u0420\u0435\u0448\u0435\u043d\u0438\u0435:**\n\n - \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0445 \u0443\u0447\u0435\u0442\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 (email \u0438 \u043f\u0430\u0440\u043e\u043b\u044c).\n - \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0443\u0447\u0435\u0442\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u0430\u043a\u0442\u0438\u0432\u043d\u0430 \u0438 \u0438\u043c\u0435\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u043c \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c.\n - \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0432\u043e\u0439\u0442\u0438 \u0432 MyFabric \u0447\u0435\u0440\u0435\u0437 \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0441 \u044d\u0442\u0438\u043c\u0438 \u0436\u0435 \u0443\u0447\u0435\u0442\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438, \u0447\u0442\u043e\u0431\u044b \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f \u0432 \u0438\u0445 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u0438.\n\n## \u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b\n\n\u0427\u0442\u043e\u0431\u044b \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0434\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438, \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u0443:\n\n```bash\npip install --upgrade myfabric-connector\n```\n\n**\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438:**\n\n```bash\nmyfabric-connect --version\n```\n\n## \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f\n\n- **\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c:**\n\n - \u041d\u0435 \u0445\u0440\u0430\u043d\u0438\u0442\u0435 \u043f\u0430\u0440\u043e\u043b\u0438 \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u043c \u0432\u0438\u0434\u0435 \u0432 \u0444\u0430\u0439\u043b\u0430\u0445 \u0438\u043b\u0438 \u0441\u043a\u0440\u0438\u043f\u0442\u0430\u0445. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u0430 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0441 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u044b\u043c\u0438 \u043f\u0440\u0430\u0432\u0430\u043c\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0437\u0430\u0449\u0438\u0442\u0438\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0434\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435.\n\n- **\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f:**\n\n - \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0434\u0435\u0442\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043b\u043e\u0433\u043e\u0432, \u0443\u043a\u0430\u0437\u0430\u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 `--log-level`. \u0414\u043b\u044f \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0443\u0440\u043e\u0432\u0435\u043d\u044c `DEBUG`.\n\n- **\u041e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0441\u043b\u0443\u0436\u0431\u044b:**\n\n ```bash\n sudo systemctl stop myfabric.service\n ```\n\n- **\u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a \u0441\u043b\u0443\u0436\u0431\u044b:**\n\n ```bash\n sudo systemctl restart myfabric.service\n ```\n\n- **\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u0441\u0442\u0430\u0442\u0443\u0441\u0430 \u0441\u043b\u0443\u0436\u0431\u044b:**\n\n ```bash\n sudo systemctl status myfabric.service\n ```\n\n## \u0421\u0432\u044f\u0437\u044c \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439\n\n\u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0438 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u0438\u043b\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0441\u0432\u044f\u0436\u0438\u0442\u0435\u0441\u044c \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 MyFabric.\n\n---\n\n**\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435:** \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0432\u0441\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0438 \u043f\u0443\u0442\u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u0432\u0430\u0448\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c. \u041f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438, \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u0443\u0439\u0442\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043f\u043e\u0434 \u0432\u0430\u0448\u0443 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u0443\u044e \u0441\u0440\u0435\u0434\u0443.\n",
"bugtrack_url": null,
"license": null,
"summary": "\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0434\u043b\u044f \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f 3D \u043f\u0440\u0438\u043d\u0442\u0435\u0440\u043e\u0432 \u0438 CRM MyFabric",
"version": "0.1.32",
"project_urls": {
"Homepage": "https://github.com/myfabric-ru/ws-connector"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "414b74a0cea155f198b259acb56b382579160294345b7fa9d5307292220af741",
"md5": "b346506eb0db3da370a8b0b347bc5531",
"sha256": "c177d21920a3ad5b5d38158826dfd1d8ef95e057b62eda9a276876bb8bac2477"
},
"downloads": -1,
"filename": "myfabric_connector-0.1.32-py3-none-any.whl",
"has_sig": false,
"md5_digest": "b346506eb0db3da370a8b0b347bc5531",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 8618,
"upload_time": "2024-10-22T18:30:54",
"upload_time_iso_8601": "2024-10-22T18:30:54.164176Z",
"url": "https://files.pythonhosted.org/packages/41/4b/74a0cea155f198b259acb56b382579160294345b7fa9d5307292220af741/myfabric_connector-0.1.32-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f8976da25fd5336300e8d9fdcbbac3415fe0a83c95cfe78990b500ea45483a7e",
"md5": "ebd8b226f54f5574e97aaa4819493ca8",
"sha256": "77dd7ca6755a03f72cc2222920a0b9b270e88dc043cd6f762f85f973148ae0cd"
},
"downloads": -1,
"filename": "myfabric_connector-0.1.32.tar.gz",
"has_sig": false,
"md5_digest": "ebd8b226f54f5574e97aaa4819493ca8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 10148,
"upload_time": "2024-10-22T18:30:56",
"upload_time_iso_8601": "2024-10-22T18:30:56.248165Z",
"url": "https://files.pythonhosted.org/packages/f8/97/6da25fd5336300e8d9fdcbbac3415fe0a83c95cfe78990b500ea45483a7e/myfabric_connector-0.1.32.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-22 18:30:56",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "myfabric-ru",
"github_project": "ws-connector",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [],
"lcname": "myfabric-connector"
}