REST APIの利用方法・設定
事前準備
ディスプレイとリモコン

購入したディスプレイとリモコンを用意
PCとディスプレイを接続

同一ネットワークに接続する。有線LAN/無線LANいずれも対応
ディスプレイのIPアドレスを確認してメモしておくと便利です。
操作手順:[設定]→[ネットワークとインターネット]→[ローカルネットワーク]
利用方法
まずはトライアル
下記のファイルをダウンロードし、「display_conrol.html」を入手してください。
1.トライアル用設定と display_control.html の使い方
display_control.htmlを使ったトライアル方法
PCのWebブラウザでdisplay_control.htmlによるIPコントロールコマンドの送信方法を、例として紹介しながら使い方を説明します。
1.トライアルに必要なディスプレイ設定
ディスプレイ本体のIPアドレスを確認してメモ
操作手順:[設定] → [ネットワークとインターネット] → [ローカルネットワーク]
[認証]の[Pre-Shared Key]を有効にして、Pre-Shared Keyを「1234」に設定
操作手順:[設定] → [ネットワークとインターネット] → [ローカルネットワーク] → [IPコントロール] → [認証]
HDMI 1入力に切り換える
リモコンの[入力切換]で [HDMI 1] を選択してください。
トライアルの説明を円滑にするため、[HDMI 1]を前提に次を説明します。
2.コントロールの実行
PCブラウザでdisplay_control.htmlを開き、以下を入力します。
Display IP:メモをしたディスプレイ本体のIPアドレス
PSK:Pre-Shared Key(ディスプレイ本体に仮で設定した1234)


[Input]フィールドで[HDMI2]を選択し、[Go]を押下すると、ディスプレイの入力がHDMI 1→HDMI 2に切り換わります。


トライアルでのJSON-RPC通信例
ディスプレイとPC間では、次のようなJSON-RPC形式のリクエストとレスポンスが交わされたことになります。
リクエスト (PC→ディスプレイ)
POST /sony/avContent HTTP/1.1
HOST: 192.168.0.1
X-Auth-PSK: 1234
Content-Type: application/json; charset=UTF-8
{ method: "setPlayContent",
version: "1.0", id: 1,
params: [{uri: "extInput:hdmi?port=2"}]
}レスポンス (ディスプレイ→PC)
// HTTP 200
OK { "result":,
"id": 1
}2.ChromeのDevToolsで通信を確認する方法
ChromeのDevToolsでトライアルをする方法
display_control.htmlの代わりに、Google ChromeのDevToolsを使用して、次の javascriptサンプルでREST APIコマンドを送信することも可能です。
var xhr = new XMLHttpRequest();
xhr.open('POST', 'http://192.168.0.1/sony/avContent');
xhr.setRequestHeader('X-Auth-PSK', '1234');
xhr.send(JSON.stringify(
{method: "setPlayContent",
version: "1.0",
id: 1,
params: [{uri: "extInput:hdmi?port=2"}]}
));本格的なREST API利用に必要なディスプレイ設定
1.REST API 実行に必要なディスプレイ本体の設定
認証方式Pre-Shared Keyと認証レベルを設定する
クライアントの認証レベルに応じて、ディスプレイの認証を設定する際は、「本体設定」の[IPコントロール認証]で行います。[Pre-Shared Key]を有効にすると、privateとgenericレベルのAPI利用が可能になります。
詳しい設定項目はこちら
操作手順:[設定]→[ネットワークとインターネット]→[ローカルネットワーク]→[IPコントロール]→[認証]
リモートデバイス制御を有効にする
操作手順:[設定]→[ネットワークとインターネット]→[モバイル機器設定]→[リモートコントロール機能]
サスペンド状態でもディスプレイを制御する設定
ディスプレイがサスペンド状態でも制御が必要な場合、サスペンド状態そのものを無効化する必要があります*。
詳しくは
こちら
サスペンド状態から電源を復帰させる方法
ディスプレイが意図せずサスペンド状態になると、HTTPサーバーが停止するため、REST APIによる通信ができなくなります。この場合は、Wake-on-LAN(WoL:ネットワーク経由でのリモート起動)機能を有効にしておくことで、ディスプレイの電源を復帰させることができます。
必要なディスプレイ設定
Wake-on-LANの有効化
操作手順:[設定]→[ネットワークとインターネット]→[リモートスタート]
Wake-on-LANによるサスペンド状態からの復帰手順
- MACアドレスの取得
WoLマジックパケットは対象デバイスのMACアドレス宛に送信する必要があります。getSystemInformationを呼び出して、ディスプレイのMACアドレスを取得します。 - WoLマジックパケットの作成
WoLマジックパケットは、「FF FF FF FF FF FF」+MACアドレスを16回繰り返したUDPパケットです。ディスプレイのMACアドレスを元に生成します。 - マジックパケットの送信
ネットワーク上の対象ディスプレイのブロードキャストアドレス宛にUDPポート9または7いずれかでマジックパケットを複数回送信します。複数回送るこを推奨しています。ディスプレイの確実な作動を促します。 - 電源ON状態の確認
マジックパケット送信後、REST APIでの通信が可能になるまで待ちます。 - ディスプレイをスクリーンONにする
「通常モード」環境の場合は、電源ON後、更にsetPowerStatusで画面表示状態に切り換えてください。
「プロモード」環境の場合は、自動的にスクリーンONになります。 - REST APIでの制御実行
通信可能になったら、REST APIで電源や入力などの制御を行います。
2.クライアント設定(REST API認証と通信パラメータの送信方法)
Pre-Shared Key
Pre-Shared Key は、HTTPリクエストのカスタムヘッダー「X-Auth-PSK」として、REST APIに送信する必要があります。
例 X-Auth-PSKヘッダー (Pre-Shared Key: 1234)
httpPOST /sony/system HTTP/1.1
Host: 192.168.1.100:80
Content-Type: application/json
X-Auth-PSK: 1234
Content-Length: 65