TTS Mapper - A TTN Mapper Alternative

ユーザマニュアル

TTS Mapper は、The Things Stack (TTS) / The Things Network (TTN) のゲートウェイ位置情報を地図上に表示するマッピングサービスです。

概要は、こちらからでもご覧いただけます。


目次

  1. はじめに
  2. 画面構成
  3. 基本操作
  4. ユーザー登録・ログイン
  5. MQTT接続設定

はじめに

TTS Mapper は以下の機能を提供します:

  • ゲートウェイマップ: 日本国内のLoRaWANゲートウェイをリアルタイムで表示
  • フィルタリング: オンライン/オフライン、Net ID、テナントで絞り込み
  • デバイストラッキング: MQTT経由で自身のデバイス位置を投稿・表示
  • ダーク/ライトモード: システム連動または手動でテーマ切り替え
  • レスポンシブ対応: スマートフォン・タブレットでも快適に操作可能

ゲートウェイマップの閲覧は登録不要です。デバイストラッキング機能を利用するにはユーザー登録が必要です。


画面構成

メイン画面

メイン画面

ダークモード

メイン画面(ライトモード)

ライトモード - システム設定に連動して自動切り替え

画面要素

要素 説明
サイドバートグル(✕ボタン) サイドバーの表示/非表示を切り替え
ユーザーセクション ログイン/ログアウト操作
MQTT接続 MQTT設定の管理(ログイン時のみ)
統計情報 ゲートウェイ数、オンライン数など
地域切り替え 日本/全世界の切り替え
フィルター 表示するマーカーの絞り込み
ゲートウェイ一覧 現在表示中のゲートウェイリスト
マップ ゲートウェイ・デバイスの位置を表示
マップコントロール ズーム、現在地、リセット

サイドバー非表示時

サイドバー非表示

☰ボタンをクリックするとサイドバーを再表示できます。

モバイル表示

スマートフォンやタブレットでアクセスした場合、画面サイズに応じて最適化された表示になります。

画面幅 対応デバイス 特徴
1024px以下 タブレット サイドバー幅が縮小
768px以下 スマートフォン サイドバーがオーバーレイ表示
480px以下 小型スマートフォン さらにコンパクトな表示

モバイル時の操作:

  • サイドバー: 初期状態では閉じています。☰ボタンをタップして開きます
  • バックドロップ: サイドバー表示中に背景をタップすると閉じます
  • RSSI凡例: 画面右下に移動し、小型画面ではアイコンのみ表示

基本操作

地図の操作

操作 マウス タッチ
移動 ドラッグ スワイプ
ズームイン スクロールアップ / 「+」ボタン ピンチアウト
ズームアウト スクロールダウン / 「−」ボタン ピンチイン
現在地へ移動 📍 ボタン 📍 ボタン
初期位置へリセット 🗺️ ボタン 🗺️ ボタン

ゲートウェイの表示

  1. ページを開くと自動的にゲートウェイデータが読み込まれます
  2. 手動で更新する場合は「🔄 データ取得」ボタンをクリック

データ取得ボタン

マーカーの種類

マーカー 色 説明
オンラインGW 緑 現在稼働中のゲートウェイ
オフラインGW グレー 停止中のゲートウェイ
デバイス RSSI値による ユーザーのデバイス位置(下記参照)

クラスタリング

ズームアウト時、近接するマーカーは自動的にクラスター(円内に数字)で表示されます。

対象 クラスター色 動作
ゲートウェイ 青〜緑系 クリックで展開
デバイス オレンジ〜紫系 ズームレベル18以上で個別表示

ゲートウェイとデバイスは別々のクラスターグループで管理され、混在しません。

RSSI凡例

画面右上にRSSI値による色分けの凡例が常時表示されます。デバイスマーカーの色はこの凡例に従います。

フィルタリング

ステータスフィルター

フィルターオプション

フィルター 説明 デフォルト
オンライン オンラインのゲートウェイを表示/非表示 ON
オフライン オフラインのゲートウェイを表示/非表示 OFF
デバイス 自分のデバイスを表示/非表示 ON

チェックボックスをクリックして切り替えます。

Net ID / テナントフィルター

Net ID フィルター

  • Net ID フィルタ: 特定のNet IDのゲートウェイのみ表示
  • テナントフィルタ: 特定のテナント(例: ttn)のゲートウェイのみ表示

地域フィルター

  • 🇯🇵 日本: 日本国内のゲートウェイのみ表示(デフォルト)
  • 🌍 全世界: 全世界のゲートウェイを表示

ユーザー登録・ログイン

ユーザー登録は招待制です。管理者から招待メールを受け取る必要があります。

アカウント有効化

  1. 管理者から招待メールを受信
  2. メール内の「アカウントを有効化」ボタンをクリック
  3. 有効化完了画面が表示されます

有効化画面

※上記は無効なトークンの場合のエラー画面です。有効なトークンの場合は成功メッセージが表示されます。

注意: 招待リンクは48時間有効です。期限切れの場合は管理者に再送信を依頼してください。

ログイン方法

TTS Mapper はパスワードレス認証(PINコード認証)を採用しています。

Step 1: メールアドレス入力

ログインStep1

  1. 登録済みのメールアドレスを入力
  2. 「送信」ボタンをクリック
  3. 6桁のPINコードがメールで届きます

Step 2: PINコード入力

  1. メールに届いた6桁のPINコードを入力
  2. 「認証」ボタンをクリック

注意: PINコードは10分間有効です。

ログイン後

ログイン後は以下が表示されます:

  • ユーザー名
  • ログアウトボタン
  • MQTT接続セクション

MQTT接続設定

MQTT接続の追加

  1. ログイン後、「🔌 MQTT接続」セクションの「+ 追加」ボタンをクリック

  2. MQTT設定ダイアログに必要事項を入力

項目 説明 例
接続名 任意の名前(識別用) My TTN App
MQTTホスト TTSのMQTTサーバー nam1.cloud.thethings.network
ユーザー名 アプリID@テナントID 形式 my-app@ttn
API Key TTSコンソールで生成したキー NNSXS.xxx...

TTNコミュニティの場合

  • ホスト: nam1.cloud.thethings.network(リージョンによる)
  • ユーザー名: アプリケーションID@ttn
  • API Key: TTNコンソール → アプリケーション → API Keys で生成

The Things Stack (自前サーバー)の場合

  • ホスト: 自分のTTSサーバーのアドレス
  • ユーザー名: アプリケーションID@テナントID
  • API Key: TTSコンソールで生成
  1. 「保存」ボタンをクリック

注意: 新規作成した接続はデフォルトで「停止」状態です。▶ボタンをクリックして接続を開始してください。

接続状態の確認

状態 インジケータ 説明
接続済み 緑(点灯) MQTTブローカーに接続成功
接続中 オレンジ(点滅) 接続試行中
停止 グレー 接続が無効化されている
エラー 赤 接続失敗

MQTT接続の操作

各MQTT接続には以下の操作ボタンがあります:

ボタン 説明
▶(再生) 停止中の接続を開始
⏸(一時停止) 接続中の接続を停止
🧹(クリア) デバイスデータのみを削除(設定は残る)
🗑️(削除) 設定と関連するデバイスデータを全て削除
  • 接続状態の永続化: ブラウザを閉じても、有効/無効状態は維持されます

デバイス位置の表示

MQTT接続が成功し、デバイスが位置情報を送信すると、マップ上にマーカーで表示されます。

マーカーの色(RSSI値による)

RSSI値 色 信号強度
-70 dBm以上 緑 非常に良好
-85 dBm以上 黄緑 良好
-100 dBm以上 黄色 普通
-110 dBm以上 オレンジ 弱い
-110 dBm未満 赤 非常に弱い
データなし グレー -

マーカーのサイズ(受信ゲートウェイ数による)

受信GW数 サイズ
1 小 (20px)
2-3 中 (26px)
4-5 大 (32px)
6以上 特大 (38px)

マーカーが大きいほど、多くのゲートウェイで受信されたことを示し、カバレッジが良好なエリアであることが分かります。

マーカーをクリックすると、デバイス情報が表示されます:

  • デバイスID
  • 緯度・経度
  • RSSI(受信信号強度)と評価
  • SNR(信号対雑音比)
  • 受信ゲートウェイ数
  • 最終更新時刻

デバイスデータの履歴

デバイスから送信された位置情報は履歴として保持され、マップ上に複数のポイントとして表示されます。

設定 値
最大保持件数 100件/デバイス
最大保持期間 12時間

古いデータは自動的にクリーンアップされます。履歴を手動で削除したい場合は、MQTT接続の🧹ボタンを使用してください。

対応ペイロード形式

様々なGPSトラッカーやセンサーデバイスのペイロード形式に対応しています。

ペイロード例1: シンプルな形式

{
  "end_device_ids": {
    "device_id": "my-gps-tracker"
  },
  "uplink_message": {
    "decoded_payload": {
      "latitude": 36.3219,
      "longitude": 139.0032,
      "altitude": 108,
      "battery": 85
    },
    "rx_metadata": [
      {
        "gateway_ids": { "gateway_id": "eui-abc123" },
        "rssi": -85,
        "snr": 9.5
      },
      {
        "gateway_ids": { "gateway_id": "eui-def456" },
        "rssi": -102,
        "snr": 5.2
      }
    ]
  },
  "received_at": "2025-12-10T12:34:56.789Z"
}

ペイロード例2: ネストされた形式

{
  "end_device_ids": {
    "device_id": "lorawan-sensor-01"
  },
  "uplink_message": {
    "decoded_payload": {
      "gps": {
        "lat": 35.6812,
        "lng": 139.7671,
        "fix": true
      },
      "temperature": 23.5,
      "humidity": 65
    },
    "rx_metadata": [
      {
        "gateway_ids": { "gateway_id": "my-gateway" },
        "rssi": -95,
        "snr": 7.0
      }
    ]
  },
  "received_at": "2025-12-10T12:34:56.789Z"
}

対応する緯度フィールド名:
latitude, lat, gps_lat, Latitude, LAT, y

対応する経度フィールド名:
longitude, lng, lon, gps_lon, gps_lng, Longitude, LON, x

ネストされた構造にも対応:

  • decoded_payload.gps.latitude
  • decoded_payload.location.lat
  • decoded_payload.position.latitude
  • decoded_payload.gps_1.latitude

配列形式にも対応:

  • coordinates: [lng, lat] (GeoJSON形式)
  • latlon: [lat, lng]
  • latlng: [lat, lng]

SenseCAP等のmessages配列形式にも対応:

{
  "messages": [
    [
      { "type": "Latitude", "measurementValue": 36.329 },
      { "type": "Longitude", "measurementValue": 139.005 }
    ]
  ]
}

複数ゲートウェイ受信時の処理

デバイスからのアップリンクが複数のゲートウェイで受信された場合:

  1. 全ゲートウェイのRSSI値を比較
  2. 最良(最大)のRSSI値を持つゲートウェイのデータを採用
  3. 受信ゲートウェイ数も記録・表示

これにより、最も信号品質の良いゲートウェイのデータが使用されます。

MQTT接続の削除

  1. 削除したい接続の「🗑️」ボタンをクリック
  2. 確認ダイアログで「OK」をクリック

注意: MQTT接続を削除すると、関連するデバイスデータも全て削除されます。デバイスデータのみを削除したい場合は「🧹」ボタンを使用してください。


トラブルシューティング

ゲートウェイが表示されない

  1. 「🔄 データ取得」ボタンをクリックして再読み込み
  2. フィルター設定を確認(オンライン/オフラインが非表示になっていないか)
  3. 地域フィルターを確認(日本/全世界)

PINコードが届かない

  1. 迷惑メールフォルダを確認
  2. メールアドレスが正しいか確認
  3. 10分経過している場合は再度PINコードをリクエスト

MQTT接続が失敗する

  1. ホスト名が正しいか確認
  2. ユーザー名の形式(app-id@tenant-id)を確認
  3. API Keyの権限を確認(MQTT接続権限が必要)

デバイスがマップに表示されない

  1. MQTT接続状態が「接続済み」(緑)か確認
  2. デバイスが位置情報を送信しているか確認
  3. フィルターで「デバイス」が有効か確認

お問い合わせ

ご質問やご要望は以下からお問い合わせください:

ELSPINA VEINZ Inc.