Milesightルーター(OpenCPUシステム)HTTP APIの使用方法

説明

Milesightルーター(OpenCPUシステムバージョン)で使用可能な関連HTTP APIを以下に示します。ユーザーは下記のステップに従ってAPIを呼び出し、デバイスを直接制御・管理できます。

要件

● Milesightルーター: UR75v3、UF51v2

● Linuxシステム

設定

ステップ1: LinuxシステムへのCurlソフトウェアのインストール

1. 

sudo apt install curl
JavaScript

2. インストール結果の確認:

curl -V
HTML

curlソフトウェアが正常にインストールされている場合、後続でソフトウェアバージョンを取得できます。

 

ステップ2: MilesightルーターのWeb GUIにアクセスし、[Network] > [Firewall] > [Security]に移動し、SSHアクセスサービスを有効にして保存します。

ステップ3: ルーターのログインユーザー名とパスワードを使用してAPIトークンキーを取得します。

以下のcurlコマンドを使用します。IP 『192.168.45.187』をルーターのIPアドレスに変更し、HTTPSリクエストを使用する必要があります。

注: パスワードはAES暗号化値です。AES暗号化設定:

 パラメータ オプション
Encryption cipher mode CBC
Encryption Key Size 128 bits
IV(initial Vector)  2222222222222222 
 Secret key   1111111111111111 
 Output format   Base64 

 例:  Online AES Encryption / Decryption | Anycript 

curl -k -c ./cookie.txt -X POST "https://192.168.45.187/cgi-bin/luci" -d "luci_username=admin&luci_password=sI/7ewBCeWunDs6JXXtSHg==" -v
HTML

コマンドが正常に実行された場合、以下のコマンドを使用して cookie.txt ファイル内のトークンを確認できます。

cat cookie.txt
JavaScript

 

 

ステップ 4: 必要な UCI コマンドの取得

ブラウザでルーターの Web GUI を開き、キーボードの F12 ボタンをクリックするか、ブラウザの設定から開発者ツールを開きます。

 

すると、現在の Web ページの UCI コマンドを確認できます。

 

ステップ5: ルーター向けAPIの呼び出し

UR75v3向けAPIを呼び出す際、リクエストURLに現在のタイムスタンプを含める必要があります。以下の例では、HTTPSリクエスト時に現在のタイムスタンプを含めるためのスクリプトを参考として提供します。

以下のコマンドでUR75v3_HTTP_API.shファイルを作成:

vi UR75v3_HTTP_API.sh
JavaScript

以下のサンプルスクリプトを貼り付け、.shファイルを保存。

#!/bin/bash

# Step 1: Send login request and save cookie
login_url="https://192.168.45.187/cgi-bin/luci?luci_username=admin&luci_password=sI/7ewBCeWunDs6JXXtSHg=="
cookie_file="cookies.txt"
curl -k -c $cookie_file "$login_url"

# Step 2: Extracting sysauth values from cookie files
sysauth=$(grep 'sysauth' $cookie_file | cut -f 7)
if [ -z "$sysauth" ]; then
  echo "Failed to retrieve sysauth value from cookies."
  exit 1
fi

# Step 3: Replace the params in the JSON body with the extracted sysauth value
json_body=$(cat <<EOF
[
    {"jsonrpc":"2.0","id":27,"method":"call","params":["$sysauth","luci","getSystemBoard",{}]},
    {"jsonrpc":"2.0","id":27,"method":"call","params":["$sysauth","system","info",{}]},
    {"jsonrpc":"2.0","id":28,"method":"call","params":["$sysauth","luci","getSystemBoard",{}]},
    {"jsonrpc":"2.0","id":29,"method":"call","params":["$sysauth","system","info",{}]},
    {"jsonrpc":"2.0","id":30,"method":"call","params":["$sysauth","luci","getCurrentNetwork",{}]},
    {"jsonrpc":"2.0","id":31,"method":"call","params":["$sysauth","luci-rpc","getDHCPLeases",{}]},
    {"jsonrpc":"2.0","id":32,"method":"call","params":["$sysauth","luci-rpc","getHostHints",{}]},
    {"jsonrpc":"2.0","id":33,"method":"call","params":["$sysauth","luci-rpc","getDSLStatus",{}]},
    {"jsonrpc":"2.0","id":34,"method":"call","params":["$sysauth","ups","get_info",{}]}
]
EOF
)

# Step 4: Get the current timestamp and build the URL
currentTimestamp=$(date +%s)
post_url="https://192.168.45.187/cgi-bin/luci/admin/ubus?$currentTimestamp"

# Step 5: Sending a POST request with updated params
curl -k -b $cookie_file -X POST "$post_url" \
     -H "Content-Type: application/json" \
     -d "$json_body"
HTML

実行すると、以下の結果が表示されます

—以上—

関連記事

ルーターの使用

ソリューション / IoT サポート


    Milesight製品

    ウェーブクレスト株式会社が運営するMilesight製品特設サイトです

    お知らせ

    1. 2025-4-3

      ピープル・センシング 駆動型スマートビルディング

      People Sensing Insights を通じてビルインテリジェンスに革命をもたらします。…
    2. 2023-7-21

      LoRaWANの説明: 理論から実践へのガイド

      この包括的なビデオでは、LoRaWANを深く掘り下げ、その仕組み、利点、アプリケーションについて説明…
    3. 2023-4-6

      センシング・インサイト Milesight リブランディングのお知らせ

      https://youtu.be/r40DK40DjIY …

    居住者の健康を確保

    ページ上部へ戻る