Android OSが入っていて、スマホと同じようにいろいろなアプリをインストールして楽しめるAndroidTVですが、高機能ゆえに色々といじって遊ぶことができます。今話題のスマートホーム構築にはREST APIを使えばAndroidTVを操作することができて未来感満載です。スマートスピーカを買ってくるのもいいですが、自分でスマートホームを構築してみましょう!
アンドロイドテレビはガジェット好きにはたまらないテレビ
うちにあるのはSONY BRAVIA KJ-55X8500D 2016年モデルです。
アンドロイドテレビはアプリが入れ放題なので動画が見放題ですし、これまでの単純にストリーミングされる映像を受け入れるだけの箱からインタラクティブな箱に進化しています。
よろしければ、使ってみて書いた記事をご覧ください。アンドロイドテレビの素晴らしさが少しでも伝われば幸いです。
スマートホームの「基本のき」REST APIとは
さて本題です。スマートホーム構築するためには、リモコンでテレビを操作するーと言った全時代的なやり方を捨てる必要があります。
そうです、スマートホームなんでリモコンじゃなくて通信してテレビを操作しないといけません。通信ができればリモコンじゃなくても、通信できる何かー例えばスマホやPCなどがあればテレビを操作できると言うことです。もちろんラズベリーパイからも!
その操作用にテレビ側で用意されているのがこの「REST API」です。
「REpresentational State Transfer」が正式名称とのことで、詳細はよくわかりませんがHTTPリクエストでデータをつけてPOSTすればテレビを操作できる、そんな夢のようなAPIです。
REST APIについてもう少し詳しく知りたい方は以下のWikiをご覧ください。
BRAVIAのREST APIを触る
SONY公式サイトにそれはもう詳細に書いてあります。ここまで公開してくれているとはいい時代になったもんです。
例文もあるのでやりやすいとは思います。かいつまんで概略を示しますと、テレビ側を設定して、REST APIを叩く。以上というキューピー3分クッキングのような手軽さです。以下に流れを。詳細は上記サイトに記載されています。
AndroidTVの事前準備:IPコントロール認証を設定する
1.認証方法を設定する
設定→通信設定→ホームネットワーク→IPコントロール→認証
「Pre-Shared Key」に設定します。この設定で、キーのやりとりをしてからテレビを操作することができるようになります。
2.Pre-Shared Keyを設定する
設定→通信設定→ホームネットワーク→IPコントロール→Pre-Shared Key
実際に使用するキーを決定します。何でもいいです。平仮名も使えるみたいな雰囲気ですが、要らぬトラブルが発生するかもしれませんので自分は避けました。
3.リモートデバイス制御を有効にする
設定→通信設定→ホームネットワーク→レンダラー設定→レンダラー機能→有効
これを有効にすることで、テレビが遠隔操作ばっちこい状態になります。
以上てテレビ側の設定は完了です。楽チンぽん。
クライアントからテレビを遠隔操作する:実行方法
さていよいよ操作ですが、操作はHTTPリクエストが送れれば何でも構いません。iPhoneでもPCでもRaspberry Piでも!今回は一番手軽なPCからの操作方法です。Pythonでチャチャっと。
サンプルコード:python 2.7
電源をOFFする場合のサンプルコードを以下に示します。笑っちゃうぐらい簡単です。
url =”http://[braviaのipアドレス]/sony/system”
api_headers = {‘X-Auth-PSK’:’[さっき設定したPre-Shared Key]’}
api_params = {
‘id’:55,
‘method’:’setPowerStatus’,
‘params’: [{‘status’: False}],
‘version’: ‘1.0’
}
response = requests.post(url , json = api_params , headers = api_headers)
操作方法を変えたければ先程のHPに行ってapi_paramsの中身を変更すれば色々と操作が可能です。
まとめ
公式サイトにとても分かり易く載っていたので労せず実装までいけました。夢のスマートホーム構築を目論んでいる方のお助けになれれば幸いです。
いやーほんとAndroidTVって楽しいです。買ってから5年目になりますが、まだまだおもちゃとしても現役です。
コメント