事前準備

ディスプレイとリモコン

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

PCとデベロッパーツール

PC のWebブラウザで、専用ツール display_control.htmlまたはChromeのDevToolsを用意

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)

display_control.html の設定画面
図:事前に準備した状態
事前に準備した状態

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

display_control.html の設定画面
図:入力切換を実行したイメージ
入力切換を実行
トライアルでのJSON-RPC通信例

ディスプレイとPC間では、次のようなJSON-RPC形式のリクエストとレスポンスが交わされたことになります。

リクエスト (PC→ディスプレイ)

HTTP
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)

JSON
// HTTP 200 
OK { "result":,
 "id": 1
}

2.ChromeのDevToolsで通信を確認する方法

ChromeのDevToolsでトライアルをする方法

display_control.htmlの代わりに、Google ChromeのDevToolsを使用して、次の javascriptサンプルでREST APIコマンドを送信することも可能です。

JavaScript
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利用が可能になります。
詳しい設定項目はこちら

BZ40P / BZ35P / BZ30P

そのほかのモデル

操作手順:[設定]→[ネットワークとインターネット]→[ローカルネットワーク]→[IPコントロール]→[認証]

リモートデバイス制御を有効にする

操作手順:[設定]→[ネットワークとインターネット]→[モバイル機器設定]→[リモートコントロール機能]

サスペンド状態でもディスプレイを制御する設定

ディスプレイがサスペンド状態でも制御が必要な場合、サスペンド状態そのものを無効化する必要があります*
詳しくは こちら


サスペンド状態から電源を復帰させる方法

ディスプレイが意図せずサスペンド状態になると、HTTPサーバーが停止するため、REST APIによる通信ができなくなります。この場合は、Wake-on-LAN(WoL:ネットワーク経由でのリモート起動)機能を有効にしておくことで、ディスプレイの電源を復帰させることができます。

必要なディスプレイ設定

Wake-on-LANの有効化
操作手順:[設定]→[ネットワークとインターネット]→[リモートスタート]

Wake-on-LANによるサスペンド状態からの復帰手順
  1. MACアドレスの取得
    WoLマジックパケットは対象デバイスのMACアドレス宛に送信する必要があります。getSystemInformationを呼び出して、ディスプレイのMACアドレスを取得します。
  2. WoLマジックパケットの作成
    WoLマジックパケットは、「FF FF FF FF FF FF」+MACアドレスを16回繰り返したUDPパケットです。ディスプレイのMACアドレスを元に生成します。
  3. マジックパケットの送信
    ネットワーク上の対象ディスプレイのブロードキャストアドレス宛にUDPポート9または7いずれかでマジックパケットを複数回送信します。複数回送るこを推奨しています。ディスプレイの確実な作動を促します。
  4. 電源ON状態の確認
    マジックパケット送信後、REST APIでの通信が可能になるまで待ちます。
  5. ディスプレイをスクリーンONにする
    「通常モード」環境の場合は、電源ON後、更にsetPowerStatusで画面表示状態に切り換えてください。
    「プロモード」環境の場合は、自動的にスクリーンONになります。
  6. 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)

HTTP
httpPOST /sony/system HTTP/1.1
Host: 192.168.1.100:80
Content-Type: application/json
X-Auth-PSK: 1234
Content-Length: 65