# 探索

探索ツールは、メッシュネットワークが**どのように**つながっているか(どのノードが互いに受信できるか、メッセージがどの経路を通るか、ボトルネックや弱いリンクがどこにあるか)を把握するのに役立ちます。

アプリは、互いを補完する 2 つの方法を提供します:

- **ローカルメッシュ探索(スキャナー)**:接続中の無線機をさまざまな LoRa プリセットで順に切り替え、それぞれで受信し、あなたの場所でどのプリセットが最も性能が良いかをランク付けする自動モードです。
- **手動での探索**:ルート追跡、隣接ノード情報、ノードリスト。特定の経路やトポロジーを調べるために、いつでも使えます。

-------------- | ----------------------------------------------------------------------------------------------------- |
 **LoRa プリセットの選択** | スキャンするプリセットを 1 つ以上選択します。 探索は、選択した各プリセットに順番に滞在します。                                                     |
 **滞在時間**          | 各プリセットで受信する時間。 1、5、15、30、45、60、90、120、180 分から選択します。 滞在時間を長くすると、より多くのパケットを収集してより明確な状況が分かりますが、時間もかかります。 |
 **画面をスリープさせない**   | 長いスキャン中に画面がスリープするのを防ぐ、任意のトグルです。                                                                       |

「**開始**」ボタンは、スキャンを実行できるようになるまで(理由の説明とともに)無効のままです。 無効になる主な理由:

- デバイスが**接続されていない**。
- スキャンする**プリセットが選択されていない**。
- 選択したプリセットが、ハードウェアが対応していない **2.4 GHz** を使用している。

### リアルタイムの進行状況

スキャンの実行中、探索は現在の段階を表示します:

 段階                                               | 実行中の内容                                            |
 ------------------------------------------------ | ------------------------------------------------- |
 **準備中**                                          | 現在の構成を保存し、スキャンの準備をしています。                          |
 **\<preset\> に切り替え中** | テストする次のプリセットに無線機を切り替えています。                        |
 **再接続中**                                         | プリセット変更後に接続を再確立しています。                             |
 **滞在**                                           | 現在のプリセットで受信してパケットを収集しており、次のステップまでのカウントダウンが表示されます。 |
 **分析**                                           | 収集したパケットを処理し、プリセットをランク付けしています。                    |
 **復元中**                                          | 元の LoRa 構成に戻しています。                                |

![現在のプリセットの残り時間を示す滞在のカウントダウン](../../assets/screenshots/discovery_dwell_progress.png)

### 結果の見方

スキャンが完了すると、探索はテストした各プリセットのプリセット別の結果カードと、全体の概要を表示します。

![ランキングと収集したメトリクスを含むプリセット別の結果カード](../../assets/screenshots/discovery_preset_result.png)

メトリクスには次が含まれます:

 メトリクス      | 分かること                              |
 ---------- | ---------------------------------- |
 RF の健全性    | そのプリセットにおける無線環境の総合的な品質。            |
 チャンネル利用率   | 滞在中に電波がどれだけ混雑していたか。                |
 電波利用時間     | 観測された送信時間。                         |
 直接受信と中継ノード | 直接受信できたメッシュノードと、中継経由のノードの数。        |
 不良/重複パケット  | 破損したパケットと繰り返されたパケットの数で、輻輳や干渉を示します。 |

結果から利用できる追加機能:

- **スキャン履歴**:後で見直せる保存済みのセッション。過去のスキャンを表示または削除できます。
- **探索マップ**:スキャン中に見つかったノードのマップ。
- **レポートのエクスポート**:Android では PDF として、他のプラットフォームではテキストとしてレポートをエクスポートします。

> 💡 **ヒント:** Android では、探索が結果のオンデバイス AI 要約(Gemini Nano)を生成できます。 オンデバイスのモデルが利用できない場合は、代わりにアルゴリズムによる要約が使われるため、常にスキャンの読みやすい解釈が得られます。

## 手動での探索

以下のツールは、ノードリストとノードの詳細画面からいつでも利用できます。 完全なスキャンと併用して、またはその代わりに、特定の経路を調べてトポロジーの全体像を組み立てるのに使えます。

## ルート追跡

ルート追跡は、メッセージが自分のノードから、メッシュ上の他の任意のノードへ通る正確な経路を明らかにします。 接続の問題をデバッグするのに、最も役立つツールです。

### ルート追跡を実行する

1. 「**ノード**」に移動し、追跡したいノードをタップします。
2. ノードの詳細画面で、「**ルート追跡**」をタップします。
3. アプリがルート追跡の要求を送信し、応答を待ちます。
4. 結果には、各ホップが順番に、各段階の信号品質とともに表示されます。

### 結果の見方

ルート追跡の結果は次のように表示されます:

```
自分 → ノード A (SNR: 8.5, RSSI: -95) → ノード B (SNR: 5.2, RSSI: -108) → ターゲット
```

各ホップは、メッセージを転送した中継ノードを表します。 各ホップの SNR と RSSI の値から、その特定の区間のリンク品質が分かります。

 確認すべき点                         | 意味                                   |
 ------------------------------ | ------------------------------------ |
 すべてのホップが良い SNR(−7 dB 以上、緑)を示す  | 健全な経路。メッセージが確実に流れます                  |
 1 つのホップが悪い SNR(−15 dB 未満、赤)を示す | 弱いリンク。この中継区間は脆弱です                    |
 ホップ数が多い(4 以上)                  | 長い経路。短くするためにノードの再配置を検討してください         |
 再試行で経路が変わる                     | メッシュが適応しています。複数の経路が存在します(これは良いことです!) |

> 💡 **ヒント:** ルート追跡を数分間かけて何度か実行してください。 経路が変わる場合、メッシュには冗長な経路があり、よくつながったネットワークの兆候です。

### ルート追跡によるトラブルシューティング

- **「経路が見つかりません」**:対象のノードがオフラインか、圏外か、別のチャンネルにいる可能性があります。 両方のノードが、同じ暗号化鍵を持つチャンネルを少なくとも 1 つ共有しているか確認してください。
- **ルート追跡がタイムアウトする**:経路が長すぎる(ホップ数上限を超える)か、中継ノードが混雑している可能性があります。 「**設定 → LoRa 設定**」でホップ数上限を増やしてみてください。
- **非対称な経路**:A→B のルート追跡は、B→A とは異なる経路を通ることがあります。 これは正常です。電波の伝搬は常に対称とは限りません。

## 探索ツールとしてのノードリスト

ノードリスト自体も、絞り込みと並べ替えの機能を効果的に使えば、強力な探索ツールになります。

### 新しいノードを見つける

- 「**最後の通信**」で並べ替えると、最近アクティブだったノードが先頭に表示されます。
- 「**不明なノードを含む**」を有効にすると、メッシュに現れたもののまだユーザー情報を送信していないノードが表示されます。これらは、電源を入れたばかりのデバイスであることがよくあります。

### 接続性を評価する

- 「**ホップ数**」で並べ替えると、直接到達できるノード(0 ホップ)と中継されるノードが分かります。
- 「**距離**」で並べ替えると、近くのノードを見つけて、到達できるか確認できます。
- 「**MQTT を除外**」を使うと、(インターネットブリッジ経由ではなく)無線で到達できるノードに絞り込めます。

### インフラの監査

- 「**インフラを除外**」を無効にすると、ルーター、ルーター・レイト、クライアント・ベースのノードが表示されます。
- 信号品質と最後の通信時刻を確認して、インフラのノードが健全であることを確かめます。

絞り込みと並べ替えのオプションの詳細については、[ノード](nodes) を参照してください。