IRCC-IP

IRCC-IPとは
IRCC-IP(InfraRed Compatible Control over Internet Protocol)は、赤外線リモコンの操作をローカルネットワーク上のIPプロトコルを使ってエミュレートする通信プロトコルです。ディスプレイの電源制御、音量調整、入力ソースの切り換えなど、物理リモコンと同等の操作をIPベースで実行できます。
主な特長
リモコン操作感覚での制御
ユーザーが普段使い慣れたリモコン操作感覚で、ディスプレイを遠隔操作できます。IPアドレス単位で個別に制御するため、複数台のディスプレイの操作にも対応できます。
通信仕様とセキュリティ
IRCC-IPはSOAPプロトコル上のXMLメッセージでコマンドを送信します。構文が明確で、HTTP POSTリクエストとして容易に実装が可能です。Pre-Shared Key認証方式に対応し、正規の操作以外のコマンド送信を防止できます。
Webアプリ連携で制御可能
HTML5やAndroidアプリと連携し、カスタムUIのボタン操作をローカルネットワーク上のディスプレイに即時反映できます。ユーザー操作に応じた柔軟な制御を実現できます。
準備と実装ガイド
事前準備

- PCとディスプレイを同一ネットワークに接続する
- 有線LAN/無線LANいずれも対応
必要なディスプレイ設定
本体設定と電源管理
認証方式とKeyの設定
クライアント側に応じたディスプレイの認証方式の設定は、「本体設定」で行います。
操作手順:[設定]→[ネットワークとインターネット]→[ローカルネットワーク]→[IPコントロール] →[認証]
詳しくはこちら
端末からディスプレイの遠隔制御を有効にする設定
使用する端末を登録し有効にすると、その端末からディスプレイ制御が可能になります。
操作手順:[設定]→[ネットワークとインターネット]→[モバイル機器設定]
サスペンド状態でのディスプレイ制御
REST APIを活用することで対策が可能です。
詳しくはこちら
サスペンド状態の復帰対策
ディスプレイが意図せずサスペンド状態になると、HTTPサーバーが停止するため、IRCC-IPによる通信ができなくなります。その場合は、Wake-on-LAN(WoL:ネットワーク経由でのリモート起動)機能を有効にしておくことで、ディスプレイの電源を復帰させることができます。
1.Wake-on-LANの有効化
操作手順:[設定]→[ネットワークとインターネット]→[リモートスタート]
2.Wake-on-LANによるサスペンド状態からの復帰
マジックパケットを複数回送信することを推奨しています。
WoLマジックパケットによるサスペンド状態復帰手順
MACアドレスの取得
ChromeのDevToolsでgetSystemInformationを呼び出すと、ディスプレイのMACアドレスを確認できます。
http://[ディスプレイのIPアドレス]/sony/system
HTTPリクエスト例
POST /sony/system HTTP/1.1
Host: 192.168.0.100
Content-Type: application/json
X-Auth-PSK: 1234
{
"method": "getSystemInformation",
"params": [],
"id": 1,
"version": "1.0"
}レスポンス例
{
"result": [{
"macAddr": "00:11:22:33:44:55",
...
}],
"id": 1
}WoLマジックパケットの作成
WoLマジックパケットは、「FF FF FF FF FF FF」+MACアドレスを16回繰り返したUDPパケットです。ディスプレイのMACアドレスを元に生成します。
マジックパケットの送信
ネットワーク上の対象ディスプレイのブロードキャストアドレス宛にUDPポート9または7いずれかでマジックパケットを複数回送信します。複数回送ることでディスプレイの確実な作動を促します。
電源ON状態の確認
マジックパケット送信後、IRCC-IPでの通信が可能になるまで待ちます。
「通常モード」環境の場合
電源ON後、setPowerStatusで画面表示状態に切り換える必要があります。
「プロモード」環境の場合
自動的にスクリーンONになります。
IRCC-IPでの制御実行
通信可能になったら、IRCC-IPで電源や入力などの制御を行います。
クライアント設定(認証方式と通信パラメーターの送信方法
Pre-Shared Key
Pre-Shared Key は、HTTPリクエストのカスタムヘッダー「X-Auth-PSK」として、IRCC-IPに送信する必要があります。
例 X-Auth-PSKヘッダー (Pre-Shared Key: 1234)
POST /sony/IRCC HTTP/1.1
Host: 192.168.1.100:80
Content-Type: application/json
X-Auth-PSK: 1234
Content-Length: 85基本構成・キーとIRCCコード
IRCC-IP HTTPリクエストの制御URLは以下です。
http://[IP]/sony/ircc
例 IRCC-IP HTTP リクエスト (Pre-Shared Key: 1234)
POST /sony/ircc HTTP/1.1
HOST: 192.168.0.1
Accept: */*
Content-Type: text/xml; charset=UTF-8
SOAPACTION: "urn:schemas-sony-com:service:IRCC:1#X_SendIRCC"
X-Auth-PSK: 1234
Connection: Keep-Alive
Content-Length: 313POST /sony/ircc
IRCC-IP制御用のエンドポイント(固定URL)
HOST: 192.168.0.1
ディスプレイ本体のIPアドレス
SOAPACTION
実行したいIRCC-IP(例はX_SendIRCC)
X-Auth-PSK: 1234
認証用のPre-Shared Key。ディスプレイに設定した値と一致する必要があります。
キーとIRCCコード
以下の情報はREST APIでgetRemoteControllerInfoを呼び出しても同様に取得できます。
| キー | IRCC コード (Base64 エンコード) |
|---|---|
| Power | AAAAAQAAAAEAAAAVAw== |
| Input | AAAAAQAAAAEAAAAlAw== |
| SyncMenu | AAAAAgAAABoAAABYAw== |
| Hdmi1 | AAAAAgAAABoAAABaAw== |
| Hdmi2 | AAAAAgAAABoAAABbAw== |
| Hdmi3 | AAAAAgAAABoAAABcAw== |
| Hdmi4 | AAAAAgAAABoAAABdAw== |
| Num1 | AAAAAQAAAAEAAAAAAw== |
| Num2 | AAAAAQAAAAEAAAABAw== |
| Num3 | AAAAAQAAAAEAAAACAw== |
| Num4 | AAAAAQAAAAEAAAADAw== |
| Num5 | AAAAAQAAAAEAAAAEAw== |
| Num6 | AAAAAQAAAAEAAAAFAw== |
| Num7 | AAAAAQAAAAEAAAAGAw== |
| Num8 | AAAAAQAAAAEAAAAHAw== |
| Num9 | AAAAAQAAAAEAAAAIAw== |
| Num0 | AAAAAQAAAAEAAAAJAw== |
| Dot(.) | AAAAAgAAAJcAAAAdAw== |
| CC | AAAAAgAAAJcAAAAoAw== |
| Red | AAAAAgAAAJcAAAAlAw== |
| Green | AAAAAgAAAJcAAAAmAw== |
| Yellow | AAAAAgAAAJcAAAAnAw== |
| Blue | AAAAAgAAAJcAAAAkAw== |
| Up | AAAAAQAAAAEAAAB0Aw== |
| Down | AAAAAQAAAAEAAAB1Aw== |
| Right | AAAAAQAAAAEAAAAzAw== |
| Left | AAAAAQAAAAEAAAA0Aw== |
| Confirm | AAAAAQAAAAEAAABlAw== |
| Help | AAAAAgAAAMQAAABNAw== |
| Display | AAAAAQAAAAEAAAA6Aw== |
| Options | AAAAAgAAAJcAAAA2Aw== |
| Back | AAAAAgAAAJcAAAAjAw== |
| Home | AAAAAQAAAAEAAABgAw== |
| VolumeUp | AAAAAQAAAAEAAAASAw== |
| VolumeDown | AAAAAQAAAAEAAAATAw== |
| Mute | AAAAAQAAAAEAAAAUAw== |
| Audio | AAAAAQAAAAEAAAAXAw== |
| ChannelUp | AAAAAQAAAAEAAAAQAw== |
| ChannelDown | AAAAAQAAAAEAAAARAw== |
| Play | AAAAAgAAAJcAAAAaAw== |
| Pause | AAAAAgAAAJcAAAAZAw== |
| Stop | AAAAAgAAAJcAAAAYAw== |
| FlashPlus | AAAAAgAAAJcAAAB4Aw== |
| FlashMinus | AAAAAgAAAJcAAAB5Aw== |
| Prev | AAAAAgAAAJcAAAA8Aw== |
| Next | AAAAAgAAAJcAAAA9Aw== |