Как исправить ошибки подключения WebSocket Moonraker в Printer Tools

Как исправить ошибки подключения WebSocket Moonraker в Printer Tools

автор FixoLab


Устранение неполадок WebSocket в Moonraker

Короткий ответ

Printer Tools поддерживает активное WebSocket-соединение с Moonraker по адресу ws(s)://<host>/websocket и автоматически переподключается каждые 5 секунд при разрыве связи. Большинство ошибок подключения возникает из-за недоступного хоста, изменившегося IP-адреса или того, что Klippy ещё не готов, а не из-за самого приложения. Проверка этих трёх моментов в первую очередь решает большинство случаев.

Что вам понадобится

  • Точный локальный IP-адрес или имя хоста, которое сейчас использует принтер с запущенным Moonraker
  • Подтверждение того, что Klippy показывает статус Ready, а не Error или Shutdown
  • Одна и та же сеть, доступная как с телефона или компьютера, так и с хоста принтера
  • Полный адрес, включая схему и порт, если ваша настройка использует HTTPS или обратный прокси
  • Любой ключ API Moonraker, токен Bearer или учётные данные Basic Auth, требуемые вашей установкой

Диагностика ошибки WebSocket в Moonraker

  1. 1

    Убедитесь, что Klippy действительно готов

    Откройте тот же хост в браузере или в Mainsail либо Fluidd, если они у вас установлены. Если там тоже отображается Error или Shutdown, проблема в самом Klipper или в файле printer.cfg, а не в Printer Tools, и повторное подключение приложения не поможет, пока Klippy сам не восстановится.

  2. 2

    Перепроверьте адрес хоста

    Роутеры часто выдают новый локальный IP-адрес после перезагрузки. Проверьте текущий адрес устройства, на котором работает Moonraker, и обновите его в Printer Tools, если он изменился. Резервирование статического адреса для этого устройства в роутере предотвращает повторение этой проблемы.

  3. 3

    Введите полный адрес для нестандартных настроек

    Если Moonraker находится за HTTPS, нестандартным портом или обратным прокси, введите полный адрес именно так, как вы бы ввели его в браузере. Printer Tools формирует URL WebSocket на основе введённых данных, поэтому неполный или неверный адрес приведёт к сбою ещё до того, как соединение вообще достигнет Moonraker.

  4. 4

    Укажите аутентификацию, требуемую вашей установкой

    Если Moonraker требует ключ API, токен Bearer или Basic Auth, те же учётные данные нужно ввести в Printer Tools. Несовпадение приводит к немедленному закрытию WebSocket сразу после открытия, а не к блокировке самой первой попытки подключения.

  5. 5

    Принудительно выполните чистое переподключение

    Удалите и заново добавьте принтер или отключите и снова включите соединение, чтобы сбросить сокет с нуля, не дожидаясь автоматической повторной попытки. Это также очищает все запросы, оставшиеся в ожидании с предыдущей попытки подключения.

  6. 6

    Исключите проблему на уровне сети

    Гостевой Wi-Fi, изоляция клиентов, правила брандмауэра VLAN или активный профиль VPN могут блокировать доступ телефона к хосту принтера, даже если оба устройства показывают доступ в интернет. Проверьте подключение из того же сегмента сети, прежде чем предполагать, что проблема в самом Moonraker.

Статус Moonraker в Printer Tools

Статус соединения Klipper и состояние переподключения в Printer ToolsСтатус соединения Klipper и состояние переподключения в Printer Tools

Панель Klipper отражает состояние WebSocket в реальном времени и обновляется автоматически, как только Moonraker снова становится доступен.

Что обеспечивает WebSocket-соединение

  • Состояние печати, прогресс, температуры и стандартные объекты Klipper передаются в реальном времени
  • Автоматическое переподключение каждые 5 секунд без необходимости заново открывать приложение
  • Heartbeat-сигнал, который поддерживает соединение активным при обычной работе в фоне
  • Проверка статуса Klippy, выполняемая сразу после каждого успешного подключения
  • Поддержка ключа API, токена Bearer или Basic Auth, если этого требует ваша настройка Moonraker

