大人のおもちゃ箱

ガジェット関係のツール・グッズ、WEBサービスのレビューや体験談が主なブログ(お父さんの大人のおもちゃ箱)です。

移転しました。

約10秒後に自動的にリダイレクトします。

SONY BRAVIA Android TVを外部からコマンド操作する(Google Home, Amazon Echo)

f:id:rikochanhayatokun:20161106013349j:plain

昨日注文していた「Google Home」が、本日朝に届きました。(B&Hへの注文から5日程度)

otona-toy.hatenablog.com

Google Homeのセットアップは今晩のお楽しみです。

商品が届くまでの間、Google Homeについて何ができるのか?

先週末、自分なりに調べてみたところ

直ぐに使えそうなのが、音楽の再生しか無い?

その他に

Google製品と言うこともあり、Chromecast(YouTube動画再生、GooglePhotos写真表示)との連携が、便利なところといった感じです。

音声を使って、YouTube動画を検索&再生できるのは嬉しいですね。

(いつもの動画を再生して!って音声に反応してくれるのか?この機能の使い勝手がどの程度良いのか?一番気になるところです)

■Google Home 連携サービス一覧

https://madeby.google.com/home/services/

今現在利用できるサービスは少ないです。今後どの程度増えるのか期待したいところです。

この点、Amazon Echoの場合は、自分でskill(連携サービス)を開発できる強みがあります。

ただ、Google Homeでも音声による外部プログラムを、起動することは「IFTTT」を利用すれば可能です。

(IFTTTを中継して、他のサービスにアクションを指示することができます)

ifttt.com

(IFTTTはWEBサービスとWEBサービスを連携するのに便利なサービスです)

Google HomeとIFTTTと自宅サーバーを利用すれな、音声によるテレビ操作が可能になりそうです。

(Google Homeは、標準でAndroid TVの操作ができる?この辺りも今晩調べてみたいと思います)

とりあえずは、自宅サーバーを構築し、そのサーバー上からコマンドで「SONY BRAVIA Android TV」を操作できるようにしたいと思います。

■環境

・Google Home(音声AI機器)

・IFTTT(サービス連携)

・自宅サーバー(プログラムを実行)

・Bravia Remote Control(TVを簡単に操作するためのプログラム)

※自宅サーバーはnode.jsが動作すれば、Linux、Windowsどちらでも大丈夫です。

■事前にテレビの設定をする

TV側で、これを設定しないと外部からコマンド操作することができません。

On the TV go to Settings > Network > Home network setup > Remote device/Renderer > On

On the TV go to Settings > Network > Home network setup > IP Control > Authentication > Normal and Pre-Shared Key

On the TV go to Settings > Network > Home network setup > Remote device/Renderer > Enter Pre-Shared Key > 0000 (or whatever you want your PSK Key to be)

On the TV go to Settings > Network > Home network setup > Remote device/Renderer > Simple IP Control > On

■自宅サーバーの設定

事前にnode.jsが動作するように設定します。

Bravia Remote Controlを設置(Cloneまたはダウンロード)します。

github.com

npm installを実行します。

(必要なモジュールがダウンロードされます)

demo.jsファイルを編集します。

bravia('192.168.1.100', '0000', function(client) {

※テレビのIPアドレスとPre-Shared Keyを編集します。

以上で、環境の構築が終わりました。

実際にdemo.jsを実行すると

node demo.js

TVで利用できるリモートコマンドの一覧が表示された後、テレビの画面でNetflixアプリが自動で起動しました。

コマンドの内容は大体コマンド名で分かりそうです。

テレビのON、OFF、チャンネル切替、ボリュームの設定など一通りのことはできるようです。 ただ、アプリの起動はまた別の仕組みなのかな?

/sony/IRCC

  var body = '<?xml version="1.0"?>' +
    '<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>' + code +'</IRCCCode>' +
        '</u:X_SendIRCC>' +
      '</s:Body>' +
    '</s:Envelope>';

  this.request({
    path: '/sony/IRCC',
    body: body,
    headers: {
      'Content-Type': 'text/xml; charset=UTF-8',
      'X-Auth-PSK' : this.pskKey,
      'SOAPACTION': '"urn:schemas-sony-com:service:IRCC:1#X_SendIRCC"'
    }
  });

/sony/accessControl

ソースの一部を見ていると、アプリ操作用のパスもありそう?

テレビ側の音声検索の実行、録画している動画の検索、再生はどのようにすればいいのだろうか? 後日、調べてみたいと思います。

■Bravia Android TVで利用できるリモートコマンド

PowerOn Num1 Num2 Num3 Num4 Num5 Num6 Num7 Num8 Num9 Num0 Num11 Num12 Enter GGuide ChannelUp ChannelDown VolumeUp VolumeDown Mute TvPower Audio MediaAudioTrack Tv Input TvInput TvAntennaCable WakeUp PowerOff Sleep Right Left SleepTimer Analog2 TvAnalog Display Jump PicOff PictureOff Teletext Video1 Video2 AnalogRgb1 Home Exit PictureMode Confirm Up Down ClosedCaption Component1 Component2 Wide EPG PAP TenKey BSCS Ddata Stop Pause Play Rewind Forward DOT Rec Return Blue Red Green Yellow SubTitle CS BS Digital Options Media Prev Next DpadCenter CursorUp CursorDown CursorLeft CursorRight ShopRemoteControlForcedDynamic FlashPlus FlashMinus AudioQualityMode DemoMode Analog Mode3D DigitalToggle DemoSurround *AD AudioMixUp AudioMixDown PhotoFrame Tv_Radio SyncMenu Hdmi1 Hdmi2 Hdmi3 Hdmi4 TopMenu PopUpMenu OneTouchTimeRec OneTouchView DUX FootballMode iManual Netflix Assists ActionMenu Help TvSatellite WirelessSubwoofer