Top/Linux/BRAVIAの操作

BRAVIAの操作はてなブックマーク

SONY純正のTV SideViewというBRAVIA用アプリがあるが、
このアプリとBRAVIA間の通信をパケットキャプチャした方がおり、
通信の詳細が明らかになっている。

今回はこれを利用して、LinuxからネットワークでBRAVIAを操作してみる。

準備

BRAVIA側での作業(下記はKDL-40W900Aでの例)

  1. BRAVIAをネットワークに接続する。
  2. [モバイル機器/レンダラー機能]を設定する。
    1. リモコンの[ホーム]ボタンを押す。
    2. [設定]>[通信設定]>[ホームネットワーク設定]>[モバイル機器/レンダラー設定]>[モバイル機器/レンダラー機能]を開く。
    3. [入]を選ぶ。
  3. IPアドレスを確認する。
    1. リモコンの[ホーム]ボタンを押す。
    2. [設定]>[通信設定]>[ネットワーク設定]>[接続状態を確認する]を開く。
    3. IPアドレスを確認する。

Linuxサーバ側での作業

  1. cURLのインストール。
    sudo aptitude install curl

操作の実行

Linuxサーバ側での作業

  1. 下記のようにして、BRAVIAにSOAPリクエストを送信する。 (画面幅の都合上、改行して記載。実際は一行で入力する。)
    curl -X POST -d '
    <?xml version="1.0" encoding="utf-8"?>
    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    <s:Body>
    <u:X_SendIRCC xmlns:u="urn:schemas-sony-com:service:IRCC:1">
    <IRCCCode>
    【IRCCコード】
    </IRCCCode>
    </u:X_SendIRCC>
    </s:Body>
    </s:Envelope>
    ' http://【BRAVIAのIPアドレス】/sony/IRCC

なお、機種によっては、X-Auth-PSKヘッダを設定する必要があるかも。

詳しくは"BRAVIA X-Auth-PSK"で検索。


上記のIRCCコード、代表的なものは下表の通り。

名前IRCCコード
PowerOffAAAAAQAAAAEAAAAvAw==
VolumeUpAAAAAQAAAAEAAAASAw==
VolumeDownAAAAAQAAAAEAAAATAw==
MuteAAAAAQAAAAEAAAAUAw==
ChannelUpAAAAAQAAAAEAAAAQAw==
ChannelDownAAAAAQAAAAEAAAARAw==
Num1AAAAAQAAAAEAAAAAAw==
Num2AAAAAQAAAAEAAAABAw==
Num3AAAAAQAAAAEAAAACAw==
Num4AAAAAQAAAAEAAAADAw==
Num5AAAAAQAAAAEAAAAEAw==
Num6AAAAAQAAAAEAAAAFAw==
Num7AAAAAQAAAAEAAAAGAw==
Num8AAAAAQAAAAEAAAAHAw==
Num9AAAAAQAAAAEAAAAIAw==
Num0AAAAAQAAAAEAAAAJAw==
Num11AAAAAQAAAAEAAAAKAw==
Num12AAAAAQAAAAEAAAALAw==

その他のIRCCコードの一覧は、下記を実行すると入手できる。

curl -d '{"method":"getRemoteControllerInfo","params":[],"id":1,"version":"1.0"}' http://【BRAVIAのIPアドレス】/sony/system

リモートでの電源オン(Wake On LAN)

手元の環境では、上記コードの一覧に、PowerOnのIRCCコードは表示されなかった。

(サイトによっては、PowerOnのコードが載っているが、そのコードを送信しても、電源はオンにならなかった。)

BRAVIAの説明書を調べたところ、「リモートスタート」の表記があり、これはWake On LANのことのようだ。

下記のようにすると設定できる。

BRAVIA側の操作(下記はKDL-40W900Aでの例)

  1. リモートスタートを有効にする。
    1. リモコンの[ホーム]ボタンを押す。
    2. [設定>[通信設定]>[ホームネットワーク設定]>[リモートスタート]を開く。
    3. [入]を選ぶ。
  2. MACアドレスを確認する。
    1. リモコンの[ホーム]ボタンを押す。
    2. [設定]>[通信設定]>[ネットワーク設定]>[接続状態を確認する]を開く。
    3. MACアドレスを確認する。

Linuxサーバ側の操作(下記はRaspberry Piでの例)

  1. etherwakeのインストール。
    sudo aptitude install etherwake
  2. Wake On LANのテスト。
    sudo etherwake 【BRAVIAのMACアドレス】


なお、起動から数秒は、SOAPリクエストを受け付けないようなので、注意すること。

参考

Amazon

差分 一覧