Printer ToolsでMoonraker WebSocket接続エラーを修正する方法

Printer ToolsでMoonraker WebSocket接続エラーを修正する方法

著者 FixoLab


Moonraker WebSocketのトラブルシューティング

結論

Printer ToolsはMoonrakerに対してws(s)://<host>/websocketで常時WebSocket接続を維持し、切断された場合は5秒ごとに自動的に再接続します。接続エラーのほとんどは、ホストに到達できない、IPアドレスが変わった、またはKlippyがまだ準備できていないことが原因で、アプリ自体の問題ではありません。まずこの3点を確認すれば、大半のケースは解決します。

必要なもの

  • Moonrakerを実行しているプリンターが現在使用しているローカルIPアドレスまたはホスト名
  • KlippyがError(エラー)やShutdown(シャットダウン)ではなくReady(準備完了)を表示していることの確認
  • スマートフォンやパソコンとプリンターのホストの両方から到達できる同一ネットワーク
  • HTTPSやリバースプロキシを使用する構成の場合は、スキームとポートを含む完全なアドレス
  • お使いの環境で必要なMoonrakerのAPIキー、Bearerトークン、またはBasic認証の資格情報

Moonraker WebSocketエラーを診断する

  1. 1

    Klippyが実際にReadyになっているか確認する

    ブラウザで同じホストを開くか、MainsailやFluiddをインストールしている場合はそちらで確認してください。そこでもKlippyがErrorやShutdownを表示する場合、問題はKlipperまたはprinter.cfgにあり、Printer Toolsの問題ではありません。Klippy自体が回復するまで、アプリを再接続しても解決しません。

  2. 2

    ホストのアドレスを再確認する

    ルーターは再起動後に新しいローカルIPアドレスを割り当てることがよくあります。Moonrakerを実行しているマシンの現在のアドレスを確認し、変更されていればPrinter Tools側でも更新してください。そのデバイスにルーター側で固定IPアドレスを予約しておくと、この問題の再発を防げます。

  3. 3

    カスタム構成では完全なアドレスを入力する

    MoonrakerがHTTPSの背後、非標準ポート、またはリバースプロキシ経由で動作している場合は、ブラウザに入力するのと同じ形式で完全なアドレスを入力してください。Printer Toolsは入力された情報からWebSocketのURLを組み立てるため、アドレスが不完全または誤っているとMoonrakerに到達する前に失敗します。

  4. 4

    環境が要求する認証情報を一致させる

    MoonrakerがAPIキー、Bearerトークン、またはBasic認証を要求する場合、Printer Toolsにも同じ資格情報を入力する必要があります。資格情報が一致しないと、最初の接続試行がブロックされるのではなく、WebSocketが開いた直後に閉じられます。

  5. 5

    クリーンな再接続を強制する

    自動再試行を待つ代わりに、プリンターを削除して再度追加するか、接続をオフ・オンに切り替えてソケットを最初からリセットしてください。これにより、前回の接続試行から残っていた保留中のリクエストもクリアされます。

  6. 6

    ネットワーク経路の問題を除外する

    ゲスト用Wi-Fi、クライアント分離、VLANのファイアウォールルール、有効なVPNプロファイルは、両方のデバイスがインターネットに接続できているように見えても、スマートフォンがプリンターのホストに到達するのを妨げることがあります。Moonraker自体に問題があると判断する前に、同じネットワークセグメントからテストしてください。

Printer Tools内のMoonraker接続状態

Printer Tools内のKlipper接続状態と再接続の様子Printer Tools内のKlipper接続状態と再接続の様子

Klipperダッシュボードはリアルタイムのウェブソケット状態を反映し、Moonrakerに再び到達できるようになると自動的に更新されます。

WebSocket接続が可能にすること

  • 印刷状態、進捗、温度、標準的なKlipperオブジェクトのリアルタイム配信
  • アプリを再度開く必要のない、5秒ごとの自動再接続
  • 通常のバックグラウンド使用中も接続を維持するハートビート
  • 接続成功後すぐに実行されるKlippyステータスチェック
  • Moonraker構成が必要とする場合のAPIキー、Bearerトークン、Basic認証への対応

これでは解決できないこと

  • Klippyのエラーやシャットダウン状態は、Printer Toolsではなく Klipper 自体で解決する必要があります
  • アドレスが変わったホストには、プリンターに保存されたIPを更新しない限りPrinter Toolsは到達できません
  • スマートフォンとプリンターのホスト間のネットワーク分離は、アプリの設定にかかわらずWebSocketをブロックします
  • すでに実行中の印刷は、アプリが切断中と表示していてもプリンター側で継続されます

