Jak naprawić błędy połączenia WebSocket Moonrakera w Printer Tools

Jak naprawić błędy połączenia WebSocket Moonrakera w Printer Tools

autor FixoLab


Rozwiązywanie problemów z WebSocket Moonrakera

Krótka odpowiedź

Printer Tools utrzymuje aktywne połączenie WebSocket z Moonrakerem pod adresem ws(s)://<host>/websocket i automatycznie łączy się ponownie co 5 sekund, jeśli połączenie zostanie przerwane. Większość błędów połączenia wynika z niedostępnego hosta, zmienionego adresu IP lub Klippy, który nie jest jeszcze gotowy, a nie z samej aplikacji. Sprawdzenie tych trzech rzeczy w pierwszej kolejności rozwiązuje większość przypadków.

Czego potrzebujesz

  • Dokładnego lokalnego adresu IP lub nazwy hosta aktualnie używanej przez drukarkę z uruchomionym Moonrakerem
  • Potwierdzenia, że Klippy pokazuje status Ready, a nie Error lub Shutdown
  • Tej samej sieci dostępnej zarówno z telefonu lub komputera, jak i z hosta drukarki
  • Pełnego adresu, wraz ze schematem i portem, jeśli Twoja konfiguracja korzysta z HTTPS lub reverse proxy
  • Klucza API Moonrakera, tokenu Bearer lub danych uwierzytelniających Basic Auth wymaganych przez Twoją instalację

Diagnozowanie błędu WebSocket Moonrakera

  1. 1

    Potwierdź, że Klippy jest naprawdę gotowy

    Otwórz ten sam host w przeglądarce lub w Mainsail albo Fluidd, jeśli je zainstalowałeś. Jeśli Klippy pokazuje tam również Error lub Shutdown, problem leży w Klipperze lub Twoim pliku printer.cfg, a nie w Printer Tools, i ponowne łączenie aplikacji nie pomoże, dopóki sam Klippy się nie naprawi.

  2. 2

    Sprawdź ponownie adres hosta

    Routery często przydzielają nowy lokalny adres IP po restarcie. Sprawdź aktualny adres maszyny, na której działa Moonraker, i zaktualizuj go w Printer Tools, jeśli się zmienił. Zarezerwowanie statycznego adresu dla tego urządzenia w routerze zapobiega ponownemu wystąpieniu tego problemu.

  3. 3

    Wprowadź pełny adres w niestandardowych konfiguracjach

    Jeśli Moonraker działa za HTTPS, niestandardowym portem lub reverse proxy, wprowadź pełny adres dokładnie tak, jak wpisałbyś go w przeglądarce. Printer Tools buduje adres URL WebSocket na podstawie podanych danych, więc niepełny lub nieprawidłowy adres zawiedzie, zanim Moonraker zostanie w ogóle osiągnięty.

  4. 4

    Dopasuj uwierzytelnianie wymagane przez Twoją instalację

    Jeśli Moonraker wymaga klucza API, tokenu Bearer lub Basic Auth, te same dane uwierzytelniające muszą zostać wprowadzone w Printer Tools. Niezgodność powoduje natychmiastowe zamknięcie WebSocket po jego otwarciu, zamiast zablokowania początkowej próby połączenia.

  5. 5

    Wymuś czyste ponowne połączenie

    Usuń i dodaj ponownie drukarkę albo wyłącz i włącz połączenie, aby zresetować gniazdo od podstaw zamiast czekać na automatyczną ponowną próbę. To również czyści wszelkie oczekujące żądania pozostałe po poprzedniej próbie połączenia.

  6. 6

    Wyklucz problem z siecią

    Sieć Wi-Fi dla gości, izolacja klientów, reguły zapory VLAN lub aktywny profil VPN mogą blokować telefonowi dostęp do hosta drukarki, nawet gdy oba urządzenia pokazują dostęp do internetu. Przetestuj w tym samym segmencie sieci, zanim założysz, że problem leży w samym Moonrakerze.

Status Moonrakera w Printer Tools

Status połączenia Klippera i stan ponownego łączenia w Printer ToolsStatus połączenia Klippera i stan ponownego łączenia w Printer Tools

Panel Klippera odzwierciedla stan WebSocket na żywo i aktualizuje się automatycznie, gdy Moonraker znów staje się dostępny.

Co umożliwia połączenie WebSocket

  • Stan druku na żywo, postęp, temperatury i standardowe obiekty Klippera przesyłane w czasie rzeczywistym
  • Automatyczne ponowne łączenie co 5 sekund bez konieczności ponownego otwierania aplikacji
  • Sygnał heartbeat, który utrzymuje połączenie aktywne podczas normalnego użytkowania w tle
  • Sprawdzenie statusu Klippy wykonywane natychmiast po każdym udanym połączeniu
  • Obsługa klucza API, tokenu Bearer lub Basic Auth, gdy wymaga tego Twoja konfiguracja Moonrakera

