ソニー ブラビアの電源をwifi(API)でコントロールする方法

ブラビアは、wifi経由でAPIに対応をしているとのことなので、ラズパイからテレビの電源ONするライブラリを作ってみた。
我が家の機種では、電源ON、OFF くらいがテレビとしての有効な操作系なので、python でアクセスするソースを作成した。
PC等から実行するとwifi経由でテレビをコントロールすることができる。

<bravia.py>

import sys
import json
import urllib.request
#import requests

headers = {
    'X-Auth-PSK': 'kagi',
    'Content-Type': 'application/x-www-form-urlencoded',
}

jdata = {
    "TV-POWER-ON"     :'{ "method":"setPowerStatus", "id":55,  "params":[{"status": true}],  "version":"1.0" }' ,
    "TV-POWER-OFF"    :'{ "method":"setPowerStatus", "id":55,  "params":[{"status": false}], "version":"1.0" }'
}

url = 'http://192.168.xx.xx/sony/system'  #ブラビアのIP

def send( cmd ):
    req = urllib.request.Request( url, jdata[cmd].encode(), headers )
    with urllib.request.urlopen(req) as res:
        return res.read

通常の赤外線リモコンでは、電源のON/OFFは区別が無いため、スマートホーム的にはコントロールがしにくいです。例えば、「おやすみ」ということで、テレビと電気の電源をOFFするような仕組みをしても、テレビがOFFで電気がONのときに「おやすみ」というと、電気が消えてテレビがONするようなことが発生してコントロールができないです。
wifi経由だとON/OFFを明確にコマンドで指定ができるので、テレビの電源OFF中にOFFコマンドを投げてもOFFの状態を維持することができます。

スマートホームの作り方はこちら

Xserver が お友達紹介割引 で申込みが可能になります。

コメント

タイトルとURLをコピーしました