
Как исправить ошибки подключения WebSocket Moonraker в Printer Tools
Устранение неполадок 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
Убедитесь, что Klippy действительно готов
Откройте тот же хост в браузере или в Mainsail либо Fluidd, если они у вас установлены. Если там тоже отображается Error или Shutdown, проблема в самом Klipper или в файле printer.cfg, а не в Printer Tools, и повторное подключение приложения не поможет, пока Klippy сам не восстановится.
- 2
Перепроверьте адрес хоста
Роутеры часто выдают новый локальный IP-адрес после перезагрузки. Проверьте текущий адрес устройства, на котором работает Moonraker, и обновите его в Printer Tools, если он изменился. Резервирование статического адреса для этого устройства в роутере предотвращает повторение этой проблемы.
- 3
Введите полный адрес для нестандартных настроек
Если Moonraker находится за HTTPS, нестандартным портом или обратным прокси, введите полный адрес именно так, как вы бы ввели его в браузере. Printer Tools формирует URL WebSocket на основе введённых данных, поэтому неполный или неверный адрес приведёт к сбою ещё до того, как соединение вообще достигнет Moonraker.
- 4
Укажите аутентификацию, требуемую вашей установкой
Если Moonraker требует ключ API, токен Bearer или Basic Auth, те же учётные данные нужно ввести в Printer Tools. Несовпадение приводит к немедленному закрытию WebSocket сразу после открытия, а не к блокировке самой первой попытки подключения.
- 5
Принудительно выполните чистое переподключение
Удалите и заново добавьте принтер или отключите и снова включите соединение, чтобы сбросить сокет с нуля, не дожидаясь автоматической повторной попытки. Это также очищает все запросы, оставшиеся в ожидании с предыдущей попытки подключения.
- 6
Исключите проблему на уровне сети
Гостевой Wi-Fi, изоляция клиентов, правила брандмауэра VLAN или активный профиль VPN могут блокировать доступ телефона к хосту принтера, даже если оба устройства показывают доступ в интернет. Проверьте подключение из того же сегмента сети, прежде чем предполагать, что проблема в самом Moonraker.
Статус Moonraker в 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, вариантами удалённого доступа и текущими ограничениями.