Czego to nie naprawi

  • Błąd lub stan wyłączenia Klippy trzeba rozwiązać w samym Klipperze, a nie z poziomu Printer Tools
  • Printer Tools nie dotrze do hosta, który zmienił adres, bez zaktualizowania zapisanego IP drukarki
  • Izolacja sieciowa między telefonem a hostem drukarki blokuje WebSocket niezależnie od ustawień aplikacji
  • Trwający już wydruk kontynuuje się na drukarce, nawet gdy aplikacja pokazuje status rozłączony

Typowe błędy WebSocket

Printer Tools pozostaje w stanie łączenia w nieskończoność

Sprawdź, czy adres hosta jest aktualny i dostępny oraz czy sam Moonraker działa. Jeśli ten sam adres zawodzi też w przeglądarce, problem leży po stronie hosta drukarki, a nie aplikacji.

Połączenie otwiera się, a następnie wielokrotnie się rozłącza

Sprawdź, czy sieć nie rozłącza bezczynnych klientów, na przykład przez funkcje oszczędzania energii Wi-Fi niektórych routerów, lub czy nie występuje pętla restartów Moonrakera spowodowana błędem konfiguracji. Przejrzyj log Moonrakera na hoście drukarki pod kątem powtarzających się wpisów o rozłączeniu.

Mainsail lub Fluidd łączą się, ale Printer Tools nie

Użyj dokładnie tego samego adresu, wraz ze schematem i portem, który działa w przeglądarce. Reverse proxy lub certyfikat HTTPS akceptowany po cichu przez przeglądarkę może nadal wymagać ręcznego wprowadzenia pełnego adresu w Printer Tools.

Klippy pokazuje błąd natychmiast po połączeniu

Oznacza to, że sam WebSocket zadziałał, a problem leży wewnątrz konfiguracji Klippera. Popraw zgłoszony błąd w pliku printer.cfg i zrestartuj Klippera z poziomu Moonrakera, zanim spodziewasz się, że Printer Tools pokaże normalny panel.

Połączenie działa w domu, ale zawodzi poza siecią lokalną

Bezpośredni WebSocket Moonrakera działa tylko w tej samej sieci lokalnej. Użyj VPN prowadzącego z powrotem do sieci domowej lub dodaj drukarkę przez opcje zdalnego dostępu OctoEverywhere albo Obico w Printer Tools, zamiast bezpośrednio wystawiać Moonrakera na zewnątrz.

Ponowne łączenie spoza Twojej sieci

Bezpośredni WebSocket działa tylko wtedy, gdy telefon i host drukarki znajdują się w tej samej dostępnej sieci. W przypadku dostępu zdalnego użyj VPN prowadzącego z powrotem do tej sieci lub połącz tę samą drukarkę Klipper przez OctoEverywhere albo Obico w Printer Tools. Nie przekierowuj portu Moonrakera bezpośrednio na routerze.

Najczęściej zadawane pytania

Czy Printer Tools korzysta z WebSocket Moonrakera, czy z jego API REST?

Printer Tools łączy się przez API WebSocket JSON-RPC Moonrakera pod adresem /websocket w celu telemetrii i sterowania na żywo, dlatego stabilna ścieżka sieciowa do tego punktu końcowego liczy się bardziej niż powodzenie pojedynczego żądania REST.

Jak często aplikacja ponawia nieudane połączenie?

Co 5 sekund, automatycznie, aż WebSocket ponownie zaakceptuje połączenie. Nie ma ręcznego limitu prób.

Czy utrata połączenia zatrzymuje mój wydruk?

Nie. Klipper kontynuuje drukowanie na samej drukarce. Utrata WebSocket przez Printer Tools oznacza jedynie, że aplikacja przestaje otrzymywać aktualizacje na żywo, dopóki nie połączy się ponownie.

Czy do działania tego potrzebuję uruchomionego Mainsail lub Fluidd?

Nie. Printer Tools komunikuje się bezpośrednio z Moonrakerem. Mainsail i Fluidd są przydatne do porównywania zachowania podczas rozwiązywania problemów, ale żaden z nich nie jest wymagany.

Dlaczego połączenie działa przez Wi-Fi, ale nie przez moją VPN?

VPN, która nie kieruje ruchu do lokalnego zakresu IP Twojej sieci domowej, nie może bezpośrednio dotrzeć do Moonrakera. Użyj VPN skonfigurowanej tak, aby docierała do tej sieci, albo skorzystaj z OctoEverywhere lub Obico.

Zobacz pełną kompatybilność Klippera i Moonrakera

Sprawdź obsługiwane funkcje Moonrakera, opcjonalne wymagania dotyczące kamery i Spoolmana, opcje zdalnego dostępu oraz aktualne ograniczenia.

Zobacz kompatybilność Klippera
Printer Tools
Printer Tools

Wszystkie drukarki 3D w jednym panelu

Monitoruj drukarki Bambu Lab, Klipper, OctoPrint, Creality, Snapmaker, Anycubic, Flashforge, Elegoo i Prusa w jednej aplikacji

Dostępna na Androida, iPhone'a, iPada i Maca, z aplikacjami towarzyszącymi na Apple Watch i Wear OS oraz opcjonalnym dostępem zdalnym przez VPN, OctoEverywhere lub Obico

Printer Tools