よくあるWebSocketエラー

Printer Toolsが接続中のまま止まってしまう

ホストのアドレスが最新かつ到達可能であること、Moonraker自体が起動していることを確認してください。同じアドレスがブラウザでも失敗する場合、問題はアプリではなくプリンターのホスト側にあります。

接続が開いた後、繰り返し切断される

一部のルーターのWi-Fi省電力機能のように、アイドル状態のクライアントを切断するネットワークがないか、または設定エラーによるMoonrakerの再起動ループがないか確認してください。プリンターのホスト上でMoonrakerのログを確認し、繰り返される切断の記録がないか調べてください。

MainsailやFluiddは接続できるのにPrinter Toolsは接続できない

ブラウザで機能しているのと全く同じアドレス(スキームとポートを含む)を使用してください。ブラウザが黙って受け入れているリバースプロキシやHTTPS証明書でも、Printer Toolsでは完全なアドレスを手動で入力する必要がある場合があります。

接続直後にKlippyがエラーを表示する

これはWebSocket自体は成功しており、問題がKlipperの構成内にあることを意味します。printer.cfg内で報告されたエラーを修正し、MoonrakerからKlipperを再起動してから、Printer Toolsが通常のダッシュボードを表示することを期待してください。

自宅では接続できるのに、ローカルネットワーク外では失敗する

MoonrakerへのWebSocket直接接続は、同一のローカルネットワーク上でのみ機能します。Moonrakerを直接ルーターで公開するのではなく、自宅ネットワークへのVPNを使用するか、Printer Tools内のOctoEverywhereまたはObicoのリモートアクセスオプションでプリンターを追加してください。

ネットワーク外からの再接続について

WebSocketの直接接続は、スマートフォンとプリンターのホストが到達可能な同一ネットワークを共有している間のみ機能します。リモートアクセスには、自宅ネットワークへのVPNを使用するか、Printer Tools内のOctoEverywhereまたはObico経由で同じKlipperプリンターを接続してください。Moonrakerのポートをルーターで直接転送しないでください。

よくある質問

Printer ToolsはMoonrakerのWebSocketとREST APIのどちらを使用しますか?

Printer Toolsは、リアルタイムのテレメトリと制御のために/websocketにあるMoonrakerのWebSocket JSON-RPC APIを通じて接続します。そのため、単一のRESTリクエストが成功するかどうかよりも、そのエンドポイントへの安定したネットワーク経路の方が重要です。

接続に失敗した場合、アプリはどのくらいの頻度で再試行しますか?

WebSocketが再び接続を受け入れるまで、5秒ごとに自動的に再試行します。手動での再試行回数の上限はありません。

接続が切れると印刷は停止しますか?

いいえ。Klipperはプリンター自体で印刷を続けます。Printer ToolsがWebSocketを失うことは、再接続するまでアプリがリアルタイムの更新を受信しなくなることを意味するだけです。

これを機能させるためにMainsailやFluiddを実行しておく必要がありますか?

いいえ。Printer Toolsは Moonraker と直接通信します。MainsailとFluiddはトラブルシューティング中に動作を比較するのに役立ちますが、どちらも必須ではありません。

Wi-Fiでは接続できるのに、VPN経由では接続できないのはなぜですか?

自宅ネットワークのローカルIP範囲にトラフィックをルーティングしないVPNでは、Moonrakerに直接到達できません。そのネットワークに到達できるように構成されたVPNを使用するか、代わりにOctoEverywhereまたはObicoを使用してください。

Klipperおよび Moonraker の完全な互換性を確認する

対応するMoonrakerの機能、カメラおよびSpoolmanのオプション要件、リモートアクセスの選択肢、現在の制限事項を確認できます。

Klipperの互換性を見る
Printer Tools
Printer Tools

すべての3Dプリンターを1つのダッシュボードで

1つのアプリからBambu Lab、Klipper、OctoPrint、Creality、Snapmaker、Anycubic、Flashforge、Elegoo、Prusaのプリンターを監視

Android、iPhone、iPad、Macに対応し、Apple WatchとWear OSのコンパニオンアプリ、VPN、OctoEverywhere、Obicoによるオプションのリモートアクセスも利用可能

Printer Tools