Что это не может исправить

  • Ошибку или состояние отключения Klippy нужно устранять в самом Klipper, а не через Printer Tools
  • Printer Tools не сможет подключиться к хосту, изменившему адрес, без обновления сохранённого IP принтера
  • Изоляция сети между телефоном и хостом принтера блокирует WebSocket независимо от настроек приложения
  • Уже запущенная печать продолжается на принтере, даже если приложение показывает статус «отключено»

Распространённые ошибки WebSocket

Printer Tools бесконечно остаётся в состоянии подключения

Убедитесь, что адрес хоста актуален и доступен, а сам Moonraker запущен. Если тот же адрес не работает и в браузере, проблема на стороне хоста принтера, а не в приложении.

Соединение устанавливается, а затем постоянно разрывается

Проверьте, не отключает ли сеть неактивных клиентов, например из-за функций энергосбережения Wi-Fi на некоторых роутерах, или нет ли цикла перезапуска Moonraker из-за ошибки конфигурации. Просмотрите журнал Moonraker на хосте принтера на предмет повторяющихся записей об отключении.

Mainsail или Fluidd подключаются, а Printer Tools нет

Используйте точно такой же адрес, включая схему и порт, который работает в браузере. Обратный прокси или сертификат HTTPS, который браузер принимает без предупреждений, всё равно может потребовать ручного ввода полного адреса в Printer Tools.

Klippy сразу после подключения показывает ошибку

Это означает, что сам WebSocket подключился успешно, а проблема находится в конфигурации самого Klipper. Исправьте указанную ошибку в printer.cfg и перезапустите Klipper из Moonraker, прежде чем ожидать, что Printer Tools покажет обычную панель.

Соединение работает дома, но не работает вне локальной сети

Прямое WebSocket-соединение с Moonraker работает только в пределах одной локальной сети. Используйте VPN обратно в домашнюю сеть или добавьте принтер через варианты удалённого доступа OctoEverywhere или Obico в Printer Tools, вместо того чтобы напрямую открывать доступ к Moonraker.

Повторное подключение вне вашей сети

Прямое WebSocket-соединение работает только тогда, когда телефон и хост принтера находятся в одной доступной сети. Для удалённого доступа используйте VPN обратно в эту сеть или подключите тот же принтер Klipper через OctoEverywhere или Obico в Printer Tools. Не пробрасывайте порт Moonraker напрямую на вашем роутере.

Часто задаваемые вопросы

Printer Tools использует WebSocket Moonraker или его REST API?

Printer Tools подключается через WebSocket JSON-RPC API Moonraker по адресу /websocket для получения телеметрии и управления в реальном времени, поэтому стабильный сетевой путь к этой конечной точке важнее успеха любого отдельного REST-запроса.

Как часто приложение повторяет попытку подключения после сбоя?

Каждые 5 секунд, автоматически, пока WebSocket снова не примет соединение. Ручного лимита попыток нет.

Останавливает ли потеря соединения печать?

Нет. Klipper продолжает печатать на самом принтере. Потеря WebSocket в Printer Tools означает лишь то, что приложение перестаёт получать обновления в реальном времени до повторного подключения.

Нужен ли мне запущенный Mainsail или Fluidd для этого?

Нет. Printer Tools общается с Moonraker напрямую. Mainsail и Fluidd полезны для сравнения поведения при диагностике, но ни один из них не обязателен.

Почему соединение работает по Wi-Fi, но не работает через мой VPN?

VPN, который не направляет трафик в диапазон локальных IP-адресов вашей домашней сети, не может напрямую подключиться к Moonraker. Используйте VPN, настроенный для доступа к этой сети, либо используйте OctoEverywhere или Obico.

Посмотреть полную совместимость с Klipper и Moonraker

Ознакомьтесь с поддерживаемыми функциями Moonraker, дополнительными требованиями к камере и Spoolman, вариантами удалённого доступа и текущими ограничениями.

Посмотреть совместимость с Klipper
Printer Tools
Printer Tools

Все ваши 3D-принтеры на одной панели

Следите за принтерами Bambu Lab, Klipper, OctoPrint, Creality, Snapmaker, Anycubic, Flashforge, Elegoo и Prusa в одном приложении

Доступно на Android, iPhone, iPad и Mac, с приложениями-компаньонами для Apple Watch и Wear OS и дополнительным удалённым доступом через VPN, OctoEverywhere или Obico

Printer Tools