Raritan PX3 APIからアウトレットを操作する
概要
APIからRaritan PX3のアウトレットを操作します。
HTTPリクエスト(JSON-RPC)を利用して、curlコマンドからAPIを呼び出してみます。
公式の資料が充実しているので参考に。
環境
- Raritan PX3-5138JR
4.0.20.5-49038
アウトレットの状態を確認する
まずはアウトレットの状態の確認をしてみます。
リクエストを作ります。
- データ部
- URL部
- それぞれ
<>
の箇所はご自身の環境に合わせて記入してください。 <pdu_id>
- 使用するPDUのIDです。
- 複数端末を束ねているときにIDを割り振るようですが、1台のみであれば
0
になります。
<outlet_id>
- 確認したいアウトレットの番号です。
- 0始まり(0~7)で指定します。
- 例えば、本体シルクで1番のアウトレットを確認する場合は
0
となります。
- それぞれ
リクエスト:
# Bash curl -skd \ '{ "jsonrpc": "2.0", "method": "getState", "id": 0 }' \ https://<user_name>:<password>@<IP_address>/model/pdu/<pdu_id>/outlet/<outlet_id>
# PowerShell curl.exe -skd ` '{ \"jsonrpc\": \"2.0\", \"method\": \"getState\", \"id\": 0 }' ` https://<user_name>:<password>@<IP_address>/model/pdu/<pdu_id>/outlet/<outlet_id>
指定したアウトレットの状態がJSON形式で返ってきます。
"powerState": 1
がアウトレットの状態です。
0
であればOFF、1
であればONです。
レスポンス:
{ "jsonrpc": "2.0", "result": { "_ret_": { "available": true, "powerState": 1, "switchOnInProgress": false, "cycleInProgress": false, "isLoadShed": false, "isSuspended": false, "hasInrushWaveform": false, "ledState": { "red": false, "green": false, "blinking": false }, "lastPowerStateChange": 1682866800 } }, "id": 0 }
アウトレットのON/OFFを切り替える
アウトレットのON/OFFを切り替えます。
リクエストを作ります。
"pstate"
- アウトレットのON/OFFを指定します。
- OFFにするなら
0
- ONにするなら
1
ここでは"pstate": 1
でONにしてみます。
URLは先程と同じです。
リクエスト:
# Bash curl -skd \ '{ "jsonrpc": "2.0", "method": "setPowerState", "params": { "pstate": 1 }, "id": 0 }' \ https://<user_name>:<password>@<IP_address>/model/pdu/<pdu_id>/outlet/<outlet_id>
# PowerShell curl.exe -skd ` '{ \"jsonrpc\": \"2.0\", \"method\": \"setPowerState\", \"params\": { \"pstate\": 1 }, \"id\": 0 }' ` https://<user_name>:<password>@<IP_address>/model/pdu/<pdu_id>/outlet/<outlet_id>
実行結果が返ってきます。"_ret_": 0
であれば成功です。
"_ret_"
0
: OK1
: the outlet is not switchable3
: the outlet is disabled
レスポンス:
{ "jsonrpc": "2.0", "result": { "_ret_": 0 }, "id": 0 }
おわり
curlコマンドでPX3のAPIを呼び出し、アウトレットの操作ができるようになりました。
私はNode-redとAlexa Home Skill Bridgeを使用してスマートプラグのように使用しています。
今回はアウトレットの状態変更を試しましたが、他にも使用できるURIがたくさんあります。