ツール解説 · 実務ガイド

インストール不要のWi-Fiサイトサーベイツールを情シスが使う — 電波弱点をヒートマップで特定する

「Wi-Fiが繋がりにくい」という申告が上がってくる。現場を歩いて確認すると確かに電波が弱いエリアがある。ではAPをどこに追加すれば解決するのか——感覚と経験だけで決めるのは心もとないし、Ekahauのような本格的なサイトサーベイツールはライセンス料だけで数十万円かかる。1〜3人で情シスを回している中小企業では、そこまでの予算が下りることはまずない。

本記事では、追加インストール不要でWindows 10/11上で動作するオープンソースのWi-Fiサイトサーベイツール「SiteSurveyTool」を使って、フロアマップ上に電波計測結果をヒートマップ表示するまでの手順を解説する。Ping・スループット・VoIP品質の3モードを備えており、AP配置の検討や電波弱点の特定に実用的に使える。


なぜ専用ツールが買えないのか

Wi-Fiサイトサーベイの専用ツール市場は大きく二極化している。

ツール価格帯主な制限・問題
Ekahau Site Survey数十万円 / 年中小企業には予算が通らない
NetSpot(無料版)無料フロアマップへのピン設置・ヒートマップは有料版のみ
WiFi Analyzer(Android)無料スマートフォン限定・フロアマップ機能なし
SiteSurveyTool 当ツール無料(OSS)Windows専用・単一ユーザー利用

※ SiteSurveyToolの制限(Windows専用・単一ユーザー)はインストール不要・ライセンス不要を実現するための設計上のトレードオフ。

「フロアマップ上に計測ポイントを設置してヒートマップ化する」という基本機能を無償で使えるツールは選択肢が限られる。SiteSurveyToolはその空白を埋めるために作られた実用ツールだ。


SiteSurveyToolとは

SiteSurveyToolは、Windows PCでZIPを解凍してStart.batをダブルクリックするだけで起動するWi-Fiサイトサーベイツールだ。バックエンドはPowerShell 5.1のSystem.Net.HttpListenerによる自前HTTPサーバー、フロントエンドはVanilla JS + Chart.jsで構成されており、Node.jsもPythonも不要。標準ブラウザ(Edge / Chrome等)がUIとなる。

主な機能は以下のとおりだ。

  • PNG/JPGのフロアマップ画像またはグリッドエディタで作成した間取りへのピン設置
  • Ping計測(デフォルトゲートウェイ+外部IP宛RTT・パケットロス)
  • スループット計測(HTTPダウンロードによる下り速度)
  • VoIP/ビデオ会議品質計測(連続Pingによるジッター算出・簡易E-modelによるMOS値推定)
  • 信号強度・Ping・ジッターの3種類のIDWヒートマップ表示
  • PNG・CSV・PDF形式でのエクスポート
  • Wi-Fi情報のリアルタイム自動取得(SSID・BSSID・信号強度・チャネル・無線規格・リンク速度)

🐝 IroHive メモ データはJSONファイルとしてdata/projects/以下にローカル保存される。データベース不要。複数プロジェクトを切り替えて管理でき、計測履歴はピンごとに蓄積される。


動作要件と入手方法

動作要件

  • OS: Windows 10 / 11(macOS・Linuxは非対応。netshSystem.Net.NetworkInformation.Ping等のWindows API依存のため)
  • PowerShell: 5.1以上(Windows標準搭載)
  • ブラウザ: Edge / Chrome / Firefox 等の標準ブラウザ
  • Wi-Fiアダプタ: 内蔵または外付けの無線LANアダプタ(有線LANのみの環境ではWi-Fi情報取得不可)

入手方法

  1. IroHive ToolsページからZIPをダウンロード(直接ダウンロード
  2. 任意のフォルダに解凍する(例: C:\Tools\SiteSurveyTool
  3. 解凍したフォルダ内のStart.batをダブルクリックして起動

✅ インストール作業ゼロ ZIPを解凍してStart.batを実行するだけ。管理者権限も不要(ただし、PowerShell実行ポリシーによっては後述の対処が必要)。

🐝 関連ツール

Wi-Fiサイトサーベイツール

本記事で解説しているツールの配布版。ZIPを解凍してStart.batをダブルクリックするだけで動作します。

ZIPWindows 10/11PowerShellインストール不要

起動から計測までの手順

① 起動

Start.batをダブルクリックすると、PowerShellサーバーが別ウィンドウ(最小化)で起動し、標準ブラウザでhttp://localhost:8080/が自動的に開く。サーバーの準備完了を確認してからブラウザを起動するため、最大20秒のポーリングが走る。

終了時はStop.batを実行する。Start.batウィンドウを閉じてもサーバープロセスは残り続けるため、必ずStop.batで停止すること。

② プロジェクト作成

  1. ヘッダーの「+ 新規プロジェクト」をクリック
  2. プロジェクト名を入力(例: 本社2Fオフィス_2026-07
  3. プロジェクト設定でPingターゲットIP(デフォルト: 8.8.8.8)とスループット計測URL(デフォルト: http://speed.cloudflare.com/__down?bytes=10000000)を確認・変更する

🐝 Pingターゲットの選び方 社内環境のみ計測したい場合はデフォルトゲートウェイのIPを指定する。インターネット経路も含めて確認したい場合は8.8.8.8(Google DNS)のままでよい。

③ フロアマップの準備

  1. 「+ フロア追加」でフロアを作成
  2. マップ方式を選択:画像読み込み(PNG/JPGのフロアマップ画像。CAD出力PDFをPNG変換したものが最も使いやすい)またはグリッドエディタ(ブラウザ上で間取りを手描き)

④ ピン設置と計測

  1. サイドバーの「📍 ピン設置モード」を有効にする
  2. 計測したい場所(APの真下・電波が弱い疑いのある場所・各部屋の中央など)をマップ上でクリック
  3. ラベル(例: 会議室A中央)と計測モードを指定して「計測開始」
  4. 計測が自動実行され、結果がピンに蓄積される(同じピンで複数回計測を繰り返して平均を取ることも可能)

3つの計測モード詳解

📡
Pingモード
RTT・パケットロス

System.Net.NetworkInformation.Pingでデフォルトゲートウェイと指定IPへのRTT(最小・平均・最大)とパケットロス率を計測。icmp.exe不要。

判断基準:平均RTT 20ms以下・ロス率0%なら問題なし。RTT 50ms超でAPとの距離や干渉を疑う。
⬇️
スループットモード
下り実効速度 (Mbps)

System.Net.Http.HttpClientでHTTPダウンロード計測を行い下り速度(Mbps)を算出。デフォルトはCloudflareの10MBエンドポイント。

社内計測の場合:社内サーバーにダミーファイルを置きURLを変更(例: http://<サーバーIP>/test100mb.bin)すると、インターネット回線の影響を除いた実Wi-Fi速度を計測できる。
🎙️
VoIP/ビデオ会議品質モード
ジッター・MOS値推定

連続Ping(20回/20ms間隔)でジッターを算出し、ITU-T G.107 E-modelを簡易実装したMOS値(Mean Opinion Score)を推定する。TeamsやZoomが問題になるエリアの特定に有効。

活用場面:「この会議室だけ声が途切れる」という申告を、MOS値が低いエリアとして数値で裏付ける。

MOS値の読み方

MOS値品質判断
4.3〜4.5◎ 優良通話品質に不満なし
3.6〜4.2○ 良好ほとんどのユーザーが満足できる最低ライン
2.6〜3.5△ 普通聞き取れるが改善の余地あり
1.0〜2.5✗ 不良VoIPには不適。APの追加・再配置を検討

※ MOS値は連続Pingによる簡易推定値であり、実際のVoIPコーデック品質とは異なる場合がある。傾向把握・エリア比較を目的として使用すること。

推定アルゴリズムの概要

ツールが内部で行っている計算は以下の通りだ(server/Server.ps1Invoke-VoipTest関数)。

  1. 片道遅延を概算: latency = avgRTT / 2
  2. 有効遅延を算出: effectiveLatency = latency + jitter × 2 + 10
  3. 遅延劣化係数 Id を計算: effectiveLatency < 160msId = effectiveLatency / 40 / effectiveLatency ≥ 160msId = (effectiveLatency - 120) / 10
  4. パケットロス劣化係数: Ie = lossPercent × 2.5(G.711相当)
  5. R値を算出: R = 93.2 - Id - Ie
  6. MOSへ変換: MOS = 1 + 0.035R + R(R-60)(100-R) × 7×10⁻⁶

概念は本物のE-modelに基づいており、大まかな傾向を掴むには十分な精度だ。「この会議室だけMOSが2台」という発見ができれば、APの追加・再配置の根拠として使える。


ヒートマップの読み方

ピンを3点以上設置すると、ヒートマップ表示セレクタで以下の3種類の分布を切り替えられる。

  • 信号強度(dBm): APの電波到達範囲と強度分布
  • Ping遅延(ms): RTTの地理的分布
  • ジッター(ms): VoIP品質劣化エリアの可視化

IDW補間とは

ヒートマップはピン設置点の間をIDW(Inverse Distance Weighting:逆距離加重補間)で補間して滑らかなグラデーションを生成する。計測点から遠い場所ほど、近傍の複数ピンの値を距離に反比例した重みで平均した値が使われる仕組みだ。

🐝 ピン数と精度の関係 IDW補間は計測点が少ないと「それっぽく見えるだけ」になる。目安は10m四方に1ピン以上。廊下の折れ曲がりや壁の向こう側は電波の遮蔽を補間が考慮しないため、仕切りのある空間では壁の前後に必ずピンを設置すること。


結果のエクスポート

計測が完了したらサイドバーのエクスポートボタンから出力できる。

🖼️
PNG
ヒートマップ画像(Canvasのスクリーンショット合成)
報告書添付
📊
CSV
全ピンの計測データ(BOM付きUTF-8)。Excelで直接開いても文字化けしない。ピボットテーブルでフロアごと・モードごとに集計するのが効率的。
Excel分析
🖨️
PDF / 印刷
ブラウザの印刷機能(window.print())を使った帳票レイアウト
紙報告

設計判断:なぜPowerShellにしたのか

「なぜNode.jsやPythonではなくPowerShellなのか」は、このツールを評価する上で重要な判断基準だ。

✅ PowerShell 5.1 — SiteSurveyToolの選択
インストール
Windows標準搭載。追加不要
Wi-Fi情報取得
netsh wlan show interfaces の出力をパースするだけ
Ping計測
System.Net.NetworkInformation.Ping が .NET に標準搭載
配布のしやすさ ⭐ 最重要
ZIPを解凍して実行するだけ
⚠️ Node.js / Python の課題
インストール
別途インストールが必要。企業PCでは管理者権限が必要なケースが多い
Wi-Fi情報取得
外部モジュールか管理者権限付きの呼び出しが必要
Ping計測
OSコマンド呼び出し or ライブラリが必要
配布のしやすさ
依存パッケージ(node_modules / pip)の同梱が煩雑

「情シスが使うツール」として最も重要なのは導入の摩擦をゼロにすることだ。PowerShellを選んだことでランタイムインストール不要・依存パッケージなし・セキュリティ部門への申請なしで使えるツールが実現している。


トラブルシュート

① PowerShell実行ポリシーでブロックされる

症状:Start.batを実行しても何も起きない、またはすぐ終了する。

原因:ExecutionPolicyRestrictedまたはAllSignedに設定されている企業PCで起こりやすい。

対処:通常はStart.batが内部で-ExecutionPolicy Bypassを付けて起動するため問題ない。それでもブロックされる場合はセキュリティ部門に実行許可を確認する。

powershell -NoProfile -ExecutionPolicy Bypass -File “%SCRIPT_DIR%server\Server.ps1”
② Wi-Fi情報が文字化けする・取得できない

症状:画面左のWi-Fi情報パネルが空欄または文字化けしている。

原因:日本語WindowsではSSIDのnetsh wlan show interfaces出力がShift_JIS。有線LAN接続のみの場合はそもそもWi-Fi情報が出力されない。

対処:PCがWi-Fiに接続されているか確認。診断コマンドで出力を確認する。

netsh wlan show interfaces
[Console]::OutputEncoding = [System.Text.Encoding]::GetEncoding(932)
③ ポート8080が競合して起動しない

症状:サーバーが起動してもすぐ終了し、ブラウザが開かない。

原因:他のアプリがポート8080を使用している。

対処:競合プロセスを終了するか、Start.batのPORT変数を変更する。

netstat -ano | findstr :8080
rem Start.bat の先頭付近: set “PORT=8081”
④ ブラウザが自動で開かない

症状:起動後にブラウザが開かない、または「接続できない」エラーになる。

原因:起動確認のタイムアウト(最大20秒)が先に切れた場合にブラウザ起動が走るが、サーバーがまだ準備中のことがある。

対処:数秒待ってから http://localhost:8080/ に手動でアクセスする。

⑤ スループット計測が失敗する

症状:スループット計測でエラーが出る、または0Mbpsになる。

原因:社内プロキシ経由でないとインターネットにアクセスできない環境では、デフォルトのCloudflareエンドポイントへの直接接続が失敗する。またはSystem.Net.Httpアセンブリが環境によって自動ロードされないケースがある。

対処:社内サーバーにテスト用ファイルを置いてURLを変更するか、Server.ps1冒頭に以下を追加する。

Add-Type -AssemblyName System.Net.Http

まとめ

SiteSurveyToolを使うことで、専用ソフトウェアなしに「フロアマップ上のどこで電波が弱いか・Pingが遅いか・VoIPが厳しいか」を可視化できる。意思決定に必要なのは感覚ではなく数値と地図だ。

CASE 1 — AP追加提案
信号強度の弱点を可視化

信号強度ヒートマップのPNGを報告書に貼る。「ここが弱い」を感覚でなく色で説明できる。

CASE 2 — Teams/Zoom品質
通話が途切れるエリアを特定

「この会議室だけ声が途切れる」という申告を受けたとき、VoIPモードでMOS値が低いエリアを数値で裏付ける。

CASE 3 — 新オフィス設計
AP配置の根拠を作る

フロアプランを読み込んでピンを格子状に設置し、計測結果を根拠にベンダーへ仕様を伝える。感覚ではなくデータで発注できる。

インストール作業がゼロなのは「とりあえず試してみる」ハードルを下げる。申請を出す前に自分のPCで動かして、使えると判断してから展開を考えればよい。

✅ 今すぐ試す ZIPをダウンロード → 解凍 → Start.batをダブルクリック。これだけで動く。
site-survey-tool-v1.2.0.zip をダウンロード