COVID-19パンデミックの影響でPIX-MT100が品薄となったこともあり、代替として使えそうなGH-UDG-MCLTEを入手してみました。
PIX-MT100もGH-UDG-MCLTEも、USBドングル型ですがルータ機能を内蔵しており、PCやRaspberryPiなどにUSBで接続するとUSBイーサネットデバイスのように認識され、PCにはプライベートIPアドレスがDHCPで割り振られます。
このようなLTEモデムはRaspberryPiを使ったIoTプロジェクトには非常に便利で、EthernetやWiFi接続で動かしていたデバイスに、追加の設定一切なしで、これらのドングルを接続するだけでLTEバージョンが用意できます。
一方、ATモデムであればモデムやSIMの情報をATコマンドで取得できるところ、これらのルータ機能内蔵LTEドングルの場合、標準的なAPIは用意されていません。
ブロードバンドルータのようなWeb設定画面はあるので、少なくともそこに表示されている情報はスクレイピングで取得できるはずです。
さしあたってほしいのは、
- IMEI: モデムに割り振られている一意な番号(絶対ほしい)
- MSISDN: SIMの電話番号(絶対欲しい)
- RSSI: ざっくり言うと電波の強さ
あたりです。
遠隔地に設置したIoTデバイスの台数が増えてくると、IoTデバイス運用中にこれらの情報を取れないと軽く死ねます。
Firefoxの「開発ツール」の「ネットワーク」のタブを見ながら管理画面のページを遷移していると、cgi-bin/qcmap_web_cgi
というリソースにリクエストが飛んでいるようです。
これをcurlで叩けばほしい情報がとれそうです。
とりあえず、以下のAPIがあることはわかりました。
$ curl -s -d 'Page=GetInfo' -d 'Result=0' http://192.168.225.1/cgi-bin/qcmap_web_cgi | jq .
{
"Page": "GetInfo",
"model_name": "AU5700",
"imei": "3520100xxxxxxxx",
"software_version": "11-24",
"my_number": "020xxxxxxxx",
"Result": ""
}
$ curl -s -d 'Page=GetHomeStatus' -d 'Result=0' http://192.168.225.1/cgi-bin/qcmap_web_cgi | jq .
{
"Page": "GetHomeStatus",
"curr_connect": "3",
"connected_network": "DOCOMO",
"autoconnect": "1",
"profile_name": "CID1",
"APN": "biglobe.jp",
"Searching_mode": "0",
"PIN": "3",
"DHCP": "192.168.225.1",
"DMZ": "0.0.0.0",
"Model_name": "AU5700",
"SW_Ver": "11-24",
"MSISDN": "020xxxxxxxx",
"Anthena": "3"
}
IMEIとMSISDNはGetInfo
で取得できるようです。
続